commit a6a04664c737de63e91295b5f6e091b16be8b894
parent 1e86c03288c62d75f2d4b51ec524a71c109bdec3
Author: Andy Khramtsov <>
Date: Thu, 28 May 2026 03:17:57 +0300
refactor: some things
Diffstat:
1 file changed, 38 insertions(+), 32 deletions(-)
diff --git a/src/deps/pages/home.py b/src/deps/pages/home.py
@@ -42,34 +42,42 @@ def layout():
className="padded-box vertical-content vertical-content_large-gap",
children=[
html.H2("Cargo dependency visualisation"),
- html.H3("Cargo toml"),
dcc.Store(id=ids.cache_store, storage_type="memory"),
- dcc.Textarea(
- id=ids.cargo_toml_textarea,
- placeholder="Cargo.toml contents",
- persistence=True,
- ),
- dcc.Upload(
- id=ids.upload_cargo_toml,
- children=[
- dcc.Button("Upload Cargo.toml"),
+ html.Div(
+ [
+ html.H3("Cargo toml"),
+ dcc.Textarea(
+ id=ids.cargo_toml_textarea,
+ placeholder="Cargo.toml contents",
+ persistence=True,
+ ),
+ dcc.Upload(
+ id=ids.upload_cargo_toml,
+ children=[
+ dcc.Button("Upload Cargo.toml"),
+ ],
+ ),
html.Div("Uploaded file name:"),
html.Div(id=ids.cargo_toml_filename_display, children="Empty"),
- ],
- ),
- html.H3("Cargo lock"),
- dcc.Textarea(
- id=ids.cargo_lock_textarea,
- placeholder="Cargo.lock contents",
- persistence=True,
+ ]
),
- dcc.Upload(
- id=ids.upload_cargo_lock,
- children=[
- dcc.Button("Upload Cargo.lock"),
+ html.Div(
+ [
+ html.H3("Cargo lock"),
+ dcc.Textarea(
+ id=ids.cargo_lock_textarea,
+ placeholder="Cargo.lock contents",
+ persistence=True,
+ ),
+ dcc.Upload(
+ id=ids.upload_cargo_lock,
+ children=[
+ dcc.Button("Upload Cargo.lock"),
+ ],
+ ),
html.Div("Uploaded file name:"),
html.Div(id=ids.cargo_lock_filename_display, children="Empty"),
- ],
+ ]
),
CollapseAIO(
aio_id=ids.collapse_tables,
@@ -102,8 +110,8 @@ def layout():
),
],
),
- dcc.Button(id=ids.generate_button, children="Generate"),
html.H3("Dependency graph"),
+ dcc.Button(id=ids.generate_button, children="Generate"),
dcc.Graph(
id=ids.dependency_graph,
figure={},
@@ -132,8 +140,7 @@ def parse_cargo_lock(contents: str) -> pl.DataFrame:
return pl.DataFrame(toml.get("package", []))
-def parse_graph(cargo_toml: pl.DataFrame, cargo_lock: pl.DataFrame) -> dict[str, pl.DataFrame]:
-
+def files_into_graph(cargo_toml: pl.DataFrame, cargo_lock: pl.DataFrame) -> dict[str, pl.DataFrame]:
graph_arcs = (
(
cargo_lock.select(
@@ -206,7 +213,7 @@ def parse_graph(cargo_toml: pl.DataFrame, cargo_lock: pl.DataFrame) -> dict[str,
)
-def compute_positions(df_graph: dict[str, pl.DataFrame]) -> dict[str, tuple[float, float]]:
+def compute_node_positions(df_graph: dict[str, pl.DataFrame]) -> dict[str, tuple[float, float]]:
def compute_graph(df_graph: dict[str, pl.DataFrame]) -> pydot.Dot:
graph = pydot.Dot(graph_type="digraph", rankdir="LR")
for row in df_graph["nodes"].iter_rows(named=True):
@@ -294,7 +301,7 @@ def draw_graph_figure(
text_colors = []
custom_data = []
for row in df_graph["nodes"].iter_rows(named=True):
- node_id = str(row["node_id"])
+ node_id = row["node_id"]
if node_id in positions:
x, y = positions[node_id]
node_x.append(x)
@@ -334,13 +341,12 @@ def draw_graph_figure(
node_trace,
],
layout=go.Layout(
- title="Hierarchical Dependency Graph (Left-to-Right)",
showlegend=False,
hovermode="closest",
- margin=dict(b=40, l=40, r=40, t=60),
+ margin=dict(b=20, l=20, r=20, t=20),
xaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
yaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
- plot_bgcolor="#F7FAFC",
+ plot_bgcolor="#FAFAFA",
),
)
@@ -485,8 +491,8 @@ def visualize(inputs, state):
cargo_lock = parse_cargo_lock(state["cargo_lock"])
except tomllib.TOMLDecodeError as error:
raise PreventUpdate from error
- df_graph = parse_graph(cargo_toml, cargo_lock)
- positions = compute_positions(df_graph)
+ df_graph = files_into_graph(cargo_toml, cargo_lock)
+ positions = compute_node_positions(df_graph)
cache = {
"positions": positions,
"df_graph_nodes": df_graph["nodes"].serialize(format="json"),