my eye

Add pyright and make pass

Committed 11fcd9

--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml

         with:
           configuration: "--profile black"
 
+      - run: echo "$(poetry env info --path)/bin" >> $GITHUB_PATH
+      - uses: jakebailey/pyright-action@v1
+
       - name: Run tests
         run: poetry run gmpg test
 

--- a/gmpg/__main__.py
+++ b/gmpg/__main__.py

         )
 
     def run(self, stdin, log):
+        sh = None  # XXX import sh
+
         stashed = False
         try:
             sh.git("diff", "--quiet")

--- a/gmpg/_pkg/licensing/__init__.py
+++ b/gmpg/_pkg/licensing/__init__.py

         for version, details in sorted(versions.items(), key=cmp):
             if version == req_version:
                 break
+        else:
+            continue
         if req_version and version != req_version:
             err_msg = "unknown version `{}` for `{}`"
             raise KeyError(err_msg.format(req_version, name))

--- a/gmpg/_pkg/listing.py
+++ b/gmpg/_pkg/listing.py

 
     def __getitem__(self, name):
         return self.details[name]
-
-    def is_dirty(self):
-        """ """
-        try:
-            dirty = bool(gitsh("status --porcelain", self.location))
-        except PackageRepoError:
-            dirty = False
-        return dirty

--- a/gmpg/analysis.py
+++ b/gmpg/analysis.py

         "time": _suite["time"],
         "cases": collections.defaultdict(collections.OrderedDict),
     }
+    if not suite_tag:
+        return
     for case_tag in suite_tag:
         case = dict(case_tag.attrib)
         case["type"] = "success"

--- a/pyproject.toml
+++ b/pyproject.toml

 # name = "main"
 # url = "https://ragt.ag/code/pypi"
 
+[tool.pyright]
+reportGeneralTypeIssues = false
+reportOptionalMemberAccess = false
+
 [build-system]
 requires = ["poetry-core>=1.0.0"]
 build-backend = "poetry.core.masonry.api"