diff options
Diffstat (limited to 'pelican')
| -rw-r--r-- | pelican/contents.py | 16 | ||||
| -rw-r--r--[-rwxr-xr-x] | pelican/generators.py | 19 | ||||
| -rw-r--r-- | pelican/log.py | 32 | ||||
| -rw-r--r-- | pelican/utils.py | 17 | ||||
| -rw-r--r-- | pelican/writers.py | 24 |
5 files changed, 54 insertions, 54 deletions
diff --git a/pelican/contents.py b/pelican/contents.py index f3a692c0..49f30316 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- -from pelican.utils import slugify, truncate_html_words -from pelican.log import * -from pelican.settings import _DEFAULT_CONFIG -from datetime import datetime +import datetime from os import getenv from sys import platform, stdin import locale +from pelican.log import * +from pelican.settings import _DEFAULT_CONFIG +from pelican.utils import slugify, truncate_html_words + class Page(object): """Represents a page Given a content, and metadata, create an adequate object. @@ -90,7 +91,7 @@ class Page(object): if isinstance(self.date_format, tuple): locale.setlocale(locale.LC_ALL, self.date_format[0]) self.date_format = self.date_format[1] - + if hasattr(self, 'date'): if platform == 'win32': self.locale_date = self.date.strftime(self.date_format.encode('ascii','xmlcharrefreplace')).decode(stdin.encoding) @@ -101,7 +102,7 @@ class Page(object): if not hasattr(self, 'status'): self.status = settings['DEFAULT_STATUS'] if not settings['WITH_FUTURE_DATES']: - if hasattr(self, 'date') and self.date > datetime.now(): + if hasattr(self, 'date') and self.date > datetime.datetime.now(): self.status = 'draft' # set summary @@ -130,11 +131,10 @@ class Page(object): """Dummy function""" pass - summary = property(_get_summary, _set_summary, \ + summary = property(_get_summary, _set_summary, "Summary of the article. Based on the content. Can't be set") - class Article(Page): mandatory_properties = ('title', 'date', 'category') diff --git a/pelican/generators.py b/pelican/generators.py index 6c878bdd..6715126a 100755..100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -1,22 +1,23 @@ # -*- coding: utf-8 -*- -from operator import attrgetter, itemgetter -from itertools import chain -from functools import partial -from datetime import datetime -from collections import defaultdict import os +import datetime import math import random import urlparse +from collections import defaultdict +from functools import partial +from itertools import chain +from operator import attrgetter, itemgetter + from jinja2 import Environment, FileSystemLoader, PrefixLoader, ChoiceLoader from jinja2.exceptions import TemplateNotFound -from pelican.utils import copy, get_relative_path, process_translations, open -from pelican.utils import slugify from pelican.contents import Article, Page, is_valid_content -from pelican.readers import read_file from pelican.log import * +from pelican.readers import read_file +from pelican.utils import copy, process_translations, open +from pelican.utils import slugify class Generator(object): @@ -231,7 +232,7 @@ class ArticlesGenerator(Generator): if 'date' not in metadata.keys()\ and self.settings['FALLBACK_ON_FS_DATE']: - metadata['date'] = datetime.fromtimestamp(os.stat(f).st_ctime) + metadata['date'] = datetime.datetime.fromtimestamp(os.stat(f).st_ctime) article = Article(content, metadata, settings=self.settings, filename=f) diff --git a/pelican/log.py b/pelican/log.py index b7167dfc..2790aed3 100644 --- a/pelican/log.py +++ b/pelican/log.py @@ -1,8 +1,8 @@ +import os +import sys from logging import CRITICAL, ERROR, WARN, INFO, DEBUG from logging import critical, error, info, warning, warn, debug from logging import Formatter, getLogger, StreamHandler -import sys -import os global ANSI ANSI = { @@ -62,20 +62,18 @@ class TextFormatter(Formatter): class DummyFormatter(object): """ A dummy class. - Return an instance of the appropriate formatter (ANSIFormatter if sys.stdout.isatty() is True, else TextFormatter) + Return an instance of the appropriate formatter (ANSIFormatter if + sys.stdout.isatty() is True, else TextFormatter) """ def __new__(cls, *args, **kwargs): if os.isatty(sys.stdout.fileno())\ - and not sys.platform.startswith('win'): + and not sys.platform.startswith('win'): return ANSIFormatter(*args, **kwargs) else: return TextFormatter( *args, **kwargs) - - - def init(level=None, logger=getLogger(), handler=StreamHandler()): fmt = DummyFormatter() handler.setFormatter(fmt) @@ -94,15 +92,15 @@ if __name__ == '__main__': __all__ = [ - "debug", - "info", - "warn", + "debug", + "info", + "warn", "warning", - "error", - "critical", - "DEBUG", - "INFO", - "WARN", - "ERROR", + "error", + "critical", + "DEBUG", + "INFO", + "WARN", + "ERROR", "CRITICAL" -] +] diff --git a/pelican/utils.py b/pelican/utils.py index 27159a89..c2daae03 100644 --- a/pelican/utils.py +++ b/pelican/utils.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- -import re import os -import shutil -import time -import calendar import pytz -from datetime import datetime +import re +import shutil + from codecs import open as _open +from datetime import datetime from itertools import groupby from operator import attrgetter from pelican.log import warning, info @@ -18,10 +17,10 @@ def get_date(string): If no format matches the given date, raise a ValuEerror """ string = re.sub(' +', ' ', string) - formats = ['%Y-%m-%d %H:%M', '%Y/%m/%d %H:%M', + formats = ['%Y-%m-%d %H:%M', '%Y/%m/%d %H:%M', '%Y-%m-%d', '%Y/%m/%d', '%d-%m-%Y', '%Y-%d-%m', # Weird ones - '%d/%m/%Y', '%d.%m.%Y', + '%d/%m/%Y', '%d.%m.%Y', '%d.%m.%Y %H:%M', '%Y-%m-%d %H:%M:%S'] for date_format in formats: try: @@ -66,7 +65,7 @@ def copy(path, source, destination, destination_path=None, overwrite=False): source_ = os.path.abspath(os.path.expanduser(os.path.join(source, path))) destination_ = os.path.abspath( - os.path.expanduser(os.path.join(destination, destination_path))) + os.path.expanduser(os.path.join(destination, destination_path))) if os.path.isdir(source_): try: @@ -82,6 +81,7 @@ def copy(path, source, destination, destination_path=None, overwrite=False): shutil.copy(source_, destination_) info('copying %s to %s' % (source_, destination_)) + def clean_output_dir(path): """Remove all the files from the output directory""" @@ -230,6 +230,7 @@ def files_changed(path, extensions): return True return False + def set_date_tzinfo(d, tz_name=None): """ Date without tzinfo shoudbe utc. This function set the right tz to date that aren't utc and don't have tzinfo diff --git a/pelican/writers.py b/pelican/writers.py index baf20408..814de40c 100644 --- a/pelican/writers.py +++ b/pelican/writers.py @@ -1,15 +1,15 @@ # -*- coding: utf-8 -*- from __future__ import with_statement import os -import re from codecs import open from functools import partial import locale +import re from feedgenerator import Atom1Feed, Rss201rev2Feed -from pelican.utils import get_relative_path, set_date_tzinfo from pelican.paginator import Paginator from pelican.log import * +from pelican.utils import get_relative_path, set_date_tzinfo class Writer(object): @@ -38,8 +38,8 @@ class Writer(object): description=item.content, categories=item.tags if hasattr(item, 'tags') else None, author_name=getattr(item, 'author', 'John Doe'), - pubdate=set_date_tzinfo(item.date, - self.settings.get('TIMEZONE', None))) + pubdate=set_date_tzinfo(item.date, + self.settings.get('TIMEZONE', None))) def write_feed(self, elements, context, filename=None, feed_type='atom'): """Generate a feed with the list of articles provided @@ -90,7 +90,7 @@ class Writer(object): :param context: dict to pass to the templates. :param relative_urls: use relative urls or absolutes ones :param paginated: dict of article list to paginate - must have the - same length (same list in different orders) + same length (same list in different orders) :param **kwargs: additional variables to pass to the templates """ @@ -142,14 +142,14 @@ class Writer(object): paginator = paginators[key] page = paginator.page(page_num+1) paginated_localcontext.update({'%s_paginator' % key: paginator, - '%s_page' % key: page}) + '%s_page' % key: page}) if page_num > 0: ext = '.' + paginated_name.rsplit('.')[-1] paginated_name = paginated_name.replace(ext, - '%s%s' % (page_num + 1, ext)) + '%s%s' % (page_num + 1, ext)) _write_file(template, paginated_localcontext, self.output_path, - paginated_name) + paginated_name) else: # no pagination _write_file(template, localcontext, self.output_path, name) @@ -161,7 +161,7 @@ class Writer(object): :param name: name of the file to output. :param context: dict that will be passed to the templates, which need to - be updated. + be updated. """ def _update_content(name, input): """Change all the relatives paths of the input content to relatives @@ -185,11 +185,11 @@ class Writer(object): def replacer(m): relative_path = m.group('path') dest_path = os.path.normpath( os.sep.join( (get_relative_path(name), - "static", relative_path) ) ) + "static", relative_path) ) ) return m.group('markup') + m.group('quote') + dest_path + m.group('quote') return hrefs.sub(replacer, content) - + if context is None: return if hasattr(context, 'values'): @@ -208,4 +208,4 @@ class Writer(object): if relative_path not in paths: paths.append(relative_path) setattr(item, "_get_content", - partial(_update_content, name, item)) + partial(_update_content, name, item)) |
