blob: 12d94ad4dd0ab491c51e2055f8f7909f3f614b91 [file] [log] [blame]
"""Package configuration."""
from pathlib import Path
from setuptools import find_packages, setup
LONG_DESCRIPTION = Path("README.rst").read_text()
INSTALL_REQUIRES = [
"dnspython>=1.15.0",
"pyyaml>=3.11",
"phabricator>=0.7.0",
"requests",
]
# Extra dependencies
EXTRAS_REQUIRE = {
# Test dependencies
"tests": [
"bandit>=1.5.1",
"flake8>=3.2.1",
"flake8-import-order>=0.18.1",
"mypy>=0.470",
"pytest>=3.10.1",
"pytest-cov>=1.8.0",
"pytest-xdist>=1.15.0",
"requests-mock>=1.5.2",
"ruff",
"sphinx_rtd_theme>=1.0",
"sphinx-argparse>=0.1.15",
"Sphinx>=1.4.9",
# We still rely on pkg_resources to support Python 3.7/Buster but it
# was removed from types-setuptools
"types-setuptools<75.8.2.20250305",
"types-PyYAML",
"types-requests",
],
"prospector": [
"prospector[with_everything]==1.16.1",
"pytest>=3.10.1",
],
}
SETUP_REQUIRES = [
"pytest-runner>=2.7.1",
"setuptools_scm>=1.15.0",
]
setup(
author="Luca Toscano",
author_email="ltoscano@wikimedia.org",
classifiers=[
"Development Status :: 2 - Pre-Alpha",
"Environment :: Console",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: BSD",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Systems Administration",
],
description="Generic library for common tasks in the WMF production infrastructure",
entry_points={},
extras_require=EXTRAS_REQUIRE,
install_requires=INSTALL_REQUIRES,
keywords=["wmf", "automation"],
license="GPLv3+",
long_description=LONG_DESCRIPTION,
long_description_content_type="text/x-rst",
name="wmflib",
package_data={"wmflib": ["py.typed"]},
packages=find_packages(exclude=["*.tests", "*.tests.*"]),
platforms=["GNU/Linux"],
python_requires=">=3.7",
setup_requires=SETUP_REQUIRES,
use_scm_version=True,
url="https://github.com/wikimedia/operations-software-pywmflib",
zip_safe=False,
)