Repository navigation
Releases: jaffe-fly/ydt
Release list
v0.4.1
Fixed
- Speed up
ydt --help, subcommand help, andydt --versionstartup. - Lazy-load package-level public API exports so heavy dependencies load only when used.
- Avoid importing image, dataset, visualization, model,
albumentations, andscipymodules during CLI help rendering.
Validation
ydt --help: ~6.0s -> ~1.0s in the tested Windows conda environment.conda run -n card ydt --help: ~10.2s -> ~3.1s.ydt --version: ~0.22s.pytest tests -q: 41 passed.python -m build: succeeded.
v0.4.0
Release v0.4.0
Add crop command and enhance dataset synthesis
New Features:
-
Add crop command for extracting objects from images
- Model mode: use YOLO inference to detect and crop objects
- Dataset mode: use label files to crop from dataset
- Support class filtering, padding, and size filters
- New file: ydt/image/crop.py
-
Enhance dataset synthesis with balanced sampling
- Add --balanced-sampling for even class distribution
- Auto-detect class inference mode (folder/filename)
- Use mask contours for accurate OBB polygons
- Improve annotation transformation logic
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Release v0.3.0
New Features:
- Dataset extract command (extract by class, images-only, labels-only modes)
- Dataset analyze command (comprehensive dataset statistics and visualization)
- Dataset resize command (batch resize YOLO datasets with auto structure detection)
- Colored logging output with colorlog integration
Major Fixes:
- Fix Windows encoding issues in subprocess and file operations (UTF-8)
- Fix IMAGE_EXTENSIONS export bug in all (was object, now string)
- Fix dataset merge duplicate handling for same-name different-extension files
- Fix image crop single file support
CLI Improvements:
- resize: add --split for dataset mode, support upscaling small images
- visualize: replace --train/--val with --split, auto-detect single file
- synthesize: add annotation_format support (obb/hbb), fix memory issue
- Remove viz-hsv command (keep underlying code)
Breaking Changes:
- Dataset merge: removed handle_duplicates parameter (always rename)
- Extract: use class IDs instead of class names for precision")
v0.2.7
Release v0.2.7 - Dataset Synthesize Enhancements
This release adds powerful enhancements to the dataset synthesize command:
New Features:
-
Class name validation via --data-yaml parameter
- Ensures target filenames match class names from data.yaml
- Example: For class 'bn', files should be named like 'bn_back.jpg'
- Provides clear error messages for validation failures
-
Custom rotation range via --rotation-range parameter
- Limit rotation angles to specific ranges
- Format: --rotation-range=-20,20 (comma-separated min,max)
- Default: -90,90 degrees
- Use equals sign (=) for negative values
Improvements:
- Enhanced logging showing matched class names
- Optimized ruff configuration for better code quality
- All 317 linting issues resolved
- Improved documentation and help messages
v0.2.6
Release v0.2.6 - Test Suite and CI/CD Improvements
This release focuses on improving test coverage and CI/CD reliability.
Fixed:
- All test suite failures related to label path generation
- E2E test marker registration to prevent pytest warnings
- CLI tests to work with uv virtual environment
- GitHub Actions workflow issues (artifacts v3->v4, Windows shell)
Changed:
- Simplified CI/CD by using ruff exclusively for all code quality checks
- Replaced black and mypy with ruff format and ruff check for faster execution
- Formatted all Python files with black for consistency
v0.2.5
What's New in v0.2.5
New Features
Single File Processing Support
All image processing commands now support single file input in addition to directory input:
All commands maintain full backward compatibility with directory input.
Bug Fixes
Logging System Improvements
- Fixed duplicate log messages in CLI commands
- Improved logger hierarchy to prevent handler duplication
- Child loggers now properly inherit from parent logger via propagation
- Cleaner console output with single log entries
Documentation
- Updated `README.md` and `README_CN.md` with single file examples
- Added comprehensive `CHANGELOG.md` for v0.2.5
- Updated command-line help messages
Technical Details
- Modified `ydt/image/slice.py` to detect and handle single file input
- Modified `ydt/image/augment.py` to support single image augmentation with automatic label detection
- Modified `ydt/cli/main.py` to handle single file mode for crop-coords
- Refactored `ydt/core/logger.py` to prevent duplicate handlers