minix 0.2.2__tar.gz → 0.2.3__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.
- {minix-0.2.2 → minix-0.2.3}/PKG-INFO +4 -2
- {minix-0.2.2 → minix-0.2.3}/README.md +3 -1
- {minix-0.2.2 → minix-0.2.3}/minix/core/cli/commands/init_scaffold.py +47 -2
- {minix-0.2.2 → minix-0.2.3}/pyproject.toml +1 -1
- {minix-0.2.2 → minix-0.2.3}/minix/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/bootstrap/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/bootstrap/bootstrap.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/cli/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/cli/cli.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/cli/commands/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/cli/commands/init.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/cli/options.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/builders.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/env.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/global_settings.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/minix_settings.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/.dockerignore +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/.env.example +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/.gitignore +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/Dockerfile +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/config.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/docker-compose.yml +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/entries/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/entries/api.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/entries/beat.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/conf/project_template/entries/worker.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/connector.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/object_storage_connector/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/object_storage_connector/config.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/object_storage_connector/connector.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/qdrant_connector/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/qdrant_connector/connector.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/redis_connector/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/redis_connector/redis_connector.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/sql_connector/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/connectors/sql_connector/sql_connector.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/consumer/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/consumer/async_consumer.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/controller/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/controller/controller.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/entity/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/entity/entity.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/entity/qdrant_entity.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/entity/redis_entity.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/entity/sql_entity.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/install/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/install/installable.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/model/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/model/embedding_model.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/model/mlflow_model.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/model/model.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/model/model_registry.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/module/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/module/business_module/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/module/business_module/business_module.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/module/module.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/dependencies.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/entities/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/entities/api_key_entity.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/module.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/repositories/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/repositories/api_key_repository.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/services/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/auth/services/api_key_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/config.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/controllers/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/controllers/oidc_controller.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/dependencies.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/entities/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/entities/oidc_user_entity.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/module.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/repositories/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/repositories/oidc_user_repository.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/services/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/services/oidc_discovery_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/services/oidc_user_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/modules/oidc/session.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/object_storage/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/object_storage/config.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/object_storage/connector.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/registry/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/registry/registry.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/qdrant/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/qdrant/qdrant_repository.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/redis/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/redis/redis_repository.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/repository.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/sql/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/repository/sql/sql_repository.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/scheduler/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/scheduler/scheduler.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/scheduler/task/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/scheduler/task/task.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/scheduler/task/workflow_tasks.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/scheduler/workflow.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/base_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/helper_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/qdrant/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/qdrant/qdrant_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/redis/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/redis/redis_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/sql/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/service/sql/sql_service.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/utils/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/utils/mlflow/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/utils/mlflow/log_metric.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/utils/singleton/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/utils/singleton/singleton.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/utils/string/__init__.py +0 -0
- {minix-0.2.2 → minix-0.2.3}/minix/core/utils/string/to_snake_case.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: minix
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: A modular Python framework for backend, AI, and data projects
|
|
5
5
|
Author: AmirHossein Advari
|
|
6
6
|
Author-email: amiradvari@gmail.com
|
|
@@ -742,7 +742,7 @@ minix init APP_NAME [OPTIONS]
|
|
|
742
742
|
| `.env.example` | Documented env keys with copy instructions (commit this) |
|
|
743
743
|
| `.env` | Local overrides without the copy header (gitignored) |
|
|
744
744
|
| `.gitignore` | Python / IDE / dotenv ignores |
|
|
745
|
-
| `Dockerfile` | App image (`pip install minix`
|
|
745
|
+
| `Dockerfile` | App image (`pip install "minix~=X.Y.Z"` / extras from PyPI) |
|
|
746
746
|
| `docker-compose.yml` | MySQL, Redis, MinIO, API, Celery; optional Qdrant / ClickHouse / MLflow |
|
|
747
747
|
| `.dockerignore` | Build context excludes |
|
|
748
748
|
| `entries/` | `api.py`, `worker.py`, `beat.py` process entrypoints |
|
|
@@ -757,6 +757,8 @@ minix init APP_NAME [OPTIONS]
|
|
|
757
757
|
(e.g. `pip install "minix[vdb]"`), `minix init` adds matching `pip install`
|
|
758
758
|
in the Dockerfile and enables the related compose services and config blocks.
|
|
759
759
|
Override with `--extras vdb,clickhouse,ai` or use `--no-extras` for a minimal stack.
|
|
760
|
+
- **Version pin:** The Dockerfile uses a compatible release on the installed minor
|
|
761
|
+
(e.g. ``minix~=0.2.2`` → latest ``0.2.x`` ≥ ``0.2.2``, not ``0.3``).
|
|
760
762
|
|
|
761
763
|
```bash
|
|
762
764
|
minix init my_app
|
|
@@ -702,7 +702,7 @@ minix init APP_NAME [OPTIONS]
|
|
|
702
702
|
| `.env.example` | Documented env keys with copy instructions (commit this) |
|
|
703
703
|
| `.env` | Local overrides without the copy header (gitignored) |
|
|
704
704
|
| `.gitignore` | Python / IDE / dotenv ignores |
|
|
705
|
-
| `Dockerfile` | App image (`pip install minix`
|
|
705
|
+
| `Dockerfile` | App image (`pip install "minix~=X.Y.Z"` / extras from PyPI) |
|
|
706
706
|
| `docker-compose.yml` | MySQL, Redis, MinIO, API, Celery; optional Qdrant / ClickHouse / MLflow |
|
|
707
707
|
| `.dockerignore` | Build context excludes |
|
|
708
708
|
| `entries/` | `api.py`, `worker.py`, `beat.py` process entrypoints |
|
|
@@ -717,6 +717,8 @@ minix init APP_NAME [OPTIONS]
|
|
|
717
717
|
(e.g. `pip install "minix[vdb]"`), `minix init` adds matching `pip install`
|
|
718
718
|
in the Dockerfile and enables the related compose services and config blocks.
|
|
719
719
|
Override with `--extras vdb,clickhouse,ai` or use `--no-extras` for a minimal stack.
|
|
720
|
+
- **Version pin:** The Dockerfile uses a compatible release on the installed minor
|
|
721
|
+
(e.g. ``minix~=0.2.2`` → latest ``0.2.x`` ≥ ``0.2.2``, not ``0.3``).
|
|
720
722
|
|
|
721
723
|
```bash
|
|
722
724
|
minix init my_app
|
|
@@ -54,11 +54,56 @@ def resolve_minix_extras(
|
|
|
54
54
|
return detect_installed_minix_extras()
|
|
55
55
|
|
|
56
56
|
|
|
57
|
+
# First PyPI release that exports ``bootstrap_from_settings`` for the Docker template.
|
|
58
|
+
_MIN_DOCKER_MINIX = "0.2.2"
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _version_tuple(value: str) -> tuple[int, ...]:
|
|
62
|
+
parts: list[int] = []
|
|
63
|
+
for piece in value.split("."):
|
|
64
|
+
digits = "".join(ch for ch in piece if ch.isdigit())
|
|
65
|
+
if not digits:
|
|
66
|
+
break
|
|
67
|
+
parts.append(int(digits))
|
|
68
|
+
return tuple(parts) or (0,)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def _compatible_release_constraint(version: str) -> str:
|
|
72
|
+
"""``~=X.Y.Z`` → latest patch on the same minor (e.g. 0.2.2 → any 0.2.x ≥ 0.2.2)."""
|
|
73
|
+
parts = list(_version_tuple(version))
|
|
74
|
+
while len(parts) < 3:
|
|
75
|
+
parts.append(0)
|
|
76
|
+
major, minor, patch = parts[0], parts[1], parts[2]
|
|
77
|
+
return f"~={major}.{minor}.{patch}"
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _minix_version_constraint() -> str:
|
|
81
|
+
"""Pin Docker to the installed minor line, allowing newer patch releases."""
|
|
82
|
+
floor = _version_tuple(_MIN_DOCKER_MINIX)
|
|
83
|
+
try:
|
|
84
|
+
from importlib.metadata import version
|
|
85
|
+
|
|
86
|
+
installed = version("minix")
|
|
87
|
+
parts = list(_version_tuple(installed))
|
|
88
|
+
while len(parts) < 3:
|
|
89
|
+
parts.append(0)
|
|
90
|
+
if tuple(parts[:2]) == floor[:2] and parts[2] < floor[2]:
|
|
91
|
+
parts[2] = floor[2]
|
|
92
|
+
if tuple(parts) < floor:
|
|
93
|
+
return _compatible_release_constraint(_MIN_DOCKER_MINIX)
|
|
94
|
+
return _compatible_release_constraint(
|
|
95
|
+
f"{parts[0]}.{parts[1]}.{parts[2]}"
|
|
96
|
+
)
|
|
97
|
+
except Exception:
|
|
98
|
+
return _compatible_release_constraint(_MIN_DOCKER_MINIX)
|
|
99
|
+
|
|
100
|
+
|
|
57
101
|
def minix_pip_install_spec(extras: Iterable[str]) -> str:
|
|
58
102
|
chosen = [e for e in _EXTRA_ORDER if e in extras]
|
|
103
|
+
constraint = _minix_version_constraint()
|
|
59
104
|
if not chosen:
|
|
60
|
-
return "minix"
|
|
61
|
-
return f'minix[{",".join(chosen)}]'
|
|
105
|
+
return f"minix{constraint}"
|
|
106
|
+
return f'minix[{",".join(chosen)}]{constraint}'
|
|
62
107
|
|
|
63
108
|
|
|
64
109
|
def apply_feature_blocks(text: str, extras: set[str]) -> str:
|
|
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
|
|
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
|
|
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
|