Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: 0.10.0 #64

Merged
merged 123 commits into from
Jan 18, 2025
Merged

Release: 0.10.0 #64

merged 123 commits into from
Jan 18, 2025

Conversation

philtweir
Copy link
Contributor

@philtweir philtweir commented Jan 18, 2025

Releasing 0.10.0

This PR is to release 0.10.0.

Improvements

Annotations

  • add ability to annotate variables
  • correct name to AtRender

Inspection

  • function inspection does not work right with python>=3.12.8 so pull forward better getclosurevars logic from dewret 0.11 channel and accept that the existing logic is too brittle

Renderers

  • add way to output subworkflows to files
  • make the renderer semantics less janky
  • can pick renderers dynamically

Sympy

  • more flexible parameter support
  • handle arithmetic/structure manipulation of references
  • support none in dicts

Fields

  • make it possible to use a plain dict if configured for fields
  • can go upwards in fields

Iterables

  • allow spreading
  • provide len for Fixed
  • support list/tuple return values
  • add loopable parameters

Imports

  • retrieve annotations from imported modules
  • add a catch for a bug in the first import
  • double-check importing correctly errors if render neither behaves as a package nor isolated module

Positionals

  • allow positional arguments if configuration override supplied

Typing

  • move @subworkflow to @workflow
  • make types consistent in core

Docs & Linting

  • ensure callback names unused parameter consistently for mypy
  • dataclass field types now cause mypy errors
  • ignore for ExprType
  • updated renderer tutorial with the protocols implementation needed for a custom renderer to be considered a dewret renderer
  • added docstrings to annotation tests
  • allow subclassing any for mypy to enable subclassing Symbol
  • fix tests and types for mypy and ruff on 3.11 and 3.12
  • fix mypy issue in tests on 3.11
  • fix up typehints and disable mypy sympy checking, as sympy does not have typehints

Tests

  • add test docstrings
  • ensure pytest ignores tests._lib
  • restore commented test
  • restore 3.11 in test
  • try 3.12 in test

CI

  • add 3.12 to the build matrix
  • typo in workflow
  • typo in workflow
  • enable example tests in CI

CWL

  • deal with fact we cannot comprehensively type-check to_output_schema for CWL re. dataclass fields
  • added a test for default renderer

CLI

  • add the ability to pass renderer arguments via CLI/YAML
  • abstracted write_rendered_output from the main dewret CLI
  • add construct args to CLI

General Minor Fixes

  • add configuration for simplify_ids
  • add is_firm
  • address field and hashing consistency
  • allow fields of parameters
  • allow workflows to come from packages
  • better error message for iterating a non-iterable
  • check that importing a non-compliant render module throws an error
  • confirm tuples can be returned
  • construct kwargs used to set_configuration
  • correct logic for remapping before a workflow has a name
  • correct name of default_config
  • correctly handle flattened nested tasks
  • do not lose the field structure when iterating
  • efficiency improvements
  • ensure that fieldability doesn't mean dask matches references as a Delayed
  • expressions should consider Raw as a raw type
  • fix explanatory text
  • fix render load order
  • fixups in iteration
  • formating
  • formatted methods
  • ignore annotations when looking at fieldability
  • integrate flatten_all_nested configuration
  • is_raw_type should handle union types
  • make make_reference pass workflow if none
  • make field separator configurable
  • make result ordering consistent
  • make sure the globals are updated when a subworkflow is running
  • make sure we can identify an iterated ref
  • move indexing to find_field
  • nested raw is parseable
  • reduce number of workflow merges
  • refactored render.py:get_render_method for better readability, added explanitory comments
  • remove Graph import from dask.typing in backend_dask as it seems to cause errors
  • remove duplicate hash method
  • remove unnecessary abstractmethod annotation
  • remove variable re-use
  • render configuration
  • replace all Unions with | for consistency
  • resolve the parameter deduplication
  • scope thread pools to a single render call and add context copying
  • sorted should not break for two identical steps
  • step reference works as tuple
  • throw import exceptions
  • tidy up 0.9.2 merge, mostly label corrections
  • tidy up type parsing
  • unbreak the doublequotes

KamenDimitrov97 and others added 29 commits September 2, 2024 13:48
…ded for a custom renderer to be considered a dewret renderer
…ements

Expressions, Parameters and Renderers
…devs

Mypy Errors Triggered in Local Development
…=3.12.8 so pull forward better getclosurevars logic from dewret 0.11 channel and accept that the existing logic is too brittle
@philtweir philtweir merged commit 308499b into main Jan 18, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants