mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #5935 from tk0miya/refactor_progress_message
Add progress_message() as a helper for progress messages
This commit is contained in:
@@ -35,7 +35,7 @@ from sphinx.locale import __
|
||||
from sphinx.project import Project
|
||||
from sphinx.registry import SphinxComponentRegistry
|
||||
from sphinx.util import docutils
|
||||
from sphinx.util import import_object
|
||||
from sphinx.util import import_object, progress_message
|
||||
from sphinx.util import logging
|
||||
from sphinx.util import pycompat # noqa: F401
|
||||
from sphinx.util.build_phase import BuildPhase
|
||||
@@ -230,8 +230,8 @@ class Sphinx:
|
||||
self.preload_builder(buildername)
|
||||
|
||||
if not path.isdir(outdir):
|
||||
logger.info(__('making output directory...'))
|
||||
ensuredir(outdir)
|
||||
with progress_message(__('making output directory')):
|
||||
ensuredir(outdir)
|
||||
|
||||
# the config file itself can be an extension
|
||||
if self.config.setup:
|
||||
@@ -294,11 +294,10 @@ class Sphinx:
|
||||
self.env.find_files(self.config, self.builder)
|
||||
else:
|
||||
try:
|
||||
logger.info(bold(__('loading pickled environment... ')), nonl=True)
|
||||
with open(filename, 'rb') as f:
|
||||
self.env = pickle.load(f)
|
||||
self.env.setup(self)
|
||||
logger.info(__('done'))
|
||||
with progress_message(__('loading pickled environment')):
|
||||
with open(filename, 'rb') as f:
|
||||
self.env = pickle.load(f)
|
||||
self.env.setup(self)
|
||||
except Exception as err:
|
||||
logger.info(__('failed: %s'), err)
|
||||
self._init_env(freshenv=True)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"""
|
||||
|
||||
import fnmatch
|
||||
import functools
|
||||
import os
|
||||
import posixpath
|
||||
import re
|
||||
@@ -675,6 +676,34 @@ def status_iterator(iterable, summary, color="darkgreen", length=0, verbosity=0,
|
||||
logger.info('')
|
||||
|
||||
|
||||
class progress_message:
|
||||
def __init__(self, message):
|
||||
# type: (str) -> None
|
||||
self.message = message
|
||||
|
||||
def __enter__(self):
|
||||
# type: () -> None
|
||||
logger.info(bold(self.message + '... '), nonl=True)
|
||||
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
# type: (Any, Any, Any) -> bool
|
||||
if exc_type:
|
||||
logger.info(__('failed'))
|
||||
else:
|
||||
logger.info(__('done'))
|
||||
|
||||
return False
|
||||
|
||||
def __call__(self, f):
|
||||
# type: (Callable) -> Callable
|
||||
@functools.wraps(f)
|
||||
def wrapper(*args, **kwargs):
|
||||
with self:
|
||||
return f(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def epoch_to_rfc1123(epoch):
|
||||
# type: (float) -> str
|
||||
"""Convert datetime format epoch to RFC1123."""
|
||||
|
||||
Reference in New Issue
Block a user