mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Migrate to py3 style type annotation: sphinx.util.template
This commit is contained in:
@@ -9,7 +9,9 @@
|
||||
"""
|
||||
|
||||
import os
|
||||
from typing import Dict
|
||||
|
||||
from jinja2.loaders import BaseLoader
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
|
||||
from sphinx import package_dir
|
||||
@@ -17,58 +19,45 @@ from sphinx.jinja2glue import SphinxFileSystemLoader
|
||||
from sphinx.locale import get_translator
|
||||
from sphinx.util import rst, texescape
|
||||
|
||||
if False:
|
||||
# For type annotation
|
||||
from typing import Dict # NOQA
|
||||
from jinja2.loaders import BaseLoader # NOQA
|
||||
|
||||
|
||||
class BaseRenderer:
|
||||
def __init__(self, loader=None):
|
||||
# type: (BaseLoader) -> None
|
||||
def __init__(self, loader: BaseLoader = None) -> None:
|
||||
self.env = SandboxedEnvironment(loader=loader, extensions=['jinja2.ext.i18n'])
|
||||
self.env.filters['repr'] = repr
|
||||
self.env.install_gettext_translations(get_translator()) # type: ignore
|
||||
|
||||
def render(self, template_name, context):
|
||||
# type: (str, Dict) -> str
|
||||
def render(self, template_name: str, context: Dict) -> str:
|
||||
return self.env.get_template(template_name).render(context)
|
||||
|
||||
def render_string(self, source, context):
|
||||
# type: (str, Dict) -> str
|
||||
def render_string(self, source: str, context: Dict) -> str:
|
||||
return self.env.from_string(source).render(context)
|
||||
|
||||
|
||||
class FileRenderer(BaseRenderer):
|
||||
def __init__(self, search_path):
|
||||
# type: (str) -> None
|
||||
def __init__(self, search_path: str) -> None:
|
||||
loader = SphinxFileSystemLoader(search_path)
|
||||
super().__init__(loader)
|
||||
|
||||
@classmethod
|
||||
def render_from_file(cls, filename, context):
|
||||
# type: (str, Dict) -> str
|
||||
def render_from_file(cls, filename: str, context: Dict) -> str:
|
||||
dirname = os.path.dirname(filename)
|
||||
basename = os.path.basename(filename)
|
||||
return cls(dirname).render(basename, context)
|
||||
|
||||
|
||||
class SphinxRenderer(FileRenderer):
|
||||
def __init__(self, template_path=None):
|
||||
# type: (str) -> None
|
||||
def __init__(self, template_path: str = None) -> None:
|
||||
if template_path is None:
|
||||
template_path = os.path.join(package_dir, 'templates')
|
||||
super().__init__(template_path)
|
||||
|
||||
@classmethod
|
||||
def render_from_file(cls, filename, context):
|
||||
# type: (str, Dict) -> str
|
||||
def render_from_file(cls, filename: str, context: Dict) -> str:
|
||||
return FileRenderer.render_from_file(filename, context)
|
||||
|
||||
|
||||
class LaTeXRenderer(SphinxRenderer):
|
||||
def __init__(self, template_path=None):
|
||||
# type: (str) -> None
|
||||
def __init__(self, template_path: str = None) -> None:
|
||||
if template_path is None:
|
||||
template_path = os.path.join(package_dir, 'templates', 'latex')
|
||||
super().__init__(template_path)
|
||||
@@ -87,8 +76,7 @@ class LaTeXRenderer(SphinxRenderer):
|
||||
|
||||
|
||||
class ReSTRenderer(SphinxRenderer):
|
||||
def __init__(self, template_path=None, language=None):
|
||||
# type: (str, str) -> None
|
||||
def __init__(self, template_path: str = None, language: str = None) -> None:
|
||||
super().__init__(template_path)
|
||||
|
||||
# add language to environment
|
||||
|
||||
Reference in New Issue
Block a user