Load me later. A lazy plugin management system.
Project description
lml seamlessly finds the lml based plugins from your current python environment but loads your plugins on demand. It is designed to support plugins that have external dependencies, especially bulky and/or memory hungry ones. lml provides the plugin management system only and the plugin interface is on your shoulder.
lml enabled applications helps your customers [1] in two ways:
Your customers could cherry-pick the plugins from pypi per python environment. They could remove a plugin using pip uninstall command.
Only the plugins used at runtime gets loaded into computer memory.
When you would use lml to refactor your existing code, it aims to flatten the complexity and to shrink the size of your bulky python library by distributing the similar functionalities across its plugins. However, you as the developer need to do the code refactoring by yourself and lml would lend you a hand.
Installation
You can install lml via pip:
$ pip install lml
or clone it and install it:
$ git clone https://github.com/chfw/lml.git
$ cd lml
$ python setup.py install
License
New BSD
Change log
0.0.9 - 7/1/2019
Updated
#11: more test contents for OpenSuse package validation
0.0.8 - 4/1/2019
Updated
#9: include tests, docs for OpenSuse package validation
0.0.7 - 17/11/2018
Fixed
#8: get_primary_key will fail when a module is loaded later
deprecated old style plugin scanner: scan_plugins
0.0.6 - 07/11/2018
Fixed
Revert the version 0.0.5 changes. Raise Import error and log the exception
0.0.5 - 06/11/2018
Fixed
#6: Catch and Ignore ModuleNotFoundError
0.0.4 - 07.08.2018
Added
#4: to find plugin names with different naming patterns
0.0.3 - 12/06/2018
Added
dict can be a pluggable type in addition to function, class
get primary tag of your tag, helping you find out which category of plugins your tag points to
0.0.2 - 23/10/2017
Updated
pyexcel#103: include LICENSE in tar ball
0.0.1 - 30/05/2017
Added
First release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file lml-0.0.9.tar.gz
.
File metadata
- Download URL: lml-0.0.9.tar.gz
- Upload date:
- Size: 25.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea5ba817b4adc9e9f5c21725cd2475f912933b7e2dfdf0792aed80077154f63f |
|
MD5 | 645ec1b37b9a0d39963aebc2efe76dc3 |
|
BLAKE2b-256 | 65f33718c8b7b066731e8e60eaf42b1fd0d48d3539a6e7dbbdd4828be13c14ee |
File details
Details for the file lml-0.0.9-py2.py3-none-any.whl
.
File metadata
- Download URL: lml-0.0.9-py2.py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1bef669dc077a1075fa64b99229b6341085b3b3a98d29c66df1853cc14e6c1a |
|
MD5 | ea17d1e99edcd90e85bb7086d37ccec7 |
|
BLAKE2b-256 | 90e5eaa5a1c8a9adbac956daa6027789ff13e30362a03cc0d010d88bd867c73f |