Skip to content

LayoutSettings

Symbolica documentation for getting started, symbolic expressions, numerical evaluation, pattern matching, and APIs in Python and Rust.

LayoutSettings

class LayoutSettings

One or more ordered Linnest layout passes.

impred_steps is the nominal cooling budget (default 500). impred_step_scale is a positive maximum integration stride (default 2): the first 20% uses fine steps, then strides land on the existing checkpoints. Use 1 for the reference schedule. Native reports count actual solves, while progress callbacks count nominal ticks. impred_level (default true) rotates mixed incoming/outgoing drawings to their external-pull optimum at every refinement checkpoint. impred_labels (default false) opts into label-aware layout: drawn labels are fed back as tethered boxes into short warm ImPrEd passes.

external_pull_attachment is a finite nonnegative multiplier for extra demand from distributed owners sharing an external X coordinate (default 1). external_pull_balance is a finite nonnegative exponent on topology weights: 0 gives uniform pull, 1 (the default) balances topology, and values above 1 strengthen balancing. It does not change radial pull.

Attributes

Name Description
pass_count

pass_count

LayoutSettings.pass_count: builtins.int

Methods

Name Description
__new__
__repr__
sequence
then

__new__

LayoutSettings.__new__(
    *,
    impred_spacing: _Number = ...,
    impred_repulsion: _Number = ...,
    impred_attraction: _Number = ...,
    impred_parallel_balance: _Number = ...,
    impred_pull: _Number = ...,
    impred_pull_balance: _Number = ...,
    impred_pull_attachment: _Number = ...,
    impred_external_max_points: _Integer = ...,
    impred_split_length_ratio: _Number = ...,
    impred_contract_chord_ratio: _Number = ...,
    impred_edge_clearance: _Number = ...,
    impred_node_edge_strength: _Number = ...,
    impred_steps: _Integer = ...,
    impred_step_scale: _Integer = ...,
    impred_level: _Boolean = ...,
    impred_labels: _Boolean = ...,
    subgraph: _OptionalHedgeSelection = ...,
    viewport_width: _Number = ...,
    viewport_height: _Number = ...,
    tree_dx: _Number = ...,
    tree_dy: _Number = ...,
    steps: _Integer = ...,
    seed: _Integer = ...,
    step: _Number = ...,
    step_shrink: _Number = ...,
    cool: _Number = ...,
    accept_floor: _Number = ...,
    early_tolerance: _Number = ...,
    temperature: _Number = ...,
    delta: _Number = ...,
    beta: _Number = ...,
    spring_strength: _Number = ...,
    spring_length_scale: _Number = ...,
    initial_repulsion: _Number = ...,
    repulsion_growth: _Number = ...,
    centering_strength: _Number = ...,
    epochs: _Integer = ...,
    crossing_penalty: _Number = ...,
    dangling_repulsion: _Number = ...,
    dangling_centroid_repulsion: _Number = ...,
    external_pull: _Number = ...,
    external_pull_balance: _Number = ...,
    external_pull_attachment: _Number = ...,
    edge_edge_repulsion: _Number = ...,
    directional_force: _Number = ...,
    internal_label_length_scale: _Number = ...,
    external_label_length_scale: _Number = ...,
    label_spring: _Number = ...,
    label_charge: _Number = ...,
    label_steps: _Integer = ...,
    label_layout: _LabelLayoutValue = ...,
    label_step: _Number = ...,
    label_early_tolerance: _Number = ...,
    label_max_delta_scale: _Number = ...,
    edge_vertex_repulsion: _Number = ...,
    epsilon: _Number = ...,
    incremental_energy: _Boolean = ...,
    algorithm: _LayoutAlgorithmValue = ...,
    nodes: _LayoutNodesValue = ...,
    direction: _LayoutDirectionValue = ...,
    rank_align: _RankAlignmentValue = ...,
    roots: _NodeIndices = ...,
    rank_same: _NodeGroups = ...,
    route_edge_weight: _Number = ...,
    route_exit_weight: _Number = ...,
    route_label_width_scale: _Number = ...,
    route_label_width_cap: _Number = ...,
    z_spring: _Number = ...,
    z_spring_growth: _Number = ...,
    length_scale: _Number = ...,
) -> LayoutSettings

__repr__

LayoutSettings.__repr__() -> builtins.str

sequence

LayoutSettings.sequence(passes: typing.Sequence[LayoutSettings]) -> LayoutSettings

then

LayoutSettings.then(
    *,
    impred_spacing: _Number = ...,
    impred_repulsion: _Number = ...,
    impred_attraction: _Number = ...,
    impred_parallel_balance: _Number = ...,
    impred_pull: _Number = ...,
    impred_pull_balance: _Number = ...,
    impred_pull_attachment: _Number = ...,
    impred_external_max_points: _Integer = ...,
    impred_split_length_ratio: _Number = ...,
    impred_contract_chord_ratio: _Number = ...,
    impred_edge_clearance: _Number = ...,
    impred_node_edge_strength: _Number = ...,
    impred_steps: _Integer = ...,
    impred_step_scale: _Integer = ...,
    impred_level: _Boolean = ...,
    impred_labels: _Boolean = ...,
    subgraph: _OptionalHedgeSelection = ...,
    viewport_width: _Number = ...,
    viewport_height: _Number = ...,
    tree_dx: _Number = ...,
    tree_dy: _Number = ...,
    steps: _Integer = ...,
    seed: _Integer = ...,
    step: _Number = ...,
    step_shrink: _Number = ...,
    cool: _Number = ...,
    accept_floor: _Number = ...,
    early_tolerance: _Number = ...,
    temperature: _Number = ...,
    delta: _Number = ...,
    beta: _Number = ...,
    spring_strength: _Number = ...,
    spring_length_scale: _Number = ...,
    initial_repulsion: _Number = ...,
    repulsion_growth: _Number = ...,
    centering_strength: _Number = ...,
    epochs: _Integer = ...,
    crossing_penalty: _Number = ...,
    dangling_repulsion: _Number = ...,
    dangling_centroid_repulsion: _Number = ...,
    external_pull: _Number = ...,
    external_pull_balance: _Number = ...,
    external_pull_attachment: _Number = ...,
    edge_edge_repulsion: _Number = ...,
    directional_force: _Number = ...,
    internal_label_length_scale: _Number = ...,
    external_label_length_scale: _Number = ...,
    label_spring: _Number = ...,
    label_charge: _Number = ...,
    label_steps: _Integer = ...,
    label_layout: _LabelLayoutValue = ...,
    label_step: _Number = ...,
    label_early_tolerance: _Number = ...,
    label_max_delta_scale: _Number = ...,
    edge_vertex_repulsion: _Number = ...,
    epsilon: _Number = ...,
    incremental_energy: _Boolean = ...,
    algorithm: _LayoutAlgorithmValue = ...,
    nodes: _LayoutNodesValue = ...,
    direction: _LayoutDirectionValue = ...,
    rank_align: _RankAlignmentValue = ...,
    roots: _NodeIndices = ...,
    rank_same: _NodeGroups = ...,
    route_edge_weight: _Number = ...,
    route_exit_weight: _Number = ...,
    route_label_width_scale: _Number = ...,
    route_label_width_cap: _Number = ...,
    z_spring: _Number = ...,
    z_spring_growth: _Number = ...,
    length_scale: _Number = ...,
) -> LayoutSettings