1
Fork 0
mirror of https://github.com/RGBCube/GitHubWrapper synced 2025-05-15 05:35:00 +00:00

Black format

This commit is contained in:
VarMonke 2022-05-11 11:34:51 +05:30
parent 3d49dd9246
commit 6c3fe56acf
8 changed files with 119 additions and 118 deletions

View file

@ -12,7 +12,7 @@ sys.path.append(os.path.abspath('extensions'))
# -- General configuration ------------------------------------------------ # -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here. # If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0' # needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
@ -33,7 +33,7 @@ extensions = [
autodoc_member_order = 'bysource' autodoc_member_order = 'bysource'
autodoc_typehints = 'none' autodoc_typehints = 'none'
#autodoc_mock_imports = ['sphinxcontrib_trio','sphinxcontrib-serializinghtml','sphinxcontrib-qthelp','sphinxcontrib-jsmath','sphinxcontrib-htmlhelp','sphinxcontrib-devhelp','sphinxcontrib-applehelp ','typing_extensions'] # autodoc_mock_imports = ['sphinxcontrib_trio','sphinxcontrib-serializinghtml','sphinxcontrib-qthelp','sphinxcontrib-jsmath','sphinxcontrib-htmlhelp','sphinxcontrib-devhelp','sphinxcontrib-applehelp ','typing_extensions']
# maybe consider this? # maybe consider this?
# napoleon_attr_annotations = False # napoleon_attr_annotations = False
@ -45,7 +45,7 @@ extlinks = {
intersphinx_mapping = { intersphinx_mapping = {
'py': ('https://docs.python.org/3', None), 'py': ('https://docs.python.org/3', None),
'aio': ('https://docs.aiohttp.org/en/stable/', None), 'aio': ('https://docs.aiohttp.org/en/stable/', None),
'req': ('https://docs.python-requests.org/en/latest/', None) 'req': ('https://docs.python-requests.org/en/latest/', None),
} }
rst_prolog = """ rst_prolog = """
@ -62,7 +62,7 @@ templates_path = ['_templates']
source_suffix = '.rst' source_suffix = '.rst'
# The encoding of source files. # The encoding of source files.
#source_encoding = 'utf-8-sig' # source_encoding = 'utf-8-sig'
# The master toctree document. # The master toctree document.
master_doc = 'index' master_doc = 'index'
@ -79,7 +79,7 @@ copyright = '2022 - Present, VarMonke & sudosnok'
version = '' version = ''
with open('../github/__init__.py') as f: with open('../github/__init__.py') as f:
version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', f.read(), re.MULTILINE).group(1) #type: ignore version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', f.read(), re.MULTILINE).group(1) # type: ignore
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = version release = version
@ -99,9 +99,9 @@ gettext_compact = False
# There are two options for replacing |today|: either, you set today to some # There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used: # non-false value, then it is used:
#today = '' # today = ''
# Else, today_fmt is used as the format for a strftime call. # Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y' # today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and # List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files. # directories to ignore when looking for source files.
@ -109,27 +109,27 @@ exclude_patterns = ['_build']
# The reST default role (used for this markup: `text`) to use for all # The reST default role (used for this markup: `text`) to use for all
# documents. # documents.
#default_role = None # default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text. # If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True # add_function_parentheses = True
# If true, the current module name will be prepended to all description # If true, the current module name will be prepended to all description
# unit titles (such as .. function::). # unit titles (such as .. function::).
#add_module_names = True # add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the # If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default. # output. They are ignored by default.
#show_authors = False # show_authors = False
# The name of the Pygments (syntax highlighting) style to use. # The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'friendly' pygments_style = 'friendly'
# A list of ignored prefixes for module index sorting. # A list of ignored prefixes for module index sorting.
#modindex_common_prefix = [] # modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents. # If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False # keep_warnings = False
# Ignore warnings about inconsistent order and/or count of references in translated messages. # Ignore warnings about inconsistent order and/or count of references in translated messages.
# This makes no sense, different languages can have different word order... # This makes no sense, different languages can have different word order...
@ -175,18 +175,18 @@ resource_links = {
# } # }
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = [] # html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to # The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation". # "<project> v<release> documentation".
#html_title = None # html_title = None
# A shorter title for the navigation bar. Default is the same as html_title. # A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None # html_short_title = None
# The name of an image file (relative to this directory) to place at the top # The name of an image file (relative to this directory) to place at the top
# of the sidebar. # of the sidebar.
#html_logo = None # html_logo = None
# The name of an image file (within the static path) to use as favicon of the # The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
@ -201,69 +201,64 @@ html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or # Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied # .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation. # directly to the root of the documentation.
#html_extra_path = [] # html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y' # html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to # If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities. # typographically correct entities.
#html_use_smartypants = True # html_use_smartypants = True
# Custom sidebar templates, maps document names to template names. # Custom sidebar templates, maps document names to template names.
#html_sidebars = {} # html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to # Additional templates that should be rendered to pages, maps page names to
# template names. # template names.
#html_additional_pages = {} # html_additional_pages = {}
# If false, no module index is generated. # If false, no module index is generated.
#html_domain_indices = True # html_domain_indices = True
# If false, no index is generated. # If false, no index is generated.
#html_use_index = True # html_use_index = True
# If true, the index is split into individual pages for each letter. # If true, the index is split into individual pages for each letter.
#html_split_index = False # html_split_index = False
# If true, links to the reST sources are added to the pages. # If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True # html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True # html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True # html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will # If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the # contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served. # base URL from which the finished HTML is served.
#html_use_opensearch = '' # html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml"). # This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None # html_file_suffix = None
# Language to be used for generating the HTML full-text search index. # Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages: # Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
#html_search_language = 'en' # html_search_language = 'en'
# A dictionary with options for the search language support, empty by default. # A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value # Now only 'ja' uses this config value
#html_search_options = {'type': 'default'} # html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that # The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used. # implements a search results scorer. If empty, the default will be used.
html_search_scorer = '_static/scorer.js' html_search_scorer = '_static/scorer.js'
html_js_files = [ html_js_files = ['custom.js', 'settings.js', 'copy.js', 'sidebar.js']
'custom.js',
'settings.js',
'copy.js',
'sidebar.js'
]
# Output file base name for HTML help builder. # Output file base name for HTML help builder.
htmlhelp_basename = 'Github-API-Wrapper.doc' htmlhelp_basename = 'Github-API-Wrapper.doc'
@ -271,59 +266,52 @@ htmlhelp_basename = 'Github-API-Wrapper.doc'
# -- Options for LaTeX output --------------------------------------------- # -- Options for LaTeX output ---------------------------------------------
latex_elements = { latex_elements = {
# The paper size ('letterpaper' or 'a4paper'). # The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper', #'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
# The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt',
#'pointsize': '10pt', # Additional stuff for the LaTeX preamble.
#'preamble': '',
# Additional stuff for the LaTeX preamble. # Latex figure (float) alignment
#'preamble': '', #'figure_align': 'htbp',
# Latex figure (float) alignment
#'figure_align': 'htbp',
} }
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]). # author, documentclass [howto, manual, or own class]).
latex_documents = [ latex_documents = [
('index', 'Github-API-Wrapper.tex', 'Github-API-Wrapper Documentation', ('index', 'Github-API-Wrapper.tex', 'Github-API-Wrapper Documentation', 'VarMonke & sudosnok', 'manual'),
'VarMonke & sudosnok', 'manual'),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
# the title page. # the title page.
#latex_logo = None # latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts, # For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters. # not chapters.
#latex_use_parts = False # latex_use_parts = False
# If true, show page references after internal links. # If true, show page references after internal links.
#latex_show_pagerefs = False # latex_show_pagerefs = False
# If true, show URL addresses after external links. # If true, show URL addresses after external links.
#latex_show_urls = False # latex_show_urls = False
# Documents to append as an appendix to all manuals. # Documents to append as an appendix to all manuals.
#latex_appendices = [] # latex_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#latex_domain_indices = True # latex_domain_indices = True
# -- Options for manual page output --------------------------------------- # -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [('index', 'Github-API-Wrapper', 'Github-API-Wrapper Documentation', ['VarMonke & sudosnok'], 1)]
('index', 'Github-API-Wrapper', 'Github-API-Wrapper Documentation',
['VarMonke & sudosnok'], 1)
]
# If true, show URL addresses after external links. # If true, show URL addresses after external links.
#man_show_urls = False # man_show_urls = False
# -- Options for Texinfo output ------------------------------------------- # -- Options for Texinfo output -------------------------------------------
@ -332,22 +320,29 @@ man_pages = [
# (source start file, target name, title, author, # (source start file, target name, title, author,
# dir menu entry, description, category) # dir menu entry, description, category)
texinfo_documents = [ texinfo_documents = [
('index', 'Github-API-Wrapper', 'Github-API-Wrapper Documentation', (
'VarMonke & sudosnok', 'Github-API-Wrapper', 'One line description of project.', 'index',
'Miscellaneous'), 'Github-API-Wrapper',
'Github-API-Wrapper Documentation',
'VarMonke & sudosnok',
'Github-API-Wrapper',
'One line description of project.',
'Miscellaneous',
),
] ]
# Documents to append as an appendix to all manuals. # Documents to append as an appendix to all manuals.
#texinfo_appendices = [] # texinfo_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#texinfo_domain_indices = True # texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'. # How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote' # texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu. # If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False # texinfo_no_detailmenu = False
def setup(app): def setup(app):
if app.config.language == 'ja': if app.config.language == 'ja':

View file

@ -152,7 +152,7 @@ def build_lookup_table(env: Optional[BuildEnvironment]) -> Dict[str, List[str]]:
# Given an environment, load up a lookup table of # Given an environment, load up a lookup table of
# full-class-name: objects # full-class-name: objects
result = {} result = {}
domain = env.domains['py'] #type: ignore domain = env.domains['py'] # type: ignore
ignored = { ignored = {
'data', 'data',
@ -181,7 +181,7 @@ class TableElement(NamedTuple):
def process_attributetable(app: Sphinx, doctree: nodes.Node, fromdocname: str) -> None: def process_attributetable(app: Sphinx, doctree: nodes.Node, fromdocname: str) -> None:
env = app.builder.env #type: ignore env = app.builder.env # type: ignore
lookup = build_lookup_table(env) lookup = build_lookup_table(env)
for node in doctree.traverse(attributetableplaceholder): for node in doctree.traverse(attributetableplaceholder):

View file

@ -2,11 +2,11 @@ from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.environment.adapters.indexentries import IndexEntries from sphinx.environment.adapters.indexentries import IndexEntries
from sphinx.writers.html5 import HTML5Translator from sphinx.writers.html5 import HTML5Translator
class DPYHTML5Translator(HTML5Translator): class DPYHTML5Translator(HTML5Translator):
def visit_section(self, node): def visit_section(self, node):
self.section_level += 1 self.section_level += 1
self.body.append( self.body.append(self.starttag(node, 'section'))
self.starttag(node, 'section'))
def depart_section(self, node): def depart_section(self, node):
self.section_level -= 1 self.section_level -= 1
@ -20,16 +20,16 @@ class DPYHTML5Translator(HTML5Translator):
super().depart_table(node) super().depart_table(node)
self.body.append('</div>') self.body.append('</div>')
class DPYStandaloneHTMLBuilder(StandaloneHTMLBuilder): class DPYStandaloneHTMLBuilder(StandaloneHTMLBuilder):
# This is mostly copy pasted from Sphinx. # This is mostly copy pasted from Sphinx.
def write_genindex(self) -> None: def write_genindex(self) -> None:
# the total count of lines for each index letter, used to distribute # the total count of lines for each index letter, used to distribute
# the entries into two columns # the entries into two columns
genindex = IndexEntries(self.env).create_index(self, group_entries=False) #type: ignore genindex = IndexEntries(self.env).create_index(self, group_entries=False) # type: ignore
indexcounts = [] indexcounts = []
for _k, entries in genindex: for _k, entries in genindex:
indexcounts.append(sum(1 + len(subitems) indexcounts.append(sum(1 + len(subitems) for _, (_, subitems, _) in entries))
for _, (_, subitems, _) in entries))
genindexcontext = { genindexcontext = {
'genindexentries': genindex, 'genindexentries': genindex,
@ -38,15 +38,11 @@ class DPYStandaloneHTMLBuilder(StandaloneHTMLBuilder):
} }
if self.config.html_split_index: if self.config.html_split_index:
self.handle_page('genindex', genindexcontext, self.handle_page('genindex', genindexcontext, 'genindex-split.html')
'genindex-split.html') self.handle_page('genindex-all', genindexcontext, 'genindex.html')
self.handle_page('genindex-all', genindexcontext,
'genindex.html')
for (key, entries), count in zip(genindex, indexcounts): for (key, entries), count in zip(genindex, indexcounts):
ctx = {'key': key, 'entries': entries, 'count': count, ctx = {'key': key, 'entries': entries, 'count': count, 'genindexentries': genindex}
'genindexentries': genindex} self.handle_page('genindex-' + key, ctx, 'genindex-single.html')
self.handle_page('genindex-' + key, ctx,
'genindex-single.html')
else: else:
self.handle_page('genindex', genindexcontext, 'genindex.html') self.handle_page('genindex', genindexcontext, 'genindex.html')
@ -56,6 +52,7 @@ def add_custom_jinja2(app):
env.tests['prefixedwith'] = str.startswith env.tests['prefixedwith'] = str.startswith
env.tests['suffixedwith'] = str.endswith env.tests['suffixedwith'] = str.endswith
def add_builders(app): def add_builders(app):
"""This is necessary because RTD injects their own for some reason.""" """This is necessary because RTD injects their own for some reason."""
app.set_translator('html', DPYHTML5Translator, override=True) app.set_translator('html', DPYHTML5Translator, override=True)
@ -66,12 +63,14 @@ def add_builders(app):
except KeyError: except KeyError:
pass pass
else: else:
injected_mro = tuple(base if base is not StandaloneHTMLBuilder else DPYStandaloneHTMLBuilder injected_mro = tuple(
for base in original.mro()[1:]) base if base is not StandaloneHTMLBuilder else DPYStandaloneHTMLBuilder for base in original.mro()[1:]
)
new_builder = type(original.__name__, injected_mro, {'name': 'readthedocs'}) new_builder = type(original.__name__, injected_mro, {'name': 'readthedocs'})
app.set_translator('readthedocs', DPYHTML5Translator, override=True) app.set_translator('readthedocs', DPYHTML5Translator, override=True)
app.add_builder(new_builder, override=True) app.add_builder(new_builder, override=True)
def setup(app): def setup(app):
add_builders(app) add_builders(app)
app.connect('builder-inited', add_custom_jinja2) app.connect('builder-inited', add_custom_jinja2)

View file

@ -1,27 +1,34 @@
from docutils.parsers.rst import Directive from docutils.parsers.rst import Directive
from docutils.parsers.rst import states, directives #type: ignore from docutils.parsers.rst import states, directives # type: ignore
from docutils.parsers.rst.roles import set_classes from docutils.parsers.rst.roles import set_classes
from docutils import nodes from docutils import nodes
class details(nodes.General, nodes.Element): class details(nodes.General, nodes.Element):
pass pass
class summary(nodes.General, nodes.Element): class summary(nodes.General, nodes.Element):
pass pass
def visit_details_node(self, node): def visit_details_node(self, node):
self.body.append(self.starttag(node, 'details', CLASS=node.attributes.get('class', ''))) self.body.append(self.starttag(node, 'details', CLASS=node.attributes.get('class', '')))
def visit_summary_node(self, node): def visit_summary_node(self, node):
self.body.append(self.starttag(node, 'summary', CLASS=node.attributes.get('summary-class', ''))) self.body.append(self.starttag(node, 'summary', CLASS=node.attributes.get('summary-class', '')))
self.body.append(node.rawsource) self.body.append(node.rawsource)
def depart_details_node(self, node): def depart_details_node(self, node):
self.body.append('</details>\n') self.body.append('</details>\n')
def depart_summary_node(self, node): def depart_summary_node(self, node):
self.body.append('</summary>') self.body.append('</summary>')
class DetailsDirective(Directive): class DetailsDirective(Directive):
final_argument_whitespace = True final_argument_whitespace = True
optional_arguments = 1 optional_arguments = 1
@ -48,8 +55,8 @@ class DetailsDirective(Directive):
self.state.nested_parse(self.content, self.content_offset, node) self.state.nested_parse(self.content, self.content_offset, node)
return [node] return [node]
def setup(app): def setup(app):
app.add_node(details, html=(visit_details_node, depart_details_node)) app.add_node(details, html=(visit_details_node, depart_details_node))
app.add_node(summary, html=(visit_summary_node, depart_summary_node)) app.add_node(summary, html=(visit_summary_node, depart_summary_node))
app.add_directive('details', DetailsDirective) app.add_directive('details', DetailsDirective)

View file

@ -1,18 +1,22 @@
from docutils.parsers.rst import Directive from docutils.parsers.rst import Directive
from docutils.parsers.rst import states, directives #type: ignore from docutils.parsers.rst import states, directives # type: ignore
from docutils.parsers.rst.roles import set_classes from docutils.parsers.rst.roles import set_classes
from docutils import nodes from docutils import nodes
from sphinx.locale import _ from sphinx.locale import _
class exception_hierarchy(nodes.General, nodes.Element): class exception_hierarchy(nodes.General, nodes.Element):
pass pass
def visit_exception_hierarchy_node(self, node): def visit_exception_hierarchy_node(self, node):
self.body.append(self.starttag(node, 'div', CLASS='exception-hierarchy-content')) self.body.append(self.starttag(node, 'div', CLASS='exception-hierarchy-content'))
def depart_exception_hierarchy_node(self, node): def depart_exception_hierarchy_node(self, node):
self.body.append('</div>\n') self.body.append('</div>\n')
class ExceptionHierarchyDirective(Directive): class ExceptionHierarchyDirective(Directive):
has_content = True has_content = True
@ -22,6 +26,7 @@ class ExceptionHierarchyDirective(Directive):
self.state.nested_parse(self.content, self.content_offset, node) self.state.nested_parse(self.content, self.content_offset, node)
return [node] return [node]
def setup(app): def setup(app):
app.add_node(exception_hierarchy, html=(visit_exception_hierarchy_node, depart_exception_hierarchy_node)) app.add_node(exception_hierarchy, html=(visit_exception_hierarchy_node, depart_exception_hierarchy_node))
app.add_directive('exception_hierarchy', ExceptionHierarchyDirective) app.add_directive('exception_hierarchy', ExceptionHierarchyDirective)

View file

@ -5,7 +5,6 @@ from sphinx.util import logging as sphinx_logging
class NitpickFileIgnorer(logging.Filter): class NitpickFileIgnorer(logging.Filter):
def __init__(self, app: Sphinx) -> None: def __init__(self, app: Sphinx) -> None:
self.app = app self.app = app
super().__init__() super().__init__()

View file

@ -16,13 +16,7 @@ from sphinx.util.typing import RoleFunction
def make_link_role(resource_links: Dict[str, str]) -> RoleFunction: def make_link_role(resource_links: Dict[str, str]) -> RoleFunction:
def role( def role(
typ: str, typ: str, rawtext: str, text: str, lineno: int, inliner: Inliner, options: Dict = {}, content: List[str] = []
rawtext: str,
text: str,
lineno: int,
inliner: Inliner,
options: Dict = {},
content: List[str] = []
) -> Tuple[List[Node], List[system_message]]: ) -> Tuple[List[Node], List[system_message]]:
text = utils.unescape(text) text = utils.unescape(text)
@ -32,12 +26,14 @@ def make_link_role(resource_links: Dict[str, str]) -> RoleFunction:
title = full_url title = full_url
pnode = nodes.reference(title, title, internal=False, refuri=full_url) pnode = nodes.reference(title, title, internal=False, refuri=full_url)
return [pnode], [] return [pnode], []
return role return role
def add_link_role(app: Sphinx) -> None: def add_link_role(app: Sphinx) -> None:
app.add_role('resource', make_link_role(app.config.resource_links)) app.add_role('resource', make_link_role(app.config.resource_links))
def setup(app: Sphinx) -> Dict[str, Any]: def setup(app: Sphinx) -> Dict[str, Any]:
app.add_config_value('resource_links', {}, 'env') app.add_config_value('resource_links', {}, 'env')
app.connect('builder-inited', add_link_role) app.connect('builder-inited', add_link_role)

View file

@ -6,7 +6,7 @@ with open('requirements.txt') as f:
requirements = f.read().splitlines() requirements = f.read().splitlines()
path = Path(__file__).parent / "github" / "__init__.py" path = Path(__file__).parent / "github" / "__init__.py"
version = re.search(r'\d[.]\d[.]\d',path.read_text()).group(0) #type: ignore version = re.search(r'\d[.]\d[.]\d', path.read_text()).group(0) # type: ignore
packages = [ packages = [
'github', 'github',