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. # -----------------------------------------------------------------------------