orthonym.assembly.handlers.polycyclic#
Note
Internal API. Names and behaviour may change between releases.
a phase polycyclic handler — direct-return shim (LIFT body alongside).
Verbatim move of composer.py:1100-1114 dispatch logic. Wraps the inline
_assemble_polycyclic_name(features, style) call + pool.add +
pool.best.name return.
Per internal notes incremental migration: the underlying
_assemble_polycyclic_name body STAYS in composer.py during Plan-02 and
moves to this module in Plan-03 commit 03-10 (composer.py thinning).
IUPAC cite: (polycyclic aromatics + retained names).
Byte-identical contract: this handler fires only when polycyclic_name
is set AND complex_ring would NOT take the dispatch — encoded as
not _is_complex_ring_system(features.mol) in the predicate to preserve
the inline gate not _complex_ring_accepted semantics. The cases where
complex_ring fires-and-rejects (low ratio in V17 mode) still fall through
to the inline fallback path further down composer.py.
References: - composer.py:1100-1114 (inline polycyclic branch; REMOVED at this commit). - composer.py:_assemble_polycyclic_name (STAYS until 03-10). - composer.py:_is_complex_ring_system (mutex helper for the predicate). - internal notes-DECOMP.md row ‘polycyclic’ + purity proof.
- orthonym.assembly.handlers.polycyclic.name_polycyclic(features, mol=None, style='pin')#
Direct-return polycyclic handler — wraps _assemble_polycyclic_name.