Skip to content

Latest commit

 

History

History
executable file
·
22 lines (18 loc) · 1.39 KB

README.md

File metadata and controls

executable file
·
22 lines (18 loc) · 1.39 KB

pathlib

Inspired by the python library pathlib.

Differences to the python library API

+ Addition | - Removal | $ Change

    • There are no PureXPath base classes.
    • No PureXPath base classes.
    • No inheritance tree.
  • $ Most operations/functions are D module functions but can be called as if they were members (thanks to D's unified function call syntax UFCS).
  • $ as_posix() => posixData().
    • asPosix() to convert between different paths.
    • asNormalized() to normalize a path, without resolving it. This works for all types of paths, regardless of the current system.
  • as_posix() => posixData(). Additionally, there is also windowsData().
  • $ Instead of overloading operator /, the concatenation operator ~ is overloaded instead: Path("hello") ~ "world" ~ "goodBye // WindowsPath("hello\world\goodBye") or PosixPath("hello/world/goodBye")
  • $ Instead of suffix() and suffixes() there are extension(), extensions(), and fullExtension().
  • $ While pythons pathlib usually uses '/' as the path segment separator, we try to maintain the separator for the current type of path as much as possible.
  • $ Instead of providing rglob(), glob() accepts an optional SpanMode parameter. The type SpanMode is a public import from std.file.
    • copyFileTo() To copy one file to some destination and copyTo() to copy either files or directories (not unlike cp -r).