Metadata-Version: 2.1
Name: pyfatfs
Version: 0.3.1
Summary: FAT12/16/32 implementation with VFAT support
Home-page: https://github.com/nathanhi/pyfatfs
Author: Nathan-J. Hirschauer
Author-email: nathanhi@deepserve.info
License: MIT License
Project-URL: Documentation, https://pyfatfs.readthedocs.io
Project-URL: Changelog, https://github.com/nathanhi/pyfatfs/blob/master/CHANGELOG.rst
Project-URL: Issues, https://github.com/nathanhi/pyfatfs/issues
Project-URL: Source, https://github.com/nathanhi/pyfatfs
Description: pyfatfs
        =======
        
        .. image:: https://img.shields.io/github/workflow/status/nathanhi/pyfatfs/test?style=flat-square
            :target: https://github.com/nathanhi/pyfatfs/actions/workflows/test.yml
            :alt: CI build status
        .. image:: https://img.shields.io/readthedocs/pyfatfs?style=flat-square
            :target: https://pyfatfs.readthedocs.io/
            :alt: Read the Docs
        .. image:: https://img.shields.io/coveralls/github/nathanhi/pyfatfs?style=flat-square
            :target: https://coveralls.io/github/nathanhi/pyfatfs
            :alt: Test coverage overview
        .. image:: https://img.shields.io/codacy/grade/3def4d7b0bcd4b6f9aa4bb64e0338540?style=flat-square
            :target: https://app.codacy.com/gh/nathanhi/pyfatfs
            :alt: Codacy Code Quality
        .. image:: https://img.shields.io/pypi/pyversions/pyfatfs?style=flat-square
            :target: https://github.com/nathanhi/pyfatfs
            :alt: PyPI - Python Version
        .. image:: https://img.shields.io/pypi/v/pyfatfs?style=flat-square
            :target: https://pypi.org/project/pyfatfs
            :alt: PyPI
        .. image:: https://img.shields.io/github/license/nathanhi/pyfatfs.svg?style=flat-square
            :target: https://github.com/nathanhi/pyfatfs/blob/HEAD/LICENSE
            :alt: MIT License
        
        pyfatfs is a filesystem module for use with `PyFilesystem2 <https://pypi.org/project/fs/>`_
        for anyone who needs to access or modify files on a FAT filesystem. It also
        provides a low-level API that allows direct interaction with a FAT filesystem
        without PyFilesystem2 abstraction.
        
        pyfatfs supports FAT12/16/32 as well as the VFAT extension (long file names).
        
        It currently is in an early development state and expected to be unstable and
        contain bugs. On FAT32 filesystems the FSInfo struct, containing the free cluster
        information used to quickly calculate the free space and easily access information
        such as the next free cluster in the FAT, is not yet supported, so it will be
        reported by fsck operations after writes.
        
        Installation
        ------------
        
        pyfatfs is available via PyPI as ``pyfatfs``, so just execute the following
        command to install the package for your project:
        
        .. code-block:: bash
        
           $ pip install pyfatfs
        
        
        Usage
        =====
        
        The easiest way to get started with pyfatfs is to use it in conjunction
        with PyFilesystem2:
        
        PyFilesystem2
        -------------
        
        .. pyfilesystem-quickstart-begin
        
        Use fs.open_fs to open a filesystem with a FAT `FS URL <https://pyfilesystem2.readthedocs.io/en/latest/openers.html>`_:
        
        .. code-block:: python
        
           import fs
           my_fs = fs.open_fs("fat:///dev/sda1")
        
        
        Parameters
        ''''''''''
        
        It is possible to supply query parameters to the URI of the
        PyFilesystem2 opener to influence certain behavior; it can
        be compared to mount options. Multiple parameters can be
        supplied by separating them via ``ampersand (&)``.
        
        encoding
        ^^^^^^^^
        
        pyfatfs offers an encoding parameter to allow overriding the
        default encoding of ibm437 for file names, which was mainly
        used by DOS and still is the `default on Linux <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/fat/Kconfig?h=v5.10#n81>`_.
        
        Any encoding known by Python can be used as value for this
        parameter, but keep in mind that this might affect interoperability
        with other systems, especially when the selected encoding/codepage
        is not native or supported.
        
        Please note that this only affects encoding of the 8DOT3 short file names, not
        long file names of the VFAT extension, as LFN are always stored as UTF-16-LE.
        
        .. code-block:: python
        
           import fs
           my_fs = fs.open_fs("fat:///dev/sda1?encoding=cp1252")
        
        
        offset
        ^^^^^^
        
        Specify an offset in bytes to skip when accessing the file. That way even
        complete disk images can be read if the location of the partition is known:
        
        .. code-block:: python
        
           import fs
           my_fs = fs.open_fs("fat:///dev/sda?offset=32256")
        
        
        preserve_case
        ^^^^^^^^^^^^^
        
        Preserve case when creating files. This will force LFN entries for all
        created files that do not match the 8DOT3 rules. This defaults to true
        but can be disabled by setting preserve_case to false:
        
        .. code-block:: python
        
           import fs
           my_fs = fs.open_fs("fat:///dev/sda1?preserve_case=false")
        
        
        read_only
        ^^^^^^^^^
        
        Open filesystem in read-only mode and thus don't allow writes/modifications.
        This defaults to false but can be enabled by setting read_only to true:
        
        .. code-block:: python
        
           import fs
           my_fs = fs.open_fs("fat:///dev/sda1?read_only=true")
        
        
        utc
        ^^^
        
        Create all timestamps on the filesystem in UTC time rather than local time.
        Affects all directory entries' creation, modification and access times.
        
        .. code-block:: python
        
            import fs
            my_fs = fs.open_fs("fat:///dev/sda1?utc=true")
        
        
        .. pyfilesystem-quickstart-end
        
        Testing
        -------
        
        Tests are located at the `tests` directory. In order to test your new
        contribution to pyfatfs just run
        
        .. code-block:: bash
        
            $ python setup.py test
        
        from your shell.
        
Keywords: filesystem,PyFilesystem2,FAT12,FAT16,FAT32,VFAT,LFN
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Filesystems
Requires-Python: ~=3.6
Description-Content-Type: text/x-rst
