locust 2.46.7.dev21__tar.gz → 2.46.7.dev24__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/PKG-INFO +2 -2
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/_version.py +2 -2
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/clients.py +7 -15
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/web.py +1 -1
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/pyproject.toml +2 -2
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/.gitignore +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/LICENSE +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/README.md +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/hatch_build.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/__init__.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/__main__.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/argument_parser.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/__init__.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/csv_request_logger.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/dns.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/fasthttp.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/milvus.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/mongodb.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/mqtt.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/oai.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/postgres.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/qdrant.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/contrib/socketio.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/debug.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/dispatch.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/env.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/event.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/exception.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/html.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/input_events.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/log.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/main.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/opentelemetry.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/py.typed +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/rpc/__init__.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/rpc/protocol.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/runners.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/shape.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/stats.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/user/__init__.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/user/inspectuser.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/user/markov_taskset.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/user/sequential_taskset.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/user/task.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/user/users.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/user/wait_time.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/__init__.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/cache.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/date.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/deprecation.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/directory.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/exception_handler.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/load_locustfile.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/rounding.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/timespan.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/util/url.py +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/src-pSlzKFX1.js +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/terminal.gif +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/auth.html +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/index.html +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/locust/webui/dist/report.html +0 -0
- {locust-2.46.7.dev21 → locust-2.46.7.dev24}/pytest_locust/plugin.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: locust
|
|
3
|
-
Version: 2.46.7.
|
|
3
|
+
Version: 2.46.7.dev24
|
|
4
4
|
Summary: Developer-friendly load testing framework
|
|
5
5
|
Project-URL: Homepage, https://locust.cloud/
|
|
6
6
|
Project-URL: Repository, https://github.com/locustio/locust
|
|
@@ -38,7 +38,7 @@ Requires-Dist: python-engineio>=4.12.2
|
|
|
38
38
|
Requires-Dist: python-socketio[client]>=5.13.0
|
|
39
39
|
Requires-Dist: pywin32; sys_platform == 'win32'
|
|
40
40
|
Requires-Dist: pyzmq>=25.0.0
|
|
41
|
-
Requires-Dist: requests>=2.
|
|
41
|
+
Requires-Dist: requests>=2.33.1
|
|
42
42
|
Requires-Dist: typing-extensions>=4.6.0; python_version < '3.12'
|
|
43
43
|
Requires-Dist: werkzeug>=2.0.0
|
|
44
44
|
Provides-Extra: dns
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '2.46.7.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 46, 7, '
|
|
21
|
+
__version__ = version = '2.46.7.dev24'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 46, 7, 'dev24')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -11,7 +11,6 @@ from typing import TYPE_CHECKING, cast
|
|
|
11
11
|
from urllib.parse import unquote, urlparse, urlunparse
|
|
12
12
|
|
|
13
13
|
import requests
|
|
14
|
-
from packaging.version import Version
|
|
15
14
|
from requests import Response
|
|
16
15
|
from requests.adapters import HTTPAdapter
|
|
17
16
|
from requests.auth import HTTPBasicAuth
|
|
@@ -28,8 +27,6 @@ if sys.version_info >= (3, 12):
|
|
|
28
27
|
else:
|
|
29
28
|
from typing_extensions import override
|
|
30
29
|
|
|
31
|
-
requests_version = Version(requests.__version__).release
|
|
32
|
-
|
|
33
30
|
if TYPE_CHECKING:
|
|
34
31
|
from collections.abc import Callable, Generator, Iterable, Mapping, MutableMapping
|
|
35
32
|
from typing import Any, TypedDict, Unpack
|
|
@@ -45,7 +42,7 @@ if TYPE_CHECKING:
|
|
|
45
42
|
cookies: RequestsCookieJar | MutableMapping[str, str] | None
|
|
46
43
|
files: Any # simplified signature
|
|
47
44
|
auth: Any # simplified signature
|
|
48
|
-
timeout: float | tuple[float, float
|
|
45
|
+
timeout: float | tuple[float | None, float | None] | None
|
|
49
46
|
allow_redirects: bool
|
|
50
47
|
proxies: MutableMapping[str, str] | None
|
|
51
48
|
hooks: Mapping[str, Iterable[Callable[[Response], Any]] | Callable[[Response], Any]] | None
|
|
@@ -61,9 +58,8 @@ if TYPE_CHECKING:
|
|
|
61
58
|
|
|
62
59
|
absolute_http_url_regexp = re.compile(r"^https?://", re.IGNORECASE)
|
|
63
60
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
_preloaded_ssl_context.load_verify_locations(extract_zipped_paths(DEFAULT_CA_BUNDLE_PATH))
|
|
61
|
+
_preloaded_ssl_context = create_urllib3_context()
|
|
62
|
+
_preloaded_ssl_context.load_verify_locations(extract_zipped_paths(DEFAULT_CA_BUNDLE_PATH))
|
|
67
63
|
|
|
68
64
|
|
|
69
65
|
class HttpSession(requests.Session):
|
|
@@ -488,14 +484,10 @@ class LocustHttpAdapter(HTTPAdapter):
|
|
|
488
484
|
if self.poolmanager is None:
|
|
489
485
|
super().init_poolmanager(*args, **kwargs)
|
|
490
486
|
|
|
491
|
-
#
|
|
492
|
-
#
|
|
493
|
-
#
|
|
494
|
-
# We re-implement this change to increase the performance
|
|
487
|
+
# requests reverted https://github.com/psf/requests/pull/6667 in 2.32.5, so without
|
|
488
|
+
# re-implementing it here the root CA certificates are loaded on every request.
|
|
489
|
+
# We re-implement it to increase performance (see _preloaded_ssl_context above).
|
|
495
490
|
def cert_verify(self, conn, url, verify, cert):
|
|
496
|
-
if requests_version < (2, 32, 5):
|
|
497
|
-
return super().cert_verify(conn, url, verify, cert)
|
|
498
|
-
|
|
499
491
|
if url.lower().startswith("https") and verify:
|
|
500
492
|
conn.cert_reqs = "CERT_REQUIRED"
|
|
501
493
|
|
|
@@ -529,7 +521,7 @@ class LocustHttpAdapter(HTTPAdapter):
|
|
|
529
521
|
def build_connection_pool_key_attributes(self, request, verify, cert=None):
|
|
530
522
|
host_params, pool_kwargs = super().build_connection_pool_key_attributes(request, verify, cert)
|
|
531
523
|
|
|
532
|
-
if
|
|
524
|
+
if verify is True:
|
|
533
525
|
pool_kwargs["ssl_context"] = _preloaded_ssl_context
|
|
534
526
|
|
|
535
527
|
return host_params, pool_kwargs
|
|
@@ -338,7 +338,7 @@ class WebUI:
|
|
|
338
338
|
self._swarm_greenlet = None
|
|
339
339
|
|
|
340
340
|
if environment.runner is not None:
|
|
341
|
-
if user_count is None or user_count < 0 or
|
|
341
|
+
if user_count is None or user_count < 0 or spawn_rate is None or spawn_rate <= 0:
|
|
342
342
|
err_msg = "Missing or invalid user_count or spawn_rate from /swarm request"
|
|
343
343
|
logger.error(err_msg)
|
|
344
344
|
return jsonify({"success": False, "message": err_msg, "host": environment.host})
|
|
@@ -35,7 +35,7 @@ classifiers = [
|
|
|
35
35
|
dependencies = [
|
|
36
36
|
"flask>=2.0.0",
|
|
37
37
|
"Werkzeug>=2.0.0",
|
|
38
|
-
"requests>=2.
|
|
38
|
+
"requests>=2.33.1",
|
|
39
39
|
"msgpack>=1.0.0",
|
|
40
40
|
"pyzmq>=25.0.0",
|
|
41
41
|
"geventhttpclient>=2.3.1",
|
|
@@ -83,7 +83,7 @@ lint = [
|
|
|
83
83
|
"pre-commit>=4.5.0,<5.0.0",
|
|
84
84
|
"ruff==0.16.8",
|
|
85
85
|
"mypy>=1.13.0,<1.15.0",
|
|
86
|
-
"types-requests==2.
|
|
86
|
+
"types-requests==2.33.0.20260906",
|
|
87
87
|
"typos>=1.50.1"
|
|
88
88
|
]
|
|
89
89
|
release = ["twine>=5.1.1,<6.0.0"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|