# HG changeset patch # User David Keijser # Date 1604249181 -3600 # Sun Nov 01 17:46:21 2020 +0100 # Node ID c40cd09e390626d8618da78378d018ffda66cb34 # Parent e063507e514cbcbba6b4275df3615c8a65d1ee06 Add type annotations to public facing API The PEP561 marker lets dependent projects using mypy type check code using this module. diff --git a/scfg/__init__.py b/scfg/__init__.py --- a/scfg/__init__.py +++ b/scfg/__init__.py @@ -1,4 +1,5 @@ import shlex +from typing import List, Dict, Optional def get(directives, name): @@ -16,9 +17,9 @@ class Directive: - name = None - params = None - children = None + name: str + params: List[str] + children: List['Directive'] def __init__(self, name, params, children=None): self.name = name @@ -28,10 +29,10 @@ def __str__(self): return f"{self.name}: {self.params}" - def get(self, name): + def get(self, name) -> Optional['Directive']: return get(self.children, name) - def get_all(self, name): + def get_all(self, name) -> List['Directive']: return get_all(self.children, name) @@ -84,8 +85,8 @@ return blocks, closing_brace - def get(self, name): + def get(self, name) -> Optional[Directive]: return get(self.directives, name) - def get_all(self, name): + def get_all(self, name) -> List[Directive]: return get_all(self.directives, name) diff --git a/scfg/py.typed b/scfg/py.typed new file mode 100644 --- /dev/null +++ b/scfg/py.typed @@ -0,0 +1,1 @@ +# Marker file for PEP 561. diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -9,11 +9,11 @@ "See https://hg.code.netlandish.com/~petersanchez/py-scfg" ) - setup( name="py-scfg", version="0.1.1", packages=find_packages(), + package_data={"scfg": ["py.typed"]}, description="Module to read scfg formatted configuration files.", author="Peter Sanchez", author_email="pjs@petersanchez.com", @@ -30,5 +30,4 @@ "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", ], - include_package_data=True, )