pre-commit-uv 3.7.0__tar.gz → 3.8.0__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 (93) hide show
  1. {pre_commit_uv-3.7.0/pre_commit_uv.egg-info → pre_commit_uv-3.8.0}/PKG-INFO +1 -1
  2. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/r.py +68 -9
  3. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/rust.py +1 -1
  4. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/util.py +3 -2
  5. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0/pre_commit_uv.egg-info}/PKG-INFO +1 -1
  6. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/setup.cfg +1 -1
  7. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/LICENSE +0 -0
  8. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/README.md +0 -0
  9. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/__init__.py +0 -0
  10. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/__main__.py +0 -0
  11. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/all_languages.py +0 -0
  12. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/clientlib.py +0 -0
  13. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/color.py +0 -0
  14. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/__init__.py +0 -0
  15. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/autoupdate.py +0 -0
  16. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/clean.py +0 -0
  17. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/gc.py +0 -0
  18. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/hook_impl.py +0 -0
  19. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/init_templatedir.py +0 -0
  20. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/install_uninstall.py +0 -0
  21. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/migrate_config.py +0 -0
  22. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/run.py +0 -0
  23. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/sample_config.py +0 -0
  24. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/try_repo.py +0 -0
  25. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/validate_config.py +0 -0
  26. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/commands/validate_manifest.py +0 -0
  27. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/constants.py +0 -0
  28. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/envcontext.py +0 -0
  29. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/error_handler.py +0 -0
  30. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/errors.py +0 -0
  31. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/file_lock.py +0 -0
  32. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/git.py +0 -0
  33. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/hook.py +0 -0
  34. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/lang_base.py +0 -0
  35. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/__init__.py +0 -0
  36. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/conda.py +0 -0
  37. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/coursier.py +0 -0
  38. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/dart.py +0 -0
  39. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/docker.py +0 -0
  40. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/docker_image.py +0 -0
  41. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/dotnet.py +0 -0
  42. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/fail.py +0 -0
  43. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/golang.py +0 -0
  44. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/haskell.py +0 -0
  45. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/lua.py +0 -0
  46. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/node.py +0 -0
  47. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/perl.py +0 -0
  48. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/pygrep.py +0 -0
  49. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/python.py +0 -0
  50. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/ruby.py +0 -0
  51. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/script.py +0 -0
  52. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/swift.py +0 -0
  53. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/languages/system.py +0 -0
  54. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/logging_handler.py +0 -0
  55. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/main.py +0 -0
  56. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/__init__.py +0 -0
  57. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/check_hooks_apply.py +0 -0
  58. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/check_useless_excludes.py +0 -0
  59. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/identity.py +0 -0
  60. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/output.py +0 -0
  61. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/parse_shebang.py +0 -0
  62. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/prefix.py +0 -0
  63. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/repository.py +0 -0
  64. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/__init__.py +0 -0
  65. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_.npmignore +0 -0
  66. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_Cargo.toml +0 -0
  67. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_LICENSE.renv +0 -0
  68. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_Makefile.PL +0 -0
  69. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_activate.R +0 -0
  70. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_environment.yml +0 -0
  71. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_go.mod +0 -0
  72. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_main.go +0 -0
  73. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_main.rs +0 -0
  74. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_package.json +0 -0
  75. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_pre-commit-package-dev-1.rockspec +0 -0
  76. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_pre_commit_placeholder_package.gemspec +0 -0
  77. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_pubspec.yaml +0 -0
  78. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_renv.lock +0 -0
  79. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_setup.py +0 -0
  80. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/hook-tmpl +0 -0
  81. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/rbenv.tar.gz +0 -0
  82. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/ruby-build.tar.gz +0 -0
  83. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/resources/ruby-download.tar.gz +0 -0
  84. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/staged_files_only.py +0 -0
  85. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/store.py +0 -0
  86. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/xargs.py +0 -0
  87. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit/yaml.py +0 -0
  88. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/SOURCES.txt +0 -0
  89. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/dependency_links.txt +0 -0
  90. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/entry_points.txt +0 -0
  91. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/requires.txt +0 -0
  92. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/top_level.txt +0 -0
  93. {pre_commit_uv-3.7.0 → pre_commit_uv-3.8.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pre_commit_uv
3
- Version: 3.7.0
3
+ Version: 3.8.0
4
4
  Summary: A framework for managing and maintaining multi-language pre-commit hooks (fork with uv support).
5
5
  Home-page: https://github.com/pre-commit/pre-commit
6
6
  Author: "Guilherme Espada, Anthony Sottile"
@@ -14,13 +14,74 @@ from pre_commit.envcontext import envcontext
14
14
  from pre_commit.envcontext import PatchesT
15
15
  from pre_commit.envcontext import UNSET
16
16
  from pre_commit.prefix import Prefix
17
+ from pre_commit.util import cmd_output
17
18
  from pre_commit.util import cmd_output_b
18
19
  from pre_commit.util import win_exe
19
20
 
20
21
  ENVIRONMENT_DIR = 'renv'
21
22
  RSCRIPT_OPTS = ('--no-save', '--no-restore', '--no-site-file', '--no-environ')
22
23
  get_default_version = lang_base.basic_get_default_version
23
- health_check = lang_base.basic_health_check
24
+
25
+
26
+ def _execute_vanilla_r_code_as_script(
27
+ code: str, *,
28
+ prefix: Prefix, version: str, args: Sequence[str] = (), cwd: str,
29
+ ) -> str:
30
+ with in_env(prefix, version), _r_code_in_tempfile(code) as f:
31
+ _, out, _ = cmd_output(
32
+ _rscript_exec(), *RSCRIPT_OPTS, f, *args, cwd=cwd,
33
+ )
34
+ return out.rstrip('\n')
35
+
36
+
37
+ def _read_installed_version(envdir: str, prefix: Prefix, version: str) -> str:
38
+ return _execute_vanilla_r_code_as_script(
39
+ 'cat(renv::settings$r.version())',
40
+ prefix=prefix, version=version,
41
+ cwd=envdir,
42
+ )
43
+
44
+
45
+ def _read_executable_version(envdir: str, prefix: Prefix, version: str) -> str:
46
+ return _execute_vanilla_r_code_as_script(
47
+ 'cat(as.character(getRversion()))',
48
+ prefix=prefix, version=version,
49
+ cwd=envdir,
50
+ )
51
+
52
+
53
+ def _write_current_r_version(
54
+ envdir: str, prefix: Prefix, version: str,
55
+ ) -> None:
56
+ _execute_vanilla_r_code_as_script(
57
+ 'renv::settings$r.version(as.character(getRversion()))',
58
+ prefix=prefix, version=version,
59
+ cwd=envdir,
60
+ )
61
+
62
+
63
+ def health_check(prefix: Prefix, version: str) -> str | None:
64
+ envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version)
65
+
66
+ r_version_installation = _read_installed_version(
67
+ envdir=envdir, prefix=prefix, version=version,
68
+ )
69
+ r_version_current_executable = _read_executable_version(
70
+ envdir=envdir, prefix=prefix, version=version,
71
+ )
72
+ if r_version_installation in {'NULL', ''}:
73
+ return (
74
+ f'Hooks were installed with an unknown R version. R version for '
75
+ f'hook repo now set to {r_version_current_executable}'
76
+ )
77
+ elif r_version_installation != r_version_current_executable:
78
+ return (
79
+ f'Hooks were installed for R version {r_version_installation}, '
80
+ f'but current R executable has version '
81
+ f'{r_version_current_executable}'
82
+ )
83
+
84
+ return None
24
85
 
