{"id":23768534,"url":"https://github.com/nci-gdc/psqlgraph","last_synced_at":"2025-10-16T11:09:37.260Z","repository":{"id":24056385,"uuid":"27442291","full_name":"NCI-GDC/psqlgraph","owner":"NCI-GDC","description":"Library for graph-like storage in postgresql using sqlalchemy","archived":false,"fork":false,"pushed_at":"2025-04-18T17:13:13.000Z","size":6044,"stargazers_count":24,"open_issues_count":9,"forks_count":7,"subscribers_count":28,"default_branch":"develop","last_synced_at":"2025-09-05T13:51:06.144Z","etag":null,"topics":["core","library"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NCI-GDC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-12-02T16:45:42.000Z","updated_at":"2025-09-05T05:01:44.000Z","dependencies_parsed_at":"2023-12-05T16:43:55.021Z","dependency_job_id":"96fddec8-c8ae-430e-8999-7b7972c63856","html_url":"https://github.com/NCI-GDC/psqlgraph","commit_stats":null,"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"purl":"pkg:github/NCI-GDC/psqlgraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fpsqlgraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fpsqlgraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fpsqlgraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fpsqlgraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NCI-GDC","download_url":"https://codeload.github.com/NCI-GDC/psqlgraph/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fpsqlgraph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279182175,"owners_count":26121124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-16T02:00:06.019Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["core","library"],"created_at":"2025-01-01T01:37:21.602Z","updated_at":"2025-10-16T11:09:37.205Z","avatar_url":"https://github.com/NCI-GDC.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Codacy Badge](https://api.codacy.com/project/badge/Grade/562dc95026254b1a82b39062322bd845)](https://www.codacy.com/manual/NCI-GDC/psqlgraph?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=NCI-GDC/psqlgraph\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/562dc95026254b1a82b39062322bd845)](https://www.codacy.com/manual/NCI-GDC/psqlgraph?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=NCI-GDC/psqlgraph\u0026utm_campaign=Badge_Coverage)\n[![Build Status](https://travis-ci.org/NCI-GDC/psqlgraph.svg?branch=develop)](https://travis-ci.org/NCI-GDC/psqlgraph)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n# Overview\n\nThe psqlgraph library is a layer on top of [SQLAlchemy's](http://www.sqlalchemy.org/) ORM layer that attempts to capitalize on the benefits of SQL while utilizing Postgresql's JSONB support for SQL-less flexibility.  Psqlgraph allows you to interact with your data graphically by defining Node and Edge models to maintain flexible many-to-many relationships.\n\n\n- [Overview](#overview)\n- [Usage](#usage)\n- [Installation](#installation)\n  - [Dependencies](#dependencies)\n    - [Project Dependencies](#project-dependencies)\n    - [Building Documentation](#building-documentation)\n  - [Test Setup](#test-setup)\n- [Setup pre-commit hook to check for secrets](#setup-pre-commit-hook-to-check-for-secrets)\n- [Contributing](#contributing)\n- [Tests](#tests)\n\n\n# Usage\n\nFor usage documentation please see /doc/build/html.\n\n# Installation\n\n## Dependencies\n\nBefore continuing you must have the following programs installed:\n\n- [Python 3.9+](http://python.org/)\n- [Postgresql 9.4+](http://www.postgresql.org/download/)\n\nThe psqlgraph library requires the following pip dependencies\n\n- [SQLAlchemy](http://www.sqlalchemy.org/)\n- [Psycopg2](http://initd.org/psycopg/)\n\n### Project Dependencies\n\nProject dependencies are managed using [PIP](https://pip.readthedocs.org/en/latest/)\n\n### `pip install`\n\n```shell\n# Mac M2 - assuming you `brew install postgresql@13`\n$ export PATH=$PATH:/opt/homebrew/opt/postgresql@13/bin/\n\n$ pip install .[dev]\n```\n\n### Building Documentation\n\nDocumentation is built using [Sphinx](http://sphinx-doc.org/).\n\n```\n❯ cd doc\n❯ make html\nsphinx-build -b html -d build/doctrees   source build/html\nRunning Sphinx v1.2.3\n     ...\ndumping object inventory... done\nbuild succeeded.\n\nBuild finished. The HTML pages are in build/html.\n```\n\n## Test Setup\n\nRunning the setup script will:\n\n1. Setup the test postgres tables\n\n```\n❯ python psqlgraph/setup_psql_graph.py\nSetting up test database\nDropping old test data\nCreating tables in test database\n```\n\n\n# Setup pre-commit hook to check for secrets\n\nWe use [pre-commit](https://pre-commit.com/) to setup pre-commit hooks for this repo.\nWe use [detect-secrets](https://github.com/Yelp/detect-secrets) to search for secrets being committed into the repo.\n\nTo install the pre-commit hook, run\n```\npre-commit install\n```\n\nTo update the .secrets.baseline file run\n```\ndetect-secrets scan --update .secrets.baseline\n```\n\n`.secrets.baseline` contains all the string that were caught by detect-secrets but are not stored in plain text. Audit the baseline to view the secrets .\n\n```\ndetect-secrets audit .secrets.baseline\n```\n# Contributing\nRead how to contribute [here](https://github.com/NCI-GDC/gdcapi/blob/master/CONTRIBUTING.md)\n\n# Tests\n\nRunning the setup script will test the library against a local postgres installation\n\n```\n❯  pip install pytest\n❯  cd test\n❯  py.test -v\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnci-gdc%2Fpsqlgraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnci-gdc%2Fpsqlgraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnci-gdc%2Fpsqlgraph/lists"}