Skip to content

Commit 4ad83fb

Browse files
committed
Complete type hints
- Sphinx's included coverage extension was used as reference
1 parent 58640ac commit 4ad83fb

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

sphinxext/opengraph.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
from typing import Any, Dict, Iterable, Sequence, Tuple
12
from urllib.parse import urljoin
23
import docutils.nodes as nodes
34
import string
45
from html.parser import HTMLParser
5-
6+
import sphinx
7+
from sphinx.application import Sphinx
68

79
DEFAULT_DESCRIPTION_LENGTH = 200
810

@@ -18,13 +20,13 @@ def __init__(self):
1820
self.text_outside_tags = ""
1921
self.level = 0
2022

21-
def handle_starttag(self, tag, attrs):
23+
def handle_starttag(self, tag, attrs) -> None:
2224
self.level += 1
2325

24-
def handle_endtag(self, tag):
26+
def handle_endtag(self, tag) -> None:
2527
self.level -= 1
2628

27-
def handle_data(self, data):
29+
def handle_data(self, data) -> None:
2830
self.text += data
2931
if self.level == 0:
3032
self.text_outside_tags += data
@@ -34,7 +36,7 @@ class OGMetadataCreatorVisitor(nodes.NodeVisitor):
3436
Finds the title and creates a description from a doctree
3537
"""
3638

37-
def __init__(self, desc_len, known_titles=None, document=None):
39+
def __init__(self, desc_len: int, known_titles: Iterable[str] = None, document: nodes.document = None):
3840

3941
# Hack to prevent requirement for the doctree to be passed in.
4042
# It's only used by doctree.walk(...) to print debug messages.
@@ -135,7 +137,7 @@ def make_tag(property: str, content: str) -> str:
135137
return f'<meta property="{property}" content="{content}" />\n '
136138

137139

138-
def get_tags(context, doctree, config):
140+
def get_tags(context: Dict[str, Any], doctree: nodes.document, config: Dict[str, Any]) -> str:
139141

140142
# Set length of description
141143
try:
@@ -185,12 +187,12 @@ def get_tags(context, doctree, config):
185187
return tags
186188

187189

188-
def html_page_context(app, pagename, templatename, context, doctree):
190+
def html_page_context(app: Sphinx, pagename: str, templatename: str, context: Dict[str, Any], doctree: nodes.document) -> None:
189191
if doctree:
190192
context['metatags'] += get_tags(context, doctree, app.config)
191193

192194

193-
def setup(app):
195+
def setup(app: Sphinx) -> Dict[str, Any]:
194196
app.add_config_value("ogp_site_url", None, "html")
195197
app.add_config_value("ogp_description_length", DEFAULT_DESCRIPTION_LENGTH, "html")
196198
app.add_config_value("ogp_image", None, "html")

0 commit comments

Comments
 (0)