python3-anticaptcha/setup.py

118 lines
3.5 KiB
Python

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://github.com/AndreiDrang/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 bdist_wheel")
logging.info("Uploading the package to PyPI via Twin . . .")
os.system("twine upload dist/* --verbose")
logging.info("🤖 Uploaded . . .")
logging.info("Clean builds . . .")
shutil.rmtree("dist/")
sys.exit()
setup(
name=NAME,
version=VERSION,
author=AUTHOR,
packages=["python3_anticaptcha"],
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,
author_email=EMAIL,
license="MIT",
keywords="""
captcha
anticaptcha
python3
recaptcha
security
api
python-library
python-anticaptcha
anticaptcha-client
""",
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",
"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 ...")