Skip to main content

Python Plugin Manager.

Project description

Py Plugin Manager

A slightly different take on a Python Plugin Manager for python 3.

Introduction

  • What is a plugin?
    • Well, strictly, it's a component that adds a specific feature to a program. But for Py Plugin Manager, this concept is a bit less strict.
    • PPM allows any python file be loaded and reloaded dynamically.
  • How does PPM differ from other Plugin Managers?
    • Currently, no changes need to be made to the module or code you wish to import.
    • Unlike some other Plugin Managers, no configuration (aka .plugin) files need to be created.
  • Best Practices (so far)
    • Separate your plugins into a separate directly, so that they are not mixed in with your application code.
    • If your plugins require access to other modules that are not within the plugin directory, make sure that the sys.path is pointing to those directories so that your plugin's can successfully import those modules.

What is Py Plugin Manager?

PPM allows you to quickly load in a Python module, and be able to (reasonably) easily access variables, functions, constants, etc from those modules.

For example:

    >>>import PyPluginMgr
    >>>test = PyPluginMgr.PlugInMgr(plugin_dir=r".\plugins", allow_creation=True, plug_ext=".py")
    >>>test.findcandidate_files()

At this point all the .py files in .\plugins will be loaded and placed in the plugin catalog. At this point there are several ways to access the plugin contents:

  1. Indirectly accessing the plugin name space (via get)
    >>>test.get("pyfile1", "__email__")
    'Benjamin@Schollnick.net'
    >>>test.get("pyfile1", "test")("this is an example of calling a function via get")
    test,  this is an example of calling a function via get```
    
  2. Directly access the plugin name space (via get_plugin)
    >>>activeplugin = test.get_plugin("pyfile1")
    >>>activeplugin
    <module 'pyfile1.py' from '....\\PluginMgr\\plugins\\pyfile1.py'>
    >>>activeplugin.__name__
    'pyfile1.py'
    >>>activeplugin.test("hello from Test!")
    test,  hello from Test!
    

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

PyPluginMgr-1.0.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

PyPluginMgr-1.0.2-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file PyPluginMgr-1.0.2.tar.gz.

File metadata

  • Download URL: PyPluginMgr-1.0.2.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0.post20201221 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.2

File hashes

Hashes for PyPluginMgr-1.0.2.tar.gz
Algorithm Hash digest
SHA256 1675ad223fd1a1f7872c0c14a631a94272ca9032fb2cef5f912d2b51df5c3bfd
MD5 4adb89aaa33701b36ef1026f5130b6ba
BLAKE2b-256 ca39f37cb6123bdbcd1c238bd11a784c65a49cfb52af4de840fe706fb5a33fa0

See more details on using hashes here.

File details

Details for the file PyPluginMgr-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: PyPluginMgr-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0.post20201221 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.2

File hashes

Hashes for PyPluginMgr-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f5c58e1d9d32d08db5eb0c45e0c88d539d36449627065ae01d4c476dad4e2af2
MD5 67e40ff8e1137a8d570bb7639bef7e0f
BLAKE2b-256 c67787d3ae03de25cace28438bb90947f00060872ea7b337fa3a48f5523f08a3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page