# 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")