0.5.0
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 the0.4.x
versions and convert them to the new
naming schema on save. Support for the old schemas will be dropped in
the0.6
release.
added
- added "units" (exact) and "dimensionality" (dimensionality
compatible) checking options toutil.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 areference_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
andasdf.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
andfrom_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
fromCoordinateSystemManager
.
UseCoordinateSystemManager.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
fromweldx.util
[#490]- remove the
:
syntax fromwx_shape
validation [#537]
changes
- move
welding.util.sine
utility function toweldx.welding.util
[#439] LocalCoordinateSystem
andCoordinateSystemManager
function
parameters related to time now support all types that are also
supported by the newTime
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 someCoordinateSystemManager
methods
(CoordinateSystemManager.get_cs
,
CoordinateSystemManager.interp_time
) [#476]util.WeldxAccessor.time_ref
setter now raises aTypeError
if
None
is passed to it [#489]- move xarray related utility functions into
weldx.util.xarray
and
all other ones intoweldx.util.util
. Content from both submodules
can still be accessed usingweldx.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
andwelding_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 aniso.IsoBaseGroove
asprofile
parameter [#583].- Renamed
Geometry.__init__
parametertrace
totrace_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
respectsmode
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 supportTime
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
- move schema files to
- 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 theCoordinateSystemManager
. 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
tounits
and useunit/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
- Update changelog by @vhirtham in #438
- [WeldxFile] fix show header in non interactive sessions by @marscher in #428
- move util functions to welding module by @CagtayFabry in #439
- add "units" and "dimensionality" options to
xr_check_coords
by @CagtayFabry in #442 - define
Q_
directly in constants module by @CagtayFabry in #444 - Time class by @vhirtham in #433
- Markdown to rst by @marscher in #452
- [csm/k3d-viz] downcast coordinates to float32 by @marscher in #449
- use updated sphinx version, unpin jinja2 by @CagtayFabry in #457
- Nitpick ignore cleanup by @CagtayFabry in #458
- [asdf] Do not copy array data by @marscher in #456
- Timeseries absolute times by @CagtayFabry in #440
- Add abstract base class for time dependent types by @vhirtham in #460
- Use
Time
inLocalCoordinateSystem
andCoordinateSystemManager
by @vhirtham in #448 - update deprecated mpl plot calls by @CagtayFabry in #462
- remove
wx_tag
validator by @CagtayFabry in #461 - add asdf
time/time
schema by @CagtayFabry in #463 - use glob pattern to include top level schemas in docs by @CagtayFabry in #465
- Return
Time
when usingtime
properties by @vhirtham in #464 - update gh black action by @CagtayFabry in #466
- WelDXfile compression/show_header fixes by @marscher in #459
- Add mypy by @vhirtham in #435
- Install guide by @marscher in #450
- replaced attrdict with custom impl. by @marscher in #470
- Fix warnings by @CagtayFabry in #473
- Merge and remove
LCS.from_
methods by @vhirtham in #472 - Complete Time todos by @vhirtham in #468
- fix unambiguous timedeltas in Time docstring by @CagtayFabry in #477
- Remove obsolete type hint by @vhirtham in #478
- new asdf extension API by @CagtayFabry in #467
- csm time interpolation range by @CagtayFabry in #476
- Update gh actions by @CagtayFabry in #484
- Fix warnings by @vhirtham in #485
- Separate transformation tests by @vhirtham in #488
- Update weldx accessor by @vhirtham in #489
- Dummy inline arrays in asdf.util and weldxfile by @marscher in #469
- Refactor utility module by @vhirtham in #490
- Refactor interpolation by @CagtayFabry in #486
- add set handling to compare_nested by @CagtayFabry in #496
- pin k3d in binder env by @CagtayFabry in #498
- use subgraph view in csm serialization by @CagtayFabry in #499
- Fix data handling during merging and unmerging of CSM instances by @vhirtham in #494
- apply pyupgrade by @CagtayFabry in #500
- fix jupyterlab install instructions by @CagtayFabry in #502
- pin k3d by @marscher in #506
- WeldxFile copy interface by @marscher in #504
- Use micromamba in Github workflows by @marscher in #507
- fix k3d version by @CagtayFabry in #511
- support legacy tag in process schema by @CagtayFabry in #514
- set ipykernel version by @CagtayFabry in #515
- ignore dataset ref by @CagtayFabry in #517
- compare sets in compare_nested by @CagtayFabry in #501
- CSM serialization by @vhirtham in #497
- add user API section by @CagtayFabry in #437
- add get_highest_tag_version by @CagtayFabry in #523
- support tagged string, add unit schema by @CagtayFabry in #522
- set pint default unit format to short notation by @CagtayFabry in #519
- Add legacy files by @CagtayFabry in #533
- [WeldxFile] added examples and link tutorial by @marscher in #534
- Add pre commit by @CagtayFabry in #530
- add pre-commit CI config (disable autofix for PRs) by @CagtayFabry in #538
- Remove test case interdependency by @vhirtham in #525
- change weldx schema versions to
0.1.0
by @CagtayFabry in #535 - Update wx shape syntax by @CagtayFabry in #537
- Wxfile fix update by @marscher in #539
- add black and isort hooks for notebooks by @CagtayFabry in #545
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #546
- update pydocstyle match patterns by @CagtayFabry in #544
- Use weldx quantity by @CagtayFabry in #542
- update units to short notation in examples by @CagtayFabry in #548
- delegate Time function calls to pandas.Index by @CagtayFabry in #503
- units refactor by @CagtayFabry in #551
- use tagged string schemas by @CagtayFabry in #541
- Export geometry as CAD file by @vhirtham in #536
- Doc fixes2 by @marscher in #540
- convert markdown files to rst by @marscher in #552
- long format pint serialization by @CagtayFabry in #560
- [WeldxFile] update signature matches parent by @marscher in #562
- update package metadata by @CagtayFabry in #566
- set boa>=0.6 for local build by @CagtayFabry in #569
- add
Δ°
pint preprocessor by @CagtayFabry in #565 - update code to use units by @CagtayFabry in #561
- Create RELEASE.md by @CagtayFabry in #570
- update wx_shape validator optional syntax by @CagtayFabry in #571
- add CITATION.cff and lint workflow by @CagtayFabry in #568
- format rst files with
rstfmt
by @CagtayFabry in #573 - Add
WeldxFile.info
by @vhirtham in #576 - Update single-pass weld schema by @vhirtham in #578
- Delete .typo-ci.yml by @CagtayFabry in #585
- Unpin k3d by @CagtayFabry in #577
- Geometry enhancements by @vhirtham in #583
- refactor units schema by @CagtayFabry in #586
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #591
- add pytest upload workflow by @CagtayFabry in #592
- Update pytest actions by @CagtayFabry in #590
- v0.5.0 by @CagtayFabry in #575
Full Changelog: v0.4.1...v0.5.0