pyobo 0.10.6__tar.gz → 0.10.7__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.
- {pyobo-0.10.6/src/pyobo.egg-info → pyobo-0.10.7}/PKG-INFO +1 -1
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/conf.py +1 -1
- {pyobo-0.10.6 → pyobo-0.10.7}/setup.cfg +1 -1
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/identifier_utils.py +1 -1
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/obographs.py +12 -4
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/reader.py +17 -14
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/complexportal.py +11 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/geonames.py +15 -5
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/npass.py +3 -1
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/uniprot/uniprot.py +5 -5
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/struct/reference.py +7 -3
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/struct/struct.py +4 -4
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/struct/typedef.py +9 -1
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/version.py +1 -1
- {pyobo-0.10.6 → pyobo-0.10.7/src/pyobo.egg-info}/PKG-INFO +1 -1
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_get.py +18 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/.readthedocs.yml +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/LICENSE +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/MANIFEST.in +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/README.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.Canonicalizer.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.Obo.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.OboNormalizer.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.Reference.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.Synonym.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.SynonymTypeDef.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.Term.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.TypeDef.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.ensure_path.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.from_obo_path.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.from_obonet.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_alts_to_id.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_ancestors.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_children.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_definition.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_descendants.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_equivalent.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_properties_df.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_properties_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_properties_multimapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_relations_df.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_xrefs.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_graph.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_hierarchy.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_definition_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_multirelations_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_name_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_species_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_synonyms_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_to_alts.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_ids.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_name.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_name_by_curie.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_name_id_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_ontology.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_primary_curie.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_primary_identifier.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_priority_curie.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_properties.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_properties_df.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_property.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_relation.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_relation_mapping.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_relations_df.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_species.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_sssom_df.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_subhierarchy.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_synonyms.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_typedef_df.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_version.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_xref.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_xrefs.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_xrefs_df.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.ground.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.has_ancestor.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.has_nomenclature_plugin.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.has_xref_plugin.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.is_descendent.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.iter_nomenclature_plugins.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.iter_xref_plugins.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.normalize_curie.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.parse_results_from_obo.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.run_nomenclature_plugin.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.run_xref_plugin.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/index.rst +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/docs/source/logo.png +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/pyproject.toml +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/__main__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/alts.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/hierarchy.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/metadata.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/names.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/properties.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/relations.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/species.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/typedefs.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/api/xrefs.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/cli.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/gilda/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/gilda/__main__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/gilda/app.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/gilda/cli.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/gilda/templates/base.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/gilda/templates/home.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/gilda/templates/matches.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/mapper/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/mapper/__main__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/mapper/cli.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/mapper/mapper.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/mapper/templates/base.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/apps/mapper/templates/mapper_home.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/aws.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/cli/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/cli/aws.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/cli/cli.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/cli/database.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/cli/lookup.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/cli/utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/constants.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/getters.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/gilda_utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/mocks.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/normalizer.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/plugins.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/registries/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/registries/metaregistry.json +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/registries/metaregistry.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/resource_utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/resources/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/resources/ncbitaxon.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/resources/ncbitaxon.tsv.gz +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/resources/ro.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/resources/ro.tsv +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/agrovoc.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/antibodyregistry.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/biogrid.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/ccle.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/cgnc.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/chebi.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/chembl.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/conso.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/cpt.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/cvx.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/depmap.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/dictybase_gene.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/drugbank.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/drugbank_salt.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/drugcentral.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/expasy.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/famplex.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/flybase.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/gmt_utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/go.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/gwascentral_phenotype.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/gwascentral_study.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/hgnc.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/hgncgenefamily.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/icd10.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/icd11.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/icd_utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/interpro.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/itis.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/kegg/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/kegg/api.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/kegg/genes.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/kegg/genome.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/kegg/pathway.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/mesh.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/mgi.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/mirbase.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/mirbase_constants.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/mirbase_family.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/mirbase_mature.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/msigdb.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/ncbigene.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/pathbank.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/pfam.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/pfam_clan.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/pid.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/pombase.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/pubchem.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/reactome.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/rgd.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/rhea.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/ror.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/selventa/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/selventa/schem.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/selventa/scomp.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/selventa/sdis.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/selventa/sfam.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/sgd.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/slm.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/umls/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/umls/__main__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/umls/get_synonym_types.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/umls/synonym_types.tsv +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/umls/umls.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/uniprot/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/uniprot/uniprot_ptm.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/wikipathways.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/sources/zfin.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/ssg/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/ssg/base.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/ssg/index.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/ssg/term.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/ssg/typedef.html +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/struct/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/struct/utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/utils/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/utils/cache.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/utils/io.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/utils/iter.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/utils/misc.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/utils/ndex_utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/utils/path.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/canonicalizer.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/priority.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/biomappings.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/cbms2019.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/chembl.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/compath.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/famplex.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/gilda.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/intact.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/ncit.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/pubchem.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/wikidata.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo/xrefdb/xrefs_pipeline.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo.egg-info/SOURCES.txt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo.egg-info/dependency_links.txt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo.egg-info/entry_points.txt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo.egg-info/not-zip-safe +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo.egg-info/requires.txt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/src/pyobo.egg-info/top_level.txt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/constants.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/resources/citations.txt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/resources/test_chebi.obo +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/resources/test_msigdb.gmt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/resources/test_wikipathways.gmt +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_alt_ids.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_caches.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_extract.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_get_miriam_url.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_gmt.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_ground.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_mapper.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_sources/__init__.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_sources/test_famplex.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_struct.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tests/test_utils.py +0 -0
- {pyobo-0.10.6 → pyobo-0.10.7}/tox.ini +0 -0
|
@@ -119,7 +119,7 @@ def wrap_norm_prefix(f):
|
|
|
119
119
|
|
|
120
120
|
def standardize_ec(ec: str) -> str:
|
|
121
121
|
"""Standardize an EC code identifier by removing all trailing dashes and dots."""
|
|
122
|
-
ec = ec.strip()
|
|
122
|
+
ec = ec.strip().replace(" ", "")
|
|
123
123
|
for _ in range(4):
|
|
124
124
|
ec = ec.rstrip("-").rstrip(".")
|
|
125
125
|
return ec
|
|
@@ -19,7 +19,7 @@ from bioontologies.obograph import (
|
|
|
19
19
|
from bioontologies.robot import ParseResults
|
|
20
20
|
|
|
21
21
|
from pyobo.struct import Obo, Reference, Term
|
|
22
|
-
from pyobo.struct.typedef import is_a
|
|
22
|
+
from pyobo.struct.typedef import definition_source, is_a
|
|
23
23
|
|
|
24
24
|
__all__ = [
|
|
25
25
|
"graph_from_obo",
|
|
@@ -61,12 +61,12 @@ def _rewire(r: Reference) -> curies.Reference:
|
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
def _get_class_node(term: Term) -> Node:
|
|
64
|
-
if
|
|
65
|
-
definition = None
|
|
66
|
-
else:
|
|
64
|
+
if term.definition or term.provenance:
|
|
67
65
|
definition = Definition.from_parsed(
|
|
68
66
|
value=term.definition, references=[_rewire(p) for p in term.provenance]
|
|
69
67
|
)
|
|
68
|
+
else:
|
|
69
|
+
definition = None
|
|
70
70
|
|
|
71
71
|
if term.xrefs:
|
|
72
72
|
if not term.xref_types:
|
|
@@ -126,3 +126,11 @@ def _iter_edges(term: Term) -> Iterable[Edge]:
|
|
|
126
126
|
_rewire(typedef.reference),
|
|
127
127
|
_rewire(target),
|
|
128
128
|
)
|
|
129
|
+
|
|
130
|
+
for provenance_reference in term.provenance:
|
|
131
|
+
yield Edge.from_parsed(
|
|
132
|
+
_rewire(term.reference),
|
|
133
|
+
_rewire(definition_source.reference),
|
|
134
|
+
_rewire(provenance_reference),
|
|
135
|
+
)
|
|
136
|
+
# TODO also look through xrefs and seealso to get provenance xrefs?
|
|
@@ -444,20 +444,23 @@ def _extract_synonym(
|
|
|
444
444
|
break
|
|
445
445
|
|
|
446
446
|
stype: Optional[SynonymTypeDef] = None
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
447
|
+
for _stype in synonym_typedefs.values():
|
|
448
|
+
# Since there aren't a lot of carefully defined synonym definitions, it
|
|
449
|
+
# can appear as a string or curie. Therefore, we might see temporary prefixes
|
|
450
|
+
# get added, so we should check against full curies as well as local unique
|
|
451
|
+
# identifiers
|
|
452
|
+
if rest.startswith(_stype.curie):
|
|
453
|
+
rest = rest[len(_stype.curie) :].strip()
|
|
454
|
+
stype = _stype
|
|
455
|
+
break
|
|
456
|
+
elif rest.startswith(_stype.preferred_curie):
|
|
457
|
+
rest = rest[len(_stype.preferred_curie) :].strip()
|
|
458
|
+
stype = _stype
|
|
459
|
+
break
|
|
460
|
+
elif rest.startswith(_stype.identifier):
|
|
461
|
+
rest = rest[len(_stype.identifier) :].strip()
|
|
462
|
+
stype = _stype
|
|
463
|
+
break
|
|
461
464
|
|
|
462
465
|
if not rest.startswith("[") or not rest.endswith("]"):
|
|
463
466
|
logger.warning("[%s:%s] problem with synonym: %s", prefix, identifier, s)
|
|
@@ -82,6 +82,17 @@ def _parse_xrefs(s) -> List[Tuple[Reference, str]]:
|
|
|
82
82
|
logger.warning("xref missing (: %s", xref)
|
|
83
83
|
continue
|
|
84
84
|
note = note.rstrip(")")
|
|
85
|
+
note.replace("rhea:rhea ", "rhea:")
|
|
86
|
+
note.replace("rhea:Rhea ", "rhea:")
|
|
87
|
+
note.replace("eccode::", "eccode:")
|
|
88
|
+
note.replace("eccode:EC:", "eccode:")
|
|
89
|
+
note.replace("eccode:RHEA:", "rhea:")
|
|
90
|
+
if note.lower().startswith("rhea "):
|
|
91
|
+
note = note[len("Rhea ") :]
|
|
92
|
+
if note.lower().startswith("rhea:rhea "):
|
|
93
|
+
note = note[len("rhea:rhea ") :]
|
|
94
|
+
if note.lower().startswith("EC:"):
|
|
95
|
+
note = note[len("EC:") :]
|
|
85
96
|
try:
|
|
86
97
|
reference = Reference.from_curie(xref_curie)
|
|
87
98
|
except ValueError:
|
|
@@ -38,7 +38,9 @@ def get_terms(*, force: bool = False) -> Collection[Term]:
|
|
|
38
38
|
"""Get terms."""
|
|
39
39
|
code_to_country = get_code_to_country(force=force)
|
|
40
40
|
code_to_admin1 = get_code_to_admin1(code_to_country, force=force)
|
|
41
|
-
code_to_admin2 = get_code_to_admin2(
|
|
41
|
+
code_to_admin2 = get_code_to_admin2(
|
|
42
|
+
code_to_country=code_to_country, code_to_admin1=code_to_admin1, force=force
|
|
43
|
+
)
|
|
42
44
|
id_to_term = get_cities(
|
|
43
45
|
code_to_country=code_to_country,
|
|
44
46
|
code_to_admin1=code_to_admin1,
|
|
@@ -113,7 +115,7 @@ def get_code_to_admin1(
|
|
|
113
115
|
|
|
114
116
|
|
|
115
117
|
def get_code_to_admin2(
|
|
116
|
-
code_to_admin1: Mapping[str, Term],
|
|
118
|
+
*, code_to_country: Mapping[str, Term], code_to_admin1: Mapping[str, Term], force: bool = False
|
|
117
119
|
) -> Mapping[str, Term]:
|
|
118
120
|
"""Get a mapping from admin2 code to term."""
|
|
119
121
|
admin2_df = ensure_df(
|
|
@@ -134,8 +136,13 @@ def get_code_to_admin2(
|
|
|
134
136
|
term.append_property("code", code)
|
|
135
137
|
code_to_admin2[code] = term
|
|
136
138
|
admin1_code = code.rsplit(".", 1)[0]
|
|
137
|
-
admin1_term = code_to_admin1
|
|
138
|
-
|
|
139
|
+
admin1_term = code_to_admin1.get(admin1_code)
|
|
140
|
+
if admin1_term:
|
|
141
|
+
term.append_relationship(part_of, admin1_term)
|
|
142
|
+
else:
|
|
143
|
+
country_code = admin1_code.split(".", 1)[0]
|
|
144
|
+
country_term = code_to_country[country_code]
|
|
145
|
+
term.append_relationship(part_of, country_term)
|
|
139
146
|
return code_to_admin2
|
|
140
147
|
|
|
141
148
|
|
|
@@ -197,7 +204,10 @@ def get_cities(
|
|
|
197
204
|
term.append_synonym(synonym)
|
|
198
205
|
|
|
199
206
|
if pd.isna(admin1):
|
|
200
|
-
|
|
207
|
+
# TODO try to annotate these directly onto countries
|
|
208
|
+
tqdm.write(
|
|
209
|
+
f"[geonames:{identifier}] {name}, a city in {country}, is missing admin 1 code"
|
|
210
|
+
)
|
|
201
211
|
continue
|
|
202
212
|
|
|
203
213
|
admin1_full = f"{country}.{admin1}"
|
|
@@ -72,7 +72,9 @@ def iter_terms(version: str, force: bool = False) -> Iterable[Term]:
|
|
|
72
72
|
|
|
73
73
|
# TODO check that the first is always the parent compound?
|
|
74
74
|
if pd.notna(pubchem_compound_ids):
|
|
75
|
-
pubchem_compound_ids =
|
|
75
|
+
pubchem_compound_ids = [
|
|
76
|
+
yy.strip() for xx in pubchem_compound_ids.split(";") for yy in xx.strip().split(",")
|
|
77
|
+
]
|
|
76
78
|
if len(pubchem_compound_ids) > 1:
|
|
77
79
|
logger.debug("multiple cids for %s: %s", identifier, pubchem_compound_ids)
|
|
78
80
|
for pubchem_compound_id in pubchem_compound_ids:
|
|
@@ -30,7 +30,7 @@ class UniProtGetter(Obo):
|
|
|
30
30
|
|
|
31
31
|
def iter_terms(self, force: bool = False) -> Iterable[Term]:
|
|
32
32
|
"""Iterate over terms in the ontology."""
|
|
33
|
-
yield from iter_terms(
|
|
33
|
+
yield from iter_terms(version=self._version_or_raise)
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def get_obo(force: bool = False) -> Obo:
|
|
@@ -38,9 +38,9 @@ def get_obo(force: bool = False) -> Obo:
|
|
|
38
38
|
return UniProtGetter(force=force)
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
def iter_terms(version: Optional[str] = None
|
|
41
|
+
def iter_terms(version: Optional[str] = None) -> Iterable[Term]:
|
|
42
42
|
"""Iterate over UniProt Terms."""
|
|
43
|
-
with open_reader(ensure(version=version
|
|
43
|
+
with open_reader(ensure(version=version)) as reader:
|
|
44
44
|
_ = next(reader) # header
|
|
45
45
|
for uniprot_id, name, taxonomy_id, _synonyms, ecs, pubmeds, pdbs in tqdm(
|
|
46
46
|
reader, desc="Mapping UniProt", unit_scale=True
|
|
@@ -63,11 +63,11 @@ def iter_terms(version: Optional[str] = None, force: bool = False) -> Iterable[T
|
|
|
63
63
|
yield term
|
|
64
64
|
|
|
65
65
|
|
|
66
|
-
def ensure(version: Optional[str] = None
|
|
66
|
+
def ensure(version: Optional[str] = None) -> Path:
|
|
67
67
|
"""Ensure the reviewed uniprot names are available."""
|
|
68
68
|
if version is None:
|
|
69
69
|
version = bioversions.get_version("uniprot")
|
|
70
|
-
return RAW_MODULE.ensure(PREFIX, version, name="reviewed.tsv.gz", url=REVIEWED_URL
|
|
70
|
+
return RAW_MODULE.ensure(PREFIX, version, name="reviewed.tsv.gz", url=REVIEWED_URL)
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
if __name__ == "__main__":
|
|
@@ -31,11 +31,15 @@ class Reference(curies.Reference):
|
|
|
31
31
|
raise ExpansionError(f"Unknown prefix: {v}")
|
|
32
32
|
return norm_prefix
|
|
33
33
|
|
|
34
|
+
@property
|
|
35
|
+
def preferred_prefix(self) -> str:
|
|
36
|
+
"""Get the preferred curie for this reference."""
|
|
37
|
+
return bioregistry.get_preferred_prefix(self.prefix) or self.prefix
|
|
38
|
+
|
|
34
39
|
@property
|
|
35
40
|
def preferred_curie(self) -> str:
|
|
36
41
|
"""Get the preferred curie for this reference."""
|
|
37
|
-
|
|
38
|
-
return f"{pp}:{self.identifier}"
|
|
42
|
+
return f"{self.preferred_prefix}:{self.identifier}"
|
|
39
43
|
|
|
40
44
|
@root_validator(pre=True)
|
|
41
45
|
def validate_identifier(cls, values): # noqa
|
|
@@ -125,7 +129,7 @@ class Reference(curies.Reference):
|
|
|
125
129
|
if identifier_lower.startswith(f"{self.prefix.lower()}:"):
|
|
126
130
|
rv = identifier_lower
|
|
127
131
|
else:
|
|
128
|
-
rv = f"{self.
|
|
132
|
+
rv = f"{self.preferred_prefix}:{self._escaped_identifier}"
|
|
129
133
|
if self.name:
|
|
130
134
|
rv = f"{rv} ! {self.name}"
|
|
131
135
|
return rv
|
|
@@ -384,9 +384,9 @@ class Term(Referenced):
|
|
|
384
384
|
) -> None:
|
|
385
385
|
"""Append a property."""
|
|
386
386
|
if isinstance(prop, (Reference, Referenced)):
|
|
387
|
-
prop = prop.
|
|
387
|
+
prop = prop.preferred_curie
|
|
388
388
|
if isinstance(value, (Reference, Referenced)):
|
|
389
|
-
value = value.
|
|
389
|
+
value = value.preferred_curie
|
|
390
390
|
self.properties[prop].append(value)
|
|
391
391
|
|
|
392
392
|
def _definition_fp(self) -> str:
|
|
@@ -423,11 +423,11 @@ class Term(Referenced):
|
|
|
423
423
|
yield f"def: {self._definition_fp()}"
|
|
424
424
|
|
|
425
425
|
for xref in sorted(self.xrefs, key=attrgetter("prefix", "identifier")):
|
|
426
|
-
yield f"xref: {xref
|
|
426
|
+
yield f"xref: {xref}" # __str__ bakes in the ! name
|
|
427
427
|
|
|
428
428
|
parent_tag = "is_a" if self.type == "Term" else "instance_of"
|
|
429
429
|
for parent in sorted(self.parents, key=attrgetter("prefix", "identifier")):
|
|
430
|
-
yield f"{parent_tag}: {parent
|
|
430
|
+
yield f"{parent_tag}: {parent}" # __str__ bakes in the ! name
|
|
431
431
|
|
|
432
432
|
for typedef, references in sorted(self.relationships.items(), key=_sort_relations):
|
|
433
433
|
if (not typedefs or typedef not in typedefs) and (
|
|
@@ -50,7 +50,10 @@ __all__ = [
|
|
|
50
50
|
|
|
51
51
|
@dataclass
|
|
52
52
|
class TypeDef(Referenced):
|
|
53
|
-
"""A type definition in OBO.
|
|
53
|
+
"""A type definition in OBO.
|
|
54
|
+
|
|
55
|
+
See the subsection of https://owlcollab.github.io/oboformat/doc/GO.format.obo-1_4.html#S.2.2.
|
|
56
|
+
"""
|
|
54
57
|
|
|
55
58
|
reference: Reference
|
|
56
59
|
comment: Optional[str] = None
|
|
@@ -108,6 +111,8 @@ class TypeDef(Referenced):
|
|
|
108
111
|
_chain = " ".join(link.preferred_curie for link in self.holds_over_chain)
|
|
109
112
|
_names = " / ".join(link.name or "_" for link in self.holds_over_chain)
|
|
110
113
|
yield f"holds_over_chain: {_chain} ! {_names}"
|
|
114
|
+
if self.inverse:
|
|
115
|
+
yield f"inverse_of: {self.inverse}"
|
|
111
116
|
|
|
112
117
|
@classmethod
|
|
113
118
|
def from_triple(cls, prefix: str, identifier: str, name: Optional[str] = None) -> "TypeDef":
|
|
@@ -276,6 +281,9 @@ alternative_term = TypeDef.from_triple(
|
|
|
276
281
|
has_ontology_root_term = TypeDef.from_triple(
|
|
277
282
|
prefix=IAO_PREFIX, identifier="0000700", name="has ontology root term"
|
|
278
283
|
)
|
|
284
|
+
definition_source = TypeDef.from_triple(
|
|
285
|
+
prefix=IAO_PREFIX, identifier="0000119", name="definition source"
|
|
286
|
+
)
|
|
279
287
|
has_dbxref = TypeDef.from_curie("oboInOwl:hasDbXref", name="has database cross-reference")
|
|
280
288
|
|
|
281
289
|
editor_note = TypeDef.from_triple(prefix=IAO_PREFIX, identifier="0000116", name="editor note")
|
|
@@ -19,6 +19,7 @@ from pyobo.reader import (
|
|
|
19
19
|
iterate_node_synonyms,
|
|
20
20
|
iterate_node_xrefs,
|
|
21
21
|
)
|
|
22
|
+
from pyobo.struct.struct import acronym
|
|
22
23
|
from tests.constants import TEST_CHEBI_OBO_PATH, chebi_patch
|
|
23
24
|
|
|
24
25
|
|
|
@@ -105,6 +106,7 @@ class TestParseObonet(unittest.TestCase):
|
|
|
105
106
|
iupac_name = SynonymTypeDef.from_text("IUPAC NAME", lower=False)
|
|
106
107
|
synoynym_typedefs = {
|
|
107
108
|
"IUPAC_NAME": iupac_name,
|
|
109
|
+
acronym.curie: acronym,
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
for expected_synonym, text in [
|
|
@@ -137,6 +139,22 @@ class TestParseObonet(unittest.TestCase):
|
|
|
137
139
|
Synonym(name="LTEC I", specificity="EXACT"),
|
|
138
140
|
'"LTEC I" []',
|
|
139
141
|
),
|
|
142
|
+
(
|
|
143
|
+
Synonym(name="HAdV-A", specificity="BROAD", type=acronym),
|
|
144
|
+
'"HAdV-A" BROAD OMO:0003012 []',
|
|
145
|
+
),
|
|
146
|
+
(
|
|
147
|
+
Synonym(name="HAdV-A", specificity="BROAD", type=acronym),
|
|
148
|
+
'"HAdV-A" BROAD omo:0003012 []',
|
|
149
|
+
),
|
|
150
|
+
(
|
|
151
|
+
Synonym(name="HAdV-A", specificity="EXACT", type=acronym),
|
|
152
|
+
'"HAdV-A" OMO:0003012 []',
|
|
153
|
+
),
|
|
154
|
+
(
|
|
155
|
+
Synonym(name="HAdV-A", specificity="EXACT", type=acronym),
|
|
156
|
+
'"HAdV-A" omo:0003012 []',
|
|
157
|
+
),
|
|
140
158
|
]:
|
|
141
159
|
with self.subTest(s=text):
|
|
142
160
|
actual_synonym = _extract_synonym(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobo-0.10.6 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_properties_multimapping.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|