Skip to content

0.5.0

Compare
Choose a tag to compare
@CagtayFabry CagtayFabry released this 12 Oct 17:50
· 279 commits to master since this release
4b1bdb9

0.5.0 (12.10.2021)

Release 0.5.0 brings a major rework of the weldx standard and many
API improvements:

Highlights

  • weldx now internally uses the reworked ASDF extension API. The
    schema and tag naming patterns have also changed to the recommended
    asdf:// format.
  • New Time class to make handling of time related functionality
    easier and consistent.
  • many internal reworks to streamline the code.
  • rework the API documentation to show the most
    important classes.

Compatibility

  • the 0.5.x versions will retain backwards compatibility with files
    generated with the 0.4.x versions and convert them to the new
    naming schema on save. Support for the old schemas will be dropped in
    the 0.6 release.

added

  • added "units" (exact) and "dimensionality" (dimensionality
    compatible) checking options to util.xr_check_coords [#442]
  • Time class that can be initialized from several other time types
    and provides time related utility functions [#433]
  • TimeSeries now supports setting a reference_time absolute time
    values for interpolation [#440]
  • LocalCoordinateSystem.from_axis_vectors and
    CoordinateSystemManager.create_cs_from_axis_vectors [#472]
  • added PyTest flags to use WeldxFile internally in
    asdf.util.read_buffer and asdf.util.write_buffer [#469].
  • added classes and functions at the top-level of the package to the
    documentation [#437].
  • added weldx.asdf.util.get_highest_tag_version utility function
    [#523].
  • added support for parsing temperature deltas with Δ° notation
    [#565].
  • WeldxFile.info to print a quick content overview to the stdout.
    [#576].

removed

  • removed functions now covered by Time:
    pandas_time_delta_to_quantity, to_pandas_time_index,
    get_time_union [#448]
  • removed custom wx_tag validator [#461]
  • attrdict dependency replaced with a custom implementation of
    recursive dicts [#470].
  • from_xyz, from_xy_and_orientation,
    from_yz_and_orientation and from_xz_and_orientation from
    LocalCoordinateSystem. Use
    LocalCoordinateSystem.from_axis_vectors instead. [#472]
  • create_cs_from_xyz, create_cs_from_xy_and_orientation,
    create_cs_from_yz_and_orientation and
    create_cs_from_xz_and_orientation from CoordinateSystemManager.
    Use CoordinateSystemManager.create_cs_from_axis_vectors instead.
    [#472]
  • is_column_in_matrix, is_row_in_matrix, to_float_array,
    to_list, matrix_is_close, vector_is_close and
    triangulate_geometry from weldx.util [#490]
  • remove the : syntax from wx_shape validation [#537]

changes

  • move welding.util.sine utility function to weldx.welding.util
    [#439]
  • LocalCoordinateSystem and CoordinateSystemManager function
    parameters related to time now support all types that are also
    supported by the new Time class [#448]
  • LocalCoordinateSystem.interp_time returns static systems if only a
    single time value is passed or if there is no overlap between the
    interpolation time range and the coordinate systems time range. This
    also affects the results of some CoordinateSystemManager methods
    (CoordinateSystemManager.get_cs ,
    CoordinateSystemManager.interp_time) [#476]
  • util.WeldxAccessor.time_ref setter now raises a TypeError if
    None is passed to it [#489]
  • move xarray related utility functions into weldx.util.xarray and
    all other ones into weldx.util.util. Content from both submodules
    can still be accessed using weldx.util [#490]
  • xarray implementations for the LocalCoordinateSystem now operate on
    time as a dimension instead of coordinates [#486]
  • WeldxFile.copy now creates a copy to a (optional) file. Before it
    just returned a dictionary [#504].
  • changed the default pint.Unit formatting to short notation :~
    [#519]. (the asdf
    serialization still uses long notation ([#560]))
  • welding_current and welding_voltage in the single-pass weld
    schema now expect the tag
    "asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.*" instead
    of "asdf://weldx.bam.de/weldx/tags/measurement/signal-0.1.*"
    [#578].
  • Geometry.__init__ now also accepts an iso.IsoBaseGroove as profile
    parameter [#583].
  • Renamed Geometry.__init__ parameter trace to trace_or_length. A
    pint.Quantity is now an accepted input. In this case the value will be used
    to create a linear trace of the given length [#583].

fixes

  • WeldxFile.show_asdf_header prints output on console, before it only
    returned the header as parsed dict and string representation. Also
    tweaked efficiency by not writing binary blocks [#459], [#469].
  • Merging and unmerging multiple CoordinateSystemManager instances
    now correctly preserves all attached data. [#494].
  • util.compare_nested can compare sets [#496]
  • WeldxFile respects mode argument also for BytesIO and file
    handles [#539].

documentation

  • added installation guide with complete environment setup (Jupyterlab
    with extensions) and possible problems and solutions [#450]
  • split API documentation into user classes/functions and a full API
    reference [#469].
  • added citation metadata in CITATION.cff [#568].

ASDF

  • all schema version numbers set to 0.1.0 [#535].
  • add time/time schema to support Time class [#463].
  • rework ASDF extension to new asdf 2.8 API [#467]
    • move schema files to weldx/schemas
    • create extension manifest in weldx/manifests. The manifest
      also contains tag mappings for legacy tag names for backwards
      compatibility.
    • move tag module to weldx/tags
    • refactor all asdf uris to new asdf:// naming convention, see
      https://asdf.readthedocs.io/en/latest/asdf/extending/uris.html#entities-identified-by-uri
    • replaced all referenced weldx tag versions in schemas with
      0.1.*
    • refactor
      asdf://weldx.bam.de/weldx/schemas/datamodels/single_pass_weld-1.0.0.schema
      to
      asdf://weldx.bam.de/weldx/schemas/datamodels/single_pass_weld-0.1.0
      and enable schema test
    • add legacy class for validators support in
      weldx.asdf._extension.py
    • asdf utility functions weldx.asdf.util.uri_match,
      weldx.asdf.util.get_converter_for_tag and
      weldx.asdf.util.get_weldx_extension
    • add devtools/scripts/update_manifest.py to auto update
      manifest from extension metadata
    • custom shape validation must now be implemented via staticmethod
      weldx.asdf.types.WeldxConverter.shape_from_tagged
  • provide legacy schema support in
    weldx/schemas/weldx.bam.de/legacy [#533]
  • rewrote
    asdf://weldx.bam.de/weldx/schemas/core/transformations/coordinate_system_hierarchy
    schema for the CoordinateSystemManager. It uses the digraph schemas
    to serialize the coordinate system structure. [#497]
  • add asdf://weldx.bam.de/weldx/schemas/unit/quantity and
    asdf://weldx.bam.de/weldx/schemas/unit/unit schemas [#522]
  • use asdf://weldx.bam.de/weldx/schemas/unit/quantity instead of
    tag:stsci.edu:asdf/unit/quantity-1.1.0 [#542].
  • refactor properties named unit to units and use unit/unit
    tag [#551].
  • reworked the optional syntax for wx_shape validation [#571].

dependencies

  • set k3d!=2.10 because of conda dependency bugs [#577] [#474].
  • Python 3.10 is not supported in this version. [#575]

Merged PRs

Full Changelog: v0.4.1...v0.5.0