orthonym.assembly.handlers.nitrate_ester#

Note

Internal API. Names and behaviour may change between releases.

Nitrate-ester handler – functional-class naming.

An ester of nitric acid R-O-NO2 is named in the two-word functional-class form <R> nitrate. (heading ‘Esters of mononuclear noncarbon oxoacids’, the Blue Book),:35918: “Esters of mononuclear noncarbon acids are named in the same way as esters of organic acids (see. Alkyl groups, aryl groups, etc. are cited as separate words, in alphanumerical order when more than one, and followed by the name of the appropriate anion.” The nitrous-acid sibling is ‘pentyl nitrite (PIN)’ (:35922), built by handlers/nitrite_ester.py; nitric acid is monobasic and its anion is ‘nitrate’.

The group is perceived as nitrooxy ([O-][N+](=O)O-C, the charge-separated drawing). ‘nitrooxy’ is the preselected prefix of the ester group, :36401, ‘-O-NO2 nitrooxy (preselected prefix)’:36405), used when a senior class names the parent (‘3-(nitrooxy)propanoic acid’, ‘ethyl 3-(nitrooxy)propanoate’); it has no suffix, so a molecule whose only characteristic group is the ester has no principal group, and without this producer it was named substitutively as ‘(nitrooxy)ethane’, which is not the PIN, Table 4.1,:18182: esters, class 9, rank above every class a prefix-only group can express).

Scope, fail-closed (None) outside it:
  • the oxygen carries an alcohol component: an acyl, thioacyl or imidoyl carbon there makes a mixed anhydride,:32272), named by the anhydride producer (‘acetic nitric anhydride’);

  • exactly one nitric-acid ester group. Several nitrate groups on one alcohol component are an ester of a polyol, named with a multivalent organyl group, ‘Polyesters formed from a single ‘alcoholic’ component’,:31815; ‘ethane-1,2-diyl diacetate (PIN)’:31823), which this producer does not build; the prefix name stays below the PIN.

  • no principal characteristic group (principal_group None) and no nitrite ester, so any group that could compete with the ester for the parent defers;

  • the molecule is neutral apart from the N+/O- pair of the nitrate group, and the alcohol component plus the four atoms of the group are the whole molecule.

orthonym.assembly.handlers.nitrate_ester.name_nitrate_ester(features, mol=None, style='pin')#

Emit <R> nitrate for an ester of nitric acid R-O-NO2.

From the nitrooxy match (O-, N+, =O, ester O, R carbon) the alcohol component R (the subgraph at the R carbon that does not cross the ester oxygen) is named by the universal substituent pipeline and joined as "<R> nitrate". Returns None (defer) when R cannot be named or the molecule is outside the scope of the module docstring.