Skip to content

Commit f160c93

Browse files
committed
More types!
1 parent 06320bf commit f160c93

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

pyodata/model/elements.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import logging
66
from abc import abstractmethod
77
from enum import Enum
8-
from typing import Union
8+
from typing import Union, Dict
99

1010
from pyodata.policies import ParserError
1111
from pyodata.config import Config
@@ -104,7 +104,7 @@ def __getattr__(self, item):
104104

105105

106106
class Identifier:
107-
def __init__(self, name):
107+
def __init__(self, name: str):
108108
super(Identifier, self).__init__()
109109

110110
self._name = name
@@ -638,7 +638,7 @@ def __init__(self, name, label, is_value_list):
638638
self._label = label
639639
self._is_value_list = is_value_list
640640
self._key = list()
641-
self._properties = dict()
641+
self._properties: Dict[str, 'StructTypeProperty'] = dict()
642642

643643
@property
644644
def label(self):
@@ -648,7 +648,7 @@ def label(self):
648648
def is_value_list(self):
649649
return self._is_value_list
650650

651-
def proprty(self, property_name):
651+
def proprty(self, property_name: str) -> 'StructTypeProperty':
652652
try:
653653
return self._properties[property_name]
654654
except KeyError:

pyodata/v2/service.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,11 @@ def __init__(self, service: 'Service', entity_set: Union[EntitySet, 'EntitySetPr
793793
pass
794794

795795
def __repr__(self) -> str:
796-
return self._entity_key.to_key_string()
796+
entity_key = self._entity_key
797+
if entity_key is None:
798+
raise PyODataException('Entity key is None')
799+
800+
return entity_key.to_key_string()
797801

798802
def __getattr__(self, attr: str) -> Any:
799803
try:
@@ -844,8 +848,7 @@ def nav(self, nav_property: str) -> Union['NavEntityProxy', 'EntitySetProxy']:
844848

845849
def get_path(self) -> str:
846850
"""Returns this entity's relative path - e.g. EntitySet(KEY)"""
847-
848-
return self._entity_set._name + self._entity_key.to_key_string() # pylint: disable=protected-access
851+
return str(self._entity_set._name + self._entity_key.to_key_string()) # pylint: disable=protected-access
849852

850853
def get_proprty(self, name: str, connection: Optional[requests.Session] = None) -> ODataHttpRequest:
851854
"""Returns value of the property"""
@@ -886,7 +889,7 @@ def value_get_handler(key: Any, response: requests.Response) -> requests.Respons
886889
connection=connection)
887890

888891
@property
889-
def entity_set(self) -> EntitySet:
892+
def entity_set(self) -> Optional[Union['EntitySet', 'EntitySetProxy']]:
890893
"""Entity set related to this entity"""
891894

892895
return self._entity_set
@@ -906,7 +909,7 @@ def url(self) -> str:
906909

907910
return urljoin(service_url, entity_path)
908911

909-
def equals(self, other) -> bool:
912+
def equals(self, other: 'EntityProxy') -> bool:
910913
"""Returns true if the self and the other contains the same data"""
911914
# pylint: disable=W0212
912915
return self._cache == other._cache
@@ -1057,7 +1060,8 @@ def _get_nav_entity(self, master_key: EntityKey, nav_property: str,
10571060
navigation_entity_set: EntitySet) -> NavEntityGetRequest:
10581061
"""Get entity based on provided key of the master and Navigation property name"""
10591062

1060-
def get_entity_handler(parent, nav_property, navigation_entity_set, response) -> NavEntityProxy:
1063+
def get_entity_handler(parent: EntityProxy, nav_property: str, navigation_entity_set: EntitySet,
1064+
response: requests.Response) -> NavEntityProxy:
10611065
"""Gets entity from HTTP response"""
10621066

10631067
if response.status_code != requests.codes.ok:
@@ -1082,10 +1086,10 @@ def get_entity_handler(parent, nav_property, navigation_entity_set, response) ->
10821086
self,
10831087
nav_property)
10841088

