===============
multivolumefile
===============
.. image:: https://coveralls.io/repos/github/miurahr/multivolume/badge.svg?branch=master
:target: https://coveralls.io/github/miurahr/multivolume?branch=master
.. image:: https://github.com/miurahr/multivolume/workflows/Run%20Tox%20tests/badge.svg
:target: https://github.com/miurahr/multivolume/actions
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`_
.. _`python library reference`: https://docs.python.org/3/library/io.html
Status
======
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.
Install
=======
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.
Usages
------
- For reading multi-volume files, that has names `archive.7z.0001`, `archive.7z.0002` and so on,
you can call multivolumefile as follows;
.. code-block::
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;
.. code-block::
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.
Contribution
============
You are welcome to contribute the project, as usual on github projects, Pull-Requests are always welcome.
License
=======
Multivolume is licensed under GNU Lesser General Public license version 2.1 or later.
=========
ChangeLog
=========
All notable changes to this project will be documented in this file.
`Unreleased`_
=============
Added
-----
Changed
-------
Fixed
-----
Deprecated
----------
Removed
-------
Security
--------
`v0.2.3`_
=========
Added
-----
* implement readall()
Chnaged
-------
* lint with black
`v0.2.2`_
=========
Added
-----
* Add py.typed file for type hinting.
`v0.2.1`_
=========
Added
-----
* 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.
`v0.2.0`_
=========
Added
-----
* Type hint information bundled.
Fixed
-----
* Seek() returns current position.
Changed
-------
* Explanation of unsupported methods an modes in README
`v0.1.4`_
=========
Fixed
-----
* Fix append mode bug.
`v0.1.3`_
=========
Fixed
-----
* Fix added volume size become wrong
`v0.1.2`_
=========
Fixed
-----
* Fix append mode (#1)
`v0.1.1`_
=========
Fixed
-----
* Fin NotImplementedError when writing boudning of target files
`v0.1.0`_
=========
* ***API changed***
Added
-----
* Add mode 'x', 'xb' and 'xt'
* Add mode 'a', 'ab' and 'at'
* Support flush()
Changed
-------
* Change API: file argument of 'r' and 'rb' now single basename instead of list of files
`v0.0.5`_
=========
* Support context manager
* Support read functions.
.. History links
.. _Unreleased: https://github.com/miurahr/py7zr/compare/v0.2.2...HEAD
.. _v0.2.2: https://github.com/miurahr/py7zr/compare/v0.2.1...v0.2.2
.. _v0.2.1: https://github.com/miurahr/py7zr/compare/v0.2.0...v0.2.1
.. _v0.2.0: https://github.com/miurahr/py7zr/compare/v0.1.4...v0.2.0
.. _v0.1.4: https://github.com/miurahr/py7zr/compare/v0.1.3...v0.1.4
.. _v0.1.3: https://github.com/miurahr/py7zr/compare/v0.1.2...v0.1.3
.. _v0.1.2: https://github.com/miurahr/py7zr/compare/v0.1.1...v0.1.2
.. _v0.1.1: https://github.com/miurahr/py7zr/compare/v0.1.0...v0.1.1
.. _v0.1.0: https://github.com/miurahr/py7zr/compare/v0.0.5...v0.1.0
.. _v0.0.5: https://github.com/miurahr/py7zr/compare/v0.0.1...v0.0.5
Raw data
{
"_id": null,
"home_page": "https://github.com/miurahr/multivolume",
"name": "multivolumefile",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "multivolume,file",
"author": "Hiroshi Miura",
"author_email": "miurahr@linux.com",
"download_url": "https://files.pythonhosted.org/packages/50/f0/a7786212b5a4cb9ba05ae84a2bbd11d1d0279523aea0424b6d981d652a14/multivolumefile-0.2.3.tar.gz",
"platform": "",
"description": "===============\nmultivolumefile\n===============\n\n.. image:: https://coveralls.io/repos/github/miurahr/multivolume/badge.svg?branch=master\n :target: https://coveralls.io/github/miurahr/multivolume?branch=master\n\n.. image:: https://github.com/miurahr/multivolume/workflows/Run%20Tox%20tests/badge.svg\n :target: https://github.com/miurahr/multivolume/actions\n\nMultiVolumefile is a python library to provide a file-object wrapping multiple files\nas virtually like as a single file. It inherit io.RawIOBase class and support some of\nits standard methods.\n\nSee API details at `python library reference`_\n\n.. _`python library reference`: https://docs.python.org/3/library/io.html\n\nStatus\n======\n\nmultivolumefile module is under active development and considered as ***Alpha*** state.\nIt is not good idea to use it on production systems, but it may work well in a limited range\nof usage. Please check limitations and passed test cases.\n\n\nInstall\n=======\n\nYou can install it as usual public libraries, you can use pip command\n\n```\npip install multivolumefile\n```\n\nYou are also able to add it to your setup.py/cfg as dependency.\n\nUsages\n------\n\n- For reading multi-volume files, that has names `archive.7z.0001`, `archive.7z.0002` and so on,\n you can call multivolumefile as follows;\n\n.. code-block::\n\n with multivolumefile.open('archive.7z', 'rb') as vol:\n data = vol.read(100)\n vol.seek(500)\n\n- For writing multi-volue files, that has names `archive.7z.0001`, `archive.7z.0002` and so on,\n you can call multivolumefile as follows;\n\n\n.. code-block::\n\n data = b'abcdefg'\n with multivolumefile.open('archive.7z', 'wb') as vol:\n size = vol.write(data)\n vol.seek(0)\n\nyou will see file `archive.7z.001` are written.\n\nLimitations and known issues\n============================\n\n- fileno() is not supported and when call it, you will get RuntimeError exception.\n- There are several non-implemented functions such as truncate() and writeline() that will raise NotimplementedError\n- There are several non-implemented functions such as readlines(), readline() and readall().\n- Text mode is not implemented.\n- ***Caution***: When globbing existent volumes, it glob all files other than 4-digit extensions, it may break your data.\n\n\nContribution\n============\n\nYou are welcome to contribute the project, as usual on github projects, Pull-Requests are always welcome.\n\nLicense\n=======\n\nMultivolume is licensed under GNU Lesser General Public license version 2.1 or later.\n\n=========\nChangeLog\n=========\n\nAll notable changes to this project will be documented in this file.\n\n`Unreleased`_\n=============\n\nAdded\n-----\n\nChanged\n-------\n\nFixed\n-----\n\nDeprecated\n----------\n\nRemoved\n-------\n\nSecurity\n--------\n\n`v0.2.3`_\n=========\n\nAdded\n-----\n* implement readall()\n\nChnaged\n-------\n* lint with black\n\n\n`v0.2.2`_\n=========\n\nAdded\n-----\n\n* Add py.typed file for type hinting.\n\n\n`v0.2.1`_\n=========\n\nAdded\n-----\n\n* Add `name` property that indicate basename of volumes\n* Add `stat()` that return `stat_result` which has as mostly same methods as `os.stat_result` class\n except for platform dependent methods.\n\n\n`v0.2.0`_\n=========\n\nAdded\n-----\n\n* Type hint information bundled.\n\nFixed\n-----\n\n* Seek() returns current position.\n\nChanged\n-------\n\n* Explanation of unsupported methods an modes in README\n\n`v0.1.4`_\n=========\n\nFixed\n-----\n\n* Fix append mode bug.\n\n`v0.1.3`_\n=========\n\nFixed\n-----\n\n* Fix added volume size become wrong\n\n`v0.1.2`_\n=========\n\nFixed\n-----\n\n* Fix append mode (#1)\n\n`v0.1.1`_\n=========\n\nFixed\n-----\n\n* Fin NotImplementedError when writing boudning of target files\n\n`v0.1.0`_\n=========\n\n* ***API changed***\n\nAdded\n-----\n\n* Add mode 'x', 'xb' and 'xt'\n* Add mode 'a', 'ab' and 'at'\n* Support flush()\n\nChanged\n-------\n\n* Change API: file argument of 'r' and 'rb' now single basename instead of list of files\n\n`v0.0.5`_\n=========\n\n* Support context manager\n* Support read functions.\n\n.. History links\n.. _Unreleased: https://github.com/miurahr/py7zr/compare/v0.2.2...HEAD\n.. _v0.2.2: https://github.com/miurahr/py7zr/compare/v0.2.1...v0.2.2\n.. _v0.2.1: https://github.com/miurahr/py7zr/compare/v0.2.0...v0.2.1\n.. _v0.2.0: https://github.com/miurahr/py7zr/compare/v0.1.4...v0.2.0\n.. _v0.1.4: https://github.com/miurahr/py7zr/compare/v0.1.3...v0.1.4\n.. _v0.1.3: https://github.com/miurahr/py7zr/compare/v0.1.2...v0.1.3\n.. _v0.1.2: https://github.com/miurahr/py7zr/compare/v0.1.1...v0.1.2\n.. _v0.1.1: https://github.com/miurahr/py7zr/compare/v0.1.0...v0.1.1\n.. _v0.1.0: https://github.com/miurahr/py7zr/compare/v0.0.5...v0.1.0\n.. _v0.0.5: https://github.com/miurahr/py7zr/compare/v0.0.1...v0.0.5\n\n\n",
"bugtrack_url": null,
"license": "LGPL-2.1+",
"summary": "multi volume file wrapper library",
"version": "0.2.3",
"project_urls": {
"Homepage": "https://github.com/miurahr/multivolume"
},
"split_keywords": [
"multivolume",
"file"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2231ec5f46fd4c83185b806aa9c736e228cb780f13990a9cf4da0beb70025fcc",
"md5": "227a780898fb5f4202bf445fcc5772d9",
"sha256": "237f4353b60af1703087cf7725755a1f6fcaeeea48421e1896940cd1c920d678"
},
"downloads": -1,
"filename": "multivolumefile-0.2.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "227a780898fb5f4202bf445fcc5772d9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 17037,
"upload_time": "2021-04-29T12:18:38",
"upload_time_iso_8601": "2021-04-29T12:18:38.886271Z",
"url": "https://files.pythonhosted.org/packages/22/31/ec5f46fd4c83185b806aa9c736e228cb780f13990a9cf4da0beb70025fcc/multivolumefile-0.2.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "50f0a7786212b5a4cb9ba05ae84a2bbd11d1d0279523aea0424b6d981d652a14",
"md5": "9bcc5c3e6f2046f563904354f0ead4c3",
"sha256": "a0648d0aafbc96e59198d5c17e9acad7eb531abea51035d08ce8060dcad709d6"
},
"downloads": -1,
"filename": "multivolumefile-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "9bcc5c3e6f2046f563904354f0ead4c3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 77984,
"upload_time": "2021-04-29T12:18:39",
"upload_time_iso_8601": "2021-04-29T12:18:39.882802Z",
"url": "https://files.pythonhosted.org/packages/50/f0/a7786212b5a4cb9ba05ae84a2bbd11d1d0279523aea0424b6d981d652a14/multivolumefile-0.2.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-04-29 12:18:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "miurahr",
"github_project": "multivolume",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "multivolumefile"
}