chython 3.2__tar.gz → 3.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {chython-3.2/chython.egg-info → chython-3.3.1}/PKG-INFO +1 -1
- {chython-3.2 → chython-3.3.1}/chython/chemistry/__init__.py +7 -6
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_canonicalize.py +6 -3
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_organometallics.py +4 -4
- chython-3.3.1/chython/chemistry/_salts.py +725 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_standardize.py +15 -7
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_tables.py +76 -36
- chython-3.3.1/chython/chemistry/tables/salts.tsv +200 -0
- chython-3.3.1/chython/chemistry/test/test_salts.py +1296 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_facade.py +6 -4
- {chython-3.2 → chython-3.3.1}/chython/core/_molecule_container.pxi +686 -38
- {chython-3.2 → chython-3.3.1}/chython/core/_molecule_views.pxi +19 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_pach.pxi +142 -66
- {chython-3.2 → chython-3.3.1}/chython/core/_pach3.pxi +141 -60
- {chython-3.2 → chython-3.3.1}/chython/core/_query_boxes.pxi +18 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_smiles_write.pxi +51 -11
- {chython-3.2 → chython-3.3.1}/chython/core/reaction.py +61 -21
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_clean_stereo.py +83 -0
- chython-3.3.1/chython/core/test/test_enrich.py +432 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_facade.py +5 -2
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_geometry.py +101 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_isomorphism.py +51 -1
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_pach.py +58 -10
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_pach3.py +101 -21
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_reaction_pach.py +22 -8
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write.py +53 -2
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write_stereo.py +26 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_view_surface.py +86 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/layout/molecule.py +33 -5
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_clean2d.py +13 -4
- {chython-3.2 → chython-3.3.1}/chython/formats/__init__.py +5 -2
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/__init__.py +3 -1
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_ctab.py +7 -1
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_sgroup.py +161 -5
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_stream.py +2 -4
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_v2000.py +2 -3
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_v3000.py +5 -5
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_rdf.py +11 -6
- chython-3.3.1/chython/formats/ctfile/test/test_stereo_label.py +326 -0
- chython-3.3.1/chython/reactions/_reconstruct.py +880 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/_stickers.py +4 -4
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_reconstruct.py +227 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_container_methods.py +8 -3
- chython-3.3.1/chython/test/test_writer_posture.py +265 -0
- {chython-3.2 → chython-3.3.1/chython.egg-info}/PKG-INFO +1 -1
- {chython-3.2 → chython-3.3.1}/chython.egg-info/SOURCES.txt +4 -1
- {chython-3.2 → chython-3.3.1}/pyproject.toml +1 -1
- chython-3.2/chython/chemistry/_salts.py +0 -308
- chython-3.2/chython/chemistry/tables/salts.tsv +0 -163
- chython-3.2/chython/chemistry/test/test_salts.py +0 -565
- chython-3.2/chython/reactions/_reconstruct.py +0 -415
- {chython-3.2 → chython-3.3.1}/LICENSE +0 -0
- {chython-3.2 → chython-3.3.1}/MANIFEST.in +0 -0
- {chython-3.2 → chython-3.3.1}/README.md +0 -0
- {chython-3.2 → chython-3.3.1}/build_inchi.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/_functions.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_abbreviations.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_counts.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_crippen.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_hydrogens.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_implicit.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_isomers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_kekule_form.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_maccs.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_perceive.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_pharmacophore.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_protomers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_qed.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_residues.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_resonance.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_saturate.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_smarts.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/_tpsa.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/abbreviations.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/acids.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/covalent_radii.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/crippen.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/hbond.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/maccs.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/maccs_corpus.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/pharmacophore.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/qed_alerts.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/residues.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/resonance.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/rotatable.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/standardize_groups.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/standardize_metals.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/sybyl_types.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/tables/tpsa.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/_oracle.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/gen_standardize_rules.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_abbreviations.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_acids_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_canonicalize.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_counts.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_covalent_radii_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_crippen.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_crippen_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_dependency_direction.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_featurizer_injection.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_featurizer_tables_lazy.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_isomers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_kekule_form.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_maccs.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_maccs_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_maccs_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_organometallics.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_perceive.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_pharmacophore.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_protomers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_qed.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_qed_alerts_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_reaction_hydrogen_repair.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_reaction_passes.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_residues.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_resonance.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_resonance_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_saturate.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_smarts.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_standardize_differential.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_standardize_groups_port.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_standardize_overvalent_nitrogen.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_standardize_rules_examples.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_standardize_rules_merges.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_standardize_rules_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_thiele_is_single_purpose.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_tpsa.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_tpsa_tsv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_valence_report.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/chemistry/test/test_z_translation.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/RULES.md +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_canonical.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_cip.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_core.pyx +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_descriptors.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_elements.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_features.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_fingerprints.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_hydrogens.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_inchi.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_isomorphism.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_kekule.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_log.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_ml.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_molecule_arena.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_molecule_topology.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_morgan.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_query_arena.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_query_container.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_query_seal.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_reaction_passes.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_rings.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_smarts_read.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_smiles_read.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_smirks_patch.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_smirks_read.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_sssr.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_stereo.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_thiele.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/_valence.pxi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/elements.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/isotopes.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/arena_v4_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/bench_ml.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/chytorch_oracle.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/gen_element_tables.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/gen_modeling_view_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/gen_pach3_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/gen_reaction_pach_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/gen_v3_fixtures.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/gen_v4_fixtures.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/gen_valence_rules.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/modeling_view_corpus.json.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/modeling_view_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/oracle.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach3_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach_bond_group_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach_v0_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach_v0_native_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach_v2_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach_v3_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/pach_v4_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/reaction_pach_corpus.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/reaction_pach_v2_corpus.bin.gz +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_aggregates.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_alternative_spellings.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_apply_scratch_probe.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_arena_f60.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_arena_identity.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_arena_v3_compat.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_arena_v4_compat.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_aromatic_storage.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_canonical.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_canonical_mirror.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_cip_assign.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_cip_cases.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_cip_digraph.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_cip_ranking.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_cip_storage.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_clean_isotopes_and_coordinate_bonds.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_conformers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_container_log.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_copy_caches.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_derive.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_descriptors.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_element_tables.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_features.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_featurizer_injection.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_fingerprints.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_h_unknown.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_hydrogens.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_inchi.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_interop_injection.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_kekule.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_log.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_magic.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_meta.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_ml_encoding.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_ml_reaction_transition.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_ml_state_view.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_ml_transition_view.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_ml_unpack_differential.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_modeling_view_frozen.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_molecule.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_morgan.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_no_chython_two_imports.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_oracle.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_pack.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_query.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_r_edit.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_r_query.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_r_semantics.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_r_serialisation.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_r_smirks.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_r_storage.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_reaction_container.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_reaction_identity.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_reaction_passes.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_reaction_patch_stereo.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_reaction_smiles.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_rings.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_rings_c60.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_set_element.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_sgroups.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smarts_read.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_r.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_read.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_roundtrip.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write_aromatic.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write_cis_trans.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write_detached.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write_differential.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write_h_unknown.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smiles_write_sticky.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smirks_filter.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smirks_patch.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smirks_read.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smirks_report.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_smirks_stereo.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_acceptance.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_anchor_identity.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_group_storage.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_owners.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_parity.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_perception.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_query.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_units.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_stereo_v2_differential.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_structure.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_thiele.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_title.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_topology.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_union_stereo.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/test_valence.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/v3_fixtures.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/test/v4_fixtures.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/valence_rules.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/core/wedge.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/_config.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/_hooks.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/bonds.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/colorbar.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/colormap.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/field.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/figure.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/label.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/layout/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/layout/clean2d.js +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/layout/reaction.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/metrics/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/metrics/helvetica.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/metrics/times.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/overlay.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/render/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/render/svg.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/scene.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/style.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_bonds.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_colorbar.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_colormap.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_field.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_figure.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_label.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_metrics.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_overlay.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_package.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_r_atom.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_scene.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_style.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_svg.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_wedge_draw.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/test/test_x3dom.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/wedge.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/depict/x3dom.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/exceptions.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/_text.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/CTFILE.md +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_errors.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_facade.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_hydrogens.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_rdf.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_rxn.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_sdf.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/_tokens.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/conftest.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_aromatic.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_container_log.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_data_labels.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_facade.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_fidelity.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_hydrogens.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_r_atom.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_rxn.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_sdf.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_sgroup.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_stream.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_tokens.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_v2000.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_v3000.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/ctfile/test/test_wedge.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/mol2.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/pdb/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/pdb/_builder.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/pdb/_legacy.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/pdb/_mmcif.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/pdb/_records.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/pdb/_star.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/conftest.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/oracles.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_conformance.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_done_when.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_isolation.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_log_prefix.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_mmcif.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_mol2.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_no_review_bookkeeping.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_oracles.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_pdb.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_pdb_builder.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_perceive_agreement.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_read_only_facades.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_xyz.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/test/test_xyz_builder.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/_cml.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/_dialect.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/_errors.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/_facade.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/_mrv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/_tree.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/conftest.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_cml.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_container_log.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_dialect.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_equivalence.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_facade.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_mrv.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_mrv_census.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xml/test/test_tree.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/formats/xyz.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_cdk.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_cdpkit.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_indigo.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_iupac.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_java.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_openbabel.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_pandas.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_rdkit.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_records.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/_stereo.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/config.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/conformers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/conftest.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_cdk.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_cdpkit.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_config.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_conformers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_coordinate_honesty.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_dispatch.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_indigo.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_iupac.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_log_delivery.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_openbabel.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_pandas.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_rdkit.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_stereo.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/interop/test/test_v2_oracle.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/_enumerate.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/_numbering.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/_tables.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/attention/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/attention/_assign.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/attention/_encode.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/attention/_session.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/tables/functional.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/tables/protective.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/tables/reactions.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/tables/roles.tsv +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/_frozen_ids.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/gen_corpus_glossary.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/golden_subset.smi +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_attention.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_attention_assign.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_attention_encode.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_attention_isolation.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_corpus_glossary.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_dependency_direction.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_enumerate.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_functional.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_id_stability.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_numbering.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_probes.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_protective.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_roles.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_stickers.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/reactions/test/test_tables.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/__init__.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_code_hygiene.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_doc_figures.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_doc_references.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_doc_samples.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_facade_names.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_hydrogen_parity.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_libinchi_staging.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_log_records.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_optional_numpy.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_packaging.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_performance.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_r_atom_integration.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_release_build.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_stereo_bluebook.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython/test/test_v2_boundary.py +0 -0
- {chython-3.2 → chython-3.3.1}/chython.egg-info/dependency_links.txt +0 -0
- {chython-3.2 → chython-3.3.1}/chython.egg-info/requires.txt +0 -0
- {chython-3.2 → chython-3.3.1}/chython.egg-info/top_level.txt +0 -0
- {chython-3.2 → chython-3.3.1}/setup.cfg +0 -0
- {chython-3.2 → chython-3.3.1}/setup.py +0 -0
|
@@ -45,15 +45,15 @@ from ._qed import alert_count, qed, qed_properties
|
|
|
45
45
|
from ._residues import (RESIDUE_KINDS, ResidueTemplate, normalize_atom_name, residue_template,
|
|
46
46
|
residue_templates)
|
|
47
47
|
from ._resonance import fix_resonance
|
|
48
|
-
from ._salts import SaltComposition, decompose_salts, split_salts
|
|
48
|
+
from ._salts import ComponentRow, DEFAULT_STABILIZER_CLASSES, SaltComposition, decompose_salts, split_salts
|
|
49
49
|
from ._saturate import saturate
|
|
50
50
|
from ._smarts import SmartsSyntaxError, compile_smarts
|
|
51
51
|
from ._standardize import LogRecord, standardize
|
|
52
|
-
from ._tables import (ACID_ROLES, AbbreviationRow, AcidRow, Endpoint, RESONANCE_ROLES, Rule,
|
|
53
|
-
|
|
54
|
-
acids_table_text, groups_rules,
|
|
52
|
+
from ._tables import (ACID_ROLES, AbbreviationRow, AcidRow, Endpoint, RESONANCE_ROLES, Rule,
|
|
53
|
+
SALT_CLASSES, SALT_MATCHES, SaltRow, abbreviation_row, abbreviations_rows,
|
|
54
|
+
acids_rules, acids_rules_by_role, acids_table_text, groups_rules,
|
|
55
55
|
metals_rules, read_table, resonance_rules, resonance_rules_by_role,
|
|
56
|
-
resonance_table_text, salts_rows,
|
|
56
|
+
resonance_table_text, salts_rows, salts_rows_by_klass, salts_species_keys,
|
|
57
57
|
salts_table_text, standardize_rules)
|
|
58
58
|
from ._tpsa import tpsa
|
|
59
59
|
from ..core._core import (_set_canonicalize_fn, _set_featurizer_fns, _set_hydrogens_fns,
|
|
@@ -62,7 +62,8 @@ from ..core._core import (_set_canonicalize_fn, _set_featurizer_fns, _set_hydrog
|
|
|
62
62
|
_set_valence_fn)
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
__all__ = ['ACID_ROLES', 'AbbreviationRow', '
|
|
65
|
+
__all__ = ['ACID_ROLES', 'AbbreviationRow', 'ComponentRow', 'DEFAULT_STABILIZER_CLASSES',
|
|
66
|
+
'LogRecord', 'SALT_CLASSES', 'SALT_MATCHES', 'SaltComposition',
|
|
66
67
|
'abbreviation_row', 'abbreviations_rows', 'alert_count',
|
|
67
68
|
'calc_implicit', 'canonicalize', 'check_valence', 'crippen_logp', 'crippen_mr',
|
|
68
69
|
'decompose_salts', 'expand_abbreviations', 'explicify_hydrogens', 'fix_resonance',
|
|
@@ -68,9 +68,12 @@ def canonicalize(molecule: MoleculeContainer, *, fix_tautomers: bool = True,
|
|
|
68
68
|
sodium acetate stays sodium acetate -- there is no proton in it to move -- while ammonium acetate
|
|
69
69
|
becomes acetic acid and ammonia, both drawings of one salt.
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
`standardize()` moves the net charge wherever a drawing omitted one: the organometallic completion
|
|
72
|
+
charges a metal nobody drew a halide for; `fix_salt_charges()` pairs each free metal with the acid
|
|
73
|
+
that belongs to it, deprotonating the acid and charging the metal only when it arrives neutral -- a
|
|
74
|
+
metal already drawn charged takes the proton and the total falls. Both say so in the log, and
|
|
75
|
+
`neutralize()` two steps later leaves the repair alone: `acids.tsv`'s rows are charged sites only,
|
|
76
|
+
so a sodium cation is no donor to any of them.
|
|
74
77
|
"""
|
|
75
78
|
# A refusal at the answer boundary, which is the only place one belongs. `smiles()` returns
|
|
76
79
|
# whichever container its string describes, so a `>>` in a structure column arrives here as a
|
|
@@ -38,10 +38,10 @@ Ties are left tied. Two candidates of equal rank are automorphic, so which one
|
|
|
38
38
|
observable in the result, and the sort being stable makes the arbitrary half of the choice cheap.
|
|
39
39
|
Charging needs no order at all, being one atom's charge and nothing else's.
|
|
40
40
|
|
|
41
|
-
NET CHARGE MOVES HERE,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
NET CHARGE MOVES HERE, and every spelling that moves it is accepted: a lone `[Zn+]` beside a neutral
|
|
42
|
+
halogen sits at `+1`, a neutral metal beside `[Cl-]` at `-1`, and a charged metal with no halide
|
|
43
|
+
leaves `0` for `+1`. A dropped sign is the premise of the stage, so the record states which way the
|
|
44
|
+
total went rather than the pass declining to move it.
|
|
45
45
|
"""
|
|
46
46
|
from collections.abc import MutableSequence
|
|
47
47
|
from ..core import LogRecord, MoleculeContainer
|