orthonym.assembly.budget_rescue#
Note
Internal API. Names and behaviour may change between releases.
The degraded namings of a part whose analysis ran its hang budgets out.
- A part of a name that is a compound of its own (a component of a adduct, an ion of a
salt) is named with the hang budgets of one compound (
fragment_naming.own_hang_budgets).
When the nested name of such a part runs them out, PerfBudgetExceeded (a BaseException)
unwinds to the frame that owns the budgets of the whole assembly, which abstains the whole drawing
although every other part was named. A compound named alone meets the same trip at its outermost
name, which offers a bounded rescue before it abstains. name_after_budget_trip is the one
rule for the part: the same offer, then one run under the PIN ceilings of the von Baeyer analyses;
what neither names is left to the caller, who re-raises the trip as before.
- orthonym.assembly.budget_rescue.outermost_tier_contexts()#
The tier context variables as they stand where a compound named alone runs its budget rescue: the outermost
namehas already unwound the ones it published, so they are at their defaults. Inside the naming of an assembly they are set to its tier, which the T4 producer reads as the best-effort substituent vocabulary: its von Baeyer analyses then run the fresh budget of the rescue out for parts it names within it when named alone (Orthonym._try_besteffort_clean_general_fallthroughresets the same four for the same reason). Restored on exit.
- orthonym.assembly.budget_rescue.t4_rescue_name(namer, smiles)#
The rescue name of one part whose main-path analysis ran its hang budgets out, or None.
Orthonym._try_perf_budget_t4_rescue: a fresh, bounded budget around one whole-molecule T4 naming that ships only when OPSIN reads the name back to the part (best-effort tier only; None at every other tier, so the caller’s trip unwinds as it always did), run in the context a compound named alone has at its outermostname(outermost_tier_contexts). The fragment memo, the naming session and the provenance are the ones of the enclosing naming. A name is a general-engine name, never a PIN (as for the other spellings ofrules.adducts), so the name that carries it is labelled below the PIN.
- orthonym.assembly.budget_rescue.pin_ceiling_name(namer, smiles)#
The name of one part whose main-path analysis ran its hang budgets out and whose rescue found no name, built once more with the PIN-tier ceilings of the von Baeyer analyses (
rules.vonbaeyer_universal.pin_ceilings_scope), or None.The best-effort ceilings (100 skeletal atoms, 15 rings) let the analysis of a large spiro-fused ring system run the budgets of one compound out; under the PIN ceilings such a system is refused at once and another producer names the part, as before they existed. The run has budgets of its own (
rearm_hang_budgets: the rescue before it left them disarmed), a fresh memo and a depth-0 session (isolated_naming_session), so it neither reads a name the exhausted run left nor leaves one. Best-effort tier only; the name is the one the part’s own namer ships, so its labels are its own. Never raises.
- orthonym.assembly.budget_rescue.name_after_budget_trip(namer, smiles)#
The name of one part (
smiles) whose nestednamebynamerran the hang budgets of one compound out: the rescue a compound named alone is offered (t4_rescue_name), else a run under the PIN ceilings (pin_ceiling_name), else None – the caller then lets the trip unwind to the frame that owns the budgets, as it did before the part had this offer.The offers run with hang budgets of their own (
own_hang_budgets), so the budgets of the assembly that enclosed the part are back as they were when the offers leave: the rescue disarms the budgets it ran under, and a caller that handles the trip outside the part’s ownown_hang_budgets(rules.salts) would otherwise leave the whole molecule unbounded.