Skip to content

Conversation

@lucas-diedrich
Copy link
Collaborator

@lucas-diedrich lucas-diedrich commented Jan 13, 2026

This work-in-progress PR aggregates all changes planned for py-LMD v2.0.0.

Goals of v2.0.0

The main objectives of this release are to:

  • Modularize the codebase.
  • Expose useful internal innovations (e.g. optimal path sorting of shapes).
  • Increase test coverage and reliability.

In the longer term, these changes should make it easier to:

  • Support additional XML formats used by the Leica LMD7.
  • Reuse individual methods in other packages and contexts.

All changes are intended to preserve the current public API, so that downstream packages require minimal (ideally no) modifications.

Planned Steps

  • Preserve py-LMD v1.5.0 behavior by increasing test coverage to >85% and adding tests for all public methods.
  • Expose optimal path sorting (TPS algorithms) as standalone utilities (see make poly_compression and path optimisation for shape collections not generated by the segmentation loader #9).
  • Refactor monolithic modules into smaller, more focused modules while maintaining the high-level API.
  • (Optional) Refactor large classes (Shape, Collection, SegmentationLoader) into smaller components and extract reusable logic into helper classes or functions.

lucas-diedrich and others added 28 commits January 12, 2026 10:22
…sts for now due to unauthorized access to zenodo
pyLMD v2.0.0 - Restructure tests module
@lucas-diedrich lucas-diedrich self-assigned this Jan 13, 2026
@lucas-diedrich lucas-diedrich added the enhancement New feature or request label Jan 13, 2026
lucas-diedrich and others added 29 commits January 15, 2026 01:05
pyLMD v2.0.0 - Expose TSP path optimization method to users
pyLMD v2.0.0 - Structure | Split lib module into sub package
@lucas-diedrich lucas-diedrich added the API Change affects the API of the package label Jan 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API Change affects the API of the package enhancement New feature or request refactor Restructuring of internal methods/functions without public API changes tests PR that mainly affects the testing infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants