Skip to content

Commit 4644fa0

Browse files
committed
type annotations for ModelChain. a slippery slope
1 parent 97fcf4a commit 4644fa0

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

pvlib/modelchain.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111
import warnings
1212
import pandas as pd
1313
from dataclasses import dataclass, field
14-
from typing import Union, Tuple, Optional, TypeVar
14+
from typing import Callable, Union, Tuple, Optional, TypeVar
1515

1616
from pvlib import (atmosphere, clearsky, inverter, pvsystem, solarposition,
1717
temperature, tools)
1818
from pvlib.tracking import SingleAxisTracker
1919
import pvlib.irradiance # avoid name conflict with full import
20-
from pvlib.pvsystem import _DC_MODEL_PARAMS
20+
from pvlib.location import Location
21+
from pvlib.pvsystem import PVSystem, _DC_MODEL_PARAMS
2122
from pvlib._deprecation import pvlibDeprecationWarning
2223
from pvlib.tools import _build_kwargs
2324

@@ -394,15 +395,23 @@ class ModelChain:
394395
'cell_temperature', 'effective_irradiance',
395396
'dc', 'ac', 'diode_params', 'tracking']
396397

397-
def __init__(self, system, location,
398-
orientation_strategy=None,
399-
clearsky_model='ineichen',
400-
transposition_model='haydavies',
401-
solar_position_method='nrel_numpy',
402-
airmass_model='kastenyoung1989',
403-
dc_model=None, ac_model=None, aoi_model=None,
404-
spectral_model=None, temperature_model=None,
405-
losses_model='no_loss', name=None):
398+
def __init__(
399+
self,
400+
system: Union[PVSystem, SingleAxisTracker],
401+
location: Location,
402+
orientation_strategy: Optional[str] = None,
403+
clearsky_model: str = 'ineichen',
404+
transposition_model: str = 'haydavies',
405+
solar_position_method: str = 'nrel_numpy',
406+
airmass_model: str = 'kastenyoung1989',
407+
dc_model: Optional[Union[Callable, str]] = None,
408+
ac_model: Optional[Union[Callable, str]] = None,
409+
aoi_model: Optional[Union[Callable, str]] = None,
410+
spectral_model: Optional[Union[Callable, str]] = None,
411+
temperature_model: Optional[Union[Callable, str]] = None,
412+
losses_model: str = 'no_loss',
413+
name: Optional[str] = None
414+
):
406415

407416
self.name = name
408417
self.system = system

0 commit comments

Comments
 (0)