mirror of https://github.com/locustio/locust.git
224 lines
5.6 KiB
TOML
224 lines
5.6 KiB
TOML
[build-system]
|
|
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
|
|
build-backend = "poetry_dynamic_versioning.backend"
|
|
|
|
[tool.poetry]
|
|
name = "locust"
|
|
description = "Developer-friendly load testing framework"
|
|
version = "0.0.0"
|
|
license = "MIT"
|
|
readme = "README.md"
|
|
authors = ["Jonatan Heyman", "Lars Holmberg"]
|
|
maintainers = ["Lars Holmberg", "Jonatan Heyman", "Andrew Baldwin"]
|
|
|
|
homepage = "https://locust.io/"
|
|
repository = "https://github.com/locustio/locust"
|
|
documentation = "https://docs.locust.io/"
|
|
|
|
classifiers = [
|
|
"Topic :: Software Development :: Testing :: Traffic Generation",
|
|
"Development Status :: 5 - Production/Stable",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"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.13",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: System Administrators",
|
|
"Topic :: Software Development :: Testing",
|
|
"Topic :: Software Development :: Testing :: Traffic Generation",
|
|
"Topic :: System :: Distributed Computing",
|
|
]
|
|
|
|
packages = [{ include = "locust" }]
|
|
include = [
|
|
"locust/webui/dist/**/*",
|
|
"locust/_version.py",
|
|
{ path = "poetry.lock", format = [
|
|
"sdist",
|
|
"wheel",
|
|
] },
|
|
]
|
|
exclude = [
|
|
"locust/webui/public",
|
|
"locust/webui/src",
|
|
"locust/webui/**",
|
|
"locust/webui/node_modules",
|
|
"locust/test",
|
|
"locust/build",
|
|
]
|
|
|
|
[tool.poetry.build]
|
|
generate-setup-file = false
|
|
|
|
[tool.poe.poetry_hooks]
|
|
pre_build = "pre-build"
|
|
pre_install = "pre-build"
|
|
|
|
[tool.poe.tasks.pre-build]
|
|
script = "pre_build:main"
|
|
help = "Run the front end build required for package creation"
|
|
|
|
[tool.poetry.urls]
|
|
"Help/Questions" = "https://github.com/orgs/locustio/discussions/"
|
|
"Issue Tracker" = "https://github.com/locustio/locust/issues"
|
|
|
|
"Stack Overflow" = "https://stackoverflow.com/questions/tagged/locust"
|
|
"Slack" = "https://locustio.slack.com/"
|
|
"Slack/Signup" = "https://communityinviter.com/apps/locustio/locust"
|
|
|
|
[tool.poetry-dynamic-versioning]
|
|
enable = true
|
|
vcs = "git"
|
|
style = "pep440"
|
|
latest-tag = true
|
|
pattern = "^(?P<base>\\d+\\.\\d+\\.\\d+)(?P<stage>.*)$"
|
|
format-jinja = """
|
|
{%- if distance == 0 -%}
|
|
{{ serialize_pep440(base) }}
|
|
{%- else -%}
|
|
{{ serialize_pep440(bump_version(base), dev=distance) }}
|
|
{%- endif -%}
|
|
"""
|
|
|
|
[tool.poetry-dynamic-versioning.files."locust/_version.py"]
|
|
persistent-substitution = true
|
|
initial-content = """
|
|
# file generated by setuptools_scm
|
|
# don't change, don't track in version control
|
|
TYPE_CHECKING = False
|
|
if TYPE_CHECKING:
|
|
from typing import Tuple, Union
|
|
|
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
else:
|
|
VERSION_TUPLE = object
|
|
|
|
version: str
|
|
__version__: str
|
|
__version_tuple__: VERSION_TUPLE
|
|
version_tuple: VERSION_TUPLE
|
|
|
|
|
|
__version__ = "0.0.0"
|
|
version = __version__
|
|
__version_tuple__ = (0, 0, 0)
|
|
version_tuple = __version_tuple__
|
|
"""
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.9"
|
|
|
|
gevent = [
|
|
{ version = ">=22.10.2", python = "<=3.12" },
|
|
{ version = ">=24.10.1", python = ">3.13" },
|
|
]
|
|
flask = ">=2.0.0"
|
|
Werkzeug = ">=2.0.0"
|
|
requests = [
|
|
{ version = ">=2.26.0", python = "<=3.11" },
|
|
{ version = ">=2.32.2", python = ">3.11" },
|
|
]
|
|
msgpack = ">=1.0.0"
|
|
pyzmq = ">=25.0.0"
|
|
geventhttpclient = ">=2.3.1"
|
|
ConfigArgParse = ">=1.5.5"
|
|
tomli = { version = ">=1.1.0", python = "<3.11" }
|
|
typing_extensions = { version = ">=4.6.0", python = "<3.11" }
|
|
psutil = ">=5.9.1"
|
|
Flask-Login = ">=0.6.3"
|
|
Flask-Cors = ">=3.0.10"
|
|
pywin32 = { version = "*", markers = "sys_platform == 'win32'" }
|
|
|
|
[tool.poetry.group.dev]
|
|
optional = true
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
mypy = "1.11.2"
|
|
pre-commit = "^3.7.1"
|
|
ruff = "0.3.7"
|
|
tox = "^4.16.0"
|
|
twine = "^5.1.1"
|
|
|
|
[tool.poetry.group.test]
|
|
optional = true
|
|
|
|
[tool.poetry.group.test.dependencies]
|
|
cryptography = "^43.0.1"
|
|
pyquery = "^2.0.0"
|
|
mock = "^5.1.0"
|
|
mypy = "1.11.2"
|
|
retry = "^0.9.2"
|
|
ruff = "0.3.7"
|
|
tox = "^4.16.0"
|
|
types-requests = "^2.32.0.20240622"
|
|
pytest = "^8.3.3"
|
|
|
|
[tool.poetry.group.docs]
|
|
optional = true
|
|
|
|
[tool.poetry.group.docs.dependencies]
|
|
sphinx = "7.3.7"
|
|
sphinx-rtd-theme = "2.0.0"
|
|
readthedocs-sphinx-search = "0.3.2"
|
|
Sphinx-Substitution-Extensions = "2020.9.30.0"
|
|
Pygments = "2.16.1"
|
|
alabaster = "0.7.16"
|
|
babel = "2.13.0"
|
|
docutils = "0.18.1"
|
|
imagesize = "1.4.1"
|
|
snowballstemmer = "2.2.0"
|
|
sphinx-prompt = "1.5.0"
|
|
sphinxcontrib-applehelp = "1.0.4"
|
|
sphinxcontrib-devhelp = "1.0.2"
|
|
sphinxcontrib-htmlhelp = "2.0.1"
|
|
sphinxcontrib-jsmath = "1.0.1"
|
|
sphinxcontrib-qthelp = "1.0.3"
|
|
sphinxcontrib-serializinghtml = "1.1.10"
|
|
sphinxcontrib-googleanalytics = ">=0.4"
|
|
|
|
[tool.poetry.scripts]
|
|
locust = "locust.main:main"
|
|
|
|
[tool.ruff]
|
|
target-version = "py39"
|
|
line-length = 120
|
|
extend-exclude = [
|
|
"build",
|
|
"examples/issue_*.py",
|
|
"src/readthedocs-sphinx-search/",
|
|
]
|
|
lint.ignore = ["E402", "E501", "E713", "E731", "E741", "F401"]
|
|
lint.select = ["E", "F", "W", "UP", "FA102", "I001"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"examples/*" = ["F841"]
|
|
|
|
[tool.ruff.lint.isort]
|
|
section-order = [
|
|
"future",
|
|
"locust",
|
|
"standard-library",
|
|
"third-party",
|
|
"first-party",
|
|
"local-folder",
|
|
]
|
|
# Custom selection-order: to ensure locust is imported as first in locustfiles (for successful gevent monkey patching)
|
|
|
|
[tool.ruff.lint.isort.sections]
|
|
locust = ["locust"]
|
|
|
|
[tool.mypy]
|
|
# missing type stubs
|
|
ignore_missing_imports = true
|
|
python_version = "3.9"
|
|
|
|
[tool.pyright]
|
|
exclude = ["locust/test"]
|
|
reportOptionalMemberAccess = "none"
|
|
analyzeUnannotatedFunctions = false
|