codex-platform 0.2.0__tar.gz → 0.3.0__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.
- {codex_platform-0.2.0 → codex_platform-0.3.0}/.github/workflows/ci.yml +3 -3
- {codex_platform-0.2.0 → codex_platform-0.3.0}/CHANGELOG.md +6 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/PKG-INFO +10 -10
- {codex_platform-0.2.0 → codex_platform-0.3.0}/README.md +8 -8
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/index.md +8 -8
- {codex_platform-0.2.0 → codex_platform-0.3.0}/pyproject.toml +12 -1
- codex_platform-0.3.0/tools/dev/check.py +13 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/uv.lock +4 -4
- codex_platform-0.2.0/tools/dev/check.py +0 -35
- {codex_platform-0.2.0 → codex_platform-0.3.0}/.github/workflows/docs.yml +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/.github/workflows/publish.yml +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/.gitignore +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/.pre-commit-config.yaml +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/.python-version +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/changelog.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/index.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/channels.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/arq.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/base.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/direct.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/dto.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/index.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/orchestrator.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/registry.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/renderer.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/base.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/index.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/keys.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/hash.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_module.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_string.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/list_.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/pipeline.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/set_.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/string.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/zset.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/service.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/consumer.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/dispatcher.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/index.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/processor.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/producer.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/router.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/base.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/config.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/index.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/task_utils.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/types.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/notifications/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/notifications/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/redis_service/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/redis_service/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/streams/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/streams/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/workers/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/workers/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/notifications/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/notifications/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/redis_service/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/redis_service/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/streams/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/streams/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/workers/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/workers/data_flow.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/stylesheets/extra.css +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/mkdocs.yml +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/project_structure.txt +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/channels.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/smtp.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/arq.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/base.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/direct.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/dto.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/interfaces.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/orchestrator.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/registry.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/renderer.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/base.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/exceptions.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/keys.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/base_manager.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/site_settings.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/hash.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/json_module.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/json_string.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/list_.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/pipeline.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/set_.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/string.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/zset.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/service.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/consumer.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/dispatcher.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/processor.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/producer.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/router.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/base.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/config.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/task_utils.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/types.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/conftest.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/test_docs_build.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/test_redis_service.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/test_streams.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/conftest.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_base.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_config.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_public_api.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_task_utils.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_adapters.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_channels.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_dto.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_orchestrator.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_registry.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_renderer.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_smtp.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_base.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_hash.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_keys.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_list.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_manager.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_pipeline.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_service.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_set.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_string.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_zset.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_site_settings_manager.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_consumer.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_dispatcher.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_processor.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_producer.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_router.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/dev/README.md +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/dev/__init__.py +0 -0
- {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/dev/generate_project_tree.py +0 -0
|
@@ -30,7 +30,7 @@ jobs:
|
|
|
30
30
|
run: uv run pre-commit run --all-files
|
|
31
31
|
|
|
32
32
|
- name: Run pip-audit
|
|
33
|
-
run: uv run pip-audit
|
|
33
|
+
run: uv run pip-audit --skip-editable --ignore-vuln CVE-2026-4539
|
|
34
34
|
|
|
35
35
|
- name: Run mypy
|
|
36
36
|
run: uv run mypy src/
|
|
@@ -51,8 +51,8 @@ jobs:
|
|
|
51
51
|
with:
|
|
52
52
|
version: "0.10.7"
|
|
53
53
|
|
|
54
|
-
- name: Sync dev environment
|
|
55
|
-
run: uv sync --locked --extra dev
|
|
54
|
+
- name: Sync dev + docs environment
|
|
55
|
+
run: uv sync --locked --extra dev --extra docs
|
|
56
56
|
|
|
57
57
|
- name: Run unit tests
|
|
58
58
|
run: uv run pytest tests/ -m "unit" -v --tb=short
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
Grouped by `Added` · `Changed` · `Deprecated` · `Removed` · `Fixed`.
|
|
5
5
|
|
|
6
|
+
## [0.3.0] - 2026-04-05
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
- Raised the `codex-core` requirement to `>=0.3.0,<0.10.0` so the package tracks the new core baseline while remaining compatible through the `0.9.x` series.
|
|
10
|
+
- Updated the documented install examples to the `codex-platform 0.3.x` release line.
|
|
11
|
+
|
|
6
12
|
## [0.2.0] - 2026-03-29
|
|
7
13
|
|
|
8
14
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-platform
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Modular async infrastructure (Redis, Streams, ARQ, Notifications) built for Codex, designed for independent use.
|
|
5
5
|
Project-URL: Homepage, https://github.com/codexdlc/codex-platform
|
|
6
6
|
Project-URL: Documentation, https://codexdlc.github.io/codex-platform/
|
|
@@ -15,7 +15,7 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
17
|
Requires-Python: >=3.12
|
|
18
|
-
Requires-Dist: codex-core<0.
|
|
18
|
+
Requires-Dist: codex-core<0.10.0,>=0.3.0
|
|
19
19
|
Requires-Dist: pydantic<3.0,>=2.0
|
|
20
20
|
Provides-Extra: all
|
|
21
21
|
Requires-Dist: aiosmtplib>=3.0; extra == 'all'
|
|
@@ -68,27 +68,27 @@ Description-Content-Type: text/markdown
|
|
|
68
68
|
## Install
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
# codex-platform 0.
|
|
72
|
-
pip install "codex-platform>=0.
|
|
71
|
+
# codex-platform 0.3.x
|
|
72
|
+
pip install "codex-platform>=0.3.0,<0.4.0"
|
|
73
73
|
|
|
74
74
|
# With Redis support
|
|
75
|
-
pip install "codex-platform[redis]>=0.
|
|
75
|
+
pip install "codex-platform[redis]>=0.3.0,<0.4.0"
|
|
76
76
|
|
|
77
77
|
# With ARQ background workers
|
|
78
|
-
pip install "codex-platform[arq]>=0.
|
|
78
|
+
pip install "codex-platform[arq]>=0.3.0,<0.4.0"
|
|
79
79
|
|
|
80
80
|
# With async SMTP notifications
|
|
81
|
-
pip install "codex-platform[notifications]>=0.
|
|
81
|
+
pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
|
|
82
82
|
|
|
83
83
|
# Redis Streams
|
|
84
|
-
pip install "codex-platform[streams]>=0.
|
|
84
|
+
pip install "codex-platform[streams]>=0.3.0,<0.4.0"
|
|
85
85
|
|
|
86
86
|
# Everything
|
|
87
|
-
pip install "codex-platform[all]>=0.
|
|
87
|
+
pip install "codex-platform[all]>=0.3.0,<0.4.0"
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
Requires Python 3.12 or newer.
|
|
91
|
-
Installs `codex-core>=0.
|
|
91
|
+
Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
|
|
92
92
|
|
|
93
93
|
## Development
|
|
94
94
|
|
|
@@ -12,27 +12,27 @@
|
|
|
12
12
|
## Install
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
# codex-platform 0.
|
|
16
|
-
pip install "codex-platform>=0.
|
|
15
|
+
# codex-platform 0.3.x
|
|
16
|
+
pip install "codex-platform>=0.3.0,<0.4.0"
|
|
17
17
|
|
|
18
18
|
# With Redis support
|
|
19
|
-
pip install "codex-platform[redis]>=0.
|
|
19
|
+
pip install "codex-platform[redis]>=0.3.0,<0.4.0"
|
|
20
20
|
|
|
21
21
|
# With ARQ background workers
|
|
22
|
-
pip install "codex-platform[arq]>=0.
|
|
22
|
+
pip install "codex-platform[arq]>=0.3.0,<0.4.0"
|
|
23
23
|
|
|
24
24
|
# With async SMTP notifications
|
|
25
|
-
pip install "codex-platform[notifications]>=0.
|
|
25
|
+
pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
|
|
26
26
|
|
|
27
27
|
# Redis Streams
|
|
28
|
-
pip install "codex-platform[streams]>=0.
|
|
28
|
+
pip install "codex-platform[streams]>=0.3.0,<0.4.0"
|
|
29
29
|
|
|
30
30
|
# Everything
|
|
31
|
-
pip install "codex-platform[all]>=0.
|
|
31
|
+
pip install "codex-platform[all]>=0.3.0,<0.4.0"
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Requires Python 3.12 or newer.
|
|
35
|
-
Installs `codex-core>=0.
|
|
35
|
+
Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
|
|
36
36
|
|
|
37
37
|
## Development
|
|
38
38
|
|
|
@@ -9,27 +9,27 @@ Built to be dropped into any Python 3.12+ service as a set of composable, indepe
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
# codex-platform 0.
|
|
13
|
-
pip install "codex-platform>=0.
|
|
12
|
+
# codex-platform 0.3.x
|
|
13
|
+
pip install "codex-platform>=0.3.0,<0.4.0"
|
|
14
14
|
|
|
15
15
|
# With Redis support
|
|
16
|
-
pip install "codex-platform[redis]>=0.
|
|
16
|
+
pip install "codex-platform[redis]>=0.3.0,<0.4.0"
|
|
17
17
|
|
|
18
18
|
# With ARQ worker support
|
|
19
|
-
pip install "codex-platform[arq]>=0.
|
|
19
|
+
pip install "codex-platform[arq]>=0.3.0,<0.4.0"
|
|
20
20
|
|
|
21
21
|
# With async SMTP notifications
|
|
22
|
-
pip install "codex-platform[notifications]>=0.
|
|
22
|
+
pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
|
|
23
23
|
|
|
24
24
|
# Redis Streams
|
|
25
|
-
pip install "codex-platform[streams]>=0.
|
|
25
|
+
pip install "codex-platform[streams]>=0.3.0,<0.4.0"
|
|
26
26
|
|
|
27
27
|
# Everything
|
|
28
|
-
pip install "codex-platform[all]>=0.
|
|
28
|
+
pip install "codex-platform[all]>=0.3.0,<0.4.0"
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Requires Python 3.12 or newer.
|
|
32
|
-
Installs `codex-core>=0.
|
|
32
|
+
Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
|
|
33
33
|
|
|
34
34
|
## Quick Start
|
|
35
35
|
|
|
@@ -20,7 +20,7 @@ classifiers = [
|
|
|
20
20
|
]
|
|
21
21
|
dependencies = [
|
|
22
22
|
"pydantic>=2.0,<3.0",
|
|
23
|
-
"codex-core>=0.
|
|
23
|
+
"codex-core>=0.3.0,<0.10.0",
|
|
24
24
|
]
|
|
25
25
|
|
|
26
26
|
[project.urls]
|
|
@@ -132,3 +132,14 @@ exclude_lines = [
|
|
|
132
132
|
[tool.bandit]
|
|
133
133
|
exclude_dirs = ["tests"]
|
|
134
134
|
skips = ["B602", "B605", "B607", "B404"]
|
|
135
|
+
|
|
136
|
+
[tool.codex-check]
|
|
137
|
+
project-name = "codex-platform"
|
|
138
|
+
audit-flags = "--skip-editable --ignore-vuln CVE-2026-4539"
|
|
139
|
+
integration-requires = "Redis"
|
|
140
|
+
run-extra-checks = false
|
|
141
|
+
test-stages = ["unit", "integration"]
|
|
142
|
+
prompt-test-stages = ["integration"]
|
|
143
|
+
no-cov-test-stages = ["integration"]
|
|
144
|
+
test-paths = ["tests"]
|
|
145
|
+
types-paths = ["src"]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""Quality gate for codex-platform."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from codex_core.dev.check_runner import BaseCheckRunner
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CheckRunner(BaseCheckRunner):
|
|
9
|
+
"""Thin launcher; project policy lives in pyproject.toml."""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
if __name__ == "__main__":
|
|
13
|
+
CheckRunner(Path(__file__).parent.parent.parent).main()
|
|
@@ -212,15 +212,15 @@ wheels = [
|
|
|
212
212
|
|
|
213
213
|
[[package]]
|
|
214
214
|
name = "codex-core"
|
|
215
|
-
version = "0.
|
|
215
|
+
version = "0.3.0"
|
|
216
216
|
source = { registry = "https://pypi.org/simple" }
|
|
217
217
|
dependencies = [
|
|
218
218
|
{ name = "pydantic" },
|
|
219
219
|
{ name = "pydantic-settings" },
|
|
220
220
|
]
|
|
221
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
221
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8d/55/11335e1bfa46861b9e7a38678bf8d8438419c23affbe7a1d6210a986d963/codex_core-0.3.0.tar.gz", hash = "sha256:3dc573d1c3f8e1b88ceb563835bd4fec14c498884a76bca11daffbb3d9d78347", size = 125208, upload-time = "2026-04-04T21:32:34.837Z" }
|
|
222
222
|
wheels = [
|
|
223
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
223
|
+
{ url = "https://files.pythonhosted.org/packages/a7/67/7ab0dea9a79ff0085343468a473b084e3bbefe03b75ea67da6307eb3cc1e/codex_core-0.3.0-py3-none-any.whl", hash = "sha256:c1ee78a1f1629d5bdc79d511870fc65c14d29f3ab6287ecc62f31a199c216772", size = 33021, upload-time = "2026-04-04T21:32:33.426Z" },
|
|
224
224
|
]
|
|
225
225
|
|
|
226
226
|
[[package]]
|
|
@@ -284,7 +284,7 @@ requires-dist = [
|
|
|
284
284
|
{ name = "arq", marker = "extra == 'arq'", specifier = ">=0.25" },
|
|
285
285
|
{ name = "arq", marker = "extra == 'dev'", specifier = ">=0.25" },
|
|
286
286
|
{ name = "bandit", marker = "extra == 'dev'", specifier = ">=1.7" },
|
|
287
|
-
{ name = "codex-core", specifier = ">=0.
|
|
287
|
+
{ name = "codex-core", specifier = ">=0.3.0,<0.10.0" },
|
|
288
288
|
{ name = "detect-secrets", marker = "extra == 'dev'", specifier = ">=1.5" },
|
|
289
289
|
{ name = "fakeredis", extras = ["lua"], marker = "extra == 'dev'", specifier = ">=2.20" },
|
|
290
290
|
{ name = "jinja2", marker = "extra == 'all'", specifier = ">=3.1" },
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"""Quality gate for codex-platform."""
|
|
2
|
-
|
|
3
|
-
import sys
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
|
|
6
|
-
from codex_core.dev.check_runner import BaseCheckRunner
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class CheckRunner(BaseCheckRunner):
|
|
10
|
-
PROJECT_NAME = "codex-platform"
|
|
11
|
-
INTEGRATION_REQUIRES = "Redis"
|
|
12
|
-
RUN_LINT = True
|
|
13
|
-
RUN_TYPES = True
|
|
14
|
-
RUN_SECURITY = True
|
|
15
|
-
RUN_EXTRA_CHECKS = False
|
|
16
|
-
RUN_UNIT_TESTS = True
|
|
17
|
-
RUN_INTEGRATION_TESTS = True
|
|
18
|
-
# CVE-2026-4539: pygments — no fix available yet (latest version)
|
|
19
|
-
AUDIT_FLAGS = "--skip-editable --ignore-vuln CVE-2026-4539"
|
|
20
|
-
|
|
21
|
-
def run_tests(self, marker: str = "unit") -> bool:
|
|
22
|
-
self.print_step(f"Running {marker.capitalize()} Tests")
|
|
23
|
-
command = f'"{sys.executable}" -m pytest {self.tests_dir} -m {marker} -v --tb=short'
|
|
24
|
-
if marker == "integration":
|
|
25
|
-
command += " --no-cov"
|
|
26
|
-
success, _ = self.run_command(command)
|
|
27
|
-
if success:
|
|
28
|
-
self.print_success(f"{marker.capitalize()} tests passed.")
|
|
29
|
-
else:
|
|
30
|
-
self.print_error(f"{marker.capitalize()} tests failed.")
|
|
31
|
-
return success
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if __name__ == "__main__":
|
|
35
|
-
CheckRunner(Path(__file__).parent.parent.parent).main()
|
|
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
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_module.md
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_string.md
RENAMED
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/pipeline.md
RENAMED
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/string.md
RENAMED
|
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
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/notifications/data_flow.md
RENAMED
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/redis_service/data_flow.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/notifications/data_flow.md
RENAMED
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/redis_service/data_flow.md
RENAMED
|
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
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/__init__.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/smtp.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/__init__.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/arq.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/base.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/direct.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/interfaces.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/hash.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/list_.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/set_.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/string.py
RENAMED
|
File without changes
|
{codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/zset.py
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|