Metadata-Version: 2.1
Name: a7p
Version: 0.0.5b1
Summary: Simple python3 wrapper for .a7p files
Home-page: https://github.com/o-murphy/a7p_transfer_example
Download-URL: https://github.com/o-murphy/a7p_transfer_example
Author: o-murphy
Keywords: protobuf,archer,a7p
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: google ==3.0.0
Requires-Dist: protobuf ==4.24.0

# Table of Contents

- [Description](#project-overview)
- [Instalation](#instalation)
- [Usage](#usage)

## Description

Simple python3 wrapper for .a7p files

## Instalation

#### As common from PyPi:
```bash
pip install a7p
```

#### or latest from repository:
```bash
git clone https://github.com/o-murphy/a7p_transfer_example
cd a7p_transfer_example/a7p_py
python setup.py install
```

This command builds the Docker image and tags it as `go-server`.

## Usage

```python
import logging
from a7p import A7PFile, A7PDataError
from a7p.factory import A7PFactory

# open file in binary mode
with open('data/test.a7p', 'rb') as fp:

    # read data from file
    try:
        profile_opj = A7PFile.load(fp)
    except A7PDataError as exc:  # raises if md5 crc not match
        logging.error(exc)

# accessing attributes as for default protobuf payload
profile_name = profile_opj.profile.profile_name    

# data conversion to common types
as_json = A7PFile.to_json(profile_opj)
as_dict = A7PFile.to_dict(profile_opj)
from_json = A7PFile.from_json(profile_opj)
from_dict = A7PFile.from_dict(profile_opj)

# saving builded profile
with open('data/test.a7p', 'rb') as fp:
    A7PFile.dump(profile_opj, fp)

    
# creating a new a7p Payload
payload = A7PFactory(
    meta=A7PFactory.Meta(
        name="test profile name",
    ),
    bullet=A7PFactory.Bullet(
        weight=175,
        length=0.9
    ),
    distances=A7PFactory.DistanceTable.LONG_RANGE
)
with open('data/test.a7p', 'rb') as fp:
    A7PFile.dump(payload, fp)
```
