On-demand imports, taken from mercurial
Project description
demandimport
Delays loading of modules until they are actually used. Perfect for Python apps that need to be snappy like command-line utils. Source-code derived from mercurial.
To enable, write
import demandimport; demandimport.enable()
Imports of the following form will be delayed
import a, b.c
import a.b as c
from a import b, c # a will be loaded immediately, though
These imports with not be delayed
from a import *
b = __import__(a)
Delayed loading will confuse some third-party modules. In that case you can disable the delay for just that module. For example
demandimport.ignore('Crypto.PublicKey._fastmath')
There are also versions that can be used with with
with demandimport.enabled():
# do something
with demandimport.disabled():
import troublesome.module
with demandimport.ignored('test'):
import other.troublemaker
Installation
To install demandimport, simply run:
pip install demandimport
Attribution
Matt Mackall <mpm@selenic.com> is the original author of the module in Mercurial on which this module is based. Bas Westerbaan <bas@westerbaan.name> maintains it now.
py-demandimport Changelog
0.3.4 (2017-06-08)
Python 3.6
Add sip to the default ignore list. #6
0.3.3 (2016-10-20)
Add is_loaded and is_proxy. Thanks-to: github.com/poke1024
0.3.2 (2015-12-22)
Fixed issue #2: import a.b.c will incorrectly try to import b.c
0.3.1 (2015-12-21)
Relicense GPL version 2 or later (GPLv2+)
0.3.0 (2015-12-21)
Do not delay ImportError in a special case.
Add optional logging (for debugging)
Fixed issue #1: import a.b in a module a.c was incorrectly executed as a relative import c.
Improve thread safety
0.2.2 (2015-12-05)
Moved to zest.releaser
Add some basic unittests
Python 3 support
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file demandimport-0.3.4.tar.gz
.
File metadata
- Download URL: demandimport-0.3.4.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cb9f51a5e85aa7dd77acb4dcc2b3be8ead1472e90e64ea991875a06611dff8d |
|
MD5 | d1c0432659eb7333f3b6eee9aa04e6e8 |
|
BLAKE2b-256 | 8e947057121c217309e67cad655233c340a74fb5039cd9e98fb45849aedc1d29 |