# -*- coding: utf-8 -*-


# port from https://github.com/sphinx-doc/sphinx/blob/ad41e0b/sphinx/util/tags.py
class Tags(object):
    def __init__(self, tags=None):
        # type: (List[unicode]) -> None
        self.tags = dict.fromkeys(tags or [], True)

    def has(self, tag):
        # type: (unicode) -> bool
        return tag in self.tags

    __contains__ = has

    def __iter__(self):
        # type: () -> Iterator[unicode]
        return iter(self.tags)

    def add(self, tag):
        # type: (unicode) -> None
        self.tags[tag] = True

    def remove(self, tag):
        # type: (unicode) -> None
        self.tags.pop(tag, None)

@@ -18,16 +18,65 @@
 -8 -*-%0A%0A
+if False:%0A    from typing import Iterator, List%0A%0A
 %0A# port 
@@ -227,23 +227,19 @@
 : (List%5B
-unicode
+str
 %5D) -%3E No
@@ -331,31 +331,27 @@
    # type: (
-unicode
+str
 ) -%3E bool%0A  
@@ -460,23 +460,19 @@
 terator%5B
-unicode
+str
 %5D%0A      
@@ -530,39 +530,35 @@
        # type: (
-unicode
+str
 ) -%3E None%0A      
@@ -630,15 +630,11 @@
 e: (
-unicode
+str
 ) -%3E

Fix flake8 violations