|
@@ -28,10 +28,43 @@ except ImportError:
|
|
|
from setuptools import setup, find_packages # noqa
|
|
|
from setuptools.command.test import test # noqa
|
|
|
|
|
|
-os.environ["CELERY_NO_EVAL"] = "yes"
|
|
|
-import celery as distmeta
|
|
|
-os.environ.pop("CELERY_NO_EVAL", None)
|
|
|
-sys.modules.pop("celery", None)
|
|
|
+# -- Parse 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, "celery/__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()
|
|
|
+# --
|
|
|
|
|
|
|
|
|
class quicktest(test):
|
|
@@ -89,11 +122,11 @@ else:
|
|
|
|
|
|
setup(
|
|
|
name="celery",
|
|
|
- version=distmeta.__version__,
|
|
|
- description=distmeta.__doc__,
|
|
|
- author=distmeta.__author__,
|
|
|
- author_email=distmeta.__contact__,
|
|
|
- url=distmeta.__homepage__,
|
|
|
+ version=meta["VERSION"],
|
|
|
+ description=meta["doc"],
|
|
|
+ author=meta["author"],
|
|
|
+ author_email=meta["contact"],
|
|
|
+ url=meta["homepage"],
|
|
|
platforms=["any"],
|
|
|
license="BSD",
|
|
|
packages=find_packages(exclude=['ez_setup', 'tests', 'tests.*']),
|