import os import re from setuptools import setup, find_packages here = os.path.abspath(os.path.dirname(__file__)) README = open(os.path.join(here, "README.md")).read() CHANGES = open(os.path.join(here, "CHANGELOG.md")).read() REQUIREMENTS = open(os.path.join(here, "requirements.txt")).readlines() compiled = re.compile("([^=><]*).*") def parse_req(req): return compiled.search(req).group(1).strip() if "APPENLIGHT_DEVELOP" in os.environ: requires = [_f for _f in map(parse_req, REQUIREMENTS) if _f] else: requires = REQUIREMENTS def _get_meta_var(name, data, callback_handler=None): import re matches = re.compile(r"(?:%s)\s*=\s*(.*)" % name).search(data) if matches: if not callable(callback_handler): callback_handler = lambda v: v return callback_handler(eval(matches.groups()[0])) with open(os.path.join(here, "src", "appenlight", "__init__.py"), "r") as _meta: _metadata = _meta.read() __license__ = _get_meta_var("__license__", _metadata) __author__ = _get_meta_var("__author__", _metadata) __url__ = _get_meta_var("__url__", _metadata) found_packages = find_packages("src") found_packages.append("appenlight.migrations.versions") setup( name="appenlight", description="appenlight", long_description=README, classifiers=[ "Framework :: Pyramid", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Topic :: System :: Monitoring", "Topic :: Software Development", "Topic :: Software Development :: Bug Tracking", "Topic :: Internet :: Log Analysis", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", ], version="2.0.0rc1", license=__license__, author=__author__, url=__url__, keywords="web wsgi bfg pylons pyramid flask django monitoring apm instrumentation appenlight", python_requires=">=3.5", long_description_content_type="text/markdown", package_dir={"": "src"}, packages=found_packages, include_package_data=True, zip_safe=False, test_suite="appenlight", install_requires=requires, extras_require={ "dev": [ "coverage", "pytest", "pyramid", "tox", "mock", "pytest-mock", "webtest", ], "lint": ["black"], }, entry_points={ "paste.app_factory": ["main = appenlight:main"], "console_scripts": [ "appenlight-cleanup = appenlight.scripts.cleanup:main", "appenlight-initializedb = appenlight.scripts.initialize_db:main", "appenlight-migratedb = appenlight.scripts.migratedb:main", "appenlight-reindex-elasticsearch = appenlight.scripts.reindex_elasticsearch:main", "appenlight-static = appenlight.scripts.static:main", "appenlight-make-config = appenlight.scripts.make_config:main", ], }, )