This pull request is a follow-up of #497, where I added the new civis.workflows.validate_workflow_yaml function and now I'm updating/fixing it. In #497, I missed a few things for validation:
A workflow YAML definition must contain only ASCII characters (a constraint that apparently inherits from the Mistral engine). I've verified that both the Civis Platform GUI and Civis API would raise an error for non-ASCII characters, so civis.workflows.validate_workflow_yaml should check for that as well.
For task transition, the Mistral workflow language apparently allows an array of tasks to be specified with a mixture of task names or a dict/object mapping a task name to a YAQL expression (which I only learned about from a real workflow YAML definition in production in one of the internal projects).
I'm also bumping up the versions of the dev and documentation dependencies. Since the latest scipy v1.14.0 allows only Python >= 3.10 and I'm always more than happy to help folks move things forward, I'm dropping support for Python 3.9 in civis-python.
[x] (For Civis employees only) Reference to a relevant ticket in the pull request title
[x] Changelog entry added to CHANGELOG.md at the repo's root level
[x] Description of change in the pull request description
[x] If applicable, unit tests have been added and/or updated
This pull request is a follow-up of #497, where I added the new
civis.workflows.validate_workflow_yaml
function and now I'm updating/fixing it. In #497, I missed a few things for validation:civis.workflows.validate_workflow_yaml
should check for that as well.I'm also bumping up the versions of the dev and documentation dependencies. Since the latest
scipy
v1.14.0 allows only Python >= 3.10 and I'm always more than happy to help folks move things forward, I'm dropping support for Python 3.9 in civis-python.CHANGELOG.md
at the repo's root level