From 3d485f0e770962329bc3d5afe5832f9a700d9859 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:44:31 +0000 Subject: [PATCH 1/2] Initial plan From f4f84ceb16d2513532734196d811089fc0a4582d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Mar 2026 22:19:53 +0000 Subject: [PATCH 2/2] Fix mutable default arguments in sensor_analysis and clearsky_analysis Co-authored-by: cdeline <23244088+cdeline@users.noreply.github.com> --- rdtools/analysis_chains.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/rdtools/analysis_chains.py b/rdtools/analysis_chains.py index 51db8092..eb795497 100644 --- a/rdtools/analysis_chains.py +++ b/rdtools/analysis_chains.py @@ -1001,7 +1001,7 @@ def _clearsky_preprocess(self): ) def sensor_analysis( - self, analyses=["yoy_degradation"], yoy_kwargs={"label": "right"}, srr_kwargs={} + self, analyses=None, yoy_kwargs=None, srr_kwargs=None ): """ Perform entire sensor-based analysis workflow. @@ -1011,7 +1011,7 @@ def sensor_analysis( --------- analyses : list Analyses to perform as a list of strings. Valid entries are 'yoy_degradation' - and 'srr_soiling' + and 'srr_soiling'. Defaults to ``["yoy_degradation"]``. yoy_kwargs : dict kwargs to pass to :py:func:`rdtools.degradation.degradation_year_on_year` default is {"label": "right"}, which will right-label the YoY slope values. @@ -1022,6 +1022,12 @@ def sensor_analysis( ------- None """ + if analyses is None: + analyses = ["yoy_degradation"] + if yoy_kwargs is None: + yoy_kwargs = {"label": "right"} + if srr_kwargs is None: + srr_kwargs = {} self._sensor_preprocess() sensor_results = {} @@ -1042,7 +1048,7 @@ def sensor_analysis( self.results["sensor"] = sensor_results def clearsky_analysis( - self, analyses=["yoy_degradation"], yoy_kwargs={"label": "right"}, srr_kwargs={} + self, analyses=None, yoy_kwargs=None, srr_kwargs=None ): """ Perform entire clear-sky-based analysis workflow. Results are stored @@ -1052,7 +1058,7 @@ def clearsky_analysis( --------- analyses : list Analyses to perform as a list of strings. Valid entries are 'yoy_degradation' - and 'srr_soiling' + and 'srr_soiling'. Defaults to ``["yoy_degradation"]``. yoy_kwargs : dict kwargs to pass to :py:func:`rdtools.degradation.degradation_year_on_year`. default is {"label": "right"}, which will right-label the YoY slope values. @@ -1063,6 +1069,12 @@ def clearsky_analysis( ------- None """ + if analyses is None: + analyses = ["yoy_degradation"] + if yoy_kwargs is None: + yoy_kwargs = {"label": "right"} + if srr_kwargs is None: + srr_kwargs = {} self._clearsky_preprocess() clearsky_results = {}