Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
b9624a8
Decouple from PyFilesystem2 dependency
mxmlnkn Sep 15, 2024
ee503e8
up pyproject.toml
milahu Aug 7, 2025
5082ed3
up imports
milahu Aug 7, 2025
896e3fe
add pytest.sh
milahu Aug 7, 2025
15d5df0
rm fsspec.errors
milahu Aug 7, 2025
865193f
rm fsspec.test
milahu Aug 7, 2025
dccc8ee
use AbstractFileSystem
milahu Aug 7, 2025
61a359f
copy pyfilesystem2/fs/mode.py
milahu Aug 7, 2025
367ac7c
copy pyfilesystem2/fs/path.py
milahu Aug 7, 2025
dc784ae
copy pyfilesystem2/fs/permissions.py
milahu Aug 7, 2025
70572bf
copy pyfilesystem2/fs/info.py
milahu Aug 7, 2025
7640fd2
fixup: copy pyfilesystem2/fs/path.py
milahu Aug 7, 2025
9057e09
rm fs.ResourceType
milahu Aug 7, 2025
8ce519f
rm fs.subfs
milahu Aug 7, 2025
f9d8465
add fs_test_cases.py
milahu Aug 7, 2025
d9a0a91
fix destroy_fs
milahu Aug 7, 2025
1d4d6e9
fs.create -> fs.touch
milahu Aug 7, 2025
4acf43f
fs.openbin -> fs.open
milahu Aug 7, 2025
9cc2011
rm fs.validatepath
milahu Aug 7, 2025
812bc0a
use fs._create
milahu Aug 7, 2025
6e47271
dont call fs.opendir
milahu Aug 7, 2025
80ba3f1
fix fs.info
milahu Aug 7, 2025
bc3bb67
fix info.is_dir
milahu Aug 7, 2025
72f284e
fs.readtext -> fs.read_text
milahu Aug 7, 2025
5659144
dont call fs.appendtext
milahu Aug 7, 2025
2cf2bc2
fs.open: dont use binary mode by default
milahu Aug 7, 2025
5d594fd
rm tests
milahu Aug 7, 2025
57d7277
fs.openbin -> fs.open
milahu Aug 7, 2025
74788a1
fs.readbytes -> fs.read_bytes
milahu Aug 7, 2025
0e3df73
fs.getsize -> fs._getsize
milahu Aug 7, 2025
74233b5
dont call fs.opendir
milahu Aug 7, 2025
22eb5b0
dont call fs.isclosed
milahu Aug 7, 2025
4d48451
fs.writebytes -> fs.write_bytes
milahu Aug 7, 2025
e62b6a2
PyFATException -> OSError
milahu Aug 7, 2025
a1eff67
dont call fs.close
milahu Aug 7, 2025
083eea2
fix error types
milahu Aug 7, 2025
1baf9fc
add fs.cp_file
milahu Aug 7, 2025
8c08b6a
rm test
milahu Aug 7, 2025
e8bd614
fix _test_copy_dir
milahu Aug 7, 2025
bf56f50
fix fs.makedirs
milahu Aug 7, 2025
737d5aa
fs.writetext -> fs.write_text
milahu Aug 7, 2025
330f852
fs.listdir -> fs.ls
milahu Aug 7, 2025
076420b
assert_text: assert fs.exists
milahu Aug 7, 2025
0157dd8
fix _test_copy_dir
milahu Aug 7, 2025
4268a52
fix fs.ls
milahu Aug 7, 2025
cead780
fix fs.ls
milahu Aug 7, 2025
67458db
fix _test_copy_dir
milahu Aug 7, 2025
2afb24e
fix fs.cp_file
milahu Aug 7, 2025
088a068
rm test
milahu Aug 7, 2025
df347b2
fix fs.cp_file
milahu Aug 7, 2025
95e434a
fix _test_copy_dir
milahu Aug 7, 2025
f422e7c
fix protocol: mem:// -> memory
milahu Aug 7, 2025
69b6fc2
fix: fsspec.open -> fsspec.filesystem
milahu Aug 7, 2025
a7fa502
fix copy_dir
milahu Aug 7, 2025
d682144
fix walk_files
milahu Aug 7, 2025
6a142d5
fix _test_copy_dir_write
milahu Aug 7, 2025
80ea49b
add clean_memory_filesystem
milahu Aug 7, 2025
11f5142
add walk_dirs
milahu Aug 7, 2025
78d082d
add fs.rm_file
milahu Aug 7, 2025
5079f34
fix _test_copy_dir
milahu Aug 7, 2025
924bf21
fix protocol: temp:// -> tempdir
milahu Aug 7, 2025
d187dd8
fsspec.filesystem -> get_filesystem
milahu Aug 7, 2025
270d52c
fix copy_dir
milahu Aug 7, 2025
35faad3
fix _test_copy_dir_write
milahu Aug 7, 2025
625bb02
up get_filesystem
milahu Aug 7, 2025
6ce6c37
fix walk_files
milahu Aug 7, 2025
7586c23
fs.create -> fs._create
milahu Aug 7, 2025
4fb33f9
FileExpected -> FileExistsError
milahu Aug 7, 2025
da3df04
rm fs.settimes tests
milahu Aug 7, 2025
67d069f
rm fs.desc test
milahu Aug 7, 2025
d0ee219
fix fs.download test
milahu Aug 7, 2025
b1141fc
fix TempdirFileSystem
milahu Aug 7, 2025
144f5eb
remove method-chaining
milahu Aug 7, 2025
2a49d50
fix copy_fs
milahu Aug 7, 2025
46df436
fs.remove -> fs.rm
milahu Aug 7, 2025
7e07747
rm test_filterdir
milahu Aug 7, 2025
a202a1b
fix fs.makedirs and fs.makedir calls
milahu Aug 7, 2025
ea0b15f
fix fs.makedirs
milahu Aug 7, 2025
8e130d7
fix test_fs_lock
milahu Aug 7, 2025
54a274c
rm test_getinfo
milahu Aug 7, 2025
26f7d33
fix fs.makedirs
milahu Aug 7, 2025
dcd9e70
fix test_invalid_chars
milahu Aug 7, 2025
9a1709c
rm test_isempty
milahu Aug 7, 2025
77c18e2
rm test_islink
milahu Aug 7, 2025
4c97e26
fs.close -> fs.__del__
milahu Aug 7, 2025
cba2be4
fix fs.ls
milahu Aug 7, 2025
a7d63e8
fix fs.makedirs
milahu Aug 7, 2025
cafbe2c
fix: UserWarning: Filesystem was not cleanly unmounted on last access.
milahu Aug 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Use fs.open_fs to open a filesystem with a FAT `FS URL <https://pyfilesystem2.re

.. code-block:: python

import fs
import fsspec as fs
my_fs = fs.open_fs("fat:///dev/sda1")


Expand Down Expand Up @@ -85,7 +85,7 @@ long file names of the VFAT extension, as LFN are always stored as UTF-16-LE.

.. code-block:: python

import fs
import fsspec as fs
my_fs = fs.open_fs("fat:///dev/sda1?encoding=cp1252")


Expand All @@ -97,7 +97,7 @@ complete disk images can be read if the location of the partition is known:

.. code-block:: python

import fs
import fsspec as fs
my_fs = fs.open_fs("fat:///dev/sda?offset=32256")


Expand All @@ -110,7 +110,7 @@ but can be disabled by setting preserve_case to ``false``:

.. code-block:: python

import fs
import fsspec as fs
my_fs = fs.open_fs("fat:///dev/sda1?preserve_case=false")


Expand All @@ -122,7 +122,7 @@ This defaults to false but can be enabled by setting read_only to ``true``:

.. code-block:: python

import fs
import fsspec as fs
my_fs = fs.open_fs("fat:///dev/sda1?read_only=true")


Expand All @@ -134,7 +134,7 @@ Affects all directory entries' creation, modification and access times.

.. code-block:: python

import fs
import fsspec as fs
my_fs = fs.open_fs("fat:///dev/sda1?utc=true")


Expand All @@ -147,7 +147,7 @@ recursion / directory loops.

.. code-block:: python

import fs
import fsspec as fs
my_fs = fs.open_fs("fat:///dev/sda1?lazy_load=false")
.. pyfilesystem-quickstart-end

Expand Down
3 changes: 1 addition & 2 deletions pyfatfs/FATDirectoryEntry.py
Original file line number Diff line number Diff line change
Expand Up @@ -464,8 +464,7 @@ def _search_entry(self, name: str):
if entry.get_short_name() == name:
return entry

raise PyFATException(f'Cannot find entry {name}',
errno=errno.ENOENT)
raise OSError(errno.ENOENT, f'No such file or directory: {name!r}')

def get_entry(self, path: str):
"""Get sub-entry if current entry is a directory.
Expand Down
11 changes: 9 additions & 2 deletions pyfatfs/FatIO.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,25 @@
import threading
from typing import Union, Optional

from fs.mode import Mode
from pyfatfs import PyFATException

from pyfatfs.PyFat import PyFat


class DefaultModeReadOnly:
def __init__(self):
self.truncate = False
self.appending = False
self.reading = True
self.writing = False


class FatIO(io.RawIOBase):
"""Wrap basic I/O operations for PyFat."""

def __init__(self, fs: PyFat,
path: str,
mode: Mode = Mode('r')) -> None:
mode = DefaultModeReadOnly()) -> None:
"""Wrap basic I/O operations for PyFat. **Currently read-only**.

:param fs: `PyFat`: Instance of opened filesystem
Expand Down
7 changes: 0 additions & 7 deletions pyfatfs/PyFat.py
Original file line number Diff line number Diff line change
Expand Up @@ -845,13 +845,6 @@ def close(self):
self.__fp.close()
self.initialized = False

def __del__(self):
"""Try to close open handles."""
try:
self.close()
except PyFATException:
pass

def __determine_fat_type(self) -> Union["PyFat.FAT_TYPE_FAT12",
"PyFat.FAT_TYPE_FAT16",
"PyFat.FAT_TYPE_FAT32"]:
Expand Down
Loading