/ 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  )