1
0
mirror of synced 2026-01-31 19:01:59 -05:00
Files
airbyte/airbyte-cdk/python/connector_builder/models.py
Alexandre Girard bb5741a0c0 Connector builder: support for test read with message grouping per slices (#23925)
* 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>
2023-03-15 17:12:37 -07:00

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