Skip to main content

Configurable SHA merkle tree generator for directory structures

Project description

ibdata-pymerkle

A module for producing and/or reading IBData-compatible Merkle trees for directory structures.

Features

Installation

Using uv (recommended)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

uv tool install ibdata-pymerkle # This is usually what you want to do

# or install the package
uv pip install ibdata-pymerkle

# Or install in development mode with all dependencies
uv sync --group dev

Traditional pip

pip install ibdata-pymerkle

Usage

Command Line

Basic Usage

ibdata-pymerkle --help # Show help

ibdata-pymerkle 

Using installed command

# Generate terraform configuration from terraform.tfvars
ibdata-pymerkle

# Or run directly with uv
uv run ibdata-pymerkle

Python API

from ibdata_pymerkle.merkle_tree import MerkleTree

result = "TODO"
print(result)

Development

This project uses uv for dependency management and building.

Setup Development Environment

It is highly recommended that you use the devcontainer defined in .devcontainer for a consistent development environment.

Otherwise, you will need uv and make installed.

# Install development dependencies
uv sync --group dev

Running Tests

# Run simple tests (no dependencies required)
uv run python -m tests.simple_test_merkle

# Run full test suite
uv run --group test pytest tests/ -v

# Run tests with coverage
uv run --group test pytest tests/ --cov=src --cov-report=term-missing

# Or use make commands
make test
make test-cov

Code Quality

# Format code
uv run --group lint black src tests
uv run --group lint ruff format src tests

# Lint code
uv run --group lint ruff check src tests

# Type check
uv run --group lint mypy src

# use make commands
make format
make lint
make type-check

Building and Publishing

# Build the package
uv build

# Install locally
uv pip install .

Makefile Commands

For convenience, use the included Makefile:

make help            # Show all available commands
make dev-install     # Install with development dependencies  
make test            # Run all tests
make test-simple     # Run simple tests only
make test-script     # Test the direct ibdatapy script
make install-script  # Install ibdatapy script globally
make uninstall-script # Remove installed script
make lint            # Run code linting
make format          # Format code
make type-check      # Run type checking
make build           # Build the package
make clean           # Clean build artifacts

Configuration

The tool expects a configuration file

TODO

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

See the LICENSE file for full license text.

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

ibdata_pymerkle-0.1.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

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

ibdata_pymerkle-0.1.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file ibdata_pymerkle-0.1.0.tar.gz.

File metadata

  • Download URL: ibdata_pymerkle-0.1.0.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for ibdata_pymerkle-0.1.0.tar.gz
Algorithm Hash digest
SHA256 30d94b27fc623c6dc370894e1fa0505e9165776af2aa999fe78e39b98d6cbb5f
MD5 59256ce767859c7ff903b59f05fc9e31
BLAKE2b-256 390d8cfc6d228ac6afcbf07727acf48ae62a792870d7d3b184c53e1c953a6610

See more details on using hashes here.

File details

Details for the file ibdata_pymerkle-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ibdata_pymerkle-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92ad4c5ebf752d6da6f5fe34a062f4d3ad5aa2f8d3e564805fdcb60f08d65007
MD5 66c6041d63f701aa2a5e2f1efeaf9db9
BLAKE2b-256 e51d42338c42fd54840ebb135263f62ea61cc6bb95f899c5ec5eb86fe5d11932

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