55import asyncio
66import socket
77from dataclasses import dataclass
8- from datetime import date
8+ from datetime import datetime
99from importlib import metadata
1010from typing import Any , Self
1111from urllib .parse import urlparse
@@ -152,7 +152,7 @@ async def _request(
152152
153153 return await response .json ()
154154
155- def _format_date (self , date_value : date | str ) -> str :
155+ def _format_date (self , date_value : datetime | str ) -> str :
156156 """Format a date value to a string in 'YYYY-MM-DD' format.
157157
158158 Args:
@@ -162,7 +162,7 @@ def _format_date(self, date_value: date | str) -> str:
162162 A string formatted as 'YYYY-MM-DD'.
163163
164164 """
165- if isinstance (date_value , date ):
165+ if isinstance (date_value , datetime ):
166166 return date_value .strftime ("%Y-%m-%d" )
167167 return date_value
168168
@@ -209,8 +209,8 @@ async def get_accounts(self) -> list[Account]:
209209 async def get_transactions (
210210 self ,
211211 account_id : int | None = None ,
212- start : date | None = None ,
213- end : date | None = None ,
212+ start : datetime | None = None ,
213+ end : datetime | None = None ,
214214 ) -> list [Transaction ]:
215215 """Get transactions for a specific account. Else, return all transactions.
216216
@@ -283,7 +283,12 @@ async def get_categories(self) -> list[Category]:
283283
284284 return [Category .from_dict (cat ) for cat in categories ]
285285
286- async def get_category (self , category_id : int , start : date | None = None , end : date | None = None ) -> Category :
286+ async def get_category (
287+ self ,
288+ category_id : int ,
289+ start : datetime | None = None ,
290+ end : datetime | None = None ,
291+ ) -> Category :
287292 """Get a specific category by its ID.
288293
289294 Args:
@@ -304,7 +309,7 @@ async def get_category(self, category_id: int, start: date | None = None, end: d
304309 category = await self ._request (uri = f"categories/{ category_id } " , params = params )
305310 return Category .from_dict (category ["data" ])
306311
307- async def get_budgets (self , start : date | None = None , end : date | None = None ) -> list [Budget ]:
312+ async def get_budgets (self , start : datetime | None = None , end : datetime | None = None ) -> list [Budget ]:
308313 """Get budgets for the Firefly server. Both start and end dates are required for date range filtering.
309314
310315 Args:
@@ -323,7 +328,7 @@ async def get_budgets(self, start: date | None = None, end: date | None = None)
323328 budgets = await self ._request (uri = "budgets" , params = params )
324329 return [Budget .from_dict (budget ) for budget in budgets ["data" ]]
325330
326- async def get_bills (self , start : date | None = None , end : date | None = None ) -> list [Bill ]:
331+ async def get_bills (self , start : datetime | None = None , end : datetime | None = None ) -> list [Bill ]:
327332 """Get bills for the Firefly server. Both start and end dates are required for date range filtering.
328333
329334 Args:
0 commit comments