Skip to content

text_json

Strategy class for text/json.

JSONDataParseStrategy dataclass

Parse strategy for JSON.

Registers strategies:

  • ("mediaType", "text/json")
Source code in oteapi/strategies/parse/text_json.py
@dataclass
@StrategyFactory.register(("mediaType", "text/json"))
class JSONDataParseStrategy:
    """Parse strategy for JSON.

    **Registers strategies**:

    - `("mediaType", "text/json")`

    """

    resource_config: "ResourceConfig"

    def initialize(
        self, session: "Optional[Dict[str, Any]]" = None
    ) -> "Dict[str, Any]":
        """Initialize."""
        return {}

    def parse(self, session: "Optional[Dict[str, Any]]" = None) -> "Dict[str, Any]":
        """Parse json."""
        downloader = create_download_strategy(self.resource_config)
        output = downloader.get()
        cache = DataCache(self.resource_config.configuration)
        content = cache.get(output["key"])

        if isinstance(content, dict):
            return content
        return json.loads(content)

initialize(self, session=None)

Initialize.

Source code in oteapi/strategies/parse/text_json.py
def initialize(
    self, session: "Optional[Dict[str, Any]]" = None
) -> "Dict[str, Any]":
    """Initialize."""
    return {}

parse(self, session=None)

Parse json.

Source code in oteapi/strategies/parse/text_json.py
def parse(self, session: "Optional[Dict[str, Any]]" = None) -> "Dict[str, Any]":
    """Parse json."""
    downloader = create_download_strategy(self.resource_config)
    output = downloader.get()
    cache = DataCache(self.resource_config.configuration)
    content = cache.get(output["key"])

    if isinstance(content, dict):
        return content
    return json.loads(content)
Back to top