Skip to content

Commit e20d275

Browse files
committed
TEMPORARY Debug test_plot_simulated on macOS
1 parent 4c205a6 commit e20d275

File tree

7 files changed

+46
-3
lines changed

7 files changed

+46
-3
lines changed

.github/workflows/pytest.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ jobs:
167167
run: |
168168
pytest message_ix_models \
169169
-m "not (ece_db or snapshot)" \
170-
--color=yes --durations=20 -rA --verbose \
170+
--color=yes --durations=20 -rA --verbose --exitfirst \
171171
--cov-report=term-missing --cov-report=xml \
172172
--numprocesses=auto \
173173
--local-cache --jvmargs="-Xmx6G"

message_ix_models/model/transport/build.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,9 @@ def main(
594594
log.info("Configure MESSAGEix-Transport")
595595
mark_time()
596596

597+
log.info(f"transport.build.main 1: {scenario.url =}")
598+
log.info(f"transport.build.main 1: {scenario.set('node') =}")
599+
597600
# Set up a Computer for input data calculations. This also:
598601
# - Creates a Config instance
599602
# - Generates and stores context.transport.spec, i.e the specification of the
@@ -627,4 +630,7 @@ def _add_data(s, **kw):
627630
scenario.set_as_default()
628631
log.info(f"Built {scenario.url} and set as default version")
629632

633+
log.info(f"transport.build.main 2: {scenario.url =}")
634+
log.info(f"transport.build.main 2: {scenario.set('node') =}")
635+
630636
return scenario

message_ix_models/model/transport/config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,15 @@ def from_context(
341341
# Handle arguments
342342
options = options or dict()
343343

344+
log.debug(f".transport.Config.from_context: {context.model.regions = }")
344345
try:
345346
# Identify the node codelist used in `scenario`
346347
regions = identify_nodes(scenario) if scenario else context.model.regions
347348
except (AttributeError, ValueError):
348349
pass
349350
else:
351+
if scenario:
352+
log.debug(f".transport.Config.from_context: {scenario.set('node') = }")
350353
if context.model.regions != regions:
351354
log.info(
352355
f"Override Context.model.regions={context.model.regions!r} with "

message_ix_models/model/transport/testing.py

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,22 @@ def built_transport(
112112
"""Analogous to :func:`.testing.bare_res`, with transport detail added."""
113113
options = options or dict()
114114

115+
from itertools import count
116+
117+
i = count()
118+
115119
# Retrieve (maybe generate) the bare RES with the same settings
120+
log.info(f"built_transport {next(i)}: {context.regions = }")
116121
res = bare_res(request, context, solved)
122+
log.info(f"built_transport {next(i)}: {res.set('node') = }")
123+
log.info(f"built_transport {next(i)}: {res.url = }")
117124

118125
# Derive the name for the transport scenario
119126
model_name = res.model.replace("-GLOBIOM", "-Transport")
120127

121128
try:
122-
scenario = Scenario(context.get_platform(), model_name, "baseline")
129+
scenario = Scenario(res.platform, model_name, "baseline")
130+
log.info(f"built_transport {next(i)}: {scenario.url = }")
123131
except ValueError:
124132
log.info(f"Create '{model_name}/baseline' for testing")
125133

@@ -132,7 +140,9 @@ def built_transport(
132140

133141
with log_cm:
134142
scenario = res.clone(model=model_name)
143+
log.info(f"built_transport {next(i)}: {scenario.url = }")
135144
build.main(context, scenario, options, fast=True)
145+
log.info(f"built_transport {next(i)}: {scenario.set('node') = }")
136146
else:
137147
# Loaded existing Scenario; ensure config files are loaded on `context`
138148
Config.from_context(context, options=options)
@@ -141,8 +151,21 @@ def built_transport(
141151
log.info(f"Solve '{scenario.model}/{scenario.scenario}'")
142152
scenario.solve(solve_options=dict(lpmethod=4))
143153

154+
log.info(f"built_transport {next(i)}: {scenario.url = }")
155+
log.info(f"built_transport {next(i)}: {scenario.set('node') = }")
144156
log.info(f"Clone to '{model_name}/{request.node.name}'")
145-
return scenario.clone(scenario=request.node.name, keep_solution=solved)
157+
# # result = scenario.clone(scenario=request.node.name, keep_solution=solved)
158+
# # log.info(f"built_transport: {result.url = }")
159+
# log.info(f"built_transport: {result.set('node') = }")
160+
result2 = scenario.clone(
161+
model=model_name, scenario=request.node.name, keep_solution=solved
162+
)
163+
log.info(f"built_transport {next(i)}: {result2.url = }")
164+
log.info(f"built_transport {next(i)}: {result2.set('node') = }")
165+
result3 = Scenario(scenario.platform, model_name, request.node.name)
166+
log.info(f"built_transport {next(i)}: {result3.url = }")
167+
log.info(f"built_transport {next(i)}: {result3.set('node') = }")
168+
return result2
146169

147170

148171
def simulated_solution(request, context) -> Reporter:
@@ -154,7 +177,10 @@ def simulated_solution(request, context) -> Reporter:
154177
from .report import callback
155178

156179
# Build the base model
180+
log.debug(f"simulated_solution: {context.regions = }")
157181
scenario = built_transport(request, context, solved=False)
182+
log.debug(f"simulated_solution: {scenario.url = }")
183+
log.debug(f"simulated_solution: {scenario.set('node') = }")
158184

159185
# Info about the built model
160186
info = ScenarioInfo(scenario)
@@ -194,4 +220,6 @@ def simulated_solution(request, context) -> Reporter:
194220
with silence_log("genno", logging.CRITICAL):
195221
message_ix_models.report.prepare_reporter(context, reporter=rep)
196222

223+
log.debug(f"simulated_solution: {context.regions = }")
224+
197225
return rep

message_ix_models/report/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,8 @@ def prepare_reporter(
281281
"""
282282
log.info("Prepare reporter")
283283

284+
log.debug(f".report.prepare_reporter: {context.regions = }")
285+
284286
if reporter:
285287
# Existing `Reporter` provided
286288
rep = reporter

message_ix_models/testing/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ def bare_res(request, context: Context, solved: bool = False) -> message_ix.Scen
202202
from message_ix_models.model import bare
203203

204204
# Model name: standard "MESSAGEix-GLOBIOM R12 YB" plus a suffix
205+
log.info(f"bare_res: {context.model.regions = }")
205206
model_name = bare.name(context, unique=True)
206207

207208
mp = context.get_platform()
@@ -213,6 +214,8 @@ def bare_res(request, context: Context, solved: bool = False) -> message_ix.Scen
213214
context.scenario_info.update(model=model_name, scenario="baseline")
214215
base = bare.create_res(context)
215216

217+
log.info(f"bare_res: {base.set('node') = }")
218+
216219
if solved and not base.has_solution():
217220
log.info("Solve")
218221
base.solve(solve_options=dict(lpmethod=4), quiet=True)

message_ix_models/tests/model/transport/test_report.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ def test_simulated_solution(request, test_context, regions="R12", years="B"):
141141
def test_plot_simulated(request, test_context, plot_name, regions="R12", years="B"):
142142
"""Plots are generated correctly using simulated data."""
143143
test_context.update(regions=regions, years=years)
144+
log.debug(f"test_plot_simulated: {test_context.regions = }")
144145
rep = simulated_solution(request, test_context)
145146

146147
# print(rep.describe(f"plot {plot_name}")) # DEBUG

0 commit comments

Comments
 (0)