| # setup.py for pySerial |
| # |
| # Direct install (all systems): |
| # "python setup.py install" |
| # |
| # For Python 3.x use the corresponding Python executable, |
| # e.g. "python3 setup.py ..." |
| # |
| # (C) 2001-2017 Chris Liechti <cliechti@gmx.net> |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| import io |
| import os |
| import re |
| |
| try: |
| from setuptools import setup |
| except ImportError: |
| from distutils.core import setup |
| |
| |
| def read(*names, **kwargs): |
| """Python 2 and Python 3 compatible text file reading. |
| |
| Required for single-sourcing the version string. |
| """ |
| with io.open( |
| os.path.join(os.path.dirname(__file__), *names), |
| encoding=kwargs.get("encoding", "utf8") |
| ) as fp: |
| return fp.read() |
| |
| |
| def find_version(*file_paths): |
| """ |
| Search the file for a version string. |
| |
| file_path contain string path components. |
| |
| Reads the supplied Python module as text without importing it. |
| """ |
| version_file = read(*file_paths) |
| version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", |
| version_file, re.M) |
| if version_match: |
| return version_match.group(1) |
| raise RuntimeError("Unable to find version string.") |
| |
| |
| version = find_version('serial', '__init__.py') |
| |
| |
| setup( |
| name="pyserial", |
| description="Python Serial Port Extension", |
| version=version, |
| author="Chris Liechti", |
| author_email="cliechti@gmx.net", |
| url="https://github.com/pyserial/pyserial", |
| packages=['serial', 'serial.tools', 'serial.urlhandler', 'serial.threaded'], |
| license="BSD", |
| long_description="""\ |
| Python Serial Port Extension for Win32, OSX, Linux, BSD, Jython, IronPython |
| |
| Stable: |
| |
| - Documentation: http://pythonhosted.org/pyserial/ |
| - Download Page: https://pypi.python.org/pypi/pyserial |
| |
| Latest: |
| |
| - Documentation: http://pyserial.readthedocs.io/en/latest/ |
| - Project Homepage: https://github.com/pyserial/pyserial |
| """, |
| classifiers=[ |
| 'Development Status :: 5 - Production/Stable', |
| 'Intended Audience :: Developers', |
| 'Intended Audience :: End Users/Desktop', |
| 'License :: OSI Approved :: BSD License', |
| 'Natural Language :: English', |
| 'Operating System :: POSIX', |
| 'Operating System :: Microsoft :: Windows', |
| 'Operating System :: MacOS :: MacOS X', |
| 'Programming Language :: Python', |
| 'Programming Language :: Python :: 2', |
| 'Programming Language :: Python :: 2.7', |
| 'Programming Language :: Python :: 3', |
| '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', |
| 'Topic :: Communications', |
| 'Topic :: Software Development :: Libraries', |
| 'Topic :: Software Development :: Libraries :: Python Modules', |
| 'Topic :: Terminals :: Serial', |
| ], |
| platforms='any', |
| scripts=['serial/tools/miniterm.py'], |
| ) |