Skip to content

Releases: pypyr/pypyr

line + col no., repo rename, readme updates.

13 Aug 19:34
Compare
Choose a tag to compare
  • Line + Column Number count from 1 not 0. fix #151
  • update README to point at new website pypyr.io.
  • update CONTRIBUTING to point at new website.
  • update documentation and pypi setup with new repo name.

Support non-string keys in context on Formatting & Merge

14 Apr 02:20
Compare
Choose a tag to compare
  • Allow non-string keys on context.get_formatted_iterable and context merge (including the step pypyr.steps.contextmerge). Resolves #179. Much thanks to @Reskov for a detailed & helpful bug report!

nested call inside loops & in context clearing preview

04 Apr 13:33
Compare
Choose a tag to compare

ATTENTION: Please start preparing all your pipelines to be ready for the next major release where in context arguments will be removed from context on step completion. This shouldn't be too much of an issue. For any steps where you need to set enduring context, use contextsetf or contextset.

  • Allow using a call control-of-flow instruction nested inside while/for/retry loops. Previously a nested call instruction would over-write the parent call's configuration and thus create confusion on the next loop round the parent. Much thanks 🙏 to @Reskov for identifying this tricky little recursion issue & assistance in resolution. Close #176
  • in context parameters only available for the duration of the step they decorate. Previously in items would be added to context and stay in context after the step finishes. This is a potentially breaking change for existing pipelines, but worth it, full discussion of reasons here #177.
    • For this release this change in functionality is not the default, but enabled by setting the following environment variable PYPYR_IN_CLEAN = 1. You can set it selectively on a single pypyr run using standard shell syntax like:
      $ PYPYR_IN_CLEAN=1 pypyr mypipeline arg1 arg2
    • README updates to document #177 resolution as the default behaviour - in context parameters cleaned from context on step completion to prepare for next major release with the breaking change..

API change to main entrypoint for logging

11 Feb 19:24
Compare
Choose a tag to compare

pypyr.log.logger.set_root_logger(log_level, log_path) call moved from pipelinerunner.main() to cli.main()

this has the side-effect that pipelinerunner.main() signature has changed, with log_level and log_path removed. API consumers should update.

Reason being API consumers should set their own log handlers, since handler configuration should be the prerogative of the calling application, not the invoked library.

Re #172, #173

Retry Decorator handles original errors when calling Groups

29 Jan 01:03
Compare
Choose a tag to compare
  • Retry Decorator correctly handles errors raised from .call or .jump steps when checking error type with retryOn and stopOn. Close #170 - thanks to @Reskov for reporting!
  • add tarball to PyPI deploy artefacts.

Better error messages on failing import modules

18 Nov 19:30
Compare
Choose a tag to compare
  • When importing a step that does exist (mystep.blah), a failing import mymodule.blah inside mystep.blah would give a misleading error and hide the actual source of the problem. Fixes #166. Eternal thanks to @irancati for raising the issue!

pypyr.steps.debug & context merge support all types

13 Sep 20:11
Compare
Choose a tag to compare

With a million thank yous 🙏 to @Reskov for these much needed fixes/enhancements! 🎆

  • Resolves issue #149. pypyr.steps.debug now supports outputting any type, including PyString & SicString
  • Resolve pypyr.steps.contextmerge issue to support merging any type, including PyString & SicString.

Major version, with BREAKING CHANGES: features custom step groups, caching & no more ./pipelines dir

22 Aug 17:47
Compare
Choose a tag to compare
  • BREAKING CHANGE: Remove deprecated step input context for (ref #118)
    • assert
    • env
    • fetchjson
    • fetchyaml
    • fileformat
    • fileformatjson
    • fileformatyaml
    • filereplace
    • tar
  • BREAKING CHANGE: cli context input now uses standard cli spacing rather than needing to str close everything. Closes #94
    • So where you had:
    • pypyr mypipeline "key1=value1,key2=value2”
    • Now instead:
    • pypyr mypipeline key1=value1 key2=value2
  • BREAKING CHANGE: Big API changes to pipelinerunner, stepsrunner and Step
  • BREAKING CHANGE: pypyr.parser.commas replaced by pypyr.parser.keys
  • Caching pipelines, context parsers, loaders, step run functions. Basically cache anything that loads from disk. Closes #126
  • Custom step groups. Closes #126
  • Jump, Call, and Stop ref #128 #127 #123
  • The ./pipelines default directory location no longer necessary. To run a pipeline ./dir/mypipe.yaml, just go pypyr dir/mypipe
  • README+help updates for all of the above

less confusing logging with NOTIFY

06 Aug 21:16
Compare
Choose a tag to compare

This one is all @Reskov 🎉 eternal gratitude!

  • new NOTIFY logging level added. this level is much less verbose than even INFO, and only displays explicits echos that you specify in your pipeline, and also the description from the step decorator. This should make it much easier to see what your pipeline is doing without the extra detail that can make things confusing and harder to follow. #132
  • under-the-hood api improvement for more performant logging #152

Better Errors - line numbers, save errors

10 Jul 08:48
Compare
Choose a tag to compare

With eternal thanks to @Reskov 🎉 for next level super useful improved error handling! 🙇

  • #139 - pypyr now saves all run-time errors to context under runErrors. This means subsequent steps can use error information from previous steps.
  • #135 - error information now include the pipeline source yaml line+col numbers