Skip to main content

Python package containing useful file system operations

Project description

File System IO

Badges
License License: MIT
PyPI PyPI version PyPI - Python Version
Version Build Status
Main GitHub Build main GitHub Build main

File System IO or simply FSIO is a Python package containing useful file system operations.

Table of contents

Installation

Installing the main package is as simple as downloading from PyPI.

pip install 'fsio==$VERSION'

If you also require use of the CLI, then you can install with extras as follows.

pip install 'fsio[cli]==$VERSION'

Getting Started

This package was designed for simplifying some file system operations. Its original design was for detecting file types of a file, but it has been expanded beyond this. The main code lives within the core directory. Here, for example, you will see the file_type class which supports the detect-file-type commands within the CLI. Moreover, we can use this within Python code provided we have the object in BytesIO form. For example, suppose we have a .parquet file without an extension and we want to establish its type, and confirm that it really is of type parquet. To do this, we could do something as follows.

>>> from io import BytesIO
>>> from pathlib import Path
>>> 
>>> from fsio.core import FileType
>>> 
>>> path_to_file = Path('path/to/suspected/parquet')
>>> 
>>> with path_to_file.open('rb') as f:
>>>     body = BytesIO(f.read())
>>> 
>>> FileType.detect_file_type(body)
'parquet'

CLI

If you optionally installed the cli subpackage, then you get extra functionality and are able to use most of the functionality from the core package. For example, you can detect the file type of a given file using the command

fsio detect-file-type path/to/file.ext

This will return the type of the file to the stdout, for example parquet. You can get more information about each command by using the --help flag on each command. The CLI was designed using typer, from the creators of FastAPI. A list of the following CLI commands which are available are below.

Commands
fsio detect-file-type FILE Detect the type of FILE given as input
fsio supported-types List the current supportoed file types

Development

To contribute to this project, you can clone the repository and install the development dependencies. There is a pre-commit hook which will run on each commit to ensure that the code is formatted correctly. To install this, install the .[test] requirements of this project and then run pre-commit install in terminal.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fsio-1.3.1.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fsio-1.3.1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file fsio-1.3.1.tar.gz.

File metadata

  • Download URL: fsio-1.3.1.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fsio-1.3.1.tar.gz
Algorithm Hash digest
SHA256 76a49967a881749bcb2b29bc6b3b03ccbe02d9d5b651a56c0308105df9a7acd6
MD5 176c394fd45785dfc000d9a40c747b71
BLAKE2b-256 df2df1b2106640a49856d5824a01a1f114d3d9740c2baa17f37f7ee657e3ba49

See more details on using hashes here.

Provenance

The following attestation bundles were made for fsio-1.3.1.tar.gz:

Publisher: python-publish.yaml on collier-p-charlie/fsio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fsio-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: fsio-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fsio-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4e77794a53b976b8d98d7455846d65ca6a6bb601788c33e4a36e51580ed53a40
MD5 586607ceb3813c2090b0aea2c41f3e9e
BLAKE2b-256 0ca0e8bf0c3fce9dab1c1d65c5cd9022a7e5899bb1fe14a805b5528aa70a0855

See more details on using hashes here.

Provenance

The following attestation bundles were made for fsio-1.3.1-py3-none-any.whl:

Publisher: python-publish.yaml on collier-p-charlie/fsio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page