Skip to content
/ veriq Public

Lightweight requirements verification tool in Python

License

Notifications You must be signed in to change notification settings

ut-issl/veriq

Repository files navigation

veriq

PyPI PyPI - License PyPI - Python Version Test Status codecov Documentation uv Ruff

Warning

This project is in early development. The API may change in future releases.

veriq is a Python library for requirements verification and design calculation management in engineering projects. Think of it as a smart spreadsheet that tracks dependencies between calculations and automatically verifies that requirements are met.

What Does veriq Do?

When you define your engineering project with veriq, it:

  1. Organizes your design parameters - Define input data using Pydantic models
  2. Tracks calculation dependencies - Automatically resolves the order of calculations
  3. Verifies requirements - Checks that your design meets all specified requirements
  4. Exports results - Saves all inputs, calculations, and verification results to TOML files

Quick Example

Define your project in Python:

import veriq as vq
from pydantic import BaseModel
from typing import Annotated

project = vq.Project("MySatellite")
power = vq.Scope("Power")
project.add_scope(power)

@power.root_model()
class PowerModel(BaseModel):
    battery_capacity: float  # in Watt-hours

@power.verification()
def verify_capacity(
    capacity: Annotated[float, vq.Ref("$.battery_capacity")],
) -> bool:
    return capacity >= 100.0  # Minimum 100 Wh

Create an input file input.toml:

[Power.model]
battery_capacity = 150.0

Run verification:

veriq calc my_project.py -i input.toml -o output.toml --verify

Why Use veriq?

  • Type Safety - Leverage Pydantic for validated, typed design parameters
  • Dependency Tracking - Automatic resolution of calculation order
  • Requirement Traceability - Link verifications to engineering requirements
  • Reproducibility - TOML-based input/output for version control

License

MIT License

Acknowledgement

veriq originated in the shunichironomura/veriq repository, and its early development up to version v0.0.1 was supported by ArkEdge Space Inc.

About

Lightweight requirements verification tool in Python

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •