Skip to content

Releases: infimalabs/layoutc

v0.2.2

22 Jun 00:05

Choose a tag to compare

What's Changed

Documentation Improvements

  • Copy-Paste Ready Examples: All Python examples now work with pip install -e . and can be copied directly into python3 or piped via pbpaste | python3
  • Real Tournament Data: All examples use the included tournament layout files for immediate testing
  • Comprehensive Workflow Examples: Added practical examples showing JSON→PNG→TSV conversions and multi-layout atlas creation
  • Improved User Experience: Clear copy-paste instructions for Windows, macOS, and Linux

Full Changelog: v0.2.1...v0.2.2

layoutc v0.2.1

21 Jun 04:49

Choose a tag to compare

layoutc v0.2.1

This is a documentation cleanup release that fixes inaccuracies in the documentation.

🐛 Documentation Fixes

  • Removed non-existent API references: Cleaned up documentation that incorrectly referenced a validate=False parameter that doesn't exist in the actual API
  • Simplified validation explanations: Streamlined coordinate validation error messages in the README for clarity
  • Entity documentation cleanup: Updated entity documentation to accurately reflect the actual API without mentioning unsupported parameters

📋 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 ensures the documentation accurately reflects the actual API functionality.

layoutc v0.2.0

21 Jun 04:36

Choose a tag to compare

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.