Skip to content

Commit 0e3f95d

Browse files
Fix all mypy errors
1 parent 09ee2eb commit 0e3f95d

File tree

20 files changed

+72
-110
lines changed

20 files changed

+72
-110
lines changed

setup.cfg

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = pesn-sdk
3-
version = 1.1.0
3+
version = 1.2.0
44
author = Quantori
55
author_email = [email protected]
66
description = Quantori Python SDK for PerkinElmer Signals Notebook
@@ -22,11 +22,11 @@ python_requires = >=3.9
2222
install_requires =
2323
Jinja2~=3.1.1
2424
requests~=2.27
25-
pydantic==1.9.1
25+
pydantic==1.10.4
2626
pandas~=1.4
2727

2828
[options.extras_require]
29-
dev = pytest==6.2.5;pytest-mock==3.7.0;arrow==1.2.2;factory-boy==3.2.1;pytest-factoryboy==2.1.0;pytest-cov==3.0.0;mypy==0.931
29+
dev = pytest==6.2.5;pytest-mock==3.7.0;arrow==1.2.2;factory-boy==3.2.1;pytest-factoryboy==2.1.0;pytest-cov==3.0.0;mypy==1.0.0
3030

3131
[options.packages.find]
3232
where = src

src/signals_notebook/api.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,10 @@ def call(
9292
self,
9393
method: str,
9494
path: Union[str, Sequence[str]],
95-
params: Dict[str, Any] = None,
95+
params: Optional[Dict[str, Any]] = None,
9696
data: _Data = None,
97-
json: Union[list, Dict[str, Any]] = None,
98-
headers: Dict[str, str] = None,
97+
json: Optional[Union[list, Dict[str, Any]]] = None,
98+
headers: Optional[Dict[str, str]] = None,
9999
) -> requests.Response:
100100
"""Makes an API call
101101

src/signals_notebook/attributes/attribute.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def create(
117117
cls,
118118
name: str,
119119
description: str,
120-
options: list[str] = None,
120+
options: Optional[list[str]] = None,
121121
) -> 'Attribute':
122122
"""Create new Attribute
123123

src/signals_notebook/common_types.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ class ResponseData(GenericModel, Generic[EntityClass]):
297297
relationships: Optional[dict[str, Any]] = Field(default=None)
298298
meta: Optional[dict[str, Any]] = Field(default=None)
299299

300-
def __init__(self, _context: dict[str, Any] = None, **kwargs):
300+
def __init__(self, _context: Optional[dict[str, Any]] = None, **kwargs):
301301
attributes = kwargs.get('attributes', {})
302302

303303
if _context:
@@ -310,7 +310,7 @@ class Response(GenericModel, Generic[EntityClass]):
310310
links: Optional[Links] = None
311311
data: Union[ResponseData[EntityClass], List[ResponseData[EntityClass]]]
312312

313-
def __init__(self, _context: dict[str, Any] = None, **kwargs):
313+
def __init__(self, _context: Optional[dict[str, Any]] = None, **kwargs):
314314
data = kwargs.get('data', {})
315315

316316
if _context:

src/signals_notebook/entities/admin_defined_object.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import json
22
import logging
33
from functools import cached_property
4-
from typing import Any, ClassVar, List, Literal, Optional
4+
from typing import Any, cast, ClassVar, List, Literal, Optional
55

66
from pydantic import BaseModel, Field
77

@@ -56,7 +56,7 @@ class Config:
5656

5757
class AdminDefinedObject(Container):
5858
type: Literal[EntityType.ADO] = Field(allow_mutation=False)
59-
ado: AdoType = Field(default=CUSTOM_SYSTEM_OBJECT)
59+
ado: AdoType
6060
_template_name: ClassVar = 'ado.html'
6161

6262
class Config:
@@ -111,11 +111,7 @@ def create(
111111
)
112112

