hx_registry

HxRequest Registry using AST parsing + lazy module import.

Behavior: - initialize(): scans installed apps for hx_requests.py and hx_requests/ packages,

parses files with AST to find classes with class attribute name = “…”, and stores name -> (module_path, class_name).

  • get_hx_request(name): lazily imports the module and returns the class.

  • get_all_hx_requests(): forces loading all discovered requests (imports all modules).

Notes: - This approach intentionally does NOT validate BaseHxRequest inheritance at parse time.

That only becomes known at import time.

DuplicateHxRequestNameError

exception DuplicateHxRequestNameError

Raised when two HxRequest classes declare the same name.