Release Notes

0.5.2 (18.11.2021)

added

changes

  • WeldxFile now raises an exception, if a warning is emitted during loading the weldx ASDF extension, this should prevent erroneous data during loading, for example missing dependencies. [#641]

  • WeldxFile now hides ASDF added fields like history and asdf_library from the dictionary interface. To access these, there are separate properties [#625].

  • Allow handling of time values as singular coordinates without dimensions in some classes [#635].

fixes

dependencies

  • Removed ipykernel dependency. [#634]

  • The K3D implementation now uses the experimental weldx-widgets backend if available [#636]

0.5.1 (04.11.2021)

added

changes

fixes

documentation

ASDF

  • fix process missing as required property in single_pass_weld-0.1.0.yaml [#627]

deprecations

  • removed welding.util.lcs_coords_from_ts [#620]

dependencies

  • adjust code to support pint 0.18 unit formatting. [#616]

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

removed

changes

fixes

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]

0.4.1 (20.07.2021)

changes

ASDF

  • sort List[str] before serialization of most weldx classes to avoid random reordering in the same file and enforce consistency. [#430]

deprecations

  • lcs_coords_from_ts will be removed in version 0.5.0 [#426]

0.4.0 (13.07.2021)

Release 0.4.0 brings many new major features to weldx

Highlights

full changelog below:

added

changes

documentation

ASDF

fixes

deprecations

  • deprecate wx_tag validator (use default asdf uri pattern matching) [#410]

0.3.3 (30.03.2021)

This is a bugfix release to correctly include the asdf schema files in conda builds. [#314]

ASDF

  • fix required welding wire metadata in single-pass-weldx.1.0.0.schema [#316]

0.3.2 (29.03.2021)

added

removed

  • rotation_matrix_x, rotation_matrix_y and rotation_matrix_z [#317]

dependencies

  • restrict scipy!=1.6.0,scipy!=1.6.1 [#300]

ASDF

  • add validators to rotation-1.0.0.yaml & gas_component-1.0.0.yaml [#303]

  • update descriptions in single-pass-weldx.1.0.0.schema [#308]

fixes

0.3.1 (21.03.2021)

added

ASDF

  • remove the additionalProperties restriction from single_pass_weld-1.0.0.schema.yaml [#283]

  • allow scalar integer value in anyOf of time_series-1.0.0.yaml to fix #282 [#286]

  • add examples to schema files [#274]

changes

fixes

  • A warning is now emitted if a LocalCoordinateSystem drops a provided time during construction. This usually happens if the coordinates and orientation only contain a single data point. [#285]

0.3.0 (12.03.2021)

added

ASDF

  • Add possibility to store meta data and content of an external file in an ASDF file [#215]

    • Python class: asdf.ExternalFile

    • Schema: core/file-1.0.0.yaml

  • Added support for serializing generic metadata and userdata attributes for weldx classes. [#209]

    • the provisional attribute names are wx_metadata and wx_user

  • None values are removed from the asdf tree for all weldx classes. [#212]

  • add datamodels directory and example http://weldx.bam.de/schemas/weldx/datamodels/single_pass_weld-1.0.0.schema schema [#190]

    • schemas in the datamodels directory do not define any tags and can be referenced in other schemas and as custom_schema when reading/writing ASDF-files

    • the single_pass_weld-1.0.0.schema is an example schema for a simple, linear, single pass GMAW application

    • add core/geometry/point_cloud-1.0.0.yaml schema [#234]

  • add file schema describing a simple linear welding application datamodels/single_pass_weld-1.0.0.schema [#256]

documentation

  • Simplify tutorial code and enhance plots by using newly implemented plot functions [#231] [#251]

  • add AWS shielding gas descriptions to documentation [#270]

changes

fixes

dependencies

0.2.2 (30.11.2020)

added

  • Added util.ureg_check_class class decorator to enable pint dimensionality checks with @dataclass [#179].

  • Made coordinates and orientations optional for LCS schema. Missing values are interpreted as unity translation/rotation. An empty LCS object represents a unity transformation step. [#177]

  • added welding.util.lcs_coords_from_ts function [#199]

  • add a tutorial with advanced use case for combining groove interpolation with different TCP movements and distance calculations [#199]

changes

  • refactor welding groove classes [#181]

    • refactor groove codebase to make use of subclasses and classnames for more generic functions

    • add _meta attribute to subclasses that map class attributes (dataclass parameters) to common names

    • rework get_groove to make use of new class layout and parse function arguments

  • create welding module (contains GMAW processes and groove definitions) [#181]

  • move GmawProcessTypeAsdf to asdf/tags folder [#181]

  • reorder module imports in weldx.__init__ [#181]

  • support timedelta dtypes in ASDF data_array/variable [#191]

  • add set_axes_equal option to some geometry plot functions (now defaults to False) [#199]

  • make welding.util.sine public function [#199]

  • switch to setuptools_scm versioning and move package metadata to setup.cfg [#206]

ASDF

  • refactor ISO 9692-1 groove schema definitions and classes [#181]

    • move base schema definitions in file terms-1.0.0.yaml to weldx/groove

    • split old schema into multiple files (1 per groove type) and create folder iso_9692_1_2013_12

0.2.1 (26.10.2020)

changes

ASDF extension & schemas

  • add weldx.asdf.types.WxSyntaxError exception for custom weldx ASDF syntax errors [#99]

  • add custom wx_tag validation and update wx_property_tag to allow new syntax [#99]
    the following syntax can be used:
    wx_tag: http://stsci.edu/schemas/asdf/core/software-* # allow every version
    wx_tag: http://stsci.edu/schemas/asdf/core/software-1 # fix major version
    wx_tag: http://stsci.edu/schemas/asdf/core/software-1.2 # fix minor version
    wx_tag: http://stsci.edu/schemas/asdf/core/software-1.2.3 # fix patch version
    
  • add basic schema layout and GmawProcess class for arc welding process implementation [#104]

  • add example notebook and documentation for arc welding process [#104]

  • allow optional properties for validation with wx_shape by putting the name in brackets like (optional_prop) [#176]

fixes

  • fix propagating the name attribute when reading an ndarray TimeSeries object back from ASDF files [#104]

  • fix pint regression in TimeSeries when mixing integer and float values [#121]

0.2.0 (30.07.2020)

ASDF

0.1.0 (05.05.2020)

ASDF

  • add basic file/directory layout for asdf files

    • asdf schemas are located in weldx/asdf/schemas/weldx.bam.de/weldx

    • tag implementations are in weldx/asdf/tags/weldx

  • implement support for pint quantities

  • implement support for basic pandas time class

  • implement base welding classes from AWS/NIST “A Welding Data Dictionary”

  • add and implement ISO groove types (DIN EN ISO 9692-1:2013)

  • add basic jinja templates and functions for adding simple dataclass objects

  • setup package to include and install ASDF extensions and schemas (see setup.py, MANIFEST.in)

  • add basic tests for writing/reading all ASDF classes (these only run code without any real checks!)

module:

  • add setup.py package configuration for install

    • required packages

    • package metadata

    • asdf extension entry points

    • version support

  • update pandas, scipy, xarray and pint minimum versions (in conda env and setup.py)

  • add versioneer

  • update options in setup.cfg

  • update tool configurations