pydllfile


Namepydllfile JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/kr-g/pydllfile
Summarypydllfile - python double linked list file storage memory management
upload_time2021-04-12 19:23:46
maintainer
docs_urlNone
authork.r. goger
requires_python>=3.6
license
keywords double linked list file storage memory management pyheapfile
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)


# pydllfile - double linked list in heap file storage

`pydllfile` implements a file persistent 
[`double linked list`](https://en.wikipedia.org/wiki/Doubly_linked_list)


# What's new ?

Check
[`CHANGELOG`](https://github.com/kr-g/pydllfile/blob/main/CHANGELOG.MD)
for latest ongoing, or upcoming news


# memory / file layout

a double linked element node resides inside a heap node as data part. 
see also [`pyheapfile`](https://github.com/kr-g/pyheapfile/) for layout.


## general node layout

| name | size / value | description |
| --- | --- | --- | 
| prev | xpos bytes | previous element |
| succ | xpos bytes | next element |
| data | x bytes | data area |


## limitation

- xpos (default) == 8 bytes ==> 2**(8*8) 
== 18.446.744.073.709.551.616 bytes total file size (default)

| [binary prefix](https://en.wikipedia.org/wiki/Binary_prefix) | size | unit |
| --- | --- | --- |
| 2**20 | 17.592.186.044.416 | MB |
| 2**30 | 17.179.869.184 | GB |
| 2**40 | 16.777.216 | TB |
| 2**50 | 16.384 | PB |
| 2**60 | 16 | EB |

- the default can be changed by creating `DoubleLinkedListFile` with a different `link_size`
- see other limits also here [`pyheapfile`](https://github.com/kr-g/pyheapfile/)
-

## remark on hexdump tool

hexdump tool raise error when configured not properly. use valid hex address for node and link.
the internal hexdump tool for dumping single elements nodes from the dllfile can be called with:


    usage: python3 -m pydllfile.hexdump [options]

    dump heapfile double linked elements

    optional arguments:
      -h, --help            show this help message and exit
      -v, --version         show version info and exit
      -V, --verbose         show more info
      -f FILE_NAME, --file FILE_NAME
                            input file
      -n NODE_NO, --node NODE_NO
                            hex address of node. blanks in a quoted string are ignored. address of 0x0 will read the 2nd heap node since a dll element node can not be
                            stored in first heap node. (default: 000000)
      -l LINK_NO, --link LINK_NO
                            hex address of dll element node. blanks in a quoted string are ignored. (default: 000000)
      -aw ADDESS_WIDTH, --addess_width ADDESS_WIDTH
                            hex address width. (default: 6)
      -ls LINK_SIZE, --link_size LINK_SIZE
                            link size. (default: 8)
      -r REL_NO, --relative REL_NO
                            relative position of dll element node. can be combined with -n or -l option. when negative it reads backwards starting from the -n/-l node.
                            keep in mind that -n is an address and -r is a position. (default: 0)
      -w WIDTH, --width WIDTH
                            with of data output (default: 16)
      -g GROUP, --group GROUP
                            group bytes in data output (default: 1)
      -ho, --header_only    prints only header, no data.


# Related Projects

search for topic [`pyheapfile`](https://github.com/topics/pyheapfile) 
on github to explore related tools/ modules.


# Platform

Tested on Python3, and Linux.


# development status

alpha state.
the API or logical call flow might change without prior notice.

read [`CHANGELOG`](https://github.com/kr-g/pydllfile/blob/main/CHANGELOG.MD)
for latest, or upcoming news.


# installation

available on pypi. install with:

    python3 -m pip install pydllfile




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/kr-g/pydllfile",
    "name": "pydllfile",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "double linked list file storage memory management pyheapfile",
    "author": "k.r. goger",
    "author_email": "k.r.goger+pydllfile@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/0a/5d/ef30f7298599922606175c9a4ec8b2db3425050f39e67bda29c38c30111e/pydllfile-0.0.4.linux-x86_64.tar.gz",
    "platform": "",
    "description": "\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n\n# pydllfile - double linked list in heap file storage\n\n`pydllfile` implements a file persistent \n[`double linked list`](https://en.wikipedia.org/wiki/Doubly_linked_list)\n\n\n# What's new ?\n\nCheck\n[`CHANGELOG`](https://github.com/kr-g/pydllfile/blob/main/CHANGELOG.MD)\nfor latest ongoing, or upcoming news\n\n\n# memory / file layout\n\na double linked element node resides inside a heap node as data part. \nsee also [`pyheapfile`](https://github.com/kr-g/pyheapfile/) for layout.\n\n\n## general node layout\n\n| name | size / value | description |\n| --- | --- | --- | \n| prev | xpos bytes | previous element |\n| succ | xpos bytes | next element |\n| data | x bytes | data area |\n\n\n## limitation\n\n- xpos (default) == 8 bytes ==> 2**(8*8) \n== 18.446.744.073.709.551.616 bytes total file size (default)\n\n| [binary prefix](https://en.wikipedia.org/wiki/Binary_prefix) | size | unit |\n| --- | --- | --- |\n| 2**20 | 17.592.186.044.416 | MB |\n| 2**30 | 17.179.869.184 | GB |\n| 2**40 | 16.777.216 | TB |\n| 2**50 | 16.384 | PB |\n| 2**60 | 16 | EB |\n\n- the default can be changed by creating `DoubleLinkedListFile` with a different `link_size`\n- see other limits also here [`pyheapfile`](https://github.com/kr-g/pyheapfile/)\n-\n\n## remark on hexdump tool\n\nhexdump tool raise error when configured not properly. use valid hex address for node and link.\nthe internal hexdump tool for dumping single elements nodes from the dllfile can be called with:\n\n\n    usage: python3 -m pydllfile.hexdump [options]\n\n    dump heapfile double linked elements\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      -v, --version         show version info and exit\n      -V, --verbose         show more info\n      -f FILE_NAME, --file FILE_NAME\n                            input file\n      -n NODE_NO, --node NODE_NO\n                            hex address of node. blanks in a quoted string are ignored. address of 0x0 will read the 2nd heap node since a dll element node can not be\n                            stored in first heap node. (default: 000000)\n      -l LINK_NO, --link LINK_NO\n                            hex address of dll element node. blanks in a quoted string are ignored. (default: 000000)\n      -aw ADDESS_WIDTH, --addess_width ADDESS_WIDTH\n                            hex address width. (default: 6)\n      -ls LINK_SIZE, --link_size LINK_SIZE\n                            link size. (default: 8)\n      -r REL_NO, --relative REL_NO\n                            relative position of dll element node. can be combined with -n or -l option. when negative it reads backwards starting from the -n/-l node.\n                            keep in mind that -n is an address and -r is a position. (default: 0)\n      -w WIDTH, --width WIDTH\n                            with of data output (default: 16)\n      -g GROUP, --group GROUP\n                            group bytes in data output (default: 1)\n      -ho, --header_only    prints only header, no data.\n\n\n# Related Projects\n\nsearch for topic [`pyheapfile`](https://github.com/topics/pyheapfile) \non github to explore related tools/ modules.\n\n\n# Platform\n\nTested on Python3, and Linux.\n\n\n# development status\n\nalpha state.\nthe API or logical call flow might change without prior notice.\n\nread [`CHANGELOG`](https://github.com/kr-g/pydllfile/blob/main/CHANGELOG.MD)\nfor latest, or upcoming news.\n\n\n# installation\n\navailable on pypi. install with:\n\n    python3 -m pip install pydllfile\n\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "pydllfile - python double linked list file storage memory management",
    "version": "0.0.4",
    "split_keywords": [
        "double",
        "linked",
        "list",
        "file",
        "storage",
        "memory",
        "management",
        "pyheapfile"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "69f939fddaeef715e96319d6d15caf3d",
                "sha256": "2f2ed6aeed385ee86d673f1fc6208a4e3669510fa97e3f375e1418f74e90f001"
            },
            "downloads": -1,
            "filename": "pydllfile-0.0.4.linux-x86_64.tar.gz",
            "has_sig": false,
            "md5_digest": "69f939fddaeef715e96319d6d15caf3d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 9584,
            "upload_time": "2021-04-12T19:23:46",
            "upload_time_iso_8601": "2021-04-12T19:23:46.637212Z",
            "url": "https://files.pythonhosted.org/packages/0a/5d/ef30f7298599922606175c9a4ec8b2db3425050f39e67bda29c38c30111e/pydllfile-0.0.4.linux-x86_64.tar.gz",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "e2ea9dfcafd68518c76afa3e01ab7c39",
                "sha256": "30de37ae3482a008ab51f4726f4ce45ba146a59b0d755642f91bd597ad83d90d"
            },
            "downloads": -1,
            "filename": "pydllfile-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e2ea9dfcafd68518c76afa3e01ab7c39",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 18078,
            "upload_time": "2021-04-12T19:23:45",
            "upload_time_iso_8601": "2021-04-12T19:23:45.482821Z",
            "url": "https://files.pythonhosted.org/packages/5b/49/c7b80efe2d112302e489ccce548a814b809f34de16c462b623931b53d182/pydllfile-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2021-04-12 19:23:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": null,
    "github_project": "kr-g",
    "error": "Could not fetch GitHub repository",
    "lcname": "pydllfile"
}
        
Elapsed time: 0.40736s