Change Log¶
The change log is automatically generated by the buildDoc.py script.
Version 2.3.0¶
Python Version Support
Python 3.8 is no longer supported; minimum requirement is now Python 3.9.
Added support for Python 3.14.
Command Line Interface (CLI)
Two usage modes: unified interface (
do-folder/python3 -m doFolder) and direct commands (do-compare,do-hash)Global options:
-v/--version,-vv/--full-version,-w/--console-width,--no-color,-m/--mute-warning,-t/--traceback,-h/--helpSubcommands: - compare: compare or synchronize files/directories; modes (
SIZE,CONTENT,TIMETAG,TIMETAG_AND_SIZE,IGNORE);--sync;--sync-direction;--overwrite(including newIGNOREoption);--create-root;--relative-timestamp;-y/--yes;-Y/--yes-overwrite- hash: calculate hashes;-a/--algorithms;-d/--allow-directory;-r/--recursive;-n/--thread-num;-s/--show-all;--no-progress;-p/--to-absolute;-f/--full-path;-A/--disable-aggregate-algosExit codes:
0success;1general error;2argument errorImproved command-line prompts with accurate program names
Fixed compatibility issue where
do-hashcommand failed on Python 3.9
See the full CLI guide: Command Line Interface.
Module Structure Improvements
FileSystem Module Decomposition: The
fileSystemmodule has been decomposed from a single module into a comprehensive sub-package structure.Better organization for file system-related functionality
More granular module management capabilities
Improved code maintainability and structure
Enhanced extensibility for future file system utilities
Hashing Module Refactoring: The
hashingmodule has been completely restructured from a standalone submodule into a comprehensive subpackage.Better organization for hash-related functionality
More granular module management capabilities
Improved code maintainability and structure
Enhanced extensibility for future hash algorithms and utilities
Command-Line Interface Enhancement: Introduced a new
clisubpackage along with a dedicatedscriptsmodule to provide robust command-line interface functionality.Direct terminal interaction with doFolder capabilities
Scriptable automation options for batch operations
Enhanced user experience for system integrations
Support for command-line workflows and pipelines
Refactored CLI functions to use default program name from util module
Convenient Class Aliases: Added
doFolder.DanddoFolder.Fas shorthand aliases for theDirectoryandFileclasses respectively.More concise and developer-friendly syntax
Reduced code verbosity in common operations
Full compatibility with existing implementations
Improved developer productivity and code readability
Code Quality Improvements: Renamed formatting constants and
DefaultNoneFileHashManagertoDEFAULT_NONE_FILE_HASH_MANAGERfor better readability and consistency.
Bug Fixes
Fixed path processing logic in
FileSystemItemBaseclass to ensure that the original path is returned whentoAbsoluteis set toFalse.Fixed type annotations in various modules for better compatibility with Python 3.9 and earlier versions.
Testing and Development Workflow
Added parallel test support to pytest using the
xdistplugin for faster test execution.Added comprehensive test logic for CLI functionality.
Added support for environment variables to configure pytest options.
Unified testing workflow dependencies on Windows.
Updated Python version matrix to include Python 3.14.
Upgraded to pylint 4.0 for improved code quality checks.
Updated GitHub Actions dependencies to latest versions (
actions/checkout,actions/setup-python,actions/download-artifact).Switched to
kuankuan2007/upload-release-asset@v1for release asset uploads.
Documentation
Updated and enhanced CLI documentation with comprehensive usage patterns, global options, and command examples.
Added console width option in utilities to enhance output formatting.
Renamed
requirements_doc.txttorequirements-doc.txtfor consistency.Removed
.readthedocs.yamlconfiguration file.Updated ksphinx version to 0.2.2.
For more details, please refer to the changelog.
Version 2.2.4¶
New Hash Api
Newly add doFolder.hashing module to provide a unified interface for hashing operations.
The File.hash method now using doFolder.hashing module instead of hashlib directly.
Support caching of calculated Hash values and guide to the expiration conditions
Support multi-threaded computation of hash
During the calculation process, support for automatic streaming reading of files is provided.
For more details, please refer to the changelog.
Version 2.2.0¶
Newly added Compare API
Use the compare module to compare two directories or files
Use the getDifference method to get the difference details between two directories or files
You can control how to compare files by setting the compareMode parameter
For more details, please refer to the changelog.
Version 2.1.3¶
Extract the custom theme into the ksphinx package
Sort out dependencies
For more details, please refer to the changelog.
Version 2.1.2¶
Use Sphinx to generate documentation
Move enum class to a separate file
Optimize document annotations
For more details, please refer to the changelog.
Version 2.1¶
The object structure was redesigned
Add
createItemmethod to create a file or directory automaticallyRedesign the
get,create,hasmethods of theDirectoryclass
From Version 1.0¶
Manage the path using the built-in pathlib
Change the class name from
FoldertoDirectory(Maintain compatibility with the nameFolderis still retained)When creating the
Fileclass, redirection toDirectoryis allowed