| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- import json
- import setuptools
- from setuptools.command.test import test
- from pathlib import Path
- PKG_NAME = "archivebox"
- DESCRIPTION = "The self-hosted internet archive."
- LICENSE = "MIT"
- AUTHOR = "Nick Sweeting"
- AUTHOR_EMAIL="[email protected]"
- REPO_URL = "https://github.com/ArchiveBox/ArchiveBox"
- PROJECT_URLS = {
- "Source": f"{REPO_URL}",
- "Documentation": f"{REPO_URL}/wiki",
- "Bug Tracker": f"{REPO_URL}/issues",
- "Changelog": f"{REPO_URL}/wiki/Changelog",
- "Roadmap": f"{REPO_URL}/wiki/Roadmap",
- "Community": f"{REPO_URL}/wiki/Web-Archiving-Community",
- "Donate": f"{REPO_URL}/wiki/Donations",
- }
- ROOT_DIR = Path(__file__).parent.resolve()
- PACKAGE_DIR = ROOT_DIR / PKG_NAME
- README = (PACKAGE_DIR / "README.md").read_text(encoding='utf-8', errors='ignore')
- VERSION = json.loads((PACKAGE_DIR / "package.json").read_text().strip())['version']
- PYTHON_REQUIRES = ">=3.7"
- SETUP_REQUIRES = ["wheel"]
- INSTALL_REQUIRES = [
- # only add things here that have corresponding apt python3-packages available
- # anything added here also needs to be added to our package dependencies in
- # stdeb.cfg (apt), archivebox.rb (brew), Dockerfile, etc.
- # if there is no apt python3-package equivalent, then vendor it instead in
- # ./archivebox/vendor/
- "requests>=2.24.0",
- "atomicwrites>=1.4.0",
- "mypy-extensions>=0.4.3",
- "django>=3.1.3",
- "django-extensions>=3.0.3",
- "dateparser",
- "ipython",
- "youtube-dl",
- "python-crontab>=2.5.1",
- "croniter>=0.3.34",
- "w3lib>=1.22.0",
- ]
- EXTRAS_REQUIRE = {
- 'sonic': [
- "sonic-client>=0.0.5",
- ],
- 'dev': [
- "setuptools",
- "twine",
- "wheel",
- "flake8",
- "ipdb",
- "mypy",
- "django-stubs",
- "sphinx",
- "sphinx-rtd-theme",
- "recommonmark",
- "pytest",
- "bottle",
- "stdeb",
- "django-debug-toolbar",
- "djdt_flamegraph",
- ],
- }
- # To see when setup.py gets called (uncomment for debugging):
- # import sys
- # print(PACKAGE_DIR, f" (v{VERSION})")
- # print('>', sys.executable, *sys.argv)
- class DisabledTestCommand(test):
- def run(self):
- # setup.py test is deprecated, disable it here by force so stdeb doesnt run it
- print()
- print('[X] Running tests via setup.py test is deprecated.')
- print(' Hint: Use the ./bin/test.sh script or pytest instead')
- setuptools.setup(
- name=PKG_NAME,
- version=VERSION,
- license=LICENSE,
- author=AUTHOR,
- author_email=AUTHOR_EMAIL,
- description=DESCRIPTION,
- long_description=README,
- long_description_content_type="text/markdown",
- url=REPO_URL,
- project_urls=PROJECT_URLS,
- python_requires=PYTHON_REQUIRES,
- setup_requires=SETUP_REQUIRES,
- install_requires=INSTALL_REQUIRES,
- extras_require=EXTRAS_REQUIRE,
- packages=[PKG_NAME],
- include_package_data=True, # see MANIFEST.in
- entry_points={
- "console_scripts": [
- f"{PKG_NAME} = {PKG_NAME}.cli:main",
- ],
- },
- classifiers=[
- "License :: OSI Approved :: MIT License",
- "Natural Language :: English",
- "Operating System :: OS Independent",
- "Development Status :: 4 - Beta",
- "Topic :: Utilities",
- "Topic :: System :: Archiving",
- "Topic :: System :: Archiving :: Backup",
- "Topic :: System :: Recovery Tools",
- "Topic :: Sociology :: History",
- "Topic :: Internet :: WWW/HTTP",
- "Topic :: Internet :: WWW/HTTP :: Indexing/Search",
- "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
- "Topic :: Software Development :: Libraries :: Python Modules",
- "Intended Audience :: Developers",
- "Intended Audience :: Education",
- "Intended Audience :: End Users/Desktop",
- "Intended Audience :: Information Technology",
- "Intended Audience :: Legal Industry",
- "Intended Audience :: System Administrators",
-
- "Environment :: Console",
- "Environment :: Web Environment",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: 3.8",
- "Framework :: Django",
- "Typing :: Typed",
- ],
- cmdclass={
- "test": DisabledTestCommand,
- },
- )
|