Skip to content

Broyojo/deport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

deport

The opposite of import.

pip install deport

Usage

import os
import json

deport os, json
# os and json are now completely unloaded from sys.modules and deleted from scope

import os  # re-importing works — loads the module fresh

That's it. No special imports, no decorators, no configuration. Just pip install deport and the deport statement is available in all your Python files.

What it does

deport completely reverses an import:

  1. Removes the module (and all submodules) from sys.modules
  2. Deletes the name from the current scope

This means re-importing after a deport will reload the module from scratch, rather than returning the cached version.

How it works

When you pip install deport, a .pth file is installed into site-packages that activates the deport machinery at Python startup. It uses three mechanisms:

  • Import hook: transparently preprocesses imported .py files, rewriting deport X into valid Python before compilation
  • Excepthook: catches SyntaxError in the main script, preprocesses the source, and re-executes it
  • Custom codec: files with # coding: deport are preprocessed at decode time

Syntax

deport os           # single module
deport os, json     # multiple modules
deport os.path      # submodule (also removes os from scope)

Why

Why not?

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages