[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