auto-code-fixer 0.3.3__tar.gz → 0.3.4__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 (27) hide show
  1. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/PKG-INFO +1 -1
  2. auto_code_fixer-0.3.4/auto_code_fixer/__init__.py +1 -0
  3. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/cli.py +16 -3
  4. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer.egg-info/PKG-INFO +1 -1
  5. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/pyproject.toml +1 -1
  6. auto_code_fixer-0.3.3/auto_code_fixer/__init__.py +0 -1
  7. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/LICENSE +0 -0
  8. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/README.md +0 -0
  9. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/command_runner.py +0 -0
  10. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/fixer.py +0 -0
  11. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/installer.py +0 -0
  12. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/models.py +0 -0
  13. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/patcher.py +0 -0
  14. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/plan.py +0 -0
  15. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/runner.py +0 -0
  16. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/sandbox.py +0 -0
  17. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/traceback_utils.py +0 -0
  18. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/utils.py +0 -0
  19. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer/venv_manager.py +0 -0
  20. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer.egg-info/SOURCES.txt +0 -0
  21. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer.egg-info/dependency_links.txt +0 -0
  22. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer.egg-info/entry_points.txt +0 -0
  23. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer.egg-info/requires.txt +0 -0
  24. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/auto_code_fixer.egg-info/top_level.txt +0 -0
  25. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/setup.cfg +0 -0
  26. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/tests/test_fix_imported_file.py +0 -0
  27. {auto_code_fixer-0.3.3 → auto_code_fixer-0.3.4}/tests/test_internal_imports.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: auto-code-fixer
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Automatically fix Python code using ChatGPT
5
5
  Author-email: Arif Shah <ashah7775@gmail.com>
6
6
  License: MIT
@@ -0,0 +1 @@
1
+ __version__ = "0.3.4"
@@ -29,6 +29,19 @@ def fix_file(file_path, project_root, api_key, ask, verbose, *, dry_run: bool, m
29
29
  from auto_code_fixer.sandbox import make_sandbox
30
30
  sandbox_root, sandbox_entry = make_sandbox(entry_file=file_path, project_root=project_root)
31
31
 
32
+ # Always delete temp sandbox (best-effort). Also register atexit cleanup in case of crashes.
33
+ import atexit
34
+
35
+ def cleanup_sandbox() -> None:
36
+ try:
37
+ shutil.rmtree(sandbox_root)
38
+ except FileNotFoundError:
39
+ return
40
+ except Exception as e:
41
+ log(f"WARN: failed to delete sandbox dir {sandbox_root}: {e}")
42
+
43
+ atexit.register(cleanup_sandbox)
44
+
32
45
  # Create isolated venv in sandbox
33
46
  from auto_code_fixer.venv_manager import create_venv
34
47
  from auto_code_fixer.patcher import backup_file
@@ -82,7 +95,7 @@ def fix_file(file_path, project_root, api_key, ask, verbose, *, dry_run: bool, m
82
95
 
83
96
  if confirm != "y":
84
97
  log("User declined overwrite", "WARN")
85
- shutil.rmtree(sandbox_root)
98
+ cleanup_sandbox()
86
99
  return False
87
100
 
88
101
  if dry_run:
@@ -126,7 +139,7 @@ def fix_file(file_path, project_root, api_key, ask, verbose, *, dry_run: bool, m
126
139
  shutil.copy(p_real, dst_real)
127
140
  log(f"File updated: {dst_real}")
128
141
 
129
- shutil.rmtree(sandbox_root)
142
+ cleanup_sandbox()
130
143
  log(f"Fix completed in {attempt + 1} attempt(s) 🎉")
131
144
  return True
132
145
 
@@ -194,7 +207,7 @@ def fix_file(file_path, project_root, api_key, ask, verbose, *, dry_run: bool, m
194
207
  time.sleep(1)
195
208
 
196
209
  log("Failed to auto-fix file after max retries ❌", "ERROR")
197
- shutil.rmtree(sandbox_root)
210
+ cleanup_sandbox()
198
211
  return False
199
212
 
200
213
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: auto-code-fixer
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Automatically fix Python code using ChatGPT
5
5
  Author-email: Arif Shah <ashah7775@gmail.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "auto-code-fixer"
7
- version = "0.3.3"
7
+ version = "0.3.4"
8
8
  description = "Automatically fix Python code using ChatGPT"
9
9
  readme = "README.md"
10
10
 
@@ -1 +0,0 @@
1
- __version__ = "0.3.3"
File without changes