This commit: 1. Formats all of our existing code using `black`. 2. Adds a note about using `black` to `CONTRIBUTING.rst`. 3. Runs `black --check` as part of CI (failing builds that aren't properly formatted).
85 lines
2.6 KiB
Python
85 lines
2.6 KiB
Python
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
|
|
)
|