1
1
from datetime import datetime
2
- from typing import ClassVar , Iterable
2
+ from typing import ClassVar
3
3
4
- import pandas as pd
5
-
6
- from ixmp4 .core .base import BaseFacade , BaseModelFacade
4
+ from ixmp4 .core .base import BaseModelFacade
7
5
from ixmp4 .core .unit import Unit
8
6
from ixmp4 .data .abstract import Docs as DocsModel
9
- from ixmp4 .data .abstract import Run
10
7
from ixmp4 .data .abstract import Scalar as ScalarModel
11
8
9
+ from .base import Lister , Retriever , Tabulator
10
+
12
11
13
12
class Scalar (BaseModelFacade ):
14
13
_model : ScalarModel
@@ -93,12 +92,11 @@ def __str__(self) -> str:
93
92
return f"<Scalar { self .id } name={ self .name } >"
94
93
95
94
96
- class ScalarRepository (BaseFacade ):
97
- _run : Run
98
-
99
- def __init__ (self , _run : Run , * args , ** kwargs ) -> None :
95
+ class ScalarRepository (Retriever [Scalar ], Lister [Scalar ], Tabulator [Scalar ]):
96
+ def __init__ (self , * args , ** kwargs ) -> None :
100
97
super ().__init__ (* args , ** kwargs )
101
- self ._run = _run
98
+ self ._backend_repository = self .backend .optimization .scalars
99
+ self ._model_type = Scalar
102
100
103
101
def create (self , name : str , value : float , unit : str | Unit | None = None ) -> Scalar :
104
102
if isinstance (unit , Unit ):
@@ -121,20 +119,3 @@ def create(self, name: str, value: float, unit: str | Unit | None = None) -> Sca
121
119
"run.optimization.scalars.update()?"
122
120
) from e
123
121
return Scalar (_backend = self .backend , _model = model )
124
-
125
- def get (self , name : str ) -> Scalar :
126
- model = self .backend .optimization .scalars .get (run_id = self ._run .id , name = name )
127
- return Scalar (_backend = self .backend , _model = model )
128
-
129
- def list (self , name : str | None = None ) -> Iterable [Scalar ]:
130
- scalars = self .backend .optimization .scalars .list (run_id = self ._run .id , name = name )
131
- return [
132
- Scalar (
133
- _backend = self .backend ,
134
- _model = i ,
135
- )
136
- for i in scalars
137
- ]
138
-
139
- def tabulate (self , name : str | None = None ) -> pd .DataFrame :
140
- return self .backend .optimization .scalars .tabulate (name = name )
0 commit comments