From 606d3881bdacbe0665de84418bc0338fcdfa9382 Mon Sep 17 00:00:00 2001 From: Andrei Date: Fri, 4 Oct 2024 17:46:39 +0300 Subject: [PATCH] 2.0.2a. Build system updated --- Makefile | 8 +- pyproject.toml | 76 ++++++++++++++ src/python3_anticaptcha/__init__.py | 1 + src/python3_anticaptcha/__version__.py | 2 +- src/requirements.txt | 4 - src/setup.py | 137 ------------------------- 6 files changed, 84 insertions(+), 144 deletions(-) delete mode 100644 src/requirements.txt delete mode 100644 src/setup.py diff --git a/Makefile b/Makefile index 46bc422..e68cae9 100644 --- a/Makefile +++ b/Makefile @@ -26,9 +26,13 @@ lint: black src/ --check && \ isort src/ --check-only +build: + pip3 install --upgrade build setuptools + python3 -m build + upload: - pip install twine - cd src/ && python setup.py upload + pip3 install twine wheel setuptools build + twine upload dist/* doc: install cd docs/ && \ diff --git a/pyproject.toml b/pyproject.toml index 6c5d122..e586328 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,3 +27,79 @@ testpaths = [ "tests", ] addopts = "-vv --tb=short --durations=5" + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] +name = "python3-anticaptcha" +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", + "anticaptcha", + "deathbycaptcha", + "recaptcha", + "geetest", + "hcaptcha", + "capypuzzle", + "rotatecaptcha", + "funcaptcha", + "keycaptcha", + "python3", + "recaptcha", + "captcha", + "security", + "tencent", + "atb_captcha", + "python-library", + "python-anticaptcha", + "anticaptcha-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,<10" +] + +[tool.setuptools.packages.find] +where = ["src"] +include = ["python3_anticaptcha*"] + +[tool.setuptools.dynamic] +version = {attr = "python3_anticaptcha.__version__"} + +[project.urls] +Homepage = "https://andreidrang.github.io/python3-anticaptcha" +Documentation = "https://andreidrang.github.io/python3-anticaptcha" +Repository = "https://github.com/AndreiDrang/python3-anticaptcha" +Issues = "https://github.com/AndreiDrang/python3-anticaptcha/issues" +Changelog = "https://github.com/AndreiDrang/python3-anticaptcha/releases" diff --git a/src/python3_anticaptcha/__init__.py b/src/python3_anticaptcha/__init__.py index e69de29..55e8216 100644 --- a/src/python3_anticaptcha/__init__.py +++ b/src/python3_anticaptcha/__init__.py @@ -0,0 +1 @@ +from python3_anticaptcha.__version__ import __version__ # noqa diff --git a/src/python3_anticaptcha/__version__.py b/src/python3_anticaptcha/__version__.py index 911cb08..b0dde46 100644 --- a/src/python3_anticaptcha/__version__.py +++ b/src/python3_anticaptcha/__version__.py @@ -1 +1 @@ -__version__ = "2.0.1a" +__version__ = "2.0.2a" diff --git a/src/requirements.txt b/src/requirements.txt deleted file mode 100644 index c42c6a6..0000000 --- a/src/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -requests>=2.21.0 -aiohttp>=3.7.4 -tenacity==9.* -pydantic>=2.4.0 diff --git a/src/setup.py b/src/setup.py deleted file mode 100644 index 56e85ba..0000000 --- a/src/setup.py +++ /dev/null @@ -1,137 +0,0 @@ -import io -import os -import sys -import shutil -import logging - -from setuptools import Command, setup -from pkg_resources import parse_requirements - -from python3_anticaptcha.__version__ import __version__ - -# Package meta-data. -NAME = "python3-anticaptcha" -DESCRIPTION = "Python 3 Anti-Captcha service library with AIO module." -URL = "https://andreidrang.github.io/python3-anticaptcha" -EMAIL = "python-captcha@pm.me" -AUTHOR = "AndreiDrang, redV0ID" -REQUIRES_PYTHON = ">=3.7.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("Clean builds . . .") - shutil.rmtree("./dist/", ignore_errors=True) - - 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/") - - logging.info("Clean build . . .") - shutil.rmtree("build/") - - logging.info("Clean python3_anticaptcha.egg-info . . .") - shutil.rmtree("python3_anticaptcha.egg-info/") - sys.exit() - - -setup( - name=NAME, - version=VERSION, - author=AUTHOR, - packages=["python3_anticaptcha", "python3_anticaptcha.core"], - install_requires=REQUIRED, - description=DESCRIPTION, - long_description=long_description, - long_description_content_type="text/markdown", - package_dir={"python3-anticaptcha": "python3_anticaptcha"}, - include_package_data=True, - url=URL, - project_urls={ - "Documentation": URL, - "Source": "https://github.com/AndreiDrang/python3-anticaptcha", - "Changelog": "https://github.com/AndreiDrang/python3-anticaptcha/releases", - "Issue tracker": "https://github.com/AndreiDrang/python3-anticaptcha/issues", - }, - author_email=EMAIL, - license="MIT", - keywords=""" - captcha - anticaptcha - python3 - recaptcha - recaptchav2 - recaptchav3 - security - api - funcaptcha - keycaptcha - recaptcha - geetest - hcaptcha - python-library - python-anticaptcha - anticaptcha-client - imagecaptcha - turnstile - """, - python_requires=REQUIRES_PYTHON, - zip_safe=False, - classifiers=[ - # Trove 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)", - "Development Status :: 5 - Production/Stable", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Framework :: AsyncIO", - "Operating System :: Unix", - "Operating System :: Microsoft :: Windows", - "Operating System :: MacOS", - ], - # Build and upload package: python3 setup.py upload - cmdclass={"upload": UploadCommand}, -) -print("🤖 Success install ...")