OpenUnderstand
An open-source implementation of the SciTools Understand Python API, for Java.
Understand reads a codebase and lets you ask questions about it -- which methods call this one, what does this class contain, how complex is this function. The API is good. The analysis is closed: the database format is proprietary, the API source is not published, and it needs a licence.
OpenUnderstand reimplements that API on top of an ANTLR4 Java parser and a SQLite database, so the same scripts run without one.
import openunderstand.ounderstand as und
db = und.open("myproject.udb")
for cls in db.ents("Class"):
print(cls.longname())
for ref in cls.refs("Define", "Method"):
print(" ", ref.ent().name(), "at line", ref.line())
That is Understand's API, unchanged. Same class names, same method signatures, same kind names.
Install
pip install openunderstand
Python 3.9 to 3.14. On Linux x86_64, macOS arm64 and Windows x64 that wheel carries the C++ parse accelerator, which is 7.8x faster at parsing and takes about a third off a full analysis. Everywhere else the pure-Python ANTLR runtime is used instead and everything works the same, just slower -- both engines produce byte-identical databases.
Optional extras:
| Extra | For |
|---|---|
openunderstand[speedy] |
tools to build the C++ parser accelerator from source |
openunderstand[mcp] |
the MCP server, so an assistant can query your code |
From a checkout instead:
git clone https://github.com/m-zakeri/OpenUnderstand
cd OpenUnderstand
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
Build a database
Point it at a directory of Java source:
python openunderstand/ounderstand/openunderstand.py \
-r /path/to/java/project \
-dba /path/for/database \
-dbn myproject.udb \
-l /path/for/app.log
| Flag | Meaning |
|---|---|
-r |
source directory to analyse |
-dba |
directory to write the database into |
-dbn |
database filename |
-e |
C++ (fast) or Python parser backend |
-l |
log file |
Or from Python:
from openunderstand.ounderstand.openunderstand import start_parsing
start_parsing(
repo_address="/path/to/java/project",
db_address="/path/for/database",
db_name="myproject.udb",
engine_core="C++",
log_address="/path/for/app.log",
)
The result is a .udb file. Despite the name it is plain SQLite -- open it with
any SQLite tool if you want to poke at the rows directly.
How correct is it?
Honestly measured, not claimed. Every release is compared against a licensed SciTools Understand install on the same source, entity by entity, reference by reference, metric by metric.
Current agreement, over thirteen Java systems: 2,370,698 of Understand's references and 178,077 of its entities.
| precision | recall | F1 | |
|---|---|---|---|
| References, pooled | 0.989 | 0.990 | 0.990 |
| References, lowest subject | 0.979 | 0.977 | 0.981 |
| Entities, pooled | 1.000 | 1.000 | 1.000 |
Every subject, every one of 77 reference kinds and every one of 120 entity kinds scores at least 0.9 on precision, recall and F1, pooled and one subject at a time. Entities match on kind and long name: 178,075 of Understand's 178,077 are found, with 8 extra.
Metrics are compared the same way: an entity's metric is a hit when it equals
Understand's value. All 62 metrics both tools compute score F1 0.9 or better
on every subject. Per subject, macro F1 runs 0.986 (jenetics) to 1.000
(calculator_app); org.json is 0.991. The lowest single metric is class coupling
(CountClassCoupled), at 0.900 on jenetics and 0.907 on ganttproject and
jhotdraw.
Three of the subjects, for comparison with earlier releases:
| calculator_app | org.json | TheAlgorithms | |
|---|---|---|---|
| Understand references | 586 | 70,518 | 53,793 |
| Reference precision / recall | 1.000 / 1.000 | 0.997 / 0.998 | 0.979 / 0.986 |
| Metric macro F1 | 1.000 | 0.991 | 0.992 |
Understand's own rows are kept, including its references into the JDK: a call
to java.lang.String.trim is part of the answer. Both sides are scoped the
same way. Entities nothing in the project declares (JDK and library types,
placeholders) are set aside on our side unless Understand's dump names them
too. Seven files Understand 7.0 misparses (case null, default ->, a type
annotation after type parameters, import module) are set aside on both
sides.
docs/parity.md has the per-kind breakdown.
The comparison is the specification: what the real tool outputs is what decides whether a reference is right. Understand must be installed and licensed, so it is not part of this repository -- ask if you want to run it.
tests/ holds unit tests for the pass rules that comparison established. They
need no database and run in about a second each:
for t in tests/test_*.py; do .venv/bin/python -W ignore "$t"; done
Re-analysing after an edit
A full build is not the only way in. update_files() re-analyses the files you
name and every file that depends on them, deleting each one's previous
contribution first:
from openunderstand.oudb import api
db = api.open("myproject.udb")
api.update_files(["/path/to/java/project/src/Foo.java"],
source_root="/path/to/java/project")
It reproduces what a rebuild of the same source would write, which is the point -- an update that only ever adds leaves a renamed method in the database under both names.
How fast is it?
On the 85-file org.json benchmark, on one ordinary Linux machine:
| OpenUnderstand | Understand | |
|---|---|---|
| Full analysis | 14.1s | 7.6s |
| Full analysis, 4 workers | 10.2s | -- |
| Re-analyse one changed file | 1.2s | 3.1s |
Understand is C++ over a purpose-built store, so a full build being within about 1.4x of it is the interesting part -- and re-analysing after an edit, which is what an editor integration actually does, is faster here, because it does less work rather than doing the same work quickly.
Pass jobs= to openunderstand.ounderstand.runner.runner() for the parallel
build, or set OU_JOBS. Workers only parse and collect and one process writes,
so the database is byte-identical whatever the worker count -- which is also
why more than about four workers buys nothing.
Use it from an assistant
An MCP server ships with the package:
pip install "openunderstand[mcp]"
{"mcpServers": {"openunderstand": {"command": "openunderstand-mcp"}}}
Seven tools (analyze, open_database, update, list_entities,
entity_references, entity_metrics, list_kinds), four resources exposing the kind vocabulary
and metric names, and three prompts (review_class, complexity_hotspots,
trace_callers) -- so an assistant can analyse a Java project and ask what
calls what, without knowing the schema. See docs/mcp.md.
Use it from IntelliJ IDEA
idea-plugin/ builds a Java Metrics tool window: analyse the open project,
sort by any metric, browse the symbol table and any entity's references,
double-click to jump to the declaration, export CSV. It runs the analysis in a
Python subprocess, in a private virtualenv it builds and installs itself.
cd idea-plugin && gradle buildPlugin # then install the zip from disk
See docs/idea-plugin.md.
What it does not do
- Java 9-25 is analysed, measured against Understand. Records, sealed
types and
permits, pattern variables and record patterns,var(including lambda parameters), switch expressions, local enums and interfaces, andmodule-info.javaare modelled the way Understand models them, checked on jenetics' incubator module and a hand-written probe. Java 25 compact source files (top-level methods) do not parse;import moduleparses but cannot be checked, because Understand 7.0 itself does not parse it. - No external analysis. The JDK and third-party jars are not parsed. JDK types and members appear only where the project uses them, resolved from a generated index of the JDK's public signatures (GraalVM 21.0.2, the JDK Understand analyses against). A third-party class is a name and nothing more.
- Close, not identical. 97.7 to 100% of Understand's references are
reproduced at the exact position, at 97.9 to 100% precision, depending on the
subject. Class coupling is the weakest metric, at 0.900 to 1.000. Understand
infers the types of implicit lambda parameters (
(a, b) -> ...) and this project does not, which accounts for most of what is left. 46 of the 49 public API methods are implemented. - Silence, not refusal, on what is missing. The three unimplemented methods
--
Db.close,Db.lookup_uniquename,Violation.add_fixit_hint-- returnNone. Querying a reference kind no pass emits returns an empty list, which reads exactly like an entity that has none.NotImplementedErroris not raised anywhere in the query API, whatever this file used to say.
Documentation
| Getting started | install, build, query |
| API reference | every class and method, and what is missing |
| Kinds | the 237 entity and 106 reference kinds |
| Architecture | how a file becomes rows; how to add a pass |
| Parity | measured agreement with Understand |
| MCP server | query your code from an assistant |
| IntelliJ IDEA plugin | metrics in a tool window |
Published at m-zakeri.github.io/OpenUnderstand.
Contributing
Read docs/architecture.md first -- particularly the rule that kind ids are positions and must always be resolved by name.
Changes to the analysis are judged against Understand, not against opinion. If you can run the comparison, report recall and precision before and after -- a change that raises recall by tanking precision is not an improvement. If you cannot, say what you expect to change and it will be measured for you.
Pull requests target the dev branch.
Credits
Started at the IUST Reverse Engineering Research Laboratory. Uses ANTLR4, peewee, and a labelled fork of the grammars-v4 Java grammar.
Metadata
Release files for openunderstand 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openunderstand-0.7.0.tar.gz | 909.6 kB | Details |
Built distributions (wheels)
Total release size: 41.6 MB
Release files / openunderstand-0.7.0.tar.gz
| Download URL | openunderstand-0.7.0.tar.gz |
|---|---|
| Size | 909.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1cca8b317bee18a2d9451f69752c020ded05421fb4048bfcbc4b92d9a93ca39f
|
|
BLAKE2b-256 checksum How to use checksums |
1c637ab51f8f982afd049a9a876bd0ff9ff086c32eedb89553ff9850561ee61a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp314-cp314-win_amd64.whl
| Download URL | openunderstand-0.7.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4120058961861bb6545b853a74cfddd7047965858b7f66f38153f95d279c96f4
|
|
BLAKE2b-256 checksum How to use checksums |
a1e5561e0db4dcfb6eba8b2bef4ad08948d8f9d0e2757e8121d9b9d319bbf97a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openunderstand-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f8842912e8ce94d369f0cd312d562c7bc2ddb35c51c3607afa0f9e1303ef4983
|
|
BLAKE2b-256 checksum How to use checksums |
7f31172d2ced697d96853aa50376bf5617870f6b338e57ae2e25a570f5b91ac9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | openunderstand-0.7.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f067f12a1785f802c62babfc9713a3de5c70239d4bb9f5d527665c4bef01afca
|
|
BLAKE2b-256 checksum How to use checksums |
4d673eb513123c80f203b75ab888378a0b33f7f9a1d1451f01fed38458bd689a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp313-cp313-win_amd64.whl
| Download URL | openunderstand-0.7.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
23dfa8922d6e506157a895eee40c2018fea053c46ab5805fbdf91dbbea069f56
|
|
BLAKE2b-256 checksum How to use checksums |
52275caf3fb931c6e113a078ddb3855c0ecc2a5fa6027bf70e14198268738261
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openunderstand-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5b55945f43ef78823d18d7ef387eb970a590987e40d0087e995e5ad1c03090af
|
|
BLAKE2b-256 checksum How to use checksums |
21586e763c1d70a7af2a986dfaf44aa280944e7bd490523682e1f48dce76e2ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | openunderstand-0.7.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8533cc4223f8ff18c60580860fc1946be8afff2c4c004bc0a83841935d0ab0d1
|
|
BLAKE2b-256 checksum How to use checksums |
8ff60839d7cc5ab2843e62605d426b07e50420003c48f756cc83c205e6a3e382
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp312-cp312-win_amd64.whl
| Download URL | openunderstand-0.7.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3f3f503c174470bf9eaf1213eeedf286eb02e996386b7c9760520b52d1d54f9b
|
|
BLAKE2b-256 checksum How to use checksums |
0ae5b18480a556f4f213b4289592d3ec5d28f25f2a63518c200487adda831732
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openunderstand-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c0d831c5cbe98cf2e9ad25f222dc86957d561f65743c392ba00aa93eeeb659c1
|
|
BLAKE2b-256 checksum How to use checksums |
55f01298a362b7244fe8035e467d1cf610cbac7fbe5aefd5a596fc672463b0b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | openunderstand-0.7.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f1426db2dcc5f11fafe22446c33050ebc0bed5a8eafeaf864b29731b56a7f923
|
|
BLAKE2b-256 checksum How to use checksums |
71071dc2100dbe6b2763e9a9af7f0fdf30428387ecbfa1ef8b0f51489f5e65ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp311-cp311-win_amd64.whl
| Download URL | openunderstand-0.7.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
71f150114867cf62c46d22102f8a8c57c714a8948104df9de0e14f3924c1b364
|
|
BLAKE2b-256 checksum How to use checksums |
85e823fa6a596068e9a65ac750db20469f947be8e34eaa5c3169597cffc906e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openunderstand-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4a5f86da28787f489ba8c246837fcaa787365db0ef17051d993613e6c95e37f9
|
|
BLAKE2b-256 checksum How to use checksums |
6bd3dfb9143bf15dccc465d28be68250759bd374635e6a0ebde2a25d6cfe951b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | openunderstand-0.7.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bc57240162ce7d395614e3eb84cbd362992aca7d278f2edfce40c018f9c9c94e
|
|
BLAKE2b-256 checksum How to use checksums |
a6912620db3f75cdacdf8409945a6b6f7bf114ddf9ce5e76888f536dc972e571
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp310-cp310-win_amd64.whl
| Download URL | openunderstand-0.7.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
edb561ee0322f593956116c3825fc5df935f75d030f3339cadc31fb490c75526
|
|
BLAKE2b-256 checksum How to use checksums |
58f7c273fb49f1fa532b9c3951751ce45b61b6c7df2d6b36eb01d656077a2a30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openunderstand-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
982bc8e6017402952149a7e9196ba07c04c8282f2e1e02cb5bf9f9c4b2403cc1
|
|
BLAKE2b-256 checksum How to use checksums |
26a28544df8b62f9fb4ad1073b05443a1e168e3c5a5ce93c349e4157cf4c8375
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | openunderstand-0.7.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d1bd713662fc482d44372da6b22f0a029a16d120f953dcad75744c2e28a622b1
|
|
BLAKE2b-256 checksum How to use checksums |
8f8971544d8eed3885fdc93f226d1f6e0616fa470062a1b70b67afbb78dace3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp39-cp39-win_amd64.whl
| Download URL | openunderstand-0.7.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e229a0afc8508b2c70bdda0b66850c75e7cf6f19cb4c0206cf73b4739f4c1116
|
|
BLAKE2b-256 checksum How to use checksums |
3882c624ce4363c00e1d5e7841e28d9af29cb0623506b894b5a791efa0f84473
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openunderstand-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a08d73e29ade3e14496c9543925e50b193ca668cbc20790833e95f2785433144
|
|
BLAKE2b-256 checksum How to use checksums |
0e1946b7e319e05ee169f7856e06943b30484018968d1df9433d98e8c5291f78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / openunderstand-0.7.0-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | openunderstand-0.7.0-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bbb5e5b8883b73ec68a021137d4f39ca60d021f6ef82c3a152849a9ddc786d43
|
|
BLAKE2b-256 checksum How to use checksums |
e65ed9424e6e83d59b4c87dab3a5aa7ec31ec3bb8a5397cbd76e3c45a891ee63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency log