serial_weaver


Nameserial_weaver JSON
Version 0.1.0 PyPI version JSON
download
home_page
SummaryA Python package that standardizes data parsing from multiple serilized formats into pydantic models.
upload_time2024-03-10 17:07:59
maintainer
docs_urlNone
authorAndré Lima
requires_python>=3.9,<4.0
licenseMIT
keywords serialization deserialization parsing pydantic-models seria-to-pydantic pydantic-to-serial
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Serial Weaver

A pydantic based tool that standardizes the representation of serialized data as python objects not only capable of 
exhibiting complex business logic behaviors, but also ensuring stringent data validation.

## Install

pip:

```bash
pip install serial_weaver
```

poetry:

```bash
poetry add serial_weaver
```

## Features

- **Pydantic Integration**: Converting serialized data into Python objects is the oldest trick in the book, but 
  Serial Weaver elevates this process by directly converting the data into Pydantic models, which brings 
  the added advantage of robust data validation. The models used in this process are defined by classes that inherit 
  from either the ***SerialWeaverBaseModel*** or ***SerialWeaverRenderableModel***. This not only provides 
  flexibility in setting up behaviors for your data, but also ensures data integrity through Pydantic's validation 
  mechanisms.

- **Built-in Support for Multiple Formats**: Currently, it supports loading serialized data from JSON, YAML, TOML 
  and INI. While future support for other formats is planned, if you need to cover additional formats, or even 
  provide your own parsing business logic, this can be easily achieved by extending Serial Weaver basic 
  coverage with your own loader and/or dumper functions. Speaking of which...

- **Extensibility**: The code was thought to allow for ease of extensibility. For example, if you wish to add your own 
  loader function(s) you only have to define them in a python module and have an environment var named `LOADERS_MODULE` 
  containing the python dotted path to your module. The same idea applies to dumper functions: a custom module with 
  them defined and a `DUMPERS_MODULE` env var. For more information and examples, refer to the [Configuration & 
  Extensibility](docs/configuration-and-extensibility.md) section.  

## Quick Start
  - [Usage examples](/docs/getting_started.md#usage):
    - [Example 1: Instantiating models from serialized data](/docs/getting_started.md#example-1-instantiating-models-from-serialized-data)
    - [Example 2: Data Relationship & Model Rendering](/docs/getting_started.md#example-2-data-relationship--model-rendering)
    - [Example 3: Converting data between supported formats](/docs/getting_started.md#example-3-converting-data-between-supported-formats)
  - [Configuration & Extensibility](docs/configuration-and-extensibility.md)
- [SerialWeaver Base Models](/docs/base_models.md)
- [The GLOBAL_DATA_STORE](/docs/the_global_data_store.md)
- [Loaders](/docs/loaders.md)
- [Dumpers](/docs/dumpers.md)
- [Contributing](#contributing)


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "serial_weaver",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "serialization,deserialization,parsing,pydantic-models,seria-to-pydantic,pydantic-to-serial",
    "author": "Andr\u00e9 Lima",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/5e/d2/da57ad7b33ea251e6a1c840e125a03df0cca417c71f515d4e58573a9c262/serial_weaver-0.1.0.tar.gz",
    "platform": null,
    "description": "# Serial Weaver\n\nA pydantic based tool that standardizes the representation of serialized data as python objects not only capable of \nexhibiting complex business logic behaviors, but also ensuring stringent data validation.\n\n## Install\n\npip:\n\n```bash\npip install serial_weaver\n```\n\npoetry:\n\n```bash\npoetry add serial_weaver\n```\n\n## Features\n\n- **Pydantic Integration**: Converting serialized data into Python objects is the oldest trick in the book, but \n  Serial Weaver elevates this process by directly converting the data into Pydantic models, which brings \n  the added advantage of robust data validation. The models used in this process are defined by classes that inherit \n  from either the ***SerialWeaverBaseModel*** or ***SerialWeaverRenderableModel***. This not only provides \n  flexibility in setting up behaviors for your data, but also ensures data integrity through Pydantic's validation \n  mechanisms.\n\n- **Built-in Support for Multiple Formats**: Currently, it supports loading serialized data from JSON, YAML, TOML \n  and INI. While future support for other formats is planned, if you need to cover additional formats, or even \n  provide your own parsing business logic, this can be easily achieved by extending Serial Weaver basic \n  coverage with your own loader and/or dumper functions. Speaking of which...\n\n- **Extensibility**: The code was thought to allow for ease of extensibility. For example, if you wish to add your own \n  loader function(s) you only have to define them in a python module and have an environment var named `LOADERS_MODULE` \n  containing the python dotted path to your module. The same idea applies to dumper functions: a custom module with \n  them defined and a `DUMPERS_MODULE` env var. For more information and examples, refer to the [Configuration & \n  Extensibility](docs/configuration-and-extensibility.md) section.  \n\n## Quick Start\n  - [Usage examples](/docs/getting_started.md#usage):\n    - [Example 1: Instantiating models from serialized data](/docs/getting_started.md#example-1-instantiating-models-from-serialized-data)\n    - [Example 2: Data Relationship & Model Rendering](/docs/getting_started.md#example-2-data-relationship--model-rendering)\n    - [Example 3: Converting data between supported formats](/docs/getting_started.md#example-3-converting-data-between-supported-formats)\n  - [Configuration & Extensibility](docs/configuration-and-extensibility.md)\n- [SerialWeaver Base Models](/docs/base_models.md)\n- [The GLOBAL_DATA_STORE](/docs/the_global_data_store.md)\n- [Loaders](/docs/loaders.md)\n- [Dumpers](/docs/dumpers.md)\n- [Contributing](#contributing)\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python package that standardizes data parsing from multiple serilized formats into pydantic models.",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/theandrelima/serial-weaver"
    },
    "split_keywords": [
        "serialization",
        "deserialization",
        "parsing",
        "pydantic-models",
        "seria-to-pydantic",
        "pydantic-to-serial"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcb2ac7dde6cc25aceb48c4f17a87f7f021fad463ef1eb1bf491986cd5793b52",
                "md5": "452ce0790af85122cd9acb1895c42941",
                "sha256": "5ebba27f7d2d86bf370292e0afc767dece88c4f7f0aa62d590e489ac1b4080f1"
            },
            "downloads": -1,
            "filename": "serial_weaver-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "452ce0790af85122cd9acb1895c42941",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 26326,
            "upload_time": "2024-03-10T17:07:56",
            "upload_time_iso_8601": "2024-03-10T17:07:56.998774Z",
            "url": "https://files.pythonhosted.org/packages/bc/b2/ac7dde6cc25aceb48c4f17a87f7f021fad463ef1eb1bf491986cd5793b52/serial_weaver-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5ed2da57ad7b33ea251e6a1c840e125a03df0cca417c71f515d4e58573a9c262",
                "md5": "f65e05f0c183856f8d7f1919260d639b",
                "sha256": "5cb16b47d109460f70e79497b8d45a6ab61e947effa8d7ff3821e1a83e3087ee"
            },
            "downloads": -1,
            "filename": "serial_weaver-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f65e05f0c183856f8d7f1919260d639b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 20043,
            "upload_time": "2024-03-10T17:07:59",
            "upload_time_iso_8601": "2024-03-10T17:07:59.104527Z",
            "url": "https://files.pythonhosted.org/packages/5e/d2/da57ad7b33ea251e6a1c840e125a03df0cca417c71f515d4e58573a9c262/serial_weaver-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-10 17:07:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "theandrelima",
    "github_project": "serial-weaver",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "serial_weaver"
}
        
Elapsed time: 3.41360s