Skip to content

layoutc v0.2.0

Choose a tag to compare

@anthonyrisinger anthonyrisinger released this 21 Jun 04:36
· 12 commits to main since this release

layoutc v0.2.0

This major release brings significant improvements for production readiness and ease of use.

πŸš€ New Features

  • Auto-detection for JSON/PNG formats: No need to specify output format explicitly - layoutc automatically detects the format based on file extension
  • Atlas limit validation: Added proper error handling with AtlasLimitExceededError when trying to create atlas groups exceeding the 255 limit
  • Enhanced CLI interface: Improved command-line experience with better error messages and help text

πŸ”§ Improvements

  • Pure Python package: Removed all Rust components for simpler installation and maintenance
  • Comprehensive documentation: Updated README with detailed usage examples, installation instructions, and technical details
  • Better package metadata: Enhanced PyPI metadata with proper description, license, and project URLs
  • Improved test coverage: Added comprehensive tests for validation, error handling, and edge cases

πŸ› Bug Fixes

  • Fixed circular import issues in entity modules using TYPE_CHECKING
  • Resolved auto-detection problems by ensuring entity subclasses are properly registered
  • Clean import structure to avoid side-effect loading issues

πŸ“¦ Package & Distribution

  • Version bumped to 0.2.0
  • Published to PyPI with complete README as project description
  • Added MIT license file
  • Improved build system with modern SPDX license format

πŸ”„ Breaking Changes

  • Removed Rust binaries and Cargo.toml
  • Cleaned up import structure (internal changes, API remains compatible)

πŸ“‹ Installation

pip install layoutc

🎯 Usage

Command Line

# Auto-detection based on file extension
layoutc input.json output.png
layoutc arena.json atlas.png

Python API

from layoutc.codec import Codec
from layoutc.entity import Entity

# Create codec and work with entities
codec = Codec()
# Load and save using codec methods
with open('input.json', 'rb') as f:
    codec.load(f)
with open('output.png', 'wb') as f:
    codec.dump(f)

This release makes layoutc production-ready with robust error handling, comprehensive documentation, and a clean, intuitive interface.