ansys / pyfluent

Pythonic interface to Ansys Fluent
https://fluent.docs.pyansys.com
MIT License
262 stars 41 forks source link

DeprecatedSettingsWarning for AttributeError in iPython #3105

Closed cj-hodgson closed 2 months ago

cj-hodgson commented 2 months ago

πŸ” Before submitting the issue

🐞 Description of the bug

In iPython, when an AttributeError occurs the traceback contains DeprecatedSettingsWarning:

πŸ“ Steps to reproduce

In [1]: import ansys.fluent.core as pyfluent

In [2]: solver = pyfluent.launch_fluent()

In [3]: solver.nonsense() pyfluent.settings_api WARNING: Mismatch between generated file and server object info. Dynamically created settings classes will be used.

AttributeError Traceback (most recent call last) Cell In[3], line 1 ----> 1 solver.nonsense()

File C:\ansysdev\ansys_inc\v251\commonfiles\CPython\3_10\winx64\Release\python\lib\site-packages\ansys\fluent\core\session_solver.py:293, in Solver.getattr(self, attr) 288 if self.get_fluent_version() > FluentVersion.v242: 289 warnings.warn( 290 f"'{attr}' is deprecated. Use 'settings.{attr}' instead.", 291 DeprecatedSettingWarning, 292 ) --> 293 return getattr(self._settings_api_root, attr)

AttributeError: 'SettingsRoot' object has no attribute 'nonsense'

πŸ’» Which operating system are you using?

Windows

πŸ“€ Which ANSYS version are you using?

2025R1

🐍 Which Python version are you using?

3.10

πŸ“¦ Installed packages

