locust 2.20.2.dev42__tar.gz → 2.20.2.dev49__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.
Files changed (337) hide show
  1. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.git-blame-ignore-revs +2 -0
  2. {locust-2.20.2.dev42/locust.egg-info → locust-2.20.2.dev49}/PKG-INFO +1 -1
  3. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/benchmarks/dispatch.py +2 -2
  4. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/running-distributed.rst +9 -8
  5. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/_version.py +2 -2
  6. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/dispatch.py +1 -1
  7. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/runners.py +5 -6
  8. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/user/task.py +1 -5
  9. {locust-2.20.2.dev42 → locust-2.20.2.dev49/locust.egg-info}/PKG-INFO +1 -1
  10. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/pyproject.toml +2 -1
  11. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.coveragerc +0 -0
  12. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.dockerignore +0 -0
  13. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.gitattributes +0 -0
  14. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.github/CONTRIBUTING.md +0 -0
  15. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  16. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  17. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  18. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.github/workflows/stale.yml +0 -0
  19. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.github/workflows/tests.yml +0 -0
  20. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.gitignore +0 -0
  21. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.readthedocs.yaml +0 -0
  22. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.vscode/extensions.json +0 -0
  23. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.vscode/launch.json +0 -0
  24. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.vscode/launch_locust.json +0 -0
  25. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/.vscode/settings.json +0 -0
  26. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/CHANGELOG.md +0 -0
  27. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/Dockerfile +0 -0
  28. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/LICENSE +0 -0
  29. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/MANIFEST.in +0 -0
  30. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/Makefile +0 -0
  31. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/README +0 -0
  32. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/README.md +0 -0
  33. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/SECURITY.md +0 -0
  34. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/Vagrantfile +0 -0
  35. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/_static/theme-overrides.css +0 -0
  36. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/api.rst +0 -0
  37. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/changelog.rst +0 -0
  38. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/conf.py +0 -0
  39. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/configuration.rst +0 -0
  40. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/custom-load-shape.rst +0 -0
  41. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/developing-locust.rst +0 -0
  42. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/extending-locust.rst +0 -0
  43. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/further-reading.rst +0 -0
  44. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/history.rst +0 -0
  45. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/images/modern-webui-splash-screenshot.png +0 -0
  46. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/images/number_of_users.png +0 -0
  47. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/images/response_times.png +0 -0
  48. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/images/total_requests_per_second.png +0 -0
  49. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/images/userclass_picker_example.png +0 -0
  50. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/images/webui-running-statistics.png +0 -0
  51. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/images/webui-splash-screenshot.png +0 -0
  52. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/increase-performance.rst +0 -0
  53. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/index.rst +0 -0
  54. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/installation.rst +0 -0
  55. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/logging.rst +0 -0
  56. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/quickstart.rst +0 -0
  57. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/requirements.txt +0 -0
  58. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/retrieving-stats.rst +0 -0
  59. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/running-cloud-integration.rst +0 -0
  60. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/running-in-debugger.rst +0 -0
  61. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/running-in-docker.rst +0 -0
  62. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/running-without-web-ui.rst +0 -0
  63. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/tasksets.rst +0 -0
  64. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/testing-other-systems.rst +0 -0
  65. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/use-as-lib.rst +0 -0
  66. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/what-is-locust.rst +0 -0
  67. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/docs/writing-a-locustfile.rst +0 -0
  68. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/add_command_line_argument.py +0 -0
  69. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/basic.py +0 -0
  70. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/browse_docs_sequence_test.py +0 -0
  71. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/browse_docs_test.py +0 -0
  72. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_messages.py +0 -0
  73. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_shape/double_wave.py +0 -0
  74. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_shape/stages.py +0 -0
  75. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_shape/staging_user_classes.py +0 -0
  76. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_shape/step_load.py +0 -0
  77. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_shape/wait_user_count.py +0 -0
  78. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_wait_function.py +0 -0
  79. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_xmlrpc_client/server.py +0 -0
  80. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/custom_xmlrpc_client/xmlrpc_locustfile.py +0 -0
  81. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/debugging.py +0 -0
  82. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/debugging_advanced.py +0 -0
  83. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/docker-compose/docker-compose.yml +0 -0
  84. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/dynamic_user_credentials.py +0 -0
  85. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/events.py +0 -0
  86. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/extend_modern_web_ui.py +0 -0
  87. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/extend_web_ui/extend.py +0 -0
  88. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/extend_web_ui/static/custom-stats-table.css +0 -0
  89. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/extend_web_ui/static/extend.js +0 -0
  90. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/extend_web_ui/templates/extend.html +0 -0
  91. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/fast_http_locust.py +0 -0
  92. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/grpc/grpc_user.py +0 -0
  93. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/grpc/hello.proto +0 -0
  94. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/grpc/hello_pb2.py +0 -0
  95. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/grpc/hello_pb2_grpc.py +0 -0
  96. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/grpc/hello_server.py +0 -0
  97. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/grpc/locustfile.py +0 -0
  98. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/locustfile.py +0 -0
  99. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/manual_stats_reporting.py +0 -0
  100. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/multiple_hosts.py +0 -0
  101. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/nested_inline_tasksets.py +0 -0
  102. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/rest.py +0 -0
  103. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/sdk_session_patching/session_patch_locustfile.py +0 -0
  104. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/semaphore_wait.py +0 -0
  105. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/stop_on_threshold.py +0 -0
  106. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/terraform/aws/README.md +0 -0
  107. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/terraform/aws/data_subnet.tf +0 -0
  108. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/terraform/aws/main.tf +0 -0
  109. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/terraform/aws/output.tf +0 -0
  110. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/terraform/aws/plan/basic.py +0 -0
  111. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/terraform/aws/provisioner.tf +0 -0
  112. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/terraform/aws/variables.tf +0 -0
  113. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/test_data_management.py +0 -0
  114. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/use_as_lib.py +0 -0
  115. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/vagrant/README.md +0 -0
  116. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/vagrant/supervisord.conf +0 -0
  117. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/web_ui_auth.py +0 -0
  118. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/examples/worker_index.py +0 -0
  119. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/generate_changelog.py +0 -0
  120. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/__init__.py +0 -0
  121. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/__main__.py +0 -0
  122. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/argument_parser.py +0 -0
  123. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/clients.py +0 -0
  124. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/contrib/__init__.py +0 -0
  125. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/contrib/fasthttp.py +0 -0
  126. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/debug.py +0 -0
  127. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/env.py +0 -0
  128. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/event.py +0 -0
  129. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/exception.py +0 -0
  130. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/html.py +0 -0
  131. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/input_events.py +0 -0
  132. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/log.py +0 -0
  133. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/main.py +0 -0
  134. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/py.typed +0 -0
  135. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/rpc/__init__.py +0 -0
  136. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/rpc/protocol.py +0 -0
  137. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/rpc/zmqrpc.py +0 -0
  138. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/shape.py +0 -0
  139. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/chart.js +0 -0
  140. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/css/application.css +0 -0
  141. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/css/application.css.map +0 -0
  142. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/css/tables.css +0 -0
  143. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/css/tables.css.map +0 -0
  144. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/echarts.common.min.js +0 -0
  145. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/img/favicon.ico +0 -0
  146. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/img/logo.png +0 -0
  147. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/img/ui-screenshot-charts.png +0 -0
  148. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/img/ui-screenshot-start-test.png +0 -0
  149. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/img/ui-screenshot-stats.png +0 -0
  150. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/img/ui-screenshot-workers.png +0 -0
  151. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/jquery-1.11.3.min.js +0 -0
  152. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/jquery.jqote2.min.js +0 -0
  153. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/jquery.tools.min.js +0 -0
  154. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/locust.js +0 -0
  155. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/sass/_base.sass +0 -0
  156. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/sass/_mixins.sass +0 -0
  157. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/sass/application.sass +0 -0
  158. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/sass/tables.sass +0 -0
  159. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/tasks.js +0 -0
  160. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/static/vintage.js +0 -0
  161. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/stats.py +0 -0
  162. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/templates/index.html +0 -0
  163. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/templates/report.html +0 -0
  164. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/templates/stats_data.html +0 -0
  165. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/__init__.py +0 -0
  166. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/fake_module1_for_env_test.py +0 -0
  167. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/fake_module2_for_env_test.py +0 -0
  168. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/mock_locustfile.py +0 -0
  169. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/mock_logging.py +0 -0
  170. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_debugging.py +0 -0
  171. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_dispatch.py +0 -0
  172. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_env.py +0 -0
  173. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_fasthttp.py +0 -0
  174. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_http.py +0 -0
  175. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_interruptable_task.py +0 -0
  176. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_load_locustfile.py +0 -0
  177. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_locust_class.py +0 -0
  178. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_log.py +0 -0
  179. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_main.py +0 -0
  180. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_old_wait_api.py +0 -0
  181. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_parser.py +0 -0
  182. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_runners.py +0 -0
  183. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_sequential_taskset.py +0 -0
  184. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_stats.py +0 -0
  185. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_tags.py +0 -0
  186. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_taskratio.py +0 -0
  187. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_users.py +0 -0
  188. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_util.py +0 -0
  189. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_wait_time.py +0 -0
  190. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_web.py +0 -0
  191. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/test_zmqrpc.py +0 -0
  192. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/testcases.py +0 -0
  193. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/test/util.py +0 -0
  194. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/user/__init__.py +0 -0
  195. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/user/inspectuser.py +0 -0
  196. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/user/sequential_taskset.py +0 -0
  197. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/user/users.py +0 -0
  198. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/user/wait_time.py +0 -0
  199. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/util/__init__.py +0 -0
  200. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/util/cache.py +0 -0
  201. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/util/deprecation.py +0 -0
  202. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/util/exception_handler.py +0 -0
  203. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/util/load_locustfile.py +0 -0
  204. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/util/rounding.py +0 -0
  205. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/util/timespan.py +0 -0
  206. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/web.py +0 -0
  207. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/.eslintrc +0 -0
  208. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/.gitignore +0 -0
  209. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/.prettierrc +0 -0
  210. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/auth.html +0 -0
  211. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dev.html +0 -0
  212. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/assets/auth-3cd88f78.js.map +0 -0
  213. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/assets/favicon.ico +0 -0
  214. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/assets/index-ea7131ad.js +0 -0
  215. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/assets/index-ea7131ad.js.map +0 -0
  216. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/assets/logo.png +0 -0
  217. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/auth.html +0 -0
  218. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/index.html +0 -0
  219. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/dist/report.html +0 -0
  220. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/index.html +0 -0
  221. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/package.json +0 -0
  222. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/public/assets/favicon.ico +0 -0
  223. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/public/assets/logo.png +0 -0
  224. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/public/report.html +0 -0
  225. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/App.tsx +0 -0
  226. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/Report.tsx +0 -0
  227. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/auth.tsx +0 -0
  228. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/DataTable/DataTable.test.tsx +0 -0
  229. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/DataTable/DataTable.tsx +0 -0
  230. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/ExceptionsTable/ExceptionsTable.tsx +0 -0
  231. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/FailuresTable/FailuresTable.tsx +0 -0
  232. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Form/Form.tsx +0 -0
  233. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Form/Select.tsx +0 -0
  234. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Form/tests/Form.test.tsx +0 -0
  235. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Form/tests/Select.test.tsx +0 -0
  236. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Layout/Footer/About.tsx +0 -0
  237. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Layout/Footer/Footer.tsx +0 -0
  238. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Layout/Layout.tsx +0 -0
  239. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Layout/Navbar/DarkLightToggle.tsx +0 -0
  240. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Layout/Navbar/Navbar.tsx +0 -0
  241. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.test.tsx +0 -0
  242. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.tsx +0 -0
  243. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/LineChart/LineChart.test.tsx +0 -0
  244. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/LineChart/LineChart.tsx +0 -0
  245. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/LogViewer/LogViewer.tsx +0 -0
  246. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/LogViewer/tests/LogViewer.test.tsx +0 -0
  247. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/LogViewer/tests/useLogViewer.test.tsx +0 -0
  248. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/LogViewer/useLogViewer.ts +0 -0
  249. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Modal/Modal.tsx +0 -0
  250. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Reports/Reports.test.tsx +0 -0
  251. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Reports/Reports.tsx +0 -0
  252. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.test.tsx +0 -0
  253. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.tsx +0 -0
  254. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/EditButton.tsx +0 -0
  255. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/NewTestButton.tsx +0 -0
  256. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/ResetButton.tsx +0 -0
  257. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/StateButtons.tsx +0 -0
  258. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/StopButton.tsx +0 -0
  259. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/tests/ResetButton.test.tsx +0 -0
  260. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/tests/StateButtons.test.tsx +0 -0
  261. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StateButtons/tests/StopButton.test.tsx +0 -0
  262. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/StatsTable/StatsTable.tsx +0 -0
  263. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmCharts/SwarmCharts.tsx +0 -0
  264. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmForm/SwarmCustomParameters.tsx +0 -0
  265. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmForm/SwarmEditForm.tsx +0 -0
  266. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmForm/SwarmForm.tsx +0 -0
  267. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmForm/tests/SwarmCustomParameters.test.tsx +0 -0
  268. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmForm/tests/SwarmEditForm.test.tsx +0 -0
  269. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmForm/tests/SwarmForm.test.tsx +0 -0
  270. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmRatios/SwarmRatios.test.tsx +0 -0
  271. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/SwarmRatios/SwarmRatios.tsx +0 -0
  272. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Table/Table.test.tsx +0 -0
  273. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Table/Table.tsx +0 -0
  274. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Tabs/Tabs.constants.tsx +0 -0
  275. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Tabs/Tabs.test.tsx +0 -0
  276. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/Tabs/Tabs.tsx +0 -0
  277. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/components/WorkersTable/WorkersTable.tsx +0 -0
  278. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/constants/swarm.tsx +0 -0
  279. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/constants/theme.ts +0 -0
  280. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/global.d.ts +0 -0
  281. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/hooks/tests/useNotifications.test.tsx +0 -0
  282. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/hooks/tests/useSortByField.test.tsx +0 -0
  283. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/hooks/tests/useSwarmUi.test.tsx +0 -0
  284. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/hooks/useInterval.ts +0 -0
  285. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/hooks/useNotifications.ts +0 -0
  286. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/hooks/useSortByField.ts +0 -0
  287. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/hooks/useSwarmUi.ts +0 -0
  288. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/index.tsx +0 -0
  289. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/api/swarm.ts +0 -0
  290. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/hooks.ts +0 -0
  291. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/logViewer.slice.ts +0 -0
  292. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/notification.slice.ts +0 -0
  293. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/root.slice.ts +0 -0
  294. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/swarm.slice.ts +0 -0
  295. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/tests/ui.slice.test.ts +0 -0
  296. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/theme.slice.ts +0 -0
  297. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/ui.slice.ts +0 -0
  298. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/slice/url.slice.ts +0 -0
  299. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/store.ts +0 -0
  300. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/redux/utils.ts +0 -0
  301. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/styles/theme.ts +0 -0
  302. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/test/constants.ts +0 -0
  303. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/test/mocks/statsRequest.mock.ts +0 -0
  304. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/test/mocks/swarmState.mock.ts +0 -0
  305. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/test/setup.ts +0 -0
  306. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/test/testUtils.tsx +0 -0
  307. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/types/auth.types.ts +0 -0
  308. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/types/swarm.types.ts +0 -0
  309. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/types/tab.types.ts +0 -0
  310. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/types/table.types.ts +0 -0
  311. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/types/ui.types.ts +0 -0
  312. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/number.ts +0 -0
  313. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/object.ts +0 -0
  314. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/string.ts +0 -0
  315. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/tests/number.test.ts +0 -0
  316. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/tests/object.test.ts +0 -0
  317. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/tests/string.test.ts +0 -0
  318. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/tests/url.test.ts +0 -0
  319. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/src/utils/url.ts +0 -0
  320. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/tsconfig.json +0 -0
  321. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/vite.config.ts +0 -0
  322. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/vitest.config.ts +0 -0
  323. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust/webui/yarn.lock +0 -0
  324. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust.egg-info/SOURCES.txt +0 -0
  325. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust.egg-info/dependency_links.txt +0 -0
  326. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust.egg-info/entry_points.txt +0 -0
  327. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust.egg-info/not-zip-safe +0 -0
  328. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust.egg-info/requires.txt +0 -0
  329. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/locust.egg-info/top_level.txt +0 -0
  330. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/package.json +0 -0
  331. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/scripts/locustfile.py +0 -0
  332. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/scripts/run-disributed-headless.sh +0 -0
  333. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/scripts/run-disributed-web.sh +0 -0
  334. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/scripts/run-local-headless.sh +0 -0
  335. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/scripts/run-local-web.sh +0 -0
  336. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/setup.cfg +0 -0
  337. {locust-2.20.2.dev42 → locust-2.20.2.dev49}/tox.ini +0 -0
