python-corekit 0.4.1__py3-none-any.whl → 0.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- corekit/connections/sql/connection.py +6 -2
- corekit/docker/__init__.py +4 -2
- corekit/docker/client.py +48 -0
- corekit/docker/constants.py +19 -0
- corekit/docker/disk/__init__.py +8 -0
- corekit/docker/disk/constants.py +14 -0
- corekit/docker/disk/inspector.py +217 -0
- corekit/docker/disk/models.py +44 -0
- corekit/docker/watchdog.py +10 -8
- corekit/exceptions/__init__.py +2 -0
- corekit/exceptions/base.py +19 -0
- corekit/files/__init__.py +3 -0
- corekit/files/disk.py +123 -0
- corekit/html/__init__.py +22 -0
- corekit/html/client.py +22 -0
- corekit/html/models.py +20 -0
- corekit/html/parser.py +272 -0
- corekit/html/scraper.py +127 -0
- corekit/html/settings.py +197 -0
- corekit/html/state.py +56 -0
- corekit/http/__init__.py +2 -1
- corekit/http/api.py +71 -3
- corekit/http/client.py +24 -54
- corekit/http/response.py +38 -5
- corekit/llm/client.py +3 -2
- corekit/llm/tools/loop.py +5 -2
- corekit/llm/wire.py +11 -5
- corekit/process/__init__.py +7 -0
- corekit/process/runner.py +47 -0
- corekit/schemas/__init__.py +10 -1
- corekit/schemas/models/arbitrary.py +49 -5
- corekit/schemas/size.py +85 -0
- corekit/utils/__init__.py +62 -7
- corekit/utils/coercion.py +59 -73
- corekit/utils/collections.py +242 -4
- corekit/utils/parsers.py +205 -0
- {python_corekit-0.4.1.dist-info → python_corekit-0.6.0.dist-info}/METADATA +10 -8
- {python_corekit-0.4.1.dist-info → python_corekit-0.6.0.dist-info}/RECORD +41 -23
- {python_corekit-0.4.1.dist-info → python_corekit-0.6.0.dist-info}/WHEEL +1 -1
- {python_corekit-0.4.1.dist-info → python_corekit-0.6.0.dist-info}/licenses/LICENSE +0 -0
- {python_corekit-0.4.1.dist-info → python_corekit-0.6.0.dist-info}/top_level.txt +0 -0
corekit/utils/parsers.py
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Flexible parsers with caller-controlled fallbacks.
|
|
3
|
+
|
|
4
|
+
Each helper attempts to extract the target type and returns a ``ParsedValue``
|
|
5
|
+
carrying both the result and a ``success`` flag. On failure the ``value`` is
|
|
6
|
+
whatever ``default`` the caller supplied (``None`` unless overridden).
|
|
7
|
+
|
|
8
|
+
These are the extraction layer. For a guaranteed target type with that type's
|
|
9
|
+
empty value as the fallback, use the ``safe_*`` wrappers in
|
|
10
|
+
``corekit.utils.coercion``.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
import json
|
|
16
|
+
from datetime import date, datetime
|
|
17
|
+
from typing import Any, NamedTuple
|
|
18
|
+
|
|
19
|
+
from corekit.utils.text import list_to_english
|
|
20
|
+
|
|
21
|
+
__all__ = [
|
|
22
|
+
"ParsedValue",
|
|
23
|
+
"parse_dict",
|
|
24
|
+
"parse_float",
|
|
25
|
+
"parse_int",
|
|
26
|
+
"parse_list",
|
|
27
|
+
"parse_set",
|
|
28
|
+
"parse_string",
|
|
29
|
+
"parse_tuple",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ParsedValue(NamedTuple):
|
|
34
|
+
"""Outcome of a parse attempt."""
|
|
35
|
+
|
|
36
|
+
value: Any
|
|
37
|
+
success: bool
|
|
38
|
+
|
|
39
|
+
@classmethod
|
|
40
|
+
def ok(cls, value: Any) -> ParsedValue:
|
|
41
|
+
return cls(value=value, success=True)
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def error(cls, value: Any) -> ParsedValue:
|
|
45
|
+
return cls(value=value, success=False)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def parse_string(
|
|
49
|
+
item: Any,
|
|
50
|
+
*,
|
|
51
|
+
pretty: bool = False,
|
|
52
|
+
strip: bool = True,
|
|
53
|
+
default: Any = None,
|
|
54
|
+
) -> ParsedValue:
|
|
55
|
+
"""
|
|
56
|
+
Extract a string rendering of ``item``, or ``default`` if there is none.
|
|
57
|
+
|
|
58
|
+
Collections become JSON by default. With ``pretty`` they become an English
|
|
59
|
+
list instead -- ``"a, b, c"``, or ``"key: value, ..."`` for a mapping --
|
|
60
|
+
which reads better in a notification than raw JSON.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
def _clean(text: str) -> str:
|
|
64
|
+
return text.strip() if strip else text
|
|
65
|
+
|
|
66
|
+
def _parse_collection(collection: Any) -> str:
|
|
67
|
+
if pretty:
|
|
68
|
+
if isinstance(collection, dict):
|
|
69
|
+
return list_to_english([f"{key}: {value}" for key, value in collection.items()])
|
|
70
|
+
return list_to_english(
|
|
71
|
+
[parse_string(element, pretty=pretty, strip=strip, default="").value for element in collection]
|
|
72
|
+
)
|
|
73
|
+
return json.dumps(collection)
|
|
74
|
+
|
|
75
|
+
if isinstance(item, bytes):
|
|
76
|
+
item = item.decode("utf-8", errors="ignore")
|
|
77
|
+
if isinstance(item, str):
|
|
78
|
+
return ParsedValue.ok(_clean(item))
|
|
79
|
+
# bool is a subclass of int, so both land here and render as "True"/"1".
|
|
80
|
+
if isinstance(item, (int, float)):
|
|
81
|
+
return ParsedValue.ok(str(item))
|
|
82
|
+
if isinstance(item, (list, tuple, set, dict)):
|
|
83
|
+
return ParsedValue.ok(_parse_collection(item))
|
|
84
|
+
if isinstance(item, (date, datetime)):
|
|
85
|
+
return ParsedValue.ok(item.isoformat())
|
|
86
|
+
return ParsedValue.error(default)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def parse_int(item: Any, *, default: Any = None) -> ParsedValue:
|
|
90
|
+
"""
|
|
91
|
+
Extract an int from ``item``, or ``default`` if it will not convert.
|
|
92
|
+
"""
|
|
93
|
+
if isinstance(item, bool):
|
|
94
|
+
return ParsedValue.ok(int(item))
|
|
95
|
+
if isinstance(item, int):
|
|
96
|
+
return ParsedValue.ok(item)
|
|
97
|
+
if isinstance(item, bytes):
|
|
98
|
+
item = item.decode("utf-8", errors="ignore")
|
|
99
|
+
if isinstance(item, (float, str)):
|
|
100
|
+
try:
|
|
101
|
+
return ParsedValue.ok(int(item))
|
|
102
|
+
except (TypeError, ValueError):
|
|
103
|
+
return ParsedValue.error(default)
|
|
104
|
+
return ParsedValue.error(default)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def parse_float(item: Any, *, default: Any = None) -> ParsedValue:
|
|
108
|
+
"""
|
|
109
|
+
Extract a float from ``item``, or ``default`` if it will not convert.
|
|
110
|
+
"""
|
|
111
|
+
if isinstance(item, bool):
|
|
112
|
+
return ParsedValue.ok(float(item))
|
|
113
|
+
if isinstance(item, float):
|
|
114
|
+
return ParsedValue.ok(item)
|
|
115
|
+
if isinstance(item, bytes):
|
|
116
|
+
item = item.decode("utf-8", errors="ignore")
|
|
117
|
+
if isinstance(item, (int, str)):
|
|
118
|
+
try:
|
|
119
|
+
return ParsedValue.ok(float(item))
|
|
120
|
+
except (TypeError, ValueError):
|
|
121
|
+
return ParsedValue.error(default)
|
|
122
|
+
return ParsedValue.error(default)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def parse_list(item: Any, *, default: Any = None) -> ParsedValue:
|
|
126
|
+
"""
|
|
127
|
+
Extract a list from a collection, or ``default`` for anything else.
|
|
128
|
+
|
|
129
|
+
A mapping yields its values. A string is *not* treated as a collection --
|
|
130
|
+
exploding it into characters is almost never what the caller meant.
|
|
131
|
+
"""
|
|
132
|
+
if isinstance(item, list):
|
|
133
|
+
return ParsedValue.ok(item)
|
|
134
|
+
if isinstance(item, (tuple, set)):
|
|
135
|
+
return ParsedValue.ok(list(item))
|
|
136
|
+
if isinstance(item, dict):
|
|
137
|
+
return ParsedValue.ok(list(item.values()))
|
|
138
|
+
return ParsedValue.error(default)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def parse_tuple(item: Any, *, default: Any = None) -> ParsedValue:
|
|
142
|
+
"""
|
|
143
|
+
Extract a tuple from a collection, or ``default`` for anything else.
|
|
144
|
+
|
|
145
|
+
A mapping yields its values. A string is *not* treated as a collection --
|
|
146
|
+
exploding it into characters is almost never what the caller meant.
|
|
147
|
+
"""
|
|
148
|
+
if isinstance(item, tuple):
|
|
149
|
+
return ParsedValue.ok(item)
|
|
150
|
+
if isinstance(item, (list, set)):
|
|
151
|
+
return ParsedValue.ok(tuple(item))
|
|
152
|
+
if isinstance(item, dict):
|
|
153
|
+
return ParsedValue.ok(tuple(item.values()))
|
|
154
|
+
return ParsedValue.error(default)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def parse_set(item: Any, *, default: Any = None) -> ParsedValue:
|
|
158
|
+
"""
|
|
159
|
+
Extract a set from a collection, or ``default`` for anything else.
|
|
160
|
+
|
|
161
|
+
A mapping yields its values. A string is *not* treated as a collection --
|
|
162
|
+
exploding it into characters is almost never what the caller meant.
|
|
163
|
+
Unhashable elements fail the conversion and yield ``default``.
|
|
164
|
+
"""
|
|
165
|
+
if isinstance(item, set):
|
|
166
|
+
return ParsedValue.ok(item)
|
|
167
|
+
if isinstance(item, (list, tuple)):
|
|
168
|
+
try:
|
|
169
|
+
return ParsedValue.ok(set(item))
|
|
170
|
+
except TypeError:
|
|
171
|
+
return ParsedValue.error(default)
|
|
172
|
+
if isinstance(item, dict):
|
|
173
|
+
try:
|
|
174
|
+
return ParsedValue.ok(set(item.values()))
|
|
175
|
+
except TypeError:
|
|
176
|
+
return ParsedValue.error(default)
|
|
177
|
+
return ParsedValue.error(default)
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def parse_dict(item: Any, *, default: Any = None) -> ParsedValue:
|
|
181
|
+
"""
|
|
182
|
+
Extract a mapping from ``item``, or ``default`` if none is available.
|
|
183
|
+
|
|
184
|
+
Accepts a ``dict`` directly, then common dump protocols (``to_dict``,
|
|
185
|
+
``model_dump``, ``dict``), then a plain ``__dict__``.
|
|
186
|
+
"""
|
|
187
|
+
if isinstance(item, dict):
|
|
188
|
+
return ParsedValue.ok(item)
|
|
189
|
+
|
|
190
|
+
for method_name in ("to_dict", "model_dump", "dict"):
|
|
191
|
+
method = getattr(item, method_name, None)
|
|
192
|
+
if not callable(method):
|
|
193
|
+
continue
|
|
194
|
+
try:
|
|
195
|
+
result = method()
|
|
196
|
+
except Exception:
|
|
197
|
+
continue
|
|
198
|
+
if isinstance(result, dict):
|
|
199
|
+
return ParsedValue.ok(result)
|
|
200
|
+
|
|
201
|
+
namespace = getattr(item, "__dict__", None)
|
|
202
|
+
if isinstance(namespace, dict):
|
|
203
|
+
return ParsedValue.ok(namespace)
|
|
204
|
+
|
|
205
|
+
return ParsedValue.error(default)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-corekit
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Shared foundations for Python projects: logging, benchmarking, registries, FastAPI application and routers, SQL statements and migrations, background tasks, ETL,
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Summary: Shared foundations for Python projects: logging, benchmarking, registries, FastAPI application and routers, SQL statements and migrations, background tasks, ETL, LLM chat/tool primitives, and HTML scraping
|
|
5
5
|
Author: Steven Jacobsen
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/stevejaker/corekit
|
|
@@ -23,6 +23,7 @@ Requires-Dist: sqlmodel<0.1,>=0.0.16
|
|
|
23
23
|
Requires-Dist: SQLAlchemy<3,>=2.0
|
|
24
24
|
Requires-Dist: redis<7,>=5.0
|
|
25
25
|
Requires-Dist: httpx<1,>=0.27
|
|
26
|
+
Requires-Dist: selectolax<1,>=0.3
|
|
26
27
|
Requires-Dist: docker<8,>=7.0
|
|
27
28
|
Requires-Dist: PyYAML<7,>=6.0
|
|
28
29
|
Requires-Dist: dill<0.5,>=0.3.8
|
|
@@ -347,13 +348,13 @@ class GithubClient(BaseApiClient):
|
|
|
347
348
|
return "https://api.github.com"
|
|
348
349
|
|
|
349
350
|
response = GithubClient().get("/users/octocat")
|
|
350
|
-
response.data
|
|
351
|
+
response.data.login
|
|
351
352
|
```
|
|
352
353
|
|
|
353
|
-
Retries 429 and 5xx with exponential backoff.
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
`await client.get(...)`.
|
|
354
|
+
Retries 429 and 5xx with exponential backoff. ``BaseHttpClient`` returns a
|
|
355
|
+
``BaseHttpResponse`` (text + metadata); ``BaseApiClient`` adds structured
|
|
356
|
+
``data`` from JSON (``None`` when the body is not JSON). The same methods are
|
|
357
|
+
awaitable inside a running event loop: `await client.get(...)`.
|
|
357
358
|
|
|
358
359
|
## Serialization
|
|
359
360
|
|
|
@@ -432,6 +433,7 @@ corekit/
|
|
|
432
433
|
|
|
433
434
|
observability/ Loggable, Benchmarkable, Timer
|
|
434
435
|
registry/ schemas/ utils/ registries, enums and fields, helpers
|
|
436
|
+
process/ CommandRunner (external commands)
|
|
435
437
|
data/ Dataset and its filter expressions
|
|
436
438
|
jobs/ queue-independent background tasks
|
|
437
439
|
crypto/ files/ serialization/
|
|
@@ -444,7 +446,7 @@ corekit/
|
|
|
444
446
|
http/ BaseHttpClient, BaseApiClient, retries, responses
|
|
445
447
|
|
|
446
448
|
api/ Application, lifespan, middleware, routers
|
|
447
|
-
docker/ notifications/ etl/
|
|
449
|
+
docker/ notifications/ etl/ Watchdog, DockerDiskInspector, client provider
|
|
448
450
|
llm/ messages, tools, agentic loop (no GenerationClient)
|
|
449
451
|
|
|
450
452
|
events/ log_monitor/ built on the capabilities above
|
|
@@ -22,7 +22,7 @@ corekit/connections/registry.py,sha256=BR04dGthcGCtON2MxNsl-TlhRgbRlvGj0RLymDFBk
|
|
|
22
22
|
corekit/connections/redis/__init__.py,sha256=BsWLZNqpKAqIoreHGLEtftnMqVw-ESK8jbexDAughag,174
|
|
23
23
|
corekit/connections/redis/connection.py,sha256=H6r5WsDfXFgIQlp6vq3rKjp-oBFQoE5h_YaJXZEvHIs,9850
|
|
24
24
|
corekit/connections/sql/__init__.py,sha256=WRBcQ9draDQSooYi4k4peWyuRTgSyEk_WwOYYOAN9K4,882
|
|
25
|
-
corekit/connections/sql/connection.py,sha256=
|
|
25
|
+
corekit/connections/sql/connection.py,sha256=1ieLXssO2lyFZD9Uf_5wyM5TJmdEqYl8RzR2fMTJTlg,12410
|
|
26
26
|
corekit/connections/sql/query.py,sha256=8s5atIssmN2l9FCL2IHnIQqwxOk0fA_mPNh36koLhoE,233
|
|
27
27
|
corekit/connections/sql/table.py,sha256=C7_QCRPd7C1JeH7aIByUBVWsx5qiEOFavWOo6c72djM,3125
|
|
28
28
|
corekit/connections/sql/fields/__init__.py,sha256=2I-TCsvi321yQhesKNZgY1T77FtATZ6o7pw0MNHtbAo,184
|
|
@@ -51,8 +51,14 @@ corekit/data/expressions/target.py,sha256=QSl7sH1qFVUc-mL7gsasTsCahWKhHqdo0bMHt-
|
|
|
51
51
|
corekit/decorators/__init__.py,sha256=YrBcc_4wkSs7nEb3OjC7C7a8fNEvBk3RzOpD8QccHKM,83
|
|
52
52
|
corekit/decorators/exception_handling.py,sha256=p86gfvdmsmC7_va042NSoGkWrJrbLLuw0ncE131wLWU,2326
|
|
53
53
|
corekit/decorators/warnings.py,sha256=RS7AS6OS05VxiWaMjkj6kYky9FbpT4Z-Cb7TQoPOObk,1109
|
|
54
|
-
corekit/docker/__init__.py,sha256=
|
|
55
|
-
corekit/docker/
|
|
54
|
+
corekit/docker/__init__.py,sha256=UnJd13PrmnYIprkDrX34nMhCRXyWPv74X4loobMFq6w,358
|
|
55
|
+
corekit/docker/client.py,sha256=3FO_MNLbMGAfErBv78rmx6052vr5SSaEBlOoRJPVhJQ,1519
|
|
56
|
+
corekit/docker/constants.py,sha256=tIMfN5ii3ht5tiWXowW8UmjQWcr9Rmn681Llysh9qIM,523
|
|
57
|
+
corekit/docker/watchdog.py,sha256=L-yZWlbteShSdMKPDT-7JVzqfQU8MT1XDEFVWF11aY8,9268
|
|
58
|
+
corekit/docker/disk/__init__.py,sha256=ZTr77TJuUdVvv6wbWXvYW0I5oVz45EwzbGjbjrUy1vk,295
|
|
59
|
+
corekit/docker/disk/constants.py,sha256=4fMEAdWwHbiBbe7aj3vV4molxRGZ3eLl1tyIPQ47D1o,465
|
|
60
|
+
corekit/docker/disk/inspector.py,sha256=YBRCX6upUclOPyu2PT2VkfyXKUPXJUv6Wwd_XYvA7lU,8156
|
|
61
|
+
corekit/docker/disk/models.py,sha256=9z8dTUyTEp8NfMmzBul2yp8sLAcEjoMytz_gCj7veKY,733
|
|
56
62
|
corekit/etl/__init__.py,sha256=KFuGv6xstJbEJHHYo_X5akEq_b7muDyKXCGdFeZ3_0M,1369
|
|
57
63
|
corekit/etl/connection.py,sha256=_gWqR36x5f7qb5IYJjrc_7d_6oU2CXm1QeSNCCh0coo,1270
|
|
58
64
|
corekit/etl/orchestrator.py,sha256=GkecTu8gKt17ePDM9PJBUuZTPYoPMdK1yYzBHjMdw3A,7959
|
|
@@ -83,23 +89,31 @@ corekit/exceptionator/fingerprint.py,sha256=Fjf02FFOq3pm4o88F0I7QDy7Nq9EwgA01jjp
|
|
|
83
89
|
corekit/exceptionator/guard.py,sha256=SU95rYpadfqgAUogmXSQyHvHCP7xATADlQyOTwLO_Qk,1180
|
|
84
90
|
corekit/exceptionator/jobs.py,sha256=ufQZNc5bbEsl3IYyCuTtaShXh0-lSbCReTouZHqpv9k,1340
|
|
85
91
|
corekit/exceptionator/models.py,sha256=CQxKKzBBerkEqdUnuPVyXflzx2r9cjFzUpG8K8VizhE,2437
|
|
86
|
-
corekit/exceptions/__init__.py,sha256=
|
|
87
|
-
corekit/exceptions/base.py,sha256=
|
|
92
|
+
corekit/exceptions/__init__.py,sha256=_csPo9yMZrRTlz2CQfM2bePtDNGPeAksWkKy8EanhLQ,1045
|
|
93
|
+
corekit/exceptions/base.py,sha256=aq_5QSePwI1xowIUv7Tndjlv0r8YI9wT2xJL45fQa-A,6206
|
|
88
94
|
corekit/exceptions/enum.py,sha256=D-YL-cZXs-F2jS1GgRBhPWmuqBfX33B1QP61vAXdAes,324
|
|
89
95
|
corekit/exceptions/types.py,sha256=rxhQ8sghV2TCHh_vB7tX6Yb6Vkyv1PF_0PLtalyFVxY,665
|
|
90
96
|
corekit/exceptions/custom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
97
|
corekit/exceptions/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
|
-
corekit/files/__init__.py,sha256=
|
|
98
|
+
corekit/files/__init__.py,sha256=SnN2PGTQ5D4nkBTb3pnXr5dPzOhpxa9ulYTDJyWLyM0,700
|
|
93
99
|
corekit/files/base.py,sha256=Ca2bhdlwntHh425PedaUG-UW2fEFZsPCss_3f7REsAE,4022
|
|
100
|
+
corekit/files/disk.py,sha256=Jcsdvy8o_UFaYFkC7uSI0vKO7MK_4fsC8I6DZNeBSKE,4176
|
|
94
101
|
corekit/files/enum.py,sha256=mcrQXcp-AizTAp4VoaVMLj9zu5D81XXMsnZwZqe6fz0,597
|
|
95
102
|
corekit/files/json.py,sha256=pRYLKNjeVmkDQsgtjBboFFY5Ljx1Pwa3MFEeQBc4o-g,909
|
|
96
103
|
corekit/files/toml.py,sha256=YFRwghMapbCRSl7srqcI7IhqaTQDyO56XRasGMu_Aug,1273
|
|
97
|
-
corekit/
|
|
98
|
-
corekit/
|
|
99
|
-
corekit/
|
|
104
|
+
corekit/html/__init__.py,sha256=25xsrlhaWREDuGpWc6xnN-Mbir7AsCnzjjQODJ58XVo,535
|
|
105
|
+
corekit/html/client.py,sha256=59eTlvJh9QFiPQ7HFHEhju9UkoEpS5YafinxFI5w7Q0,664
|
|
106
|
+
corekit/html/models.py,sha256=zxN3mSAuTQ0GE27Gxa3ptcp_EAmm5tlBUzwMovDevLU,357
|
|
107
|
+
corekit/html/parser.py,sha256=blSEBl5clbx_dOBPKu0S45_MiRjLSa7LeGpGc8opdWA,10300
|
|
108
|
+
corekit/html/scraper.py,sha256=af3UHf8LZuE4tEYr_MHo-h9FF6b8PQUtoTmlzSFR3FE,4366
|
|
109
|
+
corekit/html/settings.py,sha256=Xalz1Zg9wHyPhlzfIwsFE23aOE6woShHJLNEHg4mCWE,6951
|
|
110
|
+
corekit/html/state.py,sha256=McWmvu7y4qR0M2mSnjPAFtnAow9sv-nWHzolJQlvbyk,1534
|
|
111
|
+
corekit/http/__init__.py,sha256=S3FlvpBjYoLrFaMY7OTQLMM6d7etaDRJP53_4aPuKZk,1723
|
|
112
|
+
corekit/http/api.py,sha256=WiBfv3tTifxUuvoj3rGqZxCPm2L8z3N_F7hvmLuzprM,3027
|
|
113
|
+
corekit/http/client.py,sha256=CONO9z5CGVh5H99yCYnNjPMUYe8G8FFzbeBhusLbBSw,7217
|
|
100
114
|
corekit/http/exceptions.py,sha256=etkKN6rgnhENctO7YNvaRAKsctK0PXKCxAe15l6mNwY,4252
|
|
101
115
|
corekit/http/exponential_backoff.py,sha256=5jjGTspX_BC9aBKPr5Y5dNhJqXesmljsjJoQ6i2d4_I,3180
|
|
102
|
-
corekit/http/response.py,sha256=
|
|
116
|
+
corekit/http/response.py,sha256=t_nGIwA-uyuQlJBGMgxbodCNjRnqc1xUcxMsbEXeMBM,3415
|
|
103
117
|
corekit/http/status.py,sha256=rZ-cdliG9EAvWMTzvxjqjipRkZRc6RgSzcBY4Kewdg0,2377
|
|
104
118
|
corekit/http/stream.py,sha256=lkERyCXz5amOWzoE-b12iftf3l_G-ghwSvN1lL5lUio,3257
|
|
105
119
|
corekit/jobs/__init__.py,sha256=vsv8o23ApT6MlOwOq-AFYeQW2NT1kjyvu89A5CL2PsY,880
|
|
@@ -107,13 +121,13 @@ corekit/jobs/registry.py,sha256=cco6884eVuIYHEtSv6P62MICFjX-QhuSZIFkEJcQi_M,2557
|
|
|
107
121
|
corekit/jobs/runner.py,sha256=VyiTrQJT-E8-XuNBh8s1QgLJkKhkpBq_398Fs_03Kow,3321
|
|
108
122
|
corekit/jobs/task.py,sha256=tqr-QaQSHyfPjbyZscM5i-YgT-fl58cpd2FVxevtG_E,6112
|
|
109
123
|
corekit/llm/__init__.py,sha256=Qa-5V2cG4aH98b0nLY2tMx0G7uhoWhcaaZ7JY1dJjcA,3217
|
|
110
|
-
corekit/llm/client.py,sha256=
|
|
124
|
+
corekit/llm/client.py,sha256=X-dkizlps-ndhDzcImBfLDDWaoPdwMin7bf58QU2fdQ,6519
|
|
111
125
|
corekit/llm/enum.py,sha256=WyikZcEt17Rnj5jFS6o2ENXIdBBFB-NFjdCKDVtIToc,2582
|
|
112
126
|
corekit/llm/events.py,sha256=gEj3HpXLndCoPLF3C5jn-Gv5N1K6EPosR7bc5DaHwz4,2202
|
|
113
127
|
corekit/llm/messages.py,sha256=KomU69Kjfgif0fMXrbEr9VsQ_RpcFjgsE2S0ThC2SIA,5070
|
|
114
128
|
corekit/llm/protocols.py,sha256=ahCZwR3vQiB6LqaarTBGc5VSbe5mtb9vDLoLcOTmL_k,1770
|
|
115
129
|
corekit/llm/streaming.py,sha256=fiQdJMHDrMBSF5hDMCqcQ3WulrOyoQ67N-c3Chb00Sg,4319
|
|
116
|
-
corekit/llm/wire.py,sha256=
|
|
130
|
+
corekit/llm/wire.py,sha256=GbK7nF27YryNIDe1uOG_3RR-er3BFvULhVy73DiGgE0,6308
|
|
117
131
|
corekit/llm/prompts/__init__.py,sha256=9z8UwMqkh11MNcrom8hNZjugXq1MVF_EpPkRfF72zNA,544
|
|
118
132
|
corekit/llm/prompts/enum.py,sha256=OYTd-riG70HiGoBVxJpA1_FttyGR-ITsEojHfHjDKdk,1219
|
|
119
133
|
corekit/llm/prompts/exceptions.py,sha256=BX7VvngByXfSf3UGKAnFAPOytJrYukdEN_gVKYIfypc,546
|
|
@@ -122,7 +136,7 @@ corekit/llm/prompts/template.py,sha256=dgKje-v4R3JN3SPsDBjGm4zdohEsGRTgpbv1bvaOT
|
|
|
122
136
|
corekit/llm/tools/__init__.py,sha256=3hoiam1oatawk9k8-pcY63JoywiOh3EoM7TvkW00nMY,527
|
|
123
137
|
corekit/llm/tools/base.py,sha256=Mby2M3WA4nKgkmOpQwJWvKHGXlaZU62EGlHQUxsL_wk,3309
|
|
124
138
|
corekit/llm/tools/detection.py,sha256=R3jMxJwOdMzyTo9DISi_yYx1zEHUJJ6AN61bHkvO3zM,3292
|
|
125
|
-
corekit/llm/tools/loop.py,sha256=
|
|
139
|
+
corekit/llm/tools/loop.py,sha256=x7zlfYgeiXbtgna3IIczKkh5PK9fY2SfUpBOle21Dtw,9381
|
|
126
140
|
corekit/llm/tools/registry.py,sha256=dkIucONGsmaw-cgTNIIV2WDVGAF45twOHrvTvavs4X4,3362
|
|
127
141
|
corekit/log_monitor/__init__.py,sha256=uuXTQdI8EMeFbdt69G-2K8dKh5Nt-h9SzBEsOGcu0lo,371
|
|
128
142
|
corekit/log_monitor/constants.py,sha256=8nzIzU3Qit9h7_stZLWW1Q_0DTnYglw_j5bQUsF586g,230
|
|
@@ -139,16 +153,19 @@ corekit/observability/timing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
139
153
|
corekit/observability/timing/constants.py,sha256=Cv6h98NHzJiTJJufVQBVMBpdI0_fNMTnxAZF0j0vrsg,22
|
|
140
154
|
corekit/observability/timing/split.py,sha256=EdzCKx4pwAkcMzG7kmicRKdoyhBTZ-JkftJpsQ73Vww,811
|
|
141
155
|
corekit/observability/timing/timer.py,sha256=rBGYYnBq-1E85Om37dkbPM9wKsXsltyeWeAQHkKSaZQ,1657
|
|
156
|
+
corekit/process/__init__.py,sha256=KRtZx452ICjWpkNhpvcySYtaNGp0WXXGRsZCY_6Y1VM,115
|
|
157
|
+
corekit/process/runner.py,sha256=4ArfL-XxVFCHX_l-gM2oN0bY3h0It0s9yvWN2R5_aLM,1808
|
|
142
158
|
corekit/registry/__init__.py,sha256=R67Jssr06Eyx2u5AbX1omm2LziWvwS_Sd7fExnNv9CM,681
|
|
143
159
|
corekit/registry/ordered.py,sha256=_KS4mWzmLgFvODW2M0_ugxZIBW_dKhwwxrVrtNqLMfs,2506
|
|
144
160
|
corekit/registry/registry.py,sha256=t1iwzxgvd-iyLIf_5wahg_P7eN9V1oumpupkAqi2GdQ,5601
|
|
145
|
-
corekit/schemas/__init__.py,sha256=
|
|
161
|
+
corekit/schemas/__init__.py,sha256=qAVoXLfxh4fJmT3IhMI-fJGnQEV-MzmQ1pYHBTc08_s,528
|
|
146
162
|
corekit/schemas/enum.py,sha256=gLc44kIXRfpDFkV51JoN4KT1CU92hnb529rd1b88fBM,2033
|
|
163
|
+
corekit/schemas/size.py,sha256=E_6kZ7yXqfxBqDdXnmiNfdzTyakv1YKtnPNigLiyEmk,2478
|
|
147
164
|
corekit/schemas/types.py,sha256=AWIxZHXUiUjJRZjmOhAdCq3RIsRzL-Fy7RvYy4i5Ozo,1347
|
|
148
165
|
corekit/schemas/version.py,sha256=InWtfKf0iyfu_eBLaFm_QNwkSjpgKc1jGJZeWYjQQUc,1753
|
|
149
166
|
corekit/schemas/dataclasses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
150
167
|
corekit/schemas/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
|
-
corekit/schemas/models/arbitrary.py,sha256=
|
|
168
|
+
corekit/schemas/models/arbitrary.py,sha256=ik8V9Pm2X3eKv1vUp3IF5v3c6gDqoyisSBnen63-Pcc,1681
|
|
152
169
|
corekit/schemas/models/date_models.py,sha256=UOlSLVsWqgr_jnHfxVRgSl4nVVdfbe6zPBYveOgRcIg,399
|
|
153
170
|
corekit/schemas/pydantic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
171
|
corekit/schemas/pydantic/fields.py,sha256=ScP2ZQCR2qTWaqwjKl7lGvkTGSIeQBJ0yeNs79E47AA,1175
|
|
@@ -157,18 +174,19 @@ corekit/serialization/enum.py,sha256=pzHuAIXeonEF7-jyN1uYddJk-xvmQGuymDf1U6RWR5w
|
|
|
157
174
|
corekit/serialization/pickle_file.py,sha256=dudKIxR8ueT3wx_IBxHJeoqnFeP1rT7dlTb_PXlSkd8,2251
|
|
158
175
|
corekit/serialization/serializable.py,sha256=viF3ZCKRJ90hk6m4lbqIfo6ifsY2c4sXr4xZrn1Yz-Q,1999
|
|
159
176
|
corekit/serialization/serializer.py,sha256=XlGE1Rq8M55Jl2a4F5MkvDcba2VI7lrh0v9kwL0DWG8,6617
|
|
160
|
-
corekit/utils/__init__.py,sha256=
|
|
161
|
-
corekit/utils/coercion.py,sha256=
|
|
162
|
-
corekit/utils/collections.py,sha256=
|
|
177
|
+
corekit/utils/__init__.py,sha256=wh-cMaWtzw1sEjQ9_O7tdQKMxqIPBNyfFcud0uOB-ZY,2633
|
|
178
|
+
corekit/utils/coercion.py,sha256=dnJ-lUW5_MOMrERhRxsL7LBwPAB-mh6Bua6eI-C-q1Q,3448
|
|
179
|
+
corekit/utils/collections.py,sha256=mj-YRUT0sgodqSvTNqJTpRs4lN1vMnJ_piOv9Vr9aRo,11609
|
|
163
180
|
corekit/utils/ids.py,sha256=BVniaYqewM-EosDxcJAT_S_7T9C1c5X8nsaVGs5up34,1731
|
|
181
|
+
corekit/utils/parsers.py,sha256=b7bCaMd7_VKaFnin6vn3v1Eol_Z0vvr3vjDO4ro5ycI,6628
|
|
164
182
|
corekit/utils/payload.py,sha256=T7EgdVU0S5h8MAzvQsmkfRPMatWqUbxjHL9hmZdM9ho,3882
|
|
165
183
|
corekit/utils/raise_exc.py,sha256=cz7ljc6ZW90AGQussKuANN8PLsDLUhl-E8FZ0Ipsw-0,175
|
|
166
184
|
corekit/utils/text.py,sha256=0322DdZGuDGEagTyejuda6QT1jbbxNIO6loC-_AGml0,2311
|
|
167
185
|
corekit/utils/time.py,sha256=-iPaETXcgDu7J39Kwe938JyZKhPVjl6a572BBqsqcDQ,2215
|
|
168
186
|
corekit/utils/validators.py,sha256=_HVKo3y264KGNaZ-1RyM1x46VPvu7XKcQkrHWDC9uxs,340
|
|
169
187
|
corekit/utils/void.py,sha256=eXDb2QynuguiSgHGJLdgE08MuRnxBdYebRdMD7s1m9o,178
|
|
170
|
-
python_corekit-0.
|
|
171
|
-
python_corekit-0.
|
|
172
|
-
python_corekit-0.
|
|
173
|
-
python_corekit-0.
|
|
174
|
-
python_corekit-0.
|
|
188
|
+
python_corekit-0.6.0.dist-info/licenses/LICENSE,sha256=357LYxbxAQZ95q5cV-8JK6j-KNgiE6AteRodjEsm-kE,1072
|
|
189
|
+
python_corekit-0.6.0.dist-info/METADATA,sha256=YrgBgcZgbYS5eB2yhz2B-9Jvx-K3AZ9VhGt4ihLuZCs,15304
|
|
190
|
+
python_corekit-0.6.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
191
|
+
python_corekit-0.6.0.dist-info/top_level.txt,sha256=SDK4o8BoaI47E9tPbiNCbbWoc2y6N_wCjwnIEfr-GWI,8
|
|
192
|
+
python_corekit-0.6.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|