Source code for utilipy.imports.base_imports

# -*- coding: utf-8 -*-

# ----------------------------------------------------------------------------
#
# TITLE   : base_imports
# PROJECT : utilipy
#
# ----------------------------------------------------------------------------

# Docstring and Metadata
"""Base set of imports.

Routine Listings
----------------
Base: imports

    - os, sys, time, pdb, warnings,
    - numpy -> np, scipy,
    - tqdm -> TQDM, tqdm, .tqdm_notebook -> tqdmn

IPython: imports

    - display, Latex, Markdown, set_trace,
    - printmd, printMD, printltx, printLaTeX,
    - set_autoreload, aimport,
    - run_imports, import_from_file,
    - add_raw_code_toggle

utilipy: imports

    - LogFile
    - ObjDict

References
----------
SciPy references are [#]_ and [#]_.

NumPy references are [#]_ and [#]_.

IPython reference is [#]_.

Matplotlib reference is [#]_.

.. [#] Travis E. Oliphant, "Python for Scientific Computing", Computing in
   Science & Engineering, 9, 10-20 (2007), DOI:10.1109/MCSE.2007.58
   http://scitation.aip.org/content/aip/journal/cise/9/3/10.1109/MCSE.2007.58.

.. [#] K. Jarrod Millman and Michael Aivazis, "Python for Scientists and
   Engineers", Computing in Science & Engineering, 13, 9-12 (2011),
   DOI:10.1109/MCSE.2011.36
   http://scitation.aip.org/content/aip/journal/cise/13/2/10.1109/MCSE.2011.36.

.. [#] Travis E, Oliphant. A guide to NumPy, USA: Trelgol Publishing, (2006).

.. [#] Stéfan van der Walt, S. Chris Colbert and Gaël Varoquaux.
   "The NumPy Array: A Structure for Efficient Numerical Computation",
   Computing in Science & Engineering, 13, 22-30 (2011),
   DOI:10.1109/MCSE.2011.37
   http://scitation.aip.org/content/aip/journal/cise/13/2/10.1109/MCSE.2011.37.

.. [#] Fernando Pérez, Brian E. Granger, "IPython: A System for Interactive
   Scientific Computing", Computing in Science and Engineering, vol. 9,
   no. 3, pp. 21-29, May/June 2007, doi:10.1109/MCSE.2007.53.
   URL: https://ipython.org.

.. [#] John D. Hunter, Matplotlib: A 2D Graphics Environment, Computing in
   Science & Engineering, 9, 90-95 (2007), DOI:10.1109/MCSE.2007.55
   http://scitation.aip.org/content/aip/journal/cise/9/3/10.1109/MCSE.2007.55.

"""

__author__ = "Nathaniel Starkman"


__all__ = [
    "base_imports_help",
]


##############################################################################
# PARAMETERS

from utilipy.config import __config__
from utilipy.decorators.docstring import (
    _set_docstring_import_file_helper,
    _import_file_docstring_helper,
)


##############################################################################
# IMPORTS

# +---------------------------------------------------------------------------+
# Basic

import os
import sys  # operating system
import time  # timing
import pdb  # debugging
import warnings  # warning

# Numpy
import numpy as np  # numerical python
import scipy  # scientific python

# TODO implement when no TqdmExperimentalWarning
# from tqdm.autonotebook import tqdm
import tqdm as TQDM
from tqdm import tqdm as tqdm, tqdm_notebook as tqdmn


# CUSTOM

from utilipy.utils import ObjDict  # custom dictionary-like object
from utilipy.utils.logging import LogFile  # LoggerFile  # custom logging


# +--------------------------------------------------------------------------+
# IPython

try:

    _HAS_IPYTHON: bool = False

    get_ipython()

    if get_ipython() is None:  # double checking
        raise NameError

except NameError:

    pass

else:

    _HAS_IPYTHON = True

    from IPython.core.interactiveshell import InteractiveShell
    from IPython.core.debugger import set_trace
    from IPython.display import (
        display,  # display is a better print
        Latex,
        Markdown,  # for printing LaTeX or Markdown strings
    )

    # %run runs in the main namespace, so need to run as 'src.', not '.''
    from utilipy.ipython import (
        printmd,
        printMD,  # markdown printing
        printltx,
        printLaTeX,  # LaTeX printing
        set_autoreload,
        aimport,  # imports
        run_imports,
        import_from_file,  # imports
        add_raw_code_toggle,  # notebook
    )


##############################################################################
# Running Imported Functions

if _HAS_IPYTHON:

    InteractiveShell.ast_node_interactivity = "all"


##############################################################################
# Printing Information


[docs]@_set_docstring_import_file_helper("base", __doc__) # doc from __doc__ def base_imports_help(): """Help for Matplotlib base imports.""" doc = _import_file_docstring_helper(base_imports_help.__doc__) print(doc)
# /def if __config__.getboolean("verbosity", "verbose-imports"): base_imports_help() ############################################################################## # END