diff options
author | Timothy Edmund Crosley <timothy.crosley@gmail.com> | 2013-09-01 13:25:20 -0700 |
---|---|---|
committer | Timothy Edmund Crosley <timothy.crosley@gmail.com> | 2013-09-01 13:25:20 -0700 |
commit | 3e679e01dc9920ceea788ed6f9e98e7a7cafe99c (patch) | |
tree | ac9c783d70150a5ad7a859ec6698d2ed7c27236b | |
parent | 7516570e5e9647ecd4bad3baa0189504d2d63662 (diff) | |
parent | 88cf859222d61592adde4fe48c67a4bbb77267f9 (diff) | |
download | pies-3e679e01dc9920ceea788ed6f9e98e7a7cafe99c.tar.gz |
Merge pull request #1 from timothycrosley/feature/initial-release
Feature/initial release
-rw-r--r-- | MANIFEST | 3 | ||||
-rw-r--r-- | README.md | 48 | ||||
-rw-r--r-- | dist/pies-1.0.0.tar.gz | bin | 0 -> 1535 bytes | |||
-rw-r--r-- | pies.py | 79 | ||||
-rw-r--r-- | setup.py | 15 |
5 files changed, 142 insertions, 3 deletions
diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 0000000..9551cfd --- /dev/null +++ b/MANIFEST @@ -0,0 +1,3 @@ +# file GENERATED by distutils, do NOT edit +pies.py +setup.py @@ -1,4 +1,46 @@ -pies -==== +pies! +==================== + +The simplest (and tastiest) way to write one program that runs on both Python 2.6+ and Python 3. + + +let's eat some pies! +====================== + +Installing pies + + pip install pies + +or if you prefer: + + easy_install pies + + +integrating pies into your diet +====================== + +Using and integrating pies into an existing Python 2.6 code base (to achieve Python 3 dual support) couldn't be simpler: + + from pies import * + +You will then simply have to make some simple changes to your Python code: + +- u'string' -> u('string') +- my_iterable.iteritems -> iteritems(my_iterable) +- my_iterable.itervalues -> itervalues(my_iterable) +- my_iterable.iterkeys -> iterkeys(my_iterable) + +The following will work unchanged in Python 3 after import (using the Python 2 syntax): + +- xrange +- long +- unicode +- urllib.quote +- urllib.quote_plus +- urllib.unquote +- urllib.unquote_plus +- urllib.urlencode + +pies will also automatically install and include the most optimal version of OrderedDict for the python environment +in use, so you should remove any other explicit imports of OrderedDict. -The simplest way to write one program that runs on both Python 2 and Python 3. diff --git a/dist/pies-1.0.0.tar.gz b/dist/pies-1.0.0.tar.gz Binary files differnew file mode 100644 index 0000000..4ddab47 --- /dev/null +++ b/dist/pies-1.0.0.tar.gz @@ -0,0 +1,79 @@ +""" + pies.py + + Adds necessary hooks to allow Python code to run on multiple major versions of Python at once + (currently 2.6 - 3.x) + + Usage: + Anywhere you want to gain support for multiple versions of Python simply add the following line + from pies import * + + Copyright (C) 2013 Timothy Edmund Crosley + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +""" + +import sys + +__version__ = "1.0.0" + +if sys.version > '3': + import urllib + from urllib import parse + + from collections import OrderedDict + + long = int + unicode = str + + def u(string): + return string + + def iteritems(collection): + return collection.items() + + def itervalues(collection): + return collection.values() + + def iterkeys(collection): + return collection.keys() + + def xrange(*args): + return range(*args) + + urllib.quote = parse.quote + urllib.quote_plus = parse.quote_plus + urllib.unquote = parse.unquote + urllib.unquote_plus = parse.unquote_plus + urllib.urlencode = parse.urlencode +else: + try: + from collections import OrderedDict + except ImportError: + from ordereddict import OrderedDict + + import codecs + + def u(string): + return codecs.unicode_escape_decode(string)[0] + + def iteritems(collection): + return collection.iteritems() + + def itervalues(collection): + return collection.itervalues() + + def iterkeys(collection): + return collection.iterkeys() diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..981a876 --- /dev/null +++ b/setup.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python + +from distutils.core import setup + +setup(name='pies', + version='1.0.0', + description='The simplest way to write one program that runs on both Python 2 and Python 3.', + author='Timothy Crosley', + author_email='timothy.crosley@gmail.com', + url='http://www.simpleinnovation.org/', + download_url='https://github.com/timothycrosley/pies/blob/master/dist/pies-1.0.0.tar.gz?raw=true', + license="GNU GPLv2", + install_requires=['ordereddict'], + requires=['ordereddict'], + py_modules=['pies']) |