Skip to content

Updated and expanded compas_singular version 1.0.0 - #10

Open
bladtcasper wants to merge 103 commits into
BlockResearchGroup:mainfrom
bladtcasper:dev
Open

bladtcasper wants to merge 103 commits into
BlockResearchGroup:mainfrom
bladtcasper:dev

Conversation

@bladtcasper

Copy link
Copy Markdown

Update and expansion of compas_singular, originally developed by Robin Oval during his PhD. This is the merge of all the work done during the past months on my own fork to update, fix and expand the package to create a working quad meshing tool.

What type of change is this?

  • Bug fix in a backwards-compatible manner.
  • New feature in a backwards-compatible manner.
  • Breaking change: bug fix or new feature that involve incompatible API changes.
  • Update and large-scale expansion of a previously archived package

Checklist

  • I added a line to the CHANGELOG.md file in the Unreleased section under the most fitting heading (e.g. Added, Changed, Removed).
  • I ran all tests on my computer and it's all green (i.e. invoke test).
  • I ran lint on my computer and there are no errors (i.e. invoke lint).
  • I added new functions/classes and made them available on a second-level import, e.g. compas.datastructures.Mesh.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added necessary documentation (if appropriate)

bladtcasper and others added 30 commits August 5, 2026 13:57
Update of compas_singular to compas-v2
Keep the branch limited to the existing compas_singular scripts ported to
COMPAS 2.x. The exploratory vault/pole examples, the documents written around
them, and the viewer patch they needed are not part of that port.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The old setup.py declared packages=[compas_singular] only, so a plain
install shipped the top-level package without datastructures/, algorithms/,
geometry/, topology/, utilities/ or rhino/ -- every documented import failed.
requirements.txt was also empty, so compas itself was never pulled in.

- move all packaging metadata to pyproject.toml and use packages.find so
  every subpackage is included; setup.py is now a shim for legacy invocations
- fill requirements.txt (compas>=2.0,<3, networkx) and add
  requirements-viewer.txt behind a [viewer] extra, both read by pyproject
- add environment.yml for a one-command conda setup
- document install and verification steps in README.md
- drop the setup.cfg universal-wheel flag (Python 3 only now)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Dev compas-v2 compatibility

Adds requirements to make cloning the repo more straightforward
Direct integration of compas v2 functions to delete _compat.py
Feature that merges compas_quad improvements over compas_singular

Port batches 1-2 of the compas_quad review: the safe fixes land
unconditionally, every behavioural change ships behind a keyword
argument defaulting to the current behaviour.

- fix the __all__ submodule leak in 19 package __init__ files, which
  made datastructures.add_strip/delete_strip modules rather than
  functions and broke algorithms/mapping.py
- QuadMesh: face_opposite_edge null guard, six polyedge accessors, and
  the opt-in flags strict=, oriented=, both_sides=, legacy=
- collect_polyedges/collect_strips: O(1) edge removal with the seed
  order preserved, so keys and output are unchanged
- twocoloring: drop the self.times line that raised NameError at the
  end of every successful projection_0()
- CI matrix to 3.9-3.12, action bumps, remove dead [tool:pytest] block

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@
Merge the compas_quad synch feauture into dev to create a solid foundation for compas_singular expansion

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant