Coverage for src/cvxmarkowitz/types.py: 100%

9 statements  

« prev     ^ index     » next       coverage.py v7.16.1, created at 2026-09-15 05:21 +0000

1# Copyright 2023 Stanford University Convex Optimization Group 

2# 

3# Licensed under the Apache License, Version 2.0 (the "License"); 

4# you may not use this file except in compliance with the License. 

5# You may obtain a copy of the License at 

6# 

7# http://www.apache.org/licenses/LICENSE-2.0 

8# 

9# Unless required by applicable law or agreed to in writing, software 

10# distributed under the License is distributed on an "AS IS" BASIS, 

11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

12# See the License for the specific language governing permissions and 

13# limitations under the License. 

14"""Common type aliases used across the Markowitz package.""" 

15 

16from typing import TypeAlias 

17 

18import cvxpy as cp 

19import numpy as np 

20import numpy.typing as npt 

21 

22Parameter = dict[str, cp.Parameter] 

23Variables = dict[str, cp.Variable] 

24Constraints = dict[str, cp.Constraint] 

25 

26Matrix: TypeAlias = npt.NDArray[np.float64] 

27 

28# What `Model.dimensions` reports: (variable name, size) claims, one per input 

29# the model consumes. A tuple rather than a mapping because several inputs of 

30# one model speak about the same variable, and it is exactly their 

31# disagreement that `Problem.update` is looking for. 

32Dimensions: TypeAlias = tuple[tuple[str, int], ...]