#!/usr/bin/env python # -*- coding: utf-8 -*- """ Setup script for "parse_type" package. USAGE: python setup.py install # OR: pip install . SEE ALSO: * https://pypi.org/pypi/parse_type * https://github.com/jenisys/parse_type RELATED: * https://setuptools.readthedocs.io/en/latest/history.html """ import sys import os.path sys.path.insert(0, os.curdir) # -- USE: setuptools from setuptools import setup, find_packages # ----------------------------------------------------------------------------- # PREPARE SETUP: # ----------------------------------------------------------------------------- HERE = os.path.dirname(__file__) python_version = float('%s.%s' % sys.version_info[:2]) README = os.path.join(HERE, "README.rst") long_description = ''.join(open(README).readlines()[4:]) extra = dict( tests_require=[ "pytest < 5.0; python_version < '3.0'", # >= 4.2 "pytest >= 5.0; python_version >= '3.0'", "pytest-html >= 1.19.0", # -- PYTHON 2.6 SUPPORT: "unittest2; python_version < '2.7'", ], ) if python_version >= 3.0: extra["use_2to3"] = True # -- NICE-TO-HAVE: # # FILE: setup.cfg -- Use pytest-runner (ptr) as test runner. # [aliases] # test = ptr # USE_PYTEST_RUNNER = os.environ.get("PYSETUP_TEST", "pytest") == "pytest" USE_PYTEST_RUNNER = os.environ.get("PYSETUP_TEST", "no") == "pytest" if USE_PYTEST_RUNNER: extra["tests_require"].append("pytest-runner") # ----------------------------------------------------------------------------- # UTILITY: # ----------------------------------------------------------------------------- def find_packages_by_root_package(where): """ Better than excluding everything that is not needed, collect only what is needed. """ root_package = os.path.basename(where) packages = [ "%s.%s" % (root_package, sub_package) for sub_package in find_packages(where)] packages.insert(0, root_package) return packages # ----------------------------------------------------------------------------- # SETUP: # ----------------------------------------------------------------------------- setup( name = "parse_type", version = "0.5.3", author = "Jens Engel", author_email = "jenisys@noreply.github.com", url = "https://github.com/jenisys/parse_type", download_url= "http://pypi.python.org/pypi/parse_type", description = "Simplifies to build parse types based on the parse module", long_description = long_description, keywords= "parse, parsing", license = "BSD", packages = find_packages_by_root_package("parse_type"), include_package_data = True, # -- REQUIREMENTS: python_requires=">=2.6, !=3.0.*, !=3.1.*", install_requires=[ "parse >= 1.9.1", "enum34; python_version < '3.4'", "six >= 1.11", "ordereddict; python_version < '2.7'", ], extras_require={ 'docs': ["sphinx>=1.2"], 'develop': [ "coverage >= 4.4", "pytest < 5.0; python_version < '3.0'", # >= 4.2 "pytest >= 5.0; python_version >= '3.0'", "pytest-html >= 1.19.0", "pytest-cov", "tox >= 2.8", ], }, test_suite = "tests", test_loader = "setuptools.command.test:ScanningLoader", zip_safe = True, classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Libraries :: Python Modules", "License :: OSI Approved :: BSD License", ], platforms = ['any'], **extra )