switch from pipenv and setup.py to PDM for python packaging
This commit is contained in:
parent
8caffc4b4e
commit
53cff45ec0
4 changed files with 2331 additions and 136 deletions
|
@ -1,13 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "archivebox",
|
"name": "archivebox",
|
||||||
"version": "0.6.3",
|
"version": "0.7.0",
|
||||||
"description": "ArchiveBox: The self-hosted internet archive",
|
"description": "ArchiveBox: The self-hosted internet archive",
|
||||||
"author": "Nick Sweeting <archivebox-npm@sweeting.me>",
|
"author": "Nick Sweeting <archivebox-npm@sweeting.me>",
|
||||||
"repository": "github:ArchiveBox/ArchiveBox",
|
"repository": "github:ArchiveBox/ArchiveBox",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@postlight/mercury-parser": "git+https://github.com/postlight/mercury-parser.git",
|
"@postlight/mercury-parser": "git+https://github.com/postlight/mercury-parser.git",
|
||||||
"playwright": "^1.37.1",
|
|
||||||
"readability-extractor": "git+https://github.com/ArchiveBox/readability-extractor.git",
|
"readability-extractor": "git+https://github.com/ArchiveBox/readability-extractor.git",
|
||||||
"single-file-cli": "^1.0.63"
|
"single-file-cli": "^1.0.63"
|
||||||
}
|
}
|
||||||
|
|
118
pyproject.toml
Normal file
118
pyproject.toml
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
[project]
|
||||||
|
name = "archivebox"
|
||||||
|
version = "0.7.0"
|
||||||
|
description = "Self-hosted internet archiving solution."
|
||||||
|
authors = [
|
||||||
|
{name = "Nick Sweeting", email = "setup.py@archivebox.io"},
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
"setuptools>=68.2.2",
|
||||||
|
"croniter>=0.3.34",
|
||||||
|
"dateparser>=1.0.0",
|
||||||
|
"django-extensions>=3.0.3",
|
||||||
|
"django>=3.1.3,<3.2",
|
||||||
|
"ipython>5.0.0",
|
||||||
|
"mypy-extensions>=0.4.3",
|
||||||
|
"python-crontab>=2.5.1",
|
||||||
|
"requests>=2.24.0",
|
||||||
|
"w3lib>=1.22.0",
|
||||||
|
"youtube-dl>=2021.04.17",
|
||||||
|
"yt-dlp>=2021.4.11",
|
||||||
|
"playwright>=1.39.0",
|
||||||
|
]
|
||||||
|
requires-python = ">=3.9"
|
||||||
|
readme = "README.md"
|
||||||
|
license = {text = "MIT"}
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 4 - Beta",
|
||||||
|
"Environment :: Console",
|
||||||
|
"Environment :: Web Environment",
|
||||||
|
"Framework :: Django",
|
||||||
|
"Intended Audience :: Developers",
|
||||||
|
"Intended Audience :: Education",
|
||||||
|
"Intended Audience :: End Users/Desktop",
|
||||||
|
"Intended Audience :: Information Technology",
|
||||||
|
"Intended Audience :: Legal Industry",
|
||||||
|
"Intended Audience :: System Administrators",
|
||||||
|
"License :: OSI Approved :: MIT License",
|
||||||
|
"Natural Language :: English",
|
||||||
|
"Operating System :: OS Independent",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.7",
|
||||||
|
"Programming Language :: Python :: 3.8",
|
||||||
|
"Programming Language :: Python :: 3.9",
|
||||||
|
"Topic :: Internet :: WWW/HTTP",
|
||||||
|
"Topic :: Internet :: WWW/HTTP :: Indexing/Search",
|
||||||
|
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
|
||||||
|
"Topic :: Sociology :: History",
|
||||||
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
||||||
|
"Topic :: System :: Archiving",
|
||||||
|
"Topic :: System :: Archiving :: Backup",
|
||||||
|
"Topic :: System :: Recovery Tools",
|
||||||
|
"Topic :: Utilities",
|
||||||
|
"Typing :: Typed",
|
||||||
|
]
|
||||||
|
|
||||||
|
# pdm lock -G:all
|
||||||
|
# pdm install -G:all
|
||||||
|
[tool.pdm.dev-dependencies]
|
||||||
|
build = [
|
||||||
|
"pdm",
|
||||||
|
"bottle",
|
||||||
|
"setuptools",
|
||||||
|
"stdeb",
|
||||||
|
"twine",
|
||||||
|
"wheel",
|
||||||
|
]
|
||||||
|
lint = [
|
||||||
|
"flake8",
|
||||||
|
"mypy",
|
||||||
|
"django-stubs",
|
||||||
|
]
|
||||||
|
test = [
|
||||||
|
"pytest",
|
||||||
|
]
|
||||||
|
debug = [
|
||||||
|
"django-debug-toolbar",
|
||||||
|
"djdt_flamegraph",
|
||||||
|
"ipdb",
|
||||||
|
]
|
||||||
|
doc = [
|
||||||
|
"recommonmark",
|
||||||
|
"sphinx",
|
||||||
|
"sphinx-rtd-theme",
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.optional-dependencies]
|
||||||
|
sonic = [
|
||||||
|
"sonic-client>=0.0.5",
|
||||||
|
]
|
||||||
|
ldap = [
|
||||||
|
"django-auth-ldap>=4.1.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
archivebox = "archivebox.cli:main"
|
||||||
|
|
||||||
|
[tool.pdm.scripts]
|
||||||
|
lint = "./bin/lint.sh"
|
||||||
|
test = "./bin/test.sh"
|
||||||
|
# all = {composite = ["lint mypackage/", "test -v tests/"]}
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["pdm-backend"]
|
||||||
|
build-backend = "pdm.backend"
|
||||||
|
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
Homepage = "https://github.com/ArchiveBox/ArchiveBox"
|
||||||
|
Source = "https://github.com/ArchiveBox/ArchiveBox"
|
||||||
|
Documentation = "https://github.com/ArchiveBox/ArchiveBox/wiki"
|
||||||
|
"Bug Tracker" = "https://github.com/ArchiveBox/ArchiveBox/issues"
|
||||||
|
Changelog = "https://github.com/ArchiveBox/ArchiveBox/releases"
|
||||||
|
Roadmap = "https://github.com/ArchiveBox/ArchiveBox/wiki/Roadmap"
|
||||||
|
Community = "https://github.com/ArchiveBox/ArchiveBox/wiki/Web-Archiving-Community"
|
||||||
|
Demo = "https://demo.archivebox.io"
|
||||||
|
Donate = "https://github.com/ArchiveBox/ArchiveBox/wiki/Donations"
|
||||||
|
|
||||||
|
|
269
setup.py
269
setup.py
|
@ -1,149 +1,150 @@
|
||||||
import json
|
#####################################################################################
|
||||||
import setuptools
|
# THIS FILE IS DEPRECATED AND WILL BE REMOVED EVENTUALLU
|
||||||
from setuptools.command.test import test
|
# ALL FUTURE CHANGES SHOULD HAPPEN IN pyproject.toml with pdm
|
||||||
|
#####################################################################################
|
||||||
|
|
||||||
from pathlib import Path
|
# import json
|
||||||
|
# import setuptools
|
||||||
|
# from setuptools.command.test import test
|
||||||
|
|
||||||
|
# from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
PKG_NAME = "archivebox"
|
# PKG_NAME = "archivebox"
|
||||||
DESCRIPTION = "Self-hosted internet archiving solution."
|
# DESCRIPTION = "Self-hosted internet archiving solution."
|
||||||
LICENSE = "MIT"
|
# LICENSE = "MIT"
|
||||||
AUTHOR = "Nick Sweeting"
|
# AUTHOR = "Nick Sweeting"
|
||||||
AUTHOR_EMAIL="git@nicksweeting.com"
|
# AUTHOR_EMAIL="setup.py@archivebox.io"
|
||||||
REPO_URL = "https://github.com/ArchiveBox/ArchiveBox"
|
# REPO_URL = "https://github.com/ArchiveBox/ArchiveBox"
|
||||||
PROJECT_URLS = {
|
# PROJECT_URLS = {
|
||||||
"Source": f"{REPO_URL}",
|
# "Source": f"{REPO_URL}",
|
||||||
"Documentation": f"{REPO_URL}/wiki",
|
# "Documentation": f"{REPO_URL}/wiki",
|
||||||
"Bug Tracker": f"{REPO_URL}/issues",
|
# "Bug Tracker": f"{REPO_URL}/issues",
|
||||||
"Changelog": f"{REPO_URL}/releases",
|
# "Changelog": f"{REPO_URL}/releases",
|
||||||
"Roadmap": f"{REPO_URL}/wiki/Roadmap",
|
# "Roadmap": f"{REPO_URL}/wiki/Roadmap",
|
||||||
"Community": f"{REPO_URL}/wiki/Web-Archiving-Community",
|
# "Community": f"{REPO_URL}/wiki/Web-Archiving-Community",
|
||||||
"Demo": f"https://demo.archivebox.io",
|
# "Demo": f"https://demo.archivebox.io",
|
||||||
"Donate": f"{REPO_URL}/wiki/Donations",
|
# "Donate": f"{REPO_URL}/wiki/Donations",
|
||||||
}
|
# }
|
||||||
|
|
||||||
ROOT_DIR = Path(__file__).parent.resolve()
|
# ROOT_DIR = Path(__file__).parent.resolve()
|
||||||
PACKAGE_DIR = ROOT_DIR / PKG_NAME
|
# PACKAGE_DIR = ROOT_DIR / PKG_NAME
|
||||||
|
|
||||||
README = (PACKAGE_DIR / "README.md").read_text(encoding='utf-8', errors='ignore')
|
# README = (PACKAGE_DIR / "README.md").read_text(encoding='utf-8', errors='ignore')
|
||||||
VERSION = json.loads((PACKAGE_DIR / "package.json").read_text().strip())['version']
|
# VERSION = json.loads((PACKAGE_DIR / "package.json").read_text().strip())['version']
|
||||||
|
|
||||||
PYTHON_REQUIRES = ">=3.9"
|
# class DisabledTestCommand(test):
|
||||||
SETUP_REQUIRES = ["wheel"]
|
# def run(self):
|
||||||
INSTALL_REQUIRES = [
|
# # setup.py test is deprecated, disable it here by force so stdeb doesnt run it
|
||||||
# only add things here that have corresponding apt python3-packages available
|
# print('\n[X] Running tests via setup.py test is deprecated.')
|
||||||
# anything added here also needs to be added to our package dependencies in
|
# print(' Hint: Use the ./bin/test.sh script or pytest instead')
|
||||||
# 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",
|
|
||||||
"django>=3.1.3,<3.2",
|
|
||||||
"django-extensions>=3.0.3",
|
|
||||||
"dateparser>=1.0.0",
|
|
||||||
"youtube-dl>=2021.04.17",
|
|
||||||
"yt-dlp>=2021.4.11",
|
|
||||||
"python-crontab>=2.5.1",
|
|
||||||
"croniter>=0.3.34",
|
|
||||||
"w3lib>=1.22.0",
|
|
||||||
"ipython>5.0.0",
|
|
||||||
]
|
|
||||||
EXTRAS_REQUIRE = {
|
|
||||||
'sonic': [
|
|
||||||
"sonic-client>=0.0.5",
|
|
||||||
],
|
|
||||||
'ldap': [
|
|
||||||
"django-auth-ldap>=4.1.0",
|
|
||||||
],
|
|
||||||
'dev': [
|
|
||||||
"build",
|
|
||||||
"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):
|
# To see when setup.py gets called (uncomment for debugging):
|
||||||
# import sys
|
# import sys
|
||||||
# print(PACKAGE_DIR, f" (v{VERSION})")
|
# print(PACKAGE_DIR, f" (v{VERSION})")
|
||||||
# print('>', sys.executable, *sys.argv)
|
# print('>', sys.executable, *sys.argv)
|
||||||
|
|
||||||
|
# PYTHON_REQUIRES = ">=3.9"
|
||||||
|
# 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",
|
||||||
|
# "django>=3.1.3,<3.2",
|
||||||
|
# "django-extensions>=3.0.3",
|
||||||
|
# "dateparser>=1.0.0",
|
||||||
|
# "youtube-dl>=2021.04.17",
|
||||||
|
# "yt-dlp>=2021.4.11",
|
||||||
|
# "python-crontab>=2.5.1",
|
||||||
|
# "croniter>=0.3.34",
|
||||||
|
# "w3lib>=1.22.0",
|
||||||
|
# "ipython>5.0.0",
|
||||||
|
# ]
|
||||||
|
# EXTRAS_REQUIRE = {
|
||||||
|
# 'sonic': [
|
||||||
|
# "sonic-client>=0.0.5",
|
||||||
|
# ],
|
||||||
|
# 'ldap': [
|
||||||
|
# "django-auth-ldap>=4.1.0",
|
||||||
|
# ],
|
||||||
|
# 'dev': [
|
||||||
|
# "setuptools",
|
||||||
|
# "twine",
|
||||||
|
# "wheel",
|
||||||
|
# "flake8",
|
||||||
|
# "ipdb",
|
||||||
|
# "mypy",
|
||||||
|
# "django-stubs",
|
||||||
|
# "sphinx",
|
||||||
|
# "sphinx-rtd-theme",
|
||||||
|
# "recommonmark",
|
||||||
|
# "pytest",
|
||||||
|
# "bottle",
|
||||||
|
# "stdeb",
|
||||||
|
# "django-debug-toolbar",
|
||||||
|
# "djdt_flamegraph",
|
||||||
|
# ],
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# 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",
|
||||||
|
|
||||||
class DisabledTestCommand(test):
|
# "Topic :: Utilities",
|
||||||
def run(self):
|
# "Topic :: System :: Archiving",
|
||||||
# setup.py test is deprecated, disable it here by force so stdeb doesnt run it
|
# "Topic :: System :: Archiving :: Backup",
|
||||||
print()
|
# "Topic :: System :: Recovery Tools",
|
||||||
print('[X] Running tests via setup.py test is deprecated.')
|
# "Topic :: Sociology :: History",
|
||||||
print(' Hint: Use the ./bin/test.sh script or pytest instead')
|
# "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",
|
||||||
|
|
||||||
setuptools.setup(
|
# "Environment :: Console",
|
||||||
name=PKG_NAME,
|
# "Environment :: Web Environment",
|
||||||
version=VERSION,
|
# "Programming Language :: Python :: 3",
|
||||||
license=LICENSE,
|
# "Programming Language :: Python :: 3.7",
|
||||||
author=AUTHOR,
|
# "Programming Language :: Python :: 3.8",
|
||||||
author_email=AUTHOR_EMAIL,
|
# "Programming Language :: Python :: 3.9",
|
||||||
description=DESCRIPTION,
|
# "Framework :: Django",
|
||||||
long_description=README,
|
# "Typing :: Typed",
|
||||||
long_description_content_type="text/markdown",
|
# ],
|
||||||
url=REPO_URL,
|
# cmdclass={
|
||||||
project_urls=PROJECT_URLS,
|
# "test": DisabledTestCommand,
|
||||||
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",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
|
||||||
"Framework :: Django",
|
|
||||||
"Typing :: Typed",
|
|
||||||
],
|
|
||||||
cmdclass={
|
|
||||||
"test": DisabledTestCommand,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
Loading…
Reference in a new issue