Skip to content

Use new-style hook wrappers and require pluggy 1.3. #555

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

Merged
merged 4 commits into from
Jan 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ repos:
attrs>=21.3.0,
click,
optree,
pluggy,
pluggy>=1.3.0,
rich,
sqlalchemy>2,
types-setuptools,
Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/capture.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">2</span> tasks.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/clean-dry-run-directories.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask clean --directories
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/clean-dry-run.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask clean
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/collect-nodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/collect.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/defining-dependencies-products.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">2</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/dry-run.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask --dry-run
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/migrating-from-scripts-to-pytask.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/pdb.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask --pdb
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/persist-executed.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/persist-persisted.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/persist-skipped.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask --verbose 2
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/profiling-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask profile
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">18</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/repeating-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">10</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/show-locals.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask --show-locals
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/trace.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask --trace
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/try-first.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask -s
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">2</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/try-last.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask -s
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">2</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/warning.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/md/write-a-task.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

$ pytask
──────────────────────────── Start pytask session ────────────────────────────
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.0.0</span>
Platform: win32 -- Python <span style="color: var(--termynal-blue)">3.10.0</span>, pytask <span style="color: var(--termynal-blue)">0.4.0</span>, pluggy <span style="color: var(--termynal-blue)">1.3.0</span>
Root: C:\Users\pytask-dev\git\my_project
Collected <span style="color: var(--termynal-blue)">1</span> task.

Expand Down
1 change: 1 addition & 0 deletions docs/source/changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ releases are available on [PyPI](https://pypi.org/project/pytask) and
- {pull}`553` deprecates `paths` as a string in configuration and ensures that paths
passed via the command line are relative to CWD and paths in the configuration
relative to the config file.
- {pull}`555` uses new-style hook wrappers and requires pluggy 1.3 for typing.

## 0.4.5 - 2024-01-09

Expand Down
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ dependencies:
- click
- click-default-group
- networkx >=2.4
- pluggy >=1.0.0
- pluggy >=1.3.0
- optree >=0.9
- rich
- sqlalchemy >=2
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ dependencies = [
"networkx>=2.4",
"optree>=0.9",
"packaging",
"pluggy>=1",
"pluggy>=1.3.0",
"rich",
"sqlalchemy>=2",
'tomli>=1; python_version < "3.11"',
Expand Down
26 changes: 13 additions & 13 deletions src/_pytask/capture.py
Original file line number Diff line number Diff line change
Expand Up @@ -724,33 +724,33 @@ def task_capture(self, when: str, task: PTask) -> Generator[None, None, None]:
finally:
self.suspend(in_=False)

out, err = self.read()
if out:
task.report_sections.append((when, "stdout", out))
if err:
task.report_sections.append((when, "stderr", err))
out, err = self.read()
if out:
task.report_sections.append((when, "stdout", out))
if err:
task.report_sections.append((when, "stderr", err))

# Hooks

@hookimpl(hookwrapper=True)
@hookimpl(wrapper=True)
def pytask_execute_task_setup(self, task: PTask) -> Generator[None, None, None]:
"""Capture output during setup."""
with self.task_capture("setup", task):
yield
return (yield)

@hookimpl(hookwrapper=True)
@hookimpl(wrapper=True)
def pytask_execute_task(self, task: PTask) -> Generator[None, None, None]:
"""Capture output during execution."""
with self.task_capture("call", task):
yield
return (yield)

@hookimpl(hookwrapper=True)
@hookimpl(wrapper=True)
def pytask_execute_task_teardown(self, task: PTask) -> Generator[None, None, None]:
"""Capture output during teardown."""
with self.task_capture("teardown", task):
yield
return (yield)

@hookimpl(hookwrapper=True)
@hookimpl(wrapper=True)
def pytask_collect_log(self) -> Generator[None, None, None]:
"""Suspend capturing at the end of the collection.

Expand All @@ -763,4 +763,4 @@ def pytask_collect_log(self) -> Generator[None, None, None]:

"""
self.suspend(in_=True)
yield
return (yield)
8 changes: 4 additions & 4 deletions src/_pytask/debugging.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,14 +309,14 @@ class PdbDebugger:
"""Namespace for debugging."""

@staticmethod
@hookimpl(hookwrapper=True)
@hookimpl(wrapper=True)
def pytask_execute_task(
session: Session, task: PTask
) -> Generator[None, None, None]:
"""Execute a task by wrapping the function with post-mortem debugger."""
if isinstance(task, PTask):
wrap_function_for_post_mortem_debugging(session, task)
yield
return (yield)


def wrap_function_for_post_mortem_debugging(session: Session, task: PTask) -> None:
Expand Down Expand Up @@ -369,14 +369,14 @@ class PdbTrace:
"""Namespace for tracing."""

@staticmethod
@hookimpl(hookwrapper=True)
@hookimpl(wrapper=True)
def pytask_execute_task(
session: Session, task: PTask
) -> Generator[None, None, None]:
"""Wrap the task function with a tracer."""
if isinstance(task, PTask):
wrap_function_for_tracing(session, task)
yield
return (yield)


def wrap_function_for_tracing(session: Session, task: PTask) -> None:
Expand Down
Loading