init
This commit is contained in:
commit
24e604ab32
44 changed files with 2338 additions and 0 deletions
58
.ipython/profile_default/startup/00-kedro-init.py
Normal file
58
.ipython/profile_default/startup/00-kedro-init.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
import logging.config
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from IPython.core.magic import register_line_magic
|
||||
|
||||
# Find the project root (./../../../)
|
||||
startup_error = None
|
||||
project_path = Path(__file__).parents[3].resolve()
|
||||
|
||||
|
||||
@register_line_magic
|
||||
def reload_kedro(path, line=None):
|
||||
""""Line magic which reloads all Kedro default variables."""
|
||||
global startup_error
|
||||
global context
|
||||
global catalog
|
||||
|
||||
try:
|
||||
import kedro.config.default_logger
|
||||
from kedro.context import KEDRO_ENV_VAR, load_context
|
||||
from kedro.cli.jupyter import collect_line_magic
|
||||
except ImportError:
|
||||
logging.error(
|
||||
"Kedro appears not to be installed in your current environment "
|
||||
"or your current IPython session was not started in a valid Kedro project."
|
||||
)
|
||||
raise
|
||||
|
||||
try:
|
||||
path = path or project_path
|
||||
logging.debug("Loading the context from %s", str(path))
|
||||
|
||||
context = load_context(path, env=os.getenv(KEDRO_ENV_VAR))
|
||||
catalog = context.catalog
|
||||
|
||||
# remove cached user modules
|
||||
package_name = context.__module__.split(".")[0]
|
||||
to_remove = [mod for mod in sys.modules if mod.startswith(package_name)]
|
||||
for module in to_remove:
|
||||
del sys.modules[module]
|
||||
|
||||
logging.info("** Kedro project %s", str(context.project_name))
|
||||
logging.info("Defined global variable `context` and `catalog`")
|
||||
|
||||
for line_magic in collect_line_magic():
|
||||
register_line_magic(line_magic)
|
||||
logging.info("Registered line magic `%s`", line_magic.__name__)
|
||||
except Exception as err:
|
||||
startup_error = err
|
||||
logging.exception(
|
||||
"Kedro's ipython session startup script failed:\n%s", str(err)
|
||||
)
|
||||
raise err
|
||||
|
||||
|
||||
reload_kedro(project_path)
|
||||
Loading…
Add table
Add a link
Reference in a new issue