locust 2.46.6.dev10__tar.gz → 2.46.7.dev2__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.6.dev10 → locust-2.46.7.dev2}/PKG-INFO +1 -1
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/_version.py +2 -2
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/fasthttp.py +2 -2
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/dispatch.py +3 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/runners.py +8 -2
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/pyproject.toml +3 -1
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/.gitignore +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/LICENSE +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/README.md +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/hatch_build.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/__init__.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/__main__.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/argument_parser.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/clients.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/__init__.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/csv_request_logger.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/dns.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/milvus.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/mongodb.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/mqtt.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/oai.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/postgres.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/qdrant.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/contrib/socketio.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/debug.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/env.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/event.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/exception.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/html.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/input_events.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/log.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/main.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/opentelemetry.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/py.typed +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/rpc/__init__.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/rpc/protocol.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/shape.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/stats.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/user/__init__.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/user/inspectuser.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/user/markov_taskset.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/user/sequential_taskset.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/user/task.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/user/users.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/user/wait_time.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/__init__.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/cache.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/date.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/deprecation.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/directory.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/exception_handler.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/load_locustfile.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/rounding.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/timespan.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/util/url.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/web.py +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/src-pSlzKFX1.js +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/terminal.gif +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/auth.html +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/index.html +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/locust/webui/dist/report.html +0 -0
- {locust-2.46.6.dev10 → locust-2.46.7.dev2}/pytest_locust/plugin.py +0 -0
|
@@ -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.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 46,
|
|
21
|
+
__version__ = version = '2.46.7.dev2'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 46, 7, 'dev2')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -247,7 +247,7 @@ class FastHttpSession:
|
|
|
247
247
|
headers["Accept"] = "application/json"
|
|
248
248
|
|
|
249
249
|
if not allow_redirects:
|
|
250
|
-
|
|
250
|
+
old_redirect_resonse_codes = self.client.redirect_resonse_codes
|
|
251
251
|
self.client.redirect_resonse_codes = frozenset()
|
|
252
252
|
|
|
253
253
|
start_perf_counter = time.perf_counter()
|
|
@@ -264,7 +264,7 @@ class FastHttpSession:
|
|
|
264
264
|
}
|
|
265
265
|
|
|
266
266
|
if not allow_redirects:
|
|
267
|
-
self.client.redirect_resonse_codes =
|
|
267
|
+
self.client.redirect_resonse_codes = old_redirect_resonse_codes
|
|
268
268
|
|
|
269
269
|
request_meta["response_length"] = 0 # default value, if length cannot be determined
|
|
270
270
|
|
|
@@ -192,6 +192,9 @@ class UsersDispatcher(Iterator):
|
|
|
192
192
|
:param spawn_rate: The spawn rate
|
|
193
193
|
:param user_classes: The user classes to be used for the new dispatch
|
|
194
194
|
"""
|
|
195
|
+
if target_user_count < 0:
|
|
196
|
+
raise ValueError(f"target_user_count must be >= 0, got {target_user_count}")
|
|
197
|
+
|
|
195
198
|
if user_classes is not None and self._user_classes != sorted(user_classes, key=attrgetter("__name__")):
|
|
196
199
|
self._user_classes = sorted(user_classes, key=attrgetter("__name__"))
|
|
197
200
|
self._user_generator = self._user_gen()
|
|
@@ -1143,8 +1143,14 @@ class MasterRunner(DistributedRunner):
|
|
|
1143
1143
|
self.server.send_to_client(Message("quit", None, msg.node_id))
|
|
1144
1144
|
case "spawning_complete":
|
|
1145
1145
|
# a worker finished spawning (this happens multiple times during rampup)
|
|
1146
|
-
|
|
1147
|
-
|
|
1146
|
+
try:
|
|
1147
|
+
self.clients[msg.node_id].state = STATE_RUNNING
|
|
1148
|
+
self.clients[msg.node_id].user_classes_count = msg.data["user_classes_count"]
|
|
1149
|
+
except KeyError:
|
|
1150
|
+
logger.warning(
|
|
1151
|
+
f"Got spawning_complete message from unknown worker {msg.node_id}. Asking worker to quit."
|
|
1152
|
+
)
|
|
1153
|
+
self.server.send_to_client(Message("quit", None, msg.node_id))
|
|
1148
1154
|
case "logs":
|
|
1149
1155
|
self.environment.update_worker_logs(msg.data)
|
|
1150
1156
|
case "quit":
|
|
@@ -84,6 +84,7 @@ lint = [
|
|
|
84
84
|
"ruff==0.15.12",
|
|
85
85
|
"mypy>=1.13.0,<1.15.0",
|
|
86
86
|
"types-requests==2.32.4.20250809",
|
|
87
|
+
"typos>=1.50.1"
|
|
87
88
|
]
|
|
88
89
|
release = ["twine>=5.1.1,<6.0.0"]
|
|
89
90
|
docs = [
|
|
@@ -273,6 +274,7 @@ python = ["3.12"]
|
|
|
273
274
|
all = [""]
|
|
274
275
|
types = ["mypy locust/"]
|
|
275
276
|
format = ["ruff check .", "ruff format --check"]
|
|
277
|
+
spelling = ["typos ."]
|
|
276
278
|
|
|
277
279
|
|
|
278
280
|
## Hatch docs building environment
|
|
@@ -294,7 +296,7 @@ filterwarnings = [
|
|
|
294
296
|
# but that isn't always possible
|
|
295
297
|
"ignore::gevent.monkey.MonkeyPatchWarning",
|
|
296
298
|
# "This process is multi-threaded, use of fork() may lead to deadlocks in the child." started happening in Python 3.12
|
|
297
|
-
# It could potentially be a real issue, but I
|
|
299
|
+
# It could potentially be a real issue, but I don't think
|
|
298
300
|
"ignore::DeprecationWarning:gevent",
|
|
299
301
|
|
|
300
302
|
]
|
|
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
|