scitex 2.11.0__py3-none-any.whl → 2.13.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. scitex/__main__.py +24 -5
  2. scitex/__version__.py +1 -1
  3. scitex/_optional_deps.py +33 -0
  4. scitex/ai/classification/reporters/_ClassificationReporter.py +1 -1
  5. scitex/ai/classification/timeseries/_TimeSeriesBlockingSplit.py +2 -2
  6. scitex/ai/classification/timeseries/_TimeSeriesCalendarSplit.py +2 -2
  7. scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit.py +2 -2
  8. scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit_v01-not-using-n_splits.py +2 -2
  9. scitex/ai/classification/timeseries/_TimeSeriesStratifiedSplit.py +2 -2
  10. scitex/ai/classification/timeseries/_normalize_timestamp.py +1 -1
  11. scitex/ai/metrics/_calc_seizure_prediction_metrics.py +1 -1
  12. scitex/ai/plt/_plot_feature_importance.py +1 -1
  13. scitex/ai/plt/_plot_learning_curve.py +1 -1
  14. scitex/ai/plt/_plot_optuna_study.py +1 -1
  15. scitex/ai/plt/_plot_pre_rec_curve.py +1 -1
  16. scitex/ai/plt/_plot_roc_curve.py +1 -1
  17. scitex/ai/plt/_stx_conf_mat.py +1 -1
  18. scitex/ai/training/_LearningCurveLogger.py +1 -1
  19. scitex/audio/mcp_server.py +38 -8
  20. scitex/browser/automation/CookieHandler.py +1 -1
  21. scitex/browser/core/BrowserMixin.py +1 -1
  22. scitex/browser/core/ChromeProfileManager.py +1 -1
  23. scitex/browser/debugging/_browser_logger.py +1 -1
  24. scitex/browser/debugging/_highlight_element.py +1 -1
  25. scitex/browser/debugging/_show_grid.py +1 -1
  26. scitex/browser/interaction/click_center.py +1 -1
  27. scitex/browser/interaction/click_with_fallbacks.py +1 -1
  28. scitex/browser/interaction/close_popups.py +1 -1
  29. scitex/browser/interaction/fill_with_fallbacks.py +1 -1
  30. scitex/browser/pdf/click_download_for_chrome_pdf_viewer.py +1 -1
  31. scitex/browser/pdf/detect_chrome_pdf_viewer.py +1 -1
  32. scitex/browser/stealth/HumanBehavior.py +1 -1
  33. scitex/browser/stealth/StealthManager.py +1 -1
  34. scitex/canvas/_mcp_handlers.py +372 -0
  35. scitex/canvas/_mcp_tool_schemas.py +219 -0
  36. scitex/canvas/mcp_server.py +151 -0
  37. scitex/capture/mcp_server.py +41 -12
  38. scitex/cli/audio.py +233 -0
  39. scitex/cli/capture.py +307 -0
  40. scitex/cli/main.py +27 -4
  41. scitex/cli/repro.py +233 -0
  42. scitex/cli/resource.py +240 -0
  43. scitex/cli/stats.py +325 -0
  44. scitex/cli/template.py +236 -0
  45. scitex/cli/tex.py +286 -0
  46. scitex/cli/web.py +11 -12
  47. scitex/dev/__init__.py +3 -0
  48. scitex/dev/_pyproject.py +405 -0
  49. scitex/dev/plt/__init__.py +2 -2
  50. scitex/dev/plt/mpl/get_dir_ax.py +1 -1
  51. scitex/dev/plt/mpl/get_signatures.py +1 -1
  52. scitex/dev/plt/mpl/get_signatures_details.py +1 -1
  53. scitex/diagram/_mcp_handlers.py +400 -0
  54. scitex/diagram/_mcp_tool_schemas.py +157 -0
  55. scitex/diagram/mcp_server.py +151 -0
  56. scitex/dsp/_demo_sig.py +51 -5
  57. scitex/dsp/_mne.py +13 -2
  58. scitex/dsp/_modulation_index.py +15 -3
  59. scitex/dsp/_pac.py +23 -5
  60. scitex/dsp/_psd.py +16 -4
  61. scitex/dsp/_resample.py +24 -4
  62. scitex/dsp/_transform.py +16 -3
  63. scitex/dsp/add_noise.py +15 -1
  64. scitex/dsp/norm.py +17 -2
  65. scitex/dsp/reference.py +17 -1
  66. scitex/dsp/utils/_differential_bandpass_filters.py +20 -2
  67. scitex/dsp/utils/_zero_pad.py +18 -4
  68. scitex/dt/_normalize_timestamp.py +1 -1
  69. scitex/git/_session.py +1 -1
  70. scitex/io/_load_modules/_con.py +12 -1
  71. scitex/io/_load_modules/_eeg.py +12 -1
  72. scitex/io/_load_modules/_optuna.py +21 -63
  73. scitex/io/_load_modules/_torch.py +11 -3
  74. scitex/io/_save_modules/_optuna_study_as_csv_and_pngs.py +13 -2
  75. scitex/io/_save_modules/_torch.py +11 -3
  76. scitex/mcp_server.py +159 -0
  77. scitex/plt/_mcp_handlers.py +361 -0
  78. scitex/plt/_mcp_tool_schemas.py +169 -0
  79. scitex/plt/mcp_server.py +205 -0
  80. scitex/repro/README_RandomStateManager.md +3 -3
  81. scitex/repro/_RandomStateManager.py +14 -14
  82. scitex/repro/_gen_ID.py +1 -1
  83. scitex/repro/_gen_timestamp.py +1 -1
  84. scitex/repro/_hash_array.py +4 -4
  85. scitex/scholar/__main__.py +24 -2
  86. scitex/scholar/_mcp_handlers.py +685 -0
  87. scitex/scholar/_mcp_tool_schemas.py +339 -0
  88. scitex/scholar/docs/template.py +1 -1
  89. scitex/scholar/examples/07_storage_integration.py +1 -1
  90. scitex/scholar/impact_factor/jcr/ImpactFactorJCREngine.py +1 -1
  91. scitex/scholar/impact_factor/jcr/build_database.py +1 -1
  92. scitex/scholar/mcp_server.py +315 -0
  93. scitex/scholar/pdf_download/ScholarPDFDownloader.py +1 -1
  94. scitex/scholar/pipelines/ScholarPipelineBibTeX.py +1 -1
  95. scitex/scholar/pipelines/ScholarPipelineParallel.py +1 -1
  96. scitex/scholar/pipelines/ScholarPipelineSingle.py +1 -1
  97. scitex/scholar/storage/PaperIO.py +1 -1
  98. scitex/session/README.md +4 -4
  99. scitex/session/__init__.py +1 -1
  100. scitex/session/_decorator.py +9 -9
  101. scitex/session/_lifecycle.py +5 -5
  102. scitex/session/template.py +1 -1
  103. scitex/stats/__main__.py +281 -0
  104. scitex/stats/_mcp_handlers.py +1191 -0
  105. scitex/stats/_mcp_tool_schemas.py +384 -0
  106. scitex/stats/correct/_correct_bonferroni.py +1 -1
  107. scitex/stats/correct/_correct_fdr.py +1 -1
  108. scitex/stats/correct/_correct_fdr_.py +1 -1
  109. scitex/stats/correct/_correct_holm.py +1 -1
  110. scitex/stats/correct/_correct_sidak.py +1 -1
  111. scitex/stats/effect_sizes/_cliffs_delta.py +1 -1
  112. scitex/stats/effect_sizes/_cohens_d.py +1 -1
  113. scitex/stats/effect_sizes/_epsilon_squared.py +1 -1
  114. scitex/stats/effect_sizes/_eta_squared.py +1 -1
  115. scitex/stats/effect_sizes/_prob_superiority.py +1 -1
  116. scitex/stats/mcp_server.py +405 -0
  117. scitex/stats/posthoc/_dunnett.py +1 -1
  118. scitex/stats/posthoc/_games_howell.py +1 -1
  119. scitex/stats/posthoc/_tukey_hsd.py +1 -1
  120. scitex/stats/power/_power.py +1 -1
  121. scitex/stats/utils/_effect_size.py +1 -1
  122. scitex/stats/utils/_formatters.py +1 -1
  123. scitex/stats/utils/_power.py +1 -1
  124. scitex/template/_mcp_handlers.py +259 -0
  125. scitex/template/_mcp_tool_schemas.py +112 -0
  126. scitex/template/mcp_server.py +186 -0
  127. scitex/utils/_verify_scitex_format.py +2 -2
  128. scitex/utils/template.py +1 -1
  129. scitex/web/__init__.py +12 -11
  130. scitex/web/_scraping.py +26 -265
  131. scitex/web/download_images.py +316 -0
  132. scitex/writer/Writer.py +1 -1
  133. scitex/writer/_clone_writer_project.py +1 -1
  134. scitex/writer/_validate_tree_structures.py +1 -1
  135. scitex/writer/dataclasses/config/_WriterConfig.py +1 -1
  136. scitex/writer/dataclasses/contents/_ManuscriptContents.py +1 -1
  137. scitex/writer/dataclasses/core/_Document.py +1 -1
  138. scitex/writer/dataclasses/core/_DocumentSection.py +1 -1
  139. scitex/writer/dataclasses/results/_CompilationResult.py +1 -1
  140. scitex/writer/dataclasses/results/_LaTeXIssue.py +1 -1
  141. scitex/writer/utils/.legacy_git_retry.py +7 -5
  142. scitex/writer/utils/_parse_latex_logs.py +1 -1
  143. {scitex-2.11.0.dist-info → scitex-2.13.0.dist-info}/METADATA +431 -269
  144. {scitex-2.11.0.dist-info → scitex-2.13.0.dist-info}/RECORD +147 -118
  145. scitex-2.13.0.dist-info/entry_points.txt +11 -0
  146. scitex-2.11.0.dist-info/entry_points.txt +0 -2
  147. {scitex-2.11.0.dist-info → scitex-2.13.0.dist-info}/WHEEL +0 -0
  148. {scitex-2.11.0.dist-info → scitex-2.13.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,405 @@
1
+ #!/usr/bin/env python3
2
+ # Timestamp: 2026-01-08
3
+ # File: src/scitex/stats/mcp_server.py
4
+ # ----------------------------------------
5
+
6
+ """
7
+ MCP Server for SciTeX Stats - Statistical Testing Framework
8
+
9
+ Provides tools for:
10
+ - Recommending appropriate statistical tests
11
+ - Running statistical tests
12
+ - Formatting results for publication
13
+ - Power analysis and sample size calculation
14
+ - Multiple comparison correction
15
+ - Descriptive statistics
16
+ - Effect size calculation
17
+ - Normality testing
18
+ - Post-hoc comparisons
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ import asyncio
24
+
25
+ # Graceful MCP dependency handling
26
+ try:
27
+ import mcp.types as types
28
+ from mcp.server import NotificationOptions, Server
29
+ from mcp.server.models import InitializationOptions
30
+ from mcp.server.stdio import stdio_server
31
+
32
+ MCP_AVAILABLE = True
33
+ except ImportError:
34
+ MCP_AVAILABLE = False
35
+ types = None # type: ignore
36
+ Server = None # type: ignore
37
+ NotificationOptions = None # type: ignore
38
+ InitializationOptions = None # type: ignore
39
+ stdio_server = None # type: ignore
40
+
41
+ __all__ = ["StatsServer", "main", "MCP_AVAILABLE"]
42
+
43
+
44
+ class StatsServer:
45
+ """MCP Server for Statistical Testing Framework."""
46
+
47
+ def __init__(self):
48
+ self.server = Server("scitex-stats")
49
+ self.setup_handlers()
50
+
51
+ def setup_handlers(self):
52
+ """Set up MCP server handlers."""
53
+ from ._mcp_handlers import (
54
+ correct_pvalues_handler,
55
+ describe_handler,
56
+ effect_size_handler,
57
+ format_results_handler,
58
+ normality_test_handler,
59
+ p_to_stars_handler,
60
+ posthoc_test_handler,
61
+ power_analysis_handler,
62
+ recommend_tests_handler,
63
+ run_test_handler,
64
+ )
65
+ from ._mcp_tool_schemas import get_tool_schemas
66
+
67
+ @self.server.list_tools()
68
+ async def handle_list_tools():
69
+ return get_tool_schemas()
70
+
71
+ @self.server.call_tool()
72
+ async def handle_call_tool(name: str, arguments: dict):
73
+ # Test Recommendation
74
+ if name == "recommend_tests":
75
+ return await self._wrap_result(recommend_tests_handler(**arguments))
76
+
77
+ # Run Statistical Test
78
+ elif name == "run_test":
79
+ return await self._wrap_result(run_test_handler(**arguments))
80
+
81
+ # Format Results
82
+ elif name == "format_results":
83
+ return await self._wrap_result(format_results_handler(**arguments))
84
+
85
+ # Power Analysis
86
+ elif name == "power_analysis":
87
+ return await self._wrap_result(power_analysis_handler(**arguments))
88
+
89
+ # Correct P-values
90
+ elif name == "correct_pvalues":
91
+ return await self._wrap_result(correct_pvalues_handler(**arguments))
92
+
93
+ # Descriptive Statistics
94
+ elif name == "describe":
95
+ return await self._wrap_result(describe_handler(**arguments))
96
+
97
+ # Effect Size
98
+ elif name == "effect_size":
99
+ return await self._wrap_result(effect_size_handler(**arguments))
100
+
101
+ # Normality Test
102
+ elif name == "normality_test":
103
+ return await self._wrap_result(normality_test_handler(**arguments))
104
+
105
+ # Post-hoc Test
106
+ elif name == "posthoc_test":
107
+ return await self._wrap_result(posthoc_test_handler(**arguments))
108
+
109
+ # P-value to Stars
110
+ elif name == "p_to_stars":
111
+ return await self._wrap_result(p_to_stars_handler(**arguments))
112
+
113
+ else:
114
+ raise ValueError(f"Unknown tool: {name}")
115
+
116
+ @self.server.list_resources()
117
+ async def handle_list_resources():
118
+ """List available statistical resources."""
119
+ resources = [
120
+ types.Resource(
121
+ uri="stats://tests/parametric",
122
+ name="Parametric Tests",
123
+ description="List of available parametric statistical tests",
124
+ mimeType="application/json",
125
+ ),
126
+ types.Resource(
127
+ uri="stats://tests/nonparametric",
128
+ name="Non-parametric Tests",
129
+ description="List of available non-parametric statistical tests",
130
+ mimeType="application/json",
131
+ ),
132
+ types.Resource(
133
+ uri="stats://effect-sizes",
134
+ name="Effect Size Measures",
135
+ description="Available effect size calculations",
136
+ mimeType="application/json",
137
+ ),
138
+ types.Resource(
139
+ uri="stats://correction-methods",
140
+ name="Multiple Comparison Methods",
141
+ description="Available p-value correction methods",
142
+ mimeType="application/json",
143
+ ),
144
+ ]
145
+ return resources
146
+
147
+ @self.server.read_resource()
148
+ async def handle_read_resource(uri: str):
149
+ """Read a statistical resource."""
150
+ import json
151
+
152
+ if uri == "stats://tests/parametric":
153
+ content = json.dumps(
154
+ {
155
+ "tests": [
156
+ {
157
+ "name": "ttest_ind",
158
+ "description": "Independent samples t-test",
159
+ "groups": 2,
160
+ "assumptions": ["normality", "equal_variance"],
161
+ },
162
+ {
163
+ "name": "ttest_paired",
164
+ "description": "Paired samples t-test",
165
+ "groups": 2,
166
+ "assumptions": ["normality"],
167
+ },
168
+ {
169
+ "name": "ttest_1samp",
170
+ "description": "One-sample t-test",
171
+ "groups": 1,
172
+ "assumptions": ["normality"],
173
+ },
174
+ {
175
+ "name": "anova",
176
+ "description": "One-way ANOVA",
177
+ "groups": "2+",
178
+ "assumptions": ["normality", "equal_variance"],
179
+ },
180
+ {
181
+ "name": "pearson",
182
+ "description": "Pearson correlation",
183
+ "groups": 2,
184
+ "assumptions": ["normality", "linearity"],
185
+ },
186
+ ]
187
+ },
188
+ indent=2,
189
+ )
190
+ return types.TextResourceContents(
191
+ uri=uri,
192
+ mimeType="application/json",
193
+ text=content,
194
+ )
195
+
196
+ elif uri == "stats://tests/nonparametric":
197
+ content = json.dumps(
198
+ {
199
+ "tests": [
200
+ {
201
+ "name": "brunner_munzel",
202
+ "description": "Brunner-Munzel test (recommended)",
203
+ "groups": 2,
204
+ "assumptions": [],
205
+ },
206
+ {
207
+ "name": "mannwhitneyu",
208
+ "description": "Mann-Whitney U test",
209
+ "groups": 2,
210
+ "assumptions": [],
211
+ },
212
+ {
213
+ "name": "wilcoxon",
214
+ "description": "Wilcoxon signed-rank test",
215
+ "groups": 2,
216
+ "assumptions": ["paired"],
217
+ },
218
+ {
219
+ "name": "kruskal",
220
+ "description": "Kruskal-Wallis H test",
221
+ "groups": "2+",
222
+ "assumptions": [],
223
+ },
224
+ {
225
+ "name": "spearman",
226
+ "description": "Spearman rank correlation",
227
+ "groups": 2,
228
+ "assumptions": [],
229
+ },
230
+ {
231
+ "name": "kendall",
232
+ "description": "Kendall tau correlation",
233
+ "groups": 2,
234
+ "assumptions": [],
235
+ },
236
+ ]
237
+ },
238
+ indent=2,
239
+ )
240
+ return types.TextResourceContents(
241
+ uri=uri,
242
+ mimeType="application/json",
243
+ text=content,
244
+ )
245
+
246
+ elif uri == "stats://effect-sizes":
247
+ content = json.dumps(
248
+ {
249
+ "measures": [
250
+ {
251
+ "name": "cohens_d",
252
+ "description": "Cohen's d - standardized mean difference",
253
+ "type": "parametric",
254
+ "interpretation": {
255
+ "small": 0.2,
256
+ "medium": 0.5,
257
+ "large": 0.8,
258
+ },
259
+ },
260
+ {
261
+ "name": "hedges_g",
262
+ "description": "Hedges' g - bias-corrected Cohen's d",
263
+ "type": "parametric",
264
+ "interpretation": {
265
+ "small": 0.2,
266
+ "medium": 0.5,
267
+ "large": 0.8,
268
+ },
269
+ },
270
+ {
271
+ "name": "glass_delta",
272
+ "description": "Glass's delta - using control group SD",
273
+ "type": "parametric",
274
+ "interpretation": {
275
+ "small": 0.2,
276
+ "medium": 0.5,
277
+ "large": 0.8,
278
+ },
279
+ },
280
+ {
281
+ "name": "cliffs_delta",
282
+ "description": "Cliff's delta - nonparametric effect size",
283
+ "type": "nonparametric",
284
+ "interpretation": {
285
+ "negligible": 0.147,
286
+ "small": 0.33,
287
+ "medium": 0.474,
288
+ "large": 0.474,
289
+ },
290
+ },
291
+ ]
292
+ },
293
+ indent=2,
294
+ )
295
+ return types.TextResourceContents(
296
+ uri=uri,
297
+ mimeType="application/json",
298
+ text=content,
299
+ )
300
+
301
+ elif uri == "stats://correction-methods":
302
+ content = json.dumps(
303
+ {
304
+ "methods": [
305
+ {
306
+ "name": "bonferroni",
307
+ "description": "Bonferroni correction (FWER control)",
308
+ "conservative": True,
309
+ },
310
+ {
311
+ "name": "holm",
312
+ "description": "Holm-Bonferroni step-down (FWER control)",
313
+ "conservative": True,
314
+ },
315
+ {
316
+ "name": "sidak",
317
+ "description": "Sidak correction (FWER control)",
318
+ "conservative": True,
319
+ },
320
+ {
321
+ "name": "fdr_bh",
322
+ "description": "Benjamini-Hochberg (FDR control)",
323
+ "conservative": False,
324
+ },
325
+ {
326
+ "name": "fdr_by",
327
+ "description": "Benjamini-Yekutieli (FDR control)",
328
+ "conservative": False,
329
+ },
330
+ ]
331
+ },
332
+ indent=2,
333
+ )
334
+ return types.TextResourceContents(
335
+ uri=uri,
336
+ mimeType="application/json",
337
+ text=content,
338
+ )
339
+
340
+ else:
341
+ raise ValueError(f"Unknown resource URI: {uri}")
342
+
343
+ async def _wrap_result(self, coro):
344
+ """Wrap handler result as MCP TextContent."""
345
+ import json
346
+
347
+ try:
348
+ result = await coro
349
+ return [
350
+ types.TextContent(
351
+ type="text",
352
+ text=json.dumps(result, indent=2, default=str),
353
+ )
354
+ ]
355
+ except Exception as e:
356
+ return [
357
+ types.TextContent(
358
+ type="text",
359
+ text=json.dumps({"success": False, "error": str(e)}, indent=2),
360
+ )
361
+ ]
362
+
363
+
364
+ async def _run_server():
365
+ """Run the MCP server (internal)."""
366
+ server = StatsServer()
367
+ async with stdio_server() as (read_stream, write_stream):
368
+ await server.server.run(
369
+ read_stream,
370
+ write_stream,
371
+ InitializationOptions(
372
+ server_name="scitex-stats",
373
+ server_version="0.1.0",
374
+ capabilities=server.server.get_capabilities(
375
+ notification_options=NotificationOptions(),
376
+ experimental_capabilities={},
377
+ ),
378
+ ),
379
+ )
380
+
381
+
382
+ def main():
383
+ """Main entry point for the MCP server."""
384
+ if not MCP_AVAILABLE:
385
+ import sys
386
+
387
+ print("=" * 60)
388
+ print("MCP Server 'scitex-stats' requires the 'mcp' package.")
389
+ print()
390
+ print("Install with:")
391
+ print(" pip install mcp")
392
+ print()
393
+ print("Or install scitex with MCP support:")
394
+ print(" pip install scitex[mcp]")
395
+ print("=" * 60)
396
+ sys.exit(1)
397
+
398
+ asyncio.run(_run_server())
399
+
400
+
401
+ if __name__ == "__main__":
402
+ main()
403
+
404
+
405
+ # EOF
@@ -332,7 +332,7 @@ if __name__ == "__main__":
332
332
  parser = argparse.ArgumentParser()
333
333
  args = parser.parse_args([])
334
334
 
335
- CONFIG, sys.stdout, sys.stderr, plt, CC, rng_manager = stx.session.start(
335
+ CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start(
336
336
  sys=sys,
337
337
  plt=None,
338
338
  args=args,
@@ -283,7 +283,7 @@ if __name__ == "__main__":
283
283
  parser = argparse.ArgumentParser()
284
284
  args = parser.parse_args([])
285
285
 
286
- CONFIG, sys.stdout, sys.stderr, plt, CC, rng_manager = stx.session.start(
286
+ CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start(
287
287
  sys=sys,
288
288
  plt=None,
289
289
  args=args,
@@ -282,7 +282,7 @@ if __name__ == "__main__":
282
282
  parser = argparse.ArgumentParser()
283
283
  args = parser.parse_args([])
284
284
 
285
- CONFIG, sys.stdout, sys.stderr, plt, CC, rng_manager = stx.session.start(
285
+ CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start(
286
286
  sys=sys,
287
287
  plt=None,
288
288
  args=args,
@@ -409,7 +409,7 @@ def run_main():
409
409
 
410
410
  args = parse_args()
411
411
 
412
- CONFIG, sys.stdout, sys.stderr, plt, CC, rng_manager = stx.session.start(
412
+ CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start(
413
413
  sys,
414
414
  plt,
415
415
  args=args,
@@ -968,7 +968,7 @@ def run_main():
968
968
 
969
969
  args = parse_args()
970
970
 
971
- CONFIG, sys.stdout, sys.stderr, plt, CC, rng_manager = stx.session.start(
971
+ CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start(
972
972
  sys,
973
973
  plt,
974
974
  args=args,
@@ -252,7 +252,7 @@ def run_main():
252
252
 
253
253
  args = parse_args()
254
254
 
255
- CONFIG, sys.stdout, sys.stderr, plt, CC, rng_manager = stx.session.start(
255
+ CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start(
256
256
  sys,
257
257
  plt,
258
258
  args=args,
@@ -409,7 +409,7 @@ def run_main():
409
409
 
410
410
  args = parse_args()
411
411
 
412
- CONFIG, sys.stdout, sys.stderr, plt, CC, rng_manager = stx.session.start(
412
+ CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start(
413
413
  sys,
414
414
  plt,
415
415
  args=args,