Skip to main content

A framework for developing data models, including schema development and documentation.

Project description

Release

Build and Test

Web Documentation

Lattice

A Python package that provides support for a schema-based building data model framework, currently under development as ASHRAE Standard 232P, where schema are described in compliant YAML source files. Lattice performs:

  • Data model validation: Ensures the YAML schema source files are well-formed.
  • Schema generation: Translates the YAML schema source files into equivalent JSON Schema.
  • Data file validation: Validates data files against the generated JSON Schema and additional validation requirements not supported by JSON Schema (e.g., reference checking).
  • Data model documentation: Generates web documentation of the data model from the YAML schema source files and templated markdown files (requires Go, Hugo, and Node.js). This web documentation can be automatically deployed to GitHub pages.

Future additions under development include:

  • Generation of PDF documentation of the data model.
  • Generation of C/C++ source code for processing compliant data files.

Installing

To install Lattice, simply:

pip install lattice

To generate data model documentation, you'll also need to install:

Example Usage

lattice is Python package defining the Lattice class. Lattice relies on a predetermined structure of subdirectories:

  • schema (optional): Contains YAML source schema files describing the data model. Alternatively, if YAML source schema files are not provided in a "schema" directory, they must be in the root directory.
  • docs (optional): Contains markdown templates that are used to render model documentation. An optional subdirectory of "docs" called "web" contains additional content required for generating the web documentation including configuration settings, graphics, and supplementary content.
  • examples (optional): Example data files compliant with the data model.

The Lattice class is instantiated with the following parameters:

  • root_directory: This is the directory containing the source subdirectories.The default is the current working directory.

  • build_directory: This is the path to the directory where the content related to lattice is stored. The content itself will be located in a subdirectory determined by build_output_directory_name (below). It includes intermediate meta-schema(s), JSON Schema(s), generated markdown files, and the generated web documentation. The default is root_directory.

  • build_output_directory_name: The name of the lattice output content directory. The default is ".lattice/".

  • build_validation: A boolean indicator to automatically generate meta-schema, validate the data model, generate the schemas and validate the example data files upon instantiation. If false, these tasks must be executed after instantiation using the generate_meta_schemas, validate_schemas, generate_json_schemas, and validate_example_files methods. The default is True.

The repository's examples directory contains sample data models exemplifying different model options, such as Data Group Templates or scoped references.

More complete examples of projects using the ASHRAE Standard 232P framework include:

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

lattice-0.1.4.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

lattice-0.1.4-py3-none-any.whl (39.3 kB view details)

Uploaded Python 3

File details

Details for the file lattice-0.1.4.tar.gz.

File metadata

  • Download URL: lattice-0.1.4.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.9.16 Linux/5.15.0-1024-azure

File hashes

Hashes for lattice-0.1.4.tar.gz
Algorithm Hash digest
SHA256 56a0bdfcd6d25756428b4ffbe3101b098ef8aed486e0a47d0bb51458716c9bd1
MD5 b82a547bd90df95ba725900b1710b290
BLAKE2b-256 37afeed5c741b4a051a2a79c63c2314dc179b3edd7220ff614273bb6c2ce57c3

See more details on using hashes here.

File details

Details for the file lattice-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: lattice-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 39.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.9.16 Linux/5.15.0-1024-azure

File hashes

Hashes for lattice-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5755e7eaee1d83cb5960487df7c65e0136917b5bf2d3f076d4df8c3d6fc7ae9b
MD5 75af9d5ae593dd54aaa81117f1a9cd55
BLAKE2b-256 f435d95b9c3e73c64c97532b29e2238154ea1dff79a171395a954a204f5d3b2b

See more details on using hashes here.

Supported by

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