A Python implementation of a Code Property Graph.
Project description
Code Property Graph
This library is an implementation of a Code Property Graph as seen in the paper published by Fabian Yamaguchi on Modeling and Discovering Vulnerabilities with Code Property Graphs
A code property graph is a highly efficient data structure designed to mine large codebases for similar programming patterns. The data structure can be loaded into a graph database where properties of code can be queried. Code property graphs are intended to be code-agnostic and highly scalable making it one of the best choices for code representation.
Running as a Library
Installation
Requires:
Python 3
pip3
pip install codepropertygraph
Using the code as a library
import os
from dotenv import load_dotenv
from codepropertygraph import get_neo4j_connection
load_dotenv()
USERNAME = os.environ["NEO4J_USERNAME"]
PASSWORD = os.environ["NEO4J_PASSWORD"]
URI = "neo4j+s://cb8ae961.databases.neo4j.io"
# Attempt to get a connection
driver = get_neo4j_connection(URI, (USERNAME, PASSWORD))
# If the connection is successful, you can use the driver
if driver:
with driver.session(database="neo4j") as session:
result = session.run("MATCH (n) RETURN count(n) AS node_count")
node_count = result.single()["node_count"]
print(f"Number of nodes in the database: {node_count}")
driver.close()
> Number of nodes in the database: 0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for codepropertygraph-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0717173d3c38334664ffaa53565d8c5b6390aaaeb8afab1b754b4cd19d8018d9 |
|
MD5 | 677b7270c25d64cb758474b86cf931ae |
|
BLAKE2b-256 | 8f8055a81a617fab6f3a828568de1b98aa8207e59ff6ec66905016cfc12f2a0f |