def on_import(self, fgraph, app, reason):
            # if app in self.debug_all_apps: raise ProtocolError("double import")
            # self.debug_all_apps.add(app)
            # print 'DH IMPORT', app, id(app), id(self), len(self.debug_all_apps)

            # If it's a destructive op, add it to our watch list
            if getattr(app.op, 'destroy_map', {}):
                self.destroyers.add(app)

            # add this symbol to the forward and backward maps
            for o_idx, i_idx_list in iteritems(getattr(app.op, 'view_map', {})):
                if len(i_idx_list) > 1:
                    raise NotImplementedError(
                        'destroying this output invalidates multiple inputs',
                        (app. op))
                o = app.outputs[o_idx]
                i = app.inputs[i_idx_list[0]]
                self.view_i[o] = i
                self.view_o.setdefault(i, OrderedSet()).add(o)

            # update self.clients
            for i, input in enumerate(app.inputs):
                self.clients.setdefault(input, {}).setdefault(app, 0)
                self.clients[input][app] += 1

            for i, output in enumerate(app.outputs):
                self.clients.setdefault(output, {})

            self.stale_droot = True
Get or create `OsfStorageGuidFile` record. Used instead of
dataset/ETHPy150Open rizar/attention-lvcsr/libs/Theano/theano/gof/destroyhandler.py/DestroyHandler.on_import--crossover with--dataset/ETHPy150Open CenterForOpenScience/osf.io/scripts/osfstorage/migrate_guids.py/get_or_create_storage_file