Source code for k1lib.imports

# AUTOGENERATED FILE! PLEASE DON'T EDIT
"""These are pretty standard imports that I always
do. I put it here so that I can do::

    from k1lib.imports import *

and everything will be in place"""
import torch; from torch import nn, optim
import torch.nn.functional as F, torch.utils.data as data
import matplotlib.pyplot as plt
import numpy as np, dill as pickle
import k1lib; import k1lib.schedule as schedule
import math, os, time, sys, random, logging, traceback, re, typing, glob
from functools import partial
k1lib.dontWrap()
[docs]class _OptionalImports: def __init__(self): """Class for importing optional modules. Can... opt("numpy"): try to import module "numpy". Returns None if can't import "numpy" in opt: check whether a module is loaded""" self.modules = dict()
[docs] def __call__(self, module:str): """Tries to import the module. If successful, return the module, else return None""" if module in self.modules: return self.modules[module] try: self.modules[module] = __import__(module) except: self.modules[module] = None return self.modules[module]
[docs] def __contains__(self, module:str): """Whether someone already tried to import a module.""" return module in self.modules
def __repr__(self): mods = '\n'.join(f"- {e}" for e in self.modules.keys()) return self.__init__.__doc__ + f"""\n\nLoaded modules:\n{mods}"""
OptionalImports = _OptionalImports() datasets = OptionalImports("torchvision.datasets") transforms = OptionalImports("torchvision.transforms") IPython = OptionalImports("IPython")