25
86
 
26
87
  @contextlib.contextmanager
@@ -147,16 +208,14 @@ def install_environment(
147
208
  with _r_code_in_tempfile(r_code_inst_environment) as f:
148
209
  cmd_output_b(_rscript_exec(), '--vanilla', f, cwd=env_dir)
149
210
 
211
+ _write_current_r_version(envdir=env_dir, prefix=prefix, version=version)
150
212
  if additional_dependencies:
151
213
  r_code_inst_add = 'renv::install(commandArgs(trailingOnly = TRUE))'
152
- with in_env(prefix, version):
153
- with _r_code_in_tempfile(r_code_inst_add) as f:
154
- cmd_output_b(
155
- _rscript_exec(), *RSCRIPT_OPTS,
156
- f,
157
- *additional_dependencies,
158
- cwd=env_dir,
159
- )
214
+ _execute_vanilla_r_code_as_script(
215
+ code=r_code_inst_add, prefix=prefix, version=version,
216
+ args=additional_dependencies,
217
+ cwd=env_dir,
218
+ )
160
219
 
161
220
 
162
221
  def _inline_r_setup(code: str) -> str:
@@ -34,7 +34,7 @@ def get_default_version() -> str:
34
34
  # Just detecting the executable does not suffice, because if rustup is
35
35
  # installed but no toolchain is available, then `cargo` exists but
36
36
  # cannot be used without installing a toolchain first.
37
- if cmd_output_b('cargo', '--version', check=False)[0] == 0:
37
+ if cmd_output_b('cargo', '--version', check=False, cwd='/')[0] == 0:
38
38
  return 'system'
39
39
  else:
40
40
  return C.DEFAULT
@@ -205,10 +205,11 @@ else: # pragma: no cover
205
205
  def _handle_readonly(
206
206
  func: Callable[[str], object],
207
207
  path: str,
208
- exc: OSError,
208
+ exc: BaseException,
209
209
  ) -> None:
210
210
  if (
211
211
  func in (os.rmdir, os.remove, os.unlink) and
212
+ isinstance(exc, OSError) and
212
213
  exc.errno in {errno.EACCES, errno.EPERM}
213
214
  ):
214
215
  for p in (path, os.path.dirname(path)):
@@ -222,7 +223,7 @@ if sys.version_info < (3, 12): # pragma: <3.12 cover
222
223
  def _handle_readonly_old(
223
224
  func: Callable[[str], object],
224
225
  path: str,
225
- excinfo: tuple[type[OSError], OSError, TracebackType],
226
+ excinfo: tuple[type[BaseException], BaseException, TracebackType],
226
227
  ) -> None:
227
228
  return _handle_readonly(func, path, excinfo[1])
228
229
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pre_commit_uv
3
- Version: 3.7.0
3
+ Version: 3.8.0
4
4
  Summary: A framework for managing and maintaining multi-language pre-commit hooks (fork with uv support).
5
5
  Home-page: https://github.com/pre-commit/pre-commit
6
6
  Author: "Guilherme Espada, Anthony Sottile"
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = pre_commit_uv
3
- version = 3.7.0
3
+ version = 3.8.0
4
4
  description = A framework for managing and maintaining multi-language pre-commit hooks (fork with uv support).
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown
File without changes
File without changes
File without changes