From c01eb8e6ef5e45d0cb8dc97d545c9670ccc5de46 Mon Sep 17 00:00:00 2001 From: Stuart Axon Date: Thu, 15 Nov 2018 00:35:11 +0000 Subject: [PATCH] Update pelican_quickstart.py Have pelican_quickstart generate a requirements.txt --- pelican/tools/pelican_quickstart.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pelican/tools/pelican_quickstart.py b/pelican/tools/pelican_quickstart.py index 529eeb52..09928fda 100755 --- a/pelican/tools/pelican_quickstart.py +++ b/pelican/tools/pelican_quickstart.py @@ -8,9 +8,9 @@ import locale import os import sys -from jinja2 import Environment, FileSystemLoader - +import pkg_resources import pytz +from jinja2 import Environment, FileSystemLoader try: import readline # NOQA @@ -19,6 +19,7 @@ except ImportError: try: import tzlocal + _DEFAULT_TIMEZONE = tzlocal.get_localzone().zone except ImportError: _DEFAULT_TIMEZONE = 'Europe/Paris' @@ -45,7 +46,6 @@ _jinja_env = Environment( trim_blocks=True, ) - _GITHUB_PAGES_BRANCHES = { 'personal': 'master', 'project': 'gh-pages' @@ -111,6 +111,7 @@ def decoding_strings(f): else: return out.decode(sys.stdin.encoding) return out + return wrapper @@ -189,6 +190,14 @@ def ask(question, answer=str_compat, default=None, length=None): 'Argument `answer` must be str_compat, bool, or integer') +def write_requirements_txt(): + distribution = pkg_resources.working_set.by_key['pelican'] + with open(os.path.join(CONF['basedir'], 'requirements.txt'), 'w') as f: + f.write('{}\n'.format(distribution.as_requirement())) + for dependency in sorted(distribution.requires()): + f.write('{}\n'.format(dependency)) + + def ask_timezone(question, default, tzurl): """Prompt for time zone and validate input""" lower_tz = [tz.lower() for tz in pytz.all_timezones] @@ -361,6 +370,8 @@ needed by Pelican. fd.close() except OSError as e: print('Error: {0}'.format(e)) + + write_requirements_txt() if automation: try: