RepoPilot

frappe/erpnext · Architecture

A static read of how frappe/erpnext is wired together — module coupling, layering, and circular dependencies — derived from its import graph.

C
Architecture grade
score 67/100
8
Import cycles
lower is better
400
Modules parsed
308 edges
93%
Layeredness
clean-layer ratio

Most-depended-on modules

These are the highest-fan-in files — change them and the blast radius is largest. Read them first.

  • erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py28 importers · radius 47
  • banking/src/components/features/BankReconciliation/bankRecAtoms.ts23 importers · radius 28
  • erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py11 importers · radius 47
  • erpnext/accounts/doctype/payment_entry/test_payment_entry.py11 importers · radius 47
  • erpnext/accounts/doctype/journal_entry/test_journal_entry.py11 importers · radius 47
  • banking/src/components/features/BankReconciliation/utils.ts11 importers · radius 28
  • erpnext/accounts/doctype/account/test_account.py9 importers · radius 47
  • erpnext/accounts/test/accounts_mixin.py9 importers · radius 9

Modules (24)

Source directories grouped from the import graph. Each links to a per-module page with its files and how it couples to the rest.

Circular dependencies (8)

  • banking/src/components/features/BankReconciliation/bankRecAtoms.ts to banking/src/components/features/BankReconciliation/utils.ts to banking/src/components/features/BankReconciliation/bankRecAtoms.ts
  • erpnext/accounts/doctype/account/test_account.py to erpnext/accounts/doctype/journal_entry/test_journal_entry.py to erpnext/accounts/doctype/account/test_account.py
  • erpnext/accounts/doctype/account/test_account.py to erpnext/accounts/doctype/journal_entry/test_journal_entry.py to erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py to erpnext/accounts/doctype/account/test_account.py
  • erpnext/accounts/doctype/mode_of_payment/test_mode_of_payment.py to erpnext/accounts/doctype/pos_profile/test_pos_profile.py to erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py to erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py to erpnext/accounts/doctype/mode_of_payment/test_mode_of_payment.py
  • erpnext/accounts/doctype/pos_profile/test_pos_profile.py to erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py to erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py to erpnext/accounts/doctype/pos_profile/test_pos_profile.py
  • erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py to erpnext/accounts/doctype/mode_of_payment/test_mode_of_payment.py to erpnext/accounts/doctype/pos_profile/test_pos_profile.py to erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py to erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py to erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py

Ask AI about frappe/erpnext

Grounded in the actual source code. Pick a starter question or write your own.

Or write your own question

Informational only. RepoPilot summarises public signals at the time of analysis; they can be incomplete or stale. Not professional, security, or legal advice.