Repository navigation
v2.1.0
[2.1.0] - 2024-08-28
🚀 Modernization Release - uv and Python 3.12+ Optimization
This release modernizes the project to use uv for package management and removes all legacy typing imports in favor of modern Python 3.12+ type annotations.
Added
📦 Package Management Modernization
- uv Support: Full migration from pip to uv for faster package management
- Hatchling Backend: Updated build system to use hatchling instead of setuptools
- Optimized Dependencies: Removed unused dependencies (pathlib-mate, typing-extensions)
🐍 Modern Python 3.12+ Features
- Native Type Annotations: Removed all
typingmodule imports - Union Syntax: Using
|instead ofUnionthroughout codebase - Collections.abc: Using built-in collections.abc instead of typing equivalents
- Modern Object Type: Using
objectinstead ofAnywhere appropriate
Changed
🧹 Code Modernization
- Type System: Complete removal of typing module dependencies
- Import Cleanup: Removed unused imports (asyncio, typing-extensions)
- Dependency Reduction: Streamlined dependency list to essential packages only
📚 Documentation Updates
- Installation Instructions: Updated to recommend uv over pip
- Development Setup: Modernized development workflow with uv
- Contributing Guide: Updated with uv-based development process
Removed
🗑️ Legacy Code Cleanup
- Legacy Scripts: Removed old compatibility scripts (wog_dump.py, convert_normal_map.py)
- Typing Imports: Eliminated all
from typing importstatements - Unused Dependencies: Removed pathlib-mate and typing-extensions
- Dead Code: Cleaned up unused imports and deprecated patterns
Migration Guide
For Developers
Old Development Setup:
pip install -e ".[dev]"New Development Setup:
uv pip install -e ".[dev]"Type Annotation Changes
Before (v2.0):
from typing import Any, Dict, List, Optional, Union
def process_data(items: List[Dict[str, Any]]) -> Optional[Dict[str, Union[str, int]]]:
passAfter (v2.1):
def process_data(items: list[dict[str, object]]) -> dict[str, str | int] | None:
passTechnical Improvements
Performance
- Faster Installation: uv provides significantly faster package resolution and installation
- Reduced Dependencies: Fewer packages to install and manage
- Cleaner Imports: No typing module overhead
Developer Experience
- Modern Syntax: Cleaner, more readable type annotations
- Better Tooling: uv provides superior dependency management
- Simplified Setup: Fewer steps required for development environment