Skip to main content

Purpose

This repository will be published as a package and will contain the interfaces/ specifications and some testing tools that will form the basis of the Pycelium project. All packages designed to work within the Pycelium project will work with these interfaces for interoperability, and the testing tools should be used to verify specification compliance.

Installation

pip install pycelium-specifications

Use

Each specification includes a doc string introducing the specification and how the testing works.

Each specification includes a testing tool that can be used by importing the protocol(s) and the check_module function. The check_module function is called by passing in a dict mapping implementation classes to protocols. For example:

from sepcifications.something import SomethingProtocol, check_module
from someimplementation import SomethingClass
import someimplementation

check_module(someimplementation, {SomethingClass: SomethingProtocol})

The check_module function runs high-level tests on the module, then it calls check_implementation for each (key, value) pair in the dict parameter, and this then runs a test suite on the implementation class. Any failures to meet the specification will be reported.

Note that some types of implementation failures will prevent the full test suite from running, e.g. failure to instantiate.

There are two types of specification requirements: must-haves and should-haves. Any failure to meet a must-have requirement will be reported as an ImplementationError. Any detectable failure to meet a should-have requirement will be reported as an ImplementationNote. Not all should-have requirements can be automatically detected, e.g. lack of documentation or test coverage for additional features.

Current Specifications

The following specifications are currently included:

  • merkletree: a specification showing what a Merkle tree should do

ISC License

Copyleft (c) 2023 k98kurz

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyleft notice and this permission notice appear in all copies.

Exceptions: this permission is not granted to Alphabet/Google, Amazon, Apple, Microsoft, Netflix, Meta/Facebook, Twitter, or Disney; nor is permission granted to any company that contracts to supply weapons or logistics to any national military; nor is permission granted to any national government or governmental agency; nor is permission granted to any employees, associates, or affiliates of these designated entities.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Metadata

Release files for pycelium-specifications 0.0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycelium-specifications 0.0.2.2
File Size Uploaded Provenance
pycelium_specifications-0.0.2.2.tar.gz 6.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pycelium-specifications 0.0.2.2
File Interpreter ABI Platform
pycelium_specifications-0.0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 14.3 kB

Release files / pycelium_specifications-0.0.2.2.tar.gz

Download URL pycelium_specifications-0.0.2.2.tar.gz
Size 6.3 kB
Tags Source
SHA-256 checksum
How to use checksums
187c7f381446689d180869bb077eb1114d6578b010ef78487f1310f83a9921e5
BLAKE2b-256 checksum
How to use checksums
0aef0c76392915664e2fb98782fe38b6fb56d4868a6d89a4b2c559190f3ecae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.0

Release files / pycelium_specifications-0.0.2.2-py3-none-any.whl

Download URL pycelium_specifications-0.0.2.2-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7cb688fb3486523c3c555e7ac760808015d3639baeff44cad3de77b78fbff16c
BLAKE2b-256 checksum
How to use checksums
01147a329beda309ff42055c620f5b49471431cb8a1aa86e865c325901b66a8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.0

Security for pycelium-specifications 0.0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page