2to3==1.0
about-time==4.2.1
absl-py==2.1.0
alive-progress==3.1.5
ansys-api-fluent==0.3.25
ansys-api-platform-instancemanagement==1.1.0
ansys-api-tools-filetransfer==0.1.0
ansys-fluent-core==0.22.dev0
-e git+https://github.com/ansys/pyfluent-visualization.git@7a61b12c94c0c57e2adbcaeaae5b7432ca390129#egg=ansys_fluent_visualization
ansys-hpcservices-file-management-v1==23.1.2407.1
ansys-hpcservices-file-transfer-v1==23.1.2407.1
ansys-hpcservices-global-permission-v1==23.1.2407.1
ansys-hpcservices-hardware-configuration-clusters-v1==23.1.2407.1
ansys-hpcservices-hardware-configuration-endpoints-v1==23.1.2407.1
ansys-hpcservices-hardware-configuration-queues-v1==23.1.2407.1
ansys-hpcservices-hardware-configuration-storages-v1==23.1.2407.1
ansys-hpcservices-job-management-jobs-v1==23.1.2407.1
ansys-hpcservices-job-management-logs-v1==23.1.2407.1
ansys-hpcservices-job-management-templates-v1==23.1.2407.1
ansys-hpcservices-service-management-v1==23.1.2407.1
ansys-hpcservices-user-management-v1==23.1.2407.1
ansys-platform-instancemanagement==1.1.2
ansys-pythonnet==3.1.0rc0
ansys-tools-filetransfer==0.1.0
ansys-units==0.3.2
anyio==4.4.0
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
astunparse==1.6.3
async-lru==2.0.4
attrs==23.2.0
Babel==2.15.0
bcrypt==4.1.3
beartype==0.18.5
beautifulsoup4==4.12.3
black==24.4.2
bleach==6.1.0
blinker==1.8.2
build==1.2.1
CacheControl==0.14.0
certifi==2023.11.17
cffi==1.16.0
cfgv==3.4.0
charset-normalizer==3.3.2
cleo==2.1.0
click==8.1.7
clr-loader==0.2.6
colorama==0.4.6
comm==0.2.2
contourpy==1.2.1
crashtest==0.4.1
cryptography==42.0.8
cycler==0.12.1
dash==2.17.1
dash-bootstrap-components==1.6.0
dash-core-components==2.0.0
dash-html-components==2.0.0
dash-table==5.0.0
debugpy==1.8.2
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.8
distro==1.9.0
docker==6.1.3
dulwich==0.21.7
et-xmlfile==1.1.0
exceptiongroup==1.2.1
execnet==2.1.1
executing==2.0.1
fastjsonschema==2.20.0
filelock==3.15.4
Flask==3.0.3
flatbuffers==24.3.25
fonttools==4.53.0
fqdn==1.5.1
future==0.18.0
gast==0.6.0
google-pasta==0.2.0
googleapis-common-protos==1.52.0
grapheme==0.6.0
grpcio==1.64.1
grpcio-health-checking==1.48.1
grpcio-status==1.26.0
h11==0.14.0
h5py==3.11.0
httpcore==1.0.5
httpx==0.27.0
identify==2.6.0
idna==3.7
imageio==2.34.2
importlib_metadata==8.0.0
iniconfig==2.0.0
installer==0.7.0
ipykernel==6.29.5
ipython==8.26.0
isoduration==20.11.0
itsdangerous==2.2.0
jaraco.classes==3.4.0
jedi==0.19.1
Jinja2==3.1.4
joblib==1.4.2
json5==0.9.25
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2023.12.1
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.2
jupyter_core==5.7.2
jupyter_server==2.14.2
jupyter_server_terminals==0.5.3
jupyterlab==4.2.3
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.2
kaleido==0.2.1
keras==3.4.1
keyring==24.3.1
kiwisolver==1.4.5
libclang==18.1.1
llvmlite==0.39.1
lxml==4.9.4
Markdown==3.6
markdown-it-py==3.0.0
MarkupSafe==2.1.5
matplotlib==3.6.0
matplotlib-inline==0.1.7
mdurl==0.1.2
mistune==3.0.2
ml-dtypes==0.4.0
more-itertools==10.3.0
msgpack==1.0.8
mypy-extensions==1.0.0
namex==0.0.8
nbclient==0.10.0
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
nltk==3.8.1
nodeenv==1.9.1
notebook==7.2.1
notebook_shim==0.2.4
numba==0.56.4
numpy==1.23.5
openpyxl==3.1.5
opt-einsum==3.3.0
optree==0.12.1
overrides==7.7.0
packaging==24.1
pandas==2.0.3
pandocfilters==1.5.1
paramiko==3.4.0
paramiko-expect==0.3.5
parso==0.8.4
pathspec==0.12.1
pexpect==4.9.0
pillow==10.4.0
pip-system-certs==4.0
pkginfo==1.11.1
platformdirs==3.11.0
plotly==5.22.0
pluggy==1.5.0
poetry==1.8.3
poetry-core==1.9.0
poetry-plugin-export==1.8.0
pooch==1.8.2
pre-commit==3.7.1
prometheus_client==0.20.0
prompt_toolkit==3.0.47
protobuf==4.25.3
psutil==5.9.8
ptyprocess==0.7.0
pure-eval==0.2.2
py==1.11.0
pybind11==2.10.0
pycparser==2.22
Pygments==2.18.0
Pymem==1.13.1
PyNaCl==1.5.0
pyparsing==3.1.2
pyproject_hooks==1.1.0
pytest==7.2.1
pytest-forked==1.6.0
pytest-xdist==1.31.0
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
python-pptx==0.6.23
pytz==2024.1
pyvista==0.43.3
pyvistaqt==0.11.1
pywin32==304
pywin32-ctypes==0.2.2
pywinpty==2.0.13
PyYAML==6.0.2rc1
pyzmq==26.0.3
QtPy==2.4.1
rapidfuzz==3.9.4
referencing==0.35.1
regex==2024.5.15
requests==2.31.0
requests-toolbelt==1.0.0
retrying==1.3.4
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rich==13.7.1
rpds-py==0.19.0
scikit-learn==1.5.1
scipy==1.9.3
SCons==4.3.0
scooby==0.10.0
seaborn==0.13.2
Send2Trash==1.8.3
shapely==2.0.2
shellingham==1.5.4
sip==6.5.1
six==1.16.0
sniffio==1.3.1
soupsieve==2.5
stack-data==0.6.3
tenacity==8.5.0
tensorboard==2.17.0
tensorboard-data-server==0.7.2
tensorflow==2.17.0
tensorflow-intel==2.17.0
tensorflow-io-gcs-filesystem==0.31.0
termcolor==2.4.0
terminado==0.18.1
threadpoolctl==3.5.0
tinycss2==1.3.0
toml==0.10.2
tomli==2.0.1
tomlkit==0.13.0
tornado==6.4.1
tqdm==4.66.4
traitlets==5.14.3
trove-classifiers==2024.7.2
types-python-dateutil==2.9.0.20240316
typing_extensions==4.12.2
tzdata==2024.1
uri-template==1.3.0
urllib3==1.26.10
virtualenv==20.26.3
vtk==9.3.1
wcwidth==0.2.13
webcolors==24.6.0
webencodings==0.5.1
websocket-client==1.8.0
Werkzeug==3.0.3
wrapt==1.16.0
wxPython==4.2.0
xgboost==2.1.0
XlsxWriter==3.2.0
zipp==3.19.2
mkundu1 commented 2 months ago

I could not reproduce it in the latest PyFluent:

>>> solver.nonsense()
pyfluent.settings_api WARNING: Mismatch between generated file and server object info. Dynamically created settings classes will be used.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\ANSYSDev\PyFluentDev\pyfluent\src\ansys\fluent\core\session_solver.py", line 297, in __getattr__
    return getattr(self._settings_api_root, attr)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'SettingsRoot' object has no attribute 'nonsense'

Can you please try with the latest code? That deprecation warning and the AttributeError should be mutually exclusive.

cj-hodgson commented 2 months ago

@mkundu1 Did you try in iPython?

mkundu1 commented 2 months ago

IPython shows some extra code around the error line. This is an IPython specific behaviour.

image

prmukherj commented 2 months ago

This is a standard ipython behaviour. cc. @mkundu1, @cj-hodgson