Skip to content

Commit b4351af

Browse files
prmukherjpyansys-ci-bothpohekar
authored
refactor: scheme_eval. (#4042)
scheme_eval.scheme_eval -> scheme.eval scheme_eval.eval -> scheme._eval scheme_eval.string_eval -> scheme.string_eval "scheme_eval" from session level and "scheme_eval" from the service level is deprecated. Tests and docs have been updated as per these updates. --------- Co-authored-by: pyansys-ci-bot <[email protected]> Co-authored-by: Harshal Pohekar <[email protected]>
1 parent 288ef85 commit b4351af

38 files changed

+151
-170
lines changed

doc/changelog.d/4042.miscellaneous.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
scheme_eval.

doc/deprecated_pyfluent_apis.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
PYFLUENT_DEPRECATED_DATA = [
44
# Target, Deprecated, Alternatives
55
# methods
6+
(
7+
":py:meth:`ansys.fluent.core.services.scheme_eval.SchemeEval.scheme_eval <ansys.fluent.core.services.scheme_eval.SchemeEval.scheme_eval>`",
8+
"0.32",
9+
":py:meth:`ansys.fluent.core.services.scheme_eval.SchemeEval.eval <ansys.fluent.core.services.scheme_eval.SchemeEval.eval>`",
10+
),
11+
(
12+
":py:meth:`ansys.fluent.core.session.BaseSession.scheme_eval <ansys.fluent.core.session.BaseSession.scheme_eval>`",
13+
"0.32",
14+
":py:meth:`ansys.fluent.core.session.BaseSession.scheme <ansys.fluent.core.session.BaseSession.scheme>`",
15+
),
616
(
717
":py:meth:`ansys.fluent.core.fluent_connection.FluentConnection.health_check <ansys.fluent.core.fluent_connection.FluentConnection.health_check>`",
818
"0.32",

doc/source/cheatsheet/cheat_sheet.qmd

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,13 +1095,8 @@ solver = pyfluent.launch_fluent(
10951095

10961096
```{python}
10971097
import ansys.fluent.core as pyfluent
1098-
S = pyfluent.services.scheme_eval.Symbol
1099-
session.scheme_eval.eval([S('+'), 2, 3])
1100-
session.scheme_eval.eval([S('rpgetvar'), [S('string->symbol'), "mom/relax"]])
1101-
session.scheme_eval.exec(('(ti-menu-load-string "/report/system/proc-stats")',))
1098+
session.scheme.exec(('(ti-menu-load-string "/report/system/proc-stats")',))
11021099
# Returns TUI output string
1103-
session.scheme_eval.string_eval("(+ 2 3)")
1104-
session.scheme_eval.string_eval("(rpgetvar 'mom/relax)")
1105-
session.scheme_eval.scheme_eval("(+ 2 3)")
1106-
session.scheme_eval.scheme_eval("(rpgetvar 'mom/relax)")
1100+
session.scheme.eval("(+ 2 3)")
1101+
session.scheme.eval("(rpgetvar 'mom/relax)")
11071102
```

doc/source/user_guide/legacy/scheme.rst

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,11 @@ Examples
1313

1414
.. code-block:: python
1515
16-
>>> from ansys.fluent.core.services.scheme_eval import Symbol as S
17-
>>> session.scheme_eval.eval([S('+'), 2, 3])
18-
5
19-
>>> session.scheme_eval.eval([S('rpgetvar'), [S('string->symbol'), "mom/relax"]])
20-
0.7
21-
>>> session.scheme_eval.exec(('(ti-menu-load-string "/report/system/proc-stats")',))
16+
>>> session.scheme.exec(('(ti-menu-load-string "/report/system/proc-stats")',))
2217
>>> # Returns TUI output string
23-
>>> session.scheme_eval.string_eval("(+ 2 3)")
24-
'5'
25-
>>> session.scheme_eval.string_eval("(rpgetvar 'mom/relax)")
18+
>>> session.scheme.eval("(rpgetvar 'mom/relax)")
2619
'0.7'
27-
>>> session.scheme_eval.scheme_eval("(+ 2 3)")
20+
>>> session.scheme.eval("(+ 2 3)")
2821
5
29-
>>> session.scheme_eval.scheme_eval("(rpgetvar 'mom/relax)")
22+
>>> session.scheme.eval("(rpgetvar 'mom/relax)")
3023
0.7

examples/00-fluent/DOE_ML.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@
127127
solver.settings.solution.initialization.standard_initialize()
128128
solver.settings.solution.run_calculation.iterate(iter_count=200)
129129

130-
res_tui = solver.scheme_eval.exec(
130+
res_tui = solver.scheme.exec(
131131
(
132132
"(ti-menu-load-string "
133133
'"/report/surface-integrals/mass-weighted-avg outlet () '

examples/00-fluent/conjugate_heat_transfer.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,13 +703,13 @@
703703
# Post-Processing Mass Balance Report
704704
# ===================================
705705

706-
inlet_mfr = solver.scheme_eval.exec(
706+
inlet_mfr = solver.scheme.exec(
707707
('(ti-menu-load-string "/report/fluxes/mass-flow no inlet () no")',)
708708
).split(" ")[-1]
709-
outlet_mfr = solver.scheme_eval.exec(
709+
outlet_mfr = solver.scheme.exec(
710710
('(ti-menu-load-string "/report/fluxes/mass-flow no outlet () no")',)
711711
).split(" ")[-1]
712-
net_mfr = solver.scheme_eval.exec(
712+
net_mfr = solver.scheme.exec(
713713
('(ti-menu-load-string "/report/fluxes/mass-flow no inlet outlet () no")',)
714714
).split(" ")[-1]
715715
print("Mass Balance Report\n")
@@ -721,7 +721,7 @@
721721
# Heat Balance Report
722722
# ===================
723723

724-
htr = solver.scheme_eval.exec(
724+
htr = solver.scheme.exec(
725725
('(ti-menu-load-string "/report/fluxes/heat-transfer yes no")',)
726726
).split(" ")[-1]
727727
print("Heat Balance Report\n")

src/ansys/fluent/core/post_objects/post_helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def get_vector_fields(self):
155155
def get_field_unit(self, field):
156156
"""Returns the unit of the field."""
157157
session = self.obj.get_root().session
158-
if FluentVersion(session.scheme_eval.version) < FluentVersion.v252:
158+
if FluentVersion(session.scheme.version) < FluentVersion.v252:
159159
quantity = self._field_unit_quantity(field)
160160
if quantity == "*null*":
161161
return ""

src/ansys/fluent/core/services/app_utilities.py

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -155,18 +155,18 @@ class AppUtilitiesOld:
155155

156156
def __init__(self, scheme_eval):
157157
"""__init__ method of AppUtilitiesOld class."""
158-
self.scheme_eval = scheme_eval
158+
self.scheme = scheme_eval
159159

160160
def get_product_version(self) -> str:
161161
"""Get product version."""
162-
return self.scheme_eval.version
162+
return self.scheme.version
163163

164164
def get_build_info(self) -> dict:
165165
"""Get build info."""
166-
build_time = self.scheme_eval.scheme_eval("(inquire-build-time)")
167-
build_id = self.scheme_eval.scheme_eval("(inquire-build-id)")
168-
vcs_revision = self.scheme_eval.scheme_eval("(inquire-src-vcs-id)")
169-
vcs_branch = self.scheme_eval.scheme_eval("(inquire-src-vcs-branch)")
166+
build_time = self.scheme.eval("(inquire-build-time)")
167+
build_id = self.scheme.eval("(inquire-build-id)")
168+
vcs_revision = self.scheme.eval("(inquire-src-vcs-id)")
169+
vcs_branch = self.scheme.eval("(inquire-src-vcs-branch)")
170170
return {
171171
"build_time": build_time,
172172
"build_id": build_id,
@@ -176,9 +176,9 @@ def get_build_info(self) -> dict:
176176

177177
def get_controller_process_info(self) -> dict:
178178
"""Get controller process info."""
179-
cortex_host = self.scheme_eval.scheme_eval("(cx-cortex-host)")
180-
cortex_pid = self.scheme_eval.scheme_eval("(cx-cortex-id)")
181-
cortex_pwd = self.scheme_eval.scheme_eval("(cortex-pwd)")
179+
cortex_host = self.scheme.eval("(cx-cortex-host)")
180+
cortex_pid = self.scheme.eval("(cx-cortex-id)")
181+
cortex_pwd = self.scheme.eval("(cortex-pwd)")
182182
return {
183183
"hostname": cortex_host,
184184
"process_id": cortex_pid,
@@ -187,9 +187,9 @@ def get_controller_process_info(self) -> dict:
187187

188188
def get_solver_process_info(self) -> dict:
189189
"""Get solver process info."""
190-
fluent_host = self.scheme_eval.scheme_eval("(cx-client-host)")
191-
fluent_pid = self.scheme_eval.scheme_eval("(cx-client-id)")
192-
fluent_pwd = self.scheme_eval.scheme_eval("(cx-send '(cx-client-pwd))")
190+
fluent_host = self.scheme.eval("(cx-client-host)")
191+
fluent_pid = self.scheme.eval("(cx-client-id)")
192+
fluent_pwd = self.scheme.eval("(cx-send '(cx-client-pwd))")
193193
return {
194194
"hostname": fluent_host,
195195
"process_id": fluent_pid,
@@ -200,8 +200,8 @@ def get_app_mode(self) -> Enum:
200200
"""Get app mode."""
201201
from ansys.fluent.core import FluentMode
202202

203-
if self.scheme_eval.scheme_eval("(cx-solver-mode?)"):
204-
mode_str = self.scheme_eval.scheme_eval('(getenv "PRJAPP_APP")')
203+
if self.scheme.eval("(cx-solver-mode?)"):
204+
mode_str = self.scheme.eval('(getenv "PRJAPP_APP")')
205205
if mode_str == "flaero_server":
206206
return FluentMode.SOLVER_AERO
207207
elif mode_str == "flicing":
@@ -214,44 +214,38 @@ def get_app_mode(self) -> Enum:
214214
def start_python_journal(self, journal_name: str | None = None) -> int:
215215
"""Start python journal."""
216216
if journal_name:
217-
self.scheme_eval.exec([f'(api-start-python-journal "{journal_name}")'])
217+
self.scheme.exec([f'(api-start-python-journal "{journal_name}")'])
218218
else:
219-
self.scheme_eval.scheme_eval(
220-
"(define pyfluent-journal-str-port (open-output-string))"
221-
)
222-
self.scheme_eval.scheme_eval(
223-
"(api-echo-python-port pyfluent-journal-str-port)"
224-
)
219+
self.scheme.eval("(define pyfluent-journal-str-port (open-output-string))")
220+
self.scheme.eval("(api-echo-python-port pyfluent-journal-str-port)")
225221
return "1"
226222

227223
def stop_python_journal(self, journal_id: str | None = None) -> str:
228224
"""Stop python journal."""
229225
if journal_id:
230-
self.scheme_eval.scheme_eval(
231-
"(api-unecho-python-port pyfluent-journal-str-port)"
232-
)
233-
journal_str = self.scheme_eval.scheme_eval(
226+
self.scheme.eval("(api-unecho-python-port pyfluent-journal-str-port)")
227+
journal_str = self.scheme.eval(
234228
"(close-output-port pyfluent-journal-str-port)"
235229
)
236230
return journal_str
237231
else:
238-
self.scheme_eval.exec(["(api-stop-python-journal)"])
232+
self.scheme.exec(["(api-stop-python-journal)"])
239233

240234
def is_beta_enabled(self) -> bool:
241235
"""Is beta enabled."""
242-
return self.scheme_eval.scheme_eval("(is-beta-feature-available?)")
236+
return self.scheme.eval("(is-beta-feature-available?)")
243237

244238
def is_wildcard(self, input: str | None = None) -> bool:
245239
"""Is wildcard."""
246-
return self.scheme_eval.scheme_eval(f'(has-fnmatch-wild-card? "{input}")')
240+
return self.scheme.eval(f'(has-fnmatch-wild-card? "{input}")')
247241

248242
def is_solution_data_available(self) -> bool:
249243
"""Is solution data available."""
250-
return self.scheme_eval.scheme_eval("(data-valid?)")
244+
return self.scheme.eval("(data-valid?)")
251245

252246
def register_pause_on_solution_events(self, solution_event: SolverEvent) -> int:
253247
"""Register pause on solution events."""
254-
unique_id: int = self.scheme_eval.scheme_eval(
248+
unique_id: int = self.scheme.eval(
255249
f"""
256250
(let
257251
((ids
@@ -284,23 +278,21 @@ def register_pause_on_solution_events(self, solution_event: SolverEvent) -> int:
284278

285279
def resume_on_solution_event(self, registration_id: int) -> None:
286280
"""Resume on solution event."""
287-
self.scheme_eval.scheme_eval(
281+
self.scheme.eval(
288282
f"(grpcserver/auto-resume (is-server-running?) 'pyfluent-{registration_id})"
289283
)
290284

291285
def unregister_pause_on_solution_events(self, registration_id: int) -> None:
292286
"""Unregister pause on solution events."""
293-
self.scheme_eval.scheme_eval(
294-
f"(cancel-solution-monitor 'pyfluent-{registration_id})"
295-
)
287+
self.scheme.eval(f"(cancel-solution-monitor 'pyfluent-{registration_id})")
296288

297289
def exit(self) -> None:
298290
"""Exit."""
299-
self.scheme_eval.exec(("(exit-server)",))
291+
self.scheme.exec(("(exit-server)",))
300292

301293
def set_working_directory(self, path: str) -> None:
302294
"""Change client cortex dir."""
303-
self.scheme_eval.scheme_eval(f'(syncdir "{path}")')
295+
self.scheme.eval(f'(syncdir "{path}")')
304296

305297

306298
class AppUtilities:

src/ansys/fluent/core/services/field_data.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,7 +1266,7 @@ def __init__(
12661266
self._service = service
12671267
self._field_info = field_info
12681268
self.is_data_valid = is_data_valid
1269-
self.scheme_eval = scheme_eval
1269+
self.scheme = scheme_eval
12701270

12711271
self.get_zones_info = lambda: get_zones_info()()
12721272

@@ -1400,7 +1400,7 @@ def _get_vector_field_data(
14001400
kwargs.get("field_name")
14011401
)
14021402
for surface_id in surface_ids:
1403-
self.scheme_eval.string_eval(f"(surface? {surface_id})")
1403+
self.scheme.string_eval(f"(surface? {surface_id})")
14041404
fields_request = get_fields_request()
14051405
fields_request.vectorFieldRequest.extend(
14061406
self._fetched_data._vector_data(
@@ -1602,7 +1602,7 @@ def get_mesh(self, zone: str | int) -> Mesh:
16021602
domain_id=ROOT_DOMAIN_ID, thread_id=zone_info._id
16031603
)
16041604
# TODO: Add precision query in AppUtilities service
1605-
is_double_precision = self.scheme_eval.scheme_eval("(rp-double?)")
1605+
is_double_precision = self.scheme.eval("(rp-double?)")
16061606
if is_double_precision:
16071607
nested_nodes = self._service.get_solver_mesh_nodes_double(nodes_request)
16081608
else:

src/ansys/fluent/core/services/scheme_eval.py

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,17 @@
2424
2525
Example
2626
-------
27-
>>> from ansys.fluent.core.services.scheme_eval import Symbol as S
28-
>>> session.scheme_eval.eval([S('+'), 2, 3])
29-
5
30-
>>> session.scheme_eval.eval([S('rpgetvar'), [S('string->symbol'), "mom/relax"]])
31-
0.7
32-
>>> session.scheme_eval.exec(('(ti-menu-load-string "/report/system/proc-stats")',))
27+
>>> session.scheme.exec(('(ti-menu-load-string "/report/system/proc-stats")',))
3328
>>> # Returns TUI output string
34-
>>> session.scheme_eval.string_eval("(+ 2 3)")
35-
'5'
36-
>>> session.scheme_eval.string_eval("(rpgetvar 'mom/relax)")
37-
'0.7'
38-
>>> session.scheme_eval.scheme_eval("(+ 2 3)")
29+
>>> session.scheme.eval("(+ 2 3)")
3930
5
40-
>>> session.scheme_eval.scheme_eval("(rpgetvar 'mom/relax)")
31+
>>> session.scheme.eval("(rpgetvar 'mom/relax)")
4132
0.7
4233
"""
4334

4435
from typing import Any, Sequence
4536

37+
from deprecated.sphinx import deprecated
4638
import grpc
4739

4840
from ansys.api.fluent.v0 import scheme_eval_pb2 as SchemeEvalProtoModule
@@ -255,14 +247,10 @@ class SchemeEval:
255247
256248
Methods
257249
-------
258-
eval(val)
259-
Evaluates a scheme expression, returns Python value
260250
exec(commands, wait, silent)
261251
Executes a sequence of scheme commands, returns TUI output
262252
string
263-
string_eval(input)
264-
Evaluates a scheme expression in string format, returns string
265-
scheme_eval(input)
253+
eval(input)
266254
Evaluates a scheme expression in string format, returns Python
267255
value
268256
"""
@@ -276,7 +264,7 @@ def __init__(self, service: SchemeEvalService) -> None:
276264
except Exception: # for pypim launch
277265
self.version = FluentVersion.v231.value
278266

279-
def eval(self, val: Any, suppress_prompts: bool = True) -> Any:
267+
def _eval(self, val: Any, suppress_prompts: bool = True) -> Any:
280268
"""Evaluates a scheme expression.
281269
282270
Parameters
@@ -354,12 +342,17 @@ def string_eval(self, input: str) -> str:
354342
response = self.service.string_eval(request)
355343
return response.output
356344

357-
def scheme_eval(self, input: str, suppress_prompts: bool = True) -> Any:
345+
@deprecated(version="0.32", reason="Use ``session.scheme``.")
346+
def scheme_eval(self, scm_input: str, suppress_prompts: bool = True) -> Any:
347+
"""Evaluates a scheme expression in string format."""
348+
return self.eval(scm_input, suppress_prompts)
349+
350+
def eval(self, scm_input: str, suppress_prompts: bool = True) -> Any:
358351
"""Evaluates a scheme expression in string format.
359352
360353
Parameters
361354
----------
362-
input : str
355+
scm_input : str
363356
Input scheme expression in string format
364357
365358
suppress_prompts : bool, optional
@@ -373,10 +366,10 @@ def scheme_eval(self, input: str, suppress_prompts: bool = True) -> Any:
373366
S = Symbol # noqa N806
374367
val = (
375368
S("eval"),
376-
(S("with-input-from-string"), input, S("read")),
369+
(S("with-input-from-string"), scm_input, S("read")),
377370
S("user-initial-environment"),
378371
)
379-
return self.eval(val, suppress_prompts)
372+
return self._eval(val, suppress_prompts)
380373

381374
def is_defined(self, symbol: str) -> bool:
382375
"""Check if a symbol is defined in the scheme environment.
@@ -391,6 +384,6 @@ def is_defined(self, symbol: str) -> bool:
391384
bool
392385
True if symbol is defined, False otherwise
393386
"""
394-
return not self.scheme_eval(
387+
return not self.eval(
395388
f"(lexical-unreferenceable? user-initial-environment '{symbol})"
396389
)

0 commit comments

Comments
 (0)