mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Use `_StrPath
in
sphinx.application
`
This commit is contained in:
parent
eed19a0a7f
commit
3b5bce906c
@ -11,7 +11,6 @@ import pickle
|
|||||||
import sys
|
import sys
|
||||||
from collections import deque
|
from collections import deque
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
from os import path
|
|
||||||
from typing import TYPE_CHECKING, overload
|
from typing import TYPE_CHECKING, overload
|
||||||
|
|
||||||
from docutils.parsers.rst import Directive, roles
|
from docutils.parsers.rst import Directive, roles
|
||||||
@ -182,11 +181,11 @@ class Sphinx:
|
|||||||
self.outdir = _StrPath(outdir).resolve()
|
self.outdir = _StrPath(outdir).resolve()
|
||||||
self.doctreedir = _StrPath(doctreedir).resolve()
|
self.doctreedir = _StrPath(doctreedir).resolve()
|
||||||
|
|
||||||
if not path.isdir(self.srcdir):
|
if not self.srcdir.is_dir():
|
||||||
raise ApplicationError(__('Cannot find source directory (%s)') %
|
raise ApplicationError(__('Cannot find source directory (%s)') %
|
||||||
self.srcdir)
|
self.srcdir)
|
||||||
|
|
||||||
if path.exists(self.outdir) and not path.isdir(self.outdir):
|
if self.outdir.exists() and not self.outdir.is_dir():
|
||||||
raise ApplicationError(__('Output directory (%s) is not a directory') %
|
raise ApplicationError(__('Output directory (%s) is not a directory') %
|
||||||
self.outdir)
|
self.outdir)
|
||||||
|
|
||||||
@ -258,9 +257,9 @@ class Sphinx:
|
|||||||
# preload builder module (before init config values)
|
# preload builder module (before init config values)
|
||||||
self.preload_builder(buildername)
|
self.preload_builder(buildername)
|
||||||
|
|
||||||
if not path.isdir(outdir):
|
if not self.outdir.is_dir():
|
||||||
with progress_message(__('making output directory')):
|
with progress_message(__('making output directory')):
|
||||||
ensuredir(outdir)
|
ensuredir(self.outdir)
|
||||||
|
|
||||||
# the config file itself can be an extension
|
# the config file itself can be an extension
|
||||||
if self.config.setup:
|
if self.config.setup:
|
||||||
@ -327,8 +326,8 @@ class Sphinx:
|
|||||||
logger.info(__('not available for built-in messages'))
|
logger.info(__('not available for built-in messages'))
|
||||||
|
|
||||||
def _init_env(self, freshenv: bool) -> BuildEnvironment:
|
def _init_env(self, freshenv: bool) -> BuildEnvironment:
|
||||||
filename = path.join(self.doctreedir, ENV_PICKLE_FILENAME)
|
filename = self.doctreedir / ENV_PICKLE_FILENAME
|
||||||
if freshenv or not os.path.exists(filename):
|
if freshenv or not filename.exists():
|
||||||
return self._create_fresh_env()
|
return self._create_fresh_env()
|
||||||
else:
|
else:
|
||||||
return self._load_existing_env(filename)
|
return self._load_existing_env(filename)
|
||||||
@ -339,12 +338,12 @@ class Sphinx:
|
|||||||
return env
|
return env
|
||||||
|
|
||||||
@progress_message(__('loading pickled environment'))
|
@progress_message(__('loading pickled environment'))
|
||||||
def _load_existing_env(self, filename: str) -> BuildEnvironment:
|
def _load_existing_env(self, filename: Path) -> BuildEnvironment:
|
||||||
try:
|
try:
|
||||||
with open(filename, 'rb') as f:
|
with open(filename, 'rb') as f:
|
||||||
env = pickle.load(f)
|
env = pickle.load(f)
|
||||||
env.setup(self)
|
env.setup(self)
|
||||||
self._fresh_env_used = False
|
self._fresh_env_used = False
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.info(__('failed: %s'), err)
|
logger.info(__('failed: %s'), err)
|
||||||
env = self._create_fresh_env()
|
env = self._create_fresh_env()
|
||||||
@ -383,8 +382,8 @@ class Sphinx:
|
|||||||
self.events.emit('build-finished', None)
|
self.events.emit('build-finished', None)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
# delete the saved env to force a fresh build next time
|
# delete the saved env to force a fresh build next time
|
||||||
envfile = path.join(self.doctreedir, ENV_PICKLE_FILENAME)
|
envfile = self.doctreedir / ENV_PICKLE_FILENAME
|
||||||
if path.isfile(envfile):
|
if envfile.is_file():
|
||||||
os.unlink(envfile)
|
os.unlink(envfile)
|
||||||
self.events.emit('build-finished', err)
|
self.events.emit('build-finished', err)
|
||||||
raise
|
raise
|
||||||
|
Loading…
Reference in New Issue
Block a user