namecheap-python 1.0.3__tar.gz → 1.0.5__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.
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/CLI.md +3 -1
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/PKG-INFO +21 -4
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/README.md +19 -1
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/pyproject.toml +2 -3
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/__init__.py +1 -1
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/_api/dns.py +14 -14
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/models.py +3 -3
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_cli/__main__.py +7 -2
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/__main__.py +3 -3
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/uv.lock +3 -209
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/.env.example +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/.github/cliff.toml +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/.github/workflows/release.yml +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/.gitignore +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/.pre-commit-config.yaml +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/LICENSE +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/MANIFEST.in +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/docs/dev/README.md +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/examples/README.md +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/examples/quickstart.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/pending.md +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/_api/__init__.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/_api/base.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/_api/domains.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/client.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/errors.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap/logging.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_cli/README.md +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_cli/__init__.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_cli/completion.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/README.md +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/__init__.py +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot1.png +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot2.png +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot3.png +0 -0
- {namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot4.png +0 -0
|
@@ -144,10 +144,12 @@ nc dns add example.com TXT @ "v=spf1 include:_spf.google.com ~all"
|
|
|
144
144
|
# Add URL redirect
|
|
145
145
|
nc dns add example.com URL301 www https://newsite.com
|
|
146
146
|
|
|
147
|
-
# Custom TTL
|
|
147
|
+
# Custom TTL (default is 1799 = "Automatic" in Namecheap UI)
|
|
148
148
|
nc dns add example.com A www 192.0.2.1 --ttl 300
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
+
**Note:** The default TTL is 1799 seconds, which displays as "Automatic" in the Namecheap web interface.
|
|
152
|
+
|
|
151
153
|
### Delete DNS Records
|
|
152
154
|
|
|
153
155
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: namecheap-python
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.5
|
|
4
4
|
Summary: A friendly Python SDK for Namecheap API
|
|
5
5
|
Project-URL: Homepage, https://github.com/adriangalilea/namecheap-python
|
|
6
6
|
Project-URL: Repository, https://github.com/adriangalilea/namecheap-python
|
|
@@ -22,19 +22,18 @@ Requires-Python: >=3.12
|
|
|
22
22
|
Requires-Dist: httpx>=0.27.0
|
|
23
23
|
Requires-Dist: pydantic>=2.5.0
|
|
24
24
|
Requires-Dist: python-dotenv>=1.0.0
|
|
25
|
+
Requires-Dist: rich>=13.0.0
|
|
25
26
|
Requires-Dist: tldextract>=5.0.0
|
|
26
27
|
Requires-Dist: xmltodict>=0.13.0
|
|
27
28
|
Provides-Extra: all
|
|
28
29
|
Requires-Dist: click>=8.1.0; extra == 'all'
|
|
29
30
|
Requires-Dist: platformdirs>=4.0.0; extra == 'all'
|
|
30
31
|
Requires-Dist: pyyaml>=6.0.0; extra == 'all'
|
|
31
|
-
Requires-Dist: rich>=13.0.0; extra == 'all'
|
|
32
32
|
Requires-Dist: textual>=0.47.0; extra == 'all'
|
|
33
33
|
Provides-Extra: cli
|
|
34
34
|
Requires-Dist: click>=8.1.0; extra == 'cli'
|
|
35
35
|
Requires-Dist: platformdirs>=4.0.0; extra == 'cli'
|
|
36
36
|
Requires-Dist: pyyaml>=6.0.0; extra == 'cli'
|
|
37
|
-
Requires-Dist: rich>=13.0.0; extra == 'cli'
|
|
38
37
|
Provides-Extra: dev
|
|
39
38
|
Requires-Dist: ruff>=0.7.0; extra == 'dev'
|
|
40
39
|
Provides-Extra: tui
|
|
@@ -301,6 +300,8 @@ nc.dns.set("example.com",
|
|
|
301
300
|
)
|
|
302
301
|
```
|
|
303
302
|
|
|
303
|
+
**Note on TTL:** The default TTL is **1799 seconds**, which displays as **"Automatic"** in the Namecheap web interface. This is an undocumented Namecheap API behavior. You can specify custom TTL values (60-86400 seconds) in any DNS method.
|
|
304
|
+
|
|
304
305
|
### Domain Management
|
|
305
306
|
|
|
306
307
|
```python
|
|
@@ -358,12 +359,28 @@ except NamecheapError as e:
|
|
|
358
359
|
print(f"💡 Tip: {e.help}")
|
|
359
360
|
```
|
|
360
361
|
|
|
362
|
+
## ⚠️ Namecheap API Quirks
|
|
363
|
+
|
|
364
|
+
This section documents undocumented or unusual Namecheap API behaviors we've discovered:
|
|
365
|
+
|
|
366
|
+
### TTL "Automatic" = 1799 seconds
|
|
367
|
+
|
|
368
|
+
The Namecheap web interface displays TTL as **"Automatic"** when the value is exactly **1799 seconds**, but shows **"30 min"** when it's **1800 seconds**. This behavior is completely undocumented in their official API documentation.
|
|
369
|
+
|
|
370
|
+
Their API docs state TTL defaults to 1800 when omitted, but the UI treats 1799 specially. This SDK defaults to 1799 to match the "Automatic" behavior users see in the web interface.
|
|
371
|
+
|
|
372
|
+
```python
|
|
373
|
+
# Both are valid, but display differently in Namecheap UI:
|
|
374
|
+
nc.dns.builder().a("www", "192.0.2.1", ttl=1799) # Shows as "Automatic"
|
|
375
|
+
nc.dns.builder().a("www", "192.0.2.1", ttl=1800) # Shows as "30 min"
|
|
376
|
+
```
|
|
377
|
+
|
|
361
378
|
## 🚧 Pending Features
|
|
362
379
|
|
|
363
380
|
The following Namecheap API features are planned for future releases:
|
|
364
381
|
|
|
365
382
|
- **SSL API** - Certificate management
|
|
366
|
-
- **Domain Transfer API** - Transfer domains between registrars
|
|
383
|
+
- **Domain Transfer API** - Transfer domains between registrars
|
|
367
384
|
- **Domain NS API** - Custom nameserver management
|
|
368
385
|
- **Users API** - Account management and balance checking
|
|
369
386
|
- **Whois API** - WHOIS information lookups
|
|
@@ -258,6 +258,8 @@ nc.dns.set("example.com",
|
|
|
258
258
|
)
|
|
259
259
|
```
|
|
260
260
|
|
|
261
|
+
**Note on TTL:** The default TTL is **1799 seconds**, which displays as **"Automatic"** in the Namecheap web interface. This is an undocumented Namecheap API behavior. You can specify custom TTL values (60-86400 seconds) in any DNS method.
|
|
262
|
+
|
|
261
263
|
### Domain Management
|
|
262
264
|
|
|
263
265
|
```python
|
|
@@ -315,12 +317,28 @@ except NamecheapError as e:
|
|
|
315
317
|
print(f"💡 Tip: {e.help}")
|
|
316
318
|
```
|
|
317
319
|
|
|
320
|
+
## ⚠️ Namecheap API Quirks
|
|
321
|
+
|
|
322
|
+
This section documents undocumented or unusual Namecheap API behaviors we've discovered:
|
|
323
|
+
|
|
324
|
+
### TTL "Automatic" = 1799 seconds
|
|
325
|
+
|
|
326
|
+
The Namecheap web interface displays TTL as **"Automatic"** when the value is exactly **1799 seconds**, but shows **"30 min"** when it's **1800 seconds**. This behavior is completely undocumented in their official API documentation.
|
|
327
|
+
|
|
328
|
+
Their API docs state TTL defaults to 1800 when omitted, but the UI treats 1799 specially. This SDK defaults to 1799 to match the "Automatic" behavior users see in the web interface.
|
|
329
|
+
|
|
330
|
+
```python
|
|
331
|
+
# Both are valid, but display differently in Namecheap UI:
|
|
332
|
+
nc.dns.builder().a("www", "192.0.2.1", ttl=1799) # Shows as "Automatic"
|
|
333
|
+
nc.dns.builder().a("www", "192.0.2.1", ttl=1800) # Shows as "30 min"
|
|
334
|
+
```
|
|
335
|
+
|
|
318
336
|
## 🚧 Pending Features
|
|
319
337
|
|
|
320
338
|
The following Namecheap API features are planned for future releases:
|
|
321
339
|
|
|
322
340
|
- **SSL API** - Certificate management
|
|
323
|
-
- **Domain Transfer API** - Transfer domains between registrars
|
|
341
|
+
- **Domain Transfer API** - Transfer domains between registrars
|
|
324
342
|
- **Domain NS API** - Custom nameserver management
|
|
325
343
|
- **Users API** - Account management and balance checking
|
|
326
344
|
- **Whois API** - WHOIS information lookups
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "namecheap-python"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.5"
|
|
4
4
|
description = "A friendly Python SDK for Namecheap API"
|
|
5
5
|
authors = [{name = "Adrian Galilea Delgado", email = "adriangalilea@gmail.com"}]
|
|
6
6
|
readme = "README.md"
|
|
@@ -23,6 +23,7 @@ dependencies = [
|
|
|
23
23
|
"httpx>=0.27.0",
|
|
24
24
|
"pydantic>=2.5.0",
|
|
25
25
|
"python-dotenv>=1.0.0",
|
|
26
|
+
"rich>=13.0.0",
|
|
26
27
|
"xmltodict>=0.13.0",
|
|
27
28
|
"tldextract>=5.0.0",
|
|
28
29
|
]
|
|
@@ -35,7 +36,6 @@ Issues = "https://github.com/adriangalilea/namecheap-python/issues"
|
|
|
35
36
|
[project.optional-dependencies]
|
|
36
37
|
cli = [
|
|
37
38
|
"click>=8.1.0",
|
|
38
|
-
"rich>=13.0.0",
|
|
39
39
|
"PyYAML>=6.0.0",
|
|
40
40
|
"platformdirs>=4.0.0",
|
|
41
41
|
]
|
|
@@ -44,7 +44,6 @@ tui = [
|
|
|
44
44
|
]
|
|
45
45
|
all = [
|
|
46
46
|
"click>=8.1.0",
|
|
47
|
-
"rich>=13.0.0",
|
|
48
47
|
"PyYAML>=6.0.0",
|
|
49
48
|
"platformdirs>=4.0.0",
|
|
50
49
|
"textual>=0.47.0",
|
|
@@ -14,7 +14,7 @@ from .client import Namecheap
|
|
|
14
14
|
from .errors import ConfigurationError, NamecheapError, ValidationError
|
|
15
15
|
from .models import Contact, DNSRecord, Domain, DomainCheck
|
|
16
16
|
|
|
17
|
-
__version__ = "1.0.
|
|
17
|
+
__version__ = "1.0.5"
|
|
18
18
|
__all__ = [
|
|
19
19
|
"ConfigurationError",
|
|
20
20
|
"Contact",
|
|
@@ -22,14 +22,14 @@ class DNSRecordBuilder:
|
|
|
22
22
|
"""Initialize empty builder."""
|
|
23
23
|
self._records: list[DNSRecord] = []
|
|
24
24
|
|
|
25
|
-
def a(self, name: str, ip: str, ttl: int =
|
|
25
|
+
def a(self, name: str, ip: str, ttl: int = 1799) -> Self:
|
|
26
26
|
"""
|
|
27
27
|
Add an A record.
|
|
28
28
|
|
|
29
29
|
Args:
|
|
30
30
|
name: Record name (@ for root)
|
|
31
31
|
ip: IPv4 address
|
|
32
|
-
ttl: Time to live in seconds (60-86400, default:
|
|
32
|
+
ttl: Time to live in seconds (60-86400, default: 1799 = "Automatic")
|
|
33
33
|
|
|
34
34
|
Returns:
|
|
35
35
|
Self for chaining
|
|
@@ -41,14 +41,14 @@ class DNSRecordBuilder:
|
|
|
41
41
|
)
|
|
42
42
|
return self
|
|
43
43
|
|
|
44
|
-
def aaaa(self, name: str, ipv6: str, ttl: int =
|
|
44
|
+
def aaaa(self, name: str, ipv6: str, ttl: int = 1799) -> Self:
|
|
45
45
|
"""
|
|
46
46
|
Add an AAAA record.
|
|
47
47
|
|
|
48
48
|
Args:
|
|
49
49
|
name: Record name (@ for root)
|
|
50
50
|
ipv6: IPv6 address
|
|
51
|
-
ttl: Time to live in seconds
|
|
51
|
+
ttl: Time to live in seconds (default: 1799 = "Automatic")
|
|
52
52
|
|
|
53
53
|
Returns:
|
|
54
54
|
Self for chaining
|
|
@@ -60,14 +60,14 @@ class DNSRecordBuilder:
|
|
|
60
60
|
)
|
|
61
61
|
return self
|
|
62
62
|
|
|
63
|
-
def cname(self, name: str, target: str, ttl: int =
|
|
63
|
+
def cname(self, name: str, target: str, ttl: int = 1799) -> Self:
|
|
64
64
|
"""
|
|
65
65
|
Add a CNAME record.
|
|
66
66
|
|
|
67
67
|
Args:
|
|
68
68
|
name: Record name (cannot be @)
|
|
69
69
|
target: Target domain
|
|
70
|
-
ttl: Time to live in seconds
|
|
70
|
+
ttl: Time to live in seconds (default: 1799 = "Automatic")
|
|
71
71
|
|
|
72
72
|
Returns:
|
|
73
73
|
Self for chaining
|
|
@@ -81,7 +81,7 @@ class DNSRecordBuilder:
|
|
|
81
81
|
)
|
|
82
82
|
return self
|
|
83
83
|
|
|
84
|
-
def mx(self, name: str, server: str, priority: int = 10, ttl: int =
|
|
84
|
+
def mx(self, name: str, server: str, priority: int = 10, ttl: int = 1799) -> Self:
|
|
85
85
|
"""
|
|
86
86
|
Add an MX record.
|
|
87
87
|
|
|
@@ -89,7 +89,7 @@ class DNSRecordBuilder:
|
|
|
89
89
|
name: Record name (@ for root)
|
|
90
90
|
server: Mail server hostname
|
|
91
91
|
priority: MX priority (lower = higher priority)
|
|
92
|
-
ttl: Time to live in seconds
|
|
92
|
+
ttl: Time to live in seconds (default: 1799 = "Automatic")
|
|
93
93
|
|
|
94
94
|
Returns:
|
|
95
95
|
Self for chaining
|
|
@@ -107,14 +107,14 @@ class DNSRecordBuilder:
|
|
|
107
107
|
)
|
|
108
108
|
return self
|
|
109
109
|
|
|
110
|
-
def txt(self, name: str, value: str, ttl: int =
|
|
110
|
+
def txt(self, name: str, value: str, ttl: int = 1799) -> Self:
|
|
111
111
|
"""
|
|
112
112
|
Add a TXT record.
|
|
113
113
|
|
|
114
114
|
Args:
|
|
115
115
|
name: Record name (@ for root)
|
|
116
116
|
value: Text value
|
|
117
|
-
ttl: Time to live in seconds
|
|
117
|
+
ttl: Time to live in seconds (default: 1799 = "Automatic")
|
|
118
118
|
|
|
119
119
|
Returns:
|
|
120
120
|
Self for chaining
|
|
@@ -126,14 +126,14 @@ class DNSRecordBuilder:
|
|
|
126
126
|
)
|
|
127
127
|
return self
|
|
128
128
|
|
|
129
|
-
def ns(self, name: str, nameserver: str, ttl: int =
|
|
129
|
+
def ns(self, name: str, nameserver: str, ttl: int = 1799) -> Self:
|
|
130
130
|
"""
|
|
131
131
|
Add an NS record.
|
|
132
132
|
|
|
133
133
|
Args:
|
|
134
134
|
name: Record name
|
|
135
135
|
nameserver: Nameserver hostname
|
|
136
|
-
ttl: Time to live in seconds
|
|
136
|
+
ttl: Time to live in seconds (default: 1799 = "Automatic")
|
|
137
137
|
|
|
138
138
|
Returns:
|
|
139
139
|
Self for chaining
|
|
@@ -151,7 +151,7 @@ class DNSRecordBuilder:
|
|
|
151
151
|
url: str,
|
|
152
152
|
*,
|
|
153
153
|
redirect_type: Literal["301", "frame"] = "301",
|
|
154
|
-
ttl: int =
|
|
154
|
+
ttl: int = 1799,
|
|
155
155
|
) -> Self:
|
|
156
156
|
"""
|
|
157
157
|
Add a URL redirect record.
|
|
@@ -160,7 +160,7 @@ class DNSRecordBuilder:
|
|
|
160
160
|
name: Record name (@ for root)
|
|
161
161
|
url: Target URL
|
|
162
162
|
redirect_type: "301" for permanent redirect, "frame" for masked
|
|
163
|
-
ttl: Time to live in seconds
|
|
163
|
+
ttl: Time to live in seconds (default: 1799 = "Automatic")
|
|
164
164
|
|
|
165
165
|
Returns:
|
|
166
166
|
Self for chaining
|
|
@@ -188,7 +188,7 @@ class DNSRecord(XMLModel):
|
|
|
188
188
|
Field(alias="@Type")
|
|
189
189
|
)
|
|
190
190
|
value: str = Field(alias="@Address")
|
|
191
|
-
ttl: int = Field(alias="@TTL", default=
|
|
191
|
+
ttl: int = Field(alias="@TTL", default=1799) # 1799 = "Automatic" in Namecheap UI
|
|
192
192
|
priority: int | None = Field(alias="@MXPref", default=None)
|
|
193
193
|
|
|
194
194
|
@field_validator("ttl", mode="before")
|
|
@@ -196,9 +196,9 @@ class DNSRecord(XMLModel):
|
|
|
196
196
|
def parse_ttl(cls, v: Any) -> int:
|
|
197
197
|
"""Ensure TTL is within valid range."""
|
|
198
198
|
try:
|
|
199
|
-
ttl = int(v) if v else
|
|
199
|
+
ttl = int(v) if v else 1799
|
|
200
200
|
except (ValueError, TypeError):
|
|
201
|
-
ttl =
|
|
201
|
+
ttl = 1799
|
|
202
202
|
return max(60, min(86400, ttl))
|
|
203
203
|
|
|
204
204
|
@field_validator("priority", mode="before")
|
|
@@ -512,7 +512,12 @@ def dns_list(config: Config, domain: str, type: str | None, name: str | None) ->
|
|
|
512
512
|
)
|
|
513
513
|
@click.argument("name")
|
|
514
514
|
@click.argument("value")
|
|
515
|
-
@click.option(
|
|
515
|
+
@click.option(
|
|
516
|
+
"--ttl",
|
|
517
|
+
type=int,
|
|
518
|
+
default=1799,
|
|
519
|
+
help="TTL in seconds (60-86400, default: 1799 = Automatic)",
|
|
520
|
+
)
|
|
516
521
|
@click.option("--priority", type=int, help="Priority (required for MX records)")
|
|
517
522
|
@pass_config
|
|
518
523
|
def dns_add(
|
|
@@ -849,7 +854,7 @@ def config_init() -> None:
|
|
|
849
854
|
"color": True,
|
|
850
855
|
"auto_renew": True,
|
|
851
856
|
"whois_privacy": True,
|
|
852
|
-
"dns_ttl":
|
|
857
|
+
"dns_ttl": 1799,
|
|
853
858
|
},
|
|
854
859
|
}
|
|
855
860
|
|
|
@@ -233,9 +233,9 @@ class AddRecordModal(ModalScreen):
|
|
|
233
233
|
with Vertical(classes="field-group"):
|
|
234
234
|
yield Label("TTL (seconds):")
|
|
235
235
|
initial_ttl = (
|
|
236
|
-
str(self.editing_record.ttl) if self.editing_record else "
|
|
236
|
+
str(self.editing_record.ttl) if self.editing_record else "1799"
|
|
237
237
|
)
|
|
238
|
-
yield Input(placeholder="
|
|
238
|
+
yield Input(placeholder="1799", id="record-ttl", value=initial_ttl)
|
|
239
239
|
|
|
240
240
|
with Vertical(classes="field-group", id="priority-group"):
|
|
241
241
|
yield Label("Priority:")
|
|
@@ -296,7 +296,7 @@ class AddRecordModal(ModalScreen):
|
|
|
296
296
|
record_type = self.query_one("#record-type", Select).value
|
|
297
297
|
name = self.query_one("#record-name", Input).value or "@"
|
|
298
298
|
value = self.query_one("#record-value", Input).value
|
|
299
|
-
ttl_str = self.query_one("#record-ttl", Input).value or "
|
|
299
|
+
ttl_str = self.query_one("#record-ttl", Input).value or "1799"
|
|
300
300
|
ttl = max(60, min(86400, int(ttl_str)))
|
|
301
301
|
|
|
302
302
|
priority = None
|
|
@@ -90,48 +90,6 @@ wheels = [
|
|
|
90
90
|
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
|
|
91
91
|
]
|
|
92
92
|
|
|
93
|
-
[[package]]
|
|
94
|
-
name = "coverage"
|
|
95
|
-
version = "7.8.2"
|
|
96
|
-
source = { registry = "https://pypi.org/simple" }
|
|
97
|
-
sdist = { url = "https://files.pythonhosted.org/packages/ba/07/998afa4a0ecdf9b1981ae05415dad2d4e7716e1b1f00abbd91691ac09ac9/coverage-7.8.2.tar.gz", hash = "sha256:a886d531373a1f6ff9fad2a2ba4a045b68467b779ae729ee0b3b10ac20033b27", size = 812759, upload-time = "2025-05-23T11:39:57.856Z" }
|
|
98
|
-
wheels = [
|
|
99
|
-
{ url = "https://files.pythonhosted.org/packages/8d/2a/1da1ada2e3044fcd4a3254fb3576e160b8fe5b36d705c8a31f793423f763/coverage-7.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e2f6fe3654468d061942591aef56686131335b7a8325684eda85dacdf311356c", size = 211876, upload-time = "2025-05-23T11:38:29.01Z" },
|
|
100
|
-
{ url = "https://files.pythonhosted.org/packages/70/e9/3d715ffd5b6b17a8be80cd14a8917a002530a99943cc1939ad5bb2aa74b9/coverage-7.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76090fab50610798cc05241bf83b603477c40ee87acd358b66196ab0ca44ffa1", size = 212130, upload-time = "2025-05-23T11:38:30.675Z" },
|
|
101
|
-
{ url = "https://files.pythonhosted.org/packages/a0/02/fdce62bb3c21649abfd91fbdcf041fb99be0d728ff00f3f9d54d97ed683e/coverage-7.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bd0a0a5054be160777a7920b731a0570284db5142abaaf81bcbb282b8d99279", size = 246176, upload-time = "2025-05-23T11:38:32.395Z" },
|
|
102
|
-
{ url = "https://files.pythonhosted.org/packages/a7/52/decbbed61e03b6ffe85cd0fea360a5e04a5a98a7423f292aae62423b8557/coverage-7.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da23ce9a3d356d0affe9c7036030b5c8f14556bd970c9b224f9c8205505e3b99", size = 243068, upload-time = "2025-05-23T11:38:33.989Z" },
|
|
103
|
-
{ url = "https://files.pythonhosted.org/packages/38/6c/d0e9c0cce18faef79a52778219a3c6ee8e336437da8eddd4ab3dbd8fadff/coverage-7.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9392773cffeb8d7e042a7b15b82a414011e9d2b5fdbbd3f7e6a6b17d5e21b20", size = 245328, upload-time = "2025-05-23T11:38:35.568Z" },
|
|
104
|
-
{ url = "https://files.pythonhosted.org/packages/f0/70/f703b553a2f6b6c70568c7e398ed0789d47f953d67fbba36a327714a7bca/coverage-7.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:876cbfd0b09ce09d81585d266c07a32657beb3eaec896f39484b631555be0fe2", size = 245099, upload-time = "2025-05-23T11:38:37.627Z" },
|
|
105
|
-
{ url = "https://files.pythonhosted.org/packages/ec/fb/4cbb370dedae78460c3aacbdad9d249e853f3bc4ce5ff0e02b1983d03044/coverage-7.8.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3da9b771c98977a13fbc3830f6caa85cae6c9c83911d24cb2d218e9394259c57", size = 243314, upload-time = "2025-05-23T11:38:39.238Z" },
|
|
106
|
-
{ url = "https://files.pythonhosted.org/packages/39/9f/1afbb2cb9c8699b8bc38afdce00a3b4644904e6a38c7bf9005386c9305ec/coverage-7.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a990f6510b3292686713bfef26d0049cd63b9c7bb17e0864f133cbfd2e6167f", size = 244489, upload-time = "2025-05-23T11:38:40.845Z" },
|
|
107
|
-
{ url = "https://files.pythonhosted.org/packages/79/fa/f3e7ec7d220bff14aba7a4786ae47043770cbdceeea1803083059c878837/coverage-7.8.2-cp312-cp312-win32.whl", hash = "sha256:bf8111cddd0f2b54d34e96613e7fbdd59a673f0cf5574b61134ae75b6f5a33b8", size = 214366, upload-time = "2025-05-23T11:38:43.551Z" },
|
|
108
|
-
{ url = "https://files.pythonhosted.org/packages/54/aa/9cbeade19b7e8e853e7ffc261df885d66bf3a782c71cba06c17df271f9e6/coverage-7.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:86a323a275e9e44cdf228af9b71c5030861d4d2610886ab920d9945672a81223", size = 215165, upload-time = "2025-05-23T11:38:45.148Z" },
|
|
109
|
-
{ url = "https://files.pythonhosted.org/packages/c4/73/e2528bf1237d2448f882bbebaec5c3500ef07301816c5c63464b9da4d88a/coverage-7.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:820157de3a589e992689ffcda8639fbabb313b323d26388d02e154164c57b07f", size = 213548, upload-time = "2025-05-23T11:38:46.74Z" },
|
|
110
|
-
{ url = "https://files.pythonhosted.org/packages/1a/93/eb6400a745ad3b265bac36e8077fdffcf0268bdbbb6c02b7220b624c9b31/coverage-7.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea561010914ec1c26ab4188aef8b1567272ef6de096312716f90e5baa79ef8ca", size = 211898, upload-time = "2025-05-23T11:38:49.066Z" },
|
|
111
|
-
{ url = "https://files.pythonhosted.org/packages/1b/7c/bdbf113f92683024406a1cd226a199e4200a2001fc85d6a6e7e299e60253/coverage-7.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cb86337a4fcdd0e598ff2caeb513ac604d2f3da6d53df2c8e368e07ee38e277d", size = 212171, upload-time = "2025-05-23T11:38:51.207Z" },
|
|
112
|
-
{ url = "https://files.pythonhosted.org/packages/91/22/594513f9541a6b88eb0dba4d5da7d71596dadef6b17a12dc2c0e859818a9/coverage-7.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26a4636ddb666971345541b59899e969f3b301143dd86b0ddbb570bd591f1e85", size = 245564, upload-time = "2025-05-23T11:38:52.857Z" },
|
|
113
|
-
{ url = "https://files.pythonhosted.org/packages/1f/f4/2860fd6abeebd9f2efcfe0fd376226938f22afc80c1943f363cd3c28421f/coverage-7.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5040536cf9b13fb033f76bcb5e1e5cb3b57c4807fef37db9e0ed129c6a094257", size = 242719, upload-time = "2025-05-23T11:38:54.529Z" },
|
|
114
|
-
{ url = "https://files.pythonhosted.org/packages/89/60/f5f50f61b6332451520e6cdc2401700c48310c64bc2dd34027a47d6ab4ca/coverage-7.8.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc67994df9bcd7e0150a47ef41278b9e0a0ea187caba72414b71dc590b99a108", size = 244634, upload-time = "2025-05-23T11:38:57.326Z" },
|
|
115
|
-
{ url = "https://files.pythonhosted.org/packages/3b/70/7f4e919039ab7d944276c446b603eea84da29ebcf20984fb1fdf6e602028/coverage-7.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e6c86888fd076d9e0fe848af0a2142bf606044dc5ceee0aa9eddb56e26895a0", size = 244824, upload-time = "2025-05-23T11:38:59.421Z" },
|
|
116
|
-
{ url = "https://files.pythonhosted.org/packages/26/45/36297a4c0cea4de2b2c442fe32f60c3991056c59cdc3cdd5346fbb995c97/coverage-7.8.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:684ca9f58119b8e26bef860db33524ae0365601492e86ba0b71d513f525e7050", size = 242872, upload-time = "2025-05-23T11:39:01.049Z" },
|
|
117
|
-
{ url = "https://files.pythonhosted.org/packages/a4/71/e041f1b9420f7b786b1367fa2a375703889ef376e0d48de9f5723fb35f11/coverage-7.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8165584ddedb49204c4e18da083913bdf6a982bfb558632a79bdaadcdafd0d48", size = 244179, upload-time = "2025-05-23T11:39:02.709Z" },
|
|
118
|
-
{ url = "https://files.pythonhosted.org/packages/bd/db/3c2bf49bdc9de76acf2491fc03130c4ffc51469ce2f6889d2640eb563d77/coverage-7.8.2-cp313-cp313-win32.whl", hash = "sha256:34759ee2c65362163699cc917bdb2a54114dd06d19bab860725f94ef45a3d9b7", size = 214393, upload-time = "2025-05-23T11:39:05.457Z" },
|
|
119
|
-
{ url = "https://files.pythonhosted.org/packages/c6/dc/947e75d47ebbb4b02d8babb1fad4ad381410d5bc9da7cfca80b7565ef401/coverage-7.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:2f9bc608fbafaee40eb60a9a53dbfb90f53cc66d3d32c2849dc27cf5638a21e3", size = 215194, upload-time = "2025-05-23T11:39:07.171Z" },
|
|
120
|
-
{ url = "https://files.pythonhosted.org/packages/90/31/a980f7df8a37eaf0dc60f932507fda9656b3a03f0abf188474a0ea188d6d/coverage-7.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:9fe449ee461a3b0c7105690419d0b0aba1232f4ff6d120a9e241e58a556733f7", size = 213580, upload-time = "2025-05-23T11:39:08.862Z" },
|
|
121
|
-
{ url = "https://files.pythonhosted.org/packages/8a/6a/25a37dd90f6c95f59355629417ebcb74e1c34e38bb1eddf6ca9b38b0fc53/coverage-7.8.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8369a7c8ef66bded2b6484053749ff220dbf83cba84f3398c84c51a6f748a008", size = 212734, upload-time = "2025-05-23T11:39:11.109Z" },
|
|
122
|
-
{ url = "https://files.pythonhosted.org/packages/36/8b/3a728b3118988725f40950931abb09cd7f43b3c740f4640a59f1db60e372/coverage-7.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:159b81df53a5fcbc7d45dae3adad554fdbde9829a994e15227b3f9d816d00b36", size = 212959, upload-time = "2025-05-23T11:39:12.751Z" },
|
|
123
|
-
{ url = "https://files.pythonhosted.org/packages/53/3c/212d94e6add3a3c3f412d664aee452045ca17a066def8b9421673e9482c4/coverage-7.8.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6fcbbd35a96192d042c691c9e0c49ef54bd7ed865846a3c9d624c30bb67ce46", size = 257024, upload-time = "2025-05-23T11:39:15.569Z" },
|
|
124
|
-
{ url = "https://files.pythonhosted.org/packages/a4/40/afc03f0883b1e51bbe804707aae62e29c4e8c8bbc365c75e3e4ddeee9ead/coverage-7.8.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05364b9cc82f138cc86128dc4e2e1251c2981a2218bfcd556fe6b0fbaa3501be", size = 252867, upload-time = "2025-05-23T11:39:17.64Z" },
|
|
125
|
-
{ url = "https://files.pythonhosted.org/packages/18/a2/3699190e927b9439c6ded4998941a3c1d6fa99e14cb28d8536729537e307/coverage-7.8.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46d532db4e5ff3979ce47d18e2fe8ecad283eeb7367726da0e5ef88e4fe64740", size = 255096, upload-time = "2025-05-23T11:39:19.328Z" },
|
|
126
|
-
{ url = "https://files.pythonhosted.org/packages/b4/06/16e3598b9466456b718eb3e789457d1a5b8bfb22e23b6e8bbc307df5daf0/coverage-7.8.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4000a31c34932e7e4fa0381a3d6deb43dc0c8f458e3e7ea6502e6238e10be625", size = 256276, upload-time = "2025-05-23T11:39:21.077Z" },
|
|
127
|
-
{ url = "https://files.pythonhosted.org/packages/a7/d5/4b5a120d5d0223050a53d2783c049c311eea1709fa9de12d1c358e18b707/coverage-7.8.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:43ff5033d657cd51f83015c3b7a443287250dc14e69910577c3e03bd2e06f27b", size = 254478, upload-time = "2025-05-23T11:39:22.838Z" },
|
|
128
|
-
{ url = "https://files.pythonhosted.org/packages/ba/85/f9ecdb910ecdb282b121bfcaa32fa8ee8cbd7699f83330ee13ff9bbf1a85/coverage-7.8.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94316e13f0981cbbba132c1f9f365cac1d26716aaac130866ca812006f662199", size = 255255, upload-time = "2025-05-23T11:39:24.644Z" },
|
|
129
|
-
{ url = "https://files.pythonhosted.org/packages/50/63/2d624ac7d7ccd4ebbd3c6a9eba9d7fc4491a1226071360d59dd84928ccb2/coverage-7.8.2-cp313-cp313t-win32.whl", hash = "sha256:3f5673888d3676d0a745c3d0e16da338c5eea300cb1f4ada9c872981265e76d8", size = 215109, upload-time = "2025-05-23T11:39:26.722Z" },
|
|
130
|
-
{ url = "https://files.pythonhosted.org/packages/22/5e/7053b71462e970e869111c1853afd642212568a350eba796deefdfbd0770/coverage-7.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:2c08b05ee8d7861e45dc5a2cc4195c8c66dca5ac613144eb6ebeaff2d502e73d", size = 216268, upload-time = "2025-05-23T11:39:28.429Z" },
|
|
131
|
-
{ url = "https://files.pythonhosted.org/packages/07/69/afa41aa34147655543dbe96994f8a246daf94b361ccf5edfd5df62ce066a/coverage-7.8.2-cp313-cp313t-win_arm64.whl", hash = "sha256:1e1448bb72b387755e1ff3ef1268a06617afd94188164960dba8d0245a46004b", size = 214071, upload-time = "2025-05-23T11:39:30.55Z" },
|
|
132
|
-
{ url = "https://files.pythonhosted.org/packages/a0/1a/0b9c32220ad694d66062f571cc5cedfa9997b64a591e8a500bb63de1bd40/coverage-7.8.2-py3-none-any.whl", hash = "sha256:726f32ee3713f7359696331a18daf0c3b3a70bb0ae71141b9d3c52be7c595e32", size = 203623, upload-time = "2025-05-23T11:39:53.846Z" },
|
|
133
|
-
]
|
|
134
|
-
|
|
135
93
|
[[package]]
|
|
136
94
|
name = "filelock"
|
|
137
95
|
version = "3.18.0"
|
|
@@ -187,15 +145,6 @@ wheels = [
|
|
|
187
145
|
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" },
|
|
188
146
|
]
|
|
189
147
|
|
|
190
|
-
[[package]]
|
|
191
|
-
name = "iniconfig"
|
|
192
|
-
version = "2.1.0"
|
|
193
|
-
source = { registry = "https://pypi.org/simple" }
|
|
194
|
-
sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" }
|
|
195
|
-
wheels = [
|
|
196
|
-
{ url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" },
|
|
197
|
-
]
|
|
198
|
-
|
|
199
148
|
[[package]]
|
|
200
149
|
name = "linkify-it-py"
|
|
201
150
|
version = "2.0.3"
|
|
@@ -249,49 +198,15 @@ wheels = [
|
|
|
249
198
|
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
|
|
250
199
|
]
|
|
251
200
|
|
|
252
|
-
[[package]]
|
|
253
|
-
name = "mypy"
|
|
254
|
-
version = "1.16.0"
|
|
255
|
-
source = { registry = "https://pypi.org/simple" }
|
|
256
|
-
dependencies = [
|
|
257
|
-
{ name = "mypy-extensions" },
|
|
258
|
-
{ name = "pathspec" },
|
|
259
|
-
{ name = "typing-extensions" },
|
|
260
|
-
]
|
|
261
|
-
sdist = { url = "https://files.pythonhosted.org/packages/d4/38/13c2f1abae94d5ea0354e146b95a1be9b2137a0d506728e0da037c4276f6/mypy-1.16.0.tar.gz", hash = "sha256:84b94283f817e2aa6350a14b4a8fb2a35a53c286f97c9d30f53b63620e7af8ab", size = 3323139, upload-time = "2025-05-29T13:46:12.532Z" }
|
|
262
|
-
wheels = [
|
|
263
|
-
{ url = "https://files.pythonhosted.org/packages/70/cf/158e5055e60ca2be23aec54a3010f89dcffd788732634b344fc9cb1e85a0/mypy-1.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c5436d11e89a3ad16ce8afe752f0f373ae9620841c50883dc96f8b8805620b13", size = 11062927, upload-time = "2025-05-29T13:35:52.328Z" },
|
|
264
|
-
{ url = "https://files.pythonhosted.org/packages/94/34/cfff7a56be1609f5d10ef386342ce3494158e4d506516890142007e6472c/mypy-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f2622af30bf01d8fc36466231bdd203d120d7a599a6d88fb22bdcb9dbff84090", size = 10083082, upload-time = "2025-05-29T13:35:33.378Z" },
|
|
265
|
-
{ url = "https://files.pythonhosted.org/packages/b3/7f/7242062ec6288c33d8ad89574df87c3903d394870e5e6ba1699317a65075/mypy-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d045d33c284e10a038f5e29faca055b90eee87da3fc63b8889085744ebabb5a1", size = 11828306, upload-time = "2025-05-29T13:21:02.164Z" },
|
|
266
|
-
{ url = "https://files.pythonhosted.org/packages/6f/5f/b392f7b4f659f5b619ce5994c5c43caab3d80df2296ae54fa888b3d17f5a/mypy-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b4968f14f44c62e2ec4a038c8797a87315be8df7740dc3ee8d3bfe1c6bf5dba8", size = 12702764, upload-time = "2025-05-29T13:20:42.826Z" },
|
|
267
|
-
{ url = "https://files.pythonhosted.org/packages/9b/c0/7646ef3a00fa39ac9bc0938626d9ff29d19d733011be929cfea59d82d136/mypy-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb14a4a871bb8efb1e4a50360d4e3c8d6c601e7a31028a2c79f9bb659b63d730", size = 12896233, upload-time = "2025-05-29T13:18:37.446Z" },
|
|
268
|
-
{ url = "https://files.pythonhosted.org/packages/6d/38/52f4b808b3fef7f0ef840ee8ff6ce5b5d77381e65425758d515cdd4f5bb5/mypy-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:bd4e1ebe126152a7bbaa4daedd781c90c8f9643c79b9748caa270ad542f12bec", size = 9565547, upload-time = "2025-05-29T13:20:02.836Z" },
|
|
269
|
-
{ url = "https://files.pythonhosted.org/packages/97/9c/ca03bdbefbaa03b264b9318a98950a9c683e06472226b55472f96ebbc53d/mypy-1.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a9e056237c89f1587a3be1a3a70a06a698d25e2479b9a2f57325ddaaffc3567b", size = 11059753, upload-time = "2025-05-29T13:18:18.167Z" },
|
|
270
|
-
{ url = "https://files.pythonhosted.org/packages/36/92/79a969b8302cfe316027c88f7dc6fee70129490a370b3f6eb11d777749d0/mypy-1.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b07e107affb9ee6ce1f342c07f51552d126c32cd62955f59a7db94a51ad12c0", size = 10073338, upload-time = "2025-05-29T13:19:48.079Z" },
|
|
271
|
-
{ url = "https://files.pythonhosted.org/packages/14/9b/a943f09319167da0552d5cd722104096a9c99270719b1afeea60d11610aa/mypy-1.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6fb60cbd85dc65d4d63d37cb5c86f4e3a301ec605f606ae3a9173e5cf34997b", size = 11827764, upload-time = "2025-05-29T13:46:04.47Z" },
|
|
272
|
-
{ url = "https://files.pythonhosted.org/packages/ec/64/ff75e71c65a0cb6ee737287c7913ea155845a556c64144c65b811afdb9c7/mypy-1.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7e32297a437cc915599e0578fa6bc68ae6a8dc059c9e009c628e1c47f91495d", size = 12701356, upload-time = "2025-05-29T13:35:13.553Z" },
|
|
273
|
-
{ url = "https://files.pythonhosted.org/packages/0a/ad/0e93c18987a1182c350f7a5fab70550852f9fabe30ecb63bfbe51b602074/mypy-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:afe420c9380ccec31e744e8baff0d406c846683681025db3531b32db56962d52", size = 12900745, upload-time = "2025-05-29T13:17:24.409Z" },
|
|
274
|
-
{ url = "https://files.pythonhosted.org/packages/28/5d/036c278d7a013e97e33f08c047fe5583ab4f1fc47c9a49f985f1cdd2a2d7/mypy-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:55f9076c6ce55dd3f8cd0c6fff26a008ca8e5131b89d5ba6d86bd3f47e736eeb", size = 9572200, upload-time = "2025-05-29T13:33:44.92Z" },
|
|
275
|
-
{ url = "https://files.pythonhosted.org/packages/99/a3/6ed10530dec8e0fdc890d81361260c9ef1f5e5c217ad8c9b21ecb2b8366b/mypy-1.16.0-py3-none-any.whl", hash = "sha256:29e1499864a3888bca5c1542f2d7232c6e586295183320caa95758fc84034031", size = 2265773, upload-time = "2025-05-29T13:35:18.762Z" },
|
|
276
|
-
]
|
|
277
|
-
|
|
278
|
-
[[package]]
|
|
279
|
-
name = "mypy-extensions"
|
|
280
|
-
version = "1.1.0"
|
|
281
|
-
source = { registry = "https://pypi.org/simple" }
|
|
282
|
-
sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" }
|
|
283
|
-
wheels = [
|
|
284
|
-
{ url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" },
|
|
285
|
-
]
|
|
286
|
-
|
|
287
201
|
[[package]]
|
|
288
202
|
name = "namecheap-python"
|
|
289
|
-
version = "1.0.
|
|
203
|
+
version = "1.0.5"
|
|
290
204
|
source = { editable = "." }
|
|
291
205
|
dependencies = [
|
|
292
206
|
{ name = "httpx" },
|
|
293
207
|
{ name = "pydantic" },
|
|
294
208
|
{ name = "python-dotenv" },
|
|
209
|
+
{ name = "rich" },
|
|
295
210
|
{ name = "tldextract" },
|
|
296
211
|
{ name = "xmltodict" },
|
|
297
212
|
]
|
|
@@ -301,81 +216,40 @@ all = [
|
|
|
301
216
|
{ name = "click" },
|
|
302
217
|
{ name = "platformdirs" },
|
|
303
218
|
{ name = "pyyaml" },
|
|
304
|
-
{ name = "rich" },
|
|
305
219
|
{ name = "textual" },
|
|
306
220
|
]
|
|
307
221
|
cli = [
|
|
308
222
|
{ name = "click" },
|
|
309
223
|
{ name = "platformdirs" },
|
|
310
224
|
{ name = "pyyaml" },
|
|
311
|
-
{ name = "rich" },
|
|
312
225
|
]
|
|
313
226
|
dev = [
|
|
314
|
-
{ name = "mypy" },
|
|
315
|
-
{ name = "pytest" },
|
|
316
|
-
{ name = "pytest-asyncio" },
|
|
317
|
-
{ name = "pytest-cov" },
|
|
318
|
-
{ name = "pytest-httpx" },
|
|
319
227
|
{ name = "ruff" },
|
|
320
|
-
{ name = "types-xmltodict" },
|
|
321
228
|
]
|
|
322
229
|
tui = [
|
|
323
230
|
{ name = "textual" },
|
|
324
231
|
]
|
|
325
232
|
|
|
326
|
-
[package.dev-dependencies]
|
|
327
|
-
dev = [
|
|
328
|
-
{ name = "types-pyyaml" },
|
|
329
|
-
]
|
|
330
|
-
|
|
331
233
|
[package.metadata]
|
|
332
234
|
requires-dist = [
|
|
333
235
|
{ name = "click", marker = "extra == 'all'", specifier = ">=8.1.0" },
|
|
334
236
|
{ name = "click", marker = "extra == 'cli'", specifier = ">=8.1.0" },
|
|
335
237
|
{ name = "httpx", specifier = ">=0.27.0" },
|
|
336
|
-
{ name = "mypy", marker = "extra == 'dev'", specifier = ">=1.11.0" },
|
|
337
238
|
{ name = "platformdirs", marker = "extra == 'all'", specifier = ">=4.0.0" },
|
|
338
239
|
{ name = "platformdirs", marker = "extra == 'cli'", specifier = ">=4.0.0" },
|
|
339
240
|
{ name = "pydantic", specifier = ">=2.5.0" },
|
|
340
|
-
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
|
|
341
|
-
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" },
|
|
342
|
-
{ name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=5.0.0" },
|
|
343
|
-
{ name = "pytest-httpx", marker = "extra == 'dev'", specifier = ">=0.30.0" },
|
|
344
241
|
{ name = "python-dotenv", specifier = ">=1.0.0" },
|
|
345
242
|
{ name = "pyyaml", marker = "extra == 'all'", specifier = ">=6.0.0" },
|
|
346
243
|
{ name = "pyyaml", marker = "extra == 'cli'", specifier = ">=6.0.0" },
|
|
347
|
-
{ name = "rich",
|
|
348
|
-
{ name = "rich", marker = "extra == 'cli'", specifier = ">=13.0.0" },
|
|
244
|
+
{ name = "rich", specifier = ">=13.0.0" },
|
|
349
245
|
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.7.0" },
|
|
350
246
|
{ name = "textual", marker = "extra == 'all'", specifier = ">=0.47.0" },
|
|
351
247
|
{ name = "textual", marker = "extra == 'tui'", specifier = ">=0.47.0" },
|
|
352
248
|
{ name = "tldextract", specifier = ">=5.0.0" },
|
|
353
|
-
{ name = "types-xmltodict", marker = "extra == 'dev'", specifier = ">=0.13.0" },
|
|
354
249
|
{ name = "xmltodict", specifier = ">=0.13.0" },
|
|
355
250
|
]
|
|
356
251
|
provides-extras = ["cli", "tui", "all", "dev"]
|
|
357
252
|
|
|
358
|
-
[package.metadata.requires-dev]
|
|
359
|
-
dev = [{ name = "types-pyyaml", specifier = ">=6.0.12.20250516" }]
|
|
360
|
-
|
|
361
|
-
[[package]]
|
|
362
|
-
name = "packaging"
|
|
363
|
-
version = "25.0"
|
|
364
|
-
source = { registry = "https://pypi.org/simple" }
|
|
365
|
-
sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" }
|
|
366
|
-
wheels = [
|
|
367
|
-
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" },
|
|
368
|
-
]
|
|
369
|
-
|
|
370
|
-
[[package]]
|
|
371
|
-
name = "pathspec"
|
|
372
|
-
version = "0.12.1"
|
|
373
|
-
source = { registry = "https://pypi.org/simple" }
|
|
374
|
-
sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" }
|
|
375
|
-
wheels = [
|
|
376
|
-
{ url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" },
|
|
377
|
-
]
|
|
378
|
-
|
|
379
253
|
[[package]]
|
|
380
254
|
name = "platformdirs"
|
|
381
255
|
version = "4.3.8"
|
|
@@ -385,15 +259,6 @@ wheels = [
|
|
|
385
259
|
{ url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567, upload-time = "2025-05-07T22:47:40.376Z" },
|
|
386
260
|
]
|
|
387
261
|
|
|
388
|
-
[[package]]
|
|
389
|
-
name = "pluggy"
|
|
390
|
-
version = "1.6.0"
|
|
391
|
-
source = { registry = "https://pypi.org/simple" }
|
|
392
|
-
sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" }
|
|
393
|
-
wheels = [
|
|
394
|
-
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
|
|
395
|
-
]
|
|
396
|
-
|
|
397
262
|
[[package]]
|
|
398
263
|
name = "pydantic"
|
|
399
264
|
version = "2.11.5"
|
|
@@ -460,59 +325,6 @@ wheels = [
|
|
|
460
325
|
{ url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" },
|
|
461
326
|
]
|
|
462
327
|
|
|
463
|
-
[[package]]
|
|
464
|
-
name = "pytest"
|
|
465
|
-
version = "8.3.5"
|
|
466
|
-
source = { registry = "https://pypi.org/simple" }
|
|
467
|
-
dependencies = [
|
|
468
|
-
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
469
|
-
{ name = "iniconfig" },
|
|
470
|
-
{ name = "packaging" },
|
|
471
|
-
{ name = "pluggy" },
|
|
472
|
-
]
|
|
473
|
-
sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" }
|
|
474
|
-
wheels = [
|
|
475
|
-
{ url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634, upload-time = "2025-03-02T12:54:52.069Z" },
|
|
476
|
-
]
|
|
477
|
-
|
|
478
|
-
[[package]]
|
|
479
|
-
name = "pytest-asyncio"
|
|
480
|
-
version = "1.0.0"
|
|
481
|
-
source = { registry = "https://pypi.org/simple" }
|
|
482
|
-
dependencies = [
|
|
483
|
-
{ name = "pytest" },
|
|
484
|
-
]
|
|
485
|
-
sdist = { url = "https://files.pythonhosted.org/packages/d0/d4/14f53324cb1a6381bef29d698987625d80052bb33932d8e7cbf9b337b17c/pytest_asyncio-1.0.0.tar.gz", hash = "sha256:d15463d13f4456e1ead2594520216b225a16f781e144f8fdf6c5bb4667c48b3f", size = 46960, upload-time = "2025-05-26T04:54:40.484Z" }
|
|
486
|
-
wheels = [
|
|
487
|
-
{ url = "https://files.pythonhosted.org/packages/30/05/ce271016e351fddc8399e546f6e23761967ee09c8c568bbfbecb0c150171/pytest_asyncio-1.0.0-py3-none-any.whl", hash = "sha256:4f024da9f1ef945e680dc68610b52550e36590a67fd31bb3b4943979a1f90ef3", size = 15976, upload-time = "2025-05-26T04:54:39.035Z" },
|
|
488
|
-
]
|
|
489
|
-
|
|
490
|
-
[[package]]
|
|
491
|
-
name = "pytest-cov"
|
|
492
|
-
version = "6.1.1"
|
|
493
|
-
source = { registry = "https://pypi.org/simple" }
|
|
494
|
-
dependencies = [
|
|
495
|
-
{ name = "coverage" },
|
|
496
|
-
{ name = "pytest" },
|
|
497
|
-
]
|
|
498
|
-
sdist = { url = "https://files.pythonhosted.org/packages/25/69/5f1e57f6c5a39f81411b550027bf72842c4567ff5fd572bed1edc9e4b5d9/pytest_cov-6.1.1.tar.gz", hash = "sha256:46935f7aaefba760e716c2ebfbe1c216240b9592966e7da99ea8292d4d3e2a0a", size = 66857, upload-time = "2025-04-05T14:07:51.592Z" }
|
|
499
|
-
wheels = [
|
|
500
|
-
{ url = "https://files.pythonhosted.org/packages/28/d0/def53b4a790cfb21483016430ed828f64830dd981ebe1089971cd10cab25/pytest_cov-6.1.1-py3-none-any.whl", hash = "sha256:bddf29ed2d0ab6f4df17b4c55b0a657287db8684af9c42ea546b21b1041b3dde", size = 23841, upload-time = "2025-04-05T14:07:49.641Z" },
|
|
501
|
-
]
|
|
502
|
-
|
|
503
|
-
[[package]]
|
|
504
|
-
name = "pytest-httpx"
|
|
505
|
-
version = "0.35.0"
|
|
506
|
-
source = { registry = "https://pypi.org/simple" }
|
|
507
|
-
dependencies = [
|
|
508
|
-
{ name = "httpx" },
|
|
509
|
-
{ name = "pytest" },
|
|
510
|
-
]
|
|
511
|
-
sdist = { url = "https://files.pythonhosted.org/packages/1f/89/5b12b7b29e3d0af3a4b9c071ee92fa25a9017453731a38f08ba01c280f4c/pytest_httpx-0.35.0.tar.gz", hash = "sha256:d619ad5d2e67734abfbb224c3d9025d64795d4b8711116b1a13f72a251ae511f", size = 54146, upload-time = "2024-11-28T19:16:54.237Z" }
|
|
512
|
-
wheels = [
|
|
513
|
-
{ url = "https://files.pythonhosted.org/packages/b0/ed/026d467c1853dd83102411a78126b4842618e86c895f93528b0528c7a620/pytest_httpx-0.35.0-py3-none-any.whl", hash = "sha256:ee11a00ffcea94a5cbff47af2114d34c5b231c326902458deed73f9c459fd744", size = 19442, upload-time = "2024-11-28T19:16:52.787Z" },
|
|
514
|
-
]
|
|
515
|
-
|
|
516
328
|
[[package]]
|
|
517
329
|
name = "python-dotenv"
|
|
518
330
|
version = "1.1.0"
|
|
@@ -652,24 +464,6 @@ wheels = [
|
|
|
652
464
|
{ url = "https://files.pythonhosted.org/packages/67/7c/ea488ef48f2f544566947ced88541bc45fae9e0e422b2edbf165ee07da99/tldextract-5.3.0-py3-none-any.whl", hash = "sha256:f70f31d10b55c83993f55e91ecb7c5d84532a8972f22ec578ecfbe5ea2292db2", size = 107384, upload-time = "2025-04-22T06:19:36.304Z" },
|
|
653
465
|
]
|
|
654
466
|
|
|
655
|
-
[[package]]
|
|
656
|
-
name = "types-pyyaml"
|
|
657
|
-
version = "6.0.12.20250516"
|
|
658
|
-
source = { registry = "https://pypi.org/simple" }
|
|
659
|
-
sdist = { url = "https://files.pythonhosted.org/packages/4e/22/59e2aeb48ceeee1f7cd4537db9568df80d62bdb44a7f9e743502ea8aab9c/types_pyyaml-6.0.12.20250516.tar.gz", hash = "sha256:9f21a70216fc0fa1b216a8176db5f9e0af6eb35d2f2932acb87689d03a5bf6ba", size = 17378, upload-time = "2025-05-16T03:08:04.897Z" }
|
|
660
|
-
wheels = [
|
|
661
|
-
{ url = "https://files.pythonhosted.org/packages/99/5f/e0af6f7f6a260d9af67e1db4f54d732abad514252a7a378a6c4d17dd1036/types_pyyaml-6.0.12.20250516-py3-none-any.whl", hash = "sha256:8478208feaeb53a34cb5d970c56a7cd76b72659442e733e268a94dc72b2d0530", size = 20312, upload-time = "2025-05-16T03:08:04.019Z" },
|
|
662
|
-
]
|
|
663
|
-
|
|
664
|
-
[[package]]
|
|
665
|
-
name = "types-xmltodict"
|
|
666
|
-
version = "0.14.0.20241009"
|
|
667
|
-
source = { registry = "https://pypi.org/simple" }
|
|
668
|
-
sdist = { url = "https://files.pythonhosted.org/packages/05/28/f1c86d869d74342553c74bd88d6f615427b544fd06f30fdaa68cb4369cd1/types-xmltodict-0.14.0.20241009.tar.gz", hash = "sha256:9224c2422c5b6359cf826685b4ee50b14dc2cb9134561ab793ef6b03dd7108e1", size = 3224, upload-time = "2024-10-09T02:43:18.364Z" }
|
|
669
|
-
wheels = [
|
|
670
|
-
{ url = "https://files.pythonhosted.org/packages/15/5e/6d81048a06f956ccec74c61fe5c30784e6a865876dc4ab02e99099e4ee0c/types_xmltodict-0.14.0.20241009-py3-none-any.whl", hash = "sha256:92812e17ffa9171416b35806cb5f4ed3f8f52b6724b2c555e4733e902ef4afd0", size = 2859, upload-time = "2024-10-09T02:43:16.966Z" },
|
|
671
|
-
]
|
|
672
|
-
|
|
673
467
|
[[package]]
|
|
674
468
|
name = "typing-extensions"
|
|
675
469
|
version = "4.13.2"
|
|
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
|
{namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot1.png
RENAMED
|
File without changes
|
{namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot2.png
RENAMED
|
File without changes
|
{namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot3.png
RENAMED
|
File without changes
|
{namecheap_python-1.0.3 → namecheap_python-1.0.5}/src/namecheap_dns_tui/assets/screenshot4.png
RENAMED
|
File without changes
|