Skip to content

Latest commit

 

History

History
222 lines (161 loc) · 8.69 KB

CHANGELOG.rst

File metadata and controls

222 lines (161 loc) · 8.69 KB

Changelog

All notable changes to this project will be documented in this file.

The format is inspired by Keep a Changelog, and this project adheres to Semantic Versioning.

1.1.0 - 2024-03-03

Added

Fixed

  • #34 (DosDateTime) PR #35: Gracefully handle invalid file timestamps by @beckerben
  • #31 (FATDirectoryEntry): Handle file sizes larger than 4GB gracefully by responding with PyFATException and errno=E2BIG
  • Properly lock I/O on write operations to avoid issues on concurrent writes

Changed

  • Deprecated FATDirectoryEntry.{g,s}et_size() method in favor of FATDirectoryEntry.size property (will be removed in PyFatFS 2.0)
  • Only warn of broken long filename entries, do not fail when encountering them
  • Convert given PyFilesystem2 opener string arguments to correct type (e.g., string to int)
  • Discard unknown PyFilesystem2 opener arguments, do not pass through to underlying PyFatFS constructor
  • Lazy load directory entries for performance and regex2fat compatibility

Removed

1.0.5 - 2022-04-16

Fixed

  • Issue #26: Fix deserialization of date and time values ({a,c,m}time)

1.0.4 - 2022-04-15

Fixed

  • Issue #24: Do not reorder directory entries when adding/removing entries in a directory
  • Issue #25: Properly truncate files when configured for truncating (PyFilesystem2/FatIO)
  • Always retain last cluster when truncating a file to 0 bytes
  • Issue #27: Remove outdated Not yet properly implemented hint from setinfo docstring

1.0.3 - 2022-02-27

Fixed

  • Issue #22: Properly combine date and time DosDateTime objects when querying ctime/mtime

1.0.2 - 2022-02-27

Fixed

  • PR #23: Do not try to write FAT if filesystem has been opened read-only by @abrasive

1.0.1 - 2022-02-08

Fixed

  • (mkfs) Handle offset correct in case of multiple partitions.
  • (mkfs) Issue #18 Add volume label dir entry
  • (mkfs) Fix default size detection

1.0.0 - 2022-02-03

Added

  • Static new method for FATDirectoryEntry
  • PR #17: mkfs method by @wackinger / @Draegerwerk
    • FATHeader class replaced by BootSectorHeader
    • Initial support of FSInfo for mkfs
  • Expose PyFat.set_fp function to allow using BytesIO / in-memory files. Provide PyFatBytesIOFS class for PyFilesystem2

Fixed

  • Remove duplicated code
  • Properly handle non-ASCII short file names / 8DOT3
  • Mark dir/file entries as empty on deletion
  • Do not allow creating files when a folder with the same name already exists
  • Do not allow creating folders when a file with the same name already exists

Changed

  • In order to fix non-ASCII short file names, FATDirectoryEntry.name is now of EightDotThree type instead of bytes

Removed

  • Legacy byte_repr() function, __bytes__() is to be used instead as a drop-in replacement to serialize FAT and dentry data for writing to disk

0.3.1 - 2021-09-04

Fixed

  • Fix performance regression on FAT16/32 when serializing a FAT to disk via __bytes__
  • Improve performance by only parsing fat size once on open() instead of multiple times

0.3.0 - 2021-09-04

Added

  • Support for dirty bit, detects unclean unmounts of a filesystem, sets dirty bit on mount and clears it on unmount/close

Deprecated

  • Implement __bytes__() instead of byte_repr(), it will be removed in 1.0

0.2.0 - 2021-04-07

Added

  • readinto method to directly read into a bytearray
  • Write support for FAT12

Fixed

  • Lower required minimum version of PyFilesystem2 to 2.4.0
  • Do not fail with RemoveRootError on removetree("/")
  • openbin now sets the b mode on file open
  • Support non-standard Linux formatted filesystems (i.e. FAT32 with less than 65525 clusters)
    • Emits a warning when such a filesystem is encountered
  • Remove check for boot signature version

0.1.2 - 2021-01-05

Fixed

  • Fix calculation of FAT entries for FAT12
  • PR #6: Fix bug in parsing LFNs when opening multiple file systems by @koolkdev
  • PR #7: Optimize sequential I/O with big files + small bug fixes in writing/allocating clusters by @koolkdev
    • Cache known location in filesystem for seek and write operations
    • Fix range check during byte allocation
    • Don't iterate all clusters on write_data_to_cluster

0.1.1 - 2021-01-04

Fixed

  • Issue #4: Removal of last entry in directory leaves remnants
  • PR #5: Fix creating directory with name that already conforms to 8DOT3 by @koolkdev

0.1.0 - 2021-01-03

Initial release of pyfatfs.

Added

  • Read-only support for FAT12
  • Read-write support for FAT16/32
  • Support for long file names (VFAT)
  • PR #1: Support FAT12/FAT16 disks without extended signature by @akx
  • PyFilesystem2 opener + API abstraction

Fixed