pre-commit-uv 3.6.92__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.6.92/pre_commit_uv.egg-info → pre_commit_uv-3.8.0}/PKG-INFO +1 -1
  2. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/run.py +1 -1
  3. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/docker.py +7 -2
  4. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/docker_image.py +1 -1
  5. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/r.py +68 -9
  6. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/rust.py +1 -1
  7. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/util.py +3 -2
  8. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0/pre_commit_uv.egg-info}/PKG-INFO +1 -1
  9. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/setup.cfg +1 -1
  10. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/LICENSE +0 -0
  11. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/README.md +0 -0
  12. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/__init__.py +0 -0
  13. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/__main__.py +0 -0
  14. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/all_languages.py +0 -0
  15. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/clientlib.py +0 -0
  16. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/color.py +0 -0
  17. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/__init__.py +0 -0
  18. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/autoupdate.py +0 -0
  19. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/clean.py +0 -0
  20. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/gc.py +0 -0
  21. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/hook_impl.py +0 -0
  22. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/init_templatedir.py +0 -0
  23. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/install_uninstall.py +0 -0
  24. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/migrate_config.py +0 -0
  25. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/sample_config.py +0 -0
  26. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/try_repo.py +0 -0
  27. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/validate_config.py +0 -0
  28. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/commands/validate_manifest.py +0 -0
  29. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/constants.py +0 -0
  30. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/envcontext.py +0 -0
  31. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/error_handler.py +0 -0
  32. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/errors.py +0 -0
  33. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/file_lock.py +0 -0
  34. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/git.py +0 -0
  35. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/hook.py +0 -0
  36. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/lang_base.py +0 -0
  37. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/__init__.py +0 -0
  38. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/conda.py +0 -0
  39. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/coursier.py +0 -0
  40. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/dart.py +0 -0
  41. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/dotnet.py +0 -0
  42. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/fail.py +0 -0
  43. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/golang.py +0 -0
  44. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/haskell.py +0 -0
  45. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/lua.py +0 -0
  46. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/node.py +0 -0
  47. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/perl.py +0 -0
  48. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/pygrep.py +0 -0
  49. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/python.py +0 -0
  50. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/ruby.py +0 -0
  51. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/script.py +0 -0
  52. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/swift.py +0 -0
  53. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/languages/system.py +0 -0
  54. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/logging_handler.py +0 -0
  55. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/main.py +0 -0
  56. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/__init__.py +0 -0
  57. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/check_hooks_apply.py +0 -0
  58. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/check_useless_excludes.py +0 -0
  59. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/meta_hooks/identity.py +0 -0
  60. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/output.py +0 -0
  61. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/parse_shebang.py +0 -0
  62. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/prefix.py +0 -0
  63. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/repository.py +0 -0
  64. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/__init__.py +0 -0
  65. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_.npmignore +0 -0
  66. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_Cargo.toml +0 -0
  67. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_LICENSE.renv +0 -0
  68. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_Makefile.PL +0 -0
  69. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_activate.R +0 -0
  70. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_environment.yml +0 -0
  71. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_go.mod +0 -0
  72. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_main.go +0 -0
  73. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_main.rs +0 -0
  74. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_package.json +0 -0
  75. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_pre-commit-package-dev-1.rockspec +0 -0
  76. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_pre_commit_placeholder_package.gemspec +0 -0
  77. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_pubspec.yaml +0 -0
  78. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_renv.lock +0 -0
  79. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/empty_template_setup.py +0 -0
  80. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/hook-tmpl +0 -0
  81. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/rbenv.tar.gz +0 -0
  82. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/ruby-build.tar.gz +0 -0
  83. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/resources/ruby-download.tar.gz +0 -0
  84. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/staged_files_only.py +0 -0
  85. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/store.py +0 -0
  86. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/xargs.py +0 -0
  87. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit/yaml.py +0 -0
  88. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/SOURCES.txt +0 -0
  89. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/dependency_links.txt +0 -0
  90. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/entry_points.txt +0 -0
  91. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/requires.txt +0 -0
  92. {pre_commit_uv-3.6.92 → pre_commit_uv-3.8.0}/pre_commit_uv.egg-info/top_level.txt +0 -0
  93. {pre_commit_uv-3.6.92 → 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.6.92
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"
@@ -298,7 +298,7 @@ def _run_hooks(
298
298
  verbose=args.verbose, use_color=args.color,
299
299
  )
300
300
  retval |= current_retval
301
- if retval and (config['fail_fast'] or hook.fail_fast):
301
+ if current_retval and (config['fail_fast'] or hook.fail_fast):
302
302
  break
303
303
  if retval and args.show_diff_on_failure and prior_diff:
304
304
  if args.all_files:
@@ -108,10 +108,15 @@ def get_docker_user() -> tuple[str, ...]: # pragma: win32 no cover
108
108
  return ()
109
109
 
110
110
 
111
- def docker_cmd() -> tuple[str, ...]: # pragma: win32 no cover
111
+ def get_docker_tty(*, color: bool) -> tuple[str, ...]: # pragma: win32 no cover # noqa: E501
112
+ return (('--tty',) if color else ())
113
+
114
+
115
+ def docker_cmd(*, color: bool) -> tuple[str, ...]: # pragma: win32 no cover
112
116
  return (
113
117
  'docker', 'run',
114
118
  '--rm',
119
+ *get_docker_tty(color=color),
115
120
  *get_docker_user(),
116
121
  # https://docs.docker.com/engine/reference/commandline/run/#mount-volumes-from-container-volumes-from
117
122
  # The `Z` option tells Docker to label the content with a private
@@ -139,7 +144,7 @@ def run_hook(
139
144
 
140
145
  entry_tag = ('--entrypoint', entry_exe, docker_tag(prefix))
141
146
  return lang_base.run_xargs(
142
- (*docker_cmd(), *entry_tag, *cmd_rest),
147
+ (*docker_cmd(color=color), *entry_tag, *cmd_rest),
143
148
  file_args,
144
149
  require_serial=require_serial,
145
150
  color=color,
@@ -23,7 +23,7 @@ def run_hook(
23
23
  require_serial: bool,
24
24
  color: bool,
25
25
  ) -> tuple[int, bytes]: # pragma: win32 no cover
26
- cmd = docker_cmd() + lang_base.hook_cmd(entry, args)
26
+ cmd = docker_cmd(color=color) + lang_base.hook_cmd(entry, args)
27
27
  return lang_base.run_xargs(
28
28
  cmd,
29
29
  file_args,
@@ -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.6.92
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.6.92
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