diff options
author | olivierd <olivierd@FreeBSD.org> | 2013-08-30 02:35:45 +0800 |
---|---|---|
committer | olivierd <olivierd@FreeBSD.org> | 2013-08-30 02:35:45 +0800 |
commit | 574c41920b81c0e9beda7996d1e9da56e195fde9 (patch) | |
tree | d769d607e3aaf4d26b93c2860dfd7606b930dc45 /devel | |
parent | 239c2bb061c30f85041bdc6cf1161169f37380c9 (diff) | |
download | freebsd-ports-gnome-574c41920b81c0e9beda7996d1e9da56e195fde9.tar.gz freebsd-ports-gnome-574c41920b81c0e9beda7996d1e9da56e195fde9.tar.zst freebsd-ports-gnome-574c41920b81c0e9beda7996d1e9da56e195fde9.zip |
- Add support for Python 3
While Im'm here:
- Trim Makefile header
Obtained from: upstream git repository
Diffstat (limited to 'devel')
-rw-r--r-- | devel/py-speaklater/Makefile | 14 | ||||
-rw-r--r-- | devel/py-speaklater/files/patch-speaklater.py | 150 |
2 files changed, 159 insertions, 5 deletions
diff --git a/devel/py-speaklater/Makefile b/devel/py-speaklater/Makefile index a92e6ba3376f..51ad6bbd1a1a 100644 --- a/devel/py-speaklater/Makefile +++ b/devel/py-speaklater/Makefile @@ -1,12 +1,10 @@ -# New ports collection makefile for: py-speaklater -# Date created: 2010-09-26 -# Whom: Olivier Duchateau <duchateau.olivier@gmail.com> -# +# Created by: Olivier Duchateau <duchateau.olivier@gmail.com> # $FreeBSD$ # PORTNAME= speaklater PORTVERSION= 1.3 +PORTREVISION= 1 CATEGORIES= devel python MASTER_SITES= CHEESESHOP PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -19,4 +17,10 @@ LICENSE= BSD USE_PYTHON= yes USE_PYDISTUTILS= easy_install -.include <bsd.port.mk> +.include <bsd.port.pre.mk> + +.if ${PYTHON_REL} >= 320 +.include "${PORTSDIR}/devel/py-virtualenv/files/py3k-fix-pkg-plist.inc" +.endif + +.include <bsd.port.post.mk> diff --git a/devel/py-speaklater/files/patch-speaklater.py b/devel/py-speaklater/files/patch-speaklater.py new file mode 100644 index 000000000000..fee3c6c806b4 --- /dev/null +++ b/devel/py-speaklater/files/patch-speaklater.py @@ -0,0 +1,150 @@ +Add support for Python 3.x +Taken from https://github.com/mitsuhiko/speaklater/pull/3 - commit #62dd88e + +--- ./speaklater.py.orig 2010-10-17 15:03:41.000000000 +0000 ++++ ./speaklater.py 2013-08-11 11:19:18.000000000 +0000 +@@ -12,24 +12,24 @@ + + Example: + +- >>> from speaklater import make_lazy_string ++ >>> from speaklater import make_lazy_string, text_type + >>> sval = u'Hello World' + >>> string = make_lazy_string(lambda: sval) + + This lazy string will evaluate to the value of the `sval` variable. + + >>> string +- lu'Hello World' +- >>> unicode(string) +- u'Hello World' +- >>> string.upper() +- u'HELLO WORLD' ++ l'Hello World' ++ >>> text_type(string) == u'Hello World' ++ True ++ >>> string.upper() == u'HELLO WORLD' ++ True + + If you change the value, the lazy string will change as well: + + >>> sval = u'Hallo Welt' +- >>> string.upper() +- u'HALLO WELT' ++ >>> string.upper() == u'HALLO WELT' ++ True + + This is especially handy when combined with a thread local and gettext + translations or dicts of translatable strings: +@@ -40,10 +40,10 @@ + >>> l.translations = {u'Yes': 'Ja'} + >>> lazy_gettext = make_lazy_gettext(lambda: l.translations.get) + >>> yes = lazy_gettext(u'Yes') +- >>> print yes ++ >>> print(yes) + Ja + >>> l.translations[u'Yes'] = u'Si' +- >>> print yes ++ >>> print(yes) + Si + + Lazy strings are no real strings so if you pass this sort of string to +@@ -59,6 +59,9 @@ + >>> is_lazy_string(yes) + True + ++ New in version 1.4: python >= 3.3 (and also 2.6 and 2.7) support, ++ repr(lazystring) is l"foo" on py2 and py3 - no "u" on py2! ++ + New in version 1.2: It's now also possible to pass keyword arguments to + the callback used with `make_lazy_string`. + +@@ -66,6 +69,28 @@ + :license: BSD, see LICENSE for more details. + """ + ++import sys ++ ++PY2 = sys.version_info[0] == 2 ++_identity = lambda x: x ++ ++if not PY2: ++ text_type = str ++ implements_to_string = _identity ++ implements_bool = _identity ++else: ++ text_type = unicode ++ ++ def implements_to_string(cls): ++ cls.__unicode__ = cls.__str__ ++ cls.__str__ = lambda x: x.__unicode__().encode('utf-8') ++ return cls ++ ++ def implements_bool(cls): ++ cls.__nonzero__ = cls.__bool__ ++ del cls.__bool__ ++ return cls ++ + + def is_lazy_string(obj): + """Checks if the given object is a lazy string.""" +@@ -87,10 +112,10 @@ + >>> lazy_gettext = make_lazy_gettext(lambda: translations.get) + >>> x = lazy_gettext(u'Yes') + >>> x +- lu'Ja' ++ l'Ja' + >>> translations[u'Yes'] = u'Si' + >>> x +- lu'Si' ++ l'Si' + """ + def lazy_gettext(string): + if is_lazy_string(string): +@@ -99,6 +124,8 @@ + return lazy_gettext + + ++@implements_bool ++@implements_to_string + class _LazyString(object): + """Class for strings created by a function call. + +@@ -117,11 +144,11 @@ + def __contains__(self, key): + return key in self.value + +- def __nonzero__(self): ++ def __bool__(self): + return bool(self.value) + + def __dir__(self): +- return dir(unicode) ++ return dir(text_type) + + def __iter__(self): + return iter(self.value) +@@ -130,10 +157,7 @@ + return len(self.value) + + def __str__(self): +- return str(self.value) +- +- def __unicode__(self): +- return unicode(self.value) ++ return text_type(self.value) + + def __add__(self, other): + return self.value + other +@@ -190,7 +214,10 @@ + + def __repr__(self): + try: +- return 'l' + repr(self.value) ++ r = repr(self.value) ++ if PY2 and r.startswith('u'): ++ r = r[1:] # make it look same as on py3 ++ return 'l' + r + except Exception: + return '<%s broken>' % self.__class__.__name__ + |