blob: 1037e500ce66d4d7ece8c1b346dce2c0342dda9f [file] [log] [blame]
#!/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
)