foundrytools-cli 2.2.1__tar.gz → 2.2.2__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. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/PKG-INFO +1 -1
  2. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/pyproject.toml +2 -2
  3. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/pyproject.toml.orig +2 -2
  4. foundrytools_cli-2.2.2/src/foundrytools_cli/__init__.py +3 -0
  5. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/utils/font_organizer.py +10 -3
  6. foundrytools_cli-2.2.1/src/foundrytools_cli/__init__.py +0 -3
  7. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/README.md +0 -0
  8. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/__main__.py +0 -0
  9. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/__init__.py +0 -0
  10. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/cff.py +0 -0
  11. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/cmap.py +0 -0
  12. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/converter/__init__.py +0 -0
  13. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/converter/cli.py +0 -0
  14. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/converter/ttf_to_otf.py +0 -0
  15. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/fix/__init__.py +0 -0
  16. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/fix/cli.py +0 -0
  17. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/fix/legacy_accents.py +0 -0
  18. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/fix/vertical_metrics.py +0 -0
  19. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/font.py +0 -0
  20. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/gsub.py +0 -0
  21. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/hhea.py +0 -0
  22. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/name.py +0 -0
  23. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/os_2.py +0 -0
  24. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/otf.py +0 -0
  25. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/post.py +0 -0
  26. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/print/__init__.py +0 -0
  27. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/print/cli.py +0 -0
  28. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/print/font_info.py +0 -0
  29. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/print/font_names.py +0 -0
  30. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/print/vf_instances.py +0 -0
  31. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/ttf.py +0 -0
  32. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/utils/__init__.py +0 -0
  33. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/utils/cli.py +0 -0
  34. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/utils/font_renamer.py +0 -0
  35. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/commands/utils/sync_timestamps.py +0 -0
  36. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/utils/__init__.py +0 -0
  37. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/utils/logger.py +0 -0
  38. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/utils/task_runner.py +0 -0
  39. {foundrytools_cli-2.2.1 → foundrytools_cli-2.2.2}/src/foundrytools_cli/utils/timer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: foundrytools-cli
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: A set of command line tools to inspect, manipulate and convert font files
5
5
  Author: Cesare Gilento
6
6
  Author-email: Cesare Gilento <ftcli@proton.me>
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "foundrytools-cli"
7
- version = "2.2.1"
7
+ version = "2.2.2"
8
8
  description = "A set of command line tools to inspect, manipulate and convert font files"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -107,7 +107,7 @@ docstring-code-format = true
107
107
  docstring-code-line-length = "dynamic"
108
108
 
109
109
  [tool.bumpversion]
110
- current_version = "2.2.1"
110
+ current_version = "2.2.2"
111
111
  commit = true
112
112
  tag = true
113
113
 
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "foundrytools-cli"
7
- version = "2.2.1"
7
+ version = "2.2.2"
8
8
  description = "A set of command line tools to inspect, manipulate and convert font files"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -92,7 +92,7 @@ docstring-code-format = true
92
92
  docstring-code-line-length = "dynamic"
93
93
 
94
94
  [tool.bumpversion]
95
- current_version = "2.2.1"
95
+ current_version = "2.2.2"
96
96
  commit = true
97
97
  tag = true
98
98
 
@@ -0,0 +1,3 @@
1
+ VERSION = __version__ = "2.2.2"
2
+
3
+ __all__ = ["VERSION"]
@@ -50,14 +50,20 @@ def _determine_output_directory(
50
50
  return sanitize_filepath(out_dir, platform="auto")
51
51
 
52
52
 
53
- def _remove_empty_directories(directory: Path) -> None:
53
+ def _remove_empty_directories(directory: Path, stop_at: Path | None = None) -> None:
54
54
  """
55
55
  Removes empty directories recursively.
56
56
 
57
57
  Args:
58
58
  directory (Path): The directory to start removing from.
59
+ stop_at (Path): The directory to stop at (never removed). Defaults to None, which
60
+ means no boundary. Callers should pass the input directory so cleanup never
61
+ climbs above it.
59
62
  """
60
- while not any(directory.iterdir()):
63
+ stop = stop_at.resolve() if stop_at is not None else None
64
+ while directory.is_dir() and (stop is None or directory.resolve() != stop):
65
+ if any(directory.iterdir()):
66
+ break
61
67
  directory.rmdir()
62
68
  logger.opt(colors=True).success(f"{directory} <magenta>--></> <red>Deleted</>")
63
69
  directory = directory.parent
@@ -115,4 +121,5 @@ def main(
115
121
  )
116
122
 
117
123
  if delete_empty_directories:
118
- _remove_empty_directories(font.file.parent)
124
+ stop_at = in_path if in_path.is_dir() else in_path.parent
125
+ _remove_empty_directories(font.file.parent, stop_at=stop_at)
@@ -1,3 +0,0 @@
1
- VERSION = __version__ = "2.2.1"
2
-
3
- __all__ = ["VERSION"]