|
1 | 1 | """A source loading entities and lists from Affinity CRM (affinity.co)""" |
2 | 2 |
|
| 3 | +import logging |
3 | 4 | from copy import deepcopy |
4 | | -from dataclasses import field |
| 5 | +from dataclasses import field as dataclass_field |
5 | 6 | from enum import StrEnum |
6 | | -from typing import Any, Dict, Generator, Iterable, List, Optional, Sequence, Tuple |
7 | | -import logging |
| 7 | +from typing import ( |
| 8 | + Any, |
| 9 | + Dict, |
| 10 | + Generator, |
| 11 | + Iterable, |
| 12 | + List, |
| 13 | + Literal, |
| 14 | + Optional, |
| 15 | + Sequence, |
| 16 | + Tuple, |
| 17 | +) |
| 18 | + |
8 | 19 | import dlt |
9 | | -from dlt.common.typing import TDataItem |
10 | | -from dlt.sources import DltResource |
11 | | -from dlt.extract.items import DataItemWithMeta |
| 20 | +from dlt.common.libs.pydantic import DltConfig |
12 | 21 | from dlt.common.logger import is_logging |
13 | 22 | from dlt.common.schema.typing import TTableReferenceParam |
14 | | -from dlt.common.libs.pydantic import DltConfig |
15 | | -from pydantic_flatten_rootmodel import flatten_root_model |
| 23 | +from dlt.common.typing import TDataItem |
| 24 | +from dlt.extract.items import DataItemWithMeta |
| 25 | +from dlt.sources import DltResource |
16 | 26 | from pydantic import BaseModel, TypeAdapter |
17 | 27 | from pydantic.fields import FieldInfo |
| 28 | +from pydantic_flatten_rootmodel import flatten_root_model |
| 29 | + |
| 30 | +from .helpers import ListReference, generate_list_entries_path |
| 31 | +from .model.v1 import InteractionTypeToLiteral, Note |
| 32 | +from .model.v2 import ( |
| 33 | + Attendee, |
| 34 | + ChatMessage, |
| 35 | + CompaniesValue, |
| 36 | + Company, |
| 37 | + CompanyPaged, |
| 38 | + CompanyValue, |
| 39 | + DateValue, |
| 40 | + Dropdown, |
| 41 | + DropdownsValue, |
| 42 | + DropdownValue, |
| 43 | + FieldModel, |
| 44 | + FloatsValue, |
| 45 | + FloatValue, |
| 46 | + FormulaValue, |
| 47 | + Interaction, |
| 48 | + InteractionValue, |
| 49 | + ListModel, |
| 50 | + LocationsValue, |
| 51 | + LocationValue, |
| 52 | + Opportunity, |
| 53 | + OpportunityPaged, |
| 54 | + OpportunityWithFields, |
| 55 | + Person, |
| 56 | + PersonPaged, |
| 57 | + PersonsValue, |
| 58 | + PersonValue, |
| 59 | + RankedDropdown, |
| 60 | + RankedDropdownValue, |
| 61 | + TextsValue, |
| 62 | + TextValue, |
| 63 | + Type3, |
| 64 | +) |
18 | 65 | from .rest_client import ( |
| 66 | + MAX_PAGE_LIMIT_V1, |
| 67 | + MAX_PAGE_LIMIT_V2, |
19 | 68 | get_v1_rest_client, |
20 | 69 | get_v2_rest_client, |
21 | 70 | hooks, |
22 | | - MAX_PAGE_LIMIT_V1, |
23 | | - MAX_PAGE_LIMIT_V2, |
24 | 71 | ) |
25 | | -from .type_adapters import note_adapter, list_adapter |
26 | | -from .model.v1 import Note, InteractionTypeToLiteral |
27 | | -from .model.v2 import * |
28 | | -from .helpers import ListReference, generate_list_entries_path |
| 72 | +from .type_adapters import list_adapter, note_adapter |
29 | 73 |
|
30 | 74 |
|
31 | 75 | def pydantic_model_dump(model: BaseModel, **kwargs): |
@@ -518,7 +562,8 @@ def __list_entries() -> Iterable[TDataItem]: |
518 | 562 |
|
519 | 563 | @dlt.source(name="affinity") |
520 | 564 | def source( |
521 | | - list_refs: List[ListReference] = field(default_factory=list), dev_mode=False |
| 565 | + list_refs: List[ListReference] = dataclass_field(default_factory=list), |
| 566 | + dev_mode=False, |
522 | 567 | ) -> Sequence[DltResource]: |
523 | 568 | """ |
524 | 569 | list_refs - one or more references to lists and/or saved list views |
|
0 commit comments