compact-code 0.2.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

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.
compact_code/__init__.py CHANGED
@@ -3,5 +3,5 @@
3
3
  from .compactor import compact_source, verify_equivalence
4
4
  from .expand import expand_source
5
5
 
6
- __version__ = "0.2.0"
6
+ __version__ = "0.2.1"
7
7
  __all__ = ["compact_source", "verify_equivalence", "expand_source", "__version__"]
compact_code/hooks.py CHANGED
@@ -2,10 +2,19 @@
2
2
 
3
3
  import json
4
4
  import os
5
+ import shutil
5
6
 
6
7
  HOOK_COMMAND = "compact-code hook"
7
8
 
8
9
 
10
+ def _hook_command():
11
+ """Absolute path to the executable: hooks run in shells whose PATH may differ."""
12
+ exe = shutil.which("compact-code")
13
+ if exe:
14
+ return f'"{exe.replace(os.sep, "/")}" hook'
15
+ return HOOK_COMMAND
16
+
17
+
9
18
  def settings_path(project=False):
10
19
  if project:
11
20
  return os.path.join(".claude", "settings.json")
@@ -27,11 +36,12 @@ def install(project=False):
27
36
  post = settings.setdefault("hooks", {}).setdefault("PostToolUse", [])
28
37
  for matcher in post:
29
38
  for hook in matcher.get("hooks", []):
30
- if HOOK_COMMAND in hook.get("command", ""):
39
+ cmd = hook.get("command", "")
40
+ if "compact-code" in cmd and cmd.endswith(" hook"):
31
41
  return path, False
32
42
  post.append({
33
43
  "matcher": "Read",
34
- "hooks": [{"type": "command", "command": HOOK_COMMAND}],
44
+ "hooks": [{"type": "command", "command": _hook_command()}],
35
45
  })
36
46
  os.makedirs(os.path.dirname(path), exist_ok=True)
37
47
  with open(path, "w", encoding="utf-8", newline="\n") as f:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compact-code
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Dense Python for AI agents, readable view for humans. Same logic, ~30-55% fewer tokens.
5
5
  Project-URL: Homepage, https://github.com/EmmanuelFreund/compact-code
6
6
  Project-URL: Repository, https://github.com/EmmanuelFreund/compact-code
@@ -1,12 +1,12 @@
1
- compact_code/__init__.py,sha256=7gCoIn6uAzUPYQ1Kby3fh_0g1_CAU_yPOItCowWqeDs,273
1
+ compact_code/__init__.py,sha256=3sjjWt-4I3ThtvhR1KTzwSRO6tmYiAtc2pQx81bSiEg,273
2
2
  compact_code/cli.py,sha256=Kc4Tm68EpFgcxSBIAHYy5O9E-UVG0KvqXhKeAyjUIY0,7308
3
3
  compact_code/compactor.py,sha256=3XHnTWXICa0ch-MlVlJP8ixD6ctQC56N6mvrmjCbTFo,3900
4
4
  compact_code/expand.py,sha256=bfID5ZtWvHqnXMg9ux37lhAizXQsHdGnZdmvVvzvO3Q,1419
5
- compact_code/hooks.py,sha256=_hJE1zpayXM_YcGIOpgTi7Ze_GOg0OAL7YRIGe0_VOw,1257
5
+ compact_code/hooks.py,sha256=6K8O7dPu0WNrNHIiz3wWoxExni835bCK-1GTSp6SbTA,1560
6
6
  compact_code/ledger.py,sha256=_I9WsvUDUCB_Q97DMJ7LBLDDblJh4Xq4Q1M_HV4fKjo,1818
7
7
  compact_code/tokens.py,sha256=4bg0d5rpv4bquP-15zKNuAVIiS9gORxQtEwmSt7OpZw,524
8
- compact_code-0.2.0.dist-info/METADATA,sha256=vX4tMaahJrOsAKHn7NhTjmNBNxdYKFIfCw_r4GZhBWw,4541
9
- compact_code-0.2.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
10
- compact_code-0.2.0.dist-info/entry_points.txt,sha256=IZNSoYbRk5atYzZCkbqFenI290C24EOz30U7e19o-wA,55
11
- compact_code-0.2.0.dist-info/licenses/LICENSE,sha256=N-Rrt7sqXVm_MP6RC2EhrLhUtTrGtluOr7zclo-0who,1072
12
- compact_code-0.2.0.dist-info/RECORD,,
8
+ compact_code-0.2.1.dist-info/METADATA,sha256=bN4b2v7KsXsFY4Qy6tp_jpIeXft2QEds9CwAV7E6fgE,4541
9
+ compact_code-0.2.1.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
10
+ compact_code-0.2.1.dist-info/entry_points.txt,sha256=IZNSoYbRk5atYzZCkbqFenI290C24EOz30U7e19o-wA,55
11
+ compact_code-0.2.1.dist-info/licenses/LICENSE,sha256=N-Rrt7sqXVm_MP6RC2EhrLhUtTrGtluOr7zclo-0who,1072
12
+ compact_code-0.2.1.dist-info/RECORD,,