All Versions
12
Latest Version
Avg Release Cycle
41 days
Latest Release
350 days ago

Changelog History
Page 1

  • v4.3.0 Changes

    November 12, 2020
    • Streamline main entrypoint API. close #201.
      • main() allows consumer to set pype loader, rather than having to drop further down into api to load_and_run_pipeline()
      • new main_with_context() to input dict to initialise context, and bypass context_parser entirely. Also returns the Context object after pipeline run completes.
      • make all non-essential args optional to allow minimal calls to main entrypoint without having to add optional=None style inputs.
      • This is fully backwards compatible.
    • pypyr.steps.pype
      • defaults useParentContext to False is pipeArgs specified.
      • pipeArgs shlex-es input string
      • set pipeline_name on child pipeline rather than use parent pipeline name
    • working_dir uses Path object rather than string
    • 🚚 pypyr.steps.echo remove redundant string check.
  • v4.2.0 Changes

    October 30, 2020
    • python 3.9 compatibility officially confirmed. All good. Woo!
    • 🆕 New Flat ff and Recursive rf formatting specifiers. #195
      • Maintain backwards compatibility for all current formatting functionality.
      • The get_formatted_string, get_formatted_iterable & get_processed_string methods on Context() are now all deprecated. Use get_formatted_value instead. All of the deprecated functions will keep on working as before, but will print a WARN to the output.
      • get_formatted and get_formatted_value remain the official best ways of getting formatted values.
    • 🆕 New !jsonify yaml special tag directive. This converts context object to a json string. #197.
    • 🆕 New pypyr.steps.jsonparse step. Parse and deserialise a json string into Context. #199
    • Bare pypyr.steps.assert syntax. #196
    • ➕ Add new utils.asserts for extra flexibility with nested key validation.
    • PyStrings optimised. Not so that you'd notice, but still, it'll be a smidge faster.
    • 📜 Friendlier error messages when yaml/json context parsers reject documents that do NOT have a mapping at root.
  • v4.1.0 Changes

    August 30, 2020
    • 👍 Better description output - add (skipping) to output if the step is not running because run is False or skip is True. Ref #158.
    • 🚀 First release published from shiny new GitHub Action CI/CD!
    • ➕ Add License to wheel published to pypi
  • v4.0.0 Changes

    August 17, 2020
    • BREAKING CHANGE: final deprecation of in args persisting after step execution. For full discussion please see #177. Preview functionality where setting environment variable $PYPYR_IN_CLEAN = 1 is now the default. You can remove the $PYPYR_IN_CLEAN variable from this release onwards. Henceforth pypyr removes in args from context after step completes. If you want to persist values in context, use pypyr.steps.contextsetf, pypyr.steps.contextcopy or pypyr.steps.default.
    • 💥 BREAKING CHANGE: pypyr.steps.assert raises an AssertionError rather than a ContextError. Ref #188.
    • 💅 The cli now defaults to a simplified log format that is way less noisy. If you still want the full, old style logs, run pypyr with --log 25 set explicitly. pypyr my pipe --log 25. Ref #187
      • description decorator output also simplified to echo only your actual custom text.
    • 👍 Failure Groups now support Stop instructions. This allows you to exit the failure handler reporting success, so pypyr can report success if you consider the error condition handled. Ref #175.
    • 🗄 pypyr.steps.contextset renamed pypyr.steps.contextcopy. The old name will keep on working, but with a deprecation warning. Ref #184.
    • ✅ internal: improvements to integration testing error reporting.
  • v3.2.2 Changes

    August 13, 2020
    • 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.
  • v3.2.1 Changes

    April 14, 2020
    • 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!
  • v3.2.0 Changes

    April 04, 2020

    🚀 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..
  • v3.1.0 Changes

    February 11, 2020

    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

  • v3.0.3 Changes

    January 29, 2020
    • 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.
  • v3.0.2 Changes

    November 18, 2019
    • 🛠 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!