Skip to main content

Python API and CLI tool to read Parkitect's blueprints metadata.

Project description

Parkitect Blueprint Reader

Python API and CLI tool to read Parkitect's blueprints metadata.

Python versions Version License

PyPI - Documentation - Source code - Issue tracker - Changelog

Prerequisites

  • Python >= 3.10

Installation

From PyPi

pip install parkitect-blueprint-reader

Locally

After cloning/downloading the repo:

pip install .

Usage

API

The API consists of one load() method, which reads blueprint metadata from the given binary file-like object and returns the parsed data as a dictionary.

import parkitect_blueprint_reader
from pprint import pprint

try:
    with open('coaster.png', 'rb') as fp: # Note it's opened in binary mode
        pprint(
            parkitect_blueprint_reader.load(fp)
        )
except Exception as e:
    print(e)

CLI

The CLI reads metadata from the given blueprint filename, then writes the parsed data as a JSON to stdout.

parkitect-blueprint-reader coaster.png

The --pretty option may be used to pretty-print the outputted JSON.

Data format

Data is stored in blueprints as follows, using the least significant bits steganography technique (described in the reference documents below):

  • A three-bytes magic number: SM\x01 (Parkitect's main developer initials)
  • Size (little-endian unsigned int), in bytes, of the gzippped content to be read
  • A 16-bytes MD5 checksum
  • The actual gzippped data, which is Size bytes long

References

Development

Getting source code and installing the package with dev dependencies

  1. Clone the repository
  2. From the root directory, run: pip install -e ".[dev]"

Releasing the package

From the root directory, run python setup.py upload. This will build the package, create a git tag and publish on PyPI.

__version__ in parkitect_blueprint_reader/__version__.py must be updated beforehand. It should adhere to Semantic Versioning.

An associated GitHub release must be created following the Keep a Changelog format.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parkitect_blueprint_reader-1.1.2.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

parkitect_blueprint_reader-1.1.2-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file parkitect_blueprint_reader-1.1.2.tar.gz.

File metadata

File hashes

Hashes for parkitect_blueprint_reader-1.1.2.tar.gz
Algorithm Hash digest
SHA256 8a1586f84d18f5d8939b95493b85ff4cb77c380e873294245e500b93fb57358c
MD5 1be5897c292467b21efe91cac6f4c5e0
BLAKE2b-256 ed5005f994e84a96cbba432b1f8bcb54d47f03d1585eab3766a59941004ddc58

See more details on using hashes here.

File details

Details for the file parkitect_blueprint_reader-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for parkitect_blueprint_reader-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 afe5e720fddae56425ec519a9db85ce24211343be825639b6ae72719a968a47f
MD5 7d5155258d97732c3788d560bda08f74
BLAKE2b-256 dc01ed8f96dc1ea90ef0af3027510da63ae698e847c52e58f28dff2edeb68793

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page