@@ -7,3 +7,5 @@
7
7
  313b80f27f525441c449593a3aeaf38389f63c13
8
8
  # upgrade typing annotations using fix-future-annotations
9
9
  b5324820b299b1fe7da0608f0cc8ec47f58b1e40
10
+ # upgrade code style to 3.8 using pyupgrade
11
+ 60f3bceacc4ab9567433d40ae3ed280750f55ff1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: locust
3
- Version: 2.20.2.dev42
3
+ Version: 2.20.2.dev49
4
4
  Summary: Developer friendly load testing framework
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://locust.io/
@@ -632,8 +632,8 @@ if __name__ == "__main__":
632
632
  print()
633
633
  print(table)
634
634
 
635
- with open(f"results-dispatch-benchmarks-{int(now)}.txt", "wt") as file:
635
+ with open(f"results-dispatch-benchmarks-{int(now)}.txt", "w") as file:
636
636
  file.write(table.get_string())
637
637
 
638
- with open(f"results-dispatch-benchmarks-{int(now)}.json", "wt") as file:
638
+ with open(f"results-dispatch-benchmarks-{int(now)}.json", "w") as file:
639
639
  file.write(table.get_json_string())
@@ -4,21 +4,22 @@
4
4
  Distributed load generation
5
5
  ===========================
