from typing import Any, Dict, Optional, Union import requests import uvicorn from fastapi import FastAPI, Request, Response from fastapi.middleware.cors import CORSMiddleware from pymetadata.core.annotation import RDFAnnotation, RDFAnnotationData from pymetadata.identifiers.miriam import BQB from pymetadata.omex import EntryFormat, Manifest, ManifestEntry, Omex from sbmlutils import log from sbmlutils.console import console from sbmlutils.report.api_examples import ExampleMetaData, examples_info from sbmlutils.report.sbmlinfo import SBMLDocumentInfo logger = log.get_logger(__name__) api = FastAPI( title="sbml4humans", description="sbml4humans backend api", version="0.1.2", terms_of_service= "https://github.com/matthiaskoenig/sbmlutils/blob/develop/sbml4humans/privacy_notice.md", contact={ "name": "Matthias König", "url": "https://livermetabolism.com", "email": "*****@*****.**", }, license_info={ "name": "LGPLv3", "url": "http://opensource.org/licenses/LGPL-3.0",
from typing import Dict, Iterable, List, Optional, Tuple, Union import libsbml import pandas as pd from pymetadata.core.annotation import RDFAnnotation as Annotation from pymetadata.identifiers.miriam import BQB, BQM from sbmlutils import utils from sbmlutils.console import console from sbmlutils.io.sbml import read_sbml, write_sbml from sbmlutils.log import get_logger from ..validation import check logger = get_logger(__name__) def annotate_sbml( source: Union[Path, str], annotations_path: Path, filepath: Path ) -> libsbml.SBMLDocument: """ Annotate a given SBML file with the provided annotations. :param source: SBML to annotation :param annotations_path: external file with annotations :param filepath: annotated SBML file :return: annotated SBMLDocument """ doc: libsbml.SBMLDocument = read_sbml(source=source)