3 Commits
Author SHA1 Message Date
HEL 5311307a6f tests: update with unsupported flag 2026-07-07 13:51:46 +02:00
HEL fe34c77e4c tests: update with integer literals 2026-07-07 13:51:25 +02:00
HEL c2f41eb392 fix: make Frame/Column inherit from pandas classes 2026-07-07 13:43:57 +02:00
7 changed files with 127 additions and 73 deletions
+4 -2
View File
@@ -1,6 +1,8 @@
from typing import Generic, TypeVar from typing import Generic, TypeVar
from typing import cast as typing_cast from typing import cast as typing_cast
from pandas import DataFrame, Series
cast = typing_cast cast = typing_cast
"""### Midas documentation """### Midas documentation
Cast a value to a type. Cast a value to a type.
@@ -38,14 +40,14 @@ _**Internal Python documentation**_
T = TypeVar("T") T = TypeVar("T")
class Frame(Generic[T]): class Frame(DataFrame, Generic[T]):
"""A `Frame` is the abstract type implemented by `DataFrame` """A `Frame` is the abstract type implemented by `DataFrame`
A frame contains any number of named columns (see :class:`Column`) A frame contains any number of named columns (see :class:`Column`)
""" """
class Column(Generic[T]): class Column(Series, Generic[T]):
"""A `Column` is the abstract type implemented by `Series` """A `Column` is the abstract type implemented by `Series`
A column contains a any number of values of the same type A column contains a any number of values of the same type
+72 -36
View File
@@ -285,7 +285,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -295,7 +296,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -305,7 +307,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -361,7 +364,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -371,7 +375,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -381,7 +386,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -455,7 +461,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -465,7 +472,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -475,7 +483,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -553,7 +562,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -563,7 +573,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -573,7 +584,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -665,7 +677,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -675,7 +688,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -685,7 +699,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -780,7 +795,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -790,7 +806,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -800,7 +817,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -870,7 +888,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -880,7 +899,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -890,7 +910,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -951,7 +972,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -961,7 +983,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -971,7 +994,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -1058,7 +1082,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -1068,7 +1093,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -1078,7 +1104,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -1176,7 +1203,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -1186,7 +1214,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -1196,7 +1225,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -1294,7 +1324,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -1304,7 +1335,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -1314,7 +1346,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
@@ -1412,7 +1445,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [ "mixed": [
@@ -1422,7 +1456,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [ "kw": [
@@ -1432,7 +1467,8 @@
"type": { "type": {
"name": "str" "name": "str"
}, },
"required": true "required": true,
"unsupported": false
} }
] ]
}, },
+4 -2
View File
@@ -145,7 +145,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
}, },
{ {
"pos": 1, "pos": 1,
@@ -153,7 +154,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [] "kw": []
+2 -1
View File
@@ -318,7 +318,8 @@
"pos": 0, "pos": 0,
"name": "object", "name": "object",
"type": {}, "type": {},
"required": false "required": false,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
+26 -13
View File
@@ -126,7 +126,8 @@
"pos": 0, "pos": 0,
"name": "object", "name": "object",
"type": {}, "type": {},
"required": false "required": false,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
@@ -388,7 +389,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [] "kw": []
@@ -459,7 +461,8 @@
"bound": null, "bound": null,
"variance": "INVARIANT" "variance": "INVARIANT"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
@@ -471,7 +474,8 @@
"variance": "INVARIANT" "variance": "INVARIANT"
} }
}, },
"required": true "required": true,
"unsupported": false
}, },
{ {
"pos": 1, "pos": 1,
@@ -489,7 +493,8 @@
"name": "list" "name": "list"
} }
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
@@ -565,7 +570,8 @@
"type": { "type": {
"name": "float" "name": "float"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [] "kw": []
@@ -636,7 +642,8 @@
"bound": null, "bound": null,
"variance": "INVARIANT" "variance": "INVARIANT"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
@@ -648,7 +655,8 @@
"variance": "INVARIANT" "variance": "INVARIANT"
} }
}, },
"required": true "required": true,
"unsupported": false
}, },
{ {
"pos": 1, "pos": 1,
@@ -666,7 +674,8 @@
"name": "list" "name": "list"
} }
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
@@ -732,7 +741,8 @@
"type": { "type": {
"name": "int" "name": "int"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"kw": [] "kw": []
@@ -803,7 +813,8 @@
"bound": null, "bound": null,
"variance": "INVARIANT" "variance": "INVARIANT"
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
@@ -815,7 +826,8 @@
"variance": "INVARIANT" "variance": "INVARIANT"
} }
}, },
"required": true "required": true,
"unsupported": false
}, },
{ {
"pos": 1, "pos": 1,
@@ -833,7 +845,8 @@
"name": "list" "name": "list"
} }
}, },
"required": true "required": true,
"unsupported": false
} }
], ],
"mixed": [], "mixed": [],
@@ -18,7 +18,7 @@ Module(
ops=[ ops=[
Gt()], Gt()],
comparators=[ comparators=[
Constant(value=0.0)]))], Constant(value=0)]))],
decorator_list=[], decorator_list=[],
returns=Constant(value='bool')), returns=Constant(value='bool')),
FunctionDef( FunctionDef(
@@ -39,7 +39,7 @@ Module(
ops=[ ops=[
Gt()], Gt()],
comparators=[ comparators=[
Constant(value=0.0)]))], Constant(value=0)]))],
decorator_list=[], decorator_list=[],
returns=Constant(value='bool')), returns=Constant(value='bool')),
FunctionDef( FunctionDef(
@@ -128,8 +128,8 @@ Module(
func=Call( func=Call(
func=Name(id='__midas_in_range__'), func=Name(id='__midas_in_range__'),
args=[ args=[
Constant(value=100.0), Constant(value=100),
Constant(value=200.0)], Constant(value=200)],
keywords=[]), keywords=[]),
args=[ args=[
Name(id='_')], Name(id='_')],
@@ -142,8 +142,8 @@ Module(
value=Call( value=Call(
func=Name(id='__midas_in_range__'), func=Name(id='__midas_in_range__'),
args=[ args=[
Constant(value=0.0), Constant(value=0),
Constant(value=18.0)], Constant(value=18)],
keywords=[])), keywords=[])),
FunctionDef( FunctionDef(
name='__midas_p3__', name='__midas_p3__',
@@ -208,7 +208,7 @@ Module(
args=[ args=[
Name(id='__midas_a0__')], Name(id='__midas_a0__')],
keywords=[]), keywords=[]),
msg=Constant(value="02_constraints.py:L5:10: ConstraintError: Value does not fit constraint '_ > 0.0'")), msg=Constant(value="02_constraints.py:L5:10: ConstraintError: Value does not fit constraint '_ > 0'")),
Assign( Assign(
targets=[ targets=[
Name(id='t1')], Name(id='t1')],
@@ -284,7 +284,7 @@ Module(
args=[ args=[
Name(id='__midas_a2__')], Name(id='__midas_a2__')],
keywords=[]), keywords=[]),
msg=Constant(value="02_constraints.py:L7:10: ConstraintError: Value does not fit constraint 'in_range(100.0, 200.0)(_)'")), msg=Constant(value="02_constraints.py:L7:10: ConstraintError: Value does not fit constraint 'in_range(100, 200)(_)'")),
Assign( Assign(
targets=[ targets=[
Name(id='t3')], Name(id='t3')],
@@ -2474,7 +2474,7 @@
"operator": "-", "operator": "-",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 90.0 "value": 90
} }
}, },
"operator": "<=", "operator": "<=",
@@ -2485,7 +2485,7 @@
"operator": "<=", "operator": "<=",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 90.0 "value": 90
} }
} }
} }
@@ -2512,7 +2512,7 @@
"operator": "-", "operator": "-",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 180.0 "value": 180
} }
}, },
"operator": "<=", "operator": "<=",
@@ -2523,7 +2523,7 @@
"operator": "<=", "operator": "<=",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 180.0 "value": 180
} }
} }
} }
@@ -2780,7 +2780,7 @@
"operator": ">=", "operator": ">=",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 0.0 "value": 0
} }
} }
}, },
@@ -2813,7 +2813,7 @@
"operator": ">", "operator": ">",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 0.0 "value": 0
} }
} }
}, },
@@ -2848,7 +2848,7 @@
"operator": "-", "operator": "-",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 10.0 "value": 10
} }
}, },
"operator": "<=", "operator": "<=",
@@ -2864,7 +2864,7 @@
"operator": "<=", "operator": "<=",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 10.0 "value": 10
} }
} }
} }
@@ -2904,7 +2904,7 @@
"operator": ">=", "operator": ">=",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 66.0 "value": 66
} }
} }
} }
@@ -2950,7 +2950,7 @@
"_type": "BinaryExpr", "_type": "BinaryExpr",
"left": { "left": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 0.0 "value": 0
}, },
"operator": "<=", "operator": "<=",
"right": { "right": {
@@ -2960,7 +2960,7 @@
"operator": "<", "operator": "<",
"right": { "right": {
"_type": "LiteralExpr", "_type": "LiteralExpr",
"value": 150.0 "value": 150
} }
} }
} }