6
6
 
7
- A single process running Locust can simulate a reasonably high throughput. For a simple test plan it should be able to make many hundreds of requests per second, thousands if you use :ref:`FastHttpUser <increase-performance>`.
7
+ A single process running Locust can simulate a reasonably high throughput. For a simple test plan and small payloads it can make more than a thousand requests per second, possibly over ten thousand if you use :ref:`FastHttpUser <increase-performance>`.
8
8
 
9
- But if your test plan is complex or you want to run even more load, you'll need to scale out to multiple processes, maybe even multiple machines. Because Python cannot fully utilize more than one core per process (see `GIL <https://realpython.com/python-gil/>`_), you may need to run **one worker instance per processor core** in order to have access to all your computing power.
9
+ But if your test plan is complex or you want to run even more load, you'll need to scale out to multiple processes, maybe even multiple machines. Fortunately, Locust supports distributed runs out of the box.
10
10
 
11
- To do this, you start one instance of Locust in master mode using the ``--master`` flag and multiple worker instances using the ``--worker`` flag.
12
-
13
- The master instance runs Locust's web interface, and tells the workers when to spawn/stop Users. The worker instances run your Users and send statistics back to the master. The master instance doesn't run any Users itself.
11
+ To do this, you start one instance of Locust with the ``--master`` flag and one or more using the ``--worker`` flag. The master instance runs Locust's web interface, and tells the workers when to spawn/stop Users. The worker instances run your Users and send statistics back to the master. The master instance doesn't run any Users itself.
14
12
 
15
13
  To simplify startup, you can use the ``--processes`` flag. It will launch a master process and the specified number of worker processes. Used in combination with ``--worker`` it will only launch workers. ``--processes`` relies on `fork() <https://linux.die.net/man/3/fork>`_ so it doesn't work on Windows.
16
14
 
17
15
  .. note::
18
- There is almost no limit to how many *Users* you can run per worker. Locust/gevent can run thousands or even tens of thousands of Users per process just fine, as long as their total request rate (RPS) is not too high.
16
+ Because Python cannot fully utilize more than one core per process (see `GIL <https://realpython.com/python-gil/>`_), you need to run one worker instance per processor core in order to have access to all your computing power.
17
+
18
+ .. note::
19
+ There is almost no limit to how many Users you can run per worker. Locust/gevent can run thousands or even tens of thousands of Users per process just fine, as long as their total request rate (RPS) is not too high.
19
20
 
20
21
  .. note::
21
- If Locust is getting close to running out of CPU resources, it will log a warning.
22
+ If Locust is getting close to running out of CPU resources, it will log a warning. If there is no warning but you are still unable to generate the expected load, then the problem must be `something else <https://github.com/locustio/locust/wiki/FAQ#increase-my-request-raterps>`_.
22
23
 
23
24
  Single machine
