# KonF'00'
[![status](https://img.shields.io/pypi/status/konfoo.svg)](https://pypi.org/project/konfoo)
[![docs](https://readthedocs.org/projects/konfoo/badge/?version=latest)](https://konfoo.readthedocs.io)
[![pypi](https://img.shields.io/pypi/v/konfoo.svg)](https://pypi.org/project/konfoo)
[![python](https://img.shields.io/pypi/pyversions/konfoo.svg)](https://docs.python.org/3/)
[![license](https://img.shields.io/pypi/l/konfoo.svg)](https://github.com/JoeVirtual/KonFoo/blob/master/LICENSE)
[![downloads](https://img.shields.io/pypi/dm/konfoo.svg)](https://pypistats.org/packages/konfoo)
[![binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/joevirtual/konfoo/master?labpath=notebooks)
**KonFoo** is a Python Package for creating byte stream mappers in a declarative
way with as little code as necessary to help fighting the confusion with the
foo of the all well-known memory dumps or hexadecimal views of binary data.
It comes with sensible defaults out of the box.
It aims to make the process of reading, de-serializing, viewing, serializing
and writing binary data from and back to a data provider as easy as possible.
**KonFoo** in points:
* declarative way to describe the mapping of binary data to Python types
* declarative classes to read, deserialize, view, serialize and write binary
data from and back to a data source
* easy adjustable byte stream provider bridge to any kind of data source
* nesting of classes
* adaptable classes on the fly while reading/de-serializing binary data
* easy syntax for accessing nested fields
* view the mapped binary data as a JSON string
* list the mapped binary data as a flat list or dictionary
* write the mapped binary data to a `.json` file
* write the mapped binary data to a `.csv` file
* save the mapped binary data to an `.ini` file
* load the mapped binary data from an `.ini` file
* easy creatable nested metadata dictionaries of the members of a byte stream
mapper
* metadata converter to the `flare.json` format to visualise the mapper with
[d3.js](https://d3js.org).
## Table of Contents
[Back to top]: #table-of-contents
1. [Project Status](#project-status)
2. [Project Structure](#project-structure)
3. [Getting Started](#getting-started)
- [Dependencies](#dependencies)
- [Installation](#installation)
- [Usage](#usage)
4. [Development](#development)
- [Getting the Source](#getting-the-source)
- [Building a Distribution](#building-a-distribution)
- [Building the Documentation](#building-the-documentation)
5. [Release Process](#release-process)
- [Versioning](#versioning)
6. [Documentation](#documentation)
7. [License](#license)
8. [Authors](#authors)
## Project Status
This [project] is stable and active. Feedback is always welcomed!
**[Back to top](#table-of-contents)**
## Project Structure
The [project] is organized in sub-folders.
- `assets/`: Project assets
- `binder/`: Binder configuration
- `docs/`: [Sphinx] documentation
- `notebooks/`: [Jupyter] notebooks
- `src/konfoo/`: Package sources
**[Back to top](#table-of-contents)**
## Getting Started
### Dependencies
The `KonFoo` package requires at least [Python] 3.6, otherwise no other packages
are required.
### Installation
To install the package from [PyPi] using [pip]
```shell
> pip install konfoo
```
**[Back to top](#table-of-contents)**
### Usage
Read the documentation on "[Read The Docs]".
**[Back to top](#table-of-contents)**
## Development
### Getting the Source
This [project] is hosted on [github].
You can clone the [project] directly using this command:
```shell
> git clone https://github.com/JoeVirtual/KonFoo.git
```
### Building a Distribution
To build local a distribution of this [project], use this command:
```shell
> make build
```
The generated the distribution artifacts can be found in the `./dist` folder
of the cloned [project] on your machine.
### Building the Documentation
Building the documentation requires [Sphinx], the [Furo] theme, and the
[Sphinx] extension [sphinx-copybutton].
```shell
> pip install sphinx
> pip install furo
> pip install sphinx-copybutton
```
To build local the documentation of this [project], use this command:
```shell
> make docs
```
The generated HTML documentation artifact can be found in the
`./docs/_build/html` folder of the cloned [project] on your machine.
**[Back to top](#table-of-contents)**
## Release Process
### Versioning
This project uses [Semantic Versioning].
For a list of available versions, see the [repository tag list].
**[Back to top](#table-of-contents)**
## Documentation
The documentation for the latest repository build is hosted on the
[GitHub Pages] of the [project].
The documentations of the [project] **releases** are hosted on [Read The Docs].
**[Back to top](#table-of-contents)**
## Contributing
If you are interested to contribute code or documentation to the [project],
please take a look at the [contributing guidelines](CONTRIBUTING.md) for details
on our development process.
**[Back to top](#table-of-contents)**
## License
The [project] is licensed under the revised [3-Clause BSD License].
See [LICENSE](LICENSE).
**[Back to top](#table-of-contents)**
## Authors
* Jochen Gerhaeusser
See also the list of [contributors] who participated in this [project].
**[Back to top](#table-of-contents)**
[Semantic Versioning]: https://semver.org
[3-Clause BSD License]: https://opensource.org/licenses/BSD-3-Clause
[Python]: https://www.python.org
[PyPi]: https://pypi.org
[pip]: https://pip.pypa.io
[Sphinx]: https://pypi.org/project/sphinx
[Furo]: https://pypi.org/project/furo
[sphinx-copybutton]: https://pypi.org/project/sphinx-copybutton
[Jupyter]: https://jupyter.org
[github]: https://github.com
[project]: https://github.com/JoeVirtual/KonFoo
[repository tag list]: https://github.com/JoeVirtual/KonFoo/releases
[contributors]: https://github.com/JoeVirtual/KonFoo/graphs/contributors
[GitHub Pages]: https://joevirtual.github.io/KonFoo/
[Read The Docs]: https://konfoo.readthedocs.io
Raw data
{
"_id": null,
"home_page": "https://github.com/JoeVirtual/KonFoo/",
"name": "KonFoo",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "binary data,deserialize,serialize,parse,decode,encode,unpack,pack",
"author": "Jochen Gerhaeusser",
"author_email": "jochen_privat@gmx.de",
"download_url": "https://files.pythonhosted.org/packages/ad/73/89f07df77bdd7f8610e0fb56d0610cf215fcb98fd552cbcb19422d0c9923/KonFoo-3.0.0.tar.gz",
"platform": "any",
"description": "# KonF'00'\r\n\r\n[![status](https://img.shields.io/pypi/status/konfoo.svg)](https://pypi.org/project/konfoo)\r\n[![docs](https://readthedocs.org/projects/konfoo/badge/?version=latest)](https://konfoo.readthedocs.io)\r\n[![pypi](https://img.shields.io/pypi/v/konfoo.svg)](https://pypi.org/project/konfoo)\r\n[![python](https://img.shields.io/pypi/pyversions/konfoo.svg)](https://docs.python.org/3/)\r\n[![license](https://img.shields.io/pypi/l/konfoo.svg)](https://github.com/JoeVirtual/KonFoo/blob/master/LICENSE)\r\n[![downloads](https://img.shields.io/pypi/dm/konfoo.svg)](https://pypistats.org/packages/konfoo)\r\n[![binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/joevirtual/konfoo/master?labpath=notebooks)\r\n\r\n**KonFoo** is a Python Package for creating byte stream mappers in a declarative\r\nway with as little code as necessary to help fighting the confusion with the\r\nfoo of the all well-known memory dumps or hexadecimal views of binary data.\r\n\r\nIt comes with sensible defaults out of the box.\r\n\r\nIt aims to make the process of reading, de-serializing, viewing, serializing\r\nand writing binary data from and back to a data provider as easy as possible.\r\n\r\n**KonFoo** in points:\r\n\r\n* declarative way to describe the mapping of binary data to Python types\r\n* declarative classes to read, deserialize, view, serialize and write binary\r\n data from and back to a data source\r\n* easy adjustable byte stream provider bridge to any kind of data source\r\n* nesting of classes\r\n* adaptable classes on the fly while reading/de-serializing binary data\r\n* easy syntax for accessing nested fields\r\n* view the mapped binary data as a JSON string\r\n* list the mapped binary data as a flat list or dictionary\r\n* write the mapped binary data to a `.json` file\r\n* write the mapped binary data to a `.csv` file\r\n* save the mapped binary data to an `.ini` file\r\n* load the mapped binary data from an `.ini` file\r\n* easy creatable nested metadata dictionaries of the members of a byte stream\r\n mapper\r\n* metadata converter to the `flare.json` format to visualise the mapper with\r\n [d3.js](https://d3js.org).\r\n\r\n## Table of Contents\r\n[Back to top]: #table-of-contents\r\n\r\n1. [Project Status](#project-status)\r\n2. [Project Structure](#project-structure)\r\n3. [Getting Started](#getting-started)\r\n\t- [Dependencies](#dependencies)\r\n\t- [Installation](#installation)\r\n\t- [Usage](#usage)\r\n4. [Development](#development)\r\n\t- [Getting the Source](#getting-the-source)\r\n\t- [Building a Distribution](#building-a-distribution)\r\n\t- [Building the Documentation](#building-the-documentation)\r\n5. [Release Process](#release-process)\r\n\t- [Versioning](#versioning)\r\n6. [Documentation](#documentation)\r\n7. [License](#license)\r\n8. [Authors](#authors)\r\n\r\n## Project Status\r\n\r\nThis [project] is stable and active. Feedback is always welcomed!\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## Project Structure\r\n\r\nThe [project] is organized in sub-folders.\r\n\r\n- `assets/`: Project assets\r\n- `binder/`: Binder configuration\r\n- `docs/`: [Sphinx] documentation\r\n- `notebooks/`: [Jupyter] notebooks\r\n- `src/konfoo/`: Package sources\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## Getting Started\r\n\r\n### Dependencies\r\n\r\nThe `KonFoo` package requires at least [Python] 3.6, otherwise no other packages\r\nare required.\r\n\r\n### Installation\r\n\r\nTo install the package from [PyPi] using [pip]\r\n\r\n```shell\r\n> pip install konfoo\r\n```\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n### Usage\r\n\r\nRead the documentation on \"[Read The Docs]\".\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## Development\r\n\r\n### Getting the Source\r\n\r\nThis [project] is hosted on [github].\r\nYou can clone the [project] directly using this command:\r\n\r\n```shell\r\n> git clone https://github.com/JoeVirtual/KonFoo.git\r\n```\r\n\r\n### Building a Distribution\r\n\r\nTo build local a distribution of this [project], use this command:\r\n\r\n```shell\r\n> make build\r\n```\r\n\r\nThe generated the distribution artifacts can be found in the `./dist` folder\r\nof the cloned [project] on your machine.\r\n\r\n### Building the Documentation\r\n\r\nBuilding the documentation requires [Sphinx], the [Furo] theme, and the\r\n[Sphinx] extension [sphinx-copybutton].\r\n\r\n```shell\r\n> pip install sphinx\r\n> pip install furo\r\n> pip install sphinx-copybutton\r\n```\r\n\r\nTo build local the documentation of this [project], use this command:\r\n\r\n```shell\r\n> make docs\r\n```\r\n\r\nThe generated HTML documentation artifact can be found in the\r\n`./docs/_build/html` folder of the cloned [project] on your machine.\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## Release Process\r\n\r\n### Versioning\r\n\r\nThis project uses [Semantic Versioning].\r\nFor a list of available versions, see the [repository tag list].\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## Documentation\r\n\r\nThe documentation for the latest repository build is hosted on the\r\n[GitHub Pages] of the [project].\r\n\r\nThe documentations of the [project] **releases** are hosted on [Read The Docs].\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## Contributing\r\n\r\nIf you are interested to contribute code or documentation to the [project],\r\nplease take a look at the [contributing guidelines](CONTRIBUTING.md) for details\r\non our development process.\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## License\r\n\r\nThe [project] is licensed under the revised [3-Clause BSD License].\r\n\r\nSee [LICENSE](LICENSE).\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n## Authors\r\n\r\n* Jochen Gerhaeusser\r\n\r\nSee also the list of [contributors] who participated in this [project].\r\n\r\n**[Back to top](#table-of-contents)**\r\n\r\n[Semantic Versioning]: https://semver.org\r\n[3-Clause BSD License]: https://opensource.org/licenses/BSD-3-Clause\r\n[Python]: https://www.python.org\r\n[PyPi]: https://pypi.org\r\n[pip]: https://pip.pypa.io\r\n[Sphinx]: https://pypi.org/project/sphinx\r\n[Furo]: https://pypi.org/project/furo\r\n[sphinx-copybutton]: https://pypi.org/project/sphinx-copybutton\r\n[Jupyter]: https://jupyter.org\r\n[github]: https://github.com\r\n[project]: https://github.com/JoeVirtual/KonFoo\r\n[repository tag list]: https://github.com/JoeVirtual/KonFoo/releases\r\n[contributors]: https://github.com/JoeVirtual/KonFoo/graphs/contributors\r\n[GitHub Pages]: https://joevirtual.github.io/KonFoo/\r\n[Read The Docs]: https://konfoo.readthedocs.io\r\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "A declarative byte stream mapping engine.",
"version": "3.0.0",
"split_keywords": [
"binary data",
"deserialize",
"serialize",
"parse",
"decode",
"encode",
"unpack",
"pack"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "92c782d65f58c5b1f3eac3e130d42835",
"sha256": "b2648dd7d8184d76aa9745ec6f7b0fd22deaf49be13afd961b2f3f7ee32ec4ee"
},
"downloads": -1,
"filename": "KonFoo-3.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "92c782d65f58c5b1f3eac3e130d42835",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 55709,
"upload_time": "2022-12-20T04:21:56",
"upload_time_iso_8601": "2022-12-20T04:21:56.531078Z",
"url": "https://files.pythonhosted.org/packages/94/66/80f06fe34e48f18afc307fe2e0561f4a2707007a0658ac9ce106289dd161/KonFoo-3.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "582340d99f8ef77a09a2dac1239f161d",
"sha256": "2b03037bbe1fb1b398b54cf72f17e4798c617bee8e437f05b4ce0c824f133dd2"
},
"downloads": -1,
"filename": "KonFoo-3.0.0.tar.gz",
"has_sig": false,
"md5_digest": "582340d99f8ef77a09a2dac1239f161d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 139158,
"upload_time": "2022-12-20T04:21:58",
"upload_time_iso_8601": "2022-12-20T04:21:58.977117Z",
"url": "https://files.pythonhosted.org/packages/ad/73/89f07df77bdd7f8610e0fb56d0610cf215fcb98fd552cbcb19422d0c9923/KonFoo-3.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-20 04:21:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "JoeVirtual",
"github_project": "KonFoo",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "konfoo"
}