From dfd412acfa102c629fe070d42546d6fcfdf3f13a Mon Sep 17 00:00:00 2001 From: Andrei Date: Mon, 29 Apr 2024 19:51:57 +0300 Subject: [PATCH] Moved to pyproject.toml from setup.py --- pyproject.toml | 79 +++++++++++++++++ src/python_rucaptcha/__init__.py | 1 + src/requirements.txt | 4 - src/setup.py | 145 ------------------------------- 4 files changed, 80 insertions(+), 149 deletions(-) delete mode 100644 src/requirements.txt delete mode 100644 src/setup.py diff --git a/pyproject.toml b/pyproject.toml index 41eab8157..afde1efab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,3 +28,82 @@ testpaths = [ "tests", ] addopts = "-vv --tb=short --durations=10" + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] +name = "python-rucaptcha" +dynamic = ["version"] +authors = [ + {name = "AndreiDrang", email = "python-captcha@pm.me"}, +] +description = "Python 3.9+ RuCaptcha library with AIO module." +readme = "README.md" +requires-python = ">=3.9" +keywords = [ "captcha", + "rucaptcha", + "2captcha", + "deathbycaptcha", + "recaptcha", + "geetest", + "hcaptcha", + "capypuzzle", + "tiktok", + "rotatecaptcha", + "funcaptcha", + "keycaptcha", + "python3", + "recaptcha", + "captcha", + "security", + "tiktok", + "tencent", + "atb_captcha", + "python-library", + "python-rucaptcha", + "rucaptcha-client", + "yandex", + "turnstile", + "amazon", + "amazon_waf", + "friendly-captcha" + ] +license = {text = "MIT License"} +classifiers = [ + "License :: OSI Approved :: MIT License", + "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", + "Development Status :: 5 - Production/Stable", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Framework :: AsyncIO", + "Operating System :: Unix", + "Operating System :: Microsoft :: Windows", + "Operating System :: MacOS", +] +dependencies = [ + "requests>=2.21.0", + "aiohttp>=3.9.2", + "msgspec==0.18.*", + "tenacity==8.*" +] + +[tool.setuptools.packages.find] +where = ["src"] +include = ["python_rucaptcha*"] + +[tool.setuptools.dynamic] +version = {attr = "python_rucaptcha.__version__"} + +[project.urls] +Homepage = "https://andreidrang.github.io/python-rucaptcha/" +Documentation = "https://andreidrang.github.io/python-rucaptcha/" +Repository = "https://github.com/AndreiDrang/python-rucaptcha" +Issues = "https://github.com/AndreiDrang/python-rucaptcha/issues" +Changelog = "https://github.com/AndreiDrang/python-rucaptcha/releases" diff --git a/src/python_rucaptcha/__init__.py b/src/python_rucaptcha/__init__.py index e69de29bb..870cabd0f 100644 --- a/src/python_rucaptcha/__init__.py +++ b/src/python_rucaptcha/__init__.py @@ -0,0 +1 @@ +from python_rucaptcha.__version__ import __version__ # noqa diff --git a/src/requirements.txt b/src/requirements.txt deleted file mode 100644 index c9b176894..000000000 --- a/src/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -requests>=2.28.0 -aiohttp>=3.9.0 -msgspec==0.18.* -tenacity==8.2.* diff --git a/src/setup.py b/src/setup.py deleted file mode 100644 index b9664a46e..000000000 --- a/src/setup.py +++ /dev/null @@ -1,145 +0,0 @@ -import io -import os -import sys -import shutil -import logging - -from setuptools import Command, setup -from pkg_resources import parse_requirements - -from python_rucaptcha.__version__ import __version__ - -# Package meta-data. -NAME = "python-rucaptcha" -DESCRIPTION = "Python 3.9+ RuCaptcha library with AIO module." -URL = "https://andreidrang.github.io/python-rucaptcha/" -EMAIL = "python-captcha@pm.me" -AUTHOR = "AndreiDrang, redV0ID" -REQUIRES_PYTHON = ">=3.9.0" -VERSION = __version__ -with open("requirements.txt", "rt") as requirements_txt: - REQUIRED = [str(requirement) for requirement in parse_requirements(requirements_txt)] - - -here = os.path.abspath(os.path.dirname(__file__)) - -# 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 - - -class UploadCommand(Command): - """Support setup.py upload.""" - - description = "Build and publish the package." - user_options = [] - - @staticmethod - def status(s): - """Prints things in bold.""" - print("\033[1m{0}\033[0m".format(s)) - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def run(self): - logging.info("Building Source and Wheel distribution . . .") - os.system("python setup.py sdist bdist_wheel") - - logging.info("Uploading the package to PyPI via Twin . . .") - os.system("twine upload dist/* --verbose") - - logging.info("🤖 Uploaded . . .") - - logging.info("Clean dist . . .") - shutil.rmtree("dist/", ignore_errors=True) - - logging.info("Clean build . . .") - shutil.rmtree("build/", ignore_errors=True) - - logging.info("Clean python_rucaptcha.egg-info . . .") - shutil.rmtree("python_rucaptcha.egg-info/", ignore_errors=True) - sys.exit() - - -setup( - name=NAME, - version=VERSION, - author=AUTHOR, - packages=["python_rucaptcha", "python_rucaptcha.core"], - install_requires=REQUIRED, - description=DESCRIPTION, - long_description=long_description, - long_description_content_type="text/markdown", - author_email=EMAIL, - project_urls={ - "Documentation": URL, - "Source": "https://github.com/AndreiDrang/python-rucaptcha", - "Changelog": "https://github.com/AndreiDrang/python-rucaptcha/releases", - "Issue tracker": "https://github.com/AndreiDrang/python-rucaptcha/issues", - }, - package_dir={"python-rucaptcha": "python_rucaptcha"}, - include_package_data=True, - py_modules=["python_rucaptcha"], - url=URL, - license="MIT", - keywords=""" - captcha - rucaptcha - 2captcha - deathbycaptcha - recaptcha - geetest - hcaptcha - capypuzzle - tiktok - rotatecaptcha - funcaptcha - keycaptcha - python3 - recaptcha - captcha - security - tiktok - tencent - atb_captcha - python-library - python-rucaptcha - rucaptcha-client - yandex - turnstile - amazon - amazon_waf - friendly-captcha - """, - python_requires=REQUIRES_PYTHON, - zip_safe=False, - classifiers=[ - # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers - "License :: OSI Approved :: MIT License", - "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Development Status :: 5 - Production/Stable", - "Framework :: AsyncIO", - "Operating System :: Unix", - "Operating System :: Microsoft :: Windows", - "Operating System :: MacOS", - ], - # Build - `python setup.py bdist_wheel` - # Upload package: `python3 setup.py upload` - cmdclass={"upload": UploadCommand}, -) -print("🤖 Success install ...")