Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 hatch 1.10 regression #80

Merged
merged 4 commits into from
Jul 13, 2024
Merged

🐛 hatch 1.10 regression #80

merged 4 commits into from
Jul 13, 2024

Conversation

juftin
Copy link
Owner

@juftin juftin commented May 12, 2024

Resolves an issue where SafeApplication is injected into the hatch environment.

This PR will resolve a regression issue in hatch 1.10.0

Closes pypa/hatch#1468

@juftin
Copy link
Owner Author

juftin commented May 12, 2024

MRE

hatch==1.10.0
hatch-pip-compile==1.11.1
rm -rf ./.venv/ ./requirements.txt ./requirements/ && hatch run test:test
[tool.hatch.env]
requires = [
  "hatch-pip-compile"
]

[tool.hatch.envs.default]
dependencies = [
  "requests"
]
pip-compile-constraint = "default"
type = "pip-compile"

[tool.hatch.envs.test]
dependencies = [
  "requests"
]

[tool.hatch.envs.test.scripts]
test = "echo 'Hello, world!'"
StackTrace

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/__init__.py:221 in  │
│ main                                                                                             │
│                                                                                                  │
│   218                                                                                            │
│   219 def main():  # no cov                                                                      │
│   220 │   try:                                                                                   │
│ ❱ 221 │   │   hatch(prog_name='hatch', windows_expand_args=False)                                │
│   222 │   except Exception:  # noqa: BLE001                                                      │
│   223 │   │   import sys                                                                         │
│   224                                                                                            │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1157 in         │
│ __call__                                                                                         │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1078 in main    │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1688 in invoke  │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1434 in invoke  │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:783 in invoke   │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/decorators.py:33 in     │
│ new_func                                                                                         │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/run/__init__.py:141 │
│ in run                                                                                           │
│                                                                                                  │
│   138 │   elif not env_name:                                                                     │
│   139 │   │   env_name = 'system'                                                                │
│   140 │                                                                                          │
│ ❱ 141 │   ctx.invoke(                                                                            │
│   142 │   │   run_command,                                                                       │
│   143 │   │   args=[command, *final_args],                                                       │
│   144 │   │   env_names=[env_name],                                                              │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:783 in invoke   │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/decorators.py:45 in     │
│ new_func                                                                                         │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/env/run.py:128 in   │
│ run                                                                                              │
│                                                                                                  │
│   125 │   elif not matrix_selected and (included_variables or excluded_variables):               │
│   126 │   │   app.abort(f'Variable selection is unsupported for non-matrix environments: {", "   │
│   127 │                                                                                          │
│ ❱ 128 │   for context in app.runner_context(                                                     │
│   129 │   │   environments,                                                                      │
│   130 │   │   ignore_compat=ignore_compat or matrix_selected,                                    │
│   131 │   │   display_header=matrix_selected,                                                    │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:224  │
│ in runner_context                                                                                │
│                                                                                                  │
│   221 │   │   │   │   context = ExecutionContext(environment)                                    │
│   222 │   │   │   │   yield context                                                              │
│   223 │   │   │   │                                                                              │
│ ❱ 224 │   │   │   │   self.prepare_environment(environment)                                      │
│   225 │   │   │   │   with EnvVars(context.env_vars):                                            │
│   226 │   │   │   │   │   self.run_shell_commands(context)                                       │
│   227                                                                                            │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:104 in dependency_hash           │
│                                                                                                  │
│   101 │   │   """                                                                                │
│   102 │   │   Get the dependency hash                                                            │
│   103 │   │   """                                                                                │
│ ❱ 104 │   │   self.run_pip_compile()                                                             │
│   105 │   │   hatch_hash = super().dependency_hash()                                             │
│   106 │   │   if not self.dependencies:                                                          │
│   107 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   Run pip-compile if necessary                                                       │
│   115 │   │   """                                                                                │
│   116 │   │   self.prepare_environment()                                                         │
│ ❱ 117 │   │   if not self.lockfile_up_to_date:                                                   │
│   118 │   │   │   with self.safe_activation():                                                   │
│   119 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│   120 │   │   │   │   if self.piptools_lock_file.exists():                                       │
│                                                                                                  │
│ /Users/juftin/.pyenv/versions/3.11.8/lib/python3.11/functools.py:1001 in __get__                 │
│                                                                                                  │
│    998 │   │   │   │   # check if another thread filled cache while we awaited lock              │
│    999 │   │   │   │   val = cache.get(self.attrname, _NOT_FOUND)                                │
│   1000 │   │   │   │   if val is _NOT_FOUND:                                                     │
│ ❱ 1001 │   │   │   │   │   val = self.func(instance)                                             │
│   1002 │   │   │   │   │   try:                                                                  │
│   1003 │   │   │   │   │   │   cache[self.attrname] = val                                        │
│   1004 │   │   │   │   │   except TypeError:                                                     │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:200 in lockfile_up_to_date       │
│                                                                                                  │
│   197 │   │   if not self.dependencies and not self.piptools_lock_file.exists():                 │
│   198 │   │   │   return True                                                                    │
│   199 │   │   if self.piptools_constraints_file:                                                 │
│ ❱ 200 │   │   │   valid_constraint = self.validate_constraints_file(                             │
│   201 │   │   │   │   constraints_file=self.piptools_constraints_file, environment=self.constr   │
│   202 │   │   │   )                                                                              │
│   203 │   │   │   if not valid_constraint:                                                       │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:318 in validate_constraints_file │
│                                                                                                  │
│   315 │   │   │   Whether the constraints file is valid                                          │
│   316 │   │   """                                                                                │
│   317 │   │   if not constraints_file.exists():                                                  │
│ ❱ 318 │   │   │   self.constraint_env.run_pip_compile()                                          │
│   319 │   │   │   return False                                                                   │
│   320 │   │   else:                                                                              │
│   321 │   │   │   up_to_date = environment.piptools_lock.compare_requirements(                   │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:116 in run_pip_compile           │
│                                                                                                  │
│   113 │   │   """                                                                                │
│   114 │   │   Run pip-compile if necessary                                                       │
│   115 │   │   """                                                                                │
│ ❱ 116 │   │   self.prepare_environment()                                                         │
│   117 │   │   if not self.lockfile_up_to_date:                                                   │
│   118 │   │   │   with self.safe_activation():                                                   │
│   119 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:367 in prepare_environment       │
│                                                                                                  │
│   364 │   │   but the `Application` class is not exposed to the environment plugin.              │
│   365 │   │   """                                                                                │
│   366 │   │   if not self.virtualenv_exists():                                                   │
│ ❱ 367 │   │   │   self.create()                                                                  │
│   368 │   │   │   if not self.dependencies_in_sync():                                            │
│   369 │   │   │   │   self.sync_dependencies()                                                   │
│   370 │   │   │   if not self.skip_install:                                                      │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/env/virtual.py:157 in   │
│ create                                                                                           │
│                                                                                                  │
│   154 """                                                                                        │
│   155 │   │   │   │   )                                                                          │
│   156 │   │                                                                                      │
│ ❱ 157 │   │   with self.expose_uv():                                                             │
│   158 │   │   │   self.virtual_env.create(self.parent_python, allow_system_packages=self.confi   │
│   159 │                                                                                          │
│   160 │   def remove(self):                                                                      │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/env/virtual.py:99 in    │
│ expose_uv                                                                                        │
│                                                                                                  │
│    96 │   │   return UVVirtualEnv if self.use_uv else VirtualEnv                                 │
│    97 │                                                                                          │
│    98 │   def expose_uv(self):                                                                   │
│ ❱  99 │   │   if not (self.use_uv or self.uv_path):                                              │
│   100 │   │   │   return nullcontext()                                                           │
│   101 │   │                                                                                      │
│   102 │   │   return EnvVars({'HATCH_UV': self.uv_path})                                         │
│                                                                                                  │
│ /Users/juftin/.pyenv/versions/3.11.8/lib/python3.11/functools.py:1001 in __get__                 │
│                                                                                                  │
│    998 │   │   │   │   # check if another thread filled cache while we awaited lock              │
│    999 │   │   │   │   val = cache.get(self.attrname, _NOT_FOUND)                                │
│   1000 │   │   │   │   if val is _NOT_FOUND:                                                     │
│ ❱ 1001 │   │   │   │   │   val = self.func(instance)                                             │
│   1002 │   │   │   │   │   try:                                                                  │
│   1003 │   │   │   │   │   │   cache[self.attrname] = val                                        │
│   1004 │   │   │   │   │   except TypeError:                                                     │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/env/virtual.py:116 in   │
│ uv_path                                                                                          │
│                                                                                                  │
│   113 │   │   │   # Prevent recursive loop                                                       │
│   114 │   │   │   self.name == env_name                                                          │
│   115 │   │   │   # Only if dependencies have been set by the user                               │
│ ❱ 116 │   │   │   or is_default_environment(env_name, self.app.project.config.internal_envs[en   │
│   117 │   │   ):                                                                                 │
│   118 │   │   │   uv_env = self.app.get_environment(env_name)                                    │
│   119 │   │   │   self.app.prepare_environment(uv_env)                                           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'SafeApplication' object has no attribute 'project'

@juftin
Copy link
Owner Author

juftin commented May 12, 2024

There's a simple fix to this issue:

-        return PipCompileEnvironment(
-            root=self.root,
-            metadata=self.metadata,
-            name=environment_name,
-            config=self.pipools_environment_dict.get(environment_name, {}),
-            matrix_variables=self.matrix_variables,
-            data_directory=self.data_directory,
-            isolated_data_directory=self.isolated_data_directory,
-            platform=Platform(),
-            verbosity=self.verbosity,
-            app=None,
-        )
+        if isinstance(self.app, hatch.cli.Application):
+            env = self.app.get_environment(env_name=environment_name)
+        else:
+            env = PipCompileEnvironment(
+                root=self.root,
+                metadata=self.metadata,
+                name=environment_name,
+                config=self.pipools_environment_dict.get(environment_name, {}),
+                matrix_variables=self.matrix_variables,
+                data_directory=self.data_directory,
+                isolated_data_directory=self.isolated_data_directory,
+                platform=Platform(),
+                verbosity=self.verbosity,
+                app=None,
+            )
+        return env

However this results in a new Pathlib recursion error (big +1 for HATCH_DEBUG btw):

Details

rm -rf ./.venv/ ./requirements.txt ./requirements/ && HATCH_DEBUG=1 hatch run test:test
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/__init__.py:221 in  │
│ main                                                                                             │
│                                                                                                  │
│   218                                                                                            │
│   219 def main():  # no cov                                                                      │
│   220 │   try:                                                                                   │
│ ❱ 221 │   │   hatch(prog_name='hatch', windows_expand_args=False)                                │
│   222 │   except Exception:  # noqa: BLE001                                                      │
│   223 │   │   import sys                                                                         │
│   224                                                                                            │
│                                                                                                  │
│ ╭──────────────────────── locals ─────────────────────────╮                                      │
│ │     Console = <class 'rich.console.Console'>            │                                      │
│ │     console = <console width=214 ColorSystem.TRUECOLOR> │                                      │
│ │ hatch_debug = True                                      │                                      │
│ │         sys = <module 'sys' (built-in)>                 │                                      │
│ ╰─────────────────────────────────────────────────────────╯                                      │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1157 in         │
│ __call__                                                                                         │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1078 in main    │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1688 in invoke  │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:1434 in invoke  │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:783 in invoke   │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/decorators.py:33 in     │
│ new_func                                                                                         │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/run/__init__.py:141 │
│ in run                                                                                           │
│                                                                                                  │
│   138 │   elif not env_name:                                                                     │
│   139 │   │   env_name = 'system'                                                                │
│   140 │                                                                                          │
│ ❱ 141 │   ctx.invoke(                                                                            │
│   142 │   │   run_command,                                                                       │
│   143 │   │   args=[command, *final_args],                                                       │
│   144 │   │   env_names=[env_name],                                                              │
│                                                                                                  │
│ ╭──────────────────────────────────── locals ────────────────────────────────────╮               │
│ │                app = <hatch.cli.application.Application object at 0x10143c110> │               │
│ │                arg = 'test:test'                                               │               │
│ │               args = ('test:test',)                                            │               │
│ │            command = 'test'                                                    │               │
│ │      command_start = 0                                                         │               │
│ │                ctx = <click.core.Context object at 0x10143bf50>                │               │
│ │           env_name = 'test'                                                    │               │
│ │ excluded_variables = []                                                        │               │
│ │         final_args = []                                                        │               │
│ │          first_arg = 'test:test'                                               │               │
│ │                  i = 0                                                         │               │
│ │ included_variables = []                                                        │               │
│ │               Path = <class 'hatch.utils.fs.Path'>                             │               │
│ │        run_command = <Command run>                                             │               │
│ │          separator = ':'                                                       │               │
│ ╰────────────────────────────────────────────────────────────────────────────────╯               │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/core.py:783 in invoke   │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/click/decorators.py:45 in     │
│ new_func                                                                                         │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/env/run.py:128 in   │
│ run                                                                                              │
│                                                                                                  │
│   125 │   elif not matrix_selected and (included_variables or excluded_variables):               │
│   126 │   │   app.abort(f'Variable selection is unsupported for non-matrix environments: {", "   │
│   127 │                                                                                          │
│ ❱ 128 │   for context in app.runner_context(                                                     │
│   129 │   │   environments,                                                                      │
│   130 │   │   ignore_compat=ignore_compat or matrix_selected,                                    │
│   131 │   │   display_header=matrix_selected,                                                    │
│                                                                                                  │
│ ╭─────────────────────────────────────── locals ────────────────────────────────────────╮        │
│ │                     app = <hatch.cli.application.Application object at 0x10143c110>   │        │
│ │                    args = ['test']                                                    │        │
│ │                 context = <hatch.utils.runner.ExecutionContext object at 0x100763f10> │        │
│ │                env_name = 'test'                                                      │        │
│ │               env_names = ['test']                                                    │        │
│ │            environments = ['test']                                                    │        │
│ │ excluded_variable_specs = []                                                          │        │
│ │      excluded_variables = {}                                                          │        │
│ │             filter_json = None                                                        │        │
│ │          force_continue = False                                                       │        │
│ │           ignore_compat = False                                                       │        │
│ │ included_variable_specs = []                                                          │        │
│ │      included_variables = {}                                                          │        │
│ │         matrix_selected = False                                                       │        │
│ │       ordered_env_names = ['test']                                                    │        │
│ │  parse_matrix_variables = <function parse_matrix_variables at 0x1013ca0c0>            │        │
│ │                 project = <hatch.project.core.Project object at 0x10119b650>          │        │
│ │     select_environments = <function select_environments at 0x1013cb060>               │        │
│ ╰───────────────────────────────────────────────────────────────────────────────────────╯        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:224  │
│ in runner_context                                                                                │
│                                                                                                  │
│   221 │   │   │   │   context = ExecutionContext(environment)                                    │
│   222 │   │   │   │   yield context                                                              │
│   223 │   │   │   │                                                                              │
│ ❱ 224 │   │   │   │   self.prepare_environment(environment)                                      │
│   225 │   │   │   │   with EnvVars(context.env_vars):                                            │
│   226 │   │   │   │   │   self.run_shell_commands(context)                                       │
│   227                                                                                            │
│                                                                                                  │
│ ╭─────────────────────────────────── locals ───────────────────────────────────╮                 │
│ │ any_compatible = True                                                        │                 │
│ │        context = <hatch.utils.runner.ExecutionContext object at 0x100763f10> │                 │
│ │ display_header = False                                                       │                 │
│ │       env_name = 'test'                                                      │                 │
│ │    environment = <PipCompileEnvironment - test>                              │                 │
│ │   environments = ['test']                                                    │                 │
│ │        EnvVars = <class 'hatch.utils.structures.EnvVars'>                    │                 │
│ │  ignore_compat = False                                                       │                 │
│ │   incompatible = {}                                                          │                 │
│ │           self = <hatch.cli.application.Application object at 0x10143c110>   │                 │
│ ╰──────────────────────────────────────────────────────────────────────────────╯                 │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│                                    ... 898 frames hidden ...                                     │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:143  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   140 │   │   │   │   │   │   )                                                                  │
│   141 │   │                                                                                      │
│   142 │   │   with environment.app_status_dependency_state_check():                              │
│ ❱ 143 │   │   │   new_dep_hash = environment.dependency_hash()                                   │
│   144 │   │                                                                                      │
│   145 │   │   current_dep_hash = self.env_metadata.dependency_hash(environment)                  │
│   146 │   │   if new_dep_hash != current_dep_hash:                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:105 in dependency_hash           │
│                                                                                                  │
│   102 │   │   """                                                                                │
│   103 │   │   Get the dependency hash                                                            │
│   104 │   │   """                                                                                │
│ ❱ 105 │   │   self.run_pip_compile()                                                             │
│   106 │   │   hatch_hash = super().dependency_hash()                                             │
│   107 │   │   if not self.dependencies:                                                          │
│   108 │   │   │   return hatch_hash                                                              │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:117 in run_pip_compile           │
│                                                                                                  │
│   114 │   │   """                                                                                │
│   115 │   │   Run pip-compile if necessary                                                       │
│   116 │   │   """                                                                                │
│ ❱ 117 │   │   self.prepare_environment()                                                         │
│   118 │   │   if not self.lockfile_up_to_date:                                                   │
│   119 │   │   │   with self.safe_activation():                                                   │
│   120 │   │   │   │   self.resolver.install_pypi_dependencies()                                  │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/git/hatch-pip-compile/hatch_pip_compile/plugin.py:369 in prepare_environment       │
│                                                                                                  │
│   366 │   │   Prepare the environment                                                            │
│   367 │   │   """                                                                                │
│   368 │   │   if isinstance(self.app, hatch.cli.Application):                                    │
│ ❱ 369 │   │   │   self.app.prepare_environment(environment=self)                                 │
│   370 │   │   else:                                                                              │
│   371 │   │   │   self._prepare_environment_legacy()                                             │
│   372                                                                                            │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/cli/application.py:107  │
│ in prepare_environment                                                                           │
│                                                                                                  │
│   104 │   # Ensure that this method is clearly written since it is                               │
│   105 │   # used for documenting the life cycle of environments.                                 │
│   106 │   def prepare_environment(self, environment: EnvironmentInterface):                      │
│ ❱ 107 │   │   if not environment.exists():                                                       │
│   108 │   │   │   self.env_metadata.reset(environment)                                           │
│   109 │   │   │                                                                                  │
│   110 │   │   │   with environment.app_status_creation():                                        │
│                                                                                                  │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                      │
│ │ environment = <PipCompileEnvironment - test>                            │                      │
│ │        self = <hatch.cli.application.Application object at 0x10143c110> │                      │
│ ╰─────────────────────────────────────────────────────────────────────────╯                      │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/env/virtual.py:171 in   │
│ exists                                                                                           │
│                                                                                                  │
│   168 │   │   │   │   self.storage_path.remove()                                                 │
│   169 │                                                                                          │
│   170 │   def exists(self):                                                                      │
│ ❱ 171 │   │   return self.virtual_env.exists()                                                   │
│   172 │                                                                                          │
│   173 │   def install_project(self):                                                             │
│   174 │   │   with self.safe_activation():                                                       │
│                                                                                                  │
│ ╭─────────────── locals ────────────────╮                                                        │
│ │ self = <PipCompileEnvironment - test> │                                                        │
│ ╰───────────────────────────────────────╯                                                        │
│                                                                                                  │
│ /Users/juftin/.local/pipx/venvs/hatch/lib/python3.11/site-packages/hatch/venv/core.py:66 in      │
│ exists                                                                                           │
│                                                                                                  │
│    63 │                                                                                          │
│    64 │   def exists(self):                                                                      │
│    65 │   │   directory = self.directory                                                         │
│ ❱  66 │   │   return directory.is_dir()                                                          │
│    67 │                                                                                          │
│    68 │   @property                                                                              │
│    69 │   def executables_directory(self):                                                       │
│                                                                                                  │
│ ╭───────────────────────────── locals ─────────────────────────────╮                             │
│ │ directory = Path('/Users/juftin/test/hatch-20240512/.venv/test') │                             │
│ │      self = <hatch.venv.core.VirtualEnv object at 0x102730290>   │                             │
│ ╰──────────────────────────────────────────────────────────────────╯                             │
│                                                                                                  │
│ /Users/juftin/.pyenv/versions/3.11.8/lib/python3.11/pathlib.py:1250 in is_dir                    │
│                                                                                                  │
│   1247 │   │   Whether this path is a directory.                                                 │
│   1248 │   │   """                                                                               │
│   1249 │   │   try:                                                                              │
│ ❱ 1250 │   │   │   return S_ISDIR(self.stat().st_mode)                                           │
│   1251 │   │   except OSError as e:                                                              │
│   1252 │   │   │   if not _ignore_error(e):                                                      │
│   1253 │   │   │   │   raise                                                                     │
│                                                                                                  │
│ ╭────────────────────────── locals ───────────────────────────╮                                  │
│ │ self = Path('/Users/juftin/test/hatch-20240512/.venv/test') │                                  │
│ ╰─────────────────────────────────────────────────────────────╯                                  │
│                                                                                                  │
│ /Users/juftin/.pyenv/versions/3.11.8/lib/python3.11/pathlib.py:1013 in stat                      │
│                                                                                                  │
│   1010 │   │   Return the result of the stat() system call on this path, like                    │
│   1011 │   │   os.stat() does.                                                                   │
│   1012 │   │   """                                                                               │
│ ❱ 1013 │   │   return os.stat(self, follow_symlinks=follow_symlinks)                             │
│   1014 │                                                                                         │
│   1015 │   def owner(self):                                                                      │
│   1016 │   │   """                                                                               │
│                                                                                                  │
│ ╭──────────────────────────────── locals ────────────────────────────────╮                       │
│ │ follow_symlinks = True                                                 │                       │
│ │            self = Path('/Users/juftin/test/hatch-20240512/.venv/test') │                       │
│ ╰────────────────────────────────────────────────────────────────────────╯                       │
│                                                                                                  │
│ /Users/juftin/.pyenv/versions/3.11.8/lib/python3.11/pathlib.py:547 in __fspath__                 │
│                                                                                                  │
│    544 │   │   │   return self._str                                                              │
│    545 │                                                                                         │
│    546 │   def __fspath__(self):                                                                 │
│ ❱  547 │   │   return str(self)                                                                  │
│    548 │                                                                                         │
│    549 │   def as_posix(self):                                                                   │
│    550 │   │   """Return the string representation of the path with forward (/)                  │
│                                                                                                  │
│ ╭────────────────────────── locals ───────────────────────────╮                                  │
│ │ self = Path('/Users/juftin/test/hatch-20240512/.venv/test') │                                  │
│ ╰─────────────────────────────────────────────────────────────╯                                  │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
RecursionError: maximum recursion depth exceeded while getting the str of an object

Copy link

codecov bot commented Jul 13, 2024

Codecov Report

Attention: Patch coverage is 80.86957% with 22 lines in your changes missing coverage. Please review.

Project coverage is 91.99%. Comparing base (251fcd7) to head (74db67a).

Files Patch % Lines
tests/test_integration_cli.py 83.33% 6 Missing and 6 partials ⚠️
tests/conftest.py 77.77% 5 Missing and 3 partials ⚠️
hatch_pip_compile/plugin.py 60.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #80      +/-   ##
==========================================
- Coverage   95.88%   91.99%   -3.90%     
==========================================
  Files          18       17       -1     
  Lines         972      899      -73     
  Branches      160      160              
==========================================
- Hits          932      827     -105     
- Misses         25       42      +17     
- Partials       15       30      +15     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

juftin added a commit that referenced this pull request Jul 13, 2024
@juftin juftin merged commit dddb641 into main Jul 13, 2024
13 of 15 checks passed
juftin added a commit that referenced this pull request Jul 13, 2024
@juftin juftin deleted the fix/hatch_110_regression branch July 13, 2024 20:49
@juftin
Copy link
Owner Author

juftin commented Jul 13, 2024

🎉 This PR is included in version 1.11.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AttributeError: 'SafeApplication' object has no attribute 'project'
1 participant