summaryrefslogtreecommitdiffstats
path: root/pyproject.toml
diff options
context:
space:
mode:
Diffstat (limited to 'pyproject.toml')
-rw-r--r--pyproject.toml87
1 files changed, 51 insertions, 36 deletions
diff --git a/pyproject.toml b/pyproject.toml
index 36ed176..0c7a915 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "anta"
-version = "v0.14.0"
+version = "v0.15.0"
readme = "docs/README.md"
authors = [{ name = "Khelil Sator", email = "ksator@arista.com" }]
maintainers = [
@@ -17,19 +17,17 @@ maintainers = [
description = "Arista Network Test Automation (ANTA) Framework"
license = { file = "LICENSE" }
dependencies = [
- "aiocache~=0.12.2",
- "aio-eapi==0.6.3",
- "click~=8.1.6",
- "click-help-colors~=0.9",
- "cvprac~=1.3.1",
- "pydantic>=2.6.1,<2.8.0",
- "pydantic-extra-types>=2.1.0",
- "eval-type-backport~=0.1.3", # Support newer typing features in older Python versions (required until Python 3.9 support is removed)
- "PyYAML~=6.0",
- "requests~=2.31.0",
- "rich>=13.5.2,<13.8.0",
- "asyncssh>=2.13.2,<2.15.0",
- "Jinja2~=3.1.2",
+ "aiocache>=0.12.2",
+ "asyncssh>=2.13.2",
+ "cvprac>=1.3.1",
+ "eval-type-backport>=0.1.3", # Support newer typing features in older Python versions (required until Python 3.9 support is removed)
+ "Jinja2>=3.1.2",
+ "pydantic>=2.7",
+ "pydantic-extra-types>=2.3.0",
+ "PyYAML>=6.0",
+ "requests>=2.31.0",
+ "rich>=13.5.2,<14",
+ "httpx>=0.27.0"
]
keywords = ["test", "anta", "Arista", "network", "automation", "networking", "devops", "netdevops"]
classifiers = [
@@ -53,40 +51,44 @@ classifiers = [
requires-python = ">=3.9"
[project.optional-dependencies]
+cli = [
+ "click~=8.1.6",
+ "click-help-colors>=0.9",
+]
dev = [
- "bumpver==2023.1129",
+ "bumpver>=2023.1129",
"codespell~=2.2.6",
- "mypy~=1.9",
"mypy-extensions~=1.0",
+ "mypy~=1.10",
"pre-commit>=3.3.3",
+ "pylint-pydantic>=0.2.4",
"pylint>=2.17.5",
- "ruff~=0.3.5",
- "pytest>=7.4.0",
"pytest-asyncio>=0.21.1",
"pytest-cov>=4.1.0",
"pytest-dependency",
"pytest-html>=3.2.0",
"pytest-metadata>=3.0.0",
- "pylint-pydantic>=0.2.4",
+ "pytest>=7.4.0",
+ "ruff>=0.3.7,<0.5.0",
"tox>=4.10.0,<5.0.0",
"types-PyYAML",
- "types-paramiko",
+ "types-pyOpenSSL",
"types-requests",
"typing-extensions",
"yamllint>=1.32.0",
]
doc = [
"fontawesome_markdown",
- "mkdocs>=1.3.1",
+ "griffe",
+ "mike==2.1.1",
"mkdocs-autorefs>=0.4.1",
"mkdocs-bootswatch>=1.1",
"mkdocs-git-revision-date-localized-plugin>=1.1.0",
"mkdocs-git-revision-date-plugin>=0.3.2",
- "mkdocs-material>=8.3.9",
"mkdocs-material-extensions>=1.0.3",
+ "mkdocs-material>=8.3.9",
+ "mkdocs>=1.3.1",
"mkdocstrings[python]>=0.20.0",
- "mike==2.0.0",
- "griffe",
]
[project.urls]
@@ -101,14 +103,14 @@ anta = "anta.cli:cli"
# Tools
################################
[tool.setuptools.packages.find]
-include = ["anta*"]
+include = ["anta*", "asynceapi*"]
namespaces = false
################################
# Version
################################
[tool.bumpver]
-current_version = "0.14.0"
+current_version = "0.15.0"
version_pattern = "MAJOR.MINOR.PATCH"
commit_message = "bump: Version {old_version} -> {new_version}"
commit = true
@@ -131,6 +133,8 @@ plugins = [
]
# Comment below for better type checking
#follow_imports = "skip"
+# Make it false if we implement stubs using stubgen from mypy for aio-eapi, aiocache and cvprac
+# and configure mypy_path to generated stubs e.g.: mypy_path = "./out"
ignore_missing_imports = true
warn_redundant_casts = true
# Note: tox find some unused type ignore which are required for pre-commit
@@ -159,15 +163,20 @@ addopts = "-ra -q -vv --cov --cov-report term:skip-covered --color yes"
log_level = "WARNING"
render_collapsed = true
testpaths = ["tests"]
+filterwarnings = [
+ "error",
+ # cvprac is raising the next warning
+ "default:pkg_resources is deprecated:DeprecationWarning",
+ # Need to investigate the following - only occuring when running the full pytest suite
+ "ignore:Exception ignored in.*:pytest.PytestUnraisableExceptionWarning",
+
+]
+
[tool.coverage.run]
branch = true
source = ["anta"]
parallel = true
-omit= [
- # omit aioeapi patch
- "anta/aioeapi.py",
-]
[tool.coverage.report]
# Regexes for lines to exclude from consideration
@@ -225,7 +234,9 @@ python =
[testenv]
description = Run pytest with {basepython}
-extras = dev
+extras =
+ dev
+ cli
# posargs allows to run only a specific test using
# tox -e <env> -- path/to/my/test::test
commands =
@@ -297,7 +308,6 @@ exclude = [
"site-packages",
"venv",
".github",
- "aioeapi.py" # Remove this when https://github.com/jeremyschulman/aio-eapi/pull/13 is merged
]
line-length = 165
@@ -374,6 +384,9 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel", "anta.models.AntaTest.In
"anta/cli/exec/utils.py" = [
"SLF001", # TODO: some private members, lets try to fix
]
+"anta/cli/__init__.py" = [
+ "T201", # Allow print statements
+]
"anta/cli/*" = [
"PLR0913", # Allow more than 5 input arguments in CLI functions
"ANN401", # TODO: Check if we can update the Any type hints in the CLI
@@ -390,16 +403,17 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel", "anta.models.AntaTest.In
"ANN401", # Ok to use Any type hint in our custom get functions
"PLR0913", # Ok to have more than 5 arguments in our custom get functions
]
-"anta/runner.py" = [
- "C901", # TODO: main function is too complex, needs a refactor
- "PERF203", # TODO: try - except within a loop, same sa above needs a refactor
-]
"anta/device.py" = [
"PLR0913", # Ok to have more than 5 arguments in the AntaDevice classes
]
"anta/inventory/__init__.py" = [
"PLR0913", # Ok to have more than 5 arguments in the AntaInventory class
]
+"examples/anta_runner.py" = [ # This is an example script and linked in snippets
+ "S108", # Probable insecure usage of temporary file or directory
+ "S105", # Possible hardcoded password
+ "INP001", # Implicit packages
+]
################################
# Pylint
@@ -433,4 +447,5 @@ extension-pkg-whitelist="pydantic"
ignore-paths = [
"^tests/units/anta_tests/.*/data.py$",
"^tests/units/anta_tests/routing/.*/data.py$",
+ "^docs/scripts/anta_runner.py",
]