Files
gsinghpal 41d0908ade changes
2026-04-24 21:04:38 -04:00

12 KiB

Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_shipping (2026-04-22)

Corpus Check

  • 32 files · ~104,292 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 352 nodes · 832 edges · 33 communities detected
  • Extraction: 61% EXTRACTED · 39% INFERRED · 0% AMBIGUOUS · INFERRED: 326 edges (avg confidence: 0.73)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. DeliveryCarrier - 78 edges
  2. FedexRequest - 67 edges
  3. DHLProvider - 56 edges
  4. UPSRequest - 43 edges
  5. Response - 43 edges
  6. FusionShipment - 22 edges
  7. LogPlugin - 12 edges
  8. _convert_curr_iso_fdx() - 12 edges
  9. ResponseDataObject - 9 edges
  10. create() - 8 edges

Surprising Connections (you probably didn't know these)

  • Open an attachment PDF in the browser viewer (new tab). --uses--> Response [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/models/fusion_shipment.py → /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/api/canada_post/response.py
  • Fetch latest tracking events from Canada Post VIS API. --uses--> Response [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/models/fusion_shipment.py → /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/api/canada_post/response.py
  • Parse CP tracking detail response and store events. --uses--> Response [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/models/fusion_shipment.py → /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/api/canada_post/response.py
  • Auto-update shipment status based on tracking data. --uses--> Response [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/models/fusion_shipment.py → /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/api/canada_post/response.py
  • Check if any tracking events indicate a return/RTS. --uses--> Response [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/models/fusion_shipment.py → /Users/gurpreet/Github/Odoo-Modules/fusion_shipping/api/canada_post/response.py

Communities

Community 0 - "Community 0"

Cohesion: 0.06 Nodes (21): get_fusion_cp_url(), Cancel all CP shipments linked to this picking via void API., Create one CP shipment for a single package., create(), _cron_refresh_tracking(), FusionShipment, Open an attachment PDF in the browser viewer (new tab)., Fetch latest tracking events from Canada Post VIS API. (+13 more)

Community 1 - "Community 1"

Cohesion: 0.06 Nodes (3): DeliveryCarrier, Override of delivery to return the ups delivery type for UPS REST., Adds the extra data to the request (DHL REST).

Community 2 - "Community 2"

Cohesion: 0.14 Nodes (7): Extract price info in target currency, converting if necessary, Adds the extra data to the request (FedEx SOAP legacy)., Hook to introduce new custom behaviors in the Fedex request., _convert_curr_fdx_iso(), _convert_curr_iso_fdx(), FedexRequest, Low-level object intended to interface Odoo recordsets with FedEx, throu

Community 3 - "Community 3"

Cohesion: 0.13 Nodes (2): PackageType, UPSRequest

Community 4 - "Community 4"

Cohesion: 0.13 Nodes (2): Adds the custom data to the request (DHL SOAP legacy)., DHLProvider

Community 5 - "Community 5"

Cohesion: 0.07 Nodes (15): ChooseDeliveryCarrier, ChooseDeliveryFusionPackage, ChooseDeliveryFusionRate, Override: for Canada Post, fetch all rates for all packages., Build package_info dict for a single package, converted to cm., Fetch shipping service rates for every package and aggregate., Override: store per-package info on the sale order and enhance the deliv, Select this rate and deselect others. Update per-package costs. (+7 more)

Community 6 - "Community 6"

Cohesion: 0.15 Nodes (1): Adds the extra data to the request. When there are multiple items in a l

Community 7 - "Community 7"

Cohesion: 0.14 Nodes (6): Plugin, _convert_stock_type(), FixRequestNamespacePlug, LogPlugin, Small plugin for zeep that catches out/ingoing XML requests and logs them, Small plugin for zeep that catches out/ingoing XML requests and logs them

Community 8 - "Community 8"

Cohesion: 0.2 Nodes (13): attribute_check(), dict2xml(), get_dom_tree(), getNodeText(), getValue(), parse_yaml(), perftest_dict2xml(), python_2_unicode_compatible() (+5 more)

Community 9 - "Community 9"

Cohesion: 0.47 Nodes (1): ResponseDataObject

Community 10 - "Community 10"

Cohesion: 0.5 Nodes (1): SaleOrder

Community 11 - "Community 11"

Cohesion: 0.5 Nodes (1): StockPicking

Community 12 - "Community 12"

Cohesion: 0.67 Nodes (1): PaymentProvider

Community 13 - "Community 13"

Cohesion: 0.67 Nodes (1): ResCompany

Community 14 - "Community 14"

Cohesion: 0.67 Nodes (2): FusionOrderPackage, Stores per-package dimensions and service info on a sale order. Created whe

Community 15 - "Community 15"

Cohesion: 1.0 Nodes (1): UoM

Community 16 - "Community 16"

Cohesion: 1.0 Nodes (1): FusionTrackingEvent

Community 17 - "Community 17"

Cohesion: 1.0 Nodes (1): ResPartner

Community 18 - "Community 18"

Cohesion: 1.0 Nodes (0):

Community 19 - "Community 19"

Cohesion: 1.0 Nodes (0):

Community 20 - "Community 20"

Cohesion: 1.0 Nodes (0):

Community 21 - "Community 21"

Cohesion: 1.0 Nodes (0):

Community 22 - "Community 22"

Cohesion: 1.0 Nodes (0):

Community 23 - "Community 23"

Cohesion: 1.0 Nodes (0):

Community 24 - "Community 24"

Cohesion: 1.0 Nodes (0):

Community 25 - "Community 25"

Cohesion: 1.0 Nodes (0):

Community 26 - "Community 26"

Cohesion: 1.0 Nodes (0):

Community 27 - "Community 27"

Cohesion: 1.0 Nodes (0):

Community 28 - "Community 28"

Cohesion: 1.0 Nodes (0):

Community 29 - "Community 29"

Cohesion: 1.0 Nodes (0):

Community 30 - "Community 30"

Cohesion: 1.0 Nodes (1): Pre-fill dimensions from selected box type.

Community 31 - "Community 31"

Cohesion: 1.0 Nodes (1): When a CP carrier is selected, create one default package.

Community 32 - "Community 32"

Cohesion: 1.0 Nodes (1): Override of payment to allow only COD providers if allow_cash_on_delivery is ena

Knowledge Gaps

  • 22 isolated node(s): One package row in the Add Shipping wizard., Pre-fill dimensions from selected box type., Select this rate and deselect others. Update per-package costs., When a CP carrier is selected, create one default package., Override: for Canada Post, fetch all rates for all packages. (+17 more) These have ≤1 connection - possible missing edges or undocumented components.
  • Thin community Community 15 (2 nodes): UoM, uom_uom.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 16 (2 nodes): FusionTrackingEvent, fusion_tracking_event.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 17 (2 nodes): ResPartner, res_partner.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 18 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 19 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 20 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 21 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 22 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 23 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 24 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 25 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 26 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 27 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 28 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 29 (1 nodes): __manifest__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 30 (1 nodes): Pre-fill dimensions from selected box type. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 31 (1 nodes): When a CP carrier is selected, create one default package. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 32 (1 nodes): Override of payment to allow only COD providers if allow_cash_on_delivery is ena Too small to be a meaningful cluster - may be noise or needs more connections extracted.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does DeliveryCarrier connect Community 1 to Community 0, Community 2, Community 3, Community 4, Community 5, Community 6? High betweenness centrality (0.265) - this node is a cross-community bridge.
  • Why does Response connect Community 0 to Community 1, Community 2, Community 3, Community 4, Community 5? High betweenness centrality (0.137) - this node is a cross-community bridge.
  • Why does FedexRequest connect Community 2 to Community 0, Community 1, Community 4, Community 5, Community 6, Community 7? High betweenness centrality (0.133) - this node is a cross-community bridge.
  • Are the 4 inferred relationships involving DeliveryCarrier (e.g. with Response and UPSRequest) actually correct? DeliveryCarrier has 4 INFERRED edges - model-reasoned connections that need verification.
  • Are the 19 inferred relationships involving FedexRequest (e.g. with DeliveryCarrier and Return ALL available Canada Post service rates for the order.) actually correct? FedexRequest has 19 INFERRED edges - model-reasoned connections that need verification.
  • Are the 18 inferred relationships involving DHLProvider (e.g. with DeliveryCarrier and Return ALL available Canada Post service rates for the order.) actually correct? DHLProvider has 18 INFERRED edges - model-reasoned connections that need verification.
  • Are the 19 inferred relationships involving UPSRequest (e.g. with DeliveryCarrier and Return ALL available Canada Post service rates for the order.) actually correct? UPSRequest has 19 INFERRED edges - model-reasoned connections that need verification.