filelike: a python module for creating and handling file-like objects.
This module takes care of the groundwork for implementing and manipulating objects that provide a rich file-like interface, including reading, writing, seeking and iteration. It also provides a number of useful classes built on top of this functionality.
The main class is FileLikeBase, which implements the entire file-like interface on top of primitive _read(), _write(), _seek(), _tell() and _truncate() methods. Subclasses may implement any or all of these methods to obtain the related higher-level file behaviors.
It also provides some nifty file-handling functions:
- open:
mirrors the standard open() function but is much cleverer; URLs are automatically fetched, .bz2 files are transparently decompressed, and so-on.
- join:
concatenate multiple file-like objects together so that they act like a single file.
- slice:
access a section of a file-like object as if it were an independent file.
The “wrappers” subpackage contains a collection of useful classes built on top of this framework. These include:
- Translate:
pass file contents through an arbitrary translation function (e.g. compression, encryption, …)
- Decrypt:
on-the-fly reading and writing to an encrypted file (using PEP272 cipher API)
- UnBZip2:
on-the-fly decompression of bzip’d files (like the standard library’s bz2 module, but accepts any file-like object)
As an example of the type of thing this module is designed to achieve, here’s how the Decrypt wrapper can be used to transparently access an encrypted file:
# Create the decryption key
from Crypto.Cipher import DES
cipher = DES.new('abcdefgh',DES.MODE_ECB)
# Open the encrypted file
from filelike.wrappers import Decrypt
f = Decrypt(file("some_encrypted_file.bin","r"),cipher)
The object in ‘f’ now behaves as a file-like object, transparently decrypting the file on-the-fly as it is read.
The “pipeline” subpackage contains facilities for composing these wrappers in the form of a unix pipeline. In the following example, ‘f’ will read the first five lines of an encrypted file:
from filelike.pipeline import Decrypt, Head
f = file("some_encrypted_file.bin") > Decrypt(cipher) | Head(lines=5)
Finally, two utility functions are provided for when code expects to deal with file-like objects:
- is_filelike(obj):
checks that an object is file-like
- to_filelike(obj):
wraps a variety of objects in a file-like interface
Metadata
Release files for filelike 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| filelike-0.5.0.tar.gz | 35.3 kB | Without provenance | Details for filelike-0.5.0.tar.gz |
Release files / filelike-0.5.0.tar.gz
| Download URL | filelike-0.5.0.tar.gz |
|---|---|
| Size | 35.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b1f4324f9c6ea630473c3f4e8f86395fd76412e21cc25effc236e2eb6aa2b239
|
|
BLAKE2b-256 checksum How to use checksums |
6830912d8be3957f1ed545ca156a3bfa8c65f5137febff08dcd4bf08bc29a1b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for filelike 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.