Skip to content
Snippets Groups Projects
__init__.py 1.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • tuhe's avatar
    tuhe committed
    import os
    
    # DONT't import stuff here since install script requires __version__
    
    def cache_write(object, file_name, verbose=True):
        import compress_pickle
        dn = os.path.dirname(file_name)
        if not os.path.exists(dn):
            os.mkdir(dn)
        if verbose: print("Writing cache...", file_name)
        with open(file_name, 'wb', ) as f:
            compress_pickle.dump(object, f, compression="lzma")
        if verbose: print("Done!")
    
    
    def cache_exists(file_name):
        # file_name = cn_(file_name) if cache_prefix else file_name
        return os.path.exists(file_name)
    
    
    def cache_read(file_name):
        import compress_pickle # Import here because if you import in top the __version__ tag will fail.
        # file_name = cn_(file_name) if cache_prefix else file_name
        if os.path.exists(file_name):
            try:
                with open(file_name, 'rb') as f:
                    return compress_pickle.load(f, compression="lzma")
            except Exception as e:
                print("Tried to load a bad pickle file at", file_name)
                print("If the file appears to be automatically generated, you can try to delete it, otherwise download a new version")
                print(e)
                # return pickle.load(f)
        else:
            return None
    
    
    tuhe's avatar
    tuhe committed
    from unitgrade2.unitgrade2 import myround, mfloor, msum, Capturing, ActiveProgress