splent-framework 1.2.7__tar.gz → 1.2.8__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.
- {splent_framework-1.2.7/src/splent_framework.egg-info → splent_framework-1.2.8}/PKG-INFO +1 -1
- {splent_framework-1.2.7 → splent_framework-1.2.8}/pyproject.toml +1 -1
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/feature_loader.py +17 -10
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/namespace_manager.py +19 -11
- {splent_framework-1.2.7 → splent_framework-1.2.8/src/splent_framework.egg-info}/PKG-INFO +1 -1
- {splent_framework-1.2.7 → splent_framework-1.2.8}/LICENSE +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/README.md +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/setup.cfg +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/_init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/blueprints/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/blueprints/base_blueprint.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/bootstraps/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/bootstraps/locustfile_bootstrap.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/configuration/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/configuration/configuration.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/configuration/default_config.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/context/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/context/context_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/db.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/decorators/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/decorators/decorators.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/environment/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/environment/host.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/fixtures/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/fixtures/fixtures.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/helpers/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/helpers/test_helpers_auth.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/helpers/test_helpers_db.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/hooks/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/hooks/template_hooks.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/locust/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/locust/common.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/config_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/db_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/error_handler_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/feature_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/feature_order.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/jinja_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/logging_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/migration_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/session_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/task_queue_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/migrations/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/migrations/feature_env.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/namespaces/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/repositories/BaseRepository.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/repositories/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/resources/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/resources/generic_resource.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/seeders/BaseSeeder.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/seeders/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/selenium/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/selenium/common.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/serialisers/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/serialisers/serializer.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/services/BaseService.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/services/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/utils/__init__.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/utils/app_loader.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/utils/feature_utils.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/utils/path_utils.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/utils/pyproject_reader.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework.egg-info/SOURCES.txt +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework.egg-info/dependency_links.txt +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework.egg-info/requires.txt +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework.egg-info/top_level.txt +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_base_blueprint_security.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_base_repository.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_config_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_config_manager_return.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_context_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_default_config.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_error_handler_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_feature_manager_parse.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_feature_order.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_feature_utils.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_generic_resource.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_migration_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_namespace_manager.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_pyproject_reader.py +0 -0
- {splent_framework-1.2.7 → splent_framework-1.2.8}/tests/test_pyproject_reader_env.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: splent_framework
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.8
|
|
4
4
|
Summary: SPLENT-FRAMEWORK is a set of libraries for agile product development within SPLENT.
|
|
5
5
|
Author-email: DiversoLab <diversolab@us.es>
|
|
6
6
|
Project-URL: Homepage, https://github.com/diverso-lab/splent_framework
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "splent_framework"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.8"
|
|
8
8
|
description = "SPLENT-FRAMEWORK is a set of libraries for agile product development within SPLENT."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/feature_loader.py
RENAMED
|
@@ -356,17 +356,24 @@ class FeatureLoader:
|
|
|
356
356
|
def load(self, ref: FeatureRef) -> None:
|
|
357
357
|
"""Fully load and integrate one feature.
|
|
358
358
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
2. Validate the expected internal structure
|
|
362
|
-
3. Add src/ to sys.path
|
|
363
|
-
4. Import the root package and conventional submodules
|
|
364
|
-
5. Run Flask integration hooks via FeatureIntegrator
|
|
365
|
-
"""
|
|
366
|
-
feature_dir = self._resolver.resolve(self._features_dir, ref)
|
|
367
|
-
src_root, _, _ = self._validator.validate(feature_dir, ref)
|
|
359
|
+
In development, features live on disk (symlinks → cache or workspace
|
|
360
|
+
root) so we resolve, validate, and add src/ to sys.path.
|
|
368
361
|
|
|
369
|
-
|
|
362
|
+
In production, features are pip-installed from PyPI — there are no
|
|
363
|
+
symlinks. When the resolver cannot find a directory we fall back to
|
|
364
|
+
a direct import, which works because pip already placed the package
|
|
365
|
+
in site-packages.
|
|
366
|
+
"""
|
|
367
|
+
try:
|
|
368
|
+
feature_dir = self._resolver.resolve(self._features_dir, ref)
|
|
369
|
+
src_root, _, _ = self._validator.validate(feature_dir, ref)
|
|
370
|
+
self._importer.add_to_syspath(src_root)
|
|
371
|
+
except FeatureError:
|
|
372
|
+
# No local directory found — the feature must be pip-installed.
|
|
373
|
+
logger.debug(
|
|
374
|
+
"No local directory for %s — assuming pip-installed package.",
|
|
375
|
+
ref.import_name(),
|
|
376
|
+
)
|
|
370
377
|
|
|
371
378
|
import_name = ref.import_name()
|
|
372
379
|
module = self._importer.import_package(import_name)
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/namespace_manager.py
RENAMED
|
@@ -14,23 +14,31 @@ logger = logging.getLogger(__name__)
|
|
|
14
14
|
class NamespaceManager:
|
|
15
15
|
@staticmethod
|
|
16
16
|
def init_app(app=None):
|
|
17
|
-
"""Register namespace packages for all organizations
|
|
18
|
-
|
|
17
|
+
"""Register namespace packages for all organizations.
|
|
18
|
+
|
|
19
|
+
In development: scans .splent_cache/features and workspace root.
|
|
20
|
+
In production: features are pip-installed, so we just ensure
|
|
21
|
+
the namespace packages are importable.
|
|
22
|
+
"""
|
|
19
23
|
working_dir = PathUtils.get_working_dir()
|
|
20
24
|
base_cache_dir = os.path.join(working_dir, ".splent_cache", "features")
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
orgs: list[str] = []
|
|
27
|
+
|
|
28
|
+
if os.path.exists(base_cache_dir):
|
|
29
|
+
# Development: resolve from cache + workspace root
|
|
30
|
+
orgs = NamespaceManager._detect_orgs(base_cache_dir)
|
|
31
|
+
if orgs:
|
|
32
|
+
NamespaceManager._ensure_init_files(orgs, base_cache_dir)
|
|
33
|
+
NamespaceManager._add_to_syspath(base_cache_dir)
|
|
34
|
+
NamespaceManager._add_workspace_root_features(working_dir)
|
|
25
35
|
|
|
26
|
-
|
|
36
|
+
# Always try to import known namespace packages.
|
|
37
|
+
# In production, pip-installed features make splent_io available
|
|
38
|
+
# without any cache or workspace root directories.
|
|
27
39
|
if not orgs:
|
|
28
|
-
|
|
29
|
-
return
|
|
40
|
+
orgs = ["splent_io"]
|
|
30
41
|
|
|
31
|
-
NamespaceManager._ensure_init_files(orgs, base_cache_dir)
|
|
32
|
-
NamespaceManager._add_to_syspath(base_cache_dir)
|
|
33
|
-
NamespaceManager._add_workspace_root_features(working_dir)
|
|
34
42
|
NamespaceManager._import_namespaces(orgs)
|
|
35
43
|
|
|
36
44
|
# ------------------------------------------------------------------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: splent_framework
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.8
|
|
4
4
|
Summary: SPLENT-FRAMEWORK is a set of libraries for agile product development within SPLENT.
|
|
5
5
|
Author-email: DiversoLab <diversolab@us.es>
|
|
6
6
|
Project-URL: Homepage, https://github.com/diverso-lab/splent_framework
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/blueprints/__init__.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/blueprints/base_blueprint.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/bootstraps/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/configuration/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/context/context_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/decorators/__init__.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/decorators/decorators.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/environment/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/helpers/test_helpers_auth.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/helpers/test_helpers_db.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/hooks/template_hooks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/config_manager.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/db_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/feature_manager.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/feature_order.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/jinja_manager.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/logging_manager.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/migration_manager.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/managers/session_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/migrations/__init__.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/migrations/feature_env.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/namespaces/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/repositories/__init__.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/resources/__init__.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/resources/generic_resource.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/seeders/BaseSeeder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/serialisers/__init__.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/serialisers/serializer.py
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/services/BaseService.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/utils/feature_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework/utils/pyproject_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework.egg-info/requires.txt
RENAMED
|
File without changes
|
{splent_framework-1.2.7 → splent_framework-1.2.8}/src/splent_framework.egg-info/top_level.txt
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
|