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)