Releases: alanarzumanjan/file-normalizer
Release list
file-normalizer v1.4.3
✨ What's Changed
Fixed command-line argument handling so prefixes and suffixes can now start with -. For example, -x "-lol" and --suffix "-final" work correctly.
Improved argument parsing and added support for both normal and = syntax, such as --suffix=-final and -x=-v1.
Added tests for negative prefix and suffix values, including both long and short options, as well as the = syntax.
Added more CLI argument tests and kept coverage for case styles, separators, exclusions, logging, installation, and boolean options.
Improved test coverage for filename normalization, compound extensions, directory processing, collision protection, interactive mode, logging, and transliteration.
Fixed the CLI entry point to use the updated argument parser correctly.
file-normalizer v1.4.2
✨ What's Changed
Project structure
Moved CLI argument parsing to a separate cli.py module. Cleaned up imports and split responsibilities between modules. Simplified several parts of the codebase.
Windows installer
The --install command now works more safely with compiled .exe builds. filenorm is installed to %LOCALAPPDATA%\Filenorm and the installation directory is added to the user's PATH. Windows Registry handling and installation error handling were also cleaned up.
Compound extensions
Moved compound extension handling into its own module. Added support for extensions such as .tar.gz, .tar.bz2, .user.js, .d.ts, .config.json, .min.js, and .log.gz. Compound extensions are checked from longest to shortest to avoid incorrect filename splitting.
Filename normalization
Improved handling of lower, upper, title, and capitalize case styles. Separator handling for snake, kebab, and space was cleaned up. Prefixes and suffixes are now handled more consistently, including duplicate separators.
Safer renaming
filenorm now checks whether the target filename already exists before renaming. Change counters only include successful operations, and filenorm_log.txt is ignored by the normalizer.
Logging
Improved rename history output and error messages when the log file cannot be written. Dry-run changes are also clearly marked in the log.
General cleanup
Removed unnecessary comments and duplicated code. Renamed some variables and functions to make their purpose clearer and cleaned up a few rough edges across the project.
file-normalizer v1.4.1
file-normalizer v1.4.0
Interactive mode (-i, --interactive)
Fine-grained control: the utility asks for confirmation for each file ([Y/n], where Enter means yes).
Exclusion system (-e, --exclude)
The ability to skip files by mask, name, or extension (e.g., -e .mp3 .txt).
Logging (-l, --log)
Saving and auto-completing the session report to the filenorm_log.txt file with timestamps.
Log self-protection
The utility automatically ignores its own report files, protecting them from accidental renaming.
Architectural refactoring
Business logic has been moved to a separate module (processor.py) in accordance with Clean Code standards for improved testability and readability.
file-normalizer v1.3.3
-
Hidden File Protection:
The utility now skips files and folders starting with a dot (.config, .gitignore, etc.) to avoid breaking system configurations. -
Safe invocation without arguments:
The filenorm command no longer starts processing the current directory by default without a path, but immediately displays help. -
Notification of no changes:
If all files are already formatted, the message "Nothing to do. Everything is already formatted." is displayed.
file-normalizer v1.3.1
Changes
- Installation: Added a dedicated "Installation" section with the pip install filenorm command.
- Usage: Added a "Usage" section with examples of how to run the tool from the command line, including a summary of available flags and options.
- License: Added a section referencing the project's license to ensure legal clarity for users.
- Documentation: Improved overall clarity to help new users get started with the tool quickly.
file-normalizer v1.3.0
What's New:
-
MacOS Universal Binary Support:
Added configuration in GitHub Actions to automatically build and release standalone binaries for macOS (filenorm-macos-universal), alongside Linux and Windows. -
Unix Installation Script (install.sh):
Added a handy helper script to simplify setting up and moving binary executables to the system PATH on macOS and Linux. -
Refined CLI Flags & Case Options:
Updated short and long command-line options (-s for --separator, and flexible alias support for --prefix and --suffix), while keeping the full suite of text case styles (-c, --case) fully configurable (lower, upper, title, and capitalize). -
Commercial Protection License:
Updated the project license to a Source-Available Commercial License, restricting commercial usage while keeping the utility free for personal, educational, and internal evaluation use.
file-normalizer v1.2.0
Transliteration — automatically converts non-Latin characters (like Cyrillic, Chinese, etc.) into standard Latin script using
file-normalizer v1.1.0
Windows installer addition