effecton 0.3.0__tar.gz → 0.3.1__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.
- {effecton-0.3.0 → effecton-0.3.1}/.gitignore +5 -0
- {effecton-0.3.0 → effecton-0.3.1}/CHANGELOG.md +7 -0
- effecton-0.3.1/PKG-INFO +43 -0
- effecton-0.3.1/README.md +25 -0
- {effecton-0.3.0 → effecton-0.3.1}/pyproject.toml +1 -1
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/__init__.py +4 -0
- effecton-0.3.1/src/effecton/std/cli.py +658 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/process.py +18 -6
- effecton-0.3.1/src/effecton/std/schema.py +816 -0
- effecton-0.3.0/PKG-INFO +0 -714
- effecton-0.3.0/README.md +0 -696
- {effecton-0.3.0 → effecton-0.3.1}/LICENSE +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/conftest.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/attempt.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/catch.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/effect.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/exit.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/gen.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/implicit_requirement.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/provide.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/py.typed +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/pytest_plugin.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/run_async.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/run_main.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/run_sync.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/__init__.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/clock.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/duration.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/fiber.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/file_system.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/http_client.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/logger.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/path.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/pretty_logger.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/race.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/random.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/retry.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/schedule.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/scope.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/timeout.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/std/tracer.py +0 -0
- {effecton-0.3.0 → effecton-0.3.1}/src/effecton/suspend.py +0 -0
|
@@ -19,3 +19,8 @@ docs/.vocs
|
|
|
19
19
|
docs/src/pages.gen.ts
|
|
20
20
|
# Generated by `uv run api-reference` (docs predev/prebuild)
|
|
21
21
|
docs/src/pages/api.md
|
|
22
|
+
|
|
23
|
+
# Agent working artifacts: implementation plans and SDD ledgers stay local.
|
|
24
|
+
# Design specs are committed under docs/specs instead (see AGENTS.md).
|
|
25
|
+
docs/superpowers/
|
|
26
|
+
.superpowers/
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# effecton
|
|
2
2
|
|
|
3
|
+
## 0.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Add E.Schema: two-way schemas with Struct classes, combinators, guarded transforms (`to=`, `S.instance_of`) and `Check` refinements applied with `schema.check(...)`, whose decode and encode fail with a ParseError listing every issue ([#32](https://github.com/krzkaczor/effecton/pull/32))
|
|
8
|
+
- Add E.Cli: annotated Args classes decoded through E.Schema, nested commands, --help, --version and a UsageError carrying the reason; add E.Process.argv() ([#34](https://github.com/krzkaczor/effecton/pull/34))
|
|
9
|
+
|
|
3
10
|
## 0.3.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
effecton-0.3.1/PKG-INFO
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: effecton
|
|
3
|
+
Version: 0.3.1
|
|
4
|
+
Summary: A typed effect system for Python, inspired by Effect-TS
|
|
5
|
+
Project-URL: Repository, https://github.com/krzkaczor/effecton
|
|
6
|
+
Author-email: Krzysztof Kaczor <chris@kaczor.io>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Keywords: dependency-injection,effect-system,effect-ts,functional,typed
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
12
|
+
Classifier: Typing :: Typed
|
|
13
|
+
Requires-Python: >=3.14
|
|
14
|
+
Requires-Dist: aiofiles>=25.1
|
|
15
|
+
Requires-Dist: httpx2>=2.12
|
|
16
|
+
Requires-Dist: typing-extensions>=4.16.0
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="https://effecton.dev">
|
|
21
|
+
<picture>
|
|
22
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/krzkaczor/effecton/main/docs/public/logo-wordmark-white.svg">
|
|
23
|
+
<img alt="effecton" src="https://raw.githubusercontent.com/krzkaczor/effecton/main/docs/public/logo-wordmark.svg" width="320">
|
|
24
|
+
</picture>
|
|
25
|
+
</a>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<p align="center">A typed effect system for Python, inspired by <a href="https://effect.website/">Effect-TS</a>.</p>
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<a href="https://pypi.org/project/effecton/"><img alt="PyPI" src="https://img.shields.io/pypi/v/effecton?logo=pypi&logoColor=white"></a>
|
|
32
|
+
<a href="https://discord.gg/fNhY7AxMyh"><img alt="Discord" src="https://img.shields.io/badge/Discord-join%20chat-5865F2?logo=discord&logoColor=white"></a>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
<p align="center">
|
|
36
|
+
<a href="https://effecton.dev/introduction">Documentation</a> ·
|
|
37
|
+
<a href="https://effecton.dev/api">API Reference</a> ·
|
|
38
|
+
<a href="https://github.com/krzkaczor/effecton/blob/main/CONTRIBUTING.md">Contributing</a>
|
|
39
|
+
</p>
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
uv add effecton
|
|
43
|
+
```
|
effecton-0.3.1/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://effecton.dev">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/krzkaczor/effecton/main/docs/public/logo-wordmark-white.svg">
|
|
5
|
+
<img alt="effecton" src="https://raw.githubusercontent.com/krzkaczor/effecton/main/docs/public/logo-wordmark.svg" width="320">
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">A typed effect system for Python, inspired by <a href="https://effect.website/">Effect-TS</a>.</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://pypi.org/project/effecton/"><img alt="PyPI" src="https://img.shields.io/pypi/v/effecton?logo=pypi&logoColor=white"></a>
|
|
14
|
+
<a href="https://discord.gg/fNhY7AxMyh"><img alt="Discord" src="https://img.shields.io/badge/Discord-join%20chat-5865F2?logo=discord&logoColor=white"></a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="https://effecton.dev/introduction">Documentation</a> ·
|
|
19
|
+
<a href="https://effecton.dev/api">API Reference</a> ·
|
|
20
|
+
<a href="https://github.com/krzkaczor/effecton/blob/main/CONTRIBUTING.md">Contributing</a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
uv add effecton
|
|
25
|
+
```
|
|
@@ -28,11 +28,13 @@ from effecton.run_sync import (
|
|
|
28
28
|
run_sync,
|
|
29
29
|
run_sync_exit,
|
|
30
30
|
)
|
|
31
|
+
from effecton.std import cli as Cli
|
|
31
32
|
from effecton.std import clock as Clock
|
|
32
33
|
from effecton.std import file_system as FileSystem
|
|
33
34
|
from effecton.std import http_client as HttpClient
|
|
34
35
|
from effecton.std import process as Process
|
|
35
36
|
from effecton.std import random as Random
|
|
37
|
+
from effecton.std import schema as Schema
|
|
36
38
|
from effecton.std import tracer as Tracer
|
|
37
39
|
from effecton.std.clock import _now as now
|
|
38
40
|
from effecton.std.clock import _sleep as sleep
|
|
@@ -70,6 +72,7 @@ from effecton.suspend import suspend
|
|
|
70
72
|
__all__ = [
|
|
71
73
|
"AsyncEffectInSyncRun",
|
|
72
74
|
"Cause",
|
|
75
|
+
"Cli",
|
|
73
76
|
"Clock",
|
|
74
77
|
"CurrentLogAnnotations",
|
|
75
78
|
"CurrentLogLevel",
|
|
@@ -96,6 +99,7 @@ __all__ = [
|
|
|
96
99
|
"Process",
|
|
97
100
|
"Random",
|
|
98
101
|
"Schedule",
|
|
102
|
+
"Schema",
|
|
99
103
|
"Scope",
|
|
100
104
|
"Severity",
|
|
101
105
|
"Succeeded",
|