Namespace plugin implementation

* Creates pelican.plugins
* Moves plugin related code under pelican.plugins
  * pelican.plugins.signals is now the location for signals, pelican.signals is kept
    for backwards compatibility
  * pelican.plugins._utils contains necessary bits for plugin discovery and loading.
    Logic from Pelican class is moved here. Pelican class now just asks for plugins
    and registers them
* Contains tests for old and new plugin loading
This commit is contained in:
Deniz Turgut 2019-10-27 23:51:08 +03:00
commit a2053c34c3
9 changed files with 307 additions and 73 deletions

View file

@ -18,7 +18,8 @@ entry_points = {
'pelican = pelican.__main__:main',
'pelican-import = pelican.tools.pelican_import:main',
'pelican-quickstart = pelican.tools.pelican_quickstart:main',
'pelican-themes = pelican.tools.pelican_themes:main'
'pelican-themes = pelican.tools.pelican_themes:main',
'pelican-plugins = pelican.plugins._utils:list_plugins'
]
}
@ -44,7 +45,7 @@ setup(
keywords='static web site generator SSG reStructuredText Markdown',
license='AGPLv3',
long_description=description,
packages=['pelican', 'pelican.tools'],
packages=['pelican', 'pelican.tools', 'pelican.plugins'],
package_data={
# we manually collect the package data, as opposed to using,
# include_package_data=True because we don't want the tests to be