Coverage for src\airtable_to_sqlite\constants.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-07-05 19:54 +0100

1from enum import Enum 

2from typing import Dict, NewType, Set, Tuple 

3 

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: Dict[str, Tuple[Dict, Dict]] = { 

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} 

81 

82 

83AirtablePersonalAccessToken = NewType("AirtablePersonalAccessToken", str) 

84 

85ForeignKeySet = Set[Tuple[str, Tuple[str, str, str]]] 

86 

87 

88class PreferedNamingMethod(Enum): 

89 NAME = 1 

90 ID = 2