Skip to main content

OpenInjectability

OpenInjectability is a transparent Python toolkit for estimating the pressure drop and predicted fluid-resistance force for a declared Newtonian liquid flowing through a specified needle.

Scientific boundary

The model is intentionally narrow:

  • In scope: idealized Hagen–Poiseuille needle-fluid resistance for Newtonian liquids with traceable viscosity, needle ID/length, barrel ID, volume, and rate.
  • Out of scope: syringe friction, break-loose force, device drivetrain losses, tissue backpressure, human factors, and non-Newtonian rheology.
  • A needle gauge label is metadata only; a traceable needle inner diameter is required.
  • The result is always named predicted fluid-resistance force, never total device force, “safe,” or “compliant.”

Non-Newtonian or otherwise unsupported inputs fail closed (typed rejection; no fallback rheology model).

Quick start

python -m pip install -e ".[dev,reports]"
openinjectability assess examples/formulation.csv `
  --config examples/assessment.json `
  --results assessment.json `
  --report assessment.md `
  --plot force-vs-needle.png `
  --audit-bundle audit.zip

PDF and plot output require the reports extra. Markdown and HTML reports require no optional dependency beyond the core install.

openinjectability version
openinjectability schema --format json
openinjectability validate-input examples/formulation.csv
openinjectability validation-status --json
openinjectability assess-one --viscosity-value 35 --viscosity-temperature 25 `
  --use-temperature 25 --rheology-evidence RHEO-1 --needle-id 0.21 `
  --needle-length 12.7 --needle-source drawing --barrel-id 6.35 `
  --barrel-source syringe --volume 2 --injection-time 15

Literature / experimental panel comparison

Compare a panel JSON of measured fluid-side force (or pressure × barrel area) to the model. Report status is only experimental_comparison or insufficient_data — this command never claims independently_validated and does not advance package validation_status.

openinjectability validate-experimental `
  validation/experimental/panel_allmendinger2014_glycerol_digitized.json `
  --out validation/experimental/reports/allmendinger2014_digitized

Panel schema and rules: validation/experimental/README.md.

Documentation: docs/scientific-basis.md, docs/input-schema.md, docs/interpretation.md, docs/roadmap.md, docs/phase-status.md, VALIDATION.md, PROJECT_SPECIFICATION.md, project.md.

Backend engine API

For services, notebooks, or another application backend, use the in-memory engine. It does not read files, produce plots or reports, or invoke the CLI. It preserves the same Newtonian-only scientific boundary as the command line.

from openinjectability import AssessmentInput, OpenInjectabilityEngine

engine = OpenInjectabilityEngine()
result = engine.assess(case)  # `case` is a validated AssessmentInput
batch = engine.assess_batch([case_a, case_b])
metadata = engine.metadata.to_dict()

assess_batch preserves accepted input order and records each invalid or unsupported case as a typed RejectedAssessment; it never applies a fallback rheology model. The returned value remains the predicted fluid-resistance force, not total device force.

Status

Version 0.1.0 is alpha. Development status on PyPI classifiers is 3 - Alpha.

Area State
Phases A–C (hardening, spec completion, release gates) Complete
Equations / internal reference cases internal_validation (unit-tested)
Independent experimental validation Pending — package experimental_validation_pending
Literature comparison (Allmendinger 2014 digitized panel) Report status experimental_comparison only; not independently_validated
Public PyPI release (Phase E) Blocked on independent D + credentials
  • Do not describe this release as experimentally validated.
  • Digitized figures, geometry setups from papers, or exploratory literature comparisons under validation/experimental/ are not accepted independent experimental validation evidence.
  • See VALIDATION.md for the claims-to-evidence map and status vocabulary, and docs/phase-status.md for phase tracking.

Metadata

Release files for openinjectability 0.1.0

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

Source distribution (sdist)

Source distribution for openinjectability 0.1.0
File Size Uploaded Provenance Actions
openinjectability-0.1.0.tar.gz 33.0 kB Without provenance Details for openinjectability-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for openinjectability 0.1.0
File Interpreter ABI Platform Actions
openinjectability-0.1.0-py3-none-any.whl Python 3 none any Details for openinjectability-0.1.0-py3-none-any.whl

Total release size: 61.5 kB

Release files / openinjectability-0.1.0.tar.gz

Download URL openinjectability-0.1.0.tar.gz
Size 33.0 kB
Tags Source
SHA-256 checksum
How to use checksums
95007f68b1fb4027c91aee09c1ebe13f79bc720506ba19c93c04981adc23f64f
BLAKE2b-256 checksum
How to use checksums
282d1888e3914aa8e31f7545ed89ebc6ebd76bafb9cb0a471d41ca42e7cf5e22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / openinjectability-0.1.0-py3-none-any.whl

Download URL openinjectability-0.1.0-py3-none-any.whl
Size 28.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
410eb83dd464e70a30c3aa3f3942b5cb93bec5747b43cdc193e73c9c86468e81
BLAKE2b-256 checksum
How to use checksums
67170ae99df86cedaca415c92b5d6ac93bf4db4f0a2b4555fcc8bc92ec2c54b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Security for openinjectability 0.1.0

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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