fromIPython.core.magicimportMagics,line_magic,magics_class# type: ignorefromIPython.core.magic_argumentsimport(argument,magic_arguments,# type: ignoreparse_argstring)# type: ignorefrom.mainimportfind_dotenv,load_dotenv@magics_classclassIPythonDotEnv(Magics):@magic_arguments()@argument('-o','--override',action='store_true',help="Indicate to override existing variables")@argument('-v','--verbose',action='store_true',help="Indicate function calls to be verbose")@argument('dotenv_path',nargs='?',type=str,default='.env',help='Search in increasingly higher folders for the `dotenv_path`')@line_magicdefdotenv(self,line):args=parse_argstring(self.dotenv,line)# Locate the .env filedotenv_path=args.dotenv_pathtry:dotenv_path=find_dotenv(dotenv_path,True,True)exceptIOError:print("cannot find .env file")return# Load the .env fileload_dotenv(dotenv_path,verbose=args.verbose,override=args.override)defload_ipython_extension(ipython):"""Register the %dotenv magic."""ipython.register_magics(IPythonDotEnv)