113113
log.debug('Creating AdminDefinedObject for: %s', cls.__name__)
114-
return super()._create(
115-
digest=digest,
116-
force=force,
117-
request=request,
118-
)
114+
return cast('AdminDefinedObject', super()._create(digest=digest, force=force, request=request))
119115

120116
def get_html(self) -> str:
121117
"""Get in HTML format

src/signals_notebook/entities/chemical_drawing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def add_structures(
116116
self,
117117
structure: Structure,
118118
positions: ChemicalDrawingPosition,
119-
digest: str = None,
119+
digest: Optional[str] = None,
120120
force: bool = True,
121121
) -> Structure:
122122
"""Add reagent, reactant or product to ChemicalDrawing

src/signals_notebook/entities/entity.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from signals_notebook.api import SignalsNotebookApi
1111
from signals_notebook.common_types import (
1212
EID,
13-
EntityClass,
1413
EntityCreationRequestPayload,
1514
EntityShortDescription,
1615
EntityType,
@@ -209,7 +208,9 @@ def delete(self) -> None:
209208
log.debug('Entity: %s was deleted from EntityStore', self.eid)
210209

211210
@classmethod
212-
def _create(cls, *, digest: str = None, force: bool = True, request: EntityCreationRequestPayload) -> EntityClass:
211+
def _create(
212+
cls, *, digest: Optional[str] = None, force: bool = True, request: EntityCreationRequestPayload,
213+
) -> 'Entity':
213214
api = SignalsNotebookApi.get_default_api()
214215
log.debug('Create Entity: %s...', cls.__name__)
215216

src/signals_notebook/entities/entity_store.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import logging
33
from datetime import datetime
44
from enum import Enum
5-
from typing import cast, Generator, List, Union
5+
from typing import cast, Generator, List, Optional, Union
66

77
from signals_notebook.api import SignalsNotebookApi
88
from signals_notebook.common_types import EID, EntityType, Response, ResponseData
@@ -59,11 +59,11 @@ def get(cls, eid: EID) -> Entity:
5959
@classmethod
6060
def get_list(
6161
cls,
62-
include_types: List[EntityType] = None,
63-
exclude_types: List[EntityType] = None,
64-
include_options: List[IncludeOptions] = None,
65-
modified_after: datetime = None,
66-
modified_before: datetime = None,
62+
include_types: Optional[List[EntityType]] = None,
63+
exclude_types: Optional[List[EntityType]] = None,
64+
include_options: Optional[List[IncludeOptions]] = None,
65+
modified_after: Optional[datetime] = None,
66+
modified_before: Optional[datetime] = None,
6767
) -> Generator[Entity, None, None]:
6868
"""Get all entities
6969
@@ -133,7 +133,7 @@ def refresh(cls, entity: Entity) -> None:
133133
setattr(entity, field.name, new_value)
134134

135135
@classmethod
136-
def delete(cls, eid: EID, digest: str = None, force: bool = True) -> None:
136+
def delete(cls, eid: EID, digest: Optional[str] = None, force: bool = True) -> None:
137137
"""Delete Entity by ID
138138
139139
Args:

src/signals_notebook/entities/experiment.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import logging
33
from enum import Enum
44
from functools import cached_property
5-
from typing import Any, ClassVar, Generator, Literal, Optional, Tuple, Union
5+
from typing import Any, cast, ClassVar, Dict, Generator, List, Literal, Optional, Union
66

77
from pydantic import BaseModel, Field
88

@@ -66,9 +66,9 @@ def create(
6666
description: Optional[str] = None,
6767
template: Optional['Experiment'] = None,
6868
notebook: Optional[Notebook] = None,
69-
digest: str = None,
69+
digest: Optional[str] = None,
7070
force: bool = True,
71-
attributes: dict = None,
71+
attributes: Optional[Dict[str, Any]] = None,
7272
) -> 'Experiment':
7373
"""Create new Experiment in Signals Notebook
7474
@@ -101,11 +101,7 @@ def create(
101101
)
102102

103103
log.debug('Creating Notebook for: %s', cls.__name__)
104-
return super()._create(
105-
digest=digest,
106-
force=force,
107-
request=request,
108-
)
104+
return cast('Experiment', super()._create(digest=digest, force=force, request=request))
109105

110106
@cached_property
111107
def stoichiometry(self) -> Union[Stoichiometry, list[Stoichiometry]]:
@@ -203,7 +199,7 @@ def _load(cls, path: str, fs_handler: FSHandler, parent: Any) -> None:
203199
except NotImplementedError:
204200
log.error('Failed to load entity %s. Not supported' % child_entity_type)
205201

206-
def dump(self, base_path: str, fs_handler: FSHandler, alias: Optional[Tuple[str]] = None) -> None:
202+
def dump(self, base_path: str, fs_handler: FSHandler, alias: Optional[List[str]] = None) -> None:
207203
metadata = {k: v for k, v in self.dict().items() if k in ('name', 'description', 'eid')}
208204
self._reload_properties()
209205
for prop in self._properties:
@@ -213,18 +209,12 @@ def dump(self, base_path: str, fs_handler: FSHandler, alias: Optional[Tuple[str]
213209
fs_handler.write(
214210
fs_handler.join_path(base_path, self.eid, 'metadata.json'),
215211
json.dumps(metadata),
216-
alias
217-
+ (
218-
self.name,
219-
'__Metadata',
220-
)
221-
if alias
222-
else None,
212+
alias + [self.name, '__Metadata'] if alias else None,
223213
)
224214
for child in self.get_children():
225215
try:
226216
child.dump(
227-
fs_handler.join_path(base_path, self.eid), fs_handler, alias + (self.name,) if alias else None
217+
fs_handler.join_path(base_path, self.eid), fs_handler, alias + [self.name] if alias else None
228218
)
229219
except Exception as e:
230220
log.error(str(e))

src/signals_notebook/entities/notebook.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json
22
import logging
3-
from typing import Any, Literal, Optional, Tuple
3+
from typing import Any, cast, List, Literal, Optional
44

55
from pydantic import BaseModel, Field
66

@@ -39,7 +39,7 @@ def create(
3939
*,
4040
name: Optional[str] = None,
4141
description: Optional[str] = None,
42-
digest: str = None,
42+
digest: Optional[str] = None,
4343
force: bool = True,
4444
organization: Optional[str] = None,
4545
) -> 'Notebook':
@@ -63,13 +63,9 @@ def create(
6363
)
6464

6565
log.debug('Creating Notebook for: %s', cls.__name__)
66-
return super()._create(
67-
digest=digest,
68-
force=force,
69-
request=request,
70-
)
66+
return cast('Notebook', super()._create(digest=digest, force=force, request=request))
7167

72-
def dump(self, base_path: str, fs_handler: FSHandler, alias: Optional[Tuple[str]]) -> None:
68+
def dump(self, base_path: str, fs_handler: FSHandler, alias: Optional[List[str]] = None) -> None:
7369
metadata = {k: v for k, v in self.dict().items() if k in ('name', 'description', 'eid')}
7470
self._reload_properties()
7571
for prop in self._properties:
@@ -78,10 +74,10 @@ def dump(self, base_path: str, fs_handler: FSHandler, alias: Optional[Tuple[str]
7874
fs_handler.write(
7975
fs_handler.join_path(base_path, self.eid, 'metadata.json'),
8076
json.dumps(metadata),
81-
alias + (self.name, '__Metadata') if alias else None,
77+
alias + [self.name, '__Metadata'] if alias else None,
8278
)
8379
for child in self.get_children(order=None):
84-
child.dump(base_path + '/' + self.eid, fs_handler, alias + (self.name,) if alias else None)
80+
child.dump(base_path + '/' + self.eid, fs_handler, alias + [self.name] if alias else None)
8581

8682
@classmethod
8783
def load(cls, path: str, fs_handler: FSHandler) -> None:

0 commit comments

Comments
 (0)