261 lines
12 KiB
Markdown
261 lines
12 KiB
Markdown
# 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)
|
|
- [[_COMMUNITY_Community 0|Community 0]]
|
|
- [[_COMMUNITY_Community 1|Community 1]]
|
|
- [[_COMMUNITY_Community 2|Community 2]]
|
|
- [[_COMMUNITY_Community 3|Community 3]]
|
|
- [[_COMMUNITY_Community 4|Community 4]]
|
|
- [[_COMMUNITY_Community 5|Community 5]]
|
|
- [[_COMMUNITY_Community 6|Community 6]]
|
|
- [[_COMMUNITY_Community 7|Community 7]]
|
|
- [[_COMMUNITY_Community 8|Community 8]]
|
|
- [[_COMMUNITY_Community 9|Community 9]]
|
|
- [[_COMMUNITY_Community 10|Community 10]]
|
|
- [[_COMMUNITY_Community 11|Community 11]]
|
|
- [[_COMMUNITY_Community 12|Community 12]]
|
|
- [[_COMMUNITY_Community 13|Community 13]]
|
|
- [[_COMMUNITY_Community 14|Community 14]]
|
|
- [[_COMMUNITY_Community 15|Community 15]]
|
|
- [[_COMMUNITY_Community 16|Community 16]]
|
|
- [[_COMMUNITY_Community 17|Community 17]]
|
|
- [[_COMMUNITY_Community 18|Community 18]]
|
|
- [[_COMMUNITY_Community 19|Community 19]]
|
|
- [[_COMMUNITY_Community 20|Community 20]]
|
|
- [[_COMMUNITY_Community 21|Community 21]]
|
|
- [[_COMMUNITY_Community 22|Community 22]]
|
|
- [[_COMMUNITY_Community 23|Community 23]]
|
|
- [[_COMMUNITY_Community 24|Community 24]]
|
|
- [[_COMMUNITY_Community 25|Community 25]]
|
|
- [[_COMMUNITY_Community 26|Community 26]]
|
|
- [[_COMMUNITY_Community 27|Community 27]]
|
|
- [[_COMMUNITY_Community 28|Community 28]]
|
|
- [[_COMMUNITY_Community 29|Community 29]]
|
|
- [[_COMMUNITY_Community 30|Community 30]]
|
|
- [[_COMMUNITY_Community 31|Community 31]]
|
|
- [[_COMMUNITY_Community 32|Community 32]]
|
|
|
|
## 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._ |