-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.py
More file actions
122 lines (78 loc) · 2.98 KB
/
Copy pathtypes.py
File metadata and controls
122 lines (78 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
"""Type definitions for Easy Enrichment API responses."""
from typing import List, Optional
try:
from typing import TypedDict
except ImportError:
from typing_extensions import TypedDict
class EnrichmentResult(TypedDict, total=False):
"""Enriched transaction data returned by the API."""
merchant_name: str
"""Clean, normalized merchant name."""
category: str
"""Spending category (e.g., 'Food & Dining', 'Shopping')."""
subcategory: str
"""More specific subcategory (e.g., 'Coffee Shops', 'Electronics')."""
logo_url: str
"""URL to the merchant's logo image."""
website: str
"""Merchant's website URL."""
is_subscription: bool
"""Whether the transaction appears to be a recurring subscription."""
merchant_type: str
"""Type of merchant (e.g., 'online', 'brick_and_mortar')."""
confidence: float
"""Confidence score of the enrichment (0.0 to 1.0)."""
original_description: str
"""The original transaction description that was submitted."""
mcc_code: str
"""Merchant Category Code."""
carbon_footprint: Optional[float]
"""Estimated carbon footprint in kg CO2e, if available."""
class BillingInfo(TypedDict, total=False):
"""Billing and usage information."""
requests_used: int
"""Total number of API requests used in the current period."""
requests_limit: int
"""Maximum number of requests allowed in the current period."""
period_start: str
"""Start date of the current billing period (ISO 8601)."""
period_end: str
"""End date of the current billing period (ISO 8601)."""
class EnrichResponse(TypedDict, total=False):
"""Response from the single enrich endpoint."""
success: bool
"""Whether the request was successful."""
data: EnrichmentResult
"""The enriched transaction data."""
request_id: str
"""Unique identifier for this API request."""
class BatchResponse(TypedDict, total=False):
"""Response from the batch enrich endpoint."""
success: bool
"""Whether the request was successful."""
data: List[EnrichmentResult]
"""List of enriched transaction results."""
request_id: str
"""Unique identifier for this API request."""
count: int
"""Number of transactions processed."""
class UsageResponse(TypedDict, total=False):
"""Response from the usage endpoint."""
success: bool
"""Whether the request was successful."""
requests_used: int
"""Total API requests used in the current period."""
requests_limit: int
"""Maximum requests allowed in the current period."""
period_start: str
"""Start date of the current billing period."""
period_end: str
"""End date of the current billing period."""
class BalanceResponse(TypedDict, total=False):
"""Response from the balance endpoint."""
success: bool
"""Whether the request was successful."""
balance: float
"""Current account balance in USD."""
currency: str
"""Currency code (e.g., 'USD')."""