summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Edmund Crosley <timothy.crosley@gmail.com>2013-09-01 13:25:20 -0700
committerTimothy Edmund Crosley <timothy.crosley@gmail.com>2013-09-01 13:25:20 -0700
commit3e679e01dc9920ceea788ed6f9e98e7a7cafe99c (patch)
treeac9c783d70150a5ad7a859ec6698d2ed7c27236b
parent7516570e5e9647ecd4bad3baa0189504d2d63662 (diff)
parent88cf859222d61592adde4fe48c67a4bbb77267f9 (diff)
downloadpies-3e679e01dc9920ceea788ed6f9e98e7a7cafe99c.tar.gz
Merge pull request #1 from timothycrosley/feature/initial-release
Feature/initial release
-rw-r--r--MANIFEST3
-rw-r--r--README.md48
-rw-r--r--dist/pies-1.0.0.tar.gzbin0 -> 1535 bytes
-rw-r--r--pies.py79
-rw-r--r--setup.py15
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
diff --git a/README.md b/README.md
index 6f40512..de0e31d 100644
--- a/README.md
+++ b/README.md
@@ -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
new file mode 100644
index 0000000..4ddab47
--- /dev/null
+++ b/dist/pies-1.0.0.tar.gz
Binary files differ
diff --git a/pies.py b/pies.py
new file mode 100644
index 0000000..0e44e40
--- /dev/null
+++ b/pies.py
@@ -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'])