revamp: adds support for CityJSON 2.0.0 and major revamps of the repo - #30
Merged
Merged
Conversation
added 8 commits
August 9, 2026 23:35
- add GitHub Actions workflow for Ruff, mypy, and pytest - format and lint the codebase with Ruff - enforce import ordering, annotations, and Python naming conventions - add type hints and structural protocols for Blender API objects - separate Blender-dependent add-on implementation from package initialization - standardize snake_case identifiers and CityJSON serialization boundaries - use .city.json as the default export extension
- extend the quality workflow with unit and headless Blender coverage - download and verify Blender 5.2 during CI - combine unit and integration coverage with a 95% minimum threshold - add headless import/export tests for every dataset in tests/data - add 3DBAG, Vienna, LoD3 Railway, and noise extension fixtures - add unit tests for core object, material, and utility behavior - preserve CityJSON IDs that Blender interprets as numeric name suffixes - support extension CityObjects with attributes, relationships, geometry, geographical extents, and custom properties - preserve unsupported mesh representations such as GeometryInstance and MultiLineString during round trips - preserve document appearance, extensions, and geometry templates - require semantic type metadata before reusing Blender materials - normalize missing or invalid polygon material indices - handle zero-valued transform scales without export failures - safely remove Blender collections while iterating - replace linear solid-vertex searches with indexed lookups - add Blender API typing for custom-property access - add pytest-cov and coverage configuration
- extend the quality workflow with unit and headless Blender coverage - download and verify Blender 5.2 during CI - combine unit and integration coverage with a 95% minimum threshold - add headless import/export tests for every dataset in tests/data - add 3DBAG, Vienna, LoD3 Railway, and noise extension fixtures - add unit tests for core object, material, and utility behavior - preserve CityJSON IDs that Blender interprets as numeric name suffixes - support extension CityObjects with attributes, relationships, geometry, geographical extents, and custom properties - preserve unsupported mesh representations such as GeometryInstance and MultiLineString during round trips - preserve document appearance, extensions, and geometry templates - require semantic type metadata before reusing Blender materials - normalize missing or invalid polygon material indices - handle zero-valued transform scales without export failures - safely remove Blender collections while iterating - replace linear solid-vertex searches with indexed lookups - add Blender API typing for custom-property access - add pytest-cov and coverage configuration
konmast3r
force-pushed
the
seriarize-cityjson-object-and-wire-it-up
branch
from
August 10, 2026 23:17
9e8cff5 to
55c7122
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds complete CityJSON serialization and Blender import/export support, strengthens Python quality standards, substantially expands automated testing, and introduces CI and release automation.
Key changes
Code quality
Testing and coverage
Release automation
Repository governance and documentation