devdox-ai-locust 0.1.3.post1__py3-none-any.whl → 0.1.4__py3-none-any.whl

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.

Potentially problematic release.


This version of devdox-ai-locust might be problematic. Click here for more details.

@@ -0,0 +1,352 @@
1
+ # MongoDB Integration Guide for Locust Load Testing
2
+
3
+ ## 🎯 Overview
4
+
5
+ This guide explains how to integrate MongoDB with your Locust load tests to use realistic, production-like data instead of randomly generated data.
6
+
7
+ ## 📋 Table of Contents
8
+
9
+ 1. [Why Use MongoDB?](#why-use-mongodb)
10
+ 2. [Architecture](#architecture)
11
+ 3. [Quick Start](#quick-start)
12
+ 4. [Configuration](#configuration)
13
+ 5. [Seeding Data](#seeding-data)
14
+ 6. [Using MongoDB Data in Tests](#using-mongodb-data-in-tests)
15
+ 7. [Performance Tuning](#performance-tuning)
16
+ 8. [Troubleshooting](#troubleshooting)
17
+
18
+ ---
19
+
20
+ ## Why Use MongoDB?
21
+
22
+ ### Benefits
23
+
24
+ ✅ **Realistic Load Testing**: Use actual production-like data patterns
25
+ ✅ **Data Consistency**: Same data across test runs for reproducibility
26
+ ✅ **Complex Scenarios**: Test with real data relationships and edge cases
27
+ ✅ **Performance Baseline**: Measure with production-scale data volumes
28
+ ✅ **Debugging**: Easier to trace specific test scenarios
29
+
30
+ ### When NOT to Use MongoDB
31
+
32
+ ❌ High-concurrency tests (1000+ users) - may bottleneck on DB
33
+ ❌ Simple smoke tests - generated data is faster
34
+ ❌ No MongoDB infrastructure available
35
+
36
+ ---
37
+
38
+ ## Architecture
39
+
40
+ ```
41
+ ┌─────────────────┐
42
+ │ Locust Users │
43
+ │ (50-500) │
44
+ └────────┬────────┘
45
+
46
+ ├──────────────┐
47
+ │ │
48
+ ┌────▼────┐ ┌───▼──────┐
49
+ │ Cache │ │ MongoDB │
50
+ │ (Fast) │◄───┤ (Source) │
51
+ └─────────┘ └──────────┘
52
+
53
+ ┌────▼─────────────┐
54
+ │ Test Execution │
55
+ └──────────────────┘
56
+ ```
57
+
58
+ ### Components
59
+
60
+ 1. **db_config.py**: MongoDB connection pool management
61
+ 2. **mongo_data_provider.py**: Smart caching and data retrieval
62
+ 3. **seed_mongodb.py**: Data seeding utility
63
+ 4. **test_data.py**: Enhanced with MongoDB fallback
64
+
65
+ ---
66
+
67
+ ## Quick Start
68
+
69
+ ### 1. Install Dependencies
70
+
71
+ ```bash
72
+ pip install -r requirements.txt
73
+ ```
74
+
75
+ ### 2. Start MongoDB
76
+
77
+ ```bash
78
+ # Using Docker (recommended)
79
+ docker run -d -p 27017:27017 --name mongodb mongo:latest
80
+
81
+ # Or using local installation
82
+ mongod --dbpath /data/db
83
+ ```
84
+
85
+ ### 3. Configure Environment
86
+
87
+ Create a `.env` file from the example:
88
+
89
+ ```bash
90
+ cp .env.example .env
91
+ ```
92
+
93
+ Enable MongoDB in `.env`:
94
+
95
+ ```bash
96
+ # Enable MongoDB
97
+ ENABLE_MONGODB=true
98
+ USE_MONGODB_FOR_TEST_DATA=true
99
+
100
+ # Connection string
101
+ MONGODB_URI=mongodb://localhost:27017/
102
+ MONGODB_DATABASE=locust_test_data
103
+
104
+ # Pool size should be >= LOCUST_USERS
105
+ MONGODB_MAX_POOL_SIZE=100
106
+ LOCUST_USERS=50
107
+ ```
108
+
109
+ ### 4. Test Connection
110
+
111
+ ```bash
112
+ python db_config.py
113
+ ```
114
+
115
+ Expected output:
116
+ ```
117
+ ============================================================
118
+ MongoDB Connection Test
119
+ ============================================================
120
+
121
+ Connection URI: mongodb://localhost:27017/
122
+ Database: locust_test_data
123
+ Pool Size: 10 - 100
124
+ ...
125
+ ✅ Connection successful!
126
+ ```
127
+
128
+ ### 5. Seed Test Data
129
+
130
+ ```bash
131
+ # Seed all collections with 5000 documents each
132
+ python seed_mongodb.py --all 5000
133
+
134
+ # Or seed specific collections
135
+ python seed_mongodb.py --pets 1000 --users 500 --orders 2000
136
+ ```
137
+
138
+ ### 6. Run Load Tests
139
+
140
+ ```bash
141
+ locust -f locustfile.py
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Configuration
147
+
148
+ ### Critical Settings
149
+
150
+ #### Connection Pool Size
151
+
152
+ ```bash
153
+ # RULE: max_pool_size >= LOCUST_USERS
154
+ MONGODB_MAX_POOL_SIZE=100 # For 50-100 concurrent users
155
+ MONGODB_MIN_POOL_SIZE=10
156
+ ```
157
+
158
+ **⚠️ WARNING**: If `max_pool_size < LOCUST_USERS`, you WILL experience:
159
+ - Connection exhaustion
160
+ - Test failures
161
+ - Timeout errors
162
+ - Cascading failures
163
+
164
+ **Formula**: `MONGODB_MAX_POOL_SIZE = LOCUST_USERS × 2` (for safety margin)
165
+
166
+ #### Timeout Settings
167
+
168
+ ```bash
169
+ # Connection timeouts
170
+ MONGODB_CONNECT_TIMEOUT_MS=5000 # Initial connection
171
+ MONGODB_SOCKET_TIMEOUT_MS=10000 # Read/write operations
172
+ MONGODB_WAIT_QUEUE_TIMEOUT_MS=10000 # Waiting for connection from pool
173
+ ```
174
+
175
+ **Best Practices**:
176
+ - `CONNECT_TIMEOUT` < `SOCKET_TIMEOUT` < `WAIT_QUEUE_TIMEOUT`
177
+ - Increase timeouts for slow networks
178
+ - Decrease for fast local testing
179
+
180
+ ---
181
+
182
+ ## Seeding Data
183
+
184
+ ### Basic Seeding
185
+
186
+ ```bash
187
+ # Seed 10,000 documents per collection
188
+ python seed_mongodb.py --all 10000
189
+
190
+ # Seed specific amounts
191
+ python seed_mongodb.py --pets 5000 --users 1000 --orders 10000
192
+
193
+ # Custom batch size for faster insertion
194
+ python seed_mongodb.py --all 5000 --batch-size 500
195
+ ```
196
+
197
+ ### Verify Seeded Data
198
+
199
+ ```bash
200
+ # Check document counts
201
+ python seed_mongodb.py --verify
202
+
203
+ # View sample documents
204
+ python seed_mongodb.py --sample
205
+ ```
206
+
207
+ ### Clear Data
208
+
209
+ ```bash
210
+ # Clear all collections
211
+ python seed_mongodb.py --clear
212
+
213
+ # Clear specific collection
214
+ python seed_mongodb.py --clear-pets
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Using MongoDB Data in Tests
220
+
221
+ ### Automatic Integration
222
+
223
+ The `TestDataGenerator` automatically uses MongoDB when available:
224
+
225
+ ```python
226
+ # In your workflow tasks
227
+ data_generator = TestDataGenerator()
228
+
229
+ # This will try MongoDB first, then fallback to generation
230
+ pet_data = data_generator.get_from_mongodb_or_generate(
231
+ "pets",
232
+ lambda: data_generator.generate_product_data()
233
+ )
234
+ ```
235
+
236
+ ### Manual MongoDB Queries
237
+
238
+ ```python
239
+ from mongo_data_provider import mongo_data_provider
240
+
241
+ # Get random document
242
+ pet = mongo_data_provider.get_random_document("pets")
243
+
244
+ # Get with query filter
245
+ available_pet = mongo_data_provider.get_random_document(
246
+ "pets",
247
+ query={"status": "available"}
248
+ )
249
+
250
+ # Get multiple documents
251
+ pets = mongo_data_provider.get_multiple_documents("pets", count=10)
252
+ ```
253
+
254
+ ---
255
+
256
+ ## Performance Tuning
257
+
258
+ ### 1. Connection Pool Optimization
259
+
260
+ ```bash
261
+ # For 50 users
262
+ MONGODB_MAX_POOL_SIZE=100
263
+
264
+ # For 200 users
265
+ MONGODB_MAX_POOL_SIZE=400
266
+
267
+ # For 500 users
268
+ MONGODB_MAX_POOL_SIZE=1000
269
+ ```
270
+
271
+ ### 2. Preload Cache Before Tests
272
+
273
+ ```python
274
+ from locust import events
275
+ from mongo_data_provider import mongo_data_provider
276
+
277
+ @events.test_start.add_listener
278
+ def on_test_start(environment, **kwargs):
279
+ logger.info("Preloading MongoDB cache...")
280
+ mongo_data_provider.preload_cache("pets")
281
+ mongo_data_provider.preload_cache("users")
282
+ mongo_data_provider.preload_cache("orders")
283
+ logger.info("✅ Cache preloaded")
284
+ ```
285
+
286
+ ---
287
+
288
+ ## Troubleshooting
289
+
290
+ ### Connection Errors
291
+
292
+ **Error**: `ServerSelectionTimeoutError`
293
+
294
+ **Solution**:
295
+ ```bash
296
+ # Check if MongoDB is running
297
+ docker ps | grep mongo
298
+
299
+ # Start MongoDB
300
+ docker start mongodb
301
+
302
+ # Verify connection
303
+ python db_config.py
304
+ ```
305
+
306
+ ### Connection Pool Exhaustion
307
+
308
+ **Error**: `WaitQueueTimeoutError`
309
+
310
+ **Solution**:
311
+ ```bash
312
+ # In .env, increase pool size
313
+ MONGODB_MAX_POOL_SIZE=200 # Double your LOCUST_USERS
314
+ ```
315
+
316
+ ### Slow Performance
317
+
318
+ **Solutions**:
319
+
320
+ 1. Check cache hit rate (should be >90%)
321
+ 2. Create indexes on frequently queried fields
322
+ 3. Increase cache size
323
+ 4. Preload cache before tests
324
+
325
+ ---
326
+
327
+ ## Best Practices
328
+
329
+ ### ✅ DO
330
+
331
+ - Set `MONGODB_MAX_POOL_SIZE` >= `LOCUST_USERS`
332
+ - Preload cache before tests
333
+ - Monitor cache hit rates
334
+ - Create indexes on frequently queried fields
335
+ - Use connection pooling (singleton pattern)
336
+
337
+ ### ❌ DON'T
338
+
339
+ - Set pool size smaller than user count
340
+ - Create new connections per request
341
+ - Query MongoDB directly in tight loops
342
+ - Ignore timeout errors
343
+ - Skip data seeding
344
+
345
+ ---
346
+
347
+ ## Support
348
+
349
+ For issues or questions:
350
+ 1. Check logs: `python db_config.py`
351
+ 2. Verify configuration: review warnings from `validate_config()`
352
+ 3. Monitor stats: `mongo_data_provider.get_stats()`
@@ -29,6 +29,8 @@ Professional-grade performance testing suite for **{{ api_info.title }} {{ api_i
29
29
  - **Network access** to the target API
30
30
  - **Minimum 2GB RAM** for load testing
31
31
 
32
+ {{ db_using }}
33
+
32
34
  ### Installation
33
35
  ```bash
34
36
  # 1. Clone or download the test suite
@@ -43,4 +45,4 @@ cp .env.example .env
43
45
  # Edit .env with your API configuration
44
46
 
45
47
  # 4. Run your first test
46
- locust -f locust.py
48
+ locust -f locustfile.py
@@ -25,7 +25,10 @@ seaborn>=0.12.0
25
25
  structlog>=23.0.0
26
26
  colorama>=0.4.6
27
27
  Faker==37.6.0
28
+ jsonschema==4.25.1
28
29
 
29
30
  # Optional: Database connectivity
30
- # psycopg2-binary>=2.9.0 # PostgreSQL
31
- # pymongo>=4.3.0 # MongoDB
31
+ #psycopg2-binary>=2.9.0 # PostgreSQL
32
+ #psycopg2==2.9.11
33
+ pymongo>=4.3.0 # MongoDB
34
+ motor>=3.3.0 # Async MongoDB driver (optional for advanced use)
@@ -10,7 +10,11 @@ import uuid
10
10
  from datetime import datetime, timedelta
11
11
  from typing import Any, Dict, List, Optional, Union
12
12
  from faker import Faker
13
- import json
13
+ {% if data_provider_content %}
14
+ from data_provider import mongo_data_provider
15
+ {% endif %}
16
+
17
+
14
18
 
15
19
  fake = Faker()
16
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devdox_ai_locust
3
- Version: 0.1.3.post1
3
+ Version: 0.1.4
4
4
  Summary: AI-powered Locust load test generator from API documentation
5
5
  Author-email: Hayat Bourji <hayat.bourgi@montyholding.com>
6
6
  Maintainer-email: Hayat Bourji <hayat.bourgi@montyholding.com>
@@ -73,19 +73,27 @@ Dynamic: license-file
73
73
  DevDox AI Locust automatically generates comprehensive Locust load testing scripts from your API documentation (OpenAPI/Swagger specs). Using advanced AI capabilities, it creates realistic test scenarios, handles complex authentication flows, and generates production-ready performance tests.
74
74
 
75
75
 
76
- ## 🆕 What's New in 0.1.3.post1
76
+ ## 🆕 What's New in 0.1.4
77
77
 
78
- ### Performance & Reliability Improvements
78
+ ### MongoDB Integration
79
79
 
80
- - **🚀 Asynchronous API Calls**: Migrated from `Together` to `AsyncTogether` for non-blocking API interactions, significantly improving generation speed and responsiveness
81
- - **⚡ Enhanced Timeout Handling**: Implemented robust timeout logic with configurable retry mechanisms for better error resilience
82
- - **🔧 Improved Code Extraction**: Enhanced `<code>` block parsing with detailed validation, multiple fallback scenarios, and better error messages
83
- - **🛡️ Better Error Management**: Comprehensive error handling throughout the AI generation pipeline with graceful degradation
80
+ - Added a new data provider class: MongoDataProvider
81
+ - Connects Locust test data generation directly to MongoDB
82
+ - Enables realistic test data retrieval for entities like users, products, orders, affiliates, etc.
83
+ - Supports **real data** from the database and **synthetic fallback generation** when MongoDB is disabled or unavailable
84
84
 
85
- ### Bug Fixes & Stability
85
+ #### 2. **New MongoDataProvider Methods**
86
+ | Method | Description |
87
+ |----------------------------------------------------------|--------------|
88
+ | `get_document(collection_name)` | Retrieves a single realistic document from MongoDB or fallback generator |
89
+ | `get_multiple_documents(collection_name, count=10, query=None)` | Retrieves multiple documents or generates them in batches |
90
+ | `clear_cache()` | Clears in-memory cached data for all collections |
91
+ | `get_stats()` | Returns usage and cache statistics for debugging and optimization |
92
+
93
+ #### 3. **Smart Fallbacks**
94
+ If MongoDB is disabled (`enable_mongodb = false` in `db_config.py`),
95
+ the system automatically switches to **synthetic data generation** using the LLM-based `TestDataGenerator`.
86
96
 
87
- - Fixed edge cases in code block extraction where malformed responses could cause generation failures
88
- - Improved retry logic to handle transient API errors without interrupting the generation process
89
97
 
90
98
  ## ✨ Features
91
99
 
@@ -139,14 +147,21 @@ devdox_ai_locust generate --openapi-url https://api.example.com/openapi.json --o
139
147
 
140
148
  # Generate with custom configuration
141
149
  devdox_ai_locust generate \
142
- https://petstore.swagger.io/v3/swagger.json \
150
+ https://petstore3.swagger.io/api/v3/openapi.json \
143
151
  --output ./petstore-tests \
144
152
  --together-api-key your_api_key \
145
153
 
154
+ # Generate with db integration
155
+ devdox_ai_locust generate \
156
+ https://petstore3.swagger.io/api/v3/openapi.json \
157
+ --output ./petstore-tests \
158
+ --db-type mongo \
146
159
  ```
147
160
 
148
161
 
149
162
 
163
+
164
+
150
165
  ## 📖 Documentation
151
166
 
152
167
  ### Command Line Interface
@@ -1,14 +1,14 @@
1
1
  devdox_ai_locust/__init__.py,sha256=LhG8nXZxLkyvWwJxB_OCe9t4TLa4udLtzAVfHpD3CkU,276
2
- devdox_ai_locust/cli.py,sha256=DDSAbT37-Rtj9XPFMtfr9nF6JIqz3md12u2DmCTD4MU,13844
3
- devdox_ai_locust/config.py,sha256=UfyqyI63QYbylxp5PQdAa-MoIGWTxcxr86LQ9cBr12s,453
4
- devdox_ai_locust/hybrid_loctus_generator.py,sha256=npnNw8OleKjXfhZMuULL1qFwSEjuUzGVGVOUDlIvXpM,36199
5
- devdox_ai_locust/locust_generator.py,sha256=dt455ONBs91W4JxRipNX395PlDmHojigM79aKWHHHxs,27017
2
+ devdox_ai_locust/cli.py,sha256=80CPYwJhqym0HYfplZcAP1PygTEPobevLObNzsmK92A,14257
3
+ devdox_ai_locust/config.py,sha256=2rCcwtCS8BE3RcM2M2WQwnpeTJgyDhXP2p5OHxXNx98,447
4
+ devdox_ai_locust/hybrid_loctus_generator.py,sha256=alTwpdT-4FLLoT-i4vMDTGoGkfSAoOe-JwdXA1aFjwY,37187
5
+ devdox_ai_locust/locust_generator.py,sha256=5wOk3jE6ka8RBalcHLevBAQEliLWuaO2WDH8Ao-Q8_s,29449
6
6
  devdox_ai_locust/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  devdox_ai_locust/prompt/domain.j2,sha256=ThK1mZK8bmDF6v1YsOB9wjvijljPRoseLy6lWEUG-vM,1570
8
8
  devdox_ai_locust/prompt/locust.j2,sha256=1OM-g5X1Y8fqerfSHjSBPWGRVgeLm9h22aBsA7Bt5fc,852
9
- devdox_ai_locust/prompt/test_data.j2,sha256=8tGmPUGkhoc2Oxe5I-2Nr1LGND5KH0LgUjDR_S3h0zA,2659
9
+ devdox_ai_locust/prompt/test_data.j2,sha256=4QxjezD9EOGbYN7MNspPSKwQfrg_-46veTAREWbKNTQ,8796
10
10
  devdox_ai_locust/prompt/validation.j2,sha256=4r-T8oVpkIjv3ADabD9d5klKqYfHICy85xpL0TVZKr4,487
11
- devdox_ai_locust/prompt/workflow.j2,sha256=5Ea0y0_zyAyiFMXQGNvG_bDD-cJHhdWi10IstS3NaRk,5330
11
+ devdox_ai_locust/prompt/workflow.j2,sha256=6g6DjgAIk3wrvpt_nOl-rYIDSM8zGHtmvEZN3ZYYjew,14864
12
12
  devdox_ai_locust/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  devdox_ai_locust/schemas/processing_result.py,sha256=jja6oJh19FLrcnV7zHAQYXQ7g0_g_xt4JEQz3i9Sa9A,789
14
14
  devdox_ai_locust/templates/base_workflow.py.j2,sha256=KQNamuRuTFAPsmY3MhH2WkYNiNP_Vu2iBUze8ZyENJk,6346
@@ -18,17 +18,20 @@ devdox_ai_locust/templates/endpoint_template.py.j2,sha256=edZ7_VETOCjCluUE0Gx4un
18
18
  devdox_ai_locust/templates/env.example.j2,sha256=MYCZu8Y2OZILB7XUnNapwebhvHC6ASD4YN7VKFOzaOY,84
19
19
  devdox_ai_locust/templates/fallback_locust.py.j2,sha256=gUEBMsKWmwq05aoxAxhWDLgujVQzP05lgfMW92ORWAM,691
20
20
  devdox_ai_locust/templates/locust.py.j2,sha256=jIc4tbJkHzBIxOfpeqrUXr_vEZWYGV5AbgtKQyIe7dQ,1843
21
- devdox_ai_locust/templates/readme.md.j2,sha256=WyTiq7CdNSL9YjuHs3ziciMA4s5moV_wkbGufPkgybo,1281
22
- devdox_ai_locust/templates/requirement.txt.j2,sha256=kfyd1GRmGU7mZxRBQ5uEDbdr8RIN46CKtV2Pcra0_os,530
23
- devdox_ai_locust/templates/test_data.py.j2,sha256=Xga10fOn-BghnIZCSB3lAZ4jZhH1pnVv9GYdbzURrwk,10088
21
+ devdox_ai_locust/templates/readme.md.j2,sha256=eG085_ivXcK1Ik1xX09tgkVed2F31WaxNXiJXbrrJ7U,1301
22
+ devdox_ai_locust/templates/requirement.txt.j2,sha256=FQqK0BN-0IqUBCYR73wZ-LoggPeeOrmhtC2s4j7oA8s,629
23
+ devdox_ai_locust/templates/test_data.py.j2,sha256=HED9eQ9YK_RpvII52Rh1LKidxkl5Q_vdInLkkqLFZ8k,10167
24
24
  devdox_ai_locust/templates/utils.py.j2,sha256=2lcPIHypGNlfNRMv4nyC67WnvOFl07nxgJuz40NhFIg,13920
25
+ devdox_ai_locust/templates/mongo/data_provider.py.j2,sha256=y8iqhwKmzrNgpslt-Fzr_Yco-tGUTiRc0DJqYQjjMpk,10822
26
+ devdox_ai_locust/templates/mongo/db_config.py.j2,sha256=aMy82lSFf5V-caKb8Y7FbKvuMiJXjtNOgOl6R4aQKvY,10186
27
+ devdox_ai_locust/templates/mongo/db_integration.j2,sha256=rK6VjSpof0A2IUQmCm4qsWr55DsY5q5CK6cLJ52jHQU,7475
25
28
  devdox_ai_locust/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
29
  devdox_ai_locust/utils/file_creation.py,sha256=sN6rW07VBKfzwUEAG298tCRvmnzx0886w_phdEnsQZg,3957
27
30
  devdox_ai_locust/utils/open_ai_parser.py,sha256=EJsPpPSM9RiTZ0iySYIJ66knREegS324Q7mSk_4CxGM,13158
28
31
  devdox_ai_locust/utils/swagger_utils.py,sha256=L2CV_5J4krCYyIcl-KYW_SAkBxzIKOsn2kcHhZ2CI7k,3191
29
- devdox_ai_locust-0.1.3.post1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
30
- devdox_ai_locust-0.1.3.post1.dist-info/METADATA,sha256=5z4bSGjdnkY3AznoJfsUFvMn6s3WJWgJ6JQBNh5RJ10,14239
31
- devdox_ai_locust-0.1.3.post1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
32
- devdox_ai_locust-0.1.3.post1.dist-info/entry_points.txt,sha256=Eoq-gJd4WxkwwQ8pUMsqeSrfZG3yW-NmJ82iVxOc9JA,95
33
- devdox_ai_locust-0.1.3.post1.dist-info/top_level.txt,sha256=ZIpK9RS5xc9RXgG8mw9xPs0kwln8Kggi_7VURxtERQE,17
34
- devdox_ai_locust-0.1.3.post1.dist-info/RECORD,,
32
+ devdox_ai_locust-0.1.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
33
+ devdox_ai_locust-0.1.4.dist-info/METADATA,sha256=pKhgIHlGGDt6kGLoG8aPq6sr-zqwtaZhUKGXkt5plyQ,14799
34
+ devdox_ai_locust-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
35
+ devdox_ai_locust-0.1.4.dist-info/entry_points.txt,sha256=Eoq-gJd4WxkwwQ8pUMsqeSrfZG3yW-NmJ82iVxOc9JA,95
36
+ devdox_ai_locust-0.1.4.dist-info/top_level.txt,sha256=ZIpK9RS5xc9RXgG8mw9xPs0kwln8Kggi_7VURxtERQE,17
37
+ devdox_ai_locust-0.1.4.dist-info/RECORD,,