krons 0.1.1__py3-none-any.whl → 0.2.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.
- krons/__init__.py +49 -0
- krons/agent/__init__.py +144 -0
- krons/agent/mcps/__init__.py +14 -0
- krons/agent/mcps/loader.py +287 -0
- krons/agent/mcps/wrapper.py +799 -0
- krons/agent/message/__init__.py +20 -0
- krons/agent/message/action.py +69 -0
- krons/agent/message/assistant.py +52 -0
- krons/agent/message/common.py +49 -0
- krons/agent/message/instruction.py +130 -0
- krons/agent/message/prepare_msg.py +187 -0
- krons/agent/message/role.py +53 -0
- krons/agent/message/system.py +53 -0
- krons/agent/operations/__init__.py +82 -0
- krons/agent/operations/act.py +100 -0
- krons/agent/operations/generate.py +145 -0
- krons/agent/operations/llm_reparse.py +89 -0
- krons/agent/operations/operate.py +247 -0
- krons/agent/operations/parse.py +243 -0
- krons/agent/operations/react.py +286 -0
- krons/agent/operations/specs.py +235 -0
- krons/agent/operations/structure.py +151 -0
- krons/agent/operations/utils.py +79 -0
- krons/agent/providers/__init__.py +17 -0
- krons/agent/providers/anthropic_messages.py +146 -0
- krons/agent/providers/claude_code.py +276 -0
- krons/agent/providers/gemini.py +268 -0
- krons/agent/providers/match.py +75 -0
- krons/agent/providers/oai_chat.py +174 -0
- krons/agent/third_party/__init__.py +2 -0
- krons/agent/third_party/anthropic_models.py +154 -0
- krons/agent/third_party/claude_code.py +682 -0
- krons/agent/third_party/gemini_models.py +508 -0
- krons/agent/third_party/openai_models.py +295 -0
- krons/agent/tool.py +291 -0
- krons/core/__init__.py +56 -74
- krons/core/base/__init__.py +121 -0
- krons/core/{broadcaster.py → base/broadcaster.py} +7 -3
- krons/core/{element.py → base/element.py} +13 -5
- krons/core/{event.py → base/event.py} +39 -6
- krons/core/{eventbus.py → base/eventbus.py} +3 -1
- krons/core/{flow.py → base/flow.py} +11 -4
- krons/core/{graph.py → base/graph.py} +24 -8
- krons/core/{node.py → base/node.py} +44 -19
- krons/core/{pile.py → base/pile.py} +22 -8
- krons/core/{processor.py → base/processor.py} +21 -7
- krons/core/{progression.py → base/progression.py} +3 -1
- krons/{specs → core/specs}/__init__.py +0 -5
- krons/{specs → core/specs}/adapters/dataclass_field.py +16 -8
- krons/{specs → core/specs}/adapters/pydantic_adapter.py +11 -5
- krons/{specs → core/specs}/adapters/sql_ddl.py +14 -8
- krons/{specs → core/specs}/catalog/__init__.py +2 -2
- krons/{specs → core/specs}/catalog/_audit.py +2 -2
- krons/{specs → core/specs}/catalog/_common.py +2 -2
- krons/{specs → core/specs}/catalog/_content.py +4 -4
- krons/{specs → core/specs}/catalog/_enforcement.py +3 -3
- krons/{specs → core/specs}/factory.py +5 -5
- krons/{specs → core/specs}/operable.py +8 -2
- krons/{specs → core/specs}/protocol.py +4 -2
- krons/{specs → core/specs}/spec.py +23 -11
- krons/{types → core/types}/base.py +4 -2
- krons/{types → core/types}/db_types.py +2 -2
- krons/errors.py +13 -13
- krons/protocols.py +9 -4
- krons/resource/__init__.py +89 -0
- krons/{services → resource}/backend.py +48 -22
- krons/{services → resource}/endpoint.py +28 -14
- krons/{services → resource}/hook.py +20 -7
- krons/{services → resource}/imodel.py +46 -28
- krons/{services → resource}/registry.py +26 -24
- krons/{services → resource}/utilities/rate_limited_executor.py +7 -3
- krons/{services → resource}/utilities/rate_limiter.py +3 -1
- krons/{services → resource}/utilities/resilience.py +15 -5
- krons/resource/utilities/token_calculator.py +185 -0
- krons/session/__init__.py +12 -17
- krons/session/constraints.py +70 -0
- krons/session/exchange.py +11 -3
- krons/session/message.py +3 -1
- krons/session/registry.py +35 -0
- krons/session/session.py +165 -174
- krons/utils/__init__.py +45 -0
- krons/utils/_function_arg_parser.py +99 -0
- krons/utils/_pythonic_function_call.py +249 -0
- krons/utils/_to_list.py +9 -3
- krons/utils/_utils.py +6 -2
- krons/utils/concurrency/_async_call.py +4 -2
- krons/utils/concurrency/_errors.py +3 -1
- krons/utils/concurrency/_patterns.py +3 -1
- krons/utils/concurrency/_resource_tracker.py +6 -2
- krons/utils/display.py +257 -0
- krons/utils/fuzzy/__init__.py +6 -1
- krons/utils/fuzzy/_fuzzy_match.py +14 -8
- krons/utils/fuzzy/_string_similarity.py +3 -1
- krons/utils/fuzzy/_to_dict.py +3 -1
- krons/utils/schemas/__init__.py +26 -0
- krons/utils/schemas/_breakdown_pydantic_annotation.py +131 -0
- krons/utils/schemas/_formatter.py +72 -0
- krons/utils/schemas/_minimal_yaml.py +151 -0
- krons/utils/schemas/_typescript.py +153 -0
- krons/utils/validators/__init__.py +3 -0
- krons/utils/validators/_validate_image_url.py +56 -0
- krons/work/__init__.py +126 -0
- krons/work/engine.py +333 -0
- krons/work/form.py +305 -0
- krons/{operations → work/operations}/__init__.py +7 -4
- krons/{operations → work/operations}/builder.py +1 -1
- krons/{enforcement → work/operations}/context.py +36 -5
- krons/{operations → work/operations}/flow.py +13 -5
- krons/{operations → work/operations}/node.py +45 -43
- krons/work/operations/registry.py +103 -0
- krons/{specs → work}/phrase.py +130 -13
- krons/{enforcement → work}/policy.py +3 -3
- krons/work/report.py +268 -0
- krons/work/rules/__init__.py +47 -0
- krons/{enforcement → work/rules}/common/boolean.py +3 -1
- krons/{enforcement → work/rules}/common/choice.py +9 -3
- krons/{enforcement → work/rules}/common/number.py +3 -1
- krons/{enforcement → work/rules}/common/string.py +9 -3
- krons/{enforcement → work/rules}/rule.py +1 -1
- krons/{enforcement → work/rules}/validator.py +20 -5
- krons/{enforcement → work}/service.py +16 -7
- krons/work/worker.py +266 -0
- {krons-0.1.1.dist-info → krons-0.2.0.dist-info}/METADATA +15 -1
- krons-0.2.0.dist-info/RECORD +154 -0
- krons/enforcement/__init__.py +0 -57
- krons/operations/registry.py +0 -92
- krons/services/__init__.py +0 -81
- krons-0.1.1.dist-info/RECORD +0 -101
- /krons/{specs → core/specs}/adapters/__init__.py +0 -0
- /krons/{specs → core/specs}/adapters/_utils.py +0 -0
- /krons/{specs → core/specs}/adapters/factory.py +0 -0
- /krons/{types → core/types}/__init__.py +0 -0
- /krons/{types → core/types}/_sentinel.py +0 -0
- /krons/{types → core/types}/identity.py +0 -0
- /krons/{services → resource}/utilities/__init__.py +0 -0
- /krons/{services → resource}/utilities/header_factory.py +0 -0
- /krons/{enforcement → work/rules}/common/__init__.py +0 -0
- /krons/{enforcement → work/rules}/common/mapping.py +0 -0
- /krons/{enforcement → work/rules}/common/model.py +0 -0
- /krons/{enforcement → work/rules}/registry.py +0 -0
- {krons-0.1.1.dist-info → krons-0.2.0.dist-info}/WHEEL +0 -0
- {krons-0.1.1.dist-info → krons-0.2.0.dist-info}/licenses/LICENSE +0 -0
krons/enforcement/__init__.py
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2025 - 2026, HaiyangLi <quantocean.li at gmail dot com>
|
|
2
|
-
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
"""Enforcement module - Validation and policy protocols.
|
|
5
|
-
|
|
6
|
-
Provides:
|
|
7
|
-
- Rule: Base validation rule with auto-correction support
|
|
8
|
-
- Validator: Validates data against Spec/Operable using rules
|
|
9
|
-
- RuleRegistry: Maps types to validation rules
|
|
10
|
-
- Policy protocols: Abstract contracts for policy evaluation
|
|
11
|
-
|
|
12
|
-
Mental model:
|
|
13
|
-
Rule = validation (is data valid?) - with optional auto-fix
|
|
14
|
-
Policy = external evaluation protocol (implementations in domain libs)
|
|
15
|
-
|
|
16
|
-
Usage:
|
|
17
|
-
from krons.enforcement import Rule, Validator, RuleRegistry
|
|
18
|
-
|
|
19
|
-
# Register rules
|
|
20
|
-
registry = RuleRegistry()
|
|
21
|
-
registry.register(str, StringRule(min_length=1))
|
|
22
|
-
|
|
23
|
-
# Validate
|
|
24
|
-
validator = Validator(registry=registry)
|
|
25
|
-
result = await validator.validate_spec(spec, value)
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
from .context import QueryFn, RequestContext
|
|
29
|
-
from .policy import EnforcementLevel, PolicyEngine, PolicyResolver, ResolvedPolicy
|
|
30
|
-
from .registry import RuleRegistry, get_default_registry
|
|
31
|
-
from .rule import Rule, RuleParams, RuleQualifier, ValidationError
|
|
32
|
-
from .service import ActionMeta, KronConfig, KronService, action, get_action_meta
|
|
33
|
-
from .validator import Validator
|
|
34
|
-
|
|
35
|
-
__all__ = (
|
|
36
|
-
# Rule system
|
|
37
|
-
"Rule",
|
|
38
|
-
"RuleParams",
|
|
39
|
-
"RuleQualifier",
|
|
40
|
-
"RuleRegistry",
|
|
41
|
-
"ValidationError",
|
|
42
|
-
"Validator",
|
|
43
|
-
"get_default_registry",
|
|
44
|
-
# Policy protocols
|
|
45
|
-
"EnforcementLevel",
|
|
46
|
-
"PolicyEngine",
|
|
47
|
-
"PolicyResolver",
|
|
48
|
-
"ResolvedPolicy",
|
|
49
|
-
# Service
|
|
50
|
-
"ActionMeta",
|
|
51
|
-
"KronConfig",
|
|
52
|
-
"KronService",
|
|
53
|
-
"QueryFn",
|
|
54
|
-
"RequestContext",
|
|
55
|
-
"action",
|
|
56
|
-
"get_action_meta",
|
|
57
|
-
)
|
krons/operations/registry.py
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2025 - 2026, HaiyangLi <quantocean.li at gmail dot com>
|
|
2
|
-
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
"""Per-session operation factory registry.
|
|
5
|
-
|
|
6
|
-
Maps operation names to async factory functions. Instantiated per-Session
|
|
7
|
-
for isolation, testability, and per-session customization.
|
|
8
|
-
"""
|
|
9
|
-
|
|
10
|
-
from __future__ import annotations
|
|
11
|
-
|
|
12
|
-
from collections.abc import Awaitable, Callable
|
|
13
|
-
from typing import Any
|
|
14
|
-
|
|
15
|
-
__all__ = ("OperationRegistry",)
|
|
16
|
-
|
|
17
|
-
OperationFactory = Callable[..., Awaitable[Any]]
|
|
18
|
-
"""Factory signature: async (session, branch, parameters) -> result"""
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class OperationRegistry:
|
|
22
|
-
"""Map operation names to async factory functions.
|
|
23
|
-
|
|
24
|
-
Per-session registry (not global) for isolation and testability.
|
|
25
|
-
|
|
26
|
-
Example:
|
|
27
|
-
registry = OperationRegistry()
|
|
28
|
-
registry.register("chat", chat_factory)
|
|
29
|
-
factory = registry.get("chat")
|
|
30
|
-
result = await factory(session, branch, params)
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
def __init__(self):
|
|
34
|
-
"""Initialize empty registry."""
|
|
35
|
-
self._factories: dict[str, OperationFactory] = {}
|
|
36
|
-
|
|
37
|
-
def register(
|
|
38
|
-
self,
|
|
39
|
-
operation_name: str,
|
|
40
|
-
factory: OperationFactory,
|
|
41
|
-
*,
|
|
42
|
-
override: bool = False,
|
|
43
|
-
) -> None:
|
|
44
|
-
"""Register factory for operation name.
|
|
45
|
-
|
|
46
|
-
Args:
|
|
47
|
-
operation_name: Lookup key.
|
|
48
|
-
factory: Async (session, branch, params) -> result.
|
|
49
|
-
override: Allow replacing existing. Default False.
|
|
50
|
-
|
|
51
|
-
Raises:
|
|
52
|
-
ValueError: If name exists and override=False.
|
|
53
|
-
"""
|
|
54
|
-
if operation_name in self._factories and not override:
|
|
55
|
-
raise ValueError(
|
|
56
|
-
f"Operation '{operation_name}' already registered. Use override=True to replace."
|
|
57
|
-
)
|
|
58
|
-
self._factories[operation_name] = factory
|
|
59
|
-
|
|
60
|
-
def get(self, operation_name: str) -> OperationFactory:
|
|
61
|
-
"""Get factory by name. Raises KeyError with available names if not found."""
|
|
62
|
-
if operation_name not in self._factories:
|
|
63
|
-
raise KeyError(
|
|
64
|
-
f"Operation '{operation_name}' not registered. Available: {self.list_names()}"
|
|
65
|
-
)
|
|
66
|
-
return self._factories[operation_name]
|
|
67
|
-
|
|
68
|
-
def has(self, operation_name: str) -> bool:
|
|
69
|
-
"""Check if name is registered."""
|
|
70
|
-
return operation_name in self._factories
|
|
71
|
-
|
|
72
|
-
def unregister(self, operation_name: str) -> bool:
|
|
73
|
-
"""Remove registration. Returns True if existed."""
|
|
74
|
-
if operation_name in self._factories:
|
|
75
|
-
del self._factories[operation_name]
|
|
76
|
-
return True
|
|
77
|
-
return False
|
|
78
|
-
|
|
79
|
-
def list_names(self) -> list[str]:
|
|
80
|
-
"""Return all registered operation names."""
|
|
81
|
-
return list(self._factories.keys())
|
|
82
|
-
|
|
83
|
-
def __contains__(self, operation_name: str) -> bool:
|
|
84
|
-
"""Support 'name in registry' syntax."""
|
|
85
|
-
return operation_name in self._factories
|
|
86
|
-
|
|
87
|
-
def __len__(self) -> int:
|
|
88
|
-
"""Count of registered operations."""
|
|
89
|
-
return len(self._factories)
|
|
90
|
-
|
|
91
|
-
def __repr__(self) -> str:
|
|
92
|
-
return f"OperationRegistry(operations={self.list_names()})"
|
krons/services/__init__.py
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2025 - 2026, HaiyangLi <quantocean.li at gmail dot com>
|
|
2
|
-
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
"""Services module: iModel, ServiceBackend, hooks, and registry.
|
|
5
|
-
|
|
6
|
-
Core exports:
|
|
7
|
-
- iModel: Unified service interface with rate limiting and hooks
|
|
8
|
-
- ServiceBackend/Endpoint: Backend abstractions for API calls
|
|
9
|
-
- HookRegistry/HookEvent/HookPhase: Lifecycle hook system
|
|
10
|
-
- ServiceRegistry: O(1) name-based service lookup
|
|
11
|
-
|
|
12
|
-
Uses lazy loading for fast import.
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
from __future__ import annotations
|
|
16
|
-
|
|
17
|
-
from typing import TYPE_CHECKING
|
|
18
|
-
|
|
19
|
-
# Lazy import mapping
|
|
20
|
-
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
|
|
21
|
-
"Calling": ("krons.services.backend", "Calling"),
|
|
22
|
-
"NormalizedResponse": ("krons.services.backend", "NormalizedResponse"),
|
|
23
|
-
"ServiceBackend": ("krons.services.backend", "ServiceBackend"),
|
|
24
|
-
"ServiceConfig": ("krons.services.backend", "ServiceConfig"),
|
|
25
|
-
"ServiceRegistry": ("krons.services.registry", "ServiceRegistry"),
|
|
26
|
-
"iModel": ("krons.services.imodel", "iModel"),
|
|
27
|
-
"Endpoint": ("krons.services.endpoint", "Endpoint"),
|
|
28
|
-
"EndpointConfig": ("krons.services.endpoint", "EndpointConfig"),
|
|
29
|
-
"APICalling": ("krons.services.endpoint", "APICalling"),
|
|
30
|
-
"HookRegistry": ("krons.services.hook", "HookRegistry"),
|
|
31
|
-
"HookEvent": ("krons.services.hook", "HookEvent"),
|
|
32
|
-
"HookPhase": ("krons.services.hook", "HookPhase"),
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
_LOADED: dict[str, object] = {}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def __getattr__(name: str) -> object:
|
|
39
|
-
"""Lazy import attributes on first access."""
|
|
40
|
-
if name in _LOADED:
|
|
41
|
-
return _LOADED[name]
|
|
42
|
-
|
|
43
|
-
if name in _LAZY_IMPORTS:
|
|
44
|
-
from importlib import import_module
|
|
45
|
-
|
|
46
|
-
module_name, attr_name = _LAZY_IMPORTS[name]
|
|
47
|
-
module = import_module(module_name)
|
|
48
|
-
value = getattr(module, attr_name)
|
|
49
|
-
_LOADED[name] = value
|
|
50
|
-
return value
|
|
51
|
-
|
|
52
|
-
raise AttributeError(f"module 'krons.services' has no attribute {name!r}")
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
def __dir__() -> list[str]:
|
|
56
|
-
"""Return all available attributes for autocomplete."""
|
|
57
|
-
return list(__all__)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
# TYPE_CHECKING block for static analysis
|
|
61
|
-
if TYPE_CHECKING:
|
|
62
|
-
from .backend import Calling, NormalizedResponse, ServiceBackend, ServiceConfig
|
|
63
|
-
from .endpoint import APICalling, Endpoint, EndpointConfig
|
|
64
|
-
from .hook import HookEvent, HookPhase, HookRegistry
|
|
65
|
-
from .imodel import iModel
|
|
66
|
-
from .registry import ServiceRegistry
|
|
67
|
-
|
|
68
|
-
__all__ = (
|
|
69
|
-
"APICalling",
|
|
70
|
-
"Calling",
|
|
71
|
-
"Endpoint",
|
|
72
|
-
"EndpointConfig",
|
|
73
|
-
"HookEvent",
|
|
74
|
-
"HookPhase",
|
|
75
|
-
"HookRegistry",
|
|
76
|
-
"NormalizedResponse",
|
|
77
|
-
"ServiceBackend",
|
|
78
|
-
"ServiceConfig",
|
|
79
|
-
"ServiceRegistry",
|
|
80
|
-
"iModel",
|
|
81
|
-
)
|
krons-0.1.1.dist-info/RECORD
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
krons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
krons/errors.py,sha256=qzedv7hxB66-1hxNZYooetp-x-Yo71g_NquJH931YsQ,4038
|
|
3
|
-
krons/protocols.py,sha256=J7mMmBIk-sS5CPwYk1tPo-W8UAnau8_v6wruDhDelbs,15239
|
|
4
|
-
krons/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
krons/core/__init__.py,sha256=cR62yVsNyF8lu3gkiHJMnvew1Jj8HqnMBzA7rFzlVzs,4187
|
|
6
|
-
krons/core/broadcaster.py,sha256=oSfr1ESB8DJdCnzwDmOuVr2QKtisFxQh7OldVzwPKKI,3965
|
|
7
|
-
krons/core/element.py,sha256=ouSNYvryb7TzgRuwW-ETVOvrfomTlrVp8AqLQ8NEJSg,7533
|
|
8
|
-
krons/core/event.py,sha256=hOXOjrug9C8GqMAdT44iQVC3oSRnXFnOx7-TEbNcaKs,10601
|
|
9
|
-
krons/core/eventbus.py,sha256=cSi2PGRIUh9t2RpN92fjP73mDoIinngBYDbEbA3bv4s,3731
|
|
10
|
-
krons/core/flow.py,sha256=h2Ug-u7DWNDgLOYwSjIZjNVLI4iuNzV1wZ4RSdp6ba0,12271
|
|
11
|
-
krons/core/graph.py,sha256=hk8pp5vt_aI6L-PLopzd3tGrV4XnyYqzDPWQ58VK0E8,15797
|
|
12
|
-
krons/core/node.py,sha256=3DEIsNVrR5WOnh_JZzShSPbX0dNnUo02pxngJgZ4cTM,34330
|
|
13
|
-
krons/core/pile.py,sha256=MiTyajAOVNtv1bFcZQYX2P4PL07kTWZDBATr2DFm034,20893
|
|
14
|
-
krons/core/processor.py,sha256=O4Fv7gQzytD4Fmjw8JHdSfuPA85r30z9RfcB021nn0E,18484
|
|
15
|
-
krons/core/progression.py,sha256=85Dy-cMLy2UGFr5eZxqiuBh53lKaCQYjIyCZdyQ690M,9806
|
|
16
|
-
krons/enforcement/__init__.py,sha256=Y1V7OCqYQF3S02VHt0mRcjktLYNFH_ef-71u7hh4IDg,1653
|
|
17
|
-
krons/enforcement/context.py,sha256=b5f653m55NhxqYEDqKT5ZdEqIyqdSWdbGFwMw-cIt7c,4239
|
|
18
|
-
krons/enforcement/policy.py,sha256=GYTbSG8ibo2x1eeGr_ot8wGRZBURd9wjyHuUZb6tcGE,2132
|
|
19
|
-
krons/enforcement/registry.py,sha256=JFdwcIVtysntj6wMY3bO7-hqwNU7QIoIbEQuhsy5O4U,4742
|
|
20
|
-
krons/enforcement/rule.py,sha256=ks2nHFmcwCwPn306k8ra_WFpdj5R3a3W3pyO1fpNeMk,9466
|
|
21
|
-
krons/enforcement/service.py,sha256=x5xClQ2uysKYepAZti7ICqrWXTbYjGYtFaC6tzsY_CI,11849
|
|
22
|
-
krons/enforcement/validator.py,sha256=mipoSCpk57vOiPDx0UzReYyp2QuD5tOjH_muLnaDWgc,6759
|
|
23
|
-
krons/enforcement/common/__init__.py,sha256=U0rEcHOxLftR4-xJNuuXMSDYFAvbs0KzwV3GhlZcUrY,1026
|
|
24
|
-
krons/enforcement/common/boolean.py,sha256=vUmOpCMr7kW0tkS5zdvmgY6RouJ_8Xl9Yd0MTCbItz8,2614
|
|
25
|
-
krons/enforcement/common/choice.py,sha256=hbziQjfc60Azq-4P5PSEw3KYWm80JPhBg6rgVl3MXaE,3190
|
|
26
|
-
krons/enforcement/common/mapping.py,sha256=Loq54MNEtwpnHN0aypTjFOqwoOKLEysddHh-JESedvs,3824
|
|
27
|
-
krons/enforcement/common/model.py,sha256=xmM6coEThf_fgIiqJiyDgvdfib_FpVeY6LgWPVcWSwU,3026
|
|
28
|
-
krons/enforcement/common/number.py,sha256=_WM_LGSsU1D-HHE6O0nd4tRV20tTw06sOyhaevwoZu4,3132
|
|
29
|
-
krons/enforcement/common/string.py,sha256=PAknCSgCPTld1niSsZjljc5_j-cDZVr8S3OvNYFEXJM,4992
|
|
30
|
-
krons/operations/__init__.py,sha256=ARzm5ywMn3YzW8vIWfKcy8CeN5DSxi_mGxtyxty03gk,917
|
|
31
|
-
krons/operations/builder.py,sha256=wtnlcCpngE5tK0pnwCNjniCi3HFJrWtwpULGzMcddIg,7774
|
|
32
|
-
krons/operations/flow.py,sha256=QstfNqntodU7MaVyHva89Rlu1xbdThZwlIqYtLmQVjE,14696
|
|
33
|
-
krons/operations/node.py,sha256=499BVq2BnCBM4hLEmYrBsUuWmDhtISgMelUQlEvOtCM,3166
|
|
34
|
-
krons/operations/registry.py,sha256=kEE484Q3J4CvcOuP-1AUPQg5i-ff8WcSjQntOXhgqgg,3046
|
|
35
|
-
krons/services/__init__.py,sha256=ltUHcKZIWXMk5T11HRJrf_-XjX3eZdwEx02qrID44Nc,2574
|
|
36
|
-
krons/services/backend.py,sha256=txvySl_7NLbBJy0b_ZlkxaMhRfPQ1x2_NVrarkxhmew,10251
|
|
37
|
-
krons/services/endpoint.py,sha256=FCn3fn9bNZ_lohL8wHPRKYVh3cGbsDE9Un75VXaCE0c,22076
|
|
38
|
-
krons/services/hook.py,sha256=Ni1kIe-D-cbb6isjK2_jsy3X2AH0WFXgXOcq75aTRJM,16910
|
|
39
|
-
krons/services/imodel.py,sha256=qPd77SAbN3PX0e5dcm-A6UK8fn2eWTAIJ6mBqduQXnQ,18190
|
|
40
|
-
krons/services/registry.py,sha256=uHlHJZEYFrV3fL8V61eYAG0geUm3VmT3Be1oJaF8KbY,3788
|
|
41
|
-
krons/services/utilities/__init__.py,sha256=-ycdoYgtXrliJwbtQGMHBRvZL0qX2xLzooL3RNV99x4,1013
|
|
42
|
-
krons/services/utilities/header_factory.py,sha256=WZCCZMh9EJVi8tnY7dJD07FcTOrrUMvecJmzy8P65Os,2992
|
|
43
|
-
krons/services/utilities/rate_limited_executor.py,sha256=KSAYvVce24O7B0BlOgCX6jnYTpGwzjnPHLvbNZ5IvHo,9650
|
|
44
|
-
krons/services/utilities/rate_limiter.py,sha256=lquGaLRjQGIIcTysUtsJJ6ZJEqFQyUmbAP7JBCIT93E,5957
|
|
45
|
-
krons/services/utilities/resilience.py,sha256=LpcUSx4zGkWECkrgoSKJKyTFkirpoknrgbD1zjwYuco,14239
|
|
46
|
-
krons/session/__init__.py,sha256=EZDOlXoGcJ5VT9NPpx5fV_vIpRF_DsavQPcmeG7xiFQ,1210
|
|
47
|
-
krons/session/exchange.py,sha256=uE7d2ai5zom64bIA-RmAZy6SUpydCHwZc1e0eROLN6c,9025
|
|
48
|
-
krons/session/message.py,sha256=eVP2-4xwMTBaRtATfG7SD4UkdooN-FlRSx0hKsjkFNM,1993
|
|
49
|
-
krons/session/session.py,sha256=lWy5ACVFDaUiuFPUSR4kSbcpDB7GI2x4CXP5VoRnL3I,14245
|
|
50
|
-
krons/specs/__init__.py,sha256=F6QOVdo1EK5jK6b17rgQqX8i8PWURUxkFzBSz3g0L0A,631
|
|
51
|
-
krons/specs/factory.py,sha256=R0vp4ATRZAHhinBFcldyGp1Tt6I44tp-r2GznrxTWZs,3337
|
|
52
|
-
krons/specs/operable.py,sha256=lhQ4K3mpHeHPgSSLODnhzJhTYEjSRkxOSqESxVpUBRk,11043
|
|
53
|
-
krons/specs/phrase.py,sha256=Zyx-u1vySLHFL5PP1bkHL4AQq7jVa3wag6kDucPT1ck,15125
|
|
54
|
-
krons/specs/protocol.py,sha256=ugYVjN6kV-rjXqvxdoTSaQmK9AP_8rXzKY4gN26xfyk,4365
|
|
55
|
-
krons/specs/spec.py,sha256=6aB_XGPF6zQfn0g-Pn0IBweC-6xQUqGB1RVhSq-TsBw,18512
|
|
56
|
-
krons/specs/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
krons/specs/adapters/_utils.py,sha256=ChWH-C2LRXaXiWM3n7P0DZ8Oci5dSDq59DIJtHx2h-g,1365
|
|
58
|
-
krons/specs/adapters/dataclass_field.py,sha256=2mdmqdn5aUV1Y8i1q6IQErmdo4NRP-002y3ZKK424BI,8678
|
|
59
|
-
krons/specs/adapters/factory.py,sha256=_LoSMCtHNkK5kNL5LUDjHvJJ2BtDHAaW1gly5LpNPXQ,1572
|
|
60
|
-
krons/specs/adapters/pydantic_adapter.py,sha256=L5e0Kg_picNiGyxdvbJil96zAzNGIoHUHTuxcQmcXZk,10360
|
|
61
|
-
krons/specs/adapters/sql_ddl.py,sha256=HxvZDYri4GzUgSFf6SDsdI_5w44SOZSRMkqD23LDLVg,31332
|
|
62
|
-
krons/specs/catalog/__init__.py,sha256=Sdxl3HDK5LpjDZ0Cf-eBsErPLEGYJRiigMky719lRYY,1221
|
|
63
|
-
krons/specs/catalog/_audit.py,sha256=YYrIvEBsAHmRXiIUQrrp_qE6NmnUJq5rexxD5r3radw,1250
|
|
64
|
-
krons/specs/catalog/_common.py,sha256=-LyBKV1MMEE0QlrKjlqs9JBmJi_kCehB2Cr743jl94I,1197
|
|
65
|
-
krons/specs/catalog/_content.py,sha256=aG01G_X_AHPyYMg7ELdgVUPFLDjqM2BIuaxjKR3zDAs,1952
|
|
66
|
-
krons/specs/catalog/_enforcement.py,sha256=NmBwqXQxojBNkIECvPSy1kg1375sijhOXezwCPTa6LM,2111
|
|
67
|
-
krons/types/__init__.py,sha256=pJ6kuop7vSLZp5jMBs-CQ7CHRjvUuO8kHhpZ34KM85I,1049
|
|
68
|
-
krons/types/_sentinel.py,sha256=QJGyRAYNkJ2ylw6dhxPHJNgmxqBdorBd-xx7pNrUykw,8855
|
|
69
|
-
krons/types/base.py,sha256=1wE3Sjxt46cTkqgDT_35Go_1nM2qwVQGv-HJ58e8ATM,12307
|
|
70
|
-
krons/types/db_types.py,sha256=78nH6N5hwlwZv69jgBR5bVwpZx82P0mi893THebG-Gg,8126
|
|
71
|
-
krons/types/identity.py,sha256=Ccb5oJArC1PEzdzNPlLi_oK87uKx7BFevX9rvY9y-14,1949
|
|
72
|
-
krons/utils/__init__.py,sha256=BUQLqQoZ6Bz9eA0nEz9urPTVVS-FSOUWXZe3LMbhEj4,847
|
|
73
|
-
krons/utils/_hash.py,sha256=W2Ma9v8-INPaGkur7GTtbF8KwuXSJNSwk8DCNPRvx8Q,6859
|
|
74
|
-
krons/utils/_json_dump.py,sha256=rpBmr0NCmIKRdmpgn1nSWIHI3FTsGYsQjOa3YTxCi3M,12482
|
|
75
|
-
krons/utils/_lazy_init.py,sha256=bCx_W3dfzirB5KnAt6_jmbnwOk2xbU7-kgOhMQqzW70,1806
|
|
76
|
-
krons/utils/_to_list.py,sha256=LmGMwAhxP0RRr-pEYG01_nWVvb7ei95xn_ZlAJUquqc,6031
|
|
77
|
-
krons/utils/_to_num.py,sha256=NyyIL9Az1EaW6QFh9R7AeJdaUPoSRBNVBX9yj78wpok,3102
|
|
78
|
-
krons/utils/_utils.py,sha256=533D_1yTDURzn5QrnADT99_AEvK4P5g4FUYs3Ohkx6M,11089
|
|
79
|
-
krons/utils/concurrency/__init__.py,sha256=1HD-aY4Hevde0Hm0-VYa0eheT5OiwhlnDJtofIuV9wk,6754
|
|
80
|
-
krons/utils/concurrency/_async_call.py,sha256=T1YN7hh2vvG9hdheRlEVvXsGRU0p3v0GTisoMeLzx7g,10206
|
|
81
|
-
krons/utils/concurrency/_cancel.py,sha256=b9f6yT8gObS6Y3EWKoGzNfYxqM1ZrN_8ctfyIjT1m1U,3326
|
|
82
|
-
krons/utils/concurrency/_errors.py,sha256=tmszbwq7NPy3VTqJpvXxQ_2IVE024KkCqC27Bsoo4ZU,2597
|
|
83
|
-
krons/utils/concurrency/_patterns.py,sha256=OGCLd5ndMV7fZxKxTT6lPJTIgwu8euEBbhopIt6_Ijs,11534
|
|
84
|
-
krons/utils/concurrency/_primitives.py,sha256=D1Rl1hujXXPdL4Mw6eW5EN8utM3bh8vmmFtXmuvsDw0,9024
|
|
85
|
-
krons/utils/concurrency/_priority_queue.py,sha256=wGi6ESS6AIZ0QNRBQR5UwcSQI5GhKjATBC_aEw6c0aQ,4342
|
|
86
|
-
krons/utils/concurrency/_resource_tracker.py,sha256=hTn0PmxWbQ0uwTGB1YuPUKhtso2VyY7SVWtl4dkzZSU,3151
|
|
87
|
-
krons/utils/concurrency/_run_async.py,sha256=A_vuPi9-wWRr3oXiAMnv3l7MV2B76jkBXoVztX_Vcgo,1940
|
|
88
|
-
krons/utils/concurrency/_task.py,sha256=4ivkiUUbutheoYZ-G8-mTfHX4YgWguGIy1v5hSU871w,2528
|
|
89
|
-
krons/utils/concurrency/_utils.py,sha256=CyH_z4prYFeCFgwk4Pc3q0m5NRzDB2TP-G2oxdM_-C0,2136
|
|
90
|
-
krons/utils/fuzzy/__init__.py,sha256=0dZRhC7sgH0b3oiNFdnUpPq7Jgsb84sFXtCsxCFkdss,354
|
|
91
|
-
krons/utils/fuzzy/_extract_json.py,sha256=6Y-QEfXrTBdaNmlbMfVm6xJPBKI0RBbr_t0VYGE7nMo,2922
|
|
92
|
-
krons/utils/fuzzy/_fuzzy_json.py,sha256=hV6v9YkQpGxwOnhpLM6jkrG5fZKYluMTxgdqsk5sTew,9151
|
|
93
|
-
krons/utils/fuzzy/_fuzzy_match.py,sha256=rL_YuoAUVbnLxFCAZlXgPxeCmKjxH90r06mzuZ-jXk4,4855
|
|
94
|
-
krons/utils/fuzzy/_string_similarity.py,sha256=ZwAerTdXDen-6Q3Kg46ckXF_T69xFLYBEVdt8EZq95M,6141
|
|
95
|
-
krons/utils/fuzzy/_to_dict.py,sha256=ORQy-_6snt6TmVJZI-MHDoDO7jFYg-xlaxU_pBbfk7s,12911
|
|
96
|
-
krons/utils/sql/__init__.py,sha256=yNjm9Dr-ZjrZSD3Lext7fPR80qX5svGT2PnXqlb5qXs,264
|
|
97
|
-
krons/utils/sql/_sql_validation.py,sha256=smxNU3HjPhQuRK5ehG9Fl4DeljKK9tqUQIvRUopgvc8,4229
|
|
98
|
-
krons-0.1.1.dist-info/METADATA,sha256=88PmVejjLNnaSX-xRgqkSaP15gpLiladDaE6XvhbJiE,1997
|
|
99
|
-
krons-0.1.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
100
|
-
krons-0.1.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
101
|
-
krons-0.1.1.dist-info/RECORD,,
|
|
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
|