orthonym.assembly.general_fusion#
Note
Internal API. Names and behaviour may change between releases.
: general fusion-nomenclature PARENT producer, a PIN-quality upgrade over the von-Baeyer polyene the complete-tier engine ships for mancude fused ring systems.
Design (0-wrong by construction): this module NEVER trusts a computed fusion descriptor blindly. Every candidate fusion word is either (a) an EXACT structural match against a vetted catalog (canonical-SMILES keyed, Java-free) or (b) put through an AFFIRMATIVE OPSIN round-trip (the fusion word -> structure must equal the input). The round-trip fails CLOSED when Java/OPSIN is unavailable (unlike the pipeline’s, which fails OPEN), so a wrong fusion descriptor – e.g. the fusion machinery’s known benzo[f]/benzo[h] orientation slips – is NEVER emitted in any environment. On any refusal the caller keeps the (correct, non-PIN) von-Baeyer polyene form. This makes the phase strictly non-regressing: it only ever replaces a VB-polyene with a STRUCTURALLY-VERIFIED fusion PIN.
Scope: the BARE mancude fused parent (no principal-group suffix, no ring substituents) – the common polycyclic-aromatic-hydrocarbon / fused-heteroarene case. Substituted / suffixed fusion parents (which need the fusion NUMBERING threaded through the substituent+suffix tail) fall through to the VB polyene and are the documented bounded remainder.
- orthonym.assembly.general_fusion.name_fusion_parent(mol, cage_atoms)#
Return a verified fusion-PIN word for the BARE mancude fused parent whose ring atoms are exactly
cage_atoms, or None (fail-closed) to keep the VB-polyene form.Only fires when the cage IS the whole molecule (a bare parent: no suffix, no substituents) – the caller enforces that. Candidate sources: (1) exact catalog match (Java-free, 0-wrong); (2) the existing
name_fused_heterocyclemachinery, AFFIRMATIVE-RT-verified. Never emits an unverified fusion word.