[Python-modules-commits] r19964 - in packages/python-levenshtein/trunk (11 files)
morph at users.alioth.debian.org
morph at users.alioth.debian.org
Mon Jan 9 18:21:20 UTC 2012
Date: Monday, January 9, 2012 @ 18:21:19
Author: morph
Revision: 19964
[svn-inject] Applying Debian modifications (0.10.1-1.1) to trunk
Added:
packages/python-levenshtein/trunk/debian/
packages/python-levenshtein/trunk/debian/changelog
packages/python-levenshtein/trunk/debian/compat
packages/python-levenshtein/trunk/debian/control
packages/python-levenshtein/trunk/debian/copyright
packages/python-levenshtein/trunk/debian/patches/
packages/python-levenshtein/trunk/debian/patches/add_missing_genextdoc.py.patch
packages/python-levenshtein/trunk/debian/patches/series
packages/python-levenshtein/trunk/debian/python-levenshtein.doc-base
packages/python-levenshtein/trunk/debian/rules
packages/python-levenshtein/trunk/debian/watch
Property changes on: packages/python-levenshtein/trunk/debian
___________________________________________________________________
Added: mergeWithUpstream
+ 1
Added: packages/python-levenshtein/trunk/debian/changelog
===================================================================
--- packages/python-levenshtein/trunk/debian/changelog (rev 0)
+++ packages/python-levenshtein/trunk/debian/changelog 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1,16 @@
+python-levenshtein (0.10.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload, to prepare for Python 2.6 transition
+ * debian/rules
+ - use '--install-layout=deb' when installing the module; thanks to Jakub
+ Wilk for the report; Closes: #571507
+ * debian/control
+ - bump b-d in python-all-dev to '>= 2.5.3-1~', to support install-layout
+
+ -- Sandro Tosi <morph at debian.org> Mon, 01 Mar 2010 11:35:26 +0100
+
+python-levenshtein (0.10.1-1) unstable; urgency=low
+
+ * Initial Release. Closes: #473274
+
+ -- Nicolas FRANCOIS (Nekral) <nicolas.francois at centraliens.net> Sat, 29 Mar 2008 18:04:18 +0100
Added: packages/python-levenshtein/trunk/debian/compat
===================================================================
--- packages/python-levenshtein/trunk/debian/compat (rev 0)
+++ packages/python-levenshtein/trunk/debian/compat 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1 @@
+5
Added: packages/python-levenshtein/trunk/debian/control
===================================================================
--- packages/python-levenshtein/trunk/debian/control (rev 0)
+++ packages/python-levenshtein/trunk/debian/control 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1,24 @@
+Source: python-levenshtein
+Section: python
+Priority: optional
+Maintainer: Nicolas FRANCOIS (Nekral) <nicolas.francois at centraliens.net>
+Build-Depends: python-all-dev (>= 2.5.3-1~), python-central (>= 0.5), debhelper (>= 5.0.37.2), quilt (>= 0.40)
+XS-Python-Version: all
+Standards-Version: 3.7.3
+Homepage: https://sourceforge.net/project/showfiles.php?group_id=91920&package_id=260161
+
+Package: python-levenshtein
+Architecture: any
+Depends: ${shlibs:Depends}, ${python:Depends}
+XB-Python-Version: ${python:Versions}
+Description: extension for computing string similarities and edit distances
+ The Levenshtein module computes Levenshtein distances, similarity ratios,
+ generalized medians and set medians of Unicode or non-Unicode strings.
+ Because it's implemented in C, it's much faster than the corresponding
+ Python library functions and methods.
+ .
+ The Levenshtein distance is the minimum number of single-character
+ insertions, deletions, and substitutions to transform one string into
+ another.
+ .
+ It is useful for spell checking, or fuzzy matching of gettext messages.
Added: packages/python-levenshtein/trunk/debian/copyright
===================================================================
--- packages/python-levenshtein/trunk/debian/copyright (rev 0)
+++ packages/python-levenshtein/trunk/debian/copyright 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1,27 @@
+This package was debianized by Nicolas FRANCOIS (Nekral)
+<nicolas.francois at centraliens.net> on Sat, 29 Mar 2008 18:04:18 +0100,
+based on the RPM specs from Dwayne Bailey.
+
+It was downloaded from http://prdownloads.sourceforge.net/translate
+
+
+Copyright:
+ Copyright (C) 2002-2003 David Necas (Yeti) <yeti at physics.muni.cz>
+ Copyright (C) 2002 Atakan Gurkan
+ Copyright (C) 1996, 1997, 1998, 1999, 2000 James Theiler, Brian Gough
+
+Upstream Authors:
+
+ David Necas (Yeti)
+
+ It is now maintained by the translate-toolkit maintainers.
+
+License:
+
+ Released under the GPL license version 2 or later.
+
+GPL:
+----
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL-2'.
Added: packages/python-levenshtein/trunk/debian/patches/add_missing_genextdoc.py.patch
===================================================================
--- packages/python-levenshtein/trunk/debian/patches/add_missing_genextdoc.py.patch (rev 0)
+++ packages/python-levenshtein/trunk/debian/patches/add_missing_genextdoc.py.patch 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1,219 @@
+Index: python-Levenshtein-0.10.1/genextdoc.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ python-Levenshtein-0.10.1/genextdoc.py 2008-03-29 19:00:28.182765776 +0100
+@@ -0,0 +1,214 @@
++#!/usr/bin/python
++# Simple Python extension module doc generator.
++# @(#) $Id: genextdoc.py,v 1.1 2004/05/25 11:13:23 carlo Exp $
++# Written by Yeti <yeti at physics.muni.cz>
++# This program is in the public domain.
++import re, sys, types, inspect
++from cgi import escape as q
++
++args = sys.argv
++args.pop(0)
++if not args: sys.exit(0)
++
++selfcontained = False
++if args[0].startswith('-') and 'selfcontained'.startswith(args[0].strip('-')):
++ selfcontained = True
++ args.pop(0)
++if not args: sys.exit(0)
++modname = args.pop(0)
++plain_docs = args
++
++html_head = """\
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
++ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
++<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
++<head><title>%s %s</title></head>
++<body>
++"""
++
++html_foot = """\
++</body>
++</html>
++"""
++
++def split_para(doc):
++ p = []
++ for x in doc.split('\n\n'):
++ x = x.strip()
++ if x.find('\n>>>') > -1:
++ h, t = x.split('\n>>>', 1)
++ p.append(h)
++ p.append('>>>' + t)
++ else:
++ p.append(x)
++ return p
++
++def get_doc(members):
++ try: doc = members['__doc__']
++ except KeyError: pass
++ if doc: return doc
++ try: doc = 'Python module %s' % members['__name__']
++ except KeyError: pass
++ if doc: return doc
++ else: return 'A Python module'
++
++def format_synopsis(synopsis, link=False, classname=None):
++ lst = synopsis.split('\n')
++ for i, s in zip(range(len(lst)), lst):
++ m = re.match(r'(?P<func>\w+)(?P<args>.*)', s)
++ args = re.sub(r'([a-zA-Z]\w+)', r'<var>\1</var>', m.group('args'))
++ func = m.group('func')
++ if link:
++ if classname:
++ func = '<a href="#%s-%s">%s</a>' % (classname, func, func)
++ else:
++ func = '<a href="#%s">%s</a>' % (func, func)
++ lst[i] = func + args
++ return '<br/>\n'.join(lst)
++
++def format_para(p):
++ if not p: return ''
++ doc = ''
++ if p.startswith('>>>'): doc += '<pre>\n%s\n</pre>\n' % q(p)
++ else:
++ if not re.search('^- ', p, re.M): doc += '<p>%s</p>\n' % q(p)
++ else:
++ p = re.split('(?m)^- ', p)
++ if p[0]: doc += '<p>%s</p>\n' % q(p[0].strip())
++ del p[0]
++ doc += ('<ul>%s</ul>\n'
++ % '\n'.join(['<li>%s</li>' % q(p.strip()) for p in p]))
++ return doc
++
++def preprocess_routine(name, doc):
++ parts = split_para(doc)
++ if parts: summary = parts.pop(0)
++ else: summary = 'FIXME'
++ if parts and re.match(r'\w+\(.*\)', parts[0]): synopsis = parts.pop(0)
++ else: synopsis = name + '()'
++ return {'synopsis': synopsis, 'summary': summary, 'details': parts}
++
++def analyse(obj):
++ members = obj.__dict__
++ if inspect.isclass(obj):
++ main_doc = preprocess_routine(obj.__name__, get_doc(members))
++ bases = [x.__name__ for x in obj.__bases__]
++ else:
++ main_doc = split_para(get_doc(members))
++ bases = []
++ routines = {}
++ classes = {}
++ data = {}
++ for name, m in members.items():
++ if name.startswith('__'): continue
++ try:
++ mro = list(inspect.getmro(m))
++ if mro[0] != m: continue
++ except AttributeError: pass
++ if inspect.isroutine(m):
++ try: doc = m.__doc__
++ except KeyError: pass
++ if not doc: doc = 'FIXME'
++ routines[name] = preprocess_routine(name, doc)
++ continue
++ if inspect.isclass(m):
++ classes[name] = analyse(m)
++ continue
++ t = type(m)
++ if t == types.IntType or t == types.StringType:
++ data[name] = repr(m)
++ else:
++ data[name] = m.__doc__
++ return {'name': obj.__name__, 'doc': main_doc, 'routines': routines,
++ 'classes': classes, 'data': data, 'bases': bases}
++
++def format(tree, level, prefix=''):
++ name = tree['name']
++ if prefix: fullname = '%s-%s' % (prefix, name)
++ else: fullname = name
++ ##### Main doc
++ doc = []
++ if level > 1:
++ doc = ['<h%d id="%s">' % (level, fullname)]
++ try: doc.append(format_synopsis(tree['doc']['synopsis']))
++ except TypeError:
++ doc.append(name)
++ doc.append('</h%d>\n' % level)
++ if tree.has_key('bases'):
++ doc.append('<p>Bases: %s.</p>\n' % ', '.join(tree['bases']))
++ try: lst = [tree['doc']['summary']] + tree['doc']['details']
++ except TypeError: lst = tree['doc']
++ for p in lst: doc.append(format_para(p))
++ ##### Table of contents
++ routines = tree['routines'].keys()
++ classes = tree['classes'].keys()
++ data = tree['data'].keys()
++ if routines:
++ routines.sort()
++ if level == 1: doc.append('<p><b>Functions:</b></p>\n')
++ else: doc.append('<p><b>Methods:</b></p>\n')
++ doc.append('<ul class="ltoc">\n')
++ for r in routines:
++ synopsis = tree['routines'][r]['synopsis']
++ doc.append('<li>%s</li>\n' % format_synopsis(synopsis, True,
++ fullname))
++ doc.append('</ul>\n')
++ if classes:
++ classes.sort()
++ doc.append('<p><b>Classes:</b></p>\n')
++ doc.append('<ul class="ltoc">\n')
++ for r in classes:
++ synopsis = tree['classes'][r]['doc']['synopsis']
++ doc.append('<li>%s</li>\n' % format_synopsis(synopsis, True,
++ fullname))
++ doc.append('</ul>\n')
++ if data:
++ data.sort()
++ doc.append('<p><b>Data:</b></p>\n')
++ doc.append('<ul class="ltoc">\n')
++ for r in data:
++ doc.append('<li>%s = %s</li>\n' % (r, q(tree['data'][r])))
++ doc.append('</ul>\n')
++ ##### Functions
++ if routines:
++ if level == 1: doc.append('<hr/>\n')
++ doc.append('<dl>\n')
++ for r in routines:
++ doc.append('<dt id="%s-%s">' % (fullname, r))
++ rt = tree['routines'][r]
++ doc.append('%s</dt>\n<dd>' % format_synopsis(rt['synopsis']))
++ for p in [rt['summary']] + rt['details']:
++ doc.append(format_para(p))
++ doc.append('</dd>\n')
++ doc.append('</dl>\n')
++ ##### Classes
++ if classes:
++ for r in classes:
++ doc.append('<hr/>\n')
++ doc.append(format(tree['classes'][r], level+1, fullname))
++ return ''.join(doc)
++
++exec 'import %s as __test__' % modname
++doctree = analyse(__test__)
++document = format(doctree, 1)
++print modname + '.html'
++fh = file(modname + '.html', 'w')
++if selfcontained: fh.write(html_head % (modname, 'module API'))
++fh.write(document)
++if selfcontained: fh.write(html_foot)
++fh.close()
++for f in plain_docs:
++ try: fh = file(f, 'r')
++ except: continue
++ document = fh.read()
++ fh.close()
++ print f + '.xhtml'
++ fh = file(f + '.xhtml', 'w')
++ if selfcontained: fh.write(html_head % (modname, f))
++ fh.write('<h1>%s %s</h1>\n\n' % (modname, f))
++ fh.write('<pre class="main">\n')
++ fh.write(document)
++ fh.write('</pre>\n')
++ if selfcontained: fh.write(html_foot)
++ fh.close()
Added: packages/python-levenshtein/trunk/debian/patches/series
===================================================================
--- packages/python-levenshtein/trunk/debian/patches/series (rev 0)
+++ packages/python-levenshtein/trunk/debian/patches/series 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1 @@
+add_missing_genextdoc.py.patch
Added: packages/python-levenshtein/trunk/debian/python-levenshtein.doc-base
===================================================================
--- packages/python-levenshtein/trunk/debian/python-levenshtein.doc-base (rev 0)
+++ packages/python-levenshtein/trunk/debian/python-levenshtein.doc-base 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1,9 @@
+Document: python-levenshtein
+Title: python-levenshtein documentation
+Author: David Necas (Yeti)
+Abstract: The API documentation of the Python Levenshtein package
+Section: Text
+
+Format: HTML
+Index: /usr/share/doc/python-levenshtein/Levenshtein.html
+Files: /usr/share/doc/python-levenshtein/Levenshtein.html
Added: packages/python-levenshtein/trunk/debian/rules
===================================================================
--- packages/python-levenshtein/trunk/debian/rules (rev 0)
+++ packages/python-levenshtein/trunk/debian/rules 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1,63 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+PYVERS=$(shell pyversions -vr)
+
+include /usr/share/quilt/quilt.make
+
+build: build-stamp
+build-stamp: patch $(PYVERS:%=build-python%)
+ touch $@
+
+build-python%:
+ python$* setup.py build
+ touch $@
+
+clean: unpatch
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+ rm -rf build
+ rm -f Levenshtein.html NEWS.xhtml
+ dh_clean
+
+install: build $(PYVERS:%=install-python%)
+ python_sitearch=$$(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)"); \
+ PYTHONPATH=debian/python-levenshtein/$$python_sitearch ./gendoc.sh Levenshtein
+
+
+install-prereq:
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+install-python%: install-prereq
+ python$* setup.py install --root $(CURDIR)/debian/python-levenshtein --install-layout=deb
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs README NEWS Levenshtein.html
+ dh_installexamples StringMatcher.py
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_pycentral
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
Property changes on: packages/python-levenshtein/trunk/debian/rules
___________________________________________________________________
Added: svn:executable
+ *
Added: packages/python-levenshtein/trunk/debian/watch
===================================================================
--- packages/python-levenshtein/trunk/debian/watch (rev 0)
+++ packages/python-levenshtein/trunk/debian/watch 2012-01-09 18:21:19 UTC (rev 19964)
@@ -0,0 +1,6 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# Site Directory Pattern Version Script
+version=2
+http://sf.net/translate/python-Levenshtein-(.*).tar.(?:gz|bz2)
More information about the Python-modules-commits
mailing list