| import io |
| import os |
| import re |
| import sys |
| from shutil import rmtree |
| from typing import Tuple, List |
|
|
| from setuptools import Command, find_packages, setup |
|
|
| |
| name = "PhaseNet" |
| description = "PhaseNet" |
| url = "" |
| email = "wayne.weiqiang@gmail.com" |
| author = "Weiqiang Zhu" |
| requires_python = ">=3.6.0" |
| current_dir = os.path.abspath(os.path.dirname(__file__)) |
|
|
|
|
| def get_version(): |
| version_file = os.path.join(current_dir, "phasenet", "__init__.py") |
| with io.open(version_file, encoding="utf-8") as f: |
| return re.search(r'^__version__ = [\'"]([^\'"]*)[\'"]', f.read(), re.M).group(1) |
|
|
|
|
| |
| try: |
| with open(os.path.join(current_dir, "requirements.txt"), encoding="utf-8") as f: |
| required = f.read().split("\n") |
| except FileNotFoundError: |
| required = [] |
|
|
| |
| extras = {"test": ["pytest"]} |
|
|
| version = get_version() |
|
|
| about = {"__version__": version} |
|
|
|
|
| def get_test_requirements(): |
| requirements = ["pytest"] |
| if sys.version_info < (3, 3): |
| requirements.append("mock") |
| return requirements |
|
|
|
|
| def get_long_description(): |
| |
| |
| |
| return "" |
|
|
|
|
| class UploadCommand(Command): |
| """Support setup.py upload.""" |
|
|
| description = "Build and publish the package." |
| user_options: List[Tuple] = [] |
|
|
| @staticmethod |
| def status(s): |
| """Print things in bold.""" |
| print(s) |
|
|
| def initialize_options(self): |
| pass |
|
|
| def finalize_options(self): |
| pass |
|
|
| def run(self): |
| try: |
| self.status("Removing previous builds...") |
| rmtree(os.path.join(current_dir, "dist")) |
| except OSError: |
| pass |
|
|
| self.status("Building Source and Wheel (universal) distribution...") |
| os.system(f"{sys.executable} setup.py sdist bdist_wheel --universal") |
|
|
| self.status("Uploading the package to PyPI via Twine...") |
| os.system("twine upload dist/*") |
|
|
| self.status("Pushing git tags...") |
| os.system("git tag v{}".format(about["__version__"])) |
| os.system("git push --tags") |
|
|
| sys.exit() |
|
|
|
|
| setup( |
| name=name, |
| version=version, |
| description=description, |
| long_description=get_long_description(), |
| long_description_content_type="text/markdown", |
| author="Weiqiang Zhu", |
| author_email = "wayne.weiqiang@gmail.com", |
| license="GPL-3.0", |
| url=url, |
| packages=find_packages(exclude=["tests", "docs", "dataset", "model", "log"]), |
| install_requires=required, |
| extras_require=extras, |
| classifiers=[ |
| "License :: OSI Approved :: BSD License", |
| "Intended Audience :: Developers", |
| "Intended Audience :: Science/Research", |
| "Operating System :: OS Independent", |
| "Programming Language :: Python", |
| "Programming Language :: Python :: 3", |
| "Topic :: Software Development :: Libraries", |
| "Topic :: Software Development :: Libraries :: Python Modules", |
| ], |
| cmdclass={"upload": UploadCommand}, |
| ) |
|
|