altimeter.core.neptune package¶
Submodules¶
altimeter.core.neptune.client module¶
Client for loading and accessing Altimeter generated data in Neptune
- 
class AltimeterNeptuneClient(max_age_min, neptune_endpoint)¶
- Bases: - object- Client to run sparql queries against a neptune instance using graph name conventions to determine most recent graph. - Parameters
- max_age_min ( - int) – maximum acceptable age in minutes of graphs. Only graphs which are found that meet this critera will be queried.
- neptune_endpoint ( - NeptuneEndpoint) – NeptuneEndpoint object for this client
 
 - 
clear_graph_data(uri)¶
- Clear a graph in Neptune - Return type
- None
 
 - 
clear_graph_metadata(name, uri)¶
- Clear a graph metadata entry - Return type
- None
 
 - 
clear_registered_graph(name, uri)¶
- Remove data and metadata for a graph by uri - Parameters
- name ( - str) – graph name
- uri ( - str) – graph uri
 
- Raises
- NeptuneUpdateGraphException if an error occurred during clearing – 
- Return type
- None
 
 - 
connect_to_gremlin()¶
- Get the Gremlin traversal and connection for the Neptune endpoint :rtype: - Tuple[- traversal,- DriverRemoteConnection] :return: The Traversal object
 - 
get_graph_metadatas(name, version=None)¶
- Return all graph metadatas for a given name/version. These represent fully loaded graphs in the Neptune database. - Parameters
- name ( - str) – graph name
- version ( - Optional[- str]) – graph version
 
- Return type
- List[- GraphMetadata]
- Returns
- list of GraphMetadata objects for the given graph name/version 
 
 - 
get_graph_uris(name)¶
- Return all graph uris regardless of whether they have corresponding metadata entries - Parameters
- name ( - str) – graph name
- Return type
- List[- str]
- Returns
- list of graph uris 
 
 - 
load_graph(bucket, key, load_iam_role_arn)¶
- Load a graph into Neptune. :type bucket: - str:param bucket: s3 bucket of graph rdf :type key:- str:param key: s3 key of graph rdf :type load_iam_role_arn:- str:param load_iam_role_arn: arn of iam role used to load the graph- Return type
- Returns
- GraphMetadata object describing loaded graph 
- Raises
- NeptuneLoadGraphException if errors occur during graph load – 
 
 - 
static parse_arn(arn)¶
- Parses an ARN into the component pieces :type arn: - str:param arn: The arn to parse :rtype:- Dict:return: A dictionary of the arn pieces
 - 
prepare_request(method='GET', payload='', querystring={})¶
- This prepares the request for sigv4signing. This is heavily influenced by the code here: https://github.com/awslabs/amazon-neptune-tools/tree/master/neptune-python-utils :type method: - str:param method: The method name :type payload:- str:param payload: The request payload :type querystring:- Dict:param querystring: The request querystring :rtype:- RequestParameters:return: The request parameters
 - 
run_query(graph_names, query)¶
- Runs a SPARQL query against the latest available graphs given a list of graph names. - Parameters
- graph_names ( - Set[- str]) – list of graph names to query
- query ( - str) – query string. This query string should not include any ‘from’ clause; the graph_names param will be used to inject the correct graph uris by locating the latest acceptable (based on max_age_min) graph.
 
- Return type
- Returns
- QueryResult object 
 
 - 
run_raw_query(query)¶
- Run a query against a neptune instance, return a dict of results. Generally this should be called from run_query - Parameters
- query ( - str) – complete query to run
- Return type
- Returns
- QueryResultSet object 
- Raises
- NeptuneQueryException if an error occurred running the query – 
 
 - 
write_to_neptune_lpg(graph, scan_id)¶
- Writes the graph to a labeled property graph :type scan_id: - str:param scan_id: The unique string representing the scan :type graph:- Dict:param graph: The graph to write :rtype:- None:return: None
 - 
write_to_neptune_rdf(graph)¶
- Writes the graph to an RDF graph :type graph: - Dict:param graph: The graph to write :rtype:- None:return: None
 
- 
class GraphMetadata(uri, name, version, start_time, end_time)¶
- Bases: - object- A GraphMetadata represents the details of a graph. These details are stored in a metadata graph in Neptune and used by clients to find the latest available successfuly loaded graph. - Parameters
- uri ( - str) – graph uri
- name ( - str) – graph name
- version ( - str) – graph version
- start_time ( - int) – epoch timestamp of graph start time
- end_time ( - int) – epoch timestamp of graph end time
 
 - 
end_time: int¶
 - 
name: str¶
 - 
start_time: int¶
 - 
uri: str¶
 - 
version: str¶
 
- 
class NeptuneEndpoint(host, port, region, ssl=True, auth_mode='DEFAULT')¶
- Bases: - object- Represents an AWS Neptune endpoint. - Parameters
- host ( - str) – neptune host
- port ( - int) – neptune port
- region ( - str) – neptune region
 
 - 
auth_mode: str = 'DEFAULT'¶
 - 
get_endpoint_str()¶
- Get the endpoint as a string in host:port format - Return type
- str
- Returns
- endpoint string 
 
 - 
get_gremlin_endpoint(ssl=True)¶
- Get the loader url for this Neptune endpoint - Return type
- str
- Returns
- loader endpoint url 
 
 - 
get_loader_endpoint(ssl=True)¶
- Get the loader url for this Neptune endpoint - Return type
- str
- Returns
- loader endpoint url 
 
 - 
get_sparql_endpoint(ssl=True)¶
- Get the sparql query url for this Neptune endpoint - Return type
- str
- Returns
- sparql query endpoint url 
 
 - 
