Change Log

The change log is automatically generated by the buildDoc.py script.

Version 2.3.0

  • Python 3.8 is no longer supported; minimum requirement is now Python 3.9.

  • 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/--help

    • Subcommands: - compare: compare or synchronize files/directories; modes (SIZE, CONTENT, TIMETAG, TIMETAG_AND_SIZE, IGNORE); --sync; --sync-direction; --overwrite; --create-root; --relative-timestamp - 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-algos

    • Exit codes: 0 success; 1 general error; 2 argument error

    See the full CLI guide: Command Line Interface.

  • Module Structure Improvements

    • Hashing Module Refactoring: The hashing module 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 cli subpackage along with a dedicated scripts module 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

    • Convenient Class Aliases: Added doFolder.D and doFolder.F as shorthand aliases for the Directory and File classes respectively.

      • More concise and developer-friendly syntax

      • Reduced code verbosity in common operations

      • Full compatibility with existing implementations

      • Improved developer productivity and code readability

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 createItem method to create a file or directory automatically

  • Redesign the get, create, has methods of the Directory class

From Version 1.0

  • Manage the path using the built-in pathlib

  • Change the class name from Folder to Directory(Maintain compatibility with the name Folder is still retained)

  • When creating the File class, redirection to Directory is allowed