1085-
def get_entity(self, key=None, **args):
1089+
def get_entity(self, key=None, **args) -> EntityGetRequest:
10861090
"""Get entity based on provided key properties"""
10871091

1088-
def get_entity_handler(response):
1092+
def get_entity_handler(response: requests.Response) -> EntityProxy:
10891093
"""Gets entity from HTTP response"""
10901094

10911095
if response.status_code != requests.codes.ok:
@@ -1108,7 +1112,7 @@ def get_entity_handler(response):
11081112
def get_entities(self):
11091113
"""Get all entities"""
11101114

1111-
def get_entities_handler(response):
1115+
def get_entities_handler(response: requests.Response) -> Union[List[EntityProxy], int]:
11121116
"""Gets entity set from HTTP Response"""
11131117

11141118
if response.status_code != requests.codes.ok:
@@ -1133,10 +1137,10 @@ def get_entities_handler(response):
11331137
return GetEntitySetRequest(self._service.url, self._service.connection, get_entities_handler,
11341138
self._parent_last_segment + entity_set_name, self._entity_set.entity_type)
11351139

1136-
def create_entity(self, return_code=requests.codes.created):
1140+
def create_entity(self, return_code: int = requests.codes.created) -> EntityCreateRequest:
11371141
"""Creates a new entity in the given entity-set."""
11381142

1139-
def create_entity_handler(response):
1143+
def create_entity_handler(response: requests.Response) -> EntityProxy:
11401144
"""Gets newly created entity encoded in HTTP Response"""
11411145

11421146
if response.status_code != return_code:
@@ -1150,10 +1154,10 @@ def create_entity_handler(response):
11501154
return EntityCreateRequest(self._service.url, self._service.connection, create_entity_handler, self._entity_set,
11511155
self.last_segment)
11521156

1153-
def update_entity(self, key=None, **kwargs):
1157+
def update_entity(self, key=None, **kwargs) -> EntityModifyRequest:
11541158
"""Updates an existing entity in the given entity-set."""
11551159

1156-
def update_entity_handler(response):
1160+
def update_entity_handler(response: requests.Response) -> None:
11571161
"""Gets modified entity encoded in HTTP Response"""
11581162

11591163
if response.status_code != 204:
@@ -1343,7 +1347,7 @@ def http_get(self, path: str, connection: Optional[requests.Session] = None) ->
13431347
return conn.get(urljoin(self._url, path))
13441348

13451349
def http_get_odata(self, path: str, handler: Callable[[requests.Response], Any],
1346-
connection: Optional[requests.Session] = None):
1350+
connection: Optional[requests.Session] = None) -> ODataHttpRequest:
13471351
"""HTTP GET request proxy for the passed path in the service"""
13481352

13491353
conn = connection
@@ -1364,7 +1368,7 @@ def batch_handler(batch: MultipartRequest, parts: List[List[str]]) -> List[Any]:
13641368

13651369
logging.getLogger(LOGGER_NAME).debug('Batch handler called for batch %s', batch.id)
13661370

1367-
result = []
1371+
result: List[Any] = []
13681372
for part, req in zip(parts, batch.requests):
13691373
logging.getLogger(LOGGER_NAME).debug('Batch handler is processing part %s for request %s', part, req)
13701374

@@ -1384,7 +1388,7 @@ def batch_handler(batch: MultipartRequest, parts: List[List[str]]) -> List[Any]:
13841388
def create_changeset(self, changeset_id=None):
13851389
"""Create instance of OData changeset"""
13861390

1387-
def changeset_handler(changeset: 'Changeset', parts: List[str]):
1391+
def changeset_handler(changeset: 'Changeset', parts: List[str]) -> List[ODataHttpResponse]:
13881392
"""Gets changeset response from HTTP response"""
13891393

13901394
logging.getLogger(LOGGER_NAME).debug('Changeset handler called for changeset %s', changeset.id)

0 commit comments

Comments
 (0)