Metadata-Version: 2.2
Name: databrief
Version: 0.0.1.dev0
Summary: A python library for serializing dataclasses to bytes and back.
Home-page: https://github.com/blueskysolarracing/databrief
Author: Blue Sky Solar Racing
Author-email: blueskysolar@studentorg.utoronto.ca
License: MIT
Project-URL: Source, https://github.com/blueskysolarracing/databrief
Project-URL: Tracker, https://github.com/blueskysolarracing/databrief/issues
Keywords: dataclass,serialization
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: project-url
Dynamic: requires-python
Dynamic: summary

# Databrief

`databrief` is a Python library for serializing dataclasses to bytes and deserializing bytes back to dataclasses.

## Features

- Compact serialization
- Supports `int`, `float`, and `bool` field types

## Installation

```sh
pip install databrief
````

## Usage

### Dumping a Dataclass to Bytes

To serialize a dataclass instance to bytes, use the `dump` function:

```python
from databrief import dump
from dataclasses import dataclass

@dataclass
class TestData:
    a: int
    b: float
    c: bool

data = TestData(a=42, b=3.14, c=True)
serialized = dump(data)
print(serialized)
```

### Loading Bytes to a Dataclass

To deserialize bytes back to a dataclass instance, use the `load` function:

```python
from databrief import load

deserialized = load(serialized, TestData)
print(deserialized)
```

## Example

Here is a complete example:

```python
from dataclasses import dataclass
from databrief import dump, load

@dataclass
class Example:
    a: int
    b: float
    c: bool
    d: bool
    e: bool
    f: bool
    g: bool
    h: bool
    i: bool
    j: bool
    k: bool
    l: float
    m: int
    n: int
    o: bool

example = Example(1, 2.0, True, False, True, False, True, False, True, True, False, 87543653.35197087, 1351346, -46583278, True)
serialized = dump(example)
deserialized = load(serialized, Example)
print(deserialized)
```

## Contributing

Contributions are welcome! Please read our Contributing Guide for more information.

## License

Databrief is distributed under the MIT license.
