diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index b2cc4f50..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -include README.md LICENSE requirements.txt diff --git a/pyproject.toml b/pyproject.toml index e69de29b..06624560 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -0,0 +1,54 @@ +[build-system] +requires = ['setuptools>=61'] +build-backend = 'setuptools.build_meta' + +[project] +name = 'segmentation_models_pytorch' +description = 'Image segmentation models with pre-trained backbones. PyTorch.' +readme = 'README.md' +requires-python = '>=3.9' +license = {file = 'LICENSE'} +authors = [{name = 'Pavel Iakubovskii', email = 'qubvel@gmail.com'}] +classifiers = [ + 'License :: OSI Approved :: MIT License', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', +] +dependencies = [ + 'efficientnet-pytorch==0.7.1', + 'huggingface-hub>=0.24.6', + 'numpy', + 'pillow', + 'pretrainedmodels==0.7.4', + 'six', + 'timm==0.9.7', + 'torch', + 'torchvision>=0.5', + 'tqdm', +] +dynamic = ['version'] + +[project.optional-dependencies] +docs = [ + 'autodocsumm', + 'huggingface-hub', + 'six==1.15.0', + 'sphinx<7', + 'sphinx-book-theme==1.1.2', +] +test = [ + 'mock', + 'pytest', + 'ruff==0.5.2', +] + +[project.urls] +Homepage = 'https://github.com/qubvel-org/segmentation_models.pytorch' + +[tool.setuptools.dynamic] +version = {attr = 'segmentation_models_pytorch.__version__.__version__'} + +[tool.setuptools.packages.find] +include = ['segmentation_models_pytorch*'] diff --git a/setup.py b/setup.py deleted file mode 100644 index 301b9b83..00000000 --- a/setup.py +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Note: To use the 'upload' functionality of this file, you must: -# $ pip install twine - -import io -import os -import sys -from shutil import rmtree - -from setuptools import find_packages, setup, Command - -# Package meta-data. -NAME = "segmentation_models_pytorch" -DESCRIPTION = "Image segmentation models with pre-trained backbones. PyTorch." -URL = "https://github.com/qubvel/segmentation_models.pytorch" -EMAIL = "qubvel@gmail.com" -AUTHOR = "Pavel Iakubovskii" -REQUIRES_PYTHON = ">=3.9.0" -VERSION = None - -# The rest you shouldn't have to touch too much :) -# ------------------------------------------------ -# Except, perhaps the License and Trove Classifiers! -# If you do change the License, remember to change the Trove Classifier for that! - -here = os.path.abspath(os.path.dirname(__file__)) - -# What packages are required for this module to be executed? -try: - with open(os.path.join(here, "requirements.txt"), encoding="utf-8") as f: - REQUIRED = f.read().split("\n") -except Exception: - REQUIRED = [] - -# What packages are optional? -EXTRAS = {"test": ["pytest", "mock", "ruff==0.5.2"]} - -# Import the README and use it as the long-description. -# Note: this will only work if 'README.md' is present in your MANIFEST.in file! -try: - with io.open(os.path.join(here, "README.md"), encoding="utf-8") as f: - long_description = "\n" + f.read() -except FileNotFoundError: - long_description = DESCRIPTION - -# Load the package's __version__.py module as a dictionary. -about = {} -if not VERSION: - with open(os.path.join(here, NAME, "__version__.py")) as f: - exec(f.read(), about) -else: - about["__version__"] = VERSION - - -class UploadCommand(Command): - """Support setup.py upload.""" - - description = "Build and publish the package." - user_options = [] - - @staticmethod - def status(s): - """Prints 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(here, "dist")) - except OSError: - pass - - self.status("Building Source and Wheel (universal) distribution...") - os.system("{0} setup.py sdist bdist_wheel --universal".format(sys.executable)) - - self.status("Uploading the package to PyPI via Twine...") - os.system("twine upload dist/*") - - self.status("Pushing git tags...") - os.system("git tag v{0}".format(about["__version__"])) - os.system("git push --tags") - - sys.exit() - - -# Where the magic happens: -setup( - name=NAME, - version=about["__version__"], - description=DESCRIPTION, - long_description=long_description, - long_description_content_type="text/markdown", - author=AUTHOR, - author_email=EMAIL, - python_requires=REQUIRES_PYTHON, - url=URL, - packages=find_packages(exclude=("tests", "docs", "images")), - # If your package is a single module, use this instead of 'packages': - # py_modules=['mypackage'], - # entry_points={ - # 'console_scripts': ['mycli=mymodule:cli'], - # }, - install_requires=REQUIRED, - extras_require=EXTRAS, - include_package_data=True, - license="MIT", - classifiers=[ - # Trove classifiers - # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers - "License :: OSI Approved :: MIT License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", - ], - # $ setup.py publish support. - cmdclass={"upload": UploadCommand}, -)