pyproject.toml (216 lines of code) (raw):

[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.version] path = "esrally/_version.py" [project] name = "esrally" dynamic = ["version"] authors = [ { name = "Daniel Mitterdorfer", email = "daniel.mitterdorfer@gmail.com" }, ] description = "Macrobenchmarking framework for Elasticsearch" readme = "README.md" license = { text = "Apache License 2.0" } requires-python = ">=3.9" classifiers = [ "Topic :: System :: Benchmark", "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: Apache Software License", "Intended Audience :: Developers", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3 :: Only", ] ################################################################################################ # # Adapt `create-notice.sh` whenever changing dependencies here. # # That script grabs all license files so we include them in the notice file. # ################################################################################################ dependencies = [ # License: Apache 2.0 "elasticsearch[async]==8.6.1", "elastic-transport==8.4.1", # License: MIT "urllib3==1.26.19", # License: Apache 2.0 "aiohttp==3.10.11", "docker==6.0.0", # avoid specific requests version to fix bug in docker-py "requests<2.32.0", # License: BSD "psutil==5.9.4", # License: MIT "py-cpuinfo==7.0.0", # License: MIT "tabulate==0.8.9", # License: MIT "jsonschema==3.1.1", # License: BSD # transitive dependency Markupsafe: BSD "Jinja2==3.1.6", "markupsafe==2.0.1", # License: MIT "thespian==4.0.1", # recommended library for thespian to identify actors more easily with `ps` # "setproctitle==1.1.10", # always use the latest version, these are certificate files... # License: MPL 2.0 "certifi", # License: MIT "yappi==1.5.1", # License: BSD "ijson==2.6.1", # License: Apache 2.0 # transitive dependencies: # google-crc32c: Apache 2.0 "google-resumable-media[requests]==1.1.0", # License: Apache 2.0 "google-auth==2.38.0", # License: BSD "zstandard==0.21.0", # License: Python Software Foundation License "typing-extensions==4.12.2", # License: BSD-2-Clause license "python-json-logger==2.0.7", # License: Apache 2.0 "ecs-logging==2.2.0", ] [project.optional-dependencies] s3 = [ # License: Apache 2.0 # transitive dependencies: # botocore: Apache 2.0 # jmespath: MIT # s3transfer: Apache 2.0 "boto3==1.34.68", ] # These packages are only required when developing Rally develop = [ # s3 "boto3==1.34.68", # tests "ujson", "pytest==7.1.2", "pytest-benchmark==3.4.1", "pytest-asyncio==0.19.0", "pytest-httpserver==1.0.5", "tox==3.25.0", "nox==2024.3.2", "sphinx==5.1.1", "furo==2022.06.21", "github3.py==3.2.0", "pre-commit==2.20.0", "pylint==3.1.0", "trustme==0.9.0", "GitPython==3.1.30", # formatting "black==24.10.0", # mypy "boto3-stubs==1.26.125", "mypy==1.15.0", "types-psutil==5.9.4", "types-tabulate==0.8.9", "types-urllib3==1.26.19", "types-requests<2.32.0", "types-jsonschema==3.2.0", ] [project.scripts] esrally = "esrally.rally:main" esrallyd = "esrally.rallyd:main" [project.urls] "Changelog" = "https://github.com/elastic/rally/blob/master/CHANGELOG.md" "Documentation" = "https://esrally.readthedocs.io/" "Code" = "https://github.com/elastic/rally" "Issue tracker" = "https://github.com/elastic/rally/issues" [tool.black] line-length = 140 target-version = ['py39', 'py310', 'py311', 'py312'] [tool.isort] profile = 'black' [tool.pytest.ini_options] # set to true for more verbose output of tests log_cli = false log_level = "INFO" addopts = "--verbose --color=yes" testpaths = "tests" junit_family = "xunit2" junit_logging = "all" asyncio_mode = "strict" xfail_strict = true # With exceptions specified in mypy override section, Rally does not use type # hints (they were a novelty when Rally came to be). Hints are being slowly and # opportunistically introduced whenever we revisit a group of modules. # # The intention of the following largely reduced global config scope is # verification of argument types in config.Config methods while introducing # configuration properties (props). The intention of "disable_error_code" option # is to keep "arg-type" error code, while disabling other error codes. # Ref: https://github.com/elastic/rally/pull/1798 [tool.mypy] python_version = "3.12" # subset of "strict", kept at global config level as some of the options are # supported only at this level # https://mypy.readthedocs.io/en/stable/existing_code.html#introduce-stricter-options warn_unused_configs = true warn_redundant_casts = true warn_unused_ignores = true strict_equality = true extra_checks = true check_untyped_defs = true disable_error_code = [ "assignment", "attr-defined", "call-arg", "call-overload", "dict-item", "import-not-found", "import-untyped", "index", "list-item", "misc", "name-defined", "operator", "str-bytes-safe", "syntax", "union-attr", "var-annotated", ] files = ["esrally/", "it/", "tests/"] [[tool.mypy.overrides]] module = [ "esrally.mechanic.team", "esrally.utils.cases", "esrally.utils.modules", "esrally.utils.io", "esrally.utils.pretty", "esrally.utils.process", ] disallow_incomplete_defs = true # this should be a copy of disabled_error_code from above enable_error_code = [ "assignment", "attr-defined", "call-arg", "call-overload", "dict-item", "import-not-found", "import-untyped", "index", "list-item", "misc", "name-defined", "operator", "str-bytes-safe", "syntax", "union-attr", "var-annotated", ]