24
25
  ==============
@@ -93,7 +94,7 @@ Communicating across nodes
93
94
  =============================================
94
95
 
95
96
  When running Locust in distributed mode, you may want to communicate between master and worker nodes in
96
- order to coordinate data. This can be easily accomplished with custom messages using the built in messaging hooks:
97
+ order to coordinate the test. This can be easily accomplished with custom messages using the built in messaging hooks:
97
98
 
98
99
  .. code-block:: python
99
100
 
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2.20.2.dev42'
16
- __version_tuple__ = version_tuple = (2, 20, 2, 'dev42')
15
+ __version__ = version = '2.20.2.dev49'
16
+ __version_tuple__ = version_tuple = (2, 20, 2, 'dev49')
@@ -124,7 +124,7 @@ class UsersDispatcher(Iterator):
124
124
  worker_nodes_by_id = sorted(self._worker_nodes, key=lambda w: w.id)
125
125
 
126
126
  # Give every worker an index indicating how many workers came before it on that host
127
- workers_per_host = defaultdict(lambda: 0)
127
+ workers_per_host = defaultdict(int)
128
128
  for worker_node in worker_nodes_by_id:
129
129
  host = worker_node.id.split("_")[0]
130
130
  worker_node._index_within_host = workers_per_host[host]
@@ -215,8 +215,7 @@ class Runner:
215
215
  self.update_state(STATE_SPAWNING)
