fleet-python 0.2.38__tar.gz → 0.2.40__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.
Potentially problematic release.
This version of fleet-python might be problematic. Click here for more details.
- {fleet_python-0.2.38 → fleet_python-0.2.40}/PKG-INFO +2 -3
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/client.py +28 -9
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/tasks.py +0 -5
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/client.py +30 -15
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/tasks.py +0 -5
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet_python.egg-info/PKG-INFO +2 -3
- {fleet_python-0.2.38 → fleet_python-0.2.40}/pyproject.toml +5 -6
- {fleet_python-0.2.38 → fleet_python-0.2.40}/LICENSE +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/README.md +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/diff_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/dsl_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/exampleResume.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_account.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_action_log.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_client.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_mcp_anthropic.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_mcp_openai.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_sync.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_task.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_tasks.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/example_verifier.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/gemini_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/json_tasks_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/nova_act_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/openai_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/openai_simple_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/query_builder_example.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/quickstart.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/examples/test_cdp_logging.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/base.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/env/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/env/client.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/exceptions.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/global_client.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/instance/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/instance/base.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/instance/client.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/models.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/resources/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/resources/base.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/resources/browser.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/resources/mcp.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/resources/sqlite.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/verifiers/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/verifiers/bundler.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/_async/verifiers/verifier.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/base.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/config.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/env/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/env/client.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/exceptions.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/global_client.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/instance/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/instance/base.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/instance/client.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/instance/models.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/models.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/resources/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/resources/base.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/resources/browser.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/resources/mcp.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/resources/sqlite.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/types.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/__init__.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/bundler.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/code.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/db.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/decorator.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/parse.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/sql_differ.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet/verifiers/verifier.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet_python.egg-info/SOURCES.txt +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet_python.egg-info/dependency_links.txt +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet_python.egg-info/requires.txt +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/fleet_python.egg-info/top_level.txt +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/scripts/fix_sync_imports.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/scripts/unasync.py +0 -0
- {fleet_python-0.2.38 → fleet_python-0.2.40}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fleet-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.40
|
|
4
4
|
Summary: Python SDK for Fleet environments
|
|
5
5
|
Author-email: Fleet AI <nic@fleet.so>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -12,12 +12,11 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.9
|
|
21
20
|
Description-Content-Type: text/markdown
|
|
22
21
|
License-File: LICENSE
|
|
23
22
|
Requires-Dist: aiohttp>=3.8.0
|
|
@@ -44,7 +44,12 @@ from .instance import (
|
|
|
44
44
|
ResetResponse,
|
|
45
45
|
ExecuteFunctionResponse,
|
|
46
46
|
)
|
|
47
|
-
from ..config import
|
|
47
|
+
from ..config import (
|
|
48
|
+
DEFAULT_MAX_RETRIES,
|
|
49
|
+
DEFAULT_TIMEOUT,
|
|
50
|
+
REGION_BASE_URL,
|
|
51
|
+
GLOBAL_BASE_URL,
|
|
52
|
+
)
|
|
48
53
|
from .instance.base import default_httpx_client
|
|
49
54
|
from .instance.client import ValidatorType
|
|
50
55
|
from .resources.base import Resource
|
|
@@ -196,7 +201,12 @@ class AsyncFleet:
|
|
|
196
201
|
response = await self.client.request("GET", f"/v1/env/{env_key}")
|
|
197
202
|
return EnvironmentModel(**response.json())
|
|
198
203
|
|
|
199
|
-
async def make(
|
|
204
|
+
async def make(
|
|
205
|
+
self,
|
|
206
|
+
env_key: str,
|
|
207
|
+
region: Optional[str] = None,
|
|
208
|
+
env_variables: Optional[Dict[str, Any]] = None,
|
|
209
|
+
) -> AsyncEnv:
|
|
200
210
|
if ":" in env_key:
|
|
201
211
|
env_key_part, version = env_key.split(":", 1)
|
|
202
212
|
if (
|
|
@@ -210,14 +220,23 @@ class AsyncFleet:
|
|
|
210
220
|
version = None
|
|
211
221
|
|
|
212
222
|
request = InstanceRequest(
|
|
213
|
-
env_key=env_key_part,
|
|
223
|
+
env_key=env_key_part,
|
|
224
|
+
version=version,
|
|
225
|
+
region=region,
|
|
226
|
+
env_variables=env_variables,
|
|
227
|
+
created_from="sdk",
|
|
214
228
|
)
|
|
215
|
-
|
|
229
|
+
|
|
230
|
+
# Only use region-specific base URL if no custom base URL is set
|
|
231
|
+
base_url = None
|
|
232
|
+
if region and self.client.base_url == GLOBAL_BASE_URL:
|
|
233
|
+
base_url = REGION_BASE_URL.get(region)
|
|
234
|
+
|
|
216
235
|
response = await self.client.request(
|
|
217
236
|
"POST",
|
|
218
237
|
"/v1/env/instances",
|
|
219
238
|
json=request.model_dump(exclude_none=True),
|
|
220
|
-
base_url=
|
|
239
|
+
base_url=base_url,
|
|
221
240
|
)
|
|
222
241
|
|
|
223
242
|
instance = AsyncEnv(client=self.client, **response.json())
|
|
@@ -308,11 +327,11 @@ class AsyncFleet:
|
|
|
308
327
|
return task
|
|
309
328
|
|
|
310
329
|
async def load_tasks(
|
|
311
|
-
self,
|
|
330
|
+
self,
|
|
312
331
|
env_key: Optional[str] = None,
|
|
313
332
|
keys: Optional[List[str]] = None,
|
|
314
333
|
version: Optional[str] = None,
|
|
315
|
-
team_id: Optional[str] = None
|
|
334
|
+
team_id: Optional[str] = None,
|
|
316
335
|
) -> List[Task]:
|
|
317
336
|
"""Load tasks for the authenticated team, with optional filtering.
|
|
318
337
|
|
|
@@ -498,7 +517,7 @@ class AsyncFleet:
|
|
|
498
517
|
"""
|
|
499
518
|
from ..tasks import verifier_from_string
|
|
500
519
|
from .verifiers.verifier import AsyncVerifierFunction
|
|
501
|
-
|
|
520
|
+
|
|
502
521
|
# Use verifier_from_string to create the verifier
|
|
503
522
|
verifier_func = verifier_from_string(
|
|
504
523
|
verifier_func=verifier_code,
|
|
@@ -506,7 +525,7 @@ class AsyncFleet:
|
|
|
506
525
|
verifier_key=verifier_key,
|
|
507
526
|
sha256=verifier_sha,
|
|
508
527
|
)
|
|
509
|
-
|
|
528
|
+
|
|
510
529
|
# Store the original verifier code for reference
|
|
511
530
|
verifier_func._verifier_code = verifier_code
|
|
512
531
|
|
|
@@ -36,11 +36,6 @@ class Task(BaseModel):
|
|
|
36
36
|
|
|
37
37
|
@validator("key")
|
|
38
38
|
def validate_key_format(cls, v):
|
|
39
|
-
"""Validate key follows kebab-case format."""
|
|
40
|
-
if not re.match(r"^[a-z0-9]+(-[a-z0-9]+)*$", v):
|
|
41
|
-
raise ValueError(
|
|
42
|
-
f"Invalid task key format: {v}. Must follow kebab-case format."
|
|
43
|
-
)
|
|
44
39
|
return v
|
|
45
40
|
|
|
46
41
|
@validator("created_at", pre=True, always=True)
|
|
@@ -44,7 +44,12 @@ from .instance import (
|
|
|
44
44
|
ResetResponse,
|
|
45
45
|
ExecuteFunctionResponse,
|
|
46
46
|
)
|
|
47
|
-
from .config import
|
|
47
|
+
from .config import (
|
|
48
|
+
DEFAULT_MAX_RETRIES,
|
|
49
|
+
DEFAULT_TIMEOUT,
|
|
50
|
+
REGION_BASE_URL,
|
|
51
|
+
GLOBAL_BASE_URL,
|
|
52
|
+
)
|
|
48
53
|
from .instance.base import default_httpx_client
|
|
49
54
|
from .instance.client import ValidatorType
|
|
50
55
|
from .resources.base import Resource
|
|
@@ -196,7 +201,12 @@ class Fleet:
|
|
|
196
201
|
response = self.client.request("GET", f"/v1/env/{env_key}")
|
|
197
202
|
return EnvironmentModel(**response.json())
|
|
198
203
|
|
|
199
|
-
def make(
|
|
204
|
+
def make(
|
|
205
|
+
self,
|
|
206
|
+
env_key: str,
|
|
207
|
+
region: Optional[str] = None,
|
|
208
|
+
env_variables: Optional[Dict[str, Any]] = None,
|
|
209
|
+
) -> SyncEnv:
|
|
200
210
|
if ":" in env_key:
|
|
201
211
|
env_key_part, version = env_key.split(":", 1)
|
|
202
212
|
if (
|
|
@@ -210,14 +220,23 @@ class Fleet:
|
|
|
210
220
|
version = None
|
|
211
221
|
|
|
212
222
|
request = InstanceRequest(
|
|
213
|
-
env_key=env_key_part,
|
|
223
|
+
env_key=env_key_part,
|
|
224
|
+
version=version,
|
|
225
|
+
region=region,
|
|
226
|
+
env_variables=env_variables,
|
|
227
|
+
created_from="sdk",
|
|
214
228
|
)
|
|
215
|
-
|
|
229
|
+
|
|
230
|
+
# Only use region-specific base URL if no custom base URL is set
|
|
231
|
+
base_url = None
|
|
232
|
+
if region and self.client.base_url == GLOBAL_BASE_URL:
|
|
233
|
+
base_url = REGION_BASE_URL.get(region)
|
|
234
|
+
|
|
216
235
|
response = self.client.request(
|
|
217
236
|
"POST",
|
|
218
237
|
"/v1/env/instances",
|
|
219
238
|
json=request.model_dump(exclude_none=True),
|
|
220
|
-
base_url=
|
|
239
|
+
base_url=base_url,
|
|
221
240
|
)
|
|
222
241
|
|
|
223
242
|
instance = SyncEnv(client=self.client, **response.json())
|
|
@@ -254,9 +273,7 @@ class Fleet:
|
|
|
254
273
|
def execute_verifier_remote(
|
|
255
274
|
self, bundle_data: bytes, args: tuple, kwargs: dict, timeout: Optional[int] = 30
|
|
256
275
|
) -> VerifiersExecuteResponse:
|
|
257
|
-
return _execute_verifier_remote(
|
|
258
|
-
self.client, bundle_data, args, kwargs, timeout
|
|
259
|
-
)
|
|
276
|
+
return _execute_verifier_remote(self.client, bundle_data, args, kwargs, timeout)
|
|
260
277
|
|
|
261
278
|
def delete(self, instance_id: str) -> InstanceResponse:
|
|
262
279
|
return _delete_instance(self.client, instance_id)
|
|
@@ -267,9 +284,7 @@ class Fleet:
|
|
|
267
284
|
|
|
268
285
|
return self.load_task_array_from_string(tasks_data)
|
|
269
286
|
|
|
270
|
-
def load_task_array_from_string(
|
|
271
|
-
self, serialized_tasks: List[Dict]
|
|
272
|
-
) -> List[Task]:
|
|
287
|
+
def load_task_array_from_string(self, serialized_tasks: List[Dict]) -> List[Task]:
|
|
273
288
|
tasks = []
|
|
274
289
|
|
|
275
290
|
json_tasks = json.loads(serialized_tasks)
|
|
@@ -308,11 +323,11 @@ class Fleet:
|
|
|
308
323
|
return task
|
|
309
324
|
|
|
310
325
|
def load_tasks(
|
|
311
|
-
self,
|
|
326
|
+
self,
|
|
312
327
|
env_key: Optional[str] = None,
|
|
313
328
|
keys: Optional[List[str]] = None,
|
|
314
329
|
version: Optional[str] = None,
|
|
315
|
-
team_id: Optional[str] = None
|
|
330
|
+
team_id: Optional[str] = None,
|
|
316
331
|
) -> List[Task]:
|
|
317
332
|
"""Load tasks for the authenticated team, with optional filtering.
|
|
318
333
|
|
|
@@ -498,7 +513,7 @@ class Fleet:
|
|
|
498
513
|
"""
|
|
499
514
|
from .tasks import verifier_from_string
|
|
500
515
|
from .verifiers import SyncVerifierFunction
|
|
501
|
-
|
|
516
|
+
|
|
502
517
|
# Use verifier_from_string to create the verifier
|
|
503
518
|
verifier_func = verifier_from_string(
|
|
504
519
|
verifier_func=verifier_code,
|
|
@@ -506,7 +521,7 @@ class Fleet:
|
|
|
506
521
|
verifier_key=verifier_key,
|
|
507
522
|
sha256=verifier_sha,
|
|
508
523
|
)
|
|
509
|
-
|
|
524
|
+
|
|
510
525
|
# Store the original verifier code for reference
|
|
511
526
|
verifier_func._verifier_code = verifier_code
|
|
512
527
|
|
|
@@ -37,11 +37,6 @@ class Task(BaseModel):
|
|
|
37
37
|
|
|
38
38
|
@validator("key")
|
|
39
39
|
def validate_key_format(cls, v):
|
|
40
|
-
"""Validate key follows kebab-case format."""
|
|
41
|
-
if not re.match(r"^[a-z0-9]+(-[a-z0-9]+)*$", v):
|
|
42
|
-
raise ValueError(
|
|
43
|
-
f"Invalid task key format: {v}. Must follow kebab-case format."
|
|
44
|
-
)
|
|
45
40
|
return v
|
|
46
41
|
|
|
47
42
|
@validator("created_at", pre=True, always=True)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fleet-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.40
|
|
4
4
|
Summary: Python SDK for Fleet environments
|
|
5
5
|
Author-email: Fleet AI <nic@fleet.so>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -12,12 +12,11 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.9
|
|
21
20
|
Description-Content-Type: text/markdown
|
|
22
21
|
License-File: LICENSE
|
|
23
22
|
Requires-Dist: aiohttp>=3.8.0
|
|
@@ -4,20 +4,19 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "fleet-python"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.40"
|
|
8
8
|
description = "Python SDK for Fleet environments"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "Fleet AI", email = "nic@fleet.so"},
|
|
11
11
|
]
|
|
12
12
|
readme = "README.md"
|
|
13
|
-
requires-python = ">=3.
|
|
13
|
+
requires-python = ">=3.9"
|
|
14
14
|
license = {text = "Apache-2.0"}
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Development Status :: 3 - Alpha",
|
|
17
17
|
"Intended Audience :: Developers",
|
|
18
18
|
"License :: OSI Approved :: Apache Software License",
|
|
19
19
|
"Programming Language :: Python :: 3",
|
|
20
|
-
"Programming Language :: Python :: 3.8",
|
|
21
20
|
"Programming Language :: Python :: 3.9",
|
|
22
21
|
"Programming Language :: Python :: 3.10",
|
|
23
22
|
"Programming Language :: Python :: 3.11",
|
|
@@ -59,21 +58,21 @@ where = ["."]
|
|
|
59
58
|
|
|
60
59
|
[tool.black]
|
|
61
60
|
line-length = 88
|
|
62
|
-
target-version = ['
|
|
61
|
+
target-version = ['py39']
|
|
63
62
|
|
|
64
63
|
[tool.isort]
|
|
65
64
|
profile = "black"
|
|
66
65
|
line_length = 88
|
|
67
66
|
|
|
68
67
|
[tool.mypy]
|
|
69
|
-
python_version = "3.
|
|
68
|
+
python_version = "3.9"
|
|
70
69
|
strict = true
|
|
71
70
|
warn_return_any = true
|
|
72
71
|
warn_unused_configs = true
|
|
73
72
|
|
|
74
73
|
[tool.ruff]
|
|
75
74
|
line-length = 88
|
|
76
|
-
target-version = "
|
|
75
|
+
target-version = "py39"
|
|
77
76
|
|
|
78
77
|
[tool.pytest.ini_options]
|
|
79
78
|
asyncio_mode = "auto"
|
|
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
|
|
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
|