Miksus / rocketry

Modern scheduling library for Python
https://rocketry.readthedocs.io
MIT License
3.26k stars 105 forks source link

fix: support for nested parameters and FuncParam reference #56

Closed Miksus closed 2 years ago

Miksus commented 2 years ago

This PR allows having (session) parameters in other parameters. Might allow recursion.

It also makes it possible to reference the function as the parameter name.

These are now possible:

from rocketry.args import Arg

@app.param("my_arg_1")
def get_arg_1():
    ...

@app.param("my_arg_2")
def get_arg_2(subarg=Arg("my_arg_1")):
    ... # Nested parameter

@app.task()
def do_things(arg_1=Arg("my_arg_1"), arg_2=Arg(get_arg_2)):
    ...
codecov-commenter commented 2 years ago

Codecov Report

Merging #56 (b0c9d59) into master (7599e82) will increase coverage by 0.07%. The diff coverage is 97.29%.

@@            Coverage Diff             @@
##           master      #56      +/-   ##
==========================================
+ Coverage   90.71%   90.79%   +0.07%     
==========================================
  Files          87       87              
  Lines        4038     4050      +12     
==========================================
+ Hits         3663     3677      +14     
+ Misses        375      373       -2     
Impacted Files Coverage Δ
rocketry/tasks/command.py 91.11% <ø> (+3.87%) :arrow_up:
rocketry/args/builtin.py 89.87% <95.45%> (-1.80%) :arrow_down:
rocketry/args/secret.py 77.77% <100.00%> (ø)
rocketry/core/parameters/parameters.py 94.73% <100.00%> (+0.29%) :arrow_up:
rocketry/core/task.py 92.96% <100.00%> (+0.35%) :arrow_up:
rocketry/parameters/func.py 100.00% <100.00%> (ø)
rocketry/session.py 91.50% <100.00%> (+0.09%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 7599e82...b0c9d59. Read the comment docs.