loongson/pypi/: multivolumefile-0.2.3 metadata and description
multi volume file wrapper library
Because this project isn't in the
no releases from root/pypi are included.
MultiVolumefile is a python library to provide a file-object wrapping multiple files as virtually like as a single file. It inherit io.RawIOBase class and support some of its standard methods.
See API details at python library reference
multivolumefile module is under active development and considered as *Alpha* state. It is not good idea to use it on production systems, but it may work well in a limited range of usage. Please check limitations and passed test cases.
You can install it as usual public libraries, you can use pip command
` pip install multivolumefile `
You are also able to add it to your setup.py/cfg as dependency.
- For reading multi-volume files, that has names archive.7z.0001, archive.7z.0002 and so on, you can call multivolumefile as follows;
with multivolumefile.open('archive.7z', 'rb') as vol: data = vol.read(100) vol.seek(500)
- For writing multi-volue files, that has names archive.7z.0001, archive.7z.0002 and so on, you can call multivolumefile as follows;
data = b'abcdefg' with multivolumefile.open('archive.7z', 'wb') as vol: size = vol.write(data) vol.seek(0)
you will see file archive.7z.001 are written.
Limitations and known issues
- fileno() is not supported and when call it, you will get RuntimeError exception.
- There are several non-implemented functions such as truncate() and writeline() that will raise NotimplementedError
- There are several non-implemented functions such as readlines(), readline() and readall().
- Text mode is not implemented.
- *Caution*: When globbing existent volumes, it glob all files other than 4-digit extensions, it may break your data.
You are welcome to contribute the project, as usual on github projects, Pull-Requests are always welcome.
Multivolume is licensed under GNU Lesser General Public license version 2.1 or later.
All notable changes to this project will be documented in this file.
- implement readall()
- lint with black
- Add py.typed file for type hinting.
- Add name property that indicate basename of volumes
- Add stat() that return stat_result which has as mostly same methods as os.stat_result class except for platform dependent methods.
- Type hint information bundled.
- Seek() returns current position.
- Explanation of unsupported methods an modes in README
- Fix append mode bug.
- Fix added volume size become wrong
- Fix append mode (#1)
- Fin NotImplementedError when writing boudning of target files
- *API changed*
- Add mode ‘x’, ‘xb’ and ‘xt’
- Add mode ‘a’, ‘ab’ and ‘at’
- Support flush()
- Change API: file argument of ‘r’ and ‘rb’ now single basename instead of list of files
- Support context manager
- Support read functions.