host: str¶
 - 
port: int¶
 - 
region: str¶
 - 
ssl: bool = True¶
 
- 
class RequestParameters(uri, querystring, headers)¶
- Bases: - object- Holds the request parameters for Sigv4Signing 
- 
discover_neptune_endpoint()¶
- Find a Neptune - Return type
 
- 
get_required_tag_value(tag_set, key)¶
- Get a tag value from a TagSet. Raise ValueError if the key is not present. - Parameters
- tag_set ( - List[- Dict[- str,- str]]) – list of dicts, each of which contains keys ‘Key’ and ‘Value’.
- key ( - str) – tag key string
 
- Return type
- str
- Returns
- tag value string 
- Raises
- ValueError if key is not present in tag_set – 
 
altimeter.core.neptune.exceptions module¶
Neptune errors
- 
exception InvalidQueryException¶
- Bases: - altimeter.core.neptune.exceptions.NeptuneClientException- A statically detected error with a query was found. 
- 
exception NeptuneClearGraphException¶
- Bases: - altimeter.core.neptune.exceptions.NeptuneClientException- An error occurred while clearing a graph. 
- 
exception NeptuneClientException¶
- Bases: - altimeter.core.exceptions.AltimeterException- Base exception class for Neptune client exceptions. 
- 
exception NeptuneLoadGraphException¶
- Bases: - altimeter.core.neptune.exceptions.NeptuneClientException- An error occurred while loading a graph. 
- 
exception NeptuneNoFreshGraphFoundException¶
- Bases: - altimeter.core.neptune.exceptions.NeptuneClientException- No acceptably recent graph could be found in Neptune. 
- 
exception NeptuneNoGraphsFoundException¶
- Bases: - altimeter.core.neptune.exceptions.NeptuneClientException- No graphs were found in Neptune. 
- 
exception NeptuneQueryException¶
- Bases: - altimeter.core.neptune.exceptions.NeptuneClientException- A server-side error occurred during a Neptune query execution. 
- 
exception NeptuneUpdateGraphException¶
- Bases: - altimeter.core.neptune.exceptions.NeptuneClientException- An error occurred while updating a graph. 
altimeter.core.neptune.results module¶
Classes for representing query results
- 
class QueryResult(graph_uris_load_times, query_result_set)¶
- Bases: - object- Represents the results of a SPARQL query and includes the graph uris from which results were pulled. - Parameters
- graph_uris_load_times ( - Dict[- str,- int]) – Dict with keys which are the graph uris which were used in this query and values which are the load end times for the graph.
- query_result_set ( - QueryResultSet) – QueryResultSet containing results
 
 - 
get_length()¶
- Get the length of this result. - Return type
- int
- Returns
- int length 
 
 - 
get_stats(field_keys)¶
- Return a Counter representing statistics about this result set keyed by a user specified list of field keys (e.g. account_id and account_name) - Parameters
- field_keys ( - List[- str]) – list of field names to use as stat keys
- Return type
- Counter
- Returns
- Counter containing result stats. 
 
 - 
to_csv()¶
- Create a CSV representation of this QueryResult. - Return type
- str
- Returns
- csv as a str 
 
 - 
to_dict()¶
- Generate a dict representing this QueryResult - Return type
- Dict[- str,- Union[- List[- Any],- Dict[- str,- int]]]
- Returns
- dict representation of this QueryResult 
 
 - 
to_list()¶
- Generate a list representing this QueryResult - Return type
- List[- Dict[- str,- Any]]
- Returns
- List of dicts representing this QueryResult 
 
 - 
to_ndjson()¶
- Create an NDJSON representation of this QueryResult. - Return type
- str
- Returns
- NDJSON as a str 
 
 
- 
class QueryResultSet(fields, values)¶
- Bases: - object- Represents the results of a SPARQL query. - Parameters
- fields ( - List[- str]) – List of field names
- values ( - List[- Dict[- str,- Any]]) – list of value dicts as returned from neptune’s query api.
 
 - 
classmethod from_dict(data)¶
- Return type
 
 - 
classmethod from_sparql_endpoint_json(resp)¶
- Build a QueryResultSet object from the returned data of a sparql endpoint json query (has top level field ‘head’ and results’) - Parameters
- resp ( - Dict[- str,- Any]) – response dict from neptune’s query api
- Return type
- Returns
- QueryResultSet object 
 
 - 
get_stats(field_keys)¶
- Return a Counter representing statistics about this result set keyed by a user specified list of field keys (e.g. account_id and account_name) - Parameters
- field_keys ( - List[- str]) – list of field names to use as stat keys
- Return type
- Counter
- Returns
- Counter containing result stats. 
 
 - 
to_csv()¶
- Create a CSV representation of this QueryResultSet. - Return type
- str
- Returns
- csv as a str 
 
 - 
to_list()¶
- Create a list of dicts representing these results, each dict is an individual result row. - Return type
- List[- Dict[- str,- Any]]
- Returns
- List of dicts representing this QueryResultSet. 
 
 - 
to_ndjson()¶
- Create an NDJSON representation of this QueryResult. - Return type
- str
- Returns
- NDJSON as a str 
 
 
altimeter.core.neptune.sparql module¶
SPARQL related functions.
- 
finalize_query(query, graph_uris)¶
- Finalize a generic sparql query - specifically add a FROM clause containing graph uris for this query. - Parameters
- query ( - str) – query string
- graph_uris ( - List[- str]) – list of graph uris
 
- Return type
- str
- Returns
- finalized query string