Changelog

Contents

Changelog#

These release notes are automatically generated from commits and GitHub issues and PRs. If it is out of date, please run

GITHUB_TOKEN=$(gh auth token) uv run .github/generate-release-notes.py

v0.85.2 (2025-07-15)#

โœจ Enhancements#

  • More comprehensive default value comparison with is_equal (#860)

๐Ÿ› Bug Fixes#

  • Consistently return None if error happens in _is_equal (#863)

๐Ÿ“š Documentation#

  • Add pipefunc.helpers.launch_maps to docs (#862)

๐Ÿ“Š Stats#

  • .md: +78 lines, -0 lines

  • .py: +145 lines, -63 lines

v0.85.1 (2025-07-10)#

๐Ÿ› Bug Fixes#

  • Cast to bool to prevent issues with custom equality methods (#859)

  • FIX Pipeline.update_defaults with inputs that do not support eq (#857)

โœจ Enhancements#

  • Allow comparing pandas.DataFrames (#858)

๐Ÿ“Š Stats#

  • .py: +71 lines, -2 lines

v0.85.0 (2025-07-08)#

โœจ Enhancements#

  • Add pipeline.update_mapspec_axes (#855)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#853)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .py: +92 lines, -0 lines

v0.84.0 (2025-07-02)#

โœจ Enhancements#

  • Keep ErrorSnapshot even when parallel (#813)

  • Add validation for inputs parameters to gather_maps (#847)

๐Ÿ› Bug Fixes#

  • Rename kwargs when creating ErrorSnapshot (#851)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#848)

  • [pre-commit.ci] pre-commit autoupdate (#845)

๐Ÿ“š Documentation#

  • Measure overhead of Pipeline.run (#850)

  • Ensure that gather_maps and launch_maps are in the documentation (#846)

๐Ÿงน Maintenance#

  • Set orient="TB" and auto group args in plotting widget (#849)

๐Ÿ“Š Stats#

  • .py: +352 lines, -126 lines

  • .yaml: +3 lines, -3 lines

  • .yml: +4 lines, -4 lines

  • .md: +49 lines, -5 lines

  • .toml: +4 lines, -1 lines

v0.83.0 (2025-06-20)#

๐Ÿงน Maintenance#

  • Add typed handle_pipefunc_error function (#844)

  • Move ErrorSnapshot to exceptions.py (#843)

โœจ Enhancements#

  • Add info about unresolved variants when VariantPipeline.__getattr__ raises an AttributeError (#841)

  • Allow for a scope-keyed nested dictionary as update_defaults input (#840)

๐Ÿค– CI#

  • Fix labels in .github/update-environment.py script (#839)

๐Ÿงช Testing#

  • Update tests to new adaptive-scheduler (#838)

๐Ÿ“š Documentation#

  • Add documentation about โ€œSplitting a map into Multiple Jobsโ€ (#837)

  • Update CHANGELOG.md until v0.82.4 (#836)

๐Ÿ“Š Stats#

  • .py: +345 lines, -131 lines

  • .md: +417 lines, -0 lines

  • .yml: +0 lines, -6 lines

v0.82.4 (2025-06-19)#

โœจ Enhancements#

  • Allow setting size_per_learner for resources_scope == "map" (#835)

๐Ÿ“Š Stats#

  • .py: +3 lines, -3 lines

v0.82.3 (2025-06-19)#

โœจ Enhancements#

  • Better clearing of the SlurmExecutor dicts (#834)

๐Ÿ“Š Stats#

  • .py: +64 lines, -13 lines

v0.82.2 (2025-06-19)#

๐Ÿ› Bug Fixes#

  • Ensure executor_type is not None (#833)

๐Ÿ“Š Stats#

  • .py: +11 lines, -1 lines

v0.82.1 (2025-06-19)#

๐Ÿ› Bug Fixes#

  • Fix xarray conversion case where index is not hashable (#832)

  • Fix constructing xarray.Dataset when dims donโ€™t match (#831)

โœจ Enhancements#

  • Validate inputs to launch_maps and gather_maps (#830)

๐Ÿ“Š Stats#

  • .py: +240 lines, -25 lines

v0.82.0 (2025-06-18)#

โœจ Enhancements#

  • Add support for suppressing runtime error logs in PipeFunc and Pipeline classes (#827)

  • Add max_completed_tabs for OutputTabs (#824)

  • Track status in tabs of OutputTabs widget (#821)

๐Ÿงน Maintenance#

  • Create OutputTabs in the main thread instead of in async context (#829)

๐Ÿ› Bug Fixes#

  • Workaround for VS Code ipywidgets issue (#828)

  • pipeline.subpipeline handles optional inputs as required when validating new root args (#826)

๐Ÿ“š Documentation#

  • FastMCP is pip-only (#823)

  • Include MCP in docs build (#822)

๐Ÿ“Š Stats#

  • .py: +359 lines, -51 lines

  • .yml: +6 lines, -0 lines

v0.81.0 (2025-06-13)#

โœจ Enhancements#

  • Add widget for running multiple maps (#819)

  • Add gather_maps to start multiple Pipeline.map_async instances (#818)

  • Add Pipeline.map_async(..., display_widgets=False) argument (#817)

  • Add Pipeline.map_async(..., start=False) option (#816)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update python to v3.13.5 (#814)

๐Ÿ“Š Stats#

  • .py: +334 lines, -34 lines

  • .yml: +1 lines, -1 lines

  • .yaml: +1 lines, -1 lines

v0.80.2 (2025-06-12)#

โœจ Enhancements#

  • Allow setting executor_type for SlurmExecutor (#812)

๐Ÿ“Š Stats#

  • .py: +47 lines, -3 lines

v0.80.1 (2025-06-10)#

๐Ÿ› Bug Fixes#

  • Only auto-wrap in FileArray if resource_scope="element" (#809)

๐Ÿ“Š Stats#

  • .py: +2 lines, -2 lines

v0.80.0 (2025-06-10)#

โœจ Enhancements#

  • Automatically wrap data in FileArray or FileValue (#795)

๐Ÿ“Š Stats#

  • .py: +91 lines, -0 lines

v0.79.0 (2025-06-09)#

โœจ Enhancements#

  • Add load_outputs to MCP (#808)

  • Add list_historical_runs to MCP server (#807)

  • Add get run_info for MCP (#806)

  • Improve MCP instructions (#805)

  • Allow submitting async jobs with MCP (#801)

  • Add headless progressbar (#802)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#796)

๐Ÿ› Bug Fixes#

  • Force 100% ANSI in MCP autogenerated docs (#803)

๐Ÿงน Maintenance#

  • Rename input to inputs for MCP (#800)

๐Ÿ“Š Stats#

  • .yaml: +2 lines, -2 lines

  • .py: +1339 lines, -238 lines

v0.78.0 (2025-06-06)#

โœจ Enhancements#

  • Automatically generate an MCP tool for pipelines (#798)

  • Dynamically set the width of the description in the progress bar (#799)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update python to v3.13.4 (#797)

๐Ÿ“Š Stats#

  • .yml: +1 lines, -1 lines

  • .yaml: +1 lines, -1 lines

  • .md: +9 lines, -0 lines

  • .py: +568 lines, -4 lines

  • .toml: +2 lines, -1 lines

v0.77.3 (2025-05-29)#

โœจ Enhancements#

  • Use chunksize=1 for SlurmExecutor when auto-chunking (#794)

๐Ÿ“Š Stats#

  • .py: +10 lines, -7 lines

v0.77.2 (2025-05-29)#

๐Ÿ› Bug Fixes#

  • Ensure that progress bar is displayed for "eager" scheduling (#793)

๐Ÿงน Maintenance#

  • Refactor IPyWidgetsProgressTracker (#792)

๐Ÿ“š Documentation#

  • Use sharp peak in adaptive docs (#790)

๐Ÿ“Š Stats#

  • .md: +6 lines, -6 lines

  • .py: +129 lines, -83 lines

v0.77.1 (2025-05-28)#

โœจ Enhancements#

  • Show progress for auto-CLI (#789)

๐Ÿ› Bug Fixes#

  • Do not show_progress for Adaptive (#788)

๐Ÿงน Maintenance#

  • Fix type annotation of Pipeline.info() (#787)

๐Ÿ“Š Stats#

  • .py: +5 lines, -5 lines

v0.77.0 (2025-05-27)#

โœจ Enhancements#

  • Implement a rich version of ProgressTracker (#785)

  • Add support for additional Executor classes (#786)

  • Automatically show progress bar if show_progress=None if possible (#783)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#784)

  • [pre-commit.ci] pre-commit autoupdate (#782)

๐Ÿงช Testing#

  • Use nox for testing (#781)

๐Ÿ› Bug Fixes#

  • Rename container CSS property to less generic progress-vbox (#780)

๐Ÿ“Š Stats#

  • .py: +949 lines, -59 lines

  • .yml: +2 lines, -26 lines

  • .yaml: +1 lines, -1 lines

  • .md: +1 lines, -0 lines

  • .ipynb: +1 lines, -0 lines

  • .py}: +97 lines, -147 lines

v0.76.0 (2025-05-13)#

๐Ÿ› Bug Fixes#

  • Fix ref._evaluate on Python 3.12 Linux (#779)

๐Ÿงน Maintenance#

  • Fix pydantic deprecation and serialization warnings (#778)

  • Reduce the number of warnings in the tests (#777)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#773)

โœจ Enhancements#

  • Automatically pick storage (if None) based on run_folder (#776)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .py: +144 lines, -74 lines

v0.75.0 (2025-05-12)#

โœจ Enhancements#

  • Add a slight pulse animation when progress bar reaches 100% (#775)

  • Apply slight animation with CSS on hover (#774)

๐Ÿ“Š Stats#

  • .py: +44 lines, -11 lines

v0.74.0 (2025-05-12)#

โœจ Enhancements#

  • Set background colors per scope in ProgressTracker widget (#772)

  • Use unique border colors different scopes for progress bars (#771)

  • Improved progress bar updating (#764)

  • Only show failed count if anything failed (#760)

๐Ÿงน Maintenance#

  • Remove --cov-fail-under=35 because not needed (codspeed doesnโ€™t meet it) (#770)

  • Rename AsyncMapStatusWidget to AsyncTaskStatusWidget (#761)

๐Ÿ› Bug Fixes#

  • Improve displaying long names in progress bar widget (#769)

  • Allow chunksizes={"": None, ...} (#767)

๐Ÿ“Š Stats#

  • .py: +191 lines, -91 lines

  • .toml: +0 lines, -1 lines

v0.73.0 (2025-05-09)#

โœจ Enhancements#

  • Implement AsyncMapStatusWidget with ipyw.HTML instead of ipyw.Output (#759)

  • Add widget that shows task status when running pipeline.map_async (#755)

๐Ÿ› Bug Fixes#

  • Fix ProgressTracker for async failures (#758)

๐Ÿงน Maintenance#

  • Use Prepared in run_map_async (#757)

  • Rely on NamedTuple returned by prepare_run (#756)

๐Ÿ“Š Stats#

  • .py: +888 lines, -64 lines

v0.72.0 (2025-05-07)#

โœจ Enhancements#

  • Add FileValue and rename FileArray.from_array to FileArray.from_data (#749)

  • Add FileArray.from_array and allow to use it as input (#747)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#746)

๐Ÿ“š Documentation#

  • Add FileArray.from_array SLURM docs (#748)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .md: +107 lines, -0 lines

  • .py: +212 lines, -62 lines

v0.71.0 (2025-05-02)#

๐Ÿ“š Documentation#

  • Fix type annotation in docs/source/examples/weather-simulation.md (#745)

  • Mention load_dataframe(run_folder) in docs (#744)

  • Update CHANGELOG.md until v0.70.0 (#741)

๐Ÿงน Maintenance#

  • Fix typos in code / doc-strings (#743)

โœจ Enhancements#

  • Add load_dataframe(run_folder) (#742)

๐Ÿ“Š Stats#

  • .md: +55 lines, -7 lines

  • .py: +59 lines, -21 lines

v0.70.0 (2025-05-01)#

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.7.2 (#651)

โœจ Enhancements#

  • Add type casting for result numpy.ndarrays using type annotations (#740)

๐Ÿ“Š Stats#

  • .json: +1 lines, -1 lines

  • .py: +190 lines, -49 lines

  • other: +1 lines, -1 lines

v0.69.1 (2025-04-30)#

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.69.0 (#738)

๐Ÿ› Bug Fixes#

  • Use _ScopedIdentifier trick in PipeFunc.original_parameters (#739)

๐Ÿ“Š Stats#

  • .md: +58 lines, -15 lines

  • .py: +71 lines, -5 lines

v0.69.0 (2025-04-30)#

โœจ Enhancements#

  • Add PipeFunc.__signature__ (allows doubly wrapping PipeFunc) (#727)

  • Make output_name of NestedPipeFunc depend on the topological ordering (#735)

  • Ensure deterministic order in generations and Pipeline.sorted_functions (#736)

  • Make output_name of NestedPipeFunc depend on the topological ordering (84baccf)

๐Ÿ› Bug Fixes#

  • Fix NestedPipeFunc.parameter_annotations with renames (#737)

  • Fix creating NestedPipeFunc and binding a existing default (#734)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update astral-sh/setup-uv action to v6 (#732)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#733)

  • [pre-commit.ci] pre-commit autoupdate (#731)

  • [pre-commit.ci] pre-commit autoupdate (#730)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.68.0 (#729)

๐Ÿ“Š Stats#

  • .yml: +3 lines, -3 lines

  • .yaml: +1 lines, -1 lines

  • .md: +93 lines, -10 lines

  • .py: +468 lines, -10 lines

v0.68.0 (2025-04-11)#

Closed Issues#

  • Running in parallel when some inputs canโ€™t be pickled (#726)

  • Difficulties renaming existing pipefunc (#723)

  • Allowing debugging of intermediate results when pipeline fails midway (#722)

  • Allowing DFS parallelization in .map (#721)

  • Make results numpy array optional (#472)

๐Ÿ› Bug Fixes#

  • Fix single size pandas.DataFrame (#716)

  • Fix 2 ND elements in xarray issues (#728)

  • Display mapspec index in grouped Graphviz nodes (#719)

โœจ Enhancements#

  • Add load_all_outputs (#725)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update python to v3.13.3 (#714)

๐Ÿ“Š Stats#

  • .yml: +1 lines, -1 lines

  • .yaml: +1 lines, -1 lines

  • .py: +196 lines, -11 lines

v0.67.0 (2025-04-10)#

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#679)

โœจ Enhancements#

  • Allow adding ND axis with add_mapspec_axis (#717)

๐Ÿค– CI#

  • Set fetch-depth: 0 (#713)

๐Ÿ“Š Stats#

  • .py: +127 lines, -5 lines

  • .yml: +2 lines, -0 lines

  • .yaml: +1 lines, -1 lines

  • .md: +44 lines, -0 lines

v0.66.0 (2025-04-08)#

๐Ÿงน Maintenance#

  • Refactor prepare_run return type (#712)

โœจ Enhancements#

  • Allow providing single output_name of tuple in executor, storage, chunksizes (#711)

๐Ÿ“Š Stats#

  • .py: +150 lines, -48 lines

v0.65.1 (2025-04-08)#

๐Ÿ› Bug Fixes#

  • Fix that NestedPipeFunc.copy preserves cache (#710)

๐Ÿ“Š Stats#

  • .py: +78 lines, -2 lines

v0.65.0 (2025-04-08)#

โœจ Enhancements#

  • Add Group Args to visualize_graphviz_widget (#709)

  • Add orient widget to visualize_graphviz_widget (#708)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.64.0 (#707)

๐Ÿ“Š Stats#

  • .md: +22 lines, -0 lines

  • .py: +86 lines, -21 lines

v0.64.0 (2025-04-08)#

โœจ Enhancements#

  • Add โ€œshow default argsโ€ and collapsable scopes to widget (#706)

  • Allow hiding nodes with default values (#703)

๐Ÿงน Maintenance#

  • Pin numcodecs<0.16.0 (#704)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.63.0 (#702)

๐Ÿ“Š Stats#

  • .py: +360 lines, -23 lines

  • .md: +45 lines, -0 lines

  • .yml: +4 lines, -2 lines

  • .toml: +2 lines, -2 lines

v0.63.0 (2025-04-04)#

โœจ Enhancements#

  • Group parameters that are used by a single PipeFunc in visualize_graphviz (#700)

๐Ÿงช Testing#

  • Test with tmp_path and always specify parallel and storage explicitly (#701)

๐Ÿ“Š Stats#

  • .py: +467 lines, -159 lines

v0.62.0 (2025-04-03)#

โœจ Enhancements#

  • Allow collapsing scopes in Graphviz visualization (#693)

๐Ÿ“Š Stats#

  • .py: +348 lines, -12 lines

v0.61.0 (2025-04-01)#

โœจ Enhancements#

  • Add Pipeline.run(..., allow_unused=True) (#698)

๐Ÿงน Maintenance#

  • Unpin bokeh<3.7 (#685)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.60.0 (#697)

๐Ÿ“Š Stats#

  • .py: +26 lines, -3 lines

  • .md: +55 lines, -0 lines

  • .yml: +4 lines, -4 lines

  • .toml: +2 lines, -1 lines

v0.60.0 (2025-03-28)#

โœจ Enhancements#

  • Allow multiple leaf nodes in NestedPipeFunc (#696)

  • Allow scoped PipeFuncs inside NestedPipeFunc (#692)

  • Allow returning multiple outputs in Pipeline.run (#694)

๐Ÿ› Bug Fixes#

  • Fix NestedPipeFunc.output_annotation to handle renamed outputs with scopes (#695)

๐Ÿงน Maintenance#

  • Add uv run shebang to get-notebooks.py (#691)

๐Ÿงช Testing#

  • Skip flaky test_pipeline_with_heterogeneous_executor on nogil (#690)

  • Skip test_parallel_memory_storage on 3.13 (#689)

  • Actually test NestedPipeFunc with SlurmExecutor (#687)

๐Ÿ“Š Stats#

  • .md: +13 lines, -23 lines

  • .py: +345 lines, -62 lines

  • .toml: +1 lines, -0 lines

v0.59.1 (2025-03-19)#

๐Ÿ› Bug Fixes#

  • Fix missing resources_scope in NestedPipeFunc (#686)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.59.0 (#684)

๐Ÿ“Š Stats#

  • .py: +50 lines, -4 lines

  • .md: +113 lines, -10 lines

v0.59.0 (2025-03-18)#

โœจ Enhancements#

  • Add ResultDict.to_dataframe() (#681)

๐Ÿงน Maintenance#

  • Pin bokeh<3.7 (#682)

๐Ÿค– CI#

  • Use uv build for PyPI releases (#680)

๐Ÿ“Š Stats#

  • .yml: +5 lines, -12 lines

  • .py: +80 lines, -2 lines

  • .toml: +1 lines, -1 lines

v0.58.1 (2025-03-11)#

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#676)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Pin python to 3.13.2 (#677)

๐Ÿงช Testing#

  • Speedup tests (#675)

โœจ Enhancements#

  • Select default initially in VariantPipeline selection widget (#674)

๐Ÿ“Š Stats#

  • .yml: +2 lines, -2 lines

  • .yaml: +2 lines, -2 lines

  • .py: +128 lines, -23 lines

v0.58.0 (2025-03-06)#

๐Ÿงช Testing#

  • Add scheduling_strategy="eager" benchmarks (#669)

โœจ Enhancements#

  • Allow multiple variant groups per PipeFunc (breaking change) (#673)

๐Ÿ“Š Stats#

  • .md: +11 lines, -11 lines

  • .py: +414 lines, -171 lines

v0.57.2 (2025-03-05)#

๐Ÿ› Bug Fixes#

  • Prefix the SLURM job names with executor.name (#671)

๐Ÿ“Š Stats#

  • .py: +9 lines, -4 lines

v0.57.1 (2025-03-05)#

๐Ÿ› Bug Fixes#

  • Fix progress bar for chunksize>1 (#668)

  • Fix deepcopy/serialization for Pipeline with shared cache (#657)

  • FIX ResultDict.to_xarray when no inputs (#667)

  • Prevent ZeroDivisionError in auto-chunks (#666)

๐Ÿงช Testing#

  • Add auto_subpipeline test (#661)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.57.0 (#664)

๐Ÿ“Š Stats#

  • .md: +60 lines, -1 lines

  • .py: +296 lines, -38 lines

v0.57.0 (2025-03-04)#

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#660)

โœจ Enhancements#

  • Add ResultDict.to_xarray (#656)

  • Add pipeline.map_async(..., scheduling_strategy="eager") (#662)

  • Eager execution of graph, adds pipeline.map(..., scheduling_strategy="eager") (#659)

๐Ÿ“Š Stats#

  • .py: +1527 lines, -15 lines

  • .yaml: +1 lines, -1 lines

v0.56.0 (2025-03-01)#

โœจ Enhancements#

  • Add option to pipeline.map(..., return_results=False) (#626)

  • Simplify dynamic shape setting (do not rely on result_array) (#652)

๐Ÿ› Bug Fixes#

  • Fix DictArray with internal_shape whoโ€™s entries have an additional dimension (#654)

  • Fix persist and load DictArray and SharedMemoryDictArray (#653)

๐Ÿ“Š Stats#

  • .py: +527 lines, -145 lines

v0.55.2 (2025-02-24)#

๐Ÿ› Bug Fixes#

  • Deal with defaults in the CLI that are not set (#650)

๐Ÿ“Š Stats#

  • .md: +6 lines, -0 lines

  • .py: +16 lines, -2 lines

v0.55.1 (2025-02-24)#

๐Ÿ› Bug Fixes#

  • Fix CLI with None default (#649)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.55.0 (#648)

๐Ÿ“Š Stats#

  • .py: +80 lines, -34 lines

  • .md: +56 lines, -0 lines

v0.55.0 (2025-02-24)#

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.6.2 (#633)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#646)

๐Ÿงน Maintenance#

  • Add rich-argparse to extras (#645)

๐Ÿ“š Documentation#

  • Fix Xarray CSS in dark mode for sphinx-book-theme (#372)

  • Add real outputs to the CLI docs (#647)

  • Add CLI concepts page (#642)

โœจ Enhancements#

  • Add docs subcommand to CLI (#644)

  • Add Pipeline.cli() that automatically generates a CLI (#607)

  • Add Pipeline.pydantic_model (#609)

๐Ÿ› Bug Fixes#

  • Extract type annotation for classmethod (#641)

๐Ÿ“Š Stats#

  • .json: +1 lines, -1 lines

  • .py: +1090 lines, -15 lines

  • .yaml: +1 lines, -1 lines

  • .yml: +12 lines, -8 lines

  • .css: +15 lines, -0 lines

  • .md: +261 lines, -0 lines

  • .toml: +6 lines, -4 lines

  • other: +1 lines, -1 lines

v0.54.1 (2025-02-17)#

โœจ Enhancements#

  • Add support for SlurmExecutor in get_ncores (#640)

๐Ÿ“š Documentation#

  • Update CHANGELOG.md until v0.54.0 (#639)

๐Ÿ“Š Stats#

  • .md: +70 lines, -0 lines

  • .py: +7 lines, -0 lines

v0.54.0 (2025-02-17)#

๐Ÿ› Bug Fixes#

  • Fix correct number of SLURM jobs for both resources_scope options (#638)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#637)

โœจ Enhancements#

  • Allow setting permissions in DiskCache (#636)

๐Ÿ“Š Stats#

  • .yaml: +2 lines, -2 lines

  • .py: +114 lines, -8 lines

v0.53.3 (2025-02-06)#

๐Ÿ› Bug Fixes#

  • Fix data loading with dynamic shapes (#635)

๐Ÿ“Š Stats#

  • .py: +20 lines, -10 lines

v0.53.2 (2025-02-05)#

๐Ÿ› Bug Fixes#

  • Fix ND mapspec with multiple outputs and internal_shape (#634)

๐Ÿ“Š Stats#

  • .py: +30 lines, -2 lines

v0.53.1 (2025-02-05)#

Closed Issues#

  • Stateful callable output caching (#510)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.27 (#564)

โœจ Enhancements#

  • Raise more informative error when unknown variant selected (#632)

๐Ÿ“š Documentation#

  • Enable Plausible analytics (#631)

  • Explain alternative SLURM method (#630)

  • Add SLURM tutorial (#629)

  • Fix links in documentation (#625)

  • Update CHANGELOG.md until v0.53.0 (#624)

  • Add page about caching (#623)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#628)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .md: +736 lines, -81 lines

  • .py: +12 lines, -4 lines

  • .ipynb: +1 lines, -1 lines

  • other: +1 lines, -1 lines

v0.53.0 (2025-01-31)#

โœจ Enhancements#

  • Include __pipefunc_hash__ of function to determine the cache key (#515)

  • Allow custom class with __call__ (#619)

  • Implement NestedPipeFunc.parameter_annotations (#621)

  • Implement Pipeline.parameter_annotations and Pipeline.output_annotations (#622)

๐Ÿ› Bug Fixes#

  • Fix defaults and positional args (#620)

๐Ÿงน Maintenance#

  • Set zarr>=2,<3 in [extras] (#618)

๐Ÿ“Š Stats#

  • .py: +195 lines, -32 lines

  • .toml: +1 lines, -1 lines

v0.52.1 (2025-01-30)#

๐Ÿ› Bug Fixes#

  • Fix pipefunc import with Zarr v3 (which is currently incompatible) (#617)

๐Ÿ“Š Stats#

  • .py: +5 lines, -1 lines

v0.52.0 (2025-01-30)#

โœจ Enhancements#

  • Make Pipeline.validate() public (#616)

  • Add __repr__ to Storage classes (#614)

๐Ÿ“š Documentation#

  • Update release notes up to v0.51.4 (#613)

๐Ÿ“Š Stats#

  • .md: +60 lines, -0 lines

  • .py: +53 lines, -10 lines

v0.51.4 (2025-01-28)#

๐Ÿ› Bug Fixes#

  • Fix unresolved shape in โ‰ฅ2D arrays (#612)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#608)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .py: +87 lines, -5 lines

v0.51.3 (2025-01-27)#

โœจ Enhancements#

  • Raise an appropriate error when returning different shapes with internal_shapes (#610)

๐Ÿ› Bug Fixes#

  • Fix 1 sized internal_shapes (#611)

๐Ÿ“Š Stats#

  • .py: +58 lines, -5 lines

v0.51.2 (2025-01-26)#

๐Ÿงน Maintenance#

  • Fix dependency name in [extras] (matplotlib-base is conda name) (#606)

๐Ÿ“š Documentation#

  • Fix URLs linking to examples (#604)

๐Ÿ“Š Stats#

  • .py: +1 lines, -1 lines

  • .ipynb: +12 lines, -7 lines

  • .toml: +1 lines, -1 lines

v0.51.1 (2025-01-25)#

๐Ÿงน Maintenance#

  • Rename [extra] optional dependencies to [extras] to align with pipefunc-extras (#603)

๐Ÿ“š Documentation#

  • Update release notes up to 0.51.0 (#602)

๐Ÿ“Š Stats#

  • .md: +51 lines, -0 lines

  • .toml: +2 lines, -2 lines

v0.51.0 (2025-01-24)#

โœจ Enhancements#

  • Make Result a dataclass to avoid confusion with tuples (#601)

  • Return a ResultDict that limits __repr__ length in pipeline.map (#600)

๐Ÿ“Š Stats#

  • .py: +73 lines, -31 lines

v0.50.4 (2025-01-24)#

๐Ÿ› Bug Fixes#

  • Fix case with SlurmExecutor.finalize() but nothing was submitted (#599)

โœจ Enhancements#

  • Make AsyncMap a dataclass instead of NamedTuple (#598)

๐Ÿค– CI#

  • Do not allow FIX: prefix (#597)

๐Ÿ“Š Stats#

  • .py: +7 lines, -3 lines

  • .json: +0 lines, -1 lines

  • .yml: +2 lines, -1 lines

v0.50.3 (2025-01-24)#

Closed Issues#

  • BUG: Profiling Pipeline.map only works with parallel=False (#547)

๐Ÿ› Bug Fixes#

  • Fix ZeroDivisionError in ProgressBar (#596)

โœจ Enhancements#

  • Emit warning when profile=True and parallel=True (#594)

  • Allow setting custom colors in GraphViz graphs (#593)

๐Ÿ“š Documentation#

  • Release notes for 0.50.2 (#592)

๐Ÿ“Š Stats#

  • .md: +18 lines, -0 lines

  • .py: +179 lines, -45 lines

v0.50.2 (2025-01-23)#

Closed Issues#

  • DOC: uv tip in tutorial.md is incorrect (#588)

๐Ÿงน Maintenance#

  • Add pipefunc[extra] optional dependencies to match pipefunc-extra on conda-forge (#591)

๐Ÿ“š Documentation#

  • Fix URL of tutorial in uv tip (#590)

  • Update release notes and improve generation script (#589)

๐Ÿ“Š Stats#

  • .py: +38 lines, -8 lines

  • .md: +29 lines, -1 lines

  • .ipynb: +3 lines, -3 lines

  • .toml: +19 lines, -2 lines

v0.50.1 (2025-01-23)#

๐Ÿ› Bug Fixes#

  • Fix map over iterable with internal shape to xarray (#587)

๐Ÿค– CI#

  • Add PR title checking workflow (#586)

๐Ÿ“š Documentation#

  • Add CHANGELOG as a page to the documentation (#584)

  • Add example with ErrorSnapshot and Pipeline (#585)

  • Automatically generate CHANGELOG.md (#580)

  • Add get-notebooks.py to the docs (#582)

๐Ÿงช Testing#

  • Check that info for NestedPipeFunc has no absorbed intermediate outputs (#583)

๐Ÿ“Š Stats#

  • .py: +405 lines, -0 lines

  • .json: +27 lines, -0 lines

  • .yml: +52 lines, -0 lines

  • .md: +1932 lines, -1 lines

v0.50.0 (2025-01-21)#

Closed Issues#

  • Automatically parse doc-strings to generate Pipeline docs (#562)

  • Create freeze button for scroll action in visualize_widget (#561)

  • Scoped pipelines cannot be nested (#374)

๐Ÿ“š Documentation#

  • Add get-notebooks.py script that downloads all notebooks and puts them in a folder (#581)

  • Add Raises section to Pipeline.update_scopeโ€™s docstring (#572)

โœจ Enhancements#

  • Automatically generate documentation for Pipelines (#563)

  • Add literals of common storage options to map and map_async annotations (#575)

๐Ÿงช Testing#

  • Include pydantic in the micromamba testing environment.yaml (#579)

  • Fix tests/test_plotting.py::test_plotting_widget (#576)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#577)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update release-drafter/release-drafter action to v6.1.0 (#574)

๐Ÿ“Š Stats#

  • .py: +1333 lines, -14 lines

  • .yaml: +2 lines, -2 lines

  • .yml: +8 lines, -0 lines

  • .md: +73 lines, -3 lines

  • .toml: +2 lines, -1 lines

v0.49.6 (2025-01-17)#

โœจ Enhancements#

  • Raise an exception if scope was not added to anything (#571)

๐Ÿ“Š Stats#

  • .py: +15 lines, -1 lines

v0.49.5 (2025-01-17)#

๐Ÿ› Bug Fixes#

  • Fix using Pipeline.arg_combinations to calculate root_args (#570)

๐Ÿ“š Documentation#

  • Fix admonition in example.ipynb (#569)

  • Rename uvtip -> try-notebook and use in example.ipynb (#568)

  • Use triple backticks around uv command (#567)

  • Add custom uvtip directive (#566)

  • Small fixes (#555)

๐Ÿ“Š Stats#

  • .md: +70 lines, -85 lines

  • .py: +54 lines, -15 lines

  • .ipynb: +4 lines, -12 lines

v0.49.4 (2025-01-15)#

๐Ÿ› Bug Fixes#

  • Fix bound in NestedPipeFunc with scope and map (#560)

๐Ÿ“š Documentation#

  • Recommendations of order (#559)

๐Ÿ“Š Stats#

  • .md: +7 lines, -1 lines

  • .ipynb: +1 lines, -0 lines

  • .py: +77 lines, -46 lines

v0.49.3 (2025-01-15)#

๐Ÿ› Bug Fixes#

  • Fix bound in NestedPipeFunc inside Pipeline (#557)

๐Ÿ“Š Stats#

  • .py: +106 lines, -0 lines

v0.49.2 (2025-01-14)#

Closed Issues#

  • NestedPipeFunction in graph show wrong datatype (#487)

๐Ÿ“š Documentation#

  • Fix propagating defaults in NestedPipeFunc (#558)

  • Rename โ€œBenchmarkingโ€ to โ€œOverhead and Efficiencyโ€ (#553)

  • Add visualize() to basic-usage.md (#552)

  • Add opennb to all examples (#551)

  • Separate out examples into pages (#550)

  • Fix simple typo (#549)

  • Mention uv and opennb early in tutorial (#548)

  • Reoganize the docs into pages (#545)

โœจ Enhancements#

  • Change the order in which keys appear in pipeline.info (#554)

๐Ÿ“Š Stats#

  • .md}: +8 lines, -1 lines

  • .md: +2581 lines, -1351 lines

  • .py: +76 lines, -9 lines

  • .ipynb: +17 lines, -851 lines

v0.49.1 (2025-01-13)#

๐Ÿ› Bug Fixes#

  • Fix NestedPipeFunction in graph show wrong datatype (#546)

๐Ÿ“š Documentation#

  • Add a page about mapspec (#543)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#544)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .yml: +1 lines, -0 lines

  • .py: +44 lines, -15 lines

  • .md: +442 lines, -0 lines

  • .toml: +1 lines, -0 lines

v0.49.0 (2025-01-13)#

โœจ Enhancements#

  • Add a widget for VariantPipeline.visualize() and VariantPipeline._repr_mimebundle_ (#539)

๐Ÿ“š Documentation#

  • Add NestedPipeFunc section to example notebooks and move simplified_pipeline to FAQ (#542)

  • Fix method name of Pipeline.join in example notebook (#541)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.18 (#538)

๐Ÿ“Š Stats#

  • .md: +85 lines, -0 lines

  • .ipynb: +98 lines, -164 lines

  • .py: +283 lines, -16 lines

  • other: +1 lines, -1 lines

v0.48.2 (2025-01-11)#

๐Ÿ› Bug Fixes#

  • Add more NestedPipeFunc tests and fix multiple outputs issue with them (#536)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.17 (#535)

๐Ÿงช Testing#

  • Add multiple outputs to benchmarks (#537)

๐Ÿ“Š Stats#

  • .py: +378 lines, -4 lines

  • other: +1 lines, -1 lines

v0.48.1 (2025-01-10)#

Closed Issues#

  • Add pipeline variants (#517)

๐Ÿ› Bug Fixes#

  • Fix scope for NestedPipeFunc (#534)

๐Ÿงน Maintenance#

  • Extend .gitignore (#533)

๐Ÿ“Š Stats#

  • .py: +75 lines, -5 lines

  • other: +6 lines, -0 lines

v0.48.0 (2025-01-10)#

Closed Issues#

  • allow setting names of NestedPipeFunc by hand (#195)

โœจ Enhancements#

  • Add VariantPipelines.from_pipelines classmethod (#526)

  • Allow setting NestedPipeFunc(..., function_name="customname") (#532)

๐Ÿ“Š Stats#

  • .md: +2 lines, -0 lines

  • .py: +269 lines, -8 lines

v0.47.3 (2025-01-10)#

๐Ÿ› Bug Fixes#

  • Fix combine_mapspecs in NestedPipeFunc (#531)

๐Ÿ“Š Stats#

  • .py: +10 lines, -7 lines

v0.47.2 (2025-01-10)#

๐Ÿ› Bug Fixes#

  • Set internal_shape for NestedPipeFunc (#530)

  • Fix error message about using map_async with Slurm (#528)

  • Fix case where bound and default are set for same parameter (#525)

๐Ÿค– CI#

  • Set timeout-minutes: 10 in pytest jobs to prevent stuck 6 hour jobs (#529)

๐Ÿ“š Documentation#

  • Fix FAQ VariantPipeline example (#524)

๐Ÿ“Š Stats#

  • .yml: +2 lines, -0 lines

  • .md: +2 lines, -3 lines

  • .py: +75 lines, -2 lines

v0.47.1 (2025-01-09)#

๐Ÿ“š Documentation#

  • Add example with non-unique variant names across PipeFuncs (#520)

๐Ÿงน Maintenance#

  • Pin zarr>=2,<3 (#521)

๐Ÿ“Š Stats#

  • .yml: +2 lines, -2 lines

  • .md: +7 lines, -1 lines

  • .toml: +1 lines, -1 lines

v0.47.0 (2025-01-09)#

Closed Issues#

  • Aggregating function outputs into a dict? (#456)

โœจ Enhancements#

  • Add VariantPipeline that can generate multiple Pipeline variants (#518)

  • Add auto-chunksize heuristic (#505)

๐Ÿ“ Other#

  • Use Python 3.13 in CI where possible (#519)

  • Update Discord invite link README.md (#509)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.16 (#516)

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.15 (#514)

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.14 (#511)

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.13 (#508)

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.12 (#507)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#512)

  • [pre-commit.ci] pre-commit autoupdate (#504)

๐Ÿ“š Documentation#

  • Update number of required dependencies in README.md (#506)

  • Autoformat Markdown in FAQ and README (#503)

  • Add comparison with Snakemake (#501)

๐Ÿค– CI#

  • Revert pull_request_target: (#500)

๐Ÿ“Š Stats#

  • .py: +1196 lines, -49 lines

  • .yml: +4 lines, -4 lines

  • .yaml: +2 lines, -2 lines

  • .md: +201 lines, -63 lines

  • other: +1 lines, -1 lines

v0.46.0 (2024-12-23)#

Closed Issues#

  • Proposal: Reduce Pipeline.mapโ€™s IPC overhead with chunking (#484)

๐Ÿงช Testing#

  • Explicitly set reason in skipif (#499)

  • Skip shared memory test in CI on nogil Python (3.13t) (#498)

โœจ Enhancements#

  • Allow providing an int to chunksizes (#497)

  • Add chunksizes argument to Pipeline.map and Pipeline.map_async (#493)

๐Ÿค– CI#

  • Revert pull_request_target: for CodSpeed (#495)

  • Use pull_request_target: to trigger CI on fork (#494)

๐Ÿ“š Documentation#

  • Mention HPC vs cloud based running (#492)

  • How is this different from Dask, AiiDA, Luigi, Prefect, Kedro, Apache Airflow, etc.? (#491)

  • Add Discord shield (#490)

๐Ÿ“Š Stats#

  • .yml: +2 lines, -2 lines

  • .md: +62 lines, -1 lines

  • .py: +172 lines, -8 lines

v0.45.0 (2024-12-21)#

Closed Issues#

  • Add helpers.getattr (#480)

โœจ Enhancements#

  • Add size_per_learner for SlurmExecutor (#486)

  • Add helpers.get_attribute_factory (#481)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update astral-sh/setup-uv action to v5 (#483)

  • โฌ†๏ธ Update ghcr.io/astral-sh/uv Docker tag to v0.5.11 (#482)

๐Ÿ“š Documentation#

  • Set Python version to 3.13 in README opennb example (#479)

  • Fix header level of โ€œDynamic Output Shapes and internal_shapesโ€ (#478)

  • Small formatting fix in example in doc-string (#477)

๐Ÿ“Š Stats#

  • .yml: +4 lines, -4 lines

  • .md: +1 lines, -1 lines

  • .ipynb: +1 lines, -1 lines

  • .py: +205 lines, -8 lines

  • .toml: +1 lines, -1 lines

  • other: +1 lines, -1 lines

v0.44.0 (2024-12-19)#

โœจ Enhancements#

  • Add Pipeline._repr_mimebundle_ (#476)

  • Allow printing rich-formatted table with pipeline.info() (#475)

  • Automatically set internal_shape=("?", ...) (#463)

  • Add a .devcontainer for VS Code based on uv (#473)

๐Ÿ“š Documentation#

  • Update documentation about dynamic internal_shapes (#474)

๐Ÿ“Š Stats#

  • .json: +43 lines, -0 lines

  • .py: +162 lines, -75 lines

  • .yml: +4 lines, -0 lines

  • .ipynb: +138 lines, -73 lines

  • .toml: +2 lines, -1 lines

  • other: +18 lines, -0 lines

v0.43.0 (2024-12-19)#

Closed Issues#

  • Allow internal_shapes to be input names (str) with simple expressions (#197)

โœจ Enhancements#

  • Enable show_progress when using dynamic shapes (#471)

  • Automatically set internal_shape (#448)

๐Ÿ“š Documentation#

  • Add workaround for multiple returns with different sizes (#470)

  • Add opennb tip (#464)

๐Ÿ› Bug Fixes#

  • Fix case where there is no size (#467)

  • Ensure to resolve shapes for all arrays in _update_array and fix internal_shape calculation (#469)

  • Fix case where first dim is โ€œ?โ€ (#466)

  • Fix autogenerated mapspec issue with mismatching dims check (#465)

๐Ÿ“Š Stats#

  • .json: +21 lines, -0 lines

  • .md: +93 lines, -1 lines

  • .py: +868 lines, -140 lines

  • .toml: +2 lines, -3 lines

v0.42.1 (2024-12-17)#

๐Ÿงช Testing#

  • Use pytest-timeout plugin to prevent handing tests (#459)

โœจ Enhancements#

  • Add Pipeline.info() that returns input and output info (#462)

๐Ÿ“Š Stats#

  • .yml: +4 lines, -3 lines

  • .py: +47 lines, -0 lines

  • .toml: +3 lines, -1 lines

v0.42.0 (2024-12-16)#

โœจ Enhancements#

  • Add pipefunc.helpers.collect_kwargs helper function (#457)

  • Allow pipeline.root_args(None) (default) that returns all inputs (#461)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#460)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .md: +45 lines, -0 lines

  • .py: +134 lines, -3 lines

v0.41.3 (2024-12-13)#

๐Ÿ› Bug Fixes#

  • Only use the cache when cache=True instead of always in pipeline.map (#458)

๐Ÿ“Š Stats#

  • .py: +12 lines, -6 lines

v0.41.2 (2024-12-11)#

๐Ÿ› Bug Fixes#

  • Fix internal_shapes coming from PipeFunc constructor and cleanup=False (#455)

๐Ÿ“Š Stats#

  • .py: +31 lines, -1 lines

v0.41.1 (2024-12-11)#

Closed Issues#

  • Callback on each transition of a good way to visualize the result of each step beyond text (#393)

  • Allow per PipeFunc storage (#320)

  • Allow per PipeFunc executor (to mix parallel and local) (#319)

  • TypeError: 'NoneType' object cannot be interpreted as an integer in documentation build (#317)

  • ascii art (#307)

๐Ÿ› Bug Fixes#

  • Fix case with multiple output then iterate over single axis (#454)

๐Ÿงน Maintenance#

  • Small formatting changes and tiny refactors (from #448) (#453)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#452)

  • [pre-commit.ci] pre-commit autoupdate (#445)

๐Ÿ“ Other#

  • Add .ruff_cache to .gitignore (#449)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .py: +143 lines, -40 lines

  • other: +3 lines, -0 lines

v0.41.0 (2024-11-27)#

โœจ Enhancements#

  • Add post_execution_hook for PipeFunc (#306)

๐Ÿ“š Documentation#

  • Set default plotting backend in docs to graphviz (#441)

๐Ÿ“Š Stats#

  • .md: +50 lines, -0 lines

  • .ipynb: +3 lines, -3 lines

  • .py: +94 lines, -11 lines

v0.40.2 (2024-11-27)#

๐Ÿงน Maintenance#

  • Add pipefunc[all] to docs extras and remove pydantic from [all] (#440)

  • Fix typo (#439)

๐Ÿ“Š Stats#

  • .py: +11 lines, -4 lines

  • .yml: +0 lines, -4 lines

  • .toml: +2 lines, -1 lines

v0.40.1 (2024-11-27)#

โœจ Enhancements#

  • Use hatch instead of setuptools (#438)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#429)

๐Ÿ“š Documentation#

  • Fix admonition in example notebook (#437)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .ipynb: +0 lines, -1 lines

  • .py: +18 lines, -20 lines

  • .toml: +13 lines, -16 lines

v0.40.0 (2024-11-26)#

Closed Issues#

  • IndexError when handling exceptions without arguments in python<=3.11 (#430)

๐Ÿ“š Documentation#

  • Add a dropdown with interactive widget explanation (#436)

โœจ Enhancements#

  • Add interactive version of visualize_graphviz (#326)

  • Remove pygraphviz dependency, was only used in matplotlib plotting backend (#433)

๐Ÿงน Maintenance#

  • Sort the dependencies alphabetically (#435)

๐Ÿค– CI#

  • Test with plotting in uv now that pygraphviz is no longer required (#434)

๐Ÿงช Testing#

  • Fix pygraphviz <-> python-graphviz mixup in tests (#432)

๐Ÿ“Š Stats#

  • .yml: +35 lines, -36 lines

  • .ipynb: +137 lines, -122 lines

  • .py: +103 lines, -12 lines

  • .toml: +16 lines, -16 lines

v0.39.0 (2024-11-26)#

๐Ÿ› Bug Fixes#

  • Fix Pythonโ‰ค3.11 case for handle_error (#431)

๐Ÿงน Maintenance#

  • Install myst-nb with conda (#428)

  • Remove LazySequenceLearner because of alternative in #381 (#419)

โœจ Enhancements#

  • Avoid duplicate dependencies in .github/update-environment.py script (#427)

  • Add support for pydantic.BaseModel (#420)

  • Allow using memory based storages in parallel too (#416)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update astral-sh/setup-uv action to v4 (#426)

  • โฌ†๏ธ Update codecov/codecov-action action to v5 (#424)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#425)

  • [pre-commit.ci] pre-commit autoupdate (#418)

๐Ÿ“š Documentation#

  • Fix zarr API docs page (#422)

  • Add section with dataclass and pydantic.BaseModel (#421)

  • Add ultra-fast bullet point (#417)

๐Ÿ“Š Stats#

  • .py: +233 lines, -204 lines

  • .yml: +8 lines, -5 lines

  • .yaml: +2 lines, -2 lines

  • .md: +42 lines, -10 lines

  • .toml: +3 lines, -1 lines

v0.38.0 (2024-11-07)#

Closed Issues#

  • Dataclasses that use default_factory fields have buggy execution on second run (#402)

  • Pipeline.add is not idempotent (#394)

โœจ Enhancements#

  • Factor out SlurmExecutor logic from _run.py (#415)

  • Rename _submit_single to _execute_single to avoid confusion with ex.submit (#413)

  • Allow non-parallel progress bar (#412)

  • Allow using adaptive_scheduler.SlurmExecutor (#395)

  • Make executor a dict internally always (#410)

  • Prevent duplicates from PipeFuncs that return multiple (#409)

  • Add a StoreType (#408)

  • Prevent adding functions with same output_name (#404)

๐Ÿ› Bug Fixes#

  • Also update progress bar for single executions (#414)

๐Ÿงช Testing#

  • Omit pipefunc/map/_types.py from coverage (#411)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#405)

๐Ÿงน Maintenance#

  • Move LazySequenceLearner to separate module (#407)

๐Ÿ“ Other#

  • Define ShapeDict, ShapeTuple, UserShapeDict types (#406)

๐Ÿ“Š Stats#

  • .yaml: +2 lines, -2 lines

  • .yml: +2 lines, -2 lines

  • .ipynb: +3 lines, -3 lines

  • .py: +848 lines, -216 lines

  • .toml: +4 lines, -2 lines

v0.37.0 (2024-10-30)#

Closed Issues#

  • All values reported in profile_stats are 0 (#392)

โœจ Enhancements#

  • Specially treat dataclasses with a default factory (closes #402) (#403)

  • Update progress bar every second for first 30 seconds (#401)

  • Include class name in PipeFunc.__name__ (#389)

  • Add LazySequenceLearner (#385)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#400)

  • [pre-commit.ci] pre-commit autoupdate (#386)

๐Ÿงน Maintenance#

  • Split up _pipeline.py into modules (#399)

  • Use relative imports in pipefunc.map (#398)

  • pipefunc.map module reorganization (#397)

  • Move storage related modules to map/_storage (#396)

๐Ÿ“š Documentation#

  • Fix url in shield (#391)

๐Ÿค– CI#

  • Rename GitHub Actions workflows and test with minimal dependencies (#390)

๐Ÿ“ Other#

  • Add uv based GitHub Actions workflow and test on free-threaded Python 3.13t (#387)

๐Ÿงช Testing#

  • Make optional deps also optional in tests (#388)

๐Ÿ“Š Stats#

  • .py: +1367 lines, -637 lines

  • .yml}: +2 lines, -2 lines

  • .yml: +53 lines, -5 lines

  • .yaml: +2 lines, -2 lines

  • .md: +1 lines, -1 lines

  • .py}: +233 lines, -514 lines

  • .toml: +3 lines, -5 lines

  • other: +1 lines, -1 lines

v0.36.1 (2024-10-17)#

๐Ÿงน Maintenance#

  • Enable Python 3.13 in CI (#384)

๐Ÿ› Bug Fixes#

  • Use internal_shapes defined in @pipefunc in create_learners (#383)

๐Ÿ“Š Stats#

  • .yml: +1 lines, -1 lines

  • .py: +23 lines, -1 lines

v0.36.0 (2024-10-16)#

๐Ÿ“ Other#

  • Python 3.13 support (#382)

๐Ÿ“š Documentation#

  • Simplify example in README.md (#379)

  • Add html_theme_options (#371)

  • More improvements (#370)

  • Reorder and reorganize docs (#364)

  • Add sphinx-notfound-page for 404 (#369)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#377)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update mamba-org/setup-micromamba action to v2 (#376)

๐Ÿงน Maintenance#

  • Move ProgressTracker widget a _widgets folder (#373)

๐Ÿ“Š Stats#

  • .yml: +9 lines, -8 lines

  • .yaml: +2 lines, -2 lines

  • .md: +200 lines, -35 lines

  • .py: +26 lines, -10 lines

  • .ipynb: +758 lines, -893 lines

  • .py}: +0 lines, -0 lines

  • .toml: +8 lines, -6 lines

v0.35.1 (2024-09-30)#

โœจ Enhancements#

  • Allow pickling DiskCache without LRU Cache (#368)

  • Allow range(...) as input in map (#365)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#366)

๐Ÿ“š Documentation#

  • Use Ruff badge instead of Black (#367)

  • Improve intro in README (#363)

  • New title and tag line (#362)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .md: +6 lines, -4 lines

  • .py: +30 lines, -4 lines

v0.35.0 (2024-09-27)#

๐Ÿ“š Documentation#

  • Inline mapspec in physics based example (#361)

  • Rely on latest release of MyST (#360)

  • Add FAQ entry about mixing executors and storages (#359)

  • Fix list formatting in Sphinx docs (#358)

โœจ Enhancements#

  • Allow a different Executor per PipeFunc (#357)

  • Allow setting a storage per PipeFunc (#356)

  • Fallback to serialization for cache keys (#355)

  • Set fallback_to_str to False by default for caching (#354)

๐Ÿ“Š Stats#

  • .py: +701 lines, -132 lines

  • .yml: +1 lines, -1 lines

  • .md: +66 lines, -1 lines

  • .ipynb: +4 lines, -10 lines

  • .toml: +0 lines, -2 lines

v0.34.0 (2024-09-25)#

โœจ Enhancements#

  • Add more space between : and name in visualize_graphviz (#353)

  • Add pipefunc.testing.patch (#352)

  • Include mapspec axis in the outputs of PipeFunc directly (#349)

  • Keep mapspec in argument nodes in visualize_graphviz (#348)

๐Ÿ“š Documentation#

  • Add mapspec plots to tutorial (#351)

๐Ÿงน Maintenance#

  • Remove trailing commas to have arg lists on single line (#350)

๐Ÿ“Š Stats#

  • .md: +49 lines, -0 lines

  • .ipynb: +88 lines, -61 lines

  • .py: +191 lines, -128 lines

v0.33.0 (2024-09-24)#

โœจ Enhancements#

  • Add pipeline.map_async and a progress bar (#333)

  • Raise an error with a helpful error message for missing dependencies (#347)

  • Add optimized FileArray.mask_linear (#346)

  • Refactor pipeline.map.run to prepare for async implementation (#334)

  • Speedup code by 40% via simple change (#337)

  • Improve missing plotting backend error message (#332)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update astral-sh/setup-uv action to v3 (#344)

๐Ÿค– CI#

  • Remove unused steps from pytest pipeline (#345)

๐Ÿงช Testing#

  • Add a CI pipeline that checks for matching doc-strings (#343)

  • Add benchmark from FAQ to test suite (#338)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#340)

๐Ÿ› Bug Fixes#

  • Load custom objects correctly in xarray (#336)

๐Ÿ“š Documentation#

  • Add FAQ question about overhead/performance (#335)

๐Ÿ“Š Stats#

  • .py: +1378 lines, -63 lines

  • .yml: +44 lines, -9 lines

  • .yaml: +1 lines, -1 lines

  • .md: +53 lines, -0 lines

  • .toml: +8 lines, -4 lines

v0.32.1 (2024-09-18)#

๐Ÿ› Bug Fixes#

  • Improve the parallel store compatibility checking function (#331)

๐Ÿ“Š Stats#

  • .py: +73 lines, -8 lines

v0.32.0 (2024-09-18)#

Closed Issues#

  • Add pipefunc.map.Result.to_xarray (#312)

โœจ Enhancements#

  • Allow pipeline.map to run without disk (#327)

  • Make Graphviz PipeFunc nodes rounded (#329)

  • Implement graphviz based visualization (#323)

  • Allow visualize to take an int for figsize (square) (#322)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#324)

๐Ÿ“š Documentation#

  • Explain what a pipeline is (#321)

  • Use DiskCache to prevent #317 (#318)

๐Ÿ“Š Stats#

  • .py: +1128 lines, -311 lines

  • .yml: +4 lines, -2 lines

  • .yaml: +1 lines, -1 lines

  • .md: +5 lines, -1 lines

  • .ipynb: +175 lines, -122 lines

  • .toml: +1 lines, -1 lines

v0.31.1 (2024-09-11)#

๐Ÿ“š Documentation#

  • Add a FAQ question about ErrorSnapshot and improve IP getting (#316)

๐Ÿ“ Other#

๐Ÿ“Š Stats#

  • .md: +49 lines, -0 lines

  • .ipynb: +122 lines, -112 lines

  • .py: +18 lines, -4 lines

v0.31.0 (2024-09-10)#

โœจ Enhancements#

  • Add function going from Results to xarray with xarray_dataset_from_results (#314)

  • Attach ErrorSnapshot for debugging (#313)

  • Use pickle for cache key, inspired by python-diskcache package (#310)

๐Ÿ“š Documentation#

  • Add additional examples to the tutorial (#311)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#308)

๐Ÿ“ Other#

  • Use repr for filename key (#309)

  • TYP: Fix annotation of output_picker (#303)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .yml: +3 lines, -0 lines

  • .ipynb: +585 lines, -50 lines

  • .py: +262 lines, -18 lines

  • .toml: +16 lines, -2 lines

v0.30.0 (2024-09-05)#

โœจ Enhancements#

  • Add internal_shape to PipeFunc (#302)

๐Ÿ“š Documentation#

  • Show triangulation on top of Learner2D plot (#301)

๐Ÿ“Š Stats#

  • .md: +1 lines, -1 lines

  • .py: +63 lines, -1 lines

v0.29.0 (2024-09-05)#

Closed Issues#

  • Do type validation in pipeline definition (#266)

  • Allow caching for map (#264)

  • allow to inspect the resources inside the function (#192)

  • allow internal parallelization (#191)

โœจ Enhancements#

  • Add call to action (#300)

  • Add ToC of questions to FAQ (#298)

  • Add tl;dr note in API docs (#297)

  • Skip parallelization if pointless (#293)

  • Simpler example with output_picker (#287)

๐Ÿ› Bug Fixes#

  • Formatting in is_object_array_type doc-string (#296)

  • formatting of lists in doc-strings (#295)

  • doc-string of func_dependents and func_dependencies (#294)

  • Correctly set cache value for HybridCache (#292)

๐Ÿ“ Other#

  • Allow to use cache for Pipeline.map (#291)

  • Add pipefunc.cache and pipefunc.typing to the reference documentation (#290)

  • Add .cache attribute to function using @memoize (#288)

๐Ÿ“Š Stats#

  • .md: +36 lines, -0 lines

  • .ipynb: +6 lines, -8 lines

  • .py: +186 lines, -46 lines

v0.28.0 (2024-09-03)#

๐Ÿ“ Other#

  • Rename pipefunc._cache to pipefunc.cache (#286)

  • Update asciinema recording (#281)

  • Add asciinema recording (#280)

  • Build dirhtml Sphinx docs instead of html (#279)

โœจ Enhancements#

  • Small type annotation fix in memoize (#285)

  • Improve caching and add a memoize decorator (#283)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#284)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .yml: +4 lines, -0 lines

  • .md: +2 lines, -0 lines

  • .py: +320 lines, -21 lines

  • .py}: +194 lines, -1 lines

v0.27.3 (2024-08-29)#

๐Ÿ› Bug Fixes#

  • Case where reduction happens and output is unresolvable (#278)

๐Ÿ“ Other#

  • Add py.typed (PEP 561) (#277)

๐Ÿ“Š Stats#

  • .py: +25 lines, -5 lines

  • .typed: +0 lines, -0 lines

  • .toml: +6 lines, -3 lines

v0.27.2 (2024-08-29)#

๐Ÿ“ Other#

  • Fix type annotation bug with autogenerated axis with internal shape (#276)

๐Ÿ“Š Stats#

  • .py: +28 lines, -15 lines

v0.27.1 (2024-08-29)#

๐Ÿ“ Other#

  • Skip on NoAnnotation (#275)

  • Add type annotation checking documentation (#274)

  • Enforce one-to-one mapping for renames and improve validation error messages (#273)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#267)

๐Ÿ“Š Stats#

  • .yaml: +2 lines, -2 lines

  • .md: +95 lines, -7 lines

  • .py: +36 lines, -1 lines

v0.27.0 (2024-08-28)#

๐Ÿ“ Other#

  • Allow disabling type validation (#271)

  • Allow types to be generics (#269)

  • Ignore ARG001 ruff rule in tests (#270)

  • Try getting type-hints instead of allowing to error out (#268)

  • Add parameter and output annotations and validate them during Pipeline construction (#6)

  • Simplify Adaptive Scheduler code (#263)

  • Set Ruff Python version to 3.10 (#262)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#259)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .md: +5 lines, -3 lines

  • .ipynb: +26 lines, -19 lines

  • .py: +1199 lines, -100 lines

  • .toml: +4 lines, -2 lines

v0.26.0 (2024-08-22)#

๐Ÿ“ Other#

  • Allow single job per element inside a MapSpec via resources_scope (#260)

  • Return correct data in SequenceLearner when return_output (#261)

  • Add pipeline.run adaptive tools (#257)

  • Remove indentation level (#255)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#254)

  • [pre-commit.ci] pre-commit autoupdate (#253)

  • [pre-commit.ci] pre-commit autoupdate (#252)

  • [pre-commit.ci] pre-commit autoupdate (#250)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update CodSpeedHQ/action action to v3 (#251)

๐Ÿ“Š Stats#

  • .yml: +1 lines, -1 lines

  • .yaml: +2 lines, -2 lines

  • .ipynb: +2 lines, -2 lines

  • .py: +451 lines, -51 lines

v0.25.0 (2024-07-19)#

๐Ÿ“ Other#

  • Add parallelization_mode option (#249)

๐Ÿ“Š Stats#

  • .yml: +2 lines, -2 lines

  • .ipynb: +16 lines, -7 lines

  • .py: +97 lines, -15 lines

  • .toml: +1 lines, -1 lines

v0.24.0 (2024-07-18)#

Closed Issues#

  • AssertionError raised in the case of a function without inputs. (#238)

๐Ÿ“ Other#

  • Make Resources serializable (#247)

  • Support delayed Resources in Adaptive Scheduler integration (#234)

  • Rename Resources attributes cpus, gpus, nodes, cpus_per_node, time (#245)

  • Split parts of test_pipefunc.py into several files (#242)

  • Raise an exception when parameters and output_name overlaps (#241)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#246)

  • [pre-commit.ci] pre-commit autoupdate (#244)

๐Ÿ“Š Stats#

  • .yaml: +2 lines, -2 lines

  • .md: +15 lines, -15 lines

  • .ipynb: +12 lines, -5 lines

  • .py: +2132 lines, -1820 lines

  • .py}: +0 lines, -0 lines

v0.23.1 (2024-06-28)#

๐Ÿ“ Other#

  • Allow parameterless functions in a Pipeline (#240)

  • Allow passing loss_function to to_adaptive_learner (#239)

๐Ÿ“Š Stats#

  • .py: +80 lines, -13 lines

v0.23.0 (2024-06-27)#

๐Ÿ“ Other#

  • Add a poor manโ€™s adaptive integration (#237)

๐Ÿ“Š Stats#

  • .md: +237 lines, -0 lines

  • .py: +183 lines, -2 lines

v0.22.2 (2024-06-27)#

๐Ÿ“ Other#

  • Disallow mapping over bound arguments and fix mapping over defaults (#236)

๐Ÿ“Š Stats#

  • .py: +87 lines, -19 lines

v0.22.1 (2024-06-27)#

๐Ÿ“ Other#

  • Always call validate in add to ensure mapspec axes are autogenerated (#235)

๐Ÿ“Š Stats#

  • .py: +28 lines, -3 lines

v0.22.0 (2024-06-26)#

๐Ÿ“ Other#

  • Get rid of PipeFunc._default_resources (#232)

  • Allow bound arguments to be unhashable (#233)

  • Allow resources to be delayed via a Callable[[dict], Resources] (#219)

  • Add resources_variable in PipeFunc (#220)

  • Fix the Python version for Codspeed (#231)

๐Ÿ“Š Stats#

  • .yml: +8 lines, -0 lines

  • .md: +142 lines, -4 lines

  • .py: +409 lines, -110 lines

v0.21.0 (2024-06-24)#

Closed Issues#

  • Changing PipeFunc should trigger Pipeline internal cache reset (#203)

๐Ÿ“ Other#

  • Fix dev section in pyproject.toml [project.optional-dependencies] (1d1a4a2)

  • Fix PipeFunc that share defaults (#230)

  • Add Codspeed speedtest/benchmarking CI (#229)

  • Add Renovate CI integration (#221)

  • Combine resources with default_resources in PipeFunc object (#214)

  • Simplify Pipeline.copy (#217)

  • Remove PipeFunc.__getattr__ and define PipeFunc.__name__ (#216)

  • Always create a copy when calling Pipeline.add (#215)

  • Keep default_resources in Pipeline and rename resources_report to print_profiling_stats to avoid confusion (#213)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#228)

๐Ÿ“ฆ Dependencies#

  • โฌ†๏ธ Update release-drafter/release-drafter action to v6 (#227)

  • โฌ†๏ธ Update github/codeql-action action to v3 (#226)

  • โฌ†๏ธ Update actions/setup-python action to v5 (#225)

  • โฌ†๏ธ Update release-drafter/release-drafter action to v5.25.0 (#222)

  • โฌ†๏ธ Update actions/checkout action to v4 (#223)

๐Ÿ“Š Stats#

  • .json: +35 lines, -0 lines

  • .yml: +47 lines, -8 lines

  • .yaml: +4 lines, -4 lines

  • .md: +2 lines, -1 lines

  • .ipynb: +2 lines, -2 lines

  • .py: +397 lines, -144 lines

  • .py}: +2 lines, -2 lines

  • .toml: +2 lines, -1 lines

v0.20.0 (2024-06-19)#

๐Ÿ“ Other#

  • Remove specialized Adaptive code, and generalize map (#212)

  • Remove save_function from PipeFunc and delayed_callback from _LazyFunction (#211)

  • Remove the PipeFunc.set_profile method (#210)

  • Factor out _MockPipeline (#209)

  • Use frozen and slotted dataclasses where possible (#208)

  • Keep a WeakRef to the Pipeline in each PipeFunc to reset Pipeline cache (#207)

๐Ÿ“Š Stats#

  • .py: +159 lines, -349 lines

v0.19.0 (2024-06-17)#

๐Ÿ“ Other#

  • Introduce parameter namespacing via scopes (#201)

  • Make sure all cells are executed to ensure working docs (#206)

  • Create a copy of a PipeFunc in Pipeline.add (#205)

๐Ÿ“Š Stats#

  • .yml: +1 lines, -0 lines

  • .py: +694 lines, -109 lines

  • .md: +196 lines, -57 lines

  • .toml: +1 lines, -0 lines

v0.18.1 (2024-06-14)#

Closed Issues#

  • Rename outputs too in update_renames (#189)

๐Ÿ“ Other#

  • Clear internal cache after renaming and re-defaulting (#202)

๐Ÿ“Š Stats#

  • .py: +2 lines, -0 lines

v0.18.0 (2024-06-13)#

Closed Issues#

  • include single results in xarray (#188)

  • Rename mapspecs in update_renames (#184)

๐Ÿ“ Other#

  • Allow renaming output_name in update_renames (#200)

  • Set run_folder=None by default (#198)

  • Rename MapSpec in update_renames (#196)

  • Add FAQ (#187)

  • Include single results as 0D arrays in xarray.Dataset (#190)

  • Extend to_slurm_run to return adaptive_scheduler.RunManager (#186)

  • Add edge to NestedPipeFunc (#183)

  • Update example.ipynb tutorial (#182)

๐Ÿ“Š Stats#

  • .md: +322 lines, -3 lines

  • .yml: +1 lines, -0 lines

  • .py: +334 lines, -98 lines

  • .ipynb: +499 lines, -246 lines

  • .toml: +1 lines, -0 lines

v0.17.0 (2024-06-11)#

๐Ÿ“ Other#

  • Add remaining Sweep tests to reach 100% coverage on all code :tada: (#181)

  • Remove superseded sweep functions: get_precalculation_order and get_min_sweep_sets (#180)

  • Allow passing update_from to update_renames (#179)

  • Fix regression introduced in #156 (#178)

  • Reimplement Pipeline.simplified_pipeline using NestedPipeFunc (#156)

  • Reach 100% testing coverage in pipefunc/_pipeline.py (#177)

  • Increase testing coverage (#176)

  • Fix typo and add more references (21d63c1)

๐Ÿ“Š Stats#

  • .ipynb: +44 lines, -170 lines

  • .py: +518 lines, -540 lines

  • .toml: +1 lines, -1 lines

v0.16.0 (2024-06-10)#

๐Ÿ“ Other#

  • Add pipeline.update_rename to example (b552324)

  • Add Pipeline.update_renames (#175)

  • Allow to nest all (#174)

  • Add Pipeline.nest_funcs (#173)

  • Do not rely on hashing when checking defaults (#172)

  • Deal with unhashable defaults (#171)

  • Add sanity checks (#170)

  • Add Pipeline.update_defaults (#169)

  • Add pipeline.join and pipeline1 | pipeline2 (#168)

  • HoloViews plotting improvements (#166)

๐Ÿ“Š Stats#

  • .ipynb: +107 lines, -71 lines

  • .py: +387 lines, -29 lines

v0.15.1 (2024-06-07)#

๐Ÿ“ Other#

  • Do not add MapSpec axis for bound parameters (#165)

๐Ÿ“Š Stats#

  • .py: +28 lines, -11 lines

v0.15.0 (2024-06-07)#

Closed Issues#

  • class CombinedFunc(PipeFunc) to nest pipelines (#138)

๐Ÿ“ Other#

  • Make bound values actual node types in the graph (#160)

  • Fix setting __version__ during onbuild (#164)

  • Pass through internal_shapes in create_learners (#162)

  • Use xarray.merge(... compat="override") to deal with merging issues (#161)

  • Add missing API docs file for pipefunc.map.adaptive_scheduler (2861da2)

  • Add Adaptive Scheduler integration (#159)

  • Mention Xarray earlier in the docs (db77f24)

  • Make resources a module (#158)

  • Disallow spaces in Resources(memory) (aeb2d72)

  • Implement resources specification (#157)

๐Ÿ“Š Stats#

  • .yml: +2 lines, -0 lines

  • .md: +18 lines, -0 lines

  • .ipynb: +12 lines, -6 lines

  • .py: +1476 lines, -135 lines

  • .toml: +14 lines, -4 lines

v0.14.0 (2024-06-04)#

๐Ÿ“ Other#

  • Reorder functions, put public code at top of modules (#155)

  • Add NestedPipeFunc (#153)

  • Set author in documentation to PipeFunc Developers (638b819)

  • Fix typo (09cdb64)

  • Rename to auto_subpipeline (#150)

  • Add option to pick the output_name and partial inputs when running pipeline.map (#127)

  • Include pipefunc.map.adaptive integration in docs (#149)

  • Validate inputs to PipeFunc (#148)

  • Add PipeFunc.update_bound to allow fixed parameters (#110)

๐Ÿ“Š Stats#

  • .py: +1150 lines, -466 lines

  • .md: +1 lines, -1 lines

  • .yml: +4 lines, -0 lines

  • .ipynb: +67 lines, -3 lines

  • .toml: +1 lines, -1 lines

v0.13.0 (2024-06-02)#

๐Ÿ“ Other#

  • Make versioningit an optional runtime dependency (#144)

  • Set MyST in .github/update-environment.py (#143)

  • Fix pipeline.mapspecs_as_strings statement (which is a property now) (a9302d7)

  • Drop support for Python 3.8 and 3.9 (#142)

  • Factor out simplify functions to simplify module (#141)

  • Factor out resources_report (#140)

  • Make more cached_propertys (#139)

  • Make PipeFunc.renames a property to avoid mutation (#137)

  • Copy defaults in copy method (#135)

  • Define many independent Adaptive learners for cross-products (#136)

  • Implement pipeline.map(... fixed_indices) which computes the output only for selected indices (#129)

  • Add PipeFunc.update_renames and PipeFunc.update_defaults (#128)

  • Remove unused helper functions to join sets and find common items (#134)

  • Make pipefunc.lazy a public module (#133)

  • Cleanup __init__.py and make the sweep module public (#132)

  • Use sphinx-autodoc-typehints (#131)

  • Rename map_parameters to mapspec_names (#130)

  • Validate inputs when calling pipeline.map (#126)

  • Documentation MyST fixes and style changes (#125)

  • Parallel docs changes (#124)

  • Parallelize all functions in the same generation (#123)

  • Factor out RunInfo to separate module (#122)

  • Add Pipeline.replace (#121)

  • add join_overlapping_sets and common_in_sets (#120)

  • Allow setting new defaults in PipeFunc (#111)

๐Ÿ“Š Stats#

  • .py: +1794 lines, -883 lines

  • .yml: +15 lines, -17 lines

  • .md: +20 lines, -2 lines

  • .ipynb: +46 lines, -14 lines

  • .py}: +32 lines, -20 lines

  • .toml: +20 lines, -17 lines

v0.12.0 (2024-05-30)#

๐Ÿ“ Other#

  • Add custom parallelism section to the docs (#119)

  • Add SharedDictArray (#118)

  • Revert _SharedDictStore name change (4f5d84a)

  • Fix typo in test function name (21c5757)

  • Implement native DictArray (#117)

  • Transfer to github.com/pipefunc org (#116)

  • Add tests for Pipeline.independent_axes_in_mapspecs (#115)

  • Functionality to identify independent axes in collection of MapSpecs (#84)

  • Store RunInfo as JSON instead of cloudpickled bytes (#109)

  • Allow passing any concurrent.futures.Executor (#108)

  • Rename ZarrArray to ZarrFileArray (#107)

  • Add mention of Xarray and Zarr (c2f1092)

  • Add ZarrMemory and ZarrSharedMemory (#106)

  • Fix headers in API docs (edbff78)

๐Ÿ“Š Stats#

  • .md: +11 lines, -10 lines

  • .py: +961 lines, -191 lines

  • .ipynb: +57 lines, -0 lines

  • .toml: +1 lines, -1 lines

v0.11.0 (2024-05-28)#

๐Ÿ“ Other#

  • Pass through storage and return map result as dict[str, Result] (#104)

  • Test all storage and remove custom gzip cloudpickle because zarr already compresses (#103)

  • Add zarr integration (#101)

  • Fix map run order (#102)

  • Add MapSpec in Pipeline.visualize (#72)

  • Mention where example is based on (d606bd6)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#105)

๐Ÿ“Š Stats#

  • .yaml: +1 lines, -1 lines

  • .yml: +3 lines, -0 lines

  • .md: +18 lines, -0 lines

  • .ipynb: +97 lines, -75 lines

  • .py: +1585 lines, -628 lines

  • .toml: +13 lines, -3 lines

v0.10.0 (2024-05-24)#

๐Ÿ“ Other#

  • Add xarray integration (#94)

  • Make sure to only evaluate a function once when possible (#100)

  • Only create cache if functions have caching enabled (#99)

  • Use sphinx-book-theme instead of furo (#98)

  • Make output_to_func a cached_property and RunInfo a dataclass, and some renames (#96)

  • Replace tabulate dependency by simple function (#97)

๐Ÿ“Š Stats#

  • .yaml: +0 lines, -1 lines

  • .yml: +4 lines, -3 lines

  • .py: +797 lines, -286 lines

  • .ipynb: +264 lines, -3 lines

  • .toml: +5 lines, -4 lines

v0.9.0 (2024-05-22)#

๐Ÿ“ Other#

  • Add support for output arrays with internal structure and autogenerate MapSpecs (#85)

  • Style changes (#93)

  • Allow calling add_mapspec_axis on multiple parameters (#92)

  • Rename manual_shapes to internal_shapes (#91)

  • Fix bug and refactor FileArray (#90)

  • Add PipeFunc.copy() and use it when creating Pipeline with tuples including MapSpecs (#89)

  • Implement FileArray with internal structure (#88)

  • MapSpec method changes and add Pipeline.mapspec_axes and mapspec_dimensions (#86)

  • Rephrase doc-string (6f633f3)

  • Add zipping axis test and doc-string (#83)

  • Create a temporary run_folder if None and README.md improvements (#82)

  • Remove fan-out/fan-in (6839dbe)

  • Add mapspecs method, sorted_functions property, and rewrite intro in README (#81)

  • Better error message in Pipeline.run (#80)

  • Fix bug for add_mapspec_axis (#79)

  • Add Pipeline.add_mapspec_axis for cross-products (#78)

  • Create separate API docs per module (#77)

  • Fix header in example.ipynb (ac39689)

  • Reorder the docs and small rewrite (#76)

  • Add docs section about renames (#75)

  • Dump to FileArray as soon as possible (#74)

  • Fix typo in docs and cache improvements (#73)

๐Ÿ“Š Stats#

  • .md: +69 lines, -35 lines

  • .ipynb: +316 lines, -136 lines

  • .py: +2172 lines, -605 lines

v0.8.0 (2024-05-17)#

๐Ÿ“ Other#

  • Increase coverage and fix Sweep bug (#71)

  • Add verbose flag (#70)

  • Remove _update_wrapper to make dataclasses pickleble (#69)

  • Compare RunInfo to old saved RunInfo (#68)

  • Add picklable _MapWrapper used in create_learners_from_sweep (#67)

  • Add loading of data that already exists in Pipeline.map (#66)

  • Rename get_cache to _current_cache (#63)

  • Rename to _run_pipeline to run to align with map (#64)

๐Ÿ“Š Stats#

  • .py: +544 lines, -57 lines

v0.7.0 (2024-05-15)#

๐Ÿ“ Other#

  • Add pipefunc.map.adaptive to API docs (bb3084f)

  • Better resource_report and add add Sweep with MapSpec tools (#62)

  • Add pipefunc.map to API docs (9f27833)

  • Use updated logo (d1c32ea)

  • Docs improvements (#61)

  • Remove Jupyterlite configuration (538b8f5)

  • Add Map-Reduce to features list (29af3bf)

  • Add Pipeline.map docs and automatically parallelize map (#59)

  • Various small improvements (#58)

  • Style changes (100 character lines) (#57)

๐Ÿ“Š Stats#

  • .py: +570 lines, -346 lines

  • .yaml: +1 lines, -1 lines

  • .yml: +3 lines, -18 lines

  • .md: +20 lines, -5 lines

  • .ipynb: +229 lines, -12 lines

  • .toml: +6 lines, -3 lines

  • .cfg: +0 lines, -5 lines

  • other: +4 lines, -0 lines

v0.6.0 (2024-05-15)#

๐Ÿ“ Other#

  • Integrate MapSpeced Pipelines with Adaptive (#56)

  • Add functionality to run Pipelines with MapSpecs (#55)

  • Refactor, improve, test, and integrate MapSpec into Pipeline (#22)

  • Add MapSpec and FileBasedObjectArray from aiida-dynamic-workflows (#54)

  • Improve utils, add topological_generations, and better error message (#53)

  • Fix docs (jupyterlite) (#52)

  • Take out arg_combination functions (#51)

  • Take out methods and make functions and simplify code (#50)

  • dump, load, Pipeline.defaults, Pipeline.copy, and style (#49)

  • construct_dag fix and remove dead code (#47)

  • Refactor Pipeline._execute_pipeline (#44)

  • Switch around log message (#45)

  • Add test test_full_output_cache (#46)

  • Fix test_handle_error on MacOS (#43)

  • Better error message (#42)

  • Raise when unused parameters are provided (#41)

  • Add pipeline.drop (#40)

  • Rename PipelineFunction -> PipeFunc (#39)

  • Several caching fixes (#38)

  • Use codecov/codecov-action@v4 (#36)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#48)

  • [pre-commit.ci] pre-commit autoupdate (#37)

๐Ÿ“Š Stats#

  • .yml: +9 lines, -4 lines

  • .yaml: +1 lines, -1 lines

  • .md: +1 lines, -1 lines

  • .ipynb: +5 lines, -5 lines

  • .py: +3265 lines, -522 lines

  • .toml: +4 lines, -2 lines

  • other: +21 lines, -0 lines

v0.5.0 (2024-04-30)#

๐Ÿ“ Other#

  • Make positional only (#35)

  • Format line (6c80ed4)

  • Remove unused var T (8e57f06)

  • Reorganize some definitions into modules (#34)

  • Add a TaskGraph (#33)

  • Fix cache argument in docs and fix pickling issues (#32)

  • Add 3.12 to testing matrix (#31)

  • Optimizations (#30)

  • Rename cloudpickle parameter (#29)

  • Allow lazy pipeline evaluation (#26)

  • Add Cache ABC (#28)

  • Cache improvement and rename (#27)

  • Add with_cloudpickle to HybridCache (#25)

  • Add DiskCache (#24)

  • Add root_args method (#23)

  • Add hype tag (AI) (547c44d)

  • Rewrite the intro in the README (#21)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#20)

  • [pre-commit.ci] pre-commit autoupdate (#19)

  • [pre-commit.ci] pre-commit autoupdate (#18)

  • [pre-commit.ci] pre-commit autoupdate (#17)

๐Ÿ“Š Stats#

  • .yml: +1 lines, -1 lines

  • .yaml: +3 lines, -3 lines

  • .md: +12 lines, -19 lines

  • .py: +2411 lines, -1478 lines

  • .ipynb: +2 lines, -2 lines

v0.4.0 (2024-03-11)#

๐Ÿ“ Other#

  • Keep functions picklable (5446653)

  • Use kwargs with derivers (168b1c2)

  • Fix typo (1aa0ee1)

  • Rename callables to derivers (#16)

  • Do not overwrite keys that exist in the sweep (#15)

  • Add callables and product to Sweep (#14)

  • Use Pipeline.leaf_nodes instead of unique tip (#12)

  • Call update_wrapper for correct signature (#11)

๐Ÿ“Š Stats#

  • .py: +402 lines, -29 lines

v0.3.0 (2024-03-08)#

๐Ÿ“ Other#

  • Automatically set output_name if possible (#10)

  • Unique colors for combinable and non-combinable nodes (#9)

  • Fix coloring of combinable nodes (#8)

  • Allow constants in Sweeps (#7)

  • Allow constants in a Sweep (#4)

  • Fix line length (#5)

  • Color combinable and add test (dfc44c0)

  • remove cell (0115807)

  • Rename reduce -> simplify (ed4217a)

  • Remove incorrect copyright message (a937aed)

  • Update environment.yml (88eb9ae)

  • Skip plotting (302f647)

  • Fix test dependencies (add pandas) (b0d5c62)

  • More pre-commit and typing fixes (de022cd)

  • Use ruff-format (cea11f9)

  • Fix pre-commit issues (a5d6f34)

  • Update pre-commit filters (238466b)

  • Fix pip install command in README.md (5f6278e)

๐Ÿ”„ Pre-commit#

  • [pre-commit.ci] pre-commit autoupdate (#3)

๐Ÿ“Š Stats#

  • .py: +366 lines, -78 lines

  • .yaml: +6 lines, -8 lines

  • .md: +2 lines, -2 lines

  • .yml: +2 lines, -0 lines

  • .ipynb: +101 lines, -79 lines

  • .toml: +10 lines, -7 lines

v0.2.0 (2023-11-27)#

Closed Issues#

  • Header (#1)

๐Ÿ“ Other#

  • Add Python 3.12 classifier (13091a9)

  • Fix doc-string (fc1b645)

  • Remove print statement (7f64826)

  • Install black[jupyter] in dev deps (8669f08)

  • Add saving (8329ba5)

  • Unshallow clone in Readthedocs (5d7ae83)

  • Add shields (1f09df6)

  • Fix type hint in _sweep.py (d71ad78)

  • Another typo fix in all_transitive_paths (8551a6a)

  • Fix type in doc-string (18dcd2f)

  • Add all_transitive_paths to get parallel and indepent computation chains (2c0e8a9)

  • Add leaf and root nodes property (f5ebacf)

  • Fix _assert_valid_sweep_dict (3485eec)

  • Add get_min_sweep_sets (a2d46d0)

  • Rewrap text in doc-strings (dc73186)

  • Add all_execution_orders (eaf71f5)

  • Add conservatively_combine (320b6ef)

  • rename โ€˜addโ€™ to โ€˜combineโ€™ (558e23c)

  • Remove [project.scripts] section from pyproject.toml (0375761)

๐Ÿ“Š Stats#

  • .yml: +3 lines, -0 lines

  • .md: +11 lines, -0 lines

  • .py: +410 lines, -62 lines

  • .toml: +2 lines, -4 lines

v0.1.0 (2023-07-16)#

๐Ÿ“ Other#

  • Fix license in pyproject.toml (5bec316)

  • Set the project.readme to Markdown (35d6496)

  • Make sure to build the package (a37873a)

  • use pypa/gh-action-pypi-publish (2775087)

  • Fix .github/workflows/update-environment.yaml (58c7b6f)

  • Move lite env and remove jupyterlite_config.json (22bcd49)

  • Fix filename in .github/update-environment.py (1ffd45f)

  • Update environment.yml (7c0d005)

  • No psutil in jupyterlite (bcca216)

  • Update environment.yml (6d72ab5)

  • Install matplotlib-base in jupyterlite env (8dc665b)

  • Add filename to generate_environment_yml (b7fed22)

  • Refactor .github/update-environment.py (7375be2)

  • add jupyterlite-xeus-python as pip only dep (35ce643)

  • add jupyterlite_config (216956b)

  • Add kernel as docs dep (23a7d7f)

  • Use docs/environment-sphinx.yml for docs building and docs/environment.yml for juyterlite (85b027c)

  • Fix jupyterlite-sphinx name (44bcd6b)

  • Add docs/jupyterlite_config.json (70fe3ae)

  • Update environment.yml (73819a3)

  • add jupyterlite_sphinx (23b3b20)

  • Copy notebook to docs/notebooks (2765b15)

  • Move init doc-strings to class top (ec20e2d)

  • Add example to PipelineFunction (4ff7796)

  • Fix example spacing in doc-string (5af6054)

  • Small docs settings changes (55ba4d7)

  • Rephrase in notebook (c3f4613)

  • Rename readthedocs.yml to .readthedocs.yml (8b9d8fa)

  • Remove maxdepth (6c2d4d5)

  • chore(docs): update TOC (2e1cce1)

  • Remove design goals (3fde37e)

  • Links in menu names (550c3a2)

  • Add API docs (94f206d)

  • chore(docs): update TOC (eb48cfa)

  • Add Key Features ๐Ÿš€ (38f1508)

  • Use the help() function (a4a506c)

  • Add tutorial to docs (568f609)

  • Different pip install optional deps (633ee65)

  • Add plotting to docs/environment.yml (f13e5e7)

  • Update environment.yml (87baa91)

  • Add pandas and jupytext as docs dependency (8825351)

  • Add plotting to docs/environment.yml (79dcf06)

  • Add header image (eecf416)

  • Change tagline (8473f0f)

  • Pass through filename (5fb85ab)

  • chore(docs): update TOC (d005501)

  • Add example.ipynb (dde07c0)

  • Add tests/test_sweep.py (59cdd99)

  • Add tests/test_pipefunc.py (2258159)

  • Add tests/test_perf.py (62b8cfc)

  • Add tests/test_cache.py (586ca6f)

  • Add tests/init.py (85dc61f)

  • Add pipefunc/_version.py (ce2d17f)

  • Add pipefunc/_sweep.py (a1e2fe5)

  • Add pipefunc/_plotting.py (e89850c)

  • Add pipefunc/_pipefunc.py (6b94d38)

  • Add pipefunc/_perf.py (8128bd7)

  • Add pipefunc/_cache.py (d25c1a6)

  • Add pipefunc/init.py (0d3cd06)

  • Add docs/source/index.md (34d6fdb)

  • Add docs/source/conf.py (526ef73)

  • Add docs/environment.yml (053f01a)

  • Add docs/Makefile (7b68ec1)

  • Add docs/.gitignore (6664a3c)

  • Add environment.yml (e82cf48)

  • Add setup.cfg (25c5c63)

  • Add readthedocs.yml (737d480)

  • Add pyproject.toml (61ec5b9)

  • Add README.md (b25aebe)

  • Add MANIFEST.in (150e5db)

  • Add LICENSE (a467d2e)

  • Add AUTHORS.md (f9175ed)

  • Add .pre-commit-config.yaml (882adb1)

  • Add .gitignore (129a4dc)

  • Add .github/workflows/update-environment.yaml (a910911)

  • Add .github/workflows/toc.yaml (81287cc)

  • Add .github/workflows/release-drafter.yaml (ca1a8cf)

  • Add .github/workflows/pythonpublish.yml (f73479a)

  • Add .github/workflows/pytest.yml (e6ac7eb)

  • Add .github/workflows/codeql.yml (1fdfdb6)

  • Add .github/update-environment.py (74a4c56)

  • Add .github/release-drafter.yml (0a3ce3d)

  • Add .gitattributes (39666ce)

๐Ÿ“Š Stats#

  • .toml: +1 lines, -1 lines