Additions
- Added the `py2dm.utils` submodule containing utilities related to 2DM development, such as converters for malformed 2DM files, a utility for merging meshes along adjacent edges (work-in-progress, see [6](https://github.com/leonhard-s/Py2DM/issues/6)), and converting [Triangle](https://www.cs.cmu.edu/afs/cs/project/quake/public/www/triangle.html) result files to 2DM for automated testing and benchmarking.
- Introduced the `py2dm.implementation` global to allow introspection of which parser is loaded (will be set to "c" or "python" respectively).
Fixes
- Fixed a build error that would cause the C extension build to fail when building from source when using MSVC. Installations using the prebuilt wheel are unaffected.
- Fixed an issue that caused the first line of node indices to be ignored for multiline node string definitions in some formats.
- Fixed an issue that would cause the parser to seek to the beginning of the file if no node strings were provided, leading to reduced reader performance for large meshes without node strings.
Changes
- Py2DM will no longer emit a UserWarning when loaded without C extension on CPython. Instead, the user may test for the currently used implementation using the `py2dm.implementation` global mentioned above.
- All file paths may now also allow `pathlib.Path` arguments, in addition to strings.