Skip to main content

Exabyte Source of Schemas and Examples

Reason this release was yanked:

Published with an empty package, due to setup.py misconfiguration

Project description

ESSE

Exabyte Source of Schemas and Examples (ESSE) contains data formats and associated examples specifically designed for digital materials science 1.

Installation

ESSE can be used as a Node.js or Python package on the server side. Please note that schemas and examples are unavailable on the client side (JS).

Python

ESSE is compatible with Python 2.7 up until version 2.3.0, and Python 3.6+ afterward. It can be installed as a Python package either via PyPI or the repository as below.

PyPI

pip install esse

Repository

virtualenv .venv
source .venv/bin/activate
pip install -e PATH_TO_ESSE_REPOSITORY

Node

ESSE can be installed as a Node.js package either via NPM or the repository as below.

NPM

npm install @exabyte-io/esse.js

Repository

Add "esse-js": "file:PATH_TO_ESSE_REPOSITORY" to package.json.

Usage

ESSE contains separate but equivalent interfaces for Python and Javascript. The package provides ESSE class that can be initialized and used as below.

Python

from esse import ESSE

es = ESSE()
schema = es.get_schema_by_id("material")

Node

import {ESSE} from "esse-js";

const es = new ESSE();
const schema = es.getSchemaById("material");

Structure

ESSE contains 3 main directories, schema, example and src outlined below.

Schema

The schema directory contains the schemas specifying the rules to structure data. A set of core schemas, outlined below, are defined to facilitate the schema modularity.

Primitive

Primitive directory contains a set of custom primitives that extends default standard primitive types allowed by schema, such as String and Number. Primitives are solely defined by the default primitives and can not be re-constructed from each other.

Abstract

Abstract directory contains unit-less schemas that are constructed from default and custom primitives.

Reusable

Reusable directory contains the schemas that are widely used in other schemas to avoid duplication, constructed from the abstract and primitive schemas.

Reference

Reference directory contains the schemas defining the rules to structure the references to data sources.

Example

This directory contains the examples formed according to the schemas and implements the same directory structure as the schema directory.

src

This directory contains Python and Javascript interfaces implementing the functionality to access and validate schemas and examples.

Tests

Execute the following command from the root directory of this repository to run the tests. The script will run both Javascript and Python tests in which examples are validated against the corresponding schemas.

bash run-tests.sh

The script has been tested with node.js v12.16.3 and v8.17.0 as well as Python version 2.7 (up to version 2.3.0) and 3.6+ (for version 2020.10.19 and later).

Contribution

This repository is an open-source work-in-progress and we welcome contributions. We suggest forking this repository and introducing the adjustments there, the changes in the fork can further be considered for merging into this repository as it is commonly done on Github #links.

Best Practices

  • Use unique IDs for schemas. One can run sh refactor.sh to automatically set the IDs and reformat examples.

  • Do not use circular references in the schemas, instead leave the type as object and add explanation to description.

Links

1: Data-centric online ecosystem for digital materials science

2: GitHub Standard Fork & Pull Request Workflow

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

esse-2020.10.19.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

esse-2020.10.19-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file esse-2020.10.19.tar.gz.

File metadata

  • Download URL: esse-2020.10.19.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0

File hashes

Hashes for esse-2020.10.19.tar.gz
Algorithm Hash digest
SHA256 c2149dc9eee39da4912cc8e4899476f1633bb6e36f5e469cc43fe660262e8f77
MD5 5dc5b817df22f4738c2c0a0f8e76256f
BLAKE2b-256 29a8a7a7d75153d1c035db87ba50b67d24eda54f75d47860593650227397d8d4

See more details on using hashes here.

File details

Details for the file esse-2020.10.19-py3-none-any.whl.

File metadata

  • Download URL: esse-2020.10.19-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0

File hashes

Hashes for esse-2020.10.19-py3-none-any.whl
Algorithm Hash digest
SHA256 053347c0fdb08300c13ba44ae54612cee969f41b4e56297d80013c798d80cf40
MD5 b95beed7e3a4ff77f9c923e7a3c14cdc
BLAKE2b-256 e66e30250cb212b35d5bbaa5c433f48fb48a02f1c736b580f801e4278899525f

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