PortableTab


NamePortableTab JSON
Version 0.3.5 PyPI version JSON
download
home_pageNone
SummaryPython package for serializing tables in portable format with Capnp.
upload_time2024-04-28 09:44:11
maintainerNone
docs_urlNone
authorTakeshi Sagara
requires_python<4.0,>=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PortableTab

![Python 3.7](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.7.yml/badge.svg)
![Python 3.8](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.8.yml/badge.svg)
![Python 3.9](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.9.yml/badge.svg)
![Python 3.10](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.10.yml/badge.svg)
![Python 3.11](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.11.yml/badge.svg)
![Python 3.12](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.12.yml/badge.svg)

*PortableTab* is a Python library that allows for serialization of 
typed tables into a set of files, as well as deserialization of
specific rows extracted from the files.

## Features

The serialized files are independent of OS and CPU architecture, so it can
be used to create portable table which is useful when working with large
datasets that need to be shared between different systems or environments.

It also allows fast deserialization of only specified rows without loading
the entire table into memory, so it does not take time to load and
deserialize the table on the first access, nor consume memory during execution.

- [Capn' Proto](https://capnproto.org/) is used for serialization,
  making the file format portable.
- Since *PortableTab* uses mmap for file access, it does not consume
  much memory even when handling large tables.
- Indexes on strings are created using
  [Marisa-trie](https://github.com/pytries/marisa-trie),
  the output files are also portable and accessible using mmap.

## Limitations

The tables are serialized into compact files so they cannot be dynamically
modified.

- Rows can only be retrieved at their specified position. If you want to
  access by an attribute such as *id*, you must create an index on that attribute.
- Updating records in serialized files is possible but very slow.
- It is not possible to insert rows in the middle of a serialized file. If you
  want to insert rows in the middle, the only way is to deserialize
  the entire table and recreate another table.

## How to use

Please refer to the documentation at
[PortableTab Document](https://portabletab.readthedocs.io/en/latest/).

## Development status

Unstable alpha version.

## License

This package is available according to the MIT license.

## Author

Takeshi SAGARA <sagara@info-proto.com>


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "PortableTab",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Takeshi Sagara",
    "author_email": "sagara@info-proto.com",
    "download_url": "https://files.pythonhosted.org/packages/9b/dd/cbf7d57ec2fa97e927b76c6cb4c5df2d6d0698e179f38071f5ade8d95dff/portabletab-0.3.5.tar.gz",
    "platform": null,
    "description": "# PortableTab\n\n![Python 3.7](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.7.yml/badge.svg)\n![Python 3.8](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.8.yml/badge.svg)\n![Python 3.9](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.9.yml/badge.svg)\n![Python 3.10](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.10.yml/badge.svg)\n![Python 3.11](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.11.yml/badge.svg)\n![Python 3.12](https://github.com/t-sagara/PortableTab/actions/workflows/python-3.12.yml/badge.svg)\n\n*PortableTab* is a Python library that allows for serialization of \ntyped tables into a set of files, as well as deserialization of\nspecific rows extracted from the files.\n\n## Features\n\nThe serialized files are independent of OS and CPU architecture, so it can\nbe used to create portable table which is useful when working with large\ndatasets that need to be shared between different systems or environments.\n\nIt also allows fast deserialization of only specified rows without loading\nthe entire table into memory, so it does not take time to load and\ndeserialize the table on the first access, nor consume memory during execution.\n\n- [Capn' Proto](https://capnproto.org/) is used for serialization,\n  making the file format portable.\n- Since *PortableTab* uses mmap for file access, it does not consume\n  much memory even when handling large tables.\n- Indexes on strings are created using\n  [Marisa-trie](https://github.com/pytries/marisa-trie),\n  the output files are also portable and accessible using mmap.\n\n## Limitations\n\nThe tables are serialized into compact files so they cannot be dynamically\nmodified.\n\n- Rows can only be retrieved at their specified position. If you want to\n  access by an attribute such as *id*, you must create an index on that attribute.\n- Updating records in serialized files is possible but very slow.\n- It is not possible to insert rows in the middle of a serialized file. If you\n  want to insert rows in the middle, the only way is to deserialize\n  the entire table and recreate another table.\n\n## How to use\n\nPlease refer to the documentation at\n[PortableTab Document](https://portabletab.readthedocs.io/en/latest/).\n\n## Development status\n\nUnstable alpha version.\n\n## License\n\nThis package is available according to the MIT license.\n\n## Author\n\nTakeshi SAGARA <sagara@info-proto.com>\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python package for serializing tables in portable format with Capnp.",
    "version": "0.3.5",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "337162ac3261d918842c49fea2d56da7552b6ccef7f1f43558a185654d949e04",
                "md5": "9e01084ae2ca04d511026ed187f37697",
                "sha256": "cb63afdabf6e0b9d30f6297fe2914ef15aa5a9a750be36e7cb3f44c0e1fa3d02"
            },
            "downloads": -1,
            "filename": "portabletab-0.3.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9e01084ae2ca04d511026ed187f37697",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 12761,
            "upload_time": "2024-04-28T09:44:10",
            "upload_time_iso_8601": "2024-04-28T09:44:10.386409Z",
            "url": "https://files.pythonhosted.org/packages/33/71/62ac3261d918842c49fea2d56da7552b6ccef7f1f43558a185654d949e04/portabletab-0.3.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9bddcbf7d57ec2fa97e927b76c6cb4c5df2d6d0698e179f38071f5ade8d95dff",
                "md5": "0affe2b544746ce92cb2df1f46c029ed",
                "sha256": "2456fc61722397d67dc74f8d50f2b4e697b03ee2c757d61028b9eff78db2e4d4"
            },
            "downloads": -1,
            "filename": "portabletab-0.3.5.tar.gz",
            "has_sig": false,
            "md5_digest": "0affe2b544746ce92cb2df1f46c029ed",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 10339,
            "upload_time": "2024-04-28T09:44:11",
            "upload_time_iso_8601": "2024-04-28T09:44:11.649409Z",
            "url": "https://files.pythonhosted.org/packages/9b/dd/cbf7d57ec2fa97e927b76c6cb4c5df2d6d0698e179f38071f5ade8d95dff/portabletab-0.3.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-28 09:44:11",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "portabletab"
}
        
Elapsed time: 3.94687s