swh.graph.webgraph module#

WebGraph driver

exception swh.graph.webgraph.CompressionSubprocessError(message: str, log_path: Path)[source]#

Bases: Exception

class swh.graph.webgraph.CompressionStep(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

EXTRACT_NODES = 0#
MPH = 10#
CONVERT_MPH = 20#
BV = 30#
BV_OFFSETS = 40#
BV_EF = 50#
BFS = 60#
PERMUTE_AND_SIMPLIFY_BFS = 70#
BFS_EF = 80#
BFS_DCF = 90#
LLP = 100#
COMPOSE_ORDERS = 110#
PERMUTE_LLP = 120#
LLP_OFFSETS = 130#
OBL = 140#
STATS = 150#
TRANSPOSE = 160#
TRANSPOSE_OBL = 170#
MAPS = 180#
EXTRACT_PERSONS = 190#
MPH_PERSONS = 200#
NODE_PROPERTIES = 210#
MPH_LABELS = 220#
FCL_LABELS = 230#
EDGE_LABELS = 240#
EDGE_LABELS_OBL = 250#
EDGE_LABELS_TRANSPOSE_OBL = 260#
CLEAN_TMP = 270#
swh.graph.webgraph.do_step(step, conf) List[RunResult][source]#
swh.graph.webgraph.compress(graph_name: str, in_dir: ~pathlib.Path, out_dir: ~pathlib.Path, steps: ~typing.Set[~swh.graph.webgraph.CompressionStep] = {CompressionStep.BFS, CompressionStep.BFS_DCF, CompressionStep.BFS_EF, CompressionStep.BV, CompressionStep.BV_EF, CompressionStep.BV_OFFSETS, CompressionStep.CLEAN_TMP, CompressionStep.COMPOSE_ORDERS, CompressionStep.CONVERT_MPH, CompressionStep.EDGE_LABELS, CompressionStep.EDGE_LABELS_OBL, CompressionStep.EDGE_LABELS_TRANSPOSE_OBL, CompressionStep.EXTRACT_NODES, CompressionStep.EXTRACT_PERSONS, CompressionStep.FCL_LABELS, CompressionStep.LLP, CompressionStep.LLP_OFFSETS, CompressionStep.MAPS, CompressionStep.MPH, CompressionStep.MPH_LABELS, CompressionStep.MPH_PERSONS, CompressionStep.NODE_PROPERTIES, CompressionStep.OBL, CompressionStep.PERMUTE_AND_SIMPLIFY_BFS, CompressionStep.PERMUTE_LLP, CompressionStep.STATS, CompressionStep.TRANSPOSE, CompressionStep.TRANSPOSE_OBL}, conf: ~typing.Dict[str, str] = {}, progress_cb: ~typing.Callable[[int, ~swh.graph.webgraph.CompressionStep], None] = <function <lambda>>)[source]#

graph compression pipeline driver from nodes/edges files to compressed on-disk representation

Parameters:
  • graph_name – graph base name, relative to in_dir

  • in_dir – input directory, where the uncompressed graph can be found

  • out_dir – output directory, where the compressed graph will be stored

  • steps – compression steps to run (default: all steps)

  • conf

    compression configuration, supporting the following keys (all are optional, so an empty configuration is fine and is the default)

    • batch_size: batch size for WebGraph transformations; defaults to 1 billion

    • classpath: java classpath, defaults to swh-graph JAR only

    • java: command to run java VM, defaults to “java”

    • java_tool_options: value for JAVA_TOOL_OPTIONS environment variable; defaults to various settings for high memory machines

    • logback: path to a logback.xml configuration file; if not provided a temporary one will be created and used

    • max_ram: maximum RAM to use for compression; defaults to available virtual memory

    • tmp_dir: temporary directory, defaults to the “tmp” subdir of out_dir

    • object_types: comma-separated list of object types to extract (eg. ori,snp,rel,rev). Defaults to *.

  • progress_cb – a callable taking a percentage and step as argument, which is called every time a step starts.