1
0
mirror of synced 2026-01-02 12:02:47 -05:00
Files
airbyte/airbyte-cdk/python/airbyte_cdk/sources/declarative/decoders/decoder.py
Brian Lai ca80d3782a [low code connectors] perform schema validation of the input config against the declarative language schema (#15543)
* draft: first pass at complete schema language generation and factory validator

* actually a working validator and fixes to the schema that went uncaught

* remove extra spike file

* fix formatting file

* pr feedback and a little bit of refactoring

* fix some types that were erroneously marked as invalid schema

* some comments

* add jsonschemamixin to interfaces

* update changelog

* bump version
2022-08-18 15:29:26 -04:00

27 lines
702 B
Python

#
# Copyright (c) 2022 Airbyte, Inc., all rights reserved.
#
from abc import abstractmethod
from dataclasses import dataclass
from typing import Any, List, Mapping, Union
import requests
from dataclasses_jsonschema import JsonSchemaMixin
@dataclass
class Decoder(JsonSchemaMixin):
"""
Decoder strategy to transform a requests.Response into a Mapping[str, Any]
"""
@abstractmethod
def decode(self, response: requests.Response) -> Union[Mapping[str, Any], List]:
"""
Decodes a requests.Response into a Mapping[str, Any] or an array
:param response: the response to decode
:return: Mapping or array describing the response
"""
pass