Skip to content

Commit 6917a89

Browse files
authored
Downgrade minimal python version from 3.12 to 3.11 (#156)
This pull request downgrades minimal python version from 3.12 to 3.11
2 parents 0277745 + b4ff105 commit 6917a89

5 files changed

Lines changed: 302 additions & 17 deletions

File tree

pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ version = "0.0.0"
88
description = "An open-source modular framework for ingesting, standardising, storing, and computing energy-related data."
99
license = "MIT"
1010
readme = "README.md"
11-
requires-python = ">=3.12"
11+
requires-python = ">=3.11"
1212
dependencies = [
1313
"fastapi[standard]>=0.128.0",
1414
"pydantic>=2.0.0",
@@ -24,13 +24,13 @@ timeseries = [
2424
]
2525
tariff = [
2626
"cofy-api[timeseries]",
27-
"energy-cost>=0.6.0",
27+
"energy-cost>=0.6.1",
2828
"entsoe-py>=0.7.10",
2929
"pandas>=3.0.0"
3030
]
3131
billing = [
3232
"cofy-api[timeseries]",
33-
"energy-cost>=0.6.0",
33+
"energy-cost>=0.6.1",
3434
"pandas>=3.0.0"
3535
]
3636
production = [
@@ -39,7 +39,7 @@ production = [
3939
"requests>=2.32.0",
4040
]
4141
members = [
42-
"energy-cost>=0.6.0",
42+
"energy-cost>=0.6.1",
4343
]
4444
directive = [
4545
"cofy-api[timeseries]",
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from datetime import datetime
2-
from typing import Literal
2+
from typing import Literal, TypeVar
33

44
from pydantic import BaseModel
55

66
from cofy.modules.timeseries import JSONFormat
77

8+
MetadataType = TypeVar("MetadataType", bound=BaseModel)
9+
810
DirectiveSteps = Literal["--", "-", "0", "+", "++"]
911
DIRECTIVE_STEPS = DirectiveSteps.__args__
1012

@@ -14,6 +16,6 @@ class DirectiveRecord(BaseModel):
1416
value: DirectiveSteps
1517

1618

17-
class DirectiveFormat[MetadataType: BaseModel](JSONFormat[DirectiveRecord, MetadataType]):
19+
class DirectiveFormat(JSONFormat[DirectiveRecord, MetadataType]):
1820
def __init__(self, MT: type[MetadataType] | None = None):
1921
super().__init__(DT=DirectiveRecord, MT=MT)

src/cofy/modules/members/source.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import builtins
22
from abc import ABC, abstractmethod
3+
from typing import Generic, TypeVar
34

45
from .model import Member
56

7+
T = TypeVar("T")
68

7-
class MemberSource[T](ABC):
9+
10+
class MemberSource(ABC, Generic[T]):
811
@abstractmethod
912
def list(
1013
self,

src/cofy/modules/timeseries/formats/json.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import datetime as dt
2+
from typing import Generic, TypeVar
23

34
from pydantic import BaseModel, ConfigDict
45

56
from ..format import TimeseriesFormat
67
from ..model import ISODuration, Timeseries
78

9+
DataType = TypeVar("DataType", bound=BaseModel)
10+
MetadataType = TypeVar("MetadataType", bound=BaseModel)
11+
812

913
class DefaultDataType(BaseModel):
1014
timestamp: dt.datetime
@@ -20,12 +24,12 @@ class DefaultMetadataType(BaseModel):
2024
unit: str | None = None
2125

2226

23-
class ResponseModel[DataType: BaseModel, MetadataType: BaseModel](BaseModel):
27+
class ResponseModel(BaseModel, Generic[DataType, MetadataType]):
2428
metadata: MetadataType
2529
data: list[DataType]
2630

2731

28-
class JSONFormat[DataType: BaseModel, MetadataType: BaseModel](TimeseriesFormat):
32+
class JSONFormat(TimeseriesFormat, Generic[DataType, MetadataType]):
2933
"""Timeseries format for JSON."""
3034

3135
name = "json"

0 commit comments

Comments
 (0)