@@ -721,7 +721,7 @@ def update_levels_from_other(
721721
722722def create_level_from_collection (
723723 level : str , value : Collection [Any ]
724- ) -> tuple [Collection [Any ], list [int ]]:
724+ ) -> tuple [pandas . Index [Any ], list [int ]]:
725725 """
726726 Create new level and corresponding codes.
727727
@@ -743,7 +743,7 @@ def create_level_from_collection(
743743 # Fast route, can just return new level and codes from level we mapped from
744744 return value , list (range (len (value )))
745745 # Slow route, have to update the codes
746- new_level = new_level .unique ()
746+ new_level = new_level .unique () # type: ignore
747747 new_codes = new_level .get_indexer (value ) # type: ignore
748748
749749 return new_level , new_codes
@@ -811,14 +811,22 @@ def set_levels(
811811 ... start,
812812 ... {"new_variable": [1, 2, 3, 4]},
813813 ... )
814- todo
814+ MultiIndex([('sa', 'ma', 'v1', 'kg', 1),
815+ ('sb', 'ma', 'v2', 'm', 2),
816+ ('sa', 'mb', 'v1', 'kg', 3),
817+ ('sa', 'mb', 'v2', 'm', 4)],
818+ names=['scenario', 'model', 'variable', 'unit', 'new_variable'])
815819 >>>
816820 >>> # Replace a level with a single value and add a new level
817821 >>> set_levels(
818822 ... start,
819823 ... {"model": "new_model", "new_variable": ["xyz", "xyz", "x", "y"]},
820824 ... )
821- todo
825+ MultiIndex([('sa', 'new_model', 'v1', 'kg', "xyz"),
826+ ('sb', 'new_model', 'v2', 'm', "xyz"),
827+ ('sa', 'new_model', 'v1', 'kg', "x"),
828+ ('sa', 'new_model', 'v2', 'm', "y")],
829+ names=['scenario', 'model', 'variable', 'unit', 'new_variable'])
822830 """
823831 levels : list [pd .Index [Any ]] = list (ini .levels )
824832 codes : list [list [int ] | npt .NDArray [np .integer [Any ]]] = list (ini .codes )
0 commit comments