From 4bae94834e5325fe0d90631641cd2bdaa98b2b55 Mon Sep 17 00:00:00 2001 From: Tim Gates Date: Wed, 12 Jun 2019 17:02:49 +1000 Subject: Support for python -m pelican Addresses https://github.com/getpelican/pelican/issues/2523 Note: @avaris made a good point that there is no need to replace the existing module runner for pelican quickstart or the other tools as this can be run via: > python -m pelican.tools.pelican_quickstart --- pelican/__main__.py | 10 ++++++++++ pelican/tests/test_pelican.py | 7 +++++++ setup.py | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 pelican/__main__.py diff --git a/pelican/__main__.py b/pelican/__main__.py new file mode 100644 index 00000000..141823fc --- /dev/null +++ b/pelican/__main__.py @@ -0,0 +1,10 @@ +""" +python -m pelican module entry point to run via python -m +""" +from __future__ import absolute_import + +from . import main + + +if __name__ == '__main__': + main() diff --git a/pelican/tests/test_pelican.py b/pelican/tests/test_pelican.py index e93c1223..502a45ac 100644 --- a/pelican/tests/test_pelican.py +++ b/pelican/tests/test_pelican.py @@ -263,3 +263,10 @@ class TestPelican(LoggedTestCase): count=1, msg="Could not process .*parse_error.rst", level=logging.ERROR) + + def test_module_load(self): + """Test loading via python -m pelican --help displays the help""" + output = subprocess.check_output([ + sys.executable, '-m', 'pelican', '--help' + ]).decode('ascii', 'replace') + assert 'usage:' in output diff --git a/setup.py b/setup.py index d1dc4c4d..e8918941 100755 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ requires = ['feedgenerator >= 1.9', 'jinja2 >= 2.7', 'pygments', 'docutils', entry_points = { 'console_scripts': [ - 'pelican = pelican:main', + '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' -- cgit v1.2.1