Skip to content

Commit 94d8462

Browse files
hpohekarprmukherj
andauthored
Retire root object latest (#1190)
* Retire root object latest * Updated test marker * Removed Session * Retire root object latest * Updated test marker * Removed Session * Removed Session from import statement * Removed unnecessary brackets * Updated import statement Co-authored-by: Prithwish Mukherjee <[email protected]>
1 parent 52afb6a commit 94d8462

File tree

4 files changed

+20
-218
lines changed

4 files changed

+20
-218
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ unittest-all-222:
3838
@sudo rm -rf /home/ansys/.local/share/ansys_fluent_core/examples/*
3939
@echo "Running all unittests"
4040
@pip install -r requirements/requirements_tests.txt
41-
@python -m pytest -v -m "not fluent_231" --cov=ansys.fluent --cov-report html:cov_html --cov-config=.coveragerc --durations=0
41+
@python -m pytest -v -m "not fluent_231 and not fluent_232" --cov=ansys.fluent --cov-report html:cov_html --cov-config=.coveragerc --durations=0
4242

4343
unittest-all-231:
4444
@sudo rm -rf /home/ansys/.local/share/ansys_fluent_core/examples/*

src/ansys/fluent/core/launcher/launcher.py

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from ansys.fluent.core.fluent_connection import _FluentConnection
1818
from ansys.fluent.core.launcher.fluent_container import start_fluent_container
1919
from ansys.fluent.core.scheduler import build_parallel_options, load_machines
20-
from ansys.fluent.core.session import Session, _BaseSession, parse_server_info_file
20+
from ansys.fluent.core.session import _BaseSession, parse_server_info_file
2121
from ansys.fluent.core.session_meshing import Meshing
2222
from ansys.fluent.core.session_pure_meshing import PureMeshing
2323
from ansys.fluent.core.session_solver import Solver
@@ -229,7 +229,7 @@ def launch_remote_fluent(
229229
230230
Parameters
231231
----------
232-
session_cls: [_BaseSession, Session]
232+
session_cls: _BaseSession
233233
Instance of the Session class
234234
start_transcript: bool
235235
Whether to start streaming the Fluent transcript in the client. The
@@ -281,22 +281,18 @@ def launch_remote_fluent(
281281

282282

283283
def _get_session_info(
284-
argvals, mode: Union[LaunchModes, str, None] = None, meshing_mode: bool = None
284+
argvals, mode: Union[LaunchModes, str, None] = None
285285
):
286286
"""Updates the session information."""
287287
if mode is None:
288-
new_session = Session
289-
elif mode and meshing_mode:
290-
raise RuntimeError(
291-
"Please select either of the 2 ways of running ('mode' or 'meshing_mode')"
292-
)
293-
else:
294-
if type(mode) == str:
295-
mode = LaunchModes.get_mode(mode)
296-
new_session = mode.value[1]
297-
meshing_mode = mode.value[2]
298-
for k, v in mode.value[3]:
299-
argvals[k] = v
288+
mode = LaunchModes.SOLVER
289+
290+
if type(mode) == str:
291+
mode = LaunchModes.get_mode(mode)
292+
new_session = mode.value[1]
293+
meshing_mode = mode.value[2]
294+
for k, v in mode.value[3]:
295+
argvals[k] = v
300296

301297
return new_session, meshing_mode, argvals, mode
302298

@@ -438,14 +434,14 @@ def launch_fluent(
438434
start_transcript: bool = True,
439435
show_gui: bool = None,
440436
case_filepath: str = None,
441-
meshing_mode: bool = None,
442437
mode: Union[LaunchModes, str, None] = None,
443438
server_info_filepath: str = None,
444439
password: str = None,
445440
py: bool = None,
446441
cwd: str = None,
447442
topy: Union[str, list] = None,
448-
) -> Union[_BaseSession, Session]:
443+
) -> _BaseSession:
444+
449445
"""Launch Fluent locally in server mode or connect to a running Fluent
450446
server instance.
451447
@@ -512,9 +508,6 @@ def launch_fluent(
512508
case_filepath : str, optional
513509
If provided, reads a fluent case file and sets the required settings
514510
in the fluent session
515-
meshing_mode : bool, optional
516-
Whether to launch Fluent in meshing mode. The default is ``None``,
517-
in which case Fluent is launched in meshing mode.
518511
mode : str, optional
519512
Launch mode of Fluent to point to a specific session type.
520513
The default value is ``None``. Options are ``"meshing"``,
@@ -546,7 +539,7 @@ def launch_fluent(
546539
argvals = locals()
547540

548541
new_session, meshing_mode, argvals, mode = _get_session_info(
549-
argvals, mode, meshing_mode
542+
argvals, mode
550543
)
551544
_raise_exception_g_gu_in_windows_os(additional_arguments)
552545
if _start_instance(start_instance):

src/ansys/fluent/core/session.py

Lines changed: 4 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@
44
import json
55
import os
66
from typing import Any
7-
import warnings
8-
9-
import grpc
107

118
from ansys.fluent.core.fluent_connection import _FluentConnection
12-
from ansys.fluent.core.services.datamodel_tui import TUIMenu
13-
from ansys.fluent.core.session_base_meshing import _BaseMeshing
14-
from ansys.fluent.core.session_shared import _CODEGEN_MSG_DATAMODEL, _CODEGEN_MSG_TUI
15-
from ansys.fluent.core.solver.flobject import get_root as settings_get_root
16-
from ansys.fluent.core.utils.fluent_version import get_version_for_filepath
9+
from ansys.fluent.core.session_shared import ( # noqa: F401
10+
_CODEGEN_MSG_DATAMODEL,
11+
_CODEGEN_MSG_TUI,
12+
)
1713
from ansys.fluent.core.utils.logging import LOG
1814

1915
try:
@@ -155,193 +151,6 @@ def download(self, file_name: str, local_file_path: str = None):
155151
return self._uploader.download(file_name, local_file_path)
156152

157153

158-
class Session:
159-
"""Instantiates a Fluent connection. This is a deprecated class. This has
160-
been replaced by the "_BaseSession" class to implement the new fluent
161-
launch modes.
162-
163-
Attributes
164-
----------
165-
scheme_eval: SchemeEval
166-
Instance of SchemeEval on which Fluent's scheme code can be
167-
executed.
168-
169-
Methods
170-
-------
171-
create_from_server_info_file(
172-
server_info_filepath, cleanup_on_exit, start_transcript
173-
)
174-
Create a Session instance from server-info file
175-
"""
176-
177-
def __init__(
178-
self,
179-
ip: str = None,
180-
port: int = None,
181-
password: str = None,
182-
channel: grpc.Channel = None,
183-
cleanup_on_exit: bool = True,
184-
start_transcript: bool = True,
185-
remote_instance=None,
186-
fluent_connection=None,
187-
):
188-
warnings.warn("Please use the new fluent launch modes", DeprecationWarning)
189-
if not fluent_connection:
190-
self.fluent_connection = _FluentConnection(
191-
ip=ip,
192-
port=port,
193-
password=password,
194-
channel=channel,
195-
cleanup_on_exit=cleanup_on_exit,
196-
start_transcript=start_transcript,
197-
remote_instance=remote_instance,
198-
)
199-
else:
200-
self.fluent_connection = fluent_connection
201-
202-
self.scheme_eval = self.fluent_connection.scheme_eval
203-
204-
self.meshing = _BaseMeshing(None, self.fluent_connection)
205-
206-
self._datamodel_service_se = self.fluent_connection.datamodel_service_se
207-
self._datamodel_service_tui = self.fluent_connection.datamodel_service_tui
208-
self._settings_service = self.fluent_connection.settings_service
209-
210-
self.solver = Session.Solver(self.fluent_connection)
211-
212-
self._uploader = None
213-
self._preferences = None
214-
self._solverworkflow = None
215-
216-
@classmethod
217-
def create_from_server_info_file(
218-
cls,
219-
server_info_filepath: str,
220-
cleanup_on_exit: bool = True,
221-
start_transcript: bool = True,
222-
) -> "Session":
223-
"""Create a Session instance from server-info file.
224-
225-
Parameters
226-
----------
227-
server_info_filepath : str
228-
Path to server-info file written out by Fluent server
229-
cleanup_on_exit : bool, optional
230-
When True, the connected Fluent session will be shut down
231-
when PyFluent is exited or exit() is called on the session
232-
instance, by default True.
233-
start_transcript : bool, optional
234-
The Fluent transcript is started in the client only when
235-
start_transcript is True. It can be started and stopped
236-
subsequently via method calls on the Session object.
237-
Defaults to true.
238-
239-
Returns
240-
-------
241-
Session
242-
Session instance
243-
"""
244-
ip, port, password = parse_server_info_file(server_info_filepath)
245-
session = Session(
246-
fluent_connection=_FluentConnection(
247-
ip=ip,
248-
port=port,
249-
password=password,
250-
cleanup_on_exit=cleanup_on_exit,
251-
start_transcript=start_transcript,
252-
)
253-
)
254-
return session
255-
256-
def __enter__(self):
257-
"""Close the Fluent connection and exit Fluent."""
258-
return self
259-
260-
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any):
261-
self.fluent_connection.exit()
262-
263-
def __getattr__(self, attr):
264-
return getattr(self.fluent_connection, attr)
265-
266-
def __dir__(self):
267-
return sorted(
268-
set(
269-
list(self.__dict__.keys())
270-
+ dir(type(self))
271-
+ dir(self.fluent_connection)
272-
)
273-
)
274-
275-
def upload(self, file_path: str, remote_file_name: str = None):
276-
"""Uploads a file on the server."""
277-
if not self._uploader:
278-
self._uploader = _Uploader(self.fluent_connection._remote_instance)
279-
return self._uploader.upload(file_path, remote_file_name)
280-
281-
def download(self, file_name: str, local_file_path: str = None):
282-
"""Downloads a file from the server."""
283-
if not self._uploader:
284-
self._uploader = _Uploader(self.fluent_connection._remote_instance)
285-
return self._uploader.download(file_name, local_file_path)
286-
287-
@property
288-
def preferences(self):
289-
"""preferences datamodel root."""
290-
if self._preferences is None:
291-
self._preferences = _get_preferences(self)
292-
return self._preferences
293-
294-
@property
295-
def solverworkflow(self):
296-
"""solverworkflow datamodel root."""
297-
if self._solverworkflow is None:
298-
self._solverworkflow = _get_solverworkflow(self)
299-
return self._solverworkflow
300-
301-
class Solver:
302-
def __init__(self, fluent_connection: _FluentConnection):
303-
self._fluent_connection = fluent_connection
304-
self._tui_service = fluent_connection.datamodel_service_tui
305-
self._settings_service = fluent_connection.settings_service
306-
self._tui = None
307-
self._settings_root = None
308-
self._version = None
309-
310-
def get_fluent_version(self):
311-
"""Gets and returns the fluent version."""
312-
return self._fluent_connection.get_fluent_version()
313-
314-
@property
315-
def version(self):
316-
if self._version is None:
317-
self._version = get_version_for_filepath(session=self)
318-
return self._version
319-
320-
@property
321-
def tui(self):
322-
"""Instance of ``main_menu`` on which Fluent's SolverTUI methods
323-
can be executed."""
324-
if self._tui is None:
325-
try:
326-
tui_module = importlib.import_module(
327-
f"ansys.fluent.core.solver.tui_{self.version}"
328-
)
329-
self._tui = tui_module.main_menu([], self._tui_service)
330-
except (ImportError, ModuleNotFoundError):
331-
LOG.warning(_CODEGEN_MSG_TUI)
332-
self._tui = TUIMenu([], self._tui_service)
333-
return self._tui
334-
335-
@property
336-
def root(self):
337-
"""root settings object."""
338-
if self._settings_root is None:
339-
self._settings_root = settings_get_root(
340-
flproxy=self._settings_service, version=self.version
341-
)
342-
return self._settings_root
343-
344-
345154
class _Uploader:
346155
"""Instantiates a file uploader and downloader to have a seamless file
347156
reading / writing in the cloud particularly in Ansys lab . Here we are

tests/util/solver_workflow.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def create_solver_session(*args, **kwargs):
99

1010
@pytest.fixture
1111
def new_solver_session(with_launching_container):
12-
solver = create_solver_session(mode="solver")
12+
solver = create_solver_session()
1313
yield solver
1414
solver.exit()
1515

0 commit comments

Comments
 (0)