216
216
 
217
217
  logger.debug(
218
- "Spawning additional %s (%s already running)..."
219
- % (json.dumps(user_classes_spawn_count), json.dumps(self.user_classes_count))
218
+ f"Spawning additional {json.dumps(user_classes_spawn_count)} ({json.dumps(self.user_classes_count)} already running)..."
220
219
  )
221
220
 
222
221
  def spawn(user_class: str, spawn_count: int) -> list[User]:
@@ -902,7 +901,7 @@ class MasterRunner(DistributedRunner):
902
901
  self.stop(send_stop_to_client=False)
903
902
  logger.debug("Quitting...")
904
903
  for client in self.clients.all:
905
- logger.debug("Sending quit message to worker %s (index %s)" % (client.id, self.get_worker_index(client.id)))
904
+ logger.debug(f"Sending quit message to worker {client.id} (index {self.get_worker_index(client.id)})")
906
905
  self.server.send_to_client(Message("quit", None, client.id))
907
906
  gevent.sleep(0.5) # wait for final stats report from all workers
908
907
  self.greenlet.kill(block=True)
@@ -1123,7 +1122,7 @@ class MasterRunner(DistributedRunner):
1123
1122
 
1124
1123
  @property
1125
1124
  def reported_user_classes_count(self) -> dict[str, int]:
1126
- reported_user_classes_count: dict[str, int] = defaultdict(lambda: 0)
1125
+ reported_user_classes_count: dict[str, int] = defaultdict(int)
1127
1126
  for client in self.clients.ready + self.clients.spawning + self.clients.running:
1128
1127
  for name, count in client.user_classes_count.items():
1129
1128
  reported_user_classes_count[name] += count
@@ -1139,11 +1138,11 @@ class MasterRunner(DistributedRunner):
1139
1138
  If None, will send to all attached workers
1140
1139
  """
1141
1140
  if client_id:
1142
- logger.debug("Sending %s message to worker %s" % (msg_type, client_id))
1141
+ logger.debug(f"Sending {msg_type} message to worker {client_id}")
1143
1142
  self.server.send_to_client(Message(msg_type, data, client_id))
1144
1143
  else:
1145
1144
  for client in self.clients.all:
1146
- logger.debug("Sending %s message to worker %s" % (msg_type, client.id))
1145
+ logger.debug(f"Sending {msg_type} message to worker {client.id}")
1147
1146
  self.server.send_to_client(Message(msg_type, data, client.id))
1148
1147
 
1149
1148
 
@@ -423,11 +423,7 @@ class TaskSet(metaclass=TaskSetMeta):
423
423
  return random.randint(self.min_wait, self.max_wait) / 1000.0
424
424
  else:
425
425
  raise MissingWaitTimeError(
426
- "You must define a wait_time method on either the %s or %s class"
427
- % (
428
- type(self.user).__name__,
429
- type(self).__name__,
430
- )
426
+ "You must define a wait_time method on either the {type(self.user).__name__} or {type(self).__name__} class"
431
427
  )
432
428
 
433
429
  def wait(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: locust
3
- Version: 2.20.2.dev42
3
+ Version: 2.20.2.dev49
4
4
  Summary: Developer friendly load testing framework
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://locust.io/
@@ -60,6 +60,7 @@ license-files = ["LICENSE"]
60
60
  include-package-data = false
61
61
 
62
62
  [tool.ruff]
63
+ target-version = "py38"
63
64
  line-length = 120
64
65
  extend-exclude = [
65
66
  "build",
@@ -67,7 +68,7 @@ extend-exclude = [
67
68
  "src/readthedocs-sphinx-search/",
68
69
  ]
69
70
  ignore = ["E402", "E501", "E713", "E731", "E741", "F401"]
70
- select = ["E", "F", "W"]
71
+ select = ["E", "F", "W", "UP", "FA102"]
71
72
 
72
73
  [tool.ruff.per-file-ignores]
73
74
  "examples/*" = ["F841"]
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