LiteBuild 0.3.2__tar.gz → 0.4.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.
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/build_engine.py +21 -9
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/lite_build_controller.py +4 -0
- {litebuild-0.3.2 → litebuild-0.4.1/LiteBuild.egg-info}/PKG-INFO +5 -13
- litebuild-0.4.1/LiteBuild.egg-info/requires.txt +5 -0
- {litebuild-0.3.2/LiteBuild.egg-info → litebuild-0.4.1}/PKG-INFO +5 -13
- {litebuild-0.3.2 → litebuild-0.4.1}/pyproject.toml +5 -14
- litebuild-0.3.2/LiteBuild.egg-info/requires.txt +0 -9
- {litebuild-0.3.2 → litebuild-0.4.1}/LICENSE +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/build_logger.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/build_workers.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/command_generator.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/config_loader.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/dependency_graph.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/lite_build_runner.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/litebuild.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/schema.py +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/SOURCES.txt +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/dependency_links.txt +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/entry_points.txt +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/top_level.txt +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/docs/readme.md +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/setup.cfg +0 -0
- {litebuild-0.3.2 → litebuild-0.4.1}/tests/test_build_engine.py +0 -0
|
@@ -81,17 +81,25 @@ class BuildEngine:
|
|
|
81
81
|
def execute(self, final_step_name: str, profile_name: str = "", logger: BuildLogger = None):
|
|
82
82
|
"""
|
|
83
83
|
Plans and executes the build for a specific workflow entry step.
|
|
84
|
-
|
|
85
|
-
Args:
|
|
86
|
-
final_step_name: The required step of the workflow DAG to execute.
|
|
87
|
-
profile_name: An optional parameter context .
|
|
88
|
-
logger: The logger instance to use for output.
|
|
89
84
|
"""
|
|
90
85
|
if logger is None:
|
|
91
86
|
logger = get_logger()
|
|
92
87
|
setup_logger(logger)
|
|
93
88
|
|
|
94
|
-
|
|
89
|
+
# --- Extract Context info ---
|
|
90
|
+
general_cfg = self.config.get("GENERAL", {})
|
|
91
|
+
profile_cfg = self.config.get("PROFILES", {}).get(profile_name, {})
|
|
92
|
+
|
|
93
|
+
# Look in General (CLI vars usually land here) or Profile
|
|
94
|
+
segment = general_cfg.get("SEGMENT") or profile_cfg.get("SEGMENT") or "Unknown"
|
|
95
|
+
category = general_cfg.get("CATEGORY") or profile_cfg.get("CATEGORY") or "Unknown"
|
|
96
|
+
|
|
97
|
+
context_str = f"Segment: {segment}, Category: {category}"
|
|
98
|
+
if profile_name:
|
|
99
|
+
context_str += f" (Profile: {profile_name})"
|
|
100
|
+
|
|
101
|
+
logger.log(f"🔵 Executing build for step {final_step_name}")
|
|
102
|
+
logger.log(f"ℹ️ {context_str}\n")
|
|
95
103
|
|
|
96
104
|
try:
|
|
97
105
|
state_manager = BuildStateManager(self.state_file)
|
|
@@ -107,7 +115,11 @@ class BuildEngine:
|
|
|
107
115
|
if success:
|
|
108
116
|
logger.log(f"\n✅ Build finished successfully.")
|
|
109
117
|
else:
|
|
110
|
-
logger.log(f"
|
|
118
|
+
logger.log(f"🔴Build failed for {final_step_name}")
|
|
119
|
+
|
|
120
|
+
def has_profile(self, profile_name: str) -> bool:
|
|
121
|
+
"""Checks if a specific profile key exists in the YAML config."""
|
|
122
|
+
return profile_name in self.config.get('PROFILES', {})
|
|
111
123
|
|
|
112
124
|
def describe(self, profile_name: str) -> str:
|
|
113
125
|
"""Generates a Markdown description of the workflow for a given profile."""
|
|
@@ -331,7 +343,7 @@ class BuildExecutor:
|
|
|
331
343
|
}
|
|
332
344
|
elif status == 'FAILED':
|
|
333
345
|
halt_build = True
|
|
334
|
-
logger.log(f"
|
|
346
|
+
logger.log(f"🔺 Build failed for Step '{step_name}'")
|
|
335
347
|
if halt_build:
|
|
336
348
|
self.state_manager.save_state(self.build_state)
|
|
337
349
|
return False
|
|
@@ -366,7 +378,7 @@ class BuildExecutor:
|
|
|
366
378
|
}
|
|
367
379
|
return 'EXECUTED', result_data
|
|
368
380
|
except Exception as e:
|
|
369
|
-
logger.log(f"
|
|
381
|
+
logger.log(f"🔺 Step '{step_name}' failed: {e}")
|
|
370
382
|
result_data = {'step_name': step_name}
|
|
371
383
|
return 'FAILED', result_data
|
|
372
384
|
|
|
@@ -71,6 +71,10 @@ class LiteBuildController(QObject):
|
|
|
71
71
|
|
|
72
72
|
self._thread.start()
|
|
73
73
|
|
|
74
|
+
def has_profile(self, profile_name: str) -> bool:
|
|
75
|
+
"""Checks if a specific profile key exists in the YAML config."""
|
|
76
|
+
engine = BuildEngine.from_file(self.config_name, cli_vars=None)
|
|
77
|
+
return engine.has_profile(profile_name=profile_name)
|
|
74
78
|
|
|
75
79
|
def describe_workflow(self, profile_name: str, cli_vars: Dict) -> Optional[str]:
|
|
76
80
|
if not os.path.exists(self.config_name):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: LiteBuild
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Lightweight build engine
|
|
5
5
|
Author: corb
|
|
6
6
|
License: Copyright 2025 corb555
|
|
@@ -13,24 +13,16 @@ License: Copyright 2025 corb555
|
|
|
13
13
|
Project-URL: Repository, https://github.com/corb555/LiteBuild
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
20
16
|
Classifier: Operating System :: POSIX :: Linux
|
|
21
17
|
Classifier: Operating System :: MacOS
|
|
22
18
|
Requires-Python: >=3.9
|
|
23
19
|
Description-Content-Type: text/markdown
|
|
24
20
|
License-File: LICENSE
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
21
|
+
Requires-Dist: Cerberus>=1.3.7
|
|
22
|
+
Requires-Dist: networkx>=3.5
|
|
23
|
+
Requires-Dist: filelock>=3.20.0
|
|
28
24
|
Requires-Dist: pandas>=2.2.3
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist: flashtext>=2.7
|
|
31
|
-
Requires-Dist: YMLEditor>=0.5.0
|
|
32
|
-
Requires-Dist: optuna>=4.5.0
|
|
33
|
-
Requires-Dist: shap>=0.47.2
|
|
25
|
+
Requires-Dist: YMLEditor>=1.7.1
|
|
34
26
|
Dynamic: license-file
|
|
35
27
|
|
|
36
28
|
# **`LiteBuild`**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: LiteBuild
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Lightweight build engine
|
|
5
5
|
Author: corb
|
|
6
6
|
License: Copyright 2025 corb555
|
|
@@ -13,24 +13,16 @@ License: Copyright 2025 corb555
|
|
|
13
13
|
Project-URL: Repository, https://github.com/corb555/LiteBuild
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
20
16
|
Classifier: Operating System :: POSIX :: Linux
|
|
21
17
|
Classifier: Operating System :: MacOS
|
|
22
18
|
Requires-Python: >=3.9
|
|
23
19
|
Description-Content-Type: text/markdown
|
|
24
20
|
License-File: LICENSE
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
21
|
+
Requires-Dist: Cerberus>=1.3.7
|
|
22
|
+
Requires-Dist: networkx>=3.5
|
|
23
|
+
Requires-Dist: filelock>=3.20.0
|
|
28
24
|
Requires-Dist: pandas>=2.2.3
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist: flashtext>=2.7
|
|
31
|
-
Requires-Dist: YMLEditor>=0.5.0
|
|
32
|
-
Requires-Dist: optuna>=4.5.0
|
|
33
|
-
Requires-Dist: shap>=0.47.2
|
|
25
|
+
Requires-Dist: YMLEditor>=1.7.1
|
|
34
26
|
Dynamic: license-file
|
|
35
27
|
|
|
36
28
|
# **`LiteBuild`**
|
|
@@ -4,31 +4,23 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "LiteBuild"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.4.1"
|
|
8
8
|
description = "Lightweight build engine"
|
|
9
9
|
authors = [{ name = "corb" }]
|
|
10
10
|
readme = { file = "docs/readme.md", content-type = "text/markdown" }
|
|
11
11
|
license = { file = "LICENSE" }
|
|
12
12
|
requires-python = ">=3.9"
|
|
13
13
|
dependencies = [
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
14
|
+
"Cerberus>=1.3.7",
|
|
15
|
+
"networkx>=3.5",
|
|
16
|
+
"filelock>=3.20.0",
|
|
17
17
|
"pandas>=2.2.3",
|
|
18
|
-
"
|
|
19
|
-
"flashtext>=2.7",
|
|
20
|
-
"YMLEditor>=0.5.0",
|
|
21
|
-
"optuna>=4.5.0",
|
|
22
|
-
"shap>=0.47.2",
|
|
18
|
+
"YMLEditor>=1.7.1",
|
|
23
19
|
]
|
|
24
20
|
|
|
25
21
|
classifiers = [
|
|
26
22
|
"Intended Audience :: Developers",
|
|
27
23
|
"Topic :: Scientific/Engineering :: GIS",
|
|
28
|
-
"Programming Language :: Python :: 3.8",
|
|
29
|
-
"Programming Language :: Python :: 3.9",
|
|
30
|
-
"Programming Language :: Python :: 3.10",
|
|
31
|
-
"Programming Language :: Python :: 3.11",
|
|
32
24
|
"Operating System :: POSIX :: Linux",
|
|
33
25
|
"Operating System :: MacOS",
|
|
34
26
|
]
|
|
@@ -42,4 +34,3 @@ Repository = "https://github.com/corb555/LiteBuild"
|
|
|
42
34
|
[tool.setuptools.packages.find]
|
|
43
35
|
where = ["."]
|
|
44
36
|
exclude = ["tests*"]
|
|
45
|
-
|
|
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
|