setup.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import setuptools
  2. from pathlib import Path
  3. PKG_NAME = "archivebox"
  4. REPO_URL = "https://github.com/pirate/ArchiveBox"
  5. BASE_DIR = Path(__file__).parent.resolve()
  6. SOURCE_DIR = BASE_DIR / PKG_NAME
  7. README = (BASE_DIR / "README.md").read_text()
  8. VERSION = (SOURCE_DIR / "VERSION").read_text().strip()
  9. # To see when setup.py gets called (uncomment for debugging)
  10. # import sys
  11. # print(SOURCE_DIR, f" (v{VERSION})")
  12. # print('>', sys.executable, *sys.argv)
  13. # raise SystemExit(0)
  14. setuptools.setup(
  15. name=PKG_NAME,
  16. version=VERSION,
  17. license="MIT",
  18. author="Nick Sweeting",
  19. author_email="[email protected]",
  20. description="The self-hosted internet archive.",
  21. long_description=README,
  22. long_description_content_type="text/markdown",
  23. url=REPO_URL,
  24. project_urls={
  25. "Source": f"{REPO_URL}",
  26. "Documentation": f"{REPO_URL}/wiki",
  27. "Bug Tracker": f"{REPO_URL}/issues",
  28. "Changelog": f"{REPO_URL}/wiki/Changelog",
  29. "Roadmap": f"{REPO_URL}/wiki/Roadmap",
  30. "Community": f"{REPO_URL}/wiki/Web-Archiving-Community",
  31. "Donate": f"{REPO_URL}/wiki/Donations",
  32. },
  33. python_requires=">=3.7",
  34. install_requires=[
  35. "requests==2.24.0",
  36. "atomicwrites==1.4.0",
  37. "mypy-extensions==0.4.3",
  38. "base32-crockford==0.3.0",
  39. "django==3.0.8",
  40. "django-extensions==3.0.3",
  41. "dateparser",
  42. "ipython",
  43. "youtube-dl",
  44. "python-crontab==2.5.1",
  45. "w3lib==1.22.0",
  46. # Some/all of these will likely be added in the future:
  47. # wpull
  48. # pywb
  49. # pyppeteer
  50. # archivenow
  51. ],
  52. extras_require={
  53. 'dev': [
  54. "setuptools",
  55. "wheel",
  56. "twine",
  57. "flake8",
  58. "ipdb",
  59. "mypy",
  60. "django-stubs",
  61. "sphinx",
  62. "sphinx-rtd-theme",
  63. "recommonmark",
  64. "pytest",
  65. "bottle",
  66. ],
  67. # 'redis': ['redis', 'django-redis'],
  68. # 'pywb': ['pywb', 'redis'],
  69. },
  70. packages=setuptools.find_packages(),
  71. entry_points={
  72. "console_scripts": [
  73. f"{PKG_NAME} = {PKG_NAME}.cli:main",
  74. ],
  75. },
  76. include_package_data=True,
  77. classifiers=[
  78. "License :: OSI Approved :: MIT License",
  79. "Natural Language :: English",
  80. "Operating System :: OS Independent",
  81. "Development Status :: 4 - Beta",
  82. "Topic :: Utilities",
  83. "Topic :: System :: Archiving",
  84. "Topic :: System :: Archiving :: Backup",
  85. "Topic :: System :: Recovery Tools",
  86. "Topic :: Sociology :: History",
  87. "Topic :: Internet :: WWW/HTTP",
  88. "Topic :: Internet :: WWW/HTTP :: Indexing/Search",
  89. "Topic :: Internet :: WWW/HTTP :: WSGI",
  90. "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
  91. "Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
  92. "Topic :: Software Development :: Libraries :: Python Modules",
  93. "Intended Audience :: Developers",
  94. "Intended Audience :: Education",
  95. "Intended Audience :: End Users/Desktop",
  96. "Intended Audience :: Information Technology",
  97. "Intended Audience :: Legal Industry",
  98. "Intended Audience :: System Administrators",
  99. "Environment :: Console",
  100. "Environment :: Web Environment",
  101. "Programming Language :: Python :: 3",
  102. "Programming Language :: Python :: 3.7",
  103. "Programming Language :: Python :: 3.8",
  104. "Framework :: Django",
  105. "Typing :: Typed",
  106. ],
  107. )