pyomnigraph


Namepyomnigraph JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
Summarypyomnigraph: Unified Python interface for multiple graph databases (SPARQL, Neo4j, Weaviate)
upload_time2025-08-03 06:07:13
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseApache-2.0
keywords sparql blazegraph database graph jena neo4j qlever rdf virtuoso weaviate
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # omnigraph
[![pypi](https://img.shields.io/pypi/pyversions/pyomnigraph)](https://pypi.org/project/pyomnigraph/)
[![Github Actions Build](https://github.com/WolfgangFahl/pyomnigraph/actions/workflows/build.yml/badge.svg)](https://github.com/WolfgangFahl/pyomnigraph/actions/workflows/build.yml)
[![PyPI Status](https://img.shields.io/pypi/v/pyomnigraph.svg)](https://pypi.python.org/pypi/pyomnigraph/)
[![GitHub issues](https://img.shields.io/github/issues/WolfgangFahl/pyomnigraph.svg)](https://github.com/WolfgangFahl/pyomnigraph/issues)
[![GitHub closed issues](https://img.shields.io/github/issues-closed/WolfgangFahl/pyomnigraph.svg)](https://github.com/WolfgangFahl/pyomnigraph/issues/?q=is%3Aissue+is%3Aclosed)
[![API Docs](https://img.shields.io/badge/API-Documentation-blue)](https://WolfgangFahl.github.io/pyomnigraph/)
[![License](https://img.shields.io/github/license/WolfgangFahl/pyomnigraph.svg)](https://www.apache.org/licenses/LICENSE-2.0)


Unified Python interface for multiple graph databases

## Docs and Tutorials
[Wiki](https://wiki.bitplan.com/index.php/pyomnigraph)

## Motivation

The graph database landscape is fragmented, with each triple store having its own APIs, deployment methods, and operational quirks. Developers and researchers working with RDF data often need to:

- **Switch between different triple stores** for performance comparisons
- **Migrate data** from one system to another
- **Test the same queries** across multiple backends
- **Deploy applications** that work with various graph databases

This leads to:
- ❌ **Duplicated effort** writing database-specific code
- ❌ **Vendor lock-in** making migrations difficult
- ❌ **Inconsistent interfaces** slowing development
- ❌ **Manual deployment** processes for each database

**pyomnigraph solves this** by providing:
- ✅ **Unified API** - Same Python interface for all supported databases
- ✅ **Standardized deployment** - Consistent Docker-based setup
- ✅ **Easy switching** - Change backends with a single parameter
- ✅ **Comparative testing** - Run identical operations across multiple stores
- ✅ **Simplified management** - Start, stop, load data with simple commands

### Supported Triple Stores

| Database | Status | Strengths |
|----------|--------|-----------|
| **Blazegraph** | 🟢 Working | High performance, easy setup |
| **Apache Jena** | 🟢 Working | Robust, standards compliant |
| **QLever** | 🟢 Working | Extremely fast queries |
| **GraphDB** | 🛑 Planned | Enterprise features, reasoning |
| **Virtuoso** | 🛑 In Progress | Mature, SQL integration |
| **Stardog** | 🛑 Planned | Knowledge graphs, reasoning |
| **Oxigraph** | 🛑 Planned | Rust-based, embedded |

Whether you're building a semantic web application, conducting research, or evaluating different triple stores, pyomnigraph eliminates the complexity of working with multiple graph database systems.

## Examples
```bash
omnigraph omnigraph --list --include-inactive --doc-format  github
```
| Active   | Name                                | Container Name       | Wikidata                                               | Image                                                                                            |   Port |   Test Port | Dataset   | User   |
|----------|-------------------------------------|----------------------|--------------------------------------------------------|--------------------------------------------------------------------------------------------------|--------|-------------|-----------|--------|
| 🟢️       | [blazegraph](http://localhost:9898) | blazegraph-omnigraph | [Q20127748](https://www.wikidata.org/wiki/Q20127748)   | [lyrasis/blazegraph:2.1.5](https://hub.docker.com/r/lyrasis/blazegraph)                          |   9898 |        7898 | kb        |        |
| 🛑       | [graphdb](http://localhost:7200)    | graphdb-omnigraph    | [Q58425577](https://www.wikidata.org/wiki/Q58425577)   | [ontotext/graphdb:9.11.2-se](https://hub.docker.com/r/ontotext/graphdb)                          |   7200 |        7700 | repo1     |        |
| 🟢️       | [jena](http://localhost:3030)       | jena-omnigraph       | [Q109376461](https://www.wikidata.org/wiki/Q109376461) | [stain/jena-fuseki:latest](https://hub.docker.com/r/stain/jena-fuseki)                           |   3030 |        7030 | ds        | admin  |
| 🛑       | [oxigraph](http://localhost:7878)   | oxigraph-omnigraph   | [Q118980507](https://www.wikidata.org/wiki/Q118980507) | [oxigraph/oxigraph:latest](https://hub.docker.com/r/oxigraph/oxigraph)                           |   7878 |        7378 | default   |        |
| 🟢️       | [qlever](http://localhost:7019)     | qlever-omnigraph     | [Q111016295](https://www.wikidata.org/wiki/Q111016295) | [adfreiburg/qlever:latest](https://hub.docker.com/r/adfreiburg/qlever)                           |   7019 |        7819 | olympics  |        |
| 🛑       | [stardog](http://localhost:5820)    | stardog-omnigraph    | [Q91147741](https://www.wikidata.org/wiki/Q91147741)   | [stardog/stardog:latest](https://hub.docker.com/r/stardog/stardog)                               |   5820 |        5320 | mydb      | admin  |
| 🛑       | [virtuoso](http://localhost:8890)   | virtuoso-omnigraph   | [Q7935239](https://www.wikidata.org/wiki/Q7935239)     | [openlink/virtuoso-opensource-7:latest](https://hub.docker.com/r/openlink/virtuoso-opensource-7) |   8890 |        8390 | KB        | dba    |

### Server Management

```bash
# Start specific servers
omnigraph -s jena --cmd start

# Restart sequence - stop remove and start
omnigraph -s jena --cmd stop rm start

# Start all configured servers
omnigraph -s all --cmd start

# Check server status
omnigraph -s blazegraph --cmd status

# Open web ui
omnigraph -s jena --cmd webui
```

### Data Operations

```bash
# Load datasets
omnigraph -s blazegraph --cmd load

# Get triple count
omnigraph -s blazegraph --cmd count

# Use test environment
omnigraph --test -s blazegraph --cmd start load
```

## Usage
### omnigraph command line
```bash
omnigraph -h
usage: omnigraph [-h] [-a] [-d] [-ds DATASETS [DATASETS ...]] [-dc DATASETS_CONFIG] [-f] [-r {turtle,rdf-xml,n3,json-ld}] [-q] [-V] [--apache APACHE]
                 [-c CONFIG] [--cmd CMD [CMD ...]] [-df DOC_FORMAT] [-l] [--test] [-s SERVERS [SERVERS ...]] [-v]

Unified Python interface for multiple graph databases

options:
  -h, --help            show this help message and exit
  -a, --about           show about info [default: False]
  -d, --debug           show debug info [default: False]
  -ds DATASETS [DATASETS ...], --datasets DATASETS [DATASETS ...]
                        datasets to work with - all is an alias for all datasets [default: ['wikidata_triplestores']]
  -dc DATASETS_CONFIG, --datasets-config DATASETS_CONFIG
                        Path to datasets configuration YAML file [default: /Users/wf/Library/Python/3.12/lib/python/site-
                        packages/omnigraph/resources/examples/datasets.yaml]
  -f, --force           force actions that would modify existing data [default: False]
  -r {turtle,rdf-xml,n3,json-ld}, --rdf_format {turtle,rdf-xml,n3,json-ld}
                        RDF format to use [default: turtle]
  -q, --quiet           avoid any output [default: False]
  -V, --version         show program's version number and exit
  --apache APACHE       create apache configuration file for the given server(s)
  -c CONFIG, --config CONFIG
                        Path to server configuration YAML file [default: /Users/wf/Library/Python/3.12/lib/python/site-
                        packages/omnigraph/resources/examples/servers.yaml]
  --cmd CMD [CMD ...]   commands to execute on servers: bash, clear, count, info, load, logs, needed, rm, start, status, stop, webui
  -df DOC_FORMAT, --doc-format DOC_FORMAT
                        The document format to use [default: plain]
  -l, --list-servers    List available servers [default: False]
  --test                use test environment [default: False]
  -s SERVERS [SERVERS ...], --servers SERVERS [SERVERS ...]
                        servers to work with - 'all' selects all configured servers [default: ['blazegraph']]
  -v, --verbose         show verbose output [default: False]
```

### rdfdump command line
```bash
rdfdump -h
usage: rdfdump [-h] [-a] [-d] [-ds DATASETS [DATASETS ...]] [-dc DATASETS_CONFIG] [-f] [-r {turtle,rdf-xml,n3,json-ld}] [-q] [-V] [--limit LIMIT] [-l]
               [--count] [--dump] [-4o] [--max-count MAX_COUNT] [--no-progress] [--output-path OUTPUT_PATH] [--tryit]

Unified Python interface for multiple graph databases

options:
  -h, --help            show this help message and exit
  -a, --about           show about info [default: False]
  -d, --debug           show debug info [default: False]
  -ds DATASETS [DATASETS ...], --datasets DATASETS [DATASETS ...]
                        datasets to work with - all is an alias for all datasets [default: ['wikidata_triplestores']]
  -dc DATASETS_CONFIG, --datasets-config DATASETS_CONFIG
                        Path to datasets configuration YAML file [default: /Users/wf/Library/Python/3.12/lib/python/site-
                        packages/omnigraph/resources/examples/datasets.yaml]
  -f, --force           force actions that would modify existing data [default: False]
  -r {turtle,rdf-xml,n3,json-ld}, --rdf_format {turtle,rdf-xml,n3,json-ld}
                        RDF format to use [default: turtle]
  -q, --quiet           avoid any output [default: False]
  -V, --version         show program's version number and exit
  --limit LIMIT         Number of triples per request [default: 10000]
  -l, --list            List available datasets [default: False]
  --count               List available datasets with triple counts[default: False]
  --dump                perform the dump [default: False]
  -4o, --for-omnigraph  store dump at default omnigraph location [default: False]
  --max-count MAX_COUNT
                        Maximum number of solutions/triples to download (uses dataset expected_solutions if not specified)
  --no-progress         Disable progress bar
  --output-path OUTPUT_PATH
                        Path for dump files
  --tryit               open the try it! URL [default: False]
```
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyomnigraph",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Wolfgang Fahl <wf@WolfgangFahl.com>",
    "keywords": "SPARQL, blazegraph, database, graph, jena, neo4j, qlever, rdf, virtuoso, weaviate",
    "author": null,
    "author_email": "Wolfgang Fahl <wf@WolfgangFahl.com>",
    "download_url": "https://files.pythonhosted.org/packages/16/a1/04e348b701e2346a5823e0998c04941a7c36fb921241b7b804e322483592/pyomnigraph-0.1.0.tar.gz",
    "platform": null,
    "description": "# omnigraph\n[![pypi](https://img.shields.io/pypi/pyversions/pyomnigraph)](https://pypi.org/project/pyomnigraph/)\n[![Github Actions Build](https://github.com/WolfgangFahl/pyomnigraph/actions/workflows/build.yml/badge.svg)](https://github.com/WolfgangFahl/pyomnigraph/actions/workflows/build.yml)\n[![PyPI Status](https://img.shields.io/pypi/v/pyomnigraph.svg)](https://pypi.python.org/pypi/pyomnigraph/)\n[![GitHub issues](https://img.shields.io/github/issues/WolfgangFahl/pyomnigraph.svg)](https://github.com/WolfgangFahl/pyomnigraph/issues)\n[![GitHub closed issues](https://img.shields.io/github/issues-closed/WolfgangFahl/pyomnigraph.svg)](https://github.com/WolfgangFahl/pyomnigraph/issues/?q=is%3Aissue+is%3Aclosed)\n[![API Docs](https://img.shields.io/badge/API-Documentation-blue)](https://WolfgangFahl.github.io/pyomnigraph/)\n[![License](https://img.shields.io/github/license/WolfgangFahl/pyomnigraph.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n\n\nUnified Python interface for multiple graph databases\n\n## Docs and Tutorials\n[Wiki](https://wiki.bitplan.com/index.php/pyomnigraph)\n\n## Motivation\n\nThe graph database landscape is fragmented, with each triple store having its own APIs, deployment methods, and operational quirks. Developers and researchers working with RDF data often need to:\n\n- **Switch between different triple stores** for performance comparisons\n- **Migrate data** from one system to another\n- **Test the same queries** across multiple backends\n- **Deploy applications** that work with various graph databases\n\nThis leads to:\n- \u274c **Duplicated effort** writing database-specific code\n- \u274c **Vendor lock-in** making migrations difficult\n- \u274c **Inconsistent interfaces** slowing development\n- \u274c **Manual deployment** processes for each database\n\n**pyomnigraph solves this** by providing:\n- \u2705 **Unified API** - Same Python interface for all supported databases\n- \u2705 **Standardized deployment** - Consistent Docker-based setup\n- \u2705 **Easy switching** - Change backends with a single parameter\n- \u2705 **Comparative testing** - Run identical operations across multiple stores\n- \u2705 **Simplified management** - Start, stop, load data with simple commands\n\n### Supported Triple Stores\n\n| Database | Status | Strengths |\n|----------|--------|-----------|\n| **Blazegraph** | \ud83d\udfe2 Working | High performance, easy setup |\n| **Apache Jena** | \ud83d\udfe2 Working | Robust, standards compliant |\n| **QLever** | \ud83d\udfe2 Working | Extremely fast queries |\n| **GraphDB** | \ud83d\uded1 Planned | Enterprise features, reasoning |\n| **Virtuoso** | \ud83d\uded1 In Progress | Mature, SQL integration |\n| **Stardog** | \ud83d\uded1 Planned | Knowledge graphs, reasoning |\n| **Oxigraph** | \ud83d\uded1 Planned | Rust-based, embedded |\n\nWhether you're building a semantic web application, conducting research, or evaluating different triple stores, pyomnigraph eliminates the complexity of working with multiple graph database systems.\n\n## Examples\n```bash\nomnigraph omnigraph --list --include-inactive --doc-format  github\n```\n| Active   | Name                                | Container Name       | Wikidata                                               | Image                                                                                            |   Port |   Test Port | Dataset   | User   |\n|----------|-------------------------------------|----------------------|--------------------------------------------------------|--------------------------------------------------------------------------------------------------|--------|-------------|-----------|--------|\n| \ud83d\udfe2\ufe0f       | [blazegraph](http://localhost:9898) | blazegraph-omnigraph | [Q20127748](https://www.wikidata.org/wiki/Q20127748)   | [lyrasis/blazegraph:2.1.5](https://hub.docker.com/r/lyrasis/blazegraph)                          |   9898 |        7898 | kb        |        |\n| \ud83d\uded1       | [graphdb](http://localhost:7200)    | graphdb-omnigraph    | [Q58425577](https://www.wikidata.org/wiki/Q58425577)   | [ontotext/graphdb:9.11.2-se](https://hub.docker.com/r/ontotext/graphdb)                          |   7200 |        7700 | repo1     |        |\n| \ud83d\udfe2\ufe0f       | [jena](http://localhost:3030)       | jena-omnigraph       | [Q109376461](https://www.wikidata.org/wiki/Q109376461) | [stain/jena-fuseki:latest](https://hub.docker.com/r/stain/jena-fuseki)                           |   3030 |        7030 | ds        | admin  |\n| \ud83d\uded1       | [oxigraph](http://localhost:7878)   | oxigraph-omnigraph   | [Q118980507](https://www.wikidata.org/wiki/Q118980507) | [oxigraph/oxigraph:latest](https://hub.docker.com/r/oxigraph/oxigraph)                           |   7878 |        7378 | default   |        |\n| \ud83d\udfe2\ufe0f       | [qlever](http://localhost:7019)     | qlever-omnigraph     | [Q111016295](https://www.wikidata.org/wiki/Q111016295) | [adfreiburg/qlever:latest](https://hub.docker.com/r/adfreiburg/qlever)                           |   7019 |        7819 | olympics  |        |\n| \ud83d\uded1       | [stardog](http://localhost:5820)    | stardog-omnigraph    | [Q91147741](https://www.wikidata.org/wiki/Q91147741)   | [stardog/stardog:latest](https://hub.docker.com/r/stardog/stardog)                               |   5820 |        5320 | mydb      | admin  |\n| \ud83d\uded1       | [virtuoso](http://localhost:8890)   | virtuoso-omnigraph   | [Q7935239](https://www.wikidata.org/wiki/Q7935239)     | [openlink/virtuoso-opensource-7:latest](https://hub.docker.com/r/openlink/virtuoso-opensource-7) |   8890 |        8390 | KB        | dba    |\n\n### Server Management\n\n```bash\n# Start specific servers\nomnigraph -s jena --cmd start\n\n# Restart sequence - stop remove and start\nomnigraph -s jena --cmd stop rm start\n\n# Start all configured servers\nomnigraph -s all --cmd start\n\n# Check server status\nomnigraph -s blazegraph --cmd status\n\n# Open web ui\nomnigraph -s jena --cmd webui\n```\n\n### Data Operations\n\n```bash\n# Load datasets\nomnigraph -s blazegraph --cmd load\n\n# Get triple count\nomnigraph -s blazegraph --cmd count\n\n# Use test environment\nomnigraph --test -s blazegraph --cmd start load\n```\n\n## Usage\n### omnigraph command line\n```bash\nomnigraph -h\nusage: omnigraph [-h] [-a] [-d] [-ds DATASETS [DATASETS ...]] [-dc DATASETS_CONFIG] [-f] [-r {turtle,rdf-xml,n3,json-ld}] [-q] [-V] [--apache APACHE]\n                 [-c CONFIG] [--cmd CMD [CMD ...]] [-df DOC_FORMAT] [-l] [--test] [-s SERVERS [SERVERS ...]] [-v]\n\nUnified Python interface for multiple graph databases\n\noptions:\n  -h, --help            show this help message and exit\n  -a, --about           show about info [default: False]\n  -d, --debug           show debug info [default: False]\n  -ds DATASETS [DATASETS ...], --datasets DATASETS [DATASETS ...]\n                        datasets to work with - all is an alias for all datasets [default: ['wikidata_triplestores']]\n  -dc DATASETS_CONFIG, --datasets-config DATASETS_CONFIG\n                        Path to datasets configuration YAML file [default: /Users/wf/Library/Python/3.12/lib/python/site-\n                        packages/omnigraph/resources/examples/datasets.yaml]\n  -f, --force           force actions that would modify existing data [default: False]\n  -r {turtle,rdf-xml,n3,json-ld}, --rdf_format {turtle,rdf-xml,n3,json-ld}\n                        RDF format to use [default: turtle]\n  -q, --quiet           avoid any output [default: False]\n  -V, --version         show program's version number and exit\n  --apache APACHE       create apache configuration file for the given server(s)\n  -c CONFIG, --config CONFIG\n                        Path to server configuration YAML file [default: /Users/wf/Library/Python/3.12/lib/python/site-\n                        packages/omnigraph/resources/examples/servers.yaml]\n  --cmd CMD [CMD ...]   commands to execute on servers: bash, clear, count, info, load, logs, needed, rm, start, status, stop, webui\n  -df DOC_FORMAT, --doc-format DOC_FORMAT\n                        The document format to use [default: plain]\n  -l, --list-servers    List available servers [default: False]\n  --test                use test environment [default: False]\n  -s SERVERS [SERVERS ...], --servers SERVERS [SERVERS ...]\n                        servers to work with - 'all' selects all configured servers [default: ['blazegraph']]\n  -v, --verbose         show verbose output [default: False]\n```\n\n### rdfdump command line\n```bash\nrdfdump -h\nusage: rdfdump [-h] [-a] [-d] [-ds DATASETS [DATASETS ...]] [-dc DATASETS_CONFIG] [-f] [-r {turtle,rdf-xml,n3,json-ld}] [-q] [-V] [--limit LIMIT] [-l]\n               [--count] [--dump] [-4o] [--max-count MAX_COUNT] [--no-progress] [--output-path OUTPUT_PATH] [--tryit]\n\nUnified Python interface for multiple graph databases\n\noptions:\n  -h, --help            show this help message and exit\n  -a, --about           show about info [default: False]\n  -d, --debug           show debug info [default: False]\n  -ds DATASETS [DATASETS ...], --datasets DATASETS [DATASETS ...]\n                        datasets to work with - all is an alias for all datasets [default: ['wikidata_triplestores']]\n  -dc DATASETS_CONFIG, --datasets-config DATASETS_CONFIG\n                        Path to datasets configuration YAML file [default: /Users/wf/Library/Python/3.12/lib/python/site-\n                        packages/omnigraph/resources/examples/datasets.yaml]\n  -f, --force           force actions that would modify existing data [default: False]\n  -r {turtle,rdf-xml,n3,json-ld}, --rdf_format {turtle,rdf-xml,n3,json-ld}\n                        RDF format to use [default: turtle]\n  -q, --quiet           avoid any output [default: False]\n  -V, --version         show program's version number and exit\n  --limit LIMIT         Number of triples per request [default: 10000]\n  -l, --list            List available datasets [default: False]\n  --count               List available datasets with triple counts[default: False]\n  --dump                perform the dump [default: False]\n  -4o, --for-omnigraph  store dump at default omnigraph location [default: False]\n  --max-count MAX_COUNT\n                        Maximum number of solutions/triples to download (uses dataset expected_solutions if not specified)\n  --no-progress         Disable progress bar\n  --output-path OUTPUT_PATH\n                        Path for dump files\n  --tryit               open the try it! URL [default: False]\n```",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "pyomnigraph: Unified Python interface for multiple graph databases (SPARQL, Neo4j, Weaviate)",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://wiki.bitplan.com/index.php/omnigraph",
        "Home": "https://github.com/WolfgangFahl/omnigraph",
        "Source": "https://github.com/WolfgangFahl/omnigraph"
    },
    "split_keywords": [
        "sparql",
        " blazegraph",
        " database",
        " graph",
        " jena",
        " neo4j",
        " qlever",
        " rdf",
        " virtuoso",
        " weaviate"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8b5195dcb813c7f5b5d4ce4516ef5f507ce0606d41e03019f09d0dca64d0935e",
                "md5": "3975c89912480cf75c2f927bbdc61fef",
                "sha256": "e1248daf2933db33c4321ad9326b3f239ec8df32f8d8ed1f1e0c1745e97bf827"
            },
            "downloads": -1,
            "filename": "pyomnigraph-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3975c89912480cf75c2f927bbdc61fef",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 47339,
            "upload_time": "2025-08-03T06:07:11",
            "upload_time_iso_8601": "2025-08-03T06:07:11.050455Z",
            "url": "https://files.pythonhosted.org/packages/8b/51/95dcb813c7f5b5d4ce4516ef5f507ce0606d41e03019f09d0dca64d0935e/pyomnigraph-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "16a104e348b701e2346a5823e0998c04941a7c36fb921241b7b804e322483592",
                "md5": "a7c7366f94844608e623476d1e01ed9b",
                "sha256": "3f607e3b19d61703a37914b9cce1bc6ae46a9b3bd1427896853987858816d2b7"
            },
            "downloads": -1,
            "filename": "pyomnigraph-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a7c7366f94844608e623476d1e01ed9b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 41997,
            "upload_time": "2025-08-03T06:07:13",
            "upload_time_iso_8601": "2025-08-03T06:07:13.060974Z",
            "url": "https://files.pythonhosted.org/packages/16/a1/04e348b701e2346a5823e0998c04941a7c36fb921241b7b804e322483592/pyomnigraph-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-03 06:07:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "WolfgangFahl",
    "github_project": "omnigraph",
    "github_not_found": true,
    "lcname": "pyomnigraph"
}
        
Elapsed time: 2.11278s