Coverage for src\airtable_to_sqlite\constants.py: 100%
10 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-05 17:44 +0100
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-05 17:44 +0100
1from enum import Enum
2from typing import NewType
4OPTION_FIELDS = {
5 "linkedTableId": str,
6 "isReversed": bool,
7 "prefersSingleRecordLink": bool,
8 "inverseLinkFieldId": str,
9 "isValid": bool,
10 "recordLinkFieldId": str,
11 "icon": str,
12 "color": str,
13 "referencedFieldIds": str,
14 "result": str,
15 "precision": str,
16 "symbol": str,
17}
18NUMBER_FIELD_TYPES = [
19 "number",
20 "percent",
21 "currency",
22 "count",
23]
24META_TABLES = {
25 "_meta_table": (
26 {
27 "id": str,
28 "name": str,
29 "primaryFieldId": str,
30 },
31 {"pk": "id", "foreign_keys": [("primaryFieldId", "_meta_field", "id")]},
32 ),
33 "_meta_field": (
34 {
35 "id": str,
36 "name": str,
37 "type": str,
38 "tableId": str,
39 "options": str,
40 **OPTION_FIELDS,
41 },
42 {
43 "pk": ("id", "tableId"),
44 "foreign_keys": [
45 ("tableId", "_meta_table", "id"),
46 ("linkedTableId", "_meta_table", "id"),
47 ("inverseLinkFieldId", "_meta_field", "id"),
48 ("recordLinkFieldId", "_meta_table", "id"),
49 ],
50 },
51 ),
52 "_meta_field_choice": (
53 {
54 "id": str,
55 "name": str,
56 "color": str,
57 "fieldId": str,
58 },
59 {"pk": ("id", "fieldId"), "foreign_keys": [("fieldId", "_meta_field", "id")]},
60 ),
61 "_meta_view": (
62 {
63 "id": str,
64 "name": str,
65 "type": str,
66 "tableId": str,
67 },
68 {
69 "pk": ("id", "tableId"),
70 "foreign_keys": [("tableId", "_meta_table", "id")],
71 },
72 ),
73 "_meta_settings": (
74 {
75 "key": str,
76 "value": str,
77 },
78 {"pk": "key"},
79 ),
80}
83AirtablePersonalAccessToken = NewType("AirtablePersonalAccessToken", str)
85ForeignKeySet = set[tuple[str, tuple[str, str, str]]]
88class PreferedNamingMethod(Enum):
89 NAME = 1
90 ID = 2