Skip to content

Commit b12a90c

Browse files
committed
add typing-extensions for py < 3.12, use override
1 parent 14f0bd6 commit b12a90c

File tree

6 files changed

+48
-12
lines changed

6 files changed

+48
-12
lines changed

constraints-old.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ texttable==0.8.1
158158
# via pyexcel
159159
tomli==1.0.0
160160
# via pytest
161+
typing-extensions==4.5.0
162+
# via fava (pyproject.toml)
161163
watchfiles==0.20.0
162164
# via fava (pyproject.toml)
163165
werkzeug==2.2.0

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ dependencies = [
4747
"ply>=3.4",
4848
"simplejson>=3.16.0,<4",
4949
"watchfiles>=0.20.0",
50+
"typing-extensions>=4.5; python_version<\"3.12\"",
5051
]
5152

5253
[project.urls]

src/fava/core/conversion.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
from fava.core.inventory import _Amount
1313
from fava.core.inventory import SimpleCounterInventory
1414

15+
try:
16+
from typing import override
17+
except ImportError: # pragma: no cover
18+
from typing_extensions import override
19+
1520
if TYPE_CHECKING: # pragma: no cover
1621
import datetime
1722

@@ -125,16 +130,18 @@ def apply(
125130

126131

127132
class _AtCostConversion(Conversion):
133+
@override
128134
def apply(
129135
self,
130136
inventory: CounterInventory,
131-
prices: FavaPriceMap | None = None, # noqa: ARG002
132-
date: datetime.date | None = None, # noqa: ARG002
137+
prices: FavaPriceMap | None = None,
138+
date: datetime.date | None = None,
133139
) -> SimpleCounterInventory:
134140
return inventory.reduce(get_cost)
135141

136142

137143
class _AtValueConversion(Conversion):
144+
@override
138145
def apply(
139146
self,
140147
inventory: CounterInventory,
@@ -145,11 +152,12 @@ def apply(
145152

146153

147154
class _UnitsConversion(Conversion):
155+
@override
148156
def apply(
149157
self,
150158
inventory: CounterInventory,
151-
prices: FavaPriceMap | None = None, # noqa: ARG002
152-
date: datetime.date | None = None, # noqa: ARG002
159+
prices: FavaPriceMap | None = None,
160+
date: datetime.date | None = None,
153161
) -> SimpleCounterInventory:
154162
counter = SimpleCounterInventory()
155163
for (currency, _cost), number in inventory.items():
@@ -173,6 +181,7 @@ class _CurrencyConversion(Conversion):
173181
def __init__(self, value: str) -> None:
174182
self._currencies = tuple(value.split(","))
175183

184+
@override
176185
def apply(
177186
self,
178187
inventory: CounterInventory,

src/fava/util/date.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020

2121
from fava.util import listify
2222

23+
try:
24+
from typing import override
25+
except ImportError: # pragma: no cover
26+
from typing_extensions import override
27+
2328
if TYPE_CHECKING: # pragma: no cover
2429
from collections.abc import Iterable
2530
from collections.abc import Iterator
@@ -202,7 +207,8 @@ def get_next(self, date: datetime.date) -> datetime.date:
202207
except OverflowError:
203208
return datetime.date.max
204209

205-
def number_of_days(self, date: datetime.date) -> int: # noqa: ARG002
210+
@override
211+
def number_of_days(self, date: datetime.date) -> int:
206212
"""Get number of days in the surrounding interval."""
207213
return 7
208214

@@ -226,7 +232,8 @@ def get_next(self, date: datetime.date) -> datetime.date:
226232
except OverflowError:
227233
return datetime.date.max
228234

229-
def number_of_days(self, date: datetime.date) -> int: # noqa: ARG002
235+
@override
236+
def number_of_days(self, date: datetime.date) -> int:
230237
return 1
231238

232239

tests/data/import_config.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@
1414
from fava.beans import create
1515
from fava.beans.ingest import BeanImporterProtocol
1616

17+
try:
18+
from typing import override
19+
except ImportError:
20+
from typing_extensions import override
21+
1722
if TYPE_CHECKING: # pragma: no cover
1823
from collections.abc import Sequence
1924
from typing import Any
@@ -27,20 +32,24 @@
2732
class TestBeangulpImporterNoExtraction(Importer):
2833
"""Importer with the beangulp interface that doesn't extract entries."""
2934

35+
@override
3036
def identify(self, filepath: str) -> bool:
3137
return Path(filepath).name == "import.csv"
3238

33-
def account(self, filepath: str) -> str: # noqa: ARG002
39+
@override
40+
def account(self, filepath: str) -> str:
3441
return "Assets:Checking"
3542

36-
def date(self, filepath: str) -> datetime.date: # noqa: ARG002
43+
@override
44+
def date(self, filepath: str) -> datetime.date:
3745
return DATE
3846

3947

4048
class TestBeangulpImporter(TestBeangulpImporterNoExtraction):
4149
"""Importer with the beangulp interface."""
4250

43-
def extract(self, filepath: str, existing: Any) -> list[Directive]: # noqa: ARG002
51+
@override
52+
def extract(self, filepath: str, existing: Any) -> list[Directive]:
4453
entries: list[Directive] = []
4554
path = Path(filepath)
4655
account = self.account(filepath)
@@ -107,18 +116,23 @@ class TestImporter(BeanImporterProtocol):
107116
account = "Assets:Checking"
108117
currency = "EUR"
109118

119+
@override
110120
def identify(self, file: FileMemo) -> bool:
111121
return Path(file.name).name == "import.csv"
112122

123+
@override
113124
def file_name(self, file: FileMemo) -> str:
114125
return f"examplebank.{Path(file.name).name}"
115126

116-
def file_account(self, file: FileMemo) -> str: # noqa: ARG002
127+
@override
128+
def file_account(self, file: FileMemo) -> str:
117129
return self.account
118130

119-
def file_date(self, file: FileMemo) -> datetime.date: # noqa: ARG002
131+
@override
132+
def file_date(self, file: FileMemo) -> datetime.date:
120133
return DATE
121134

135+
@override
122136
def extract(
123137
self,
124138
file: FileMemo,
@@ -129,9 +143,10 @@ def extract(
129143

130144

131145
class TestImporterThatErrorsOnExtract(TestImporter):
146+
@override
132147
def extract(
133148
self,
134-
file: FileMemo, # noqa: ARG002
149+
file: FileMemo,
135150
**_kwargs: Any,
136151
) -> list[Directive]:
137152
raise TypeError

uv.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)