Skip to main content

Class to interact with S3 in a similar fashion as pathlib.Path

Project description

Public Project AllOnIAS3

This project contains the :obj:~allonias3.s3_path.S3Path class that allows the user to interact with its S3 repository in a similar fashion as pathlib.Path

Even though it is a public package, it is not intended to be used outside AllOnIA's plateform.

You can find the user documentation at this URL

This is a public project. Everyone is welcome to contribute to it.

Basic usage

See :ref:basicusage

Installation

pip install allonias3[boto,datatypehandler]
  • By default, :obj:~allonias3.s3_path.S3Path will use a Minio client by inheriting from :obj:~allonias3.minio.minio_path.MinioPath. You can choose to use boto instead, by choosing "boto" as an optional dependency and USE_BOTO=True in your environment variables. Then, :obj:~allonias3.s3_path.S3Path will inherit from :obj:~allonias3.boto.boto_path.BotoPath. In both cases the methods will take exactly the same input and return the same output.
  • Writing and reading data to S3 can be enhanced to support many data types, like :obj:~pandas.DataFrame to/from .csv files, by specifying "datatypehandler" as an optional dependency.

Contributing

This is an open-source project. Everyone is welcome to contribute to it. To do so, fork the repository, add your features/fixes on your forked repository, then open a merge request to the original repository.

Install dependencies using poetry

This project uses Poetry to manage its working environment. Install it before coding in the project.

Then, run

poetry env use python3.12
poetry install
poetry run pre-commit install

This package has two sets of optional libraries, that you can install with

poetry install -E boto
# or
poetry install -E datatypehandler
# or
poetry install -E datatypehandler -E boto

Testing

Tests are separated into several groups, that can require different packages.

You can run them all using tox:

poetry run tox

You can also run them individually by running commands that you can find in tox.ini.

Some tests can not be run un parallel, the "-n 0" args is then require. Refer to the tox.ini file to find which tests are concerned.

Coverage

We use pytest-cov to display the coverage, so, after run tests you can check the reports (term, html, xml are enabled), if you want to improve your coverage, the better thing to do is to check the html report in your browser:

open htmlcov/index.html

Lint

To run the linters used by this project, you can run:

poetry run pre-commit run # Run lint only on staged files

# Manually check conventional commits format:
poetry run pre-commit run gitlint --hook-stage commit-msg --commit-msg-filename .git/COMMIT_EDITMSG

User documentation

The documentation source files are located in here. If you add new features, please add them to the documentation as well.

You can buid the documentation locally by doing

cd docs
make html

The produced documentation should then be readable by opening the file in docs/build/html/index.html in a web browser.

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

allonias3-1.4.0.tar.gz (37.5 kB view details)

Uploaded Source

Built Distribution

allonias3-1.4.0-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

Details for the file allonias3-1.4.0.tar.gz.

File metadata

  • Download URL: allonias3-1.4.0.tar.gz
  • Upload date:
  • Size: 37.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/5.4.0-148-generic

File hashes

Hashes for allonias3-1.4.0.tar.gz
Algorithm Hash digest
SHA256 a647ef4eb46a5355a8a5444f5f75469416146178626bb845df8ea970647924d9
MD5 703498e15e726f69ada1660a52e16f77
BLAKE2b-256 0223ad4bdf345119186069881d7678aa705f961662a83ac3a487943150d58169

See more details on using hashes here.

File details

Details for the file allonias3-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: allonias3-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 41.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/5.4.0-148-generic

File hashes

Hashes for allonias3-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 74051c55a36716baaded21ad38a3b6e12cdda0f959879a35ce68f238dd0cfbfe
MD5 85b6dbc75bea8d52f00fed56bb5411ec
BLAKE2b-256 390695e4a2e1975ff4927ef352403d2c942c0c47e3b155cb0ae2a4de1838b7f1

See more details on using hashes here.

Supported by

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