summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAsk Solem <ask@rabbitmq.com>2011-12-06 11:14:11 +0000
committerAsk Solem <ask@rabbitmq.com>2011-12-06 11:14:11 +0000
commitc407a756b008344a8ae5df31de3a6e869b3dca78 (patch)
treebd491951cc76b710046d1f33263f9b6f1595203c
parent782c8f7d8e8b10ddb6606c5bd0c421adc05de158 (diff)
downloadanyjson-c407a756b008344a8ae5df31de3a6e869b3dca78.tar.gz
Parses distmeta + adds trove classifiers
-rw-r--r--anyjson/__init__.py8
-rw-r--r--setup.py58
2 files changed, 54 insertions, 12 deletions
diff --git a/anyjson/__init__.py b/anyjson/__init__.py
index 2c6ff53..1cab2c5 100644
--- a/anyjson/__init__.py
+++ b/anyjson/__init__.py
@@ -3,11 +3,15 @@ interface"""
import sys
-__version__ = "0.3.1"
-__author__ = "Rune Halvorsen <runefh@gmail.com>"
+VERSION = (0, 3, 1)
+__version__ = ".".join(map(str, VERSION[0:3])) + "".join(VERSION[3:])
+__author__ = "Rune Halvorsen"
+__contact__ "runefh@gmail.com"
__homepage__ = "http://bitbucket.org/runeh/anyjson/"
__docformat__ = "restructuredtext"
+# -eof meta-
+
implementation = None
"""
diff --git a/setup.py b/setup.py
index 8789aeb..dedcd19 100644
--- a/setup.py
+++ b/setup.py
@@ -9,17 +9,56 @@ try:
except ImportError:
from distutils.core import setup, find_packages
-author = "Rune Halvorsen"
-email = "runefh@gmail.com"
-version = "0.3.1"
-desc = """Wraps the best available JSON implementation available in a common interface"""
+# -*- Distribution Meta -*-
+import re
+re_meta = re.compile(r'__(\w+?)__\s*=\s*(.*)')
+re_vers = re.compile(r'VERSION\s*=\s*\((.*?)\)')
+re_doc = re.compile(r'^"""(.+?)"""')
+rq = lambda s: s.strip("\"'")
+
+def add_default(m):
+ attr_name, attr_value = m.groups()
+ return ((attr_name, rq(attr_value)), )
+
+
+def add_version(m):
+ v = list(map(rq, m.groups()[0].split(", ")))
+ return (("VERSION", ".".join(v[0:3]) + "".join(v[3:])), )
+
+
+def add_doc(m):
+ return (("doc", m.groups()[0]), )
+
+pats = {re_meta: add_default,
+ re_vers: add_version,
+ re_doc: add_doc}
+here = os.path.abspath(os.path.dirname(__file__))
+meta_fh = open(os.path.join(here, "anyjson/__init__.py"))
+try:
+ meta = {}
+ for line in meta_fh:
+ if line.strip() == '# -eof meta-':
+ break
+ for pattern, handler in pats.items():
+ m = pattern.match(line.strip())
+ if m:
+ meta.update(handler(m))
+finally:
+ meta_fh.close()
+
setup(name='anyjson',
- version=version,
- description=desc,
+ version=meta["VERSION"],
+ description=meta["doc"],
+ author=meta["author"],
+ author_email=meta["contact"],
+ url=meta["homepage"],
+ license='BSD',
long_description=open("README").read(),
classifiers=[
+ 'Development Status :: 5 - Production/Stable',
'License :: OSI Approved :: BSD License',
+ 'Operating System :: OS Independent',
'Intended Audience :: Developers',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
@@ -29,12 +68,11 @@ setup(name='anyjson',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.1',
+ 'Programming Language :: Python :: Implementation :: CPython',
+ 'Programming Language :: Python :: Implementation :: PyPy',
+ 'Programming Language :: Python :: Implementation :: Jython',
],
keywords='json',
- author=author,
- author_email=email,
- url='http://bitbucket.org/runeh/anyjson',
- license='BSD',
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
zip_safe=False,
platforms=["any"],