From 804def9320f29232eacfaf4770c4a45569321946 Mon Sep 17 00:00:00 2001 From: Leo Parente <23251360+leoparente@users.noreply.github.com> Date: Wed, 1 Jul 2026 16:48:03 -0300 Subject: [PATCH] docs(examples): cable terminations example (regenerated from drf-extract) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regenerated docs/examples/cable.py from the drf-extract docs_generator (which now emits GenericObject cable terminations), demonstrating a_terminations/ b_terminations with GenericObject(object_interface=Interface(...)) wrappers — the OBS-1080 shape, now supported. Byte-identical to generator output, so it stays regeneration-safe. py_compile verified. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/examples/cable.py | 221 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 219 insertions(+), 2 deletions(-) diff --git a/docs/examples/cable.py b/docs/examples/cable.py index 4ae63a2..1cc8d64 100644 --- a/docs/examples/cable.py +++ b/docs/examples/cable.py @@ -11,9 +11,16 @@ from netboxlabs.diode.sdk.ingester import ( Cable, CableBundle, + Device, + DeviceRole, + DeviceType, Entity, + GenericObject, + Interface, + Manufacturer, Owner, OwnerGroup, + Site, Tag, Tenant, ) @@ -50,6 +57,76 @@ def cable_minimal() -> Cable: """Create a Cable with only required fields using flat strings.""" return Cable( metadata={"source": "example"}, + a_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name A", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], + b_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name B", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], ) @@ -57,7 +134,7 @@ def cable_extended() -> Cable: """Create a Cable with common optional fields.""" return Cable( metadata={"source": "example", "custom_key": "custom_value"}, - status="connected", + status="planned", description="Example description", color="0000ff", type="aoc", @@ -67,6 +144,76 @@ def cable_extended() -> Cable: length_unit="cm", comments="Example comments", profile="breakout-1c2p-2c1p", + a_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name A", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], + b_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name B", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], ) @@ -78,7 +225,7 @@ def cable_explicit() -> Cable: "custom_key": "custom_value", "collected_at": "2024-01-15T10:30:00Z", }, - status="connected", + status="planned", description="Example description", color="0000ff", comments="Example comments", @@ -96,6 +243,76 @@ def cable_explicit() -> Cable: metadata={"source": "example"}, ), bundle=CableBundle(name="Example Name", metadata={"source": "example"}), + a_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name A", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], + b_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name B", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], tags=[Tag(name="production")], )