moleculeresolver.services ========================= .. py:module:: moleculeresolver.services Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/moleculeresolver/services/base/index /autoapi/moleculeresolver/services/cir_adapter/index /autoapi/moleculeresolver/services/opsin_adapter/index /autoapi/moleculeresolver/services/other_adapters/index /autoapi/moleculeresolver/services/pubchem_adapter/index /autoapi/moleculeresolver/services/registry/index Classes ------- .. autoapisummary:: moleculeresolver.services.ServiceAdapter moleculeresolver.services.ServiceSearchResult moleculeresolver.services.CIRServiceAdapter moleculeresolver.services.OPSINServiceAdapter moleculeresolver.services.CASRegistryServiceAdapter moleculeresolver.services.ChEBIServiceAdapter moleculeresolver.services.ChemeoServiceAdapter moleculeresolver.services.CTSServiceAdapter moleculeresolver.services.CompToxServiceAdapter moleculeresolver.services.NISTServiceAdapter moleculeresolver.services.SRSServiceAdapter moleculeresolver.services.PubChemServiceAdapter moleculeresolver.services.ServiceAdapterRegistry Package Contents ---------------- .. py:class:: ServiceAdapter Bases: :py:obj:`abc.ABC` Contract for a resolver service adapter. .. py:attribute:: name :type: str .. py:method:: resolve(resolver: moleculeresolver.moleculeresolver.MoleculeResolver, flattened_identifiers: list[str], flattened_modes: list[str], required_formula: Optional[str], required_charge: Optional[int], required_structure_type: Optional[str]) -> Optional[ServiceSearchResult] Resolve by trying each identifier/mode pair in order. .. py:method:: resolve_one(resolver: moleculeresolver.moleculeresolver.MoleculeResolver, identifier: str, mode: str, required_formula: Optional[str], required_charge: Optional[int], required_structure_type: Optional[str]) -> Optional[ServiceSearchResult] :abstractmethod: Resolve one identifier/mode pair for this adapter or return None. .. py:class:: ServiceSearchResult Normalized single-service search result consumed by MoleculeResolver. .. py:attribute:: molecule :type: moleculeresolver.molecule.Molecule .. py:attribute:: mode_used :type: str .. py:attribute:: identifier_used :type: str .. py:attribute:: additional_information :type: Optional[str] .. py:attribute:: current_service :type: str .. py:attribute:: synonyms :type: list[str] .. py:attribute:: cas :type: set[str] .. py:class:: CIRServiceAdapter Bases: :py:obj:`moleculeresolver.services.base.ServiceAdapter` .. py:attribute:: name :value: 'cir' .. py:method:: resolve_one(resolver, identifier: str, mode: str, required_formula: Optional[str], required_charge: Optional[int], required_structure_type: Optional[str]) -> Optional[moleculeresolver.services.base.ServiceSearchResult] .. py:class:: OPSINServiceAdapter Bases: :py:obj:`moleculeresolver.services.base.ServiceAdapter` Contract for a resolver service adapter. .. py:attribute:: name :value: 'opsin' .. py:method:: resolve_one(resolver, identifier: str, mode: str, required_formula: Optional[str], required_charge: Optional[int], required_structure_type: Optional[str]) -> Optional[moleculeresolver.services.base.ServiceSearchResult] Resolve one identifier/mode pair for this adapter or return None. .. py:class:: CASRegistryServiceAdapter Bases: :py:obj:`_ModeDrivenAdapter` .. py:attribute:: name :value: 'cas_registry' .. py:attribute:: fetch_method_name :value: 'get_molecule_from_CAS_registry' .. py:method:: _build_result(cmp, mode: str) -> moleculeresolver.services.base.ServiceSearchResult .. py:class:: ChEBIServiceAdapter Bases: :py:obj:`_ModeDrivenAdapter` .. py:attribute:: name :value: 'chebi' .. py:attribute:: fetch_method_name :value: 'get_molecule_from_ChEBI' .. py:method:: _build_result(cmp, mode: str) -> moleculeresolver.services.base.ServiceSearchResult .. py:class:: ChemeoServiceAdapter Bases: :py:obj:`_ModeDrivenAdapter` .. py:attribute:: name :value: 'chemeo' .. py:attribute:: fetch_method_name :value: 'get_molecule_from_Chemeo' .. py:method:: _build_result(cmp, mode: str) -> moleculeresolver.services.base.ServiceSearchResult .. py:class:: CTSServiceAdapter Bases: :py:obj:`_ModeDrivenAdapter` .. py:attribute:: name :value: 'cts' .. py:attribute:: fetch_method_name :value: 'get_molecule_from_CTS' .. py:method:: _build_result(cmp, mode: str) -> moleculeresolver.services.base.ServiceSearchResult .. py:class:: CompToxServiceAdapter Bases: :py:obj:`_ModeDrivenAdapter` .. py:attribute:: name :value: 'comptox' .. py:attribute:: fetch_method_name :value: 'get_molecule_from_CompTox' .. py:method:: _build_result(cmp, mode: str) -> moleculeresolver.services.base.ServiceSearchResult .. py:class:: NISTServiceAdapter Bases: :py:obj:`_ModeDrivenAdapter` .. py:attribute:: name :value: 'nist' .. py:attribute:: fetch_method_name :value: 'get_molecule_from_NIST' .. py:method:: _build_result(cmp, mode: str) -> moleculeresolver.services.base.ServiceSearchResult .. py:class:: SRSServiceAdapter Bases: :py:obj:`_ModeDrivenAdapter` .. py:attribute:: name :value: 'srs' .. py:attribute:: fetch_method_name :value: 'get_molecule_from_SRS' .. py:method:: _build_result(cmp, mode: str) -> moleculeresolver.services.base.ServiceSearchResult .. py:class:: PubChemServiceAdapter Bases: :py:obj:`moleculeresolver.services.base.ServiceAdapter` Contract for a resolver service adapter. .. py:attribute:: name :value: 'pubchem' .. py:method:: resolve_one(resolver, identifier: str, mode: str, required_formula: Optional[str], required_charge: Optional[int], required_structure_type: Optional[str]) -> Optional[moleculeresolver.services.base.ServiceSearchResult] Resolve one identifier/mode pair for this adapter or return None. .. py:class:: ServiceAdapterRegistry Simple runtime registry for all service adapters. .. py:attribute:: _adapters :type: dict[str, moleculeresolver.services.base.ServiceAdapter] .. py:method:: register(adapter: moleculeresolver.services.base.ServiceAdapter) -> None .. py:method:: get(service_name: str) -> Optional[moleculeresolver.services.base.ServiceAdapter] .. py:method:: names() -> list[str]