qapi/source.py: add type hint annotations
Annotations do not change runtime behavior. This commit *only* adds annotations. A note on typing of __init__: mypy requires init functions with no parameters to document a return type of None to be considered fully typed. In the case when there are input parameters, None may be omitted. Since __init__ may never return any value, it is preferred to omit the return annotation whenever possible. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Cleber Rosa <crosa@redhat.com> Tested-by: Cleber Rosa <crosa@redhat.com> Message-Id: <20201009161558.107041-25-jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
		
				
					committed by
					
						 Markus Armbruster
						Markus Armbruster
					
				
			
			
				
	
			
			
			
						parent
						
							7304721f9e
						
					
				
				
					commit
					f5d4361cda
				
			| @@ -34,11 +34,6 @@ disallow_untyped_defs = False | ||||
| disallow_incomplete_defs = False | ||||
| check_untyped_defs = False | ||||
|  | ||||
| [mypy-qapi.source] | ||||
| disallow_untyped_defs = False | ||||
| disallow_incomplete_defs = False | ||||
| check_untyped_defs = False | ||||
|  | ||||
| [mypy-qapi.types] | ||||
| disallow_untyped_defs = False | ||||
| disallow_incomplete_defs = False | ||||
|   | ||||
| @@ -11,37 +11,43 @@ | ||||
|  | ||||
| import copy | ||||
| import sys | ||||
| from typing import List, Optional, TypeVar | ||||
|  | ||||
|  | ||||
| class QAPISchemaPragma: | ||||
|     def __init__(self): | ||||
|     def __init__(self) -> None: | ||||
|         # Are documentation comments required? | ||||
|         self.doc_required = False | ||||
|         # Whitelist of commands allowed to return a non-dictionary | ||||
|         self.returns_whitelist = [] | ||||
|         self.returns_whitelist: List[str] = [] | ||||
|         # Whitelist of entities allowed to violate case conventions | ||||
|         self.name_case_whitelist = [] | ||||
|         self.name_case_whitelist: List[str] = [] | ||||
|  | ||||
|  | ||||
| class QAPISourceInfo: | ||||
|     def __init__(self, fname, line, parent): | ||||
|     T = TypeVar('T', bound='QAPISourceInfo') | ||||
|  | ||||
|     def __init__(self, fname: str, line: int, | ||||
|                  parent: Optional['QAPISourceInfo']): | ||||
|         self.fname = fname | ||||
|         self.line = line | ||||
|         self.parent = parent | ||||
|         self.pragma = parent.pragma if parent else QAPISchemaPragma() | ||||
|         self.defn_meta = None | ||||
|         self.defn_name = None | ||||
|         self.pragma: QAPISchemaPragma = ( | ||||
|             parent.pragma if parent else QAPISchemaPragma() | ||||
|         ) | ||||
|         self.defn_meta: Optional[str] = None | ||||
|         self.defn_name: Optional[str] = None | ||||
|  | ||||
|     def set_defn(self, meta, name): | ||||
|     def set_defn(self, meta: str, name: str) -> None: | ||||
|         self.defn_meta = meta | ||||
|         self.defn_name = name | ||||
|  | ||||
|     def next_line(self): | ||||
|     def next_line(self: T) -> T: | ||||
|         info = copy.copy(self) | ||||
|         info.line += 1 | ||||
|         return info | ||||
|  | ||||
|     def loc(self): | ||||
|     def loc(self) -> str: | ||||
|         if self.fname is None: | ||||
|             return sys.argv[0] | ||||
|         ret = self.fname | ||||
| @@ -49,13 +55,13 @@ class QAPISourceInfo: | ||||
|             ret += ':%d' % self.line | ||||
|         return ret | ||||
|  | ||||
|     def in_defn(self): | ||||
|     def in_defn(self) -> str: | ||||
|         if self.defn_name: | ||||
|             return "%s: In %s '%s':\n" % (self.fname, | ||||
|                                           self.defn_meta, self.defn_name) | ||||
|         return '' | ||||
|  | ||||
|     def include_path(self): | ||||
|     def include_path(self) -> str: | ||||
|         ret = '' | ||||
|         parent = self.parent | ||||
|         while parent: | ||||
| @@ -63,5 +69,5 @@ class QAPISourceInfo: | ||||
|             parent = parent.parent | ||||
|         return ret | ||||
|  | ||||
|     def __str__(self): | ||||
|     def __str__(self) -> str: | ||||
|         return self.include_path() + self.in_defn() + self.loc() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user