deltadefi 0.1.0__tar.gz → 0.1.3__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 deltadefi might be problematic. Click here for more details.
- {deltadefi-0.1.0 → deltadefi-0.1.3}/.env.example +1 -1
- {deltadefi-0.1.0 → deltadefi-0.1.3}/.gitignore +1 -1
- deltadefi-0.1.3/.pre-commit-config.yaml +67 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/Makefile +10 -1
- {deltadefi-0.1.0 → deltadefi-0.1.3}/PKG-INFO +1 -1
- {deltadefi-0.1.0 → deltadefi-0.1.3}/coverage.xml +131 -117
- {deltadefi-0.1.0 → deltadefi-0.1.3}/pyproject.toml +6 -3
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/api.py +1 -1
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/clients/accounts.py +1 -1
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/clients/markets.py +1 -1
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/clients/orders.py +34 -3
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/clients/websocket.py +2 -4
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/responses/responses.py +10 -0
- deltadefi-0.1.3/src/deltadefi/utils/__init__.py +2 -0
- deltadefi-0.1.3/src/deltadefi/utils/helpers.py +46 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/tests/clients/test_accounts.py +5 -2
- {deltadefi-0.1.0 → deltadefi-0.1.3}/tests/clients/test_order.py +6 -3
- {deltadefi-0.1.0 → deltadefi-0.1.3}/uv.lock +147 -1
- {deltadefi-0.1.0 → deltadefi-0.1.3}/.github/workflows/publish.yml +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/README.md +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/examples/websocket_example.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/api_resources/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/api_resources/auth.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/api_resources/validation.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/clients/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/clients/client.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/constants/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/constants/constants.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/error.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/models/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/models/models.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/responses/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/src/deltadefi/responses/accounts.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/tests/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/tests/clients/__init__.py +0 -0
- {deltadefi-0.1.0 → deltadefi-0.1.3}/tests/clients/test_sign.py +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
# Standard pre-commit hooks
|
|
3
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
4
|
+
rev: v5.0.0
|
|
5
|
+
hooks:
|
|
6
|
+
- id: trailing-whitespace
|
|
7
|
+
- id: end-of-file-fixer
|
|
8
|
+
- id: check-yaml
|
|
9
|
+
- id: check-added-large-files
|
|
10
|
+
- id: check-json
|
|
11
|
+
- id: check-toml
|
|
12
|
+
- id: check-merge-conflict
|
|
13
|
+
- id: debug-statements
|
|
14
|
+
|
|
15
|
+
# Ruff for linting and formatting
|
|
16
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
17
|
+
rev: v0.12.10
|
|
18
|
+
hooks:
|
|
19
|
+
- id: ruff
|
|
20
|
+
args: [--fix]
|
|
21
|
+
- id: ruff-format
|
|
22
|
+
|
|
23
|
+
# MyPy for type checking (lenient for now)
|
|
24
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
25
|
+
rev: v1.17.1
|
|
26
|
+
hooks:
|
|
27
|
+
- id: mypy
|
|
28
|
+
additional_dependencies: [types-requests]
|
|
29
|
+
args: [--ignore-missing-imports, --disable-error-code=no-any-return, --disable-error-code=call-arg]
|
|
30
|
+
|
|
31
|
+
# Custom hooks for project-specific checks
|
|
32
|
+
- repo: local
|
|
33
|
+
hooks:
|
|
34
|
+
# Install dependencies
|
|
35
|
+
- id: uv-sync
|
|
36
|
+
name: Install dependencies
|
|
37
|
+
entry: uv sync --dev
|
|
38
|
+
language: system
|
|
39
|
+
pass_filenames: false
|
|
40
|
+
stages: [pre-commit]
|
|
41
|
+
|
|
42
|
+
# Run tests
|
|
43
|
+
- id: pytest
|
|
44
|
+
name: Run tests
|
|
45
|
+
entry: uv run pytest
|
|
46
|
+
language: system
|
|
47
|
+
pass_filenames: false
|
|
48
|
+
stages: [pre-commit]
|
|
49
|
+
|
|
50
|
+
# Build package
|
|
51
|
+
- id: uv-build
|
|
52
|
+
name: Build package
|
|
53
|
+
entry: uv build --out-dir .pre-commit-build
|
|
54
|
+
language: system
|
|
55
|
+
pass_filenames: false
|
|
56
|
+
stages: [pre-commit]
|
|
57
|
+
|
|
58
|
+
# Clean up build artifacts
|
|
59
|
+
- id: cleanup-build
|
|
60
|
+
name: Clean build artifacts
|
|
61
|
+
entry: rm -rf .pre-commit-build
|
|
62
|
+
language: system
|
|
63
|
+
pass_filenames: false
|
|
64
|
+
stages: [pre-commit]
|
|
65
|
+
|
|
66
|
+
# Configure which hooks run at different stages
|
|
67
|
+
default_stages: [pre-commit]
|
|
@@ -59,7 +59,7 @@ cov-html: cov ## Check code coverage and generate HTML report [test]
|
|
|
59
59
|
@$(UV) run coverage html -d cov_html
|
|
60
60
|
@echo "Coverage report generated in cov_html/"
|
|
61
61
|
|
|
62
|
-
# 🏗️ Building & Distribution
|
|
62
|
+
# 🏗️ Building & Distribution
|
|
63
63
|
build: install ## Build the package [build]
|
|
64
64
|
@$(UV) build
|
|
65
65
|
|
|
@@ -83,3 +83,12 @@ clean: clean-test ## Remove caches, build artifacts, and temp files
|
|
|
83
83
|
version: ## Show uv and Python versions
|
|
84
84
|
@$(UV) --version
|
|
85
85
|
@$(UV) run $(PY) -c "import platform; print('Python', platform.python_version())"
|
|
86
|
+
|
|
87
|
+
precommit-install: ## Install pre-commit hooks
|
|
88
|
+
@$(UV) run pre-commit install
|
|
89
|
+
|
|
90
|
+
precommit: ## Run pre-commit hooks on all files
|
|
91
|
+
@$(UV) run pre-commit run --all-files
|
|
92
|
+
|
|
93
|
+
precommit-update: ## Update pre-commit hooks
|
|
94
|
+
@$(UV) run pre-commit autoupdate
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" ?>
|
|
2
|
-
<coverage version="7.10.6" timestamp="
|
|
2
|
+
<coverage version="7.10.6" timestamp="1760881961146" lines-valid="633" lines-covered="291" line-rate="0.4597" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
|
|
3
3
|
<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.10.6 -->
|
|
4
4
|
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
|
|
5
5
|
<sources>
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
</class>
|
|
160
160
|
</classes>
|
|
161
161
|
</package>
|
|
162
|
-
<package name="src.deltadefi.clients" line-rate="0.
|
|
162
|
+
<package name="src.deltadefi.clients" line-rate="0.2508" branch-rate="0" complexity="0">
|
|
163
163
|
<classes>
|
|
164
164
|
<class name="__init__.py" filename="src/deltadefi/clients/__init__.py" complexity="0" line-rate="1" branch-rate="0">
|
|
165
165
|
<methods/>
|
|
@@ -175,8 +175,8 @@
|
|
|
175
175
|
<line number="5" hits="1"/>
|
|
176
176
|
<line number="6" hits="1"/>
|
|
177
177
|
<line number="7" hits="1"/>
|
|
178
|
-
<line number="
|
|
179
|
-
<line number="
|
|
178
|
+
<line number="17" hits="1"/>
|
|
179
|
+
<line number="24" hits="1"/>
|
|
180
180
|
<line number="27" hits="1"/>
|
|
181
181
|
<line number="32" hits="1"/>
|
|
182
182
|
<line number="34" hits="1"/>
|
|
@@ -307,43 +307,51 @@
|
|
|
307
307
|
<line number="59" hits="0"/>
|
|
308
308
|
</lines>
|
|
309
309
|
</class>
|
|
310
|
-
<class name="orders.py" filename="src/deltadefi/clients/orders.py" complexity="0" line-rate="0.
|
|
310
|
+
<class name="orders.py" filename="src/deltadefi/clients/orders.py" complexity="0" line-rate="0.3333" branch-rate="0">
|
|
311
311
|
<methods/>
|
|
312
312
|
<lines>
|
|
313
313
|
<line number="1" hits="1"/>
|
|
314
314
|
<line number="2" hits="1"/>
|
|
315
315
|
<line number="3" hits="1"/>
|
|
316
|
-
<line number="
|
|
317
|
-
<line number="
|
|
318
|
-
<line number="16" hits="1"/>
|
|
316
|
+
<line number="10" hits="1"/>
|
|
317
|
+
<line number="13" hits="1"/>
|
|
319
318
|
<line number="18" hits="1"/>
|
|
320
|
-
<line number="
|
|
321
|
-
<line number="21" hits="
|
|
322
|
-
<line number="
|
|
323
|
-
<line number="
|
|
324
|
-
<line number="
|
|
319
|
+
<line number="20" hits="1"/>
|
|
320
|
+
<line number="21" hits="0"/>
|
|
321
|
+
<line number="23" hits="1"/>
|
|
322
|
+
<line number="45" hits="0"/>
|
|
323
|
+
<line number="54" hits="0"/>
|
|
325
324
|
<line number="55" hits="0"/>
|
|
326
|
-
<line number="
|
|
327
|
-
<line number="
|
|
328
|
-
<line number="
|
|
329
|
-
<line number="
|
|
330
|
-
<line number="71" hits="
|
|
331
|
-
<line number="
|
|
325
|
+
<line number="57" hits="0"/>
|
|
326
|
+
<line number="58" hits="0"/>
|
|
327
|
+
<line number="62" hits="0"/>
|
|
328
|
+
<line number="70" hits="0"/>
|
|
329
|
+
<line number="71" hits="0"/>
|
|
330
|
+
<line number="73" hits="1"/>
|
|
332
331
|
<line number="86" hits="0"/>
|
|
333
|
-
<line number="
|
|
334
|
-
<line number="89" hits="
|
|
332
|
+
<line number="88" hits="0"/>
|
|
333
|
+
<line number="89" hits="0"/>
|
|
334
|
+
<line number="91" hits="1"/>
|
|
335
335
|
<line number="101" hits="0"/>
|
|
336
336
|
<line number="102" hits="0"/>
|
|
337
|
-
<line number="104" hits="
|
|
338
|
-
<line number="105" hits="0"/>
|
|
339
|
-
<line number="107" hits="1"/>
|
|
340
|
-
<line number="114" hits="0"/>
|
|
341
|
-
<line number="115" hits="0"/>
|
|
337
|
+
<line number="104" hits="1"/>
|
|
342
338
|
<line number="117" hits="0"/>
|
|
343
339
|
<line number="118" hits="0"/>
|
|
340
|
+
<line number="120" hits="0"/>
|
|
341
|
+
<line number="121" hits="0"/>
|
|
342
|
+
<line number="123" hits="1"/>
|
|
343
|
+
<line number="130" hits="0"/>
|
|
344
|
+
<line number="131" hits="0"/>
|
|
345
|
+
<line number="133" hits="0"/>
|
|
346
|
+
<line number="134" hits="0"/>
|
|
347
|
+
<line number="136" hits="1"/>
|
|
348
|
+
<line number="145" hits="0"/>
|
|
349
|
+
<line number="146" hits="0"/>
|
|
350
|
+
<line number="148" hits="0"/>
|
|
351
|
+
<line number="149" hits="0"/>
|
|
344
352
|
</lines>
|
|
345
353
|
</class>
|
|
346
|
-
<class name="websocket.py" filename="src/deltadefi/clients/websocket.py" complexity="0" line-rate="0.
|
|
354
|
+
<class name="websocket.py" filename="src/deltadefi/clients/websocket.py" complexity="0" line-rate="0.1429" branch-rate="0">
|
|
347
355
|
<methods/>
|
|
348
356
|
<lines>
|
|
349
357
|
<line number="1" hits="1"/>
|
|
@@ -437,71 +445,69 @@
|
|
|
437
445
|
<line number="185" hits="0"/>
|
|
438
446
|
<line number="188" hits="0"/>
|
|
439
447
|
<line number="189" hits="0"/>
|
|
440
|
-
<line number="190" hits="0"/>
|
|
441
448
|
<line number="191" hits="0"/>
|
|
442
449
|
<line number="193" hits="0"/>
|
|
443
450
|
<line number="195" hits="0"/>
|
|
451
|
+
<line number="196" hits="0"/>
|
|
444
452
|
<line number="197" hits="0"/>
|
|
445
453
|
<line number="198" hits="0"/>
|
|
446
|
-
<line number="
|
|
447
|
-
<line number="
|
|
448
|
-
<line number="
|
|
449
|
-
<line number="
|
|
450
|
-
<line number="
|
|
454
|
+
<line number="200" hits="1"/>
|
|
455
|
+
<line number="202" hits="0"/>
|
|
456
|
+
<line number="203" hits="0"/>
|
|
457
|
+
<line number="207" hits="0"/>
|
|
458
|
+
<line number="208" hits="0"/>
|
|
451
459
|
<line number="209" hits="0"/>
|
|
452
460
|
<line number="210" hits="0"/>
|
|
453
461
|
<line number="211" hits="0"/>
|
|
454
|
-
<line number="
|
|
455
|
-
<line number="
|
|
456
|
-
<line number="
|
|
457
|
-
<line number="
|
|
458
|
-
<line number="
|
|
459
|
-
<line number="
|
|
460
|
-
<line number="
|
|
461
|
-
<line number="
|
|
462
|
-
<line number="
|
|
463
|
-
<line number="
|
|
464
|
-
<line number="
|
|
465
|
-
<line number="
|
|
466
|
-
<line number="
|
|
467
|
-
<line number="
|
|
468
|
-
<line number="
|
|
469
|
-
<line number="
|
|
470
|
-
<line number="
|
|
471
|
-
<line number="
|
|
472
|
-
<line number="
|
|
473
|
-
<line number="
|
|
474
|
-
<line number="
|
|
475
|
-
<line number="
|
|
476
|
-
<line number="
|
|
477
|
-
<line number="
|
|
478
|
-
<line number="
|
|
479
|
-
<line number="
|
|
480
|
-
<line number="
|
|
481
|
-
<line number="
|
|
482
|
-
<line number="
|
|
483
|
-
<line number="
|
|
484
|
-
<line number="
|
|
485
|
-
<line number="
|
|
486
|
-
<line number="
|
|
487
|
-
<line number="
|
|
488
|
-
<line number="
|
|
489
|
-
<line number="
|
|
490
|
-
<line number="
|
|
491
|
-
<line number="
|
|
492
|
-
<line number="
|
|
493
|
-
<line number="
|
|
494
|
-
<line number="
|
|
495
|
-
<line number="338" hits="0"/>
|
|
462
|
+
<line number="213" hits="1"/>
|
|
463
|
+
<line number="221" hits="0"/>
|
|
464
|
+
<line number="223" hits="1"/>
|
|
465
|
+
<line number="230" hits="0"/>
|
|
466
|
+
<line number="231" hits="0"/>
|
|
467
|
+
<line number="236" hits="0"/>
|
|
468
|
+
<line number="237" hits="0"/>
|
|
469
|
+
<line number="240" hits="0"/>
|
|
470
|
+
<line number="241" hits="0"/>
|
|
471
|
+
<line number="244" hits="0"/>
|
|
472
|
+
<line number="249" hits="0"/>
|
|
473
|
+
<line number="251" hits="1"/>
|
|
474
|
+
<line number="258" hits="0"/>
|
|
475
|
+
<line number="259" hits="0"/>
|
|
476
|
+
<line number="264" hits="0"/>
|
|
477
|
+
<line number="265" hits="0"/>
|
|
478
|
+
<line number="268" hits="0"/>
|
|
479
|
+
<line number="269" hits="0"/>
|
|
480
|
+
<line number="272" hits="0"/>
|
|
481
|
+
<line number="277" hits="0"/>
|
|
482
|
+
<line number="279" hits="1"/>
|
|
483
|
+
<line number="286" hits="0"/>
|
|
484
|
+
<line number="287" hits="0"/>
|
|
485
|
+
<line number="292" hits="0"/>
|
|
486
|
+
<line number="293" hits="0"/>
|
|
487
|
+
<line number="296" hits="0"/>
|
|
488
|
+
<line number="297" hits="0"/>
|
|
489
|
+
<line number="300" hits="0"/>
|
|
490
|
+
<line number="305" hits="0"/>
|
|
491
|
+
<line number="307" hits="1"/>
|
|
492
|
+
<line number="312" hits="0"/>
|
|
493
|
+
<line number="313" hits="0"/>
|
|
494
|
+
<line number="318" hits="0"/>
|
|
495
|
+
<line number="319" hits="0"/>
|
|
496
|
+
<line number="322" hits="0"/>
|
|
497
|
+
<line number="323" hits="0"/>
|
|
498
|
+
<line number="326" hits="0"/>
|
|
499
|
+
<line number="327" hits="0"/>
|
|
500
|
+
<line number="329" hits="1"/>
|
|
501
|
+
<line number="336" hits="0"/>
|
|
502
|
+
<line number="337" hits="0"/>
|
|
496
503
|
<line number="339" hits="0"/>
|
|
497
|
-
<line number="
|
|
498
|
-
<line number="
|
|
504
|
+
<line number="340" hits="0"/>
|
|
505
|
+
<line number="346" hits="0"/>
|
|
506
|
+
<line number="347" hits="0"/>
|
|
499
507
|
<line number="348" hits="0"/>
|
|
500
|
-
<line number="
|
|
501
|
-
<line number="
|
|
502
|
-
<line number="
|
|
503
|
-
<line number="354" hits="0"/>
|
|
504
|
-
<line number="355" hits="0"/>
|
|
508
|
+
<line number="350" hits="1"/>
|
|
509
|
+
<line number="352" hits="0"/>
|
|
510
|
+
<line number="353" hits="0"/>
|
|
505
511
|
</lines>
|
|
506
512
|
</class>
|
|
507
513
|
</classes>
|
|
@@ -526,41 +532,6 @@
|
|
|
526
532
|
</class>
|
|
527
533
|
</classes>
|
|
528
534
|
</package>
|
|
529
|
-
<package name="src.deltadefi.lib" line-rate="0.3636" branch-rate="0" complexity="0">
|
|
530
|
-
<classes>
|
|
531
|
-
<class name="__init__.py" filename="src/deltadefi/lib/__init__.py" complexity="0" line-rate="1" branch-rate="0">
|
|
532
|
-
<methods/>
|
|
533
|
-
<lines/>
|
|
534
|
-
</class>
|
|
535
|
-
<class name="utils.py" filename="src/deltadefi/lib/utils.py" complexity="0" line-rate="0.3636" branch-rate="0">
|
|
536
|
-
<methods/>
|
|
537
|
-
<lines>
|
|
538
|
-
<line number="1" hits="1"/>
|
|
539
|
-
<line number="3" hits="1"/>
|
|
540
|
-
<line number="10" hits="1"/>
|
|
541
|
-
<line number="11" hits="0"/>
|
|
542
|
-
<line number="12" hits="0"/>
|
|
543
|
-
<line number="13" hits="0"/>
|
|
544
|
-
<line number="14" hits="0"/>
|
|
545
|
-
<line number="15" hits="0"/>
|
|
546
|
-
<line number="18" hits="1"/>
|
|
547
|
-
<line number="19" hits="0"/>
|
|
548
|
-
<line number="20" hits="0"/>
|
|
549
|
-
<line number="23" hits="1"/>
|
|
550
|
-
<line number="31" hits="0"/>
|
|
551
|
-
<line number="32" hits="0"/>
|
|
552
|
-
<line number="35" hits="1"/>
|
|
553
|
-
<line number="36" hits="0"/>
|
|
554
|
-
<line number="37" hits="0"/>
|
|
555
|
-
<line number="40" hits="1"/>
|
|
556
|
-
<line number="41" hits="0"/>
|
|
557
|
-
<line number="42" hits="0"/>
|
|
558
|
-
<line number="45" hits="1"/>
|
|
559
|
-
<line number="46" hits="0"/>
|
|
560
|
-
</lines>
|
|
561
|
-
</class>
|
|
562
|
-
</classes>
|
|
563
|
-
</package>
|
|
564
535
|
<package name="src.deltadefi.models" line-rate="1" branch-rate="0" complexity="0">
|
|
565
536
|
<classes>
|
|
566
537
|
<class name="__init__.py" filename="src/deltadefi/models/__init__.py" complexity="0" line-rate="1" branch-rate="0">
|
|
@@ -754,6 +725,49 @@
|
|
|
754
725
|
<line number="61" hits="1"/>
|
|
755
726
|
<line number="62" hits="1"/>
|
|
756
727
|
<line number="63" hits="1"/>
|
|
728
|
+
<line number="66" hits="1"/>
|
|
729
|
+
<line number="67" hits="1"/>
|
|
730
|
+
<line number="68" hits="1"/>
|
|
731
|
+
<line number="71" hits="1"/>
|
|
732
|
+
<line number="72" hits="1"/>
|
|
733
|
+
<line number="73" hits="1"/>
|
|
734
|
+
</lines>
|
|
735
|
+
</class>
|
|
736
|
+
</classes>
|
|
737
|
+
</package>
|
|
738
|
+
<package name="src.deltadefi.utils" line-rate="0.3913" branch-rate="0" complexity="0">
|
|
739
|
+
<classes>
|
|
740
|
+
<class name="__init__.py" filename="src/deltadefi/utils/__init__.py" complexity="0" line-rate="1" branch-rate="0">
|
|
741
|
+
<methods/>
|
|
742
|
+
<lines>
|
|
743
|
+
<line number="2" hits="1"/>
|
|
744
|
+
</lines>
|
|
745
|
+
</class>
|
|
746
|
+
<class name="helpers.py" filename="src/deltadefi/utils/helpers.py" complexity="0" line-rate="0.3636" branch-rate="0">
|
|
747
|
+
<methods/>
|
|
748
|
+
<lines>
|
|
749
|
+
<line number="1" hits="1"/>
|
|
750
|
+
<line number="3" hits="1"/>
|
|
751
|
+
<line number="10" hits="1"/>
|
|
752
|
+
<line number="11" hits="0"/>
|
|
753
|
+
<line number="12" hits="0"/>
|
|
754
|
+
<line number="13" hits="0"/>
|
|
755
|
+
<line number="14" hits="0"/>
|
|
756
|
+
<line number="15" hits="0"/>
|
|
757
|
+
<line number="18" hits="1"/>
|
|
758
|
+
<line number="19" hits="0"/>
|
|
759
|
+
<line number="20" hits="0"/>
|
|
760
|
+
<line number="23" hits="1"/>
|
|
761
|
+
<line number="31" hits="0"/>
|
|
762
|
+
<line number="32" hits="0"/>
|
|
763
|
+
<line number="35" hits="1"/>
|
|
764
|
+
<line number="36" hits="0"/>
|
|
765
|
+
<line number="37" hits="0"/>
|
|
766
|
+
<line number="40" hits="1"/>
|
|
767
|
+
<line number="41" hits="0"/>
|
|
768
|
+
<line number="42" hits="0"/>
|
|
769
|
+
<line number="45" hits="1"/>
|
|
770
|
+
<line number="46" hits="0"/>
|
|
757
771
|
</lines>
|
|
758
772
|
</class>
|
|
759
773
|
</classes>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "deltadefi"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.3"
|
|
4
4
|
description = "Python SDK for DeltaDeFi protocol."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">3.11,<4.0.0"
|
|
@@ -26,7 +26,7 @@ dependencies = [
|
|
|
26
26
|
"sidan-gin>=0.1.6",
|
|
27
27
|
"requests>=2.25.0",
|
|
28
28
|
"certifi>=2024.8.30",
|
|
29
|
-
"charset-normalizer>=3.4.0",
|
|
29
|
+
"charset-normalizer>=3.4.0",
|
|
30
30
|
"idna>=3.10",
|
|
31
31
|
"urllib3>=2.2.3",
|
|
32
32
|
"pycardano>=0.12.3",
|
|
@@ -42,6 +42,8 @@ dev = [
|
|
|
42
42
|
"ruff>=0.12.10",
|
|
43
43
|
"mypy>=1.17.1",
|
|
44
44
|
"twine>=5.0.0",
|
|
45
|
+
"build>=1.3.0",
|
|
46
|
+
"pre-commit>=4.3.0",
|
|
45
47
|
]
|
|
46
48
|
|
|
47
49
|
docs = [
|
|
@@ -54,6 +56,7 @@ docs = [
|
|
|
54
56
|
requires = ["hatchling"]
|
|
55
57
|
build-backend = "hatchling.build"
|
|
56
58
|
|
|
59
|
+
|
|
57
60
|
[tool.ruff]
|
|
58
61
|
line-length = 88
|
|
59
62
|
target-version = "py311"
|
|
@@ -63,7 +66,7 @@ exclude = [
|
|
|
63
66
|
".venv",
|
|
64
67
|
"__pycache__",
|
|
65
68
|
"build",
|
|
66
|
-
"dist",
|
|
69
|
+
"dist",
|
|
67
70
|
".pytest_cache",
|
|
68
71
|
".mypy_cache",
|
|
69
72
|
".ruff_cache",
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
from sidan_gin import Asset, UTxO
|
|
4
4
|
|
|
5
5
|
from deltadefi.api import API
|
|
6
|
-
from deltadefi.lib.utils import check_required_parameter, check_required_parameters
|
|
7
6
|
from deltadefi.models.models import OrderStatusType
|
|
8
7
|
from deltadefi.responses import (
|
|
9
8
|
BuildDepositTransactionResponse,
|
|
@@ -22,6 +21,7 @@ from deltadefi.responses.accounts import (
|
|
|
22
21
|
GetOrderRecordsResponse,
|
|
23
22
|
SubmitTransferalTransactionResponse,
|
|
24
23
|
)
|
|
24
|
+
from deltadefi.utils import check_required_parameter, check_required_parameters
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
class Accounts(API):
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from typing import Literal
|
|
2
2
|
|
|
3
3
|
from deltadefi.api import API
|
|
4
|
-
from deltadefi.lib.utils import check_required_parameter, check_required_parameters
|
|
5
4
|
from deltadefi.responses import GetAggregatedPriceResponse, GetMarketPriceResponse
|
|
5
|
+
from deltadefi.utils import check_required_parameter, check_required_parameters
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class Market(API):
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
from deltadefi.api import API
|
|
2
|
-
from deltadefi.lib.utils import check_required_parameter, check_required_parameters
|
|
3
2
|
from deltadefi.models.models import OrderSide, OrderType
|
|
4
3
|
from deltadefi.responses import (
|
|
4
|
+
BuildCancelAllOrdersTransactionResponse,
|
|
5
5
|
BuildCancelOrderTransactionResponse,
|
|
6
6
|
BuildPlaceOrderTransactionResponse,
|
|
7
|
+
SubmitCancelAllOrdersTransactionResponse,
|
|
7
8
|
SubmitPlaceOrderTransactionResponse,
|
|
8
9
|
)
|
|
10
|
+
from deltadefi.utils import check_required_parameter, check_required_parameters
|
|
9
11
|
|
|
10
12
|
|
|
11
13
|
class Order(API):
|
|
@@ -86,6 +88,19 @@ class Order(API):
|
|
|
86
88
|
url_path = f"/{order_id}/build"
|
|
87
89
|
return self.send_request("DELETE", self.group_url_path + url_path, **kwargs)
|
|
88
90
|
|
|
91
|
+
def build_cancel_all_orders_transaction(
|
|
92
|
+
self, **kwargs
|
|
93
|
+
) -> BuildCancelAllOrdersTransactionResponse:
|
|
94
|
+
"""
|
|
95
|
+
Build a cancel all orders transaction.
|
|
96
|
+
|
|
97
|
+
Returns:
|
|
98
|
+
A BuildCancelAllOrdersTransactionResponse object containing the built cancel all orders transaction.
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
url_path = "/cancel-all/build"
|
|
102
|
+
return self.send_request("DELETE", self.group_url_path + url_path, **kwargs)
|
|
103
|
+
|
|
89
104
|
def submit_place_order_transaction(
|
|
90
105
|
self, order_id: str, signed_tx: str, **kwargs
|
|
91
106
|
) -> SubmitPlaceOrderTransactionResponse:
|
|
@@ -93,7 +108,8 @@ class Order(API):
|
|
|
93
108
|
Submit a place order transaction.
|
|
94
109
|
|
|
95
110
|
Args:
|
|
96
|
-
|
|
111
|
+
order_id: The ID of the order to be placed.
|
|
112
|
+
signed_tx: The signed transaction hex string for placing the order.
|
|
97
113
|
|
|
98
114
|
Returns:
|
|
99
115
|
A SubmitPlaceOrderTransactionResponse object containing the submitted order transaction.
|
|
@@ -109,10 +125,25 @@ class Order(API):
|
|
|
109
125
|
Submit a cancel order transaction.
|
|
110
126
|
|
|
111
127
|
Args:
|
|
112
|
-
|
|
128
|
+
signed_tx: The signed transaction hex string for canceling the order.
|
|
113
129
|
"""
|
|
114
130
|
check_required_parameter(signed_tx, "signed_tx")
|
|
115
131
|
payload = {"signed_tx": signed_tx, **kwargs}
|
|
116
132
|
|
|
117
133
|
path_url = "/submit"
|
|
118
134
|
return self.send_request("DELETE", self.group_url_path + path_url, payload)
|
|
135
|
+
|
|
136
|
+
def submit_cancel_all_orders_transaction(
|
|
137
|
+
self, signed_txs: list[str], **kwargs
|
|
138
|
+
) -> SubmitCancelAllOrdersTransactionResponse:
|
|
139
|
+
"""
|
|
140
|
+
Submit a cancel all orders transaction.
|
|
141
|
+
|
|
142
|
+
Args:
|
|
143
|
+
signed_txs: A list of signed transaction hex strings for canceling all orders.
|
|
144
|
+
"""
|
|
145
|
+
check_required_parameter(signed_txs, "signed_txs")
|
|
146
|
+
payload = {"signed_txs": signed_txs, **kwargs}
|
|
147
|
+
|
|
148
|
+
path_url = "/cancel-all/submit"
|
|
149
|
+
return self.send_request("DELETE", self.group_url_path + path_url, payload)
|
|
@@ -187,10 +187,8 @@ class WebSocketClient:
|
|
|
187
187
|
# In a more complex implementation, you'd want to handle multiple concurrent subscriptions
|
|
188
188
|
if self.subscriptions:
|
|
189
189
|
first_sub = next(iter(self.subscriptions.values()))
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
else:
|
|
193
|
-
await self.connect()
|
|
190
|
+
# Always use the stored endpoint for reconnection
|
|
191
|
+
await self.connect(first_sub["endpoint"])
|
|
194
192
|
else:
|
|
195
193
|
await self.connect()
|
|
196
194
|
|
|
@@ -61,3 +61,13 @@ class PostOrderResponse(SubmitPlaceOrderTransactionResponse):
|
|
|
61
61
|
@dataclass
|
|
62
62
|
class BuildCancelOrderTransactionResponse(TypedDict):
|
|
63
63
|
tx_hex: str
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@dataclass
|
|
67
|
+
class BuildCancelAllOrdersTransactionResponse(TypedDict):
|
|
68
|
+
tx_hexes: list[str]
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@dataclass
|
|
72
|
+
class SubmitCancelAllOrdersTransactionResponse(TypedDict):
|
|
73
|
+
cancelled_order_ids: list[str]
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from urllib.parse import urlencode
|
|
2
|
+
|
|
3
|
+
from deltadefi.error import (
|
|
4
|
+
ParameterRequiredError,
|
|
5
|
+
ParameterTypeError,
|
|
6
|
+
ParameterValueError,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def clean_none_value(d) -> dict:
|
|
11
|
+
out = {}
|
|
12
|
+
for k in d:
|
|
13
|
+
if d[k] is not None:
|
|
14
|
+
out[k] = d[k]
|
|
15
|
+
return out
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def check_required_parameter(value, name):
|
|
19
|
+
if not value and value != 0:
|
|
20
|
+
raise ParameterRequiredError([name])
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def check_required_parameters(params):
|
|
24
|
+
"""Validate multiple parameters
|
|
25
|
+
params = [
|
|
26
|
+
['btcusdt', 'symbol'],
|
|
27
|
+
[10, 'price']
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
for p in params:
|
|
32
|
+
check_required_parameter(p[0], p[1])
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def check_enum_parameter(value, enum_class):
|
|
36
|
+
if value not in {item.value for item in enum_class}:
|
|
37
|
+
raise ParameterValueError([value])
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def check_type_parameter(value, name, data_type):
|
|
41
|
+
if value is not None and not isinstance(value, data_type):
|
|
42
|
+
raise ParameterTypeError([name, data_type])
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def encoded_string(query):
|
|
46
|
+
return urlencode(query, True).replace("%40", "@")
|
|
@@ -2,19 +2,22 @@
|
|
|
2
2
|
import os
|
|
3
3
|
import unittest
|
|
4
4
|
|
|
5
|
+
import dotenv
|
|
6
|
+
|
|
5
7
|
from deltadefi.clients import ApiClient
|
|
6
8
|
from deltadefi.responses import GetAccountBalanceResponse
|
|
7
9
|
from deltadefi.responses.accounts import GetOperationKeyResponse
|
|
8
10
|
|
|
11
|
+
dotenv.load_dotenv()
|
|
12
|
+
|
|
9
13
|
|
|
10
14
|
class TestAccounts(unittest.TestCase):
|
|
11
15
|
def setUp(self):
|
|
12
16
|
api_key = os.getenv("DELTADEFI_API_KEY")
|
|
13
|
-
base_url = os.getenv("BASE_URL", "http://localhost:8080")
|
|
14
17
|
print(api_key)
|
|
15
18
|
if not api_key:
|
|
16
19
|
self.skipTest("DELTADEFI_API_KEY not set in environment variables")
|
|
17
|
-
self.api = ApiClient(api_key=api_key
|
|
20
|
+
self.api = ApiClient(api_key=api_key)
|
|
18
21
|
|
|
19
22
|
def test_get_operation_key(self):
|
|
20
23
|
response: GetOperationKeyResponse = self.api.accounts.get_operation_key()
|
|
@@ -2,20 +2,23 @@
|
|
|
2
2
|
import os
|
|
3
3
|
import unittest
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import dotenv
|
|
6
6
|
|
|
7
7
|
from deltadefi.clients import ApiClient
|
|
8
8
|
from deltadefi.responses import PostOrderResponse
|
|
9
9
|
|
|
10
|
+
dotenv.load_dotenv()
|
|
11
|
+
|
|
10
12
|
|
|
11
13
|
class TestOrder(unittest.TestCase):
|
|
12
14
|
def setUp(self):
|
|
13
15
|
api_key = os.getenv("DELTADEFI_API_KEY")
|
|
14
16
|
password = os.getenv("TRADING_PASSWORD")
|
|
15
|
-
base_url = os.getenv("BASE_URL", "http://localhost:8080")
|
|
16
17
|
if not api_key:
|
|
17
18
|
self.skipTest("DELTADEFI_API_KEY not set in environment variables")
|
|
18
|
-
|
|
19
|
+
if not password:
|
|
20
|
+
self.skipTest("TRADING_PASSWORD not set in environment variables")
|
|
21
|
+
api = ApiClient(api_key=api_key)
|
|
19
22
|
api.load_operation_key(password)
|
|
20
23
|
self.api = api
|
|
21
24
|
|
|
@@ -68,6 +68,20 @@ wheels = [
|
|
|
68
68
|
{ url = "https://files.pythonhosted.org/packages/f7/5a/340b4d06f20ec087a86012bc2294db1ed7c6c85a764d19b329993787a28b/blockfrost_python-0.6.0-py3-none-any.whl", hash = "sha256:c88840b8034b30dc06c637ccd14806e472d830d63522d2a667d9263640a354f4", size = 30857, upload-time = "2024-08-28T10:42:37.412Z" },
|
|
69
69
|
]
|
|
70
70
|
|
|
71
|
+
[[package]]
|
|
72
|
+
name = "build"
|
|
73
|
+
version = "1.3.0"
|
|
74
|
+
source = { registry = "https://pypi.org/simple" }
|
|
75
|
+
dependencies = [
|
|
76
|
+
{ name = "colorama", marker = "os_name == 'nt'" },
|
|
77
|
+
{ name = "packaging" },
|
|
78
|
+
{ name = "pyproject-hooks" },
|
|
79
|
+
]
|
|
80
|
+
sdist = { url = "https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz", hash = "sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397", size = 48544, upload-time = "2025-08-01T21:27:09.268Z" }
|
|
81
|
+
wheels = [
|
|
82
|
+
{ url = "https://files.pythonhosted.org/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4", size = 23382, upload-time = "2025-08-01T21:27:07.844Z" },
|
|
83
|
+
]
|
|
84
|
+
|
|
71
85
|
[[package]]
|
|
72
86
|
name = "cachetools"
|
|
73
87
|
version = "5.5.2"
|
|
@@ -204,6 +218,15 @@ wheels = [
|
|
|
204
218
|
{ url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload-time = "2024-09-04T20:44:45.309Z" },
|
|
205
219
|
]
|
|
206
220
|
|
|
221
|
+
[[package]]
|
|
222
|
+
name = "cfgv"
|
|
223
|
+
version = "3.4.0"
|
|
224
|
+
source = { registry = "https://pypi.org/simple" }
|
|
225
|
+
sdist = { url = "https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560", size = 7114, upload-time = "2023-08-12T20:38:17.776Z" }
|
|
226
|
+
wheels = [
|
|
227
|
+
{ url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249, upload-time = "2023-08-12T20:38:16.269Z" },
|
|
228
|
+
]
|
|
229
|
+
|
|
207
230
|
[[package]]
|
|
208
231
|
name = "charset-normalizer"
|
|
209
232
|
version = "3.4.3"
|
|
@@ -412,7 +435,7 @@ wheels = [
|
|
|
412
435
|
|
|
413
436
|
[[package]]
|
|
414
437
|
name = "deltadefi"
|
|
415
|
-
version = "0.1.
|
|
438
|
+
version = "0.1.3"
|
|
416
439
|
source = { editable = "." }
|
|
417
440
|
dependencies = [
|
|
418
441
|
{ name = "certifi" },
|
|
@@ -428,7 +451,9 @@ dependencies = [
|
|
|
428
451
|
|
|
429
452
|
[package.dev-dependencies]
|
|
430
453
|
dev = [
|
|
454
|
+
{ name = "build" },
|
|
431
455
|
{ name = "mypy" },
|
|
456
|
+
{ name = "pre-commit" },
|
|
432
457
|
{ name = "pytest" },
|
|
433
458
|
{ name = "pytest-cov" },
|
|
434
459
|
{ name = "pytest-xdist" },
|
|
@@ -456,7 +481,9 @@ requires-dist = [
|
|
|
456
481
|
|
|
457
482
|
[package.metadata.requires-dev]
|
|
458
483
|
dev = [
|
|
484
|
+
{ name = "build", specifier = ">=1.3.0" },
|
|
459
485
|
{ name = "mypy", specifier = ">=1.17.1" },
|
|
486
|
+
{ name = "pre-commit", specifier = ">=4.3.0" },
|
|
460
487
|
{ name = "pytest", specifier = ">=8.2.0" },
|
|
461
488
|
{ name = "pytest-cov", specifier = ">=5.0.0" },
|
|
462
489
|
{ name = "pytest-xdist", specifier = ">=3.5.0" },
|
|
@@ -469,6 +496,15 @@ docs = [
|
|
|
469
496
|
{ name = "sphinx-rtd-theme", specifier = ">=2.0.0" },
|
|
470
497
|
]
|
|
471
498
|
|
|
499
|
+
[[package]]
|
|
500
|
+
name = "distlib"
|
|
501
|
+
version = "0.4.0"
|
|
502
|
+
source = { registry = "https://pypi.org/simple" }
|
|
503
|
+
sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" }
|
|
504
|
+
wheels = [
|
|
505
|
+
{ url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" },
|
|
506
|
+
]
|
|
507
|
+
|
|
472
508
|
[[package]]
|
|
473
509
|
name = "docker"
|
|
474
510
|
version = "7.1.0"
|
|
@@ -522,6 +558,15 @@ wheels = [
|
|
|
522
558
|
{ url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612, upload-time = "2024-04-08T09:04:17.414Z" },
|
|
523
559
|
]
|
|
524
560
|
|
|
561
|
+
[[package]]
|
|
562
|
+
name = "filelock"
|
|
563
|
+
version = "3.19.1"
|
|
564
|
+
source = { registry = "https://pypi.org/simple" }
|
|
565
|
+
sdist = { url = "https://files.pythonhosted.org/packages/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58", size = 17687, upload-time = "2025-08-14T16:56:03.016Z" }
|
|
566
|
+
wheels = [
|
|
567
|
+
{ url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" },
|
|
568
|
+
]
|
|
569
|
+
|
|
525
570
|
[[package]]
|
|
526
571
|
name = "frozendict"
|
|
527
572
|
version = "2.4.6"
|
|
@@ -634,6 +679,15 @@ wheels = [
|
|
|
634
679
|
{ url = "https://files.pythonhosted.org/packages/9f/cb/18326d2d89ad3b0dd143da971e77afd1e6ca6674f1b1c3df4b6bec6279fc/id-1.5.0-py3-none-any.whl", hash = "sha256:f1434e1cef91f2cbb8a4ec64663d5a23b9ed43ef44c4c957d02583d61714c658", size = 13611, upload-time = "2024-12-04T19:53:03.02Z" },
|
|
635
680
|
]
|
|
636
681
|
|
|
682
|
+
[[package]]
|
|
683
|
+
name = "identify"
|
|
684
|
+
version = "2.6.13"
|
|
685
|
+
source = { registry = "https://pypi.org/simple" }
|
|
686
|
+
sdist = { url = "https://files.pythonhosted.org/packages/82/ca/ffbabe3635bb839aa36b3a893c91a9b0d368cb4d8073e03a12896970af82/identify-2.6.13.tar.gz", hash = "sha256:da8d6c828e773620e13bfa86ea601c5a5310ba4bcd65edf378198b56a1f9fb32", size = 99243, upload-time = "2025-08-09T19:35:00.6Z" }
|
|
687
|
+
wheels = [
|
|
688
|
+
{ url = "https://files.pythonhosted.org/packages/e7/ce/461b60a3ee109518c055953729bf9ed089a04db895d47e95444071dcdef2/identify-2.6.13-py2.py3-none-any.whl", hash = "sha256:60381139b3ae39447482ecc406944190f690d4a2997f2584062089848361b33b", size = 99153, upload-time = "2025-08-09T19:34:59.1Z" },
|
|
689
|
+
]
|
|
690
|
+
|
|
637
691
|
[[package]]
|
|
638
692
|
name = "idna"
|
|
639
693
|
version = "3.10"
|
|
@@ -915,6 +969,15 @@ wheels = [
|
|
|
915
969
|
{ url = "https://files.pythonhosted.org/packages/5b/76/3165e84e5266d146d967a6cc784ff2fbf6ddd00985a55ec006b72bc39d5d/nh3-0.3.0-cp38-abi3-win_arm64.whl", hash = "sha256:d97d3efd61404af7e5721a0e74d81cdbfc6e5f97e11e731bb6d090e30a7b62b2", size = 585971, upload-time = "2025-07-17T14:43:35.936Z" },
|
|
916
970
|
]
|
|
917
971
|
|
|
972
|
+
[[package]]
|
|
973
|
+
name = "nodeenv"
|
|
974
|
+
version = "1.9.1"
|
|
975
|
+
source = { registry = "https://pypi.org/simple" }
|
|
976
|
+
sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437, upload-time = "2024-06-04T18:44:11.171Z" }
|
|
977
|
+
wheels = [
|
|
978
|
+
{ url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" },
|
|
979
|
+
]
|
|
980
|
+
|
|
918
981
|
[[package]]
|
|
919
982
|
name = "ogmios"
|
|
920
983
|
version = "1.3.0"
|
|
@@ -1039,6 +1102,15 @@ wheels = [
|
|
|
1039
1102
|
{ url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" },
|
|
1040
1103
|
]
|
|
1041
1104
|
|
|
1105
|
+
[[package]]
|
|
1106
|
+
name = "platformdirs"
|
|
1107
|
+
version = "4.4.0"
|
|
1108
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1109
|
+
sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload-time = "2025-08-26T14:32:04.268Z" }
|
|
1110
|
+
wheels = [
|
|
1111
|
+
{ url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload-time = "2025-08-26T14:32:02.735Z" },
|
|
1112
|
+
]
|
|
1113
|
+
|
|
1042
1114
|
[[package]]
|
|
1043
1115
|
name = "pluggy"
|
|
1044
1116
|
version = "1.6.0"
|
|
@@ -1057,6 +1129,22 @@ wheels = [
|
|
|
1057
1129
|
{ url = "https://files.pythonhosted.org/packages/4e/d1/e4ed95fdd3ef13b78630280d9e9e240aeb65cc7c544ec57106149c3942fb/pprintpp-0.4.0-py2.py3-none-any.whl", hash = "sha256:b6b4dcdd0c0c0d75e4d7b2f21a9e933e5b2ce62b26e1a54537f9651ae5a5c01d", size = 16952, upload-time = "2018-07-01T01:42:36.496Z" },
|
|
1058
1130
|
]
|
|
1059
1131
|
|
|
1132
|
+
[[package]]
|
|
1133
|
+
name = "pre-commit"
|
|
1134
|
+
version = "4.3.0"
|
|
1135
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1136
|
+
dependencies = [
|
|
1137
|
+
{ name = "cfgv" },
|
|
1138
|
+
{ name = "identify" },
|
|
1139
|
+
{ name = "nodeenv" },
|
|
1140
|
+
{ name = "pyyaml" },
|
|
1141
|
+
{ name = "virtualenv" },
|
|
1142
|
+
]
|
|
1143
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ff/29/7cf5bbc236333876e4b41f56e06857a87937ce4bf91e117a6991a2dbb02a/pre_commit-4.3.0.tar.gz", hash = "sha256:499fe450cc9d42e9d58e606262795ecb64dd05438943c62b66f6a8673da30b16", size = 193792, upload-time = "2025-08-09T18:56:14.651Z" }
|
|
1144
|
+
wheels = [
|
|
1145
|
+
{ url = "https://files.pythonhosted.org/packages/5b/a5/987a405322d78a73b66e39e4a90e4ef156fd7141bf71df987e50717c321b/pre_commit-4.3.0-py2.py3-none-any.whl", hash = "sha256:2b0747ad7e6e967169136edffee14c16e148a778a54e4f967921aa1ebf2308d8", size = 220965, upload-time = "2025-08-09T18:56:13.192Z" },
|
|
1146
|
+
]
|
|
1147
|
+
|
|
1060
1148
|
[[package]]
|
|
1061
1149
|
name = "ptyprocess"
|
|
1062
1150
|
version = "0.7.0"
|
|
@@ -1211,6 +1299,15 @@ wheels = [
|
|
|
1211
1299
|
{ url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload-time = "2022-01-07T22:06:01.861Z" },
|
|
1212
1300
|
]
|
|
1213
1301
|
|
|
1302
|
+
[[package]]
|
|
1303
|
+
name = "pyproject-hooks"
|
|
1304
|
+
version = "1.2.0"
|
|
1305
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1306
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228, upload-time = "2024-09-29T09:24:13.293Z" }
|
|
1307
|
+
wheels = [
|
|
1308
|
+
{ url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216, upload-time = "2024-09-29T09:24:11.978Z" },
|
|
1309
|
+
]
|
|
1310
|
+
|
|
1214
1311
|
[[package]]
|
|
1215
1312
|
name = "pyreadline3"
|
|
1216
1313
|
version = "3.5.4"
|
|
@@ -1300,6 +1397,41 @@ wheels = [
|
|
|
1300
1397
|
{ url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" },
|
|
1301
1398
|
]
|
|
1302
1399
|
|
|
1400
|
+
[[package]]
|
|
1401
|
+
name = "pyyaml"
|
|
1402
|
+
version = "6.0.2"
|
|
1403
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1404
|
+
sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" }
|
|
1405
|
+
wheels = [
|
|
1406
|
+
{ url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612, upload-time = "2024-08-06T20:32:03.408Z" },
|
|
1407
|
+
{ url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040, upload-time = "2024-08-06T20:32:04.926Z" },
|
|
1408
|
+
{ url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829, upload-time = "2024-08-06T20:32:06.459Z" },
|
|
1409
|
+
{ url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167, upload-time = "2024-08-06T20:32:08.338Z" },
|
|
1410
|
+
{ url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952, upload-time = "2024-08-06T20:32:14.124Z" },
|
|
1411
|
+
{ url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301, upload-time = "2024-08-06T20:32:16.17Z" },
|
|
1412
|
+
{ url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638, upload-time = "2024-08-06T20:32:18.555Z" },
|
|
1413
|
+
{ url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850, upload-time = "2024-08-06T20:32:19.889Z" },
|
|
1414
|
+
{ url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980, upload-time = "2024-08-06T20:32:21.273Z" },
|
|
1415
|
+
{ url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" },
|
|
1416
|
+
{ url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" },
|
|
1417
|
+
{ url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" },
|
|
1418
|
+
{ url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" },
|
|
1419
|
+
{ url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" },
|
|
1420
|
+
{ url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" },
|
|
1421
|
+
{ url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" },
|
|
1422
|
+
{ url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" },
|
|
1423
|
+
{ url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" },
|
|
1424
|
+
{ url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" },
|
|
1425
|
+
{ url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" },
|
|
1426
|
+
{ url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" },
|
|
1427
|
+
{ url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" },
|
|
1428
|
+
{ url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" },
|
|
1429
|
+
{ url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" },
|
|
1430
|
+
{ url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" },
|
|
1431
|
+
{ url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" },
|
|
1432
|
+
{ url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" },
|
|
1433
|
+
]
|
|
1434
|
+
|
|
1303
1435
|
[[package]]
|
|
1304
1436
|
name = "readme-renderer"
|
|
1305
1437
|
version = "44.0"
|
|
@@ -1635,6 +1767,20 @@ wheels = [
|
|
|
1635
1767
|
{ url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" },
|
|
1636
1768
|
]
|
|
1637
1769
|
|
|
1770
|
+
[[package]]
|
|
1771
|
+
name = "virtualenv"
|
|
1772
|
+
version = "20.34.0"
|
|
1773
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1774
|
+
dependencies = [
|
|
1775
|
+
{ name = "distlib" },
|
|
1776
|
+
{ name = "filelock" },
|
|
1777
|
+
{ name = "platformdirs" },
|
|
1778
|
+
]
|
|
1779
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1c/14/37fcdba2808a6c615681cd216fecae00413c9dab44fb2e57805ecf3eaee3/virtualenv-20.34.0.tar.gz", hash = "sha256:44815b2c9dee7ed86e387b842a84f20b93f7f417f95886ca1996a72a4138eb1a", size = 6003808, upload-time = "2025-08-13T14:24:07.464Z" }
|
|
1780
|
+
wheels = [
|
|
1781
|
+
{ url = "https://files.pythonhosted.org/packages/76/06/04c8e804f813cf972e3262f3f8584c232de64f0cde9f703b46cf53a45090/virtualenv-20.34.0-py3-none-any.whl", hash = "sha256:341f5afa7eee943e4984a9207c025feedd768baff6753cd660c857ceb3e36026", size = 5983279, upload-time = "2025-08-13T14:24:05.111Z" },
|
|
1782
|
+
]
|
|
1783
|
+
|
|
1638
1784
|
[[package]]
|
|
1639
1785
|
name = "websocket-client"
|
|
1640
1786
|
version = "1.8.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
|