* New connector_builder module for handling requests from the Connector Builder. Also implements `resolve_manifest` handler * Automated Commit - Formatting Changes * Rename ConnectorBuilderSource to ConnectorBuilderHandler * Update source_declarative_manifest README * Reorganize * read records * paste unit tests from connector builder server * compiles but tests fail * first test passes * Second test passes * 3rd test passes * one more test * another test * one more test * test * return StreamRead * test * test * rename * test * test * test * main seems to work * Update * Update * Update * Update * update * error message * rename * update * Update * CR improvements * fix test_source_declarative_manifest * fix tests * Update * Update * Update * Update * rename * rename * rename * format * Give connector_builder its own main.py * Update * reset * delete dead code * remove debug print * update test * Update * set right stream * Add --catalog argument * Remove unneeded preparse * Update README * handle error * tests pass * more explicit test * reset * format * fix merge * raise exception * fix * black format * raise with config * update * fix flake * __test_read_config is optional * fix * Automated Commit - Formatting Changes * fix * exclude_unset --------- Co-authored-by: Catherine Noll <noll.catherine@gmail.com> Co-authored-by: clnoll <clnoll@users.noreply.github.com> Co-authored-by: girarda <girarda@users.noreply.github.com>
81 lines
1.7 KiB
Python
81 lines
1.7 KiB
Python
#
|
|
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
|
|
#
|
|
|
|
from dataclasses import dataclass
|
|
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
|
|
@dataclass
|
|
class HttpResponse:
|
|
status: int
|
|
body: Optional[str] = None
|
|
headers: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
@dataclass
|
|
class HttpRequest:
|
|
url: str
|
|
parameters: Optional[Dict[str, Any]]
|
|
body: Optional[Dict[str, Any]]
|
|
headers: Optional[Dict[str, Any]]
|
|
http_method: str
|
|
|
|
|
|
@dataclass
|
|
class StreamReadPages:
|
|
records: List[object]
|
|
request: Optional[HttpRequest] = None
|
|
response: Optional[HttpResponse] = None
|
|
|
|
|
|
@dataclass
|
|
class StreamReadSlicesInnerPagesInner:
|
|
records: List[object]
|
|
request: Optional[HttpRequest]
|
|
response: Optional[HttpResponse]
|
|
|
|
|
|
@dataclass
|
|
class StreamReadSlicesInnerSliceDescriptor:
|
|
start_datetime: Optional[datetime]
|
|
list_item: Optional[str]
|
|
|
|
|
|
@dataclass
|
|
class StreamReadSlicesInner:
|
|
pages: List[StreamReadSlicesInnerPagesInner]
|
|
slice_descriptor: Optional[StreamReadSlicesInnerSliceDescriptor]
|
|
state: Optional[Dict[str, Any]]
|
|
|
|
|
|
@dataclass
|
|
class StreamRead(object):
|
|
logs: List[object]
|
|
slices: List[StreamReadSlicesInner]
|
|
test_read_limit_reached: bool
|
|
inferred_schema: Optional[Dict[str, Any]]
|
|
|
|
|
|
@dataclass
|
|
class StreamReadRequestBody:
|
|
manifest: Dict[str, Any]
|
|
stream: str
|
|
config: Dict[str, Any]
|
|
state: Optional[Dict[str, Any]]
|
|
record_limit: Optional[int]
|
|
|
|
|
|
@dataclass
|
|
class StreamReadSliceDescriptor:
|
|
start_datetime: Optional[datetime] = None
|
|
list_item: Optional[str] = None
|
|
|
|
|
|
@dataclass
|
|
class StreamReadSlices:
|
|
pages: List[StreamReadPages]
|
|
slice_descriptor: Optional[StreamReadSliceDescriptor] = None
|
|
state: Optional[Dict[str, Any]] = None
|