1
0
Fork 0
archivebox/setup.py

146 lines
4.4 KiB
Python
Raw Normal View History

import json
2019-03-27 11:40:00 -04:00
import setuptools
2021-02-01 05:13:46 -05:00
from setuptools.command.test import test
2020-06-25 21:30:29 -04:00
from pathlib import Path
2019-03-27 11:40:00 -04:00
2020-06-25 21:30:29 -04:00
PKG_NAME = "archivebox"
2021-04-23 23:07:47 -04:00
DESCRIPTION = "Self-hosted internet archiving solution."
2020-10-31 03:08:41 -04:00
LICENSE = "MIT"
AUTHOR = "Nick Sweeting"
AUTHOR_EMAIL="git@nicksweeting.com"
2020-11-23 02:04:39 -05:00
REPO_URL = "https://github.com/ArchiveBox/ArchiveBox"
2020-10-31 03:08:41 -04:00
PROJECT_URLS = {
"Source": f"{REPO_URL}",
"Documentation": f"{REPO_URL}/wiki",
"Bug Tracker": f"{REPO_URL}/issues",
2021-04-23 23:07:47 -04:00
"Changelog": f"{REPO_URL}/releases",
2020-10-31 03:08:41 -04:00
"Roadmap": f"{REPO_URL}/wiki/Roadmap",
"Community": f"{REPO_URL}/wiki/Web-Archiving-Community",
2021-04-23 23:07:47 -04:00
"Demo": f"https://demo.archivebox.io",
2020-10-31 03:08:41 -04:00
"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')
2020-10-31 03:08:41 -04:00
VERSION = json.loads((PACKAGE_DIR / "package.json").read_text().strip())['version']
2020-08-18 17:12:49 -04:00
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",
"mypy-extensions>=0.4.3",
2021-04-10 06:22:07 -04:00
"django>=3.1.3,<3.2",
"django-extensions>=3.0.3",
2021-04-23 23:07:47 -04:00
"dateparser>=1.0.0",
"youtube-dl>=2021.04.17",
2022-09-12 16:34:02 -04:00
"yt-dlp>=2021.4.11",
"python-crontab>=2.5.1",
"croniter>=0.3.34",
"w3lib>=1.22.0",
2021-04-23 23:07:47 -04:00
"ipython>5.0.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",
2021-02-16 02:50:05 -05:00
"django-debug-toolbar",
"djdt_flamegraph",
],
}
2020-08-18 17:12:49 -04:00
# To see when setup.py gets called (uncomment for debugging):
# import sys
2020-10-31 03:08:41 -04:00
# print(PACKAGE_DIR, f" (v{VERSION})")
# print('>', sys.executable, *sys.argv)
2021-02-08 12:14:09 -05:00
class DisabledTestCommand(test):
2021-02-01 05:13:46 -05:00
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')
2021-02-01 05:13:46 -05:00
2019-03-27 11:40:00 -04:00
setuptools.setup(
2020-06-25 21:30:29 -04:00
name=PKG_NAME,
version=VERSION,
2020-10-31 03:08:41 -04:00
license=LICENSE,
author=AUTHOR,
author_email=AUTHOR_EMAIL,
description=DESCRIPTION,
2019-05-02 15:39:55 -04:00
long_description=README,
2019-03-27 11:40:00 -04:00
long_description_content_type="text/markdown",
2020-06-25 21:30:29 -04:00
url=REPO_URL,
2020-10-31 03:08:41 -04:00
project_urls=PROJECT_URLS,
python_requires=PYTHON_REQUIRES,
setup_requires=SETUP_REQUIRES,
install_requires=INSTALL_REQUIRES,
extras_require=EXTRAS_REQUIRE,
2020-10-31 03:08:41 -04:00
packages=[PKG_NAME],
2020-08-18 17:12:49 -04:00
include_package_data=True, # see MANIFEST.in
entry_points={
2020-06-25 21:30:29 -04:00
"console_scripts": [
f"{PKG_NAME} = {PKG_NAME}.cli:main",
],
},
2019-03-27 11:40:00 -04:00
classifiers=[
2020-06-25 21:30:29 -04:00
"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",
2019-03-27 11:40:00 -04:00
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
2021-04-23 23:07:47 -04:00
"Programming Language :: Python :: 3.9",
2020-06-25 21:30:29 -04:00
"Framework :: Django",
"Typing :: Typed",
2019-03-27 11:40:00 -04:00
],
2021-02-01 05:13:46 -05:00
cmdclass={
2021-02-08 12:14:09 -05:00
"test": DisabledTestCommand,
2021-02-01 05:13:46 -05:00
},
2019-03-27 11:40:00 -04:00
)