altimeter.core.artifact_io package

Submodules

altimeter.core.artifact_io.exceptions module

Exceptions for artifact I/O

exception InvalidS3URIException

Bases: altimeter.core.exceptions.AltimeterException

An S3 uri could not be parsed.

altimeter.core.artifact_io.reader module

Classes for ArtifactReaders. An ArtifactReader reads a scan artifact dict from something - e.g. a file, s3 key, etc.

class ArtifactReader

Bases: abc.ABC

ArtifactReaders read JSON artifacts from locations - e.g. s3, filesystem, etc.

classmethod from_artifact_path(artifact_path)

Create an ArtifactReader based on an artifact path. This either returns a FileArtifactReader or an S3ArtifactReader depending on the value of artifact_path

Return type

ArtifactReader

read_json(path)

Read a json artifact

Parameters

path (str) – path to artifact to read

Return type

Dict[str, Any]

Returns

artifact content

class FileArtifactReader

Bases: altimeter.core.artifact_io.reader.ArtifactReader

ArtifactReader to read from the filesystem

read_json(path)

Read a json artifact

Parameters

path (str) – filesystem path to artifact

Return type

Dict[str, Any]

Returns

artifact content

class S3ArtifactReader

Bases: altimeter.core.artifact_io.reader.ArtifactReader

ArtifactReader to read from S3

read_json(path)

Read a json artifact

Parameters

path (str) – s3 uri to artifact. s3://bucket/key/path

Return type

Dict[str, Any]

Returns

artifact content

altimeter.core.artifact_io.writer module

Classes for ArtifactWriters. An ArtifactWriter writes a scan artifact dict to something - e.g. a file, s3 key, etc.

class ArtifactWriter

Bases: abc.ABC

ArtifactWriters write JSON artifacts to locations - e.g. s3, filesystem, etc.

classmethod from_artifact_path(artifact_path, scan_id)

Create an ArtifactWriter based on an artifact path. This either returns a FileArtifactWriter or an S3ArtifactWriter depending on the value of artifact_path

Return type

ArtifactWriter

abstract write_graph_set(name, graph_set, compression=None)

Write a graph artifact

Parameters
  • name (str) – name

  • graph_set (ValidatedGraphSet) – ValidatedGraphSet object to write

Return type

str

Returns

path to written artifact

abstract write_json(name, data)

Write a json artifact

Parameters
  • name (str) – name

  • data (BaseModel) – data

Return type

str

Returns

path to written artifact

class FileArtifactWriter(scan_id, output_dir)

Bases: altimeter.core.artifact_io.writer.ArtifactWriter

ArtifactWriter which writes to a file.

Parameters

output_dir (Path) – output filesystem dir

write_graph_set(name, graph_set, compression=None)

Write a graph artifact

Parameters
  • name (str) – name

  • graph_set (ValidatedGraphSet) – ValidatedGraphSet object to write

Return type

str

Returns

path to written artifact

write_json(name, data)

Write artifact data to self.output_dir/name.json

Parameters
  • name (str) – filename

  • data (BaseModel) – data

Return type

str

Returns

Full filesystem path of artifact file

class S3ArtifactWriter(bucket, key_prefix)

Bases: altimeter.core.artifact_io.writer.ArtifactWriter

ArtifactWriter which writes to S3.

Parameters
  • bucket (str) – s3 bucket

  • key_prefix (str) – s3 key prefix

write_graph_set(name, graph_set, compression=None)

Write a graph artifact

Parameters
Return type

str

Returns

path to written artifact

write_json(name, data)

Write artifact data to s3://self.bucket/self.key_prefix/name.json

Parameters
  • name (str) – s3 key name

  • data (BaseModel) – data

Returns

//bucket/key/path) to artifact

Return type

S3 uri (s3

Module contents

is_s3_uri(path)
Return type

bool

parse_s3_uri(uri)

Parse an s3 uri (s3://bucket/key/path) into bucket and key parts

Parameters

uri (str) – s3 uri (s3://bucket/key/path)

Return type

Tuple[str, Optional[str]]

Returns

Tuple of (bucket, key)

Raises