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.
Files changed (23) hide show
  1. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/build_engine.py +21 -9
  2. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/lite_build_controller.py +4 -0
  3. {litebuild-0.3.2 → litebuild-0.4.1/LiteBuild.egg-info}/PKG-INFO +5 -13
  4. litebuild-0.4.1/LiteBuild.egg-info/requires.txt +5 -0
  5. {litebuild-0.3.2/LiteBuild.egg-info → litebuild-0.4.1}/PKG-INFO +5 -13
  6. {litebuild-0.3.2 → litebuild-0.4.1}/pyproject.toml +5 -14
  7. litebuild-0.3.2/LiteBuild.egg-info/requires.txt +0 -9
  8. {litebuild-0.3.2 → litebuild-0.4.1}/LICENSE +0 -0
  9. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/build_logger.py +0 -0
  10. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/build_workers.py +0 -0
  11. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/command_generator.py +0 -0
  12. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/config_loader.py +0 -0
  13. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/dependency_graph.py +0 -0
  14. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/lite_build_runner.py +0 -0
  15. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/litebuild.py +0 -0
  16. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild/schema.py +0 -0
  17. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/SOURCES.txt +0 -0
  18. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/dependency_links.txt +0 -0
  19. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/entry_points.txt +0 -0
  20. {litebuild-0.3.2 → litebuild-0.4.1}/LiteBuild.egg-info/top_level.txt +0 -0
  21. {litebuild-0.3.2 → litebuild-0.4.1}/docs/readme.md +0 -0
  22. {litebuild-0.3.2 → litebuild-0.4.1}/setup.cfg +0 -0
  23. {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
- logger.log(f"🔵 Executing build for step {final_step_name} using: '{profile_name}'")
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"❌ Build failed for {final_step_name} using: '{profile_name}'")
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"❌ Build failed for Step '{step_name}'")
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"❌ Step '{step_name}' failed: {e}")
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.2
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: joblib>=1.5
26
- Requires-Dist: matplotlib>=3.10
27
- Requires-Dist: numpy>=2.2.6
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: scikit-learn>=1.6.1
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`**
@@ -0,0 +1,5 @@
1
+ Cerberus>=1.3.7
2
+ networkx>=3.5
3
+ filelock>=3.20.0
4
+ pandas>=2.2.3
5
+ YMLEditor>=1.7.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: LiteBuild
3
- Version: 0.3.2
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: joblib>=1.5
26
- Requires-Dist: matplotlib>=3.10
27
- Requires-Dist: numpy>=2.2.6
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: scikit-learn>=1.6.1
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.3.2"
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
- "joblib>=1.5",
15
- "matplotlib>=3.10",
16
- "numpy>=2.2.6",
14
+ "Cerberus>=1.3.7",
15
+ "networkx>=3.5",
16
+ "filelock>=3.20.0",
17
17
  "pandas>=2.2.3",
18
- "scikit-learn>=1.6.1",
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
-
@@ -1,9 +0,0 @@
1
- joblib>=1.5
2
- matplotlib>=3.10
3
- numpy>=2.2.6
4
- pandas>=2.2.3
5
- scikit-learn>=1.6.1
6
- flashtext>=2.7
7
- YMLEditor>=0.5.0
8
- optuna>=4.5.0
9
- shap>=0.47.2
File without changes
File without changes
File without changes
File without changes