Opened at 2011-07-25T17:11:29Z
#1443 new enhancement
use exocet instead of the builtin Python module loader
Reported by: | zooko | Owned by: | somebody |
---|---|---|---|
Priority: | minor | Milestone: | undecided |
Component: | packaging | Version: | 1.8.2 |
Keywords: | setuptools packaging exocet | Cc: | |
Launchpad Bug: |
Description
exocet is a replacement for the builtin Python module loader. It makes the module system no longer be a global (mutable) namespace, but instead each module has a separate namespace for the modules that it loads. This facilitates dependency injection e.g. for unit testing. It may be useful for various things. In general, the notion of eliminating a single global mutable namespace in favor of separate, narrowly-scoped namespaces sounds great!
- Modules in Python: the Good, the Bad, and the Ugly
- Introducing Exocet
- Exocet: A Second Look
- exocet's README
Over on ticket #1334, I pointed out in comment:15:ticket:1334 that exocet could facilitate blacklisting a module to test our dependencies, and davidsarah pointed out in comment:16:ticket:1334 that exocet itself requires pywin32 (oops).