1
0
Fork 0
archivebox/setup.py

160 lines
5.1 KiB
Python
Raw Normal View History

2020-08-18 17:12:49 -04:00
# import sys
import json
2019-03-27 11:40:00 -04:00
import setuptools
2020-06-25 21:30:29 -04:00
from pathlib import Path
2020-08-18 17:12:49 -04:00
# from subprocess import check_call
# from setuptools.command.install import install
# from setuptools.command.develop import develop
# from setuptools.command.egg_info import egg_info
2019-03-27 11:40:00 -04:00
2020-06-25 21:30:29 -04:00
PKG_NAME = "archivebox"
REPO_URL = "https://github.com/pirate/ArchiveBox"
2020-08-18 17:12:49 -04:00
REPO_DIR = Path(__file__).parent.resolve()
PYTHON_DIR = REPO_DIR / PKG_NAME
README = (PYTHON_DIR / "README.md").read_text()
VERSION = json.loads((PYTHON_DIR / "package.json").read_text().strip())['version']
# To see when setup.py gets called (uncomment for debugging):
# import sys
2020-08-18 17:12:49 -04:00
# print(PYTHON_DIR, f" (v{VERSION})")
# print('>', sys.executable, *sys.argv)
2020-08-18 17:12:49 -04:00
# Sketchy way to install npm dependencies as a pip post-install script
2020-08-18 17:12:49 -04:00
# def setup_js():
# if sys.platform.lower() not in ('darwin', 'linux'):
# sys.stderr.write('[!] Warning: ArchiveBox is not officially supported on this platform.\n')
2020-08-18 17:12:49 -04:00
# sys.stderr.write(f'[+] Installing ArchiveBox npm package (PYTHON_DIR={PYTHON_DIR})...\n')
# try:
# check_call(f'npm install -g "{REPO_DIR}"', shell=True)
# sys.stderr.write('[√] Automatically installed npm dependencies.\n')
# except Exception as err:
# sys.stderr.write(f'[!] Failed to auto-install npm dependencies: {err}\n')
# sys.stderr.write(' Install NPM/npm using your system package manager, then run:\n')
# sys.stderr.write(' npm install -g "git+https://github.com/pirate/ArchiveBox.git\n')
2020-08-18 17:12:49 -04:00
# class CustomInstallCommand(install):
# def run(self):
# super().run()
# setup_js()
2020-08-18 17:12:49 -04:00
# class CustomDevelopCommand(develop):
# def run(self):
# super().run()
# setup_js()
2020-08-18 17:12:49 -04:00
# class CustomEggInfoCommand(egg_info):
# def run(self):
# super().run()
# setup_js()
2019-03-27 11:40:00 -04:00
setuptools.setup(
2020-06-25 21:30:29 -04:00
name=PKG_NAME,
version=VERSION,
2020-06-25 21:30:29 -04:00
license="MIT",
2019-03-27 11:40:00 -04:00
author="Nick Sweeting",
author_email="git@nicksweeting.com",
description="The self-hosted internet archive.",
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,
project_urls={
2020-06-25 21:30:29 -04:00
"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",
},
2020-06-25 21:30:29 -04:00
python_requires=">=3.7",
install_requires=[
2020-07-27 23:34:35 -04:00
"requests==2.24.0",
"atomicwrites==1.4.0",
2020-06-25 17:46:11 -04:00
"mypy-extensions==0.4.3",
"base32-crockford==0.3.0",
2020-07-27 23:34:35 -04:00
"django==3.0.8",
"django-extensions==3.0.3",
"dateparser",
2020-06-25 21:30:29 -04:00
"ipython",
"youtube-dl",
"python-crontab==2.5.1",
2020-08-18 01:59:04 -04:00
"croniter==0.3.34",
2020-07-22 11:34:57 -04:00
"w3lib==1.22.0",
# Some/all of these will likely be added in the future:
# wpull
# pywb
# pyppeteer
# archivenow
],
2020-06-25 21:30:29 -04:00
extras_require={
'dev': [
"setuptools",
2020-07-23 12:05:54 -04:00
"wheel",
2020-06-25 21:30:29 -04:00
"twine",
"flake8",
"ipdb",
"mypy",
"django-stubs",
"sphinx",
"sphinx-rtd-theme",
"recommonmark",
2020-07-03 14:13:59 -04:00
"pytest",
"bottle",
2020-06-25 21:30:29 -04:00
],
# 'redis': ['redis', 'django-redis'],
# 'pywb': ['pywb', 'redis'],
},
2020-08-18 17:12:49 -04:00
packages=['archivebox'],
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",
],
},
2020-08-18 17:12:49 -04:00
# cmdclass={
# 'install': CustomInstallCommand,
# 'develop': CustomDevelopCommand,
# 'egg_info': CustomEggInfoCommand,
# },
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",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
"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",
2020-06-25 21:30:29 -04:00
"Framework :: Django",
"Typing :: Typed",
2019-03-27 11:40:00 -04:00
],
)