import os import sys from setuptools import find_packages, setup # Hack to silence atexit traceback in newer python versions try: import multiprocessing except ImportError: pass DESCRIPTION = "MongoEngine is a Python Object-Document Mapper for working with MongoDB." try: with open("README.rst") as fin: LONG_DESCRIPTION = fin.read() except Exception: LONG_DESCRIPTION = None def get_version(version_tuple): """Return the version tuple as a string, e.g. for (0, 10, 7), return '0.10.7'. """ return ".".join(map(str, version_tuple)) # Dirty hack to get version number from monogengine/__init__.py - we can't # import it as it depends on PyMongo and PyMongo isn't installed until this # file is read init = os.path.join(os.path.dirname(__file__), "mongoengine", "__init__.py") version_line = list(filter(lambda l: l.startswith("VERSION"), open(init)))[0] VERSION = get_version(eval(version_line.split("=")[-1])) CLASSIFIERS = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database", "Topic :: Software Development :: Libraries :: Python Modules", ] extra_opts = { "packages": find_packages(exclude=["tests", "tests.*"]), "tests_require": ["nose", "coverage==4.2", "blinker", "Pillow>=2.0.0"], } if sys.version_info[0] == 3: extra_opts["use_2to3"] = True if "test" in sys.argv or "nosetests" in sys.argv: extra_opts["packages"] = find_packages() extra_opts["package_data"] = { "tests": ["fields/mongoengine.png", "fields/mongodb_leaf.png"] } else: extra_opts["tests_require"] += ["python-dateutil"] setup( name="mongoengine", version=VERSION, author="Harry Marr", author_email="harry.marr@gmail.com", maintainer="Stefan Wojcik", maintainer_email="wojcikstefan@gmail.com", url="http://mongoengine.org/", download_url="https://github.com/MongoEngine/mongoengine/tarball/master", license="MIT", include_package_data=True, description=DESCRIPTION, long_description=LONG_DESCRIPTION, platforms=["any"], classifiers=CLASSIFIERS, install_requires=["pymongo>=3.4", "six"], test_suite="nose.collector", **extra_opts )