Source code for apstools.utils.profile_support
"""
Support for IPython profiles
+++++++++++++++++++++++++++++++++++++++
.. autosummary::
~getDefaultNamespace
~ipython_profile_name
~ipython_shell_namespace
"""
import logging
logger = logging.getLogger(__name__)
[docs]def getDefaultNamespace(attr="user_ns"):
"""
get the IPython shell's namespace dictionary (or globals() if not found)
"""
try:
from IPython import get_ipython
ns = getattr(get_ipython(), attr)
except (ModuleNotFoundError, AttributeError):
ns = globals()
return ns
[docs]def ipython_profile_name():
"""
return the name of the current ipython profile or ``None``
Example (add to default RunEngine metadata)::
RE.md['ipython_profile'] = str(ipython_profile_name())
print("using profile: " + RE.md['ipython_profile'])
"""
from IPython import get_ipython
return get_ipython().profile
[docs]def ipython_shell_namespace():
"""
get the IPython shell's namespace dictionary (or empty if not found)
"""
try:
from IPython import get_ipython
ns = get_ipython().user_ns
except AttributeError:
ns = {}
return ns
# -----------------------------------------------------------------------------
# :author: Pete R. Jemian
# :email: jemian@anl.gov
# :copyright: (c) 2017-2023, UChicago Argonne, LLC
#
# Distributed under the terms of the Argonne National Laboratory Open Source License.
#
# The full license is in the file LICENSE.txt, distributed with this software.
# -----------------------------------------------------------------------------