Changelog

All notable changes to this project will be documented in this file based on Keep a Changelog. This project adheres to Semantic Versioning.

Unreleased

0.4.0 — 2025-03-04

Breaking 🔥

  • Node constructor signature changed to (key: str, base: DictTree, basedir: Optional[Path])

  • Node has now separate attributes abspath and relpath instead of single polymorphic path

  • is_dir property of Node was renamed to isdir

Added 🌿

  • Relative sub-path operator tree / 'subdir'

  • Absolute sub-path operator tree // 'subdir'

0.3.1 — 2025-03-03

Added 🌿

  • Argument chdir of Dir.mktree() can now accept boolean values.

0.3.0 — 2025-03-03

Breaking 🔥

  • Multiple API changes

Misc

Fixed

  • Existing basedir should not raise error on layout creation

0.2.1 — 2025-02-22

Added 🌿

  • New methods to append entries: __or__(), __ior__(), add(), update()

  • New method copy() to get a deep copy

  • Method __contains__() to check whether directory layout object contains specific path

  • Item access with __getitem__() returning Path object

  • Context manager protocol __enter__() and __exit__() that calls rmtree() if mktree() was called earlier

0.2.0 — 2025-02-21

Breaking 🔥

  • Renamed argument show_basedir to real_basedir

Added 🌿

  • Optional kwargs to DirLayout.print_tree and to_tree

0.1.0 — 2025-02-20

Added 🌿

  • Initial release