Releases: pypyr/pypyr
line + col no., repo rename, readme updates.
- 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
nested call inside loops & in context clearing preview
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. Previouslyin
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..
- For this release this change in functionality is not the default, but enabled by setting the following environment variable
API change to main entrypoint for logging
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.
Retry Decorator handles original errors when calling Groups
Better error messages on failing import modules
pypyr.steps.debug & context merge support all types
Major version, with BREAKING CHANGES: features custom step groups, caching & no more ./pipelines dir
- 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 gopypyr dir/mypipe
- README+help updates for all of the above
less confusing logging with NOTIFY
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
With eternal thanks to @Reskov 🎉 for next level super useful improved error handling! 🙇