Skip to main content

sito-io

Standard Interfaces for Transforming Objects - File I/O

The goal of this library is to provide data structures and interfaces which are at least as ergonomic as existing file I/O and path primitives (open, Path, etc), while providing strongly typed functionality to facilitate transformations of collections of files.

Core concepts

Resource

A Resource is the core unit of abstraction. It is kind of like a sum type of a os.Path and urllib.parse.ParseResult. Its essence is to act as a handle to a more sophisticated resource, such as a file, directory, URL, endpoint, transaction, FIFO, special file, etc.

Context

A Context is a Resource that can be used to "anchor" another Resource. For example, a context might be http://example.com, /home/user, or even .. A context can be:

  • Fully qualified - file:///home/user/foo/bar, http://example.com/foo/bar, ftp://example.com/foo/bar
  • Absolute - /home/user/foo/bar, /home/user/arch.tar::/foo/bar
  • Relative - ./bar - Relative contexts must be rooted before they can be fully resolved
  • Naive - bar - Naive contexts must be rooted before they can be fully resolved

Manifest

A Manifest is a collection of Resources. This might be files on disk (or a description thereof, it need not exist), or files in a TAR file, or endpoints. The primary purpose is to facilitate moving collections of files atomically, capturing I/O of a process, and "slurping up" the data, thus allowing stateful processes to be modeled as a transaction. This makes a process behave less like a mutation and more like a lambda, improving referential transparency in pipelines.

A Manifest can be used to generate a ManifestFile, a serialized index of the manifest. This can be packed with the files and give an easy handle to verify the contents of a transaction.

Metadata

Release files for sito-io 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sito-io 0.0.2
File Size Uploaded
sito_io-0.0.2.tar.gz 9.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sito-io 0.0.2
File Interpreter ABI Platform
sito_io-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 18.4 kB

Release files / sito_io-0.0.2.tar.gz

Download URL sito_io-0.0.2.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a7fc466c2ffb13e4da692ec53454f1637a9674d576284b4a23e3c450824d3e2e
BLAKE2b-256 checksum
How to use checksums
864377d2bae2c706fdf57f7712d809383719d93e6e1989985954353dfbb3c74f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.6

Release files / sito_io-0.0.2-py3-none-any.whl

Download URL sito_io-0.0.2-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
329178f68a014b92a48235354c359d47ff73ad2f67d93ad8fbc0fc6806bf6354
BLAKE2b-256 checksum
How to use checksums
4eba90df49f1c5ebc2ee9f0c581ffe9ea302ba040abe5bcd204d7408cb5ab20b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page