haraka 0.2.27__tar.gz → 0.2.29__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 (39) hide show
  1. {haraka-0.2.27 → haraka-0.2.29}/PKG-INFO +1 -1
  2. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/config/config.py +1 -0
  3. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/service/fileOps/purge.py +18 -16
  4. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/logging/log_util.py +2 -1
  5. {haraka-0.2.27 → haraka-0.2.29}/haraka.egg-info/PKG-INFO +1 -1
  6. {haraka-0.2.27 → haraka-0.2.29}/pyproject.toml +1 -1
  7. {haraka-0.2.27 → haraka-0.2.29}/MANIFEST.in +0 -0
  8. {haraka-0.2.27 → haraka-0.2.29}/haraka/__init__.py +0 -0
  9. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/__init__.py +0 -0
  10. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/ascii/__init__.py +0 -0
  11. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/ascii/assets.py +0 -0
  12. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/ascii/frame/__init__.py +0 -0
  13. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/ascii/frame/border.py +0 -0
  14. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/ascii/frame/framer.py +0 -0
  15. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/ascii/frame/width_utils.py +0 -0
  16. {haraka-0.2.27 → haraka-0.2.29}/haraka/art/create.py +0 -0
  17. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/__init__.py +0 -0
  18. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/config/__init__.py +0 -0
  19. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/resources/__init__.py +0 -0
  20. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/resources/assets.py +0 -0
  21. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/runner.py +0 -0
  22. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/service/__init__.py +0 -0
  23. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/service/command.py +0 -0
  24. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/service/fileOps/__init__.py +0 -0
  25. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/service/fileOps/files.py +0 -0
  26. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/service/gitOps/__init__.py +0 -0
  27. {haraka-0.2.27 → haraka-0.2.29}/haraka/post_gen/service/gitOps/gitops.py +0 -0
  28. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/__init__.py +0 -0
  29. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/common/__init__.py +0 -0
  30. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/common/utils.py +0 -0
  31. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/logging/__init__.py +0 -0
  32. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/manifests/go-grpc-gateway-buf.yml +0 -0
  33. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/manifests/go-grpc-protoc.yml +0 -0
  34. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/manifests/java-springboot.yml +0 -0
  35. {haraka-0.2.27 → haraka-0.2.29}/haraka/utils/manifests/python-fastapi.yml +0 -0
  36. {haraka-0.2.27 → haraka-0.2.29}/haraka.egg-info/SOURCES.txt +0 -0
  37. {haraka-0.2.27 → haraka-0.2.29}/haraka.egg-info/dependency_links.txt +0 -0
  38. {haraka-0.2.27 → haraka-0.2.29}/haraka.egg-info/top_level.txt +0 -0
  39. {haraka-0.2.27 → haraka-0.2.29}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: haraka
3
- Version: 0.2.27
3
+ Version: 0.2.29
4
4
  Summary: Reusable post-generation helper for Cookiecutter micro-service templates
5
5
  Author-email: Will Burks <will@example.com>
6
6
  License: MIT
@@ -15,6 +15,7 @@ class PostGenConfig:
15
15
  project_dir: Path
16
16
  create_repo: bool
17
17
  verbose: bool = False
18
+ evm: bool = False # Extreme Verbosity Mode - For in depth debugging
18
19
 
19
20
 
20
21
  def load_manifest(variant: str) -> list[str]:
@@ -58,7 +58,9 @@ class ResourcePurger:
58
58
  self._log.info(f"Starting purge for variant: {variant}")
59
59
  self._log.debug(f"Loaded variant for purge: {variant}")
60
60
 
61
- keep_patterns = config.load_manifest(variant)
61
+ raw_patterns = config.load_manifest(variant)
62
+ keep_patterns = [p.rstrip("/") for p in raw_patterns]
63
+
62
64
  self._log.debug(f"Loaded manifest for variant '{variant}': {keep_patterns}")
63
65
 
64
66
  spec = config.build_spec(keep_patterns)
@@ -83,35 +85,35 @@ class ResourcePurger:
83
85
  """
84
86
 
85
87
  # Dictionaries to separate matches and non-matches for logging
86
- matches = []
87
- non_matches = []
88
88
 
89
- # Walk the project tree to inspect all paths
89
+ # 1) Dump every path under root or state what was found
90
90
  all_paths = list(root.rglob("*"))
91
- self._log.debug(f"📋 All paths under {root} (total {len(all_paths)}):")
92
- for p in all_paths:
93
- # log relative paths so they match what spec.match_file() sees
94
- rel = p.relative_to(root)
95
- print(f"\"{rel}\", ", end="")
96
-
97
- for path in root.rglob("*"):
91
+ if self._log.evm:
92
+ self._log.debug(f"📋 All paths under {root} (total {len(all_paths)}):")
93
+ for p in all_paths:
94
+ print(f"{p.relative_to(root)}")
95
+ else:
96
+ self._log.debug(f"Found {len(all_paths)} paths under {root})")
97
+
98
+ matches, non_matches, directories_skipped = [], [], []
99
+ for path in all_paths:
98
100
  self._log.debug(f"\nScanning path: {path}")
99
101
  rel = path.relative_to(root).as_posix()
100
102
  self._log.debug(f"Relative path for inspection: {rel}")
101
103
 
102
104
  # Match file against the PathSpec
103
105
  if spec.match_file(rel):
104
- self._log.debug(f"Path matches keep patterns: {rel}")
106
+ self._log.debug(f"✅ KEEP: Path matches keep patterns: {rel}")
105
107
  matches.append(path) # Collect paths to keep
106
108
  continue
107
109
 
108
110
  # Non-matching paths: collect and delete
109
- self._log.debug(f"Path does not match keep patterns: {rel}")
110
- non_matches.append(path)
111
+ self._log.debug(f"❌ DELETE: Path does not match keep patterns: {rel}")
111
112
  if path.is_dir():
112
- self._f.remove_dir(path)
113
- self._log.debug(f"Deleted directory: {path}")
113
+ directories_skipped.append(path)
114
+ self._log.debug(f"⏭️ SKIPPING DELETE: Path is a directory: {path}")
114
115
  else:
116
+ non_matches.append(path)
115
117
  self._f.remove_file(path)
116
118
  self._log.debug(f"Deleted file: {path}")
117
119
 
@@ -4,9 +4,10 @@ from typing import TextIO
4
4
 
5
5
 
6
6
  class Logger:
7
- def __init__(self, label: str = "", verbose: bool = False) -> None:
7
+ def __init__(self, label: str = "", verbose: bool = False, evm: bool = True) -> None:
8
8
  self.label = label
9
9
  self.verbose = verbose
10
+ self.evm = evm # Extreme Verbosity Mode (In-depth debug logs)
10
11
 
11
12
  def start_logger(self, verbose) -> Logger:
12
13
  label = Logger.get_label(self.label)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: haraka
3
- Version: 0.2.27
3
+ Version: 0.2.29
4
4
  Summary: Reusable post-generation helper for Cookiecutter micro-service templates
5
5
  Author-email: Will Burks <will@example.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "haraka"
7
- version = "0.2.27"
7
+ version = "0.2.29"
8
8
  description = "Reusable post-generation helper for Cookiecutter micro-service templates"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
File without changes
File without changes
File without changes
File without changes
File without changes