Releases: swallat/gen-ibans
Releases · swallat/gen-ibans
Release v2.1.2
What's Changed
Full Changelog: v2.1.1...v2.1.2
Release v2.1.1
What's Changed
Changed
- Updated generated example configuration (config.toml) to current defaults of the new ID system:
- WID feature distribution now includes 0 = 00000 (kein Unterscheidungsmerkmal) and adjusted probabilities
- Comments updated to reflect new WID ranges (0, 1, 10, 99999)
- README updated:
- Example configuration synchronized with generated file
- Removed incorrect mention of legacy config.json backward compatibility
Full Changelog: v2.1.0...v2.1.1
Release v2.1.0
What's Changed
Added
- Regex-based bank filters in CLI:
--filter-bank-name(case-insensitive regex)--filter-bic(case-insensitive regex)--filter-blz(regex, case-sensitive for exact digit matches)
- Configurable filters via config file under
[cli](e.g.,filter_bank_name = "Bundesbank") --no-coloroption to disable colored output and help- Improved colorized help with highlighted option group headers
- README updates: bank filter documentation, examples, and parameter table updates
Changed
- Merged defaults from config file for CLI and downloader sections when CLI flags are not provided
- Enhanced error messages for invalid regex patterns and no-match scenarios
Fixed
- Robust handling of filter application ordering and empty-result validation
Full Changelog: v2.0.0...v2.1.0
What's Changed
Full Changelog: v2.0.0...v2.1.0
Release v2.0.0
What's Changed
Added
- New automated test reporting setup:
- pytest.ini config to generate JUnit XML (reports\junit.xml) and coverage reports (XML and HTML in reports)
- Added pytest-cov to dev dependencies; documented in README
- Configuration via TOML using ConfZ with structured sections:
- [generator]: probabilities and distributions for entity types, WID features, and person reuse
- [downloader]: defaults for Bundesbank download (format, cache_dir, force_download, no_version_check)
- [cli]: defaults for count, seed, output_format, output path and common flags (no_echo, iban_only, no_personal_info, no_bank_info, clean, no_color)
- New CLI options:
--show-config-pathto print the effective default config path--config-dirto influence where config files are searched/written (used with subcommands)
- New subcommand:
gen-ibans initto create a commented defaultconfig.toml(respects the top-level--config-dirwhen provided)
- Colorized CLI help with highlighted option group headers for improved readability
Changed
- CLI structure: switched to subcommands. The former top-level command is now
gen-ibans gen, andgen-ibans-init-configis nowgen-ibans init. - Standard config file switched from JSON to TOML; existing
config.jsonfiles remain supported for backward compatibility - Config file search path now prioritizes the current working directory and then the user config directory
- Help output: option group headers (click-option-group) are now highlighted consistently
- Output examples and documentation updated to reflect current JSON, CSV, and XML structures
- XML Output Format: Updated XML structure for better consistency
- Root element changed from
<ibans>to<accounts> - Individual entries changed from
<iban><number>to<account><iban> - Maintains backward compatibility in terms of data content
- Root element changed from
- Added MIT license header to all newly added source and test files
Fixed
- Robust handling of config loading with ConfZ fallback to manual parsing; graceful failure on malformed configs
- Improved stdout coloring control with
--no-colorand--clean
Updated
- Dependencies: Added ConfZ and PlatformDirs; updated typing-extensions and related transitive dependencies
Breaking Changes
- CLI now uses subcommands:
- Generation is
gen-ibans gen ...(wasgen-ibans ...). - Config initialization is
gen-ibans init(replaces separategen-ibans-init-config).
- Generation is
- Global options moved to the top-level: use
gen-ibans --config-dir ... <subcommand>andgen-ibans --show-config-path. - The former
gen-ibans gen --write-default-configoption was removed. Usegen-ibans init(optionally with--pathor top-level--config-dir). - Default config format is now TOML (
config.toml). Existingconfig.jsonfiles are still supported for backward compatibility, but new default files are written as TOML.
New Contributors
Full Changelog: v1.0.1...v2.0.0
Release v1.0.1
Full Changelog: v1.0.0...v1.0.1
Release v1.0.0
Added
-
Core IBAN Generation: Complete IBAN generator using real Bundesbank data
- Valid German IBAN generation with proper MOD-97 check digits
- Support for deterministic generation using PRNG with optional seeding
- Automatic seed generation and display for reproducibility tracking
-
Multiple Input Format Support:
- CSV format support with semicolon-separated data
- TXT format support for fixed-width Bundesbank data files
- XML format support with proper namespace handling
- Automatic format detection based on file extensions
- Fallback format detection when extensions are ambiguous
-
Comprehensive Encoding Support:
- UTF-8 and ISO-8859-1 encoding detection and handling
- BOM (Byte Order Mark) support for UTF-8 files
- Automatic encoding fallback for robust file processing
- Proper handling of German umlauts and special characters
-
Automatic Data Download:
- Automatic Bundesbank data download when no local file provided
- Smart caching system with configurable cache directory
- ETag-based version checking for automatic updates
- Support for all three formats (CSV, TXT, XML) from Bundesbank
- Configurable cache expiration and force download options
-
Rich CLI Interface:
- Comprehensive command-line interface using Click framework
- Support for multiple output formats (plain text, TXT, CSV, XML, JSON)
- Flexible output control (stdout, file output, or both)
- Clean mode for automation (suppresses informational messages)
- Granular control over included information (personal data, bank info)
-
Output Format Options:
- Plain text format with pipe-separated values (default)
- Structured TXT files with configurable information
- CSV format with proper headers and data organization
- XML format with hierarchical structure and pretty printing
- JSON format with nested objects for structured data
-
Personal Data Generation:
- Realistic German names and addresses using Faker library
- Deterministic personal data generation tied to IBAN seed
- Complete address information (street, city, postal code)
- Consistent data generation for reproducible results
-
Advanced CLI Features:
- Version display with
-v/--versionflags - Seed display for reproducibility tracking
- No-echo mode for file output without stdout display
- Bank and personal information filtering options
- Force download and cache management options
- Version checking control with
--no-version-check
- Version display with
-
Comprehensive Testing:
- 41+ test cases covering all functionality
- Format and encoding test suite with multiple scenarios
- CLI testing using Click's CliRunner
- IBAN validation and generation testing
- Cross-platform compatibility testing
-
Development Infrastructure:
- MIT license with proper copyright attribution
- Comprehensive README with beginner-friendly setup instructions
- Platform-specific bootstrap scripts (Windows, Linux, macOS)
- Modern Python packaging with setuptools-scm
- uv-based dependency management
- GitHub Actions CI/CD workflows
-
Deployment and Distribution:
- Dynamic versioning based on git tags
- Automated GitHub releases with artifact publishing
- CI/CD pipeline for testing and deployment
- Multi-platform testing (Ubuntu, Windows, macOS)
- Python 3.8+ compatibility across all platforms
-
Documentation and Setup:
- Complete setup instructions for Python beginners
- Bootstrap scripts for automated environment setup
- Comprehensive CLI documentation with examples
- Developer documentation with project structure
- License headers in all source files
Technical Details
- Dependencies: Click ≥8.0.0, Faker ≥20.0.0
- Python Support: 3.8, 3.9, 3.10, 3.11, 3.12, 3.13
- Platforms: Windows, macOS, Linux (Debian-based)
- Data Source: Deutsche Bundesbank official bank code data
- Validation: MOD-97 algorithm for IBAN check digit calculation
- Testing: pytest-based test suite with comprehensive coverage
Initial Release Features
This initial release provides a complete, production-ready IBAN generator with:
- Real bank data integration
- Multiple format support (input and output)
- Comprehensive CLI with extensive options
- Automatic data management and caching
- Cross-platform compatibility
- Professional development infrastructure
- Extensive documentation and setup automation