/ setup.py
setup.py
1 # SPDX-FileCopyrightText: 2019 Nicholas Tollervey, written for Adafruit Industries 2 # 3 # SPDX-License-Identifier: MIT 4 5 6 """A setuptools based setup module. 7 See: 8 https://packaging.python.org/guides/distributing-packages-using-setuptools/ 9 https://github.com/pypa/sampleproject 10 """ 11 12 # Always prefer setuptools over distutils 13 from setuptools import setup, find_packages 14 15 # To use a consistent encoding 16 from codecs import open 17 from os import path 18 19 here = path.abspath(path.dirname(__file__)) 20 21 # Get the long description from the README file 22 with open(path.join(here, "README.rst"), encoding="utf-8") as f: 23 long_description = f.read() 24 25 install_requires = [ 26 "semver~=2.13", 27 "Click>=7.0", 28 "appdirs>=1.4.3", 29 "requests>=2.22.0", 30 ] 31 32 extras_require = { 33 "tests": [ 34 "pytest", 35 "pylint", 36 "pytest-cov", 37 "pytest-random-order>=1.0.0", 38 "pytest-faulthandler", 39 "coverage", 40 "black", 41 ], 42 "docs": ["sphinx"], 43 "package": [ 44 # Wheel building and PyPI uploading 45 "wheel", 46 "twine", 47 ], 48 } 49 50 extras_require["dev"] = ( 51 extras_require["tests"] + extras_require["docs"] + extras_require["package"] 52 ) 53 54 extras_require["all"] = list( 55 {req for extra, reqs in extras_require.items() for req in reqs} 56 ) 57 58 setup( 59 name="circup", 60 use_scm_version=True, 61 setup_requires=["setuptools_scm"], 62 description="A tool to manage/update libraries on CircuitPython devices.", 63 long_description=long_description, 64 long_description_content_type="text/x-rst", 65 # The project's main homepage. 66 url="https://github.com/adafruit/circup", 67 # Author details 68 author="Adafruit Industries", 69 author_email="circuitpython@adafruit.com", 70 install_requires=install_requires, 71 extras_require=extras_require, 72 # Choose your license 73 license="MIT", 74 # See https://pypi.python.org/pypi?%3Aaction=list_classifiers 75 classifiers=[ 76 "Development Status :: 3 - Alpha", 77 "Environment :: Console", 78 "Intended Audience :: Developers", 79 "Intended Audience :: Education", 80 "License :: OSI Approved :: MIT License", 81 "Operating System :: POSIX", 82 "Operating System :: MacOS :: MacOS X", 83 "Operating System :: Microsoft :: Windows", 84 "Programming Language :: Python :: 3.6", 85 "Programming Language :: Python :: 3.7", 86 "Programming Language :: Python :: 3.8", 87 "Programming Language :: Python :: 3.9", 88 "Topic :: Education", 89 "Topic :: Software Development :: Embedded Systems", 90 "Topic :: System :: Software Distribution", 91 ], 92 entry_points={"console_scripts": ["circup=circup:main"]}, 93 # What does your project relate to? 94 keywords="adafruit, blinka, circuitpython, micropython, libraries", 95 # You can just specify the packages manually here if your project is 96 # simple. Or you can use find_packages(). 97 py_modules=["circup"], 98 )