Skip to content

Commit

Permalink
Add more type hint
Browse files Browse the repository at this point in the history
  • Loading branch information
chezou committed May 31, 2023
1 parent 633afaf commit fae06d4
Show file tree
Hide file tree
Showing 13 changed files with 195 additions and 151 deletions.
1 change: 1 addition & 0 deletions .github/workflows/pythonapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ jobs:
run: |
black --diff --check tdworkflow tests
isort --check-only tdworkflow tests
mypy --install-types --non-interactive tdworkflow
- name: Test with pytest
run: |
pytest
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ setup_requires =
tdworkflow = py.typed

[options.extras_require]
dev = black;flake8;isort;pytest;pytest-mock
dev = black;flake8;isort;pytest;pytest-mock;mypy
doc = sphinx;sphinx_rtd_theme

[flake8]
Expand Down
38 changes: 19 additions & 19 deletions tdworkflow/attempt.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import dataclasses
from datetime import datetime
from typing import Dict
from typing import Any, Dict, Optional

from .project import Project
from .resource import Resource
Expand All @@ -13,61 +13,61 @@ class Attempt(Resource):
id: int
sessionId: int = -1
sessionUuid: str = ""
sessionTime: datetime = None
workflow: Workflow = None
project: Project = None
sessionTime: Optional[datetime] = None
workflow: Optional[Workflow] = None
project: Optional[Project] = None
index: int = -1
retryAttemptName: str = ""
done: bool = False
success: bool = False
cancelRequested: bool = False
params: Dict = None
createdAt: datetime = None
finishedAt: datetime = None
params: Optional[Dict[str, Any]] = None
createdAt: Optional[datetime] = None
finishedAt: Optional[datetime] = None
status: str = ""

def __post_init__(self):
def __post_init__(self) -> None:
self.id = int(self.id)
self.sessionTime = parse_iso8601(self.sessionTime)
self.sessionTime = parse_iso8601(self.sessionTime) # type: ignore
if self.project and isinstance(self.project, dict):
self.project = Project(**self.project)
if self.workflow and isinstance(self.workflow, dict):
self.workflow = Workflow(**self.workflow)
self.done = bool(self.done)
self.success = bool(self.success)
self.cancelRequested = bool(self.cancelRequested)
self.createdAt = parse_iso8601(self.createdAt)
self.finishedAt = parse_iso8601(self.finishedAt)
self.createdAt = parse_iso8601(self.createdAt) # type: ignore
self.finishedAt = parse_iso8601(self.finishedAt) # type: ignore
self.status = self.status

@property
def session_id(self):
def session_id(self) -> int:
return self.sessionId

@property
def session_uuid(self):
def session_uuid(self) -> str:
return self.sessionUuid

@property
def session_time(self):
def session_time(self) -> Optional[datetime]:
return self.sessionTime

@property
def retry_attempt_name(self):
def retry_attempt_name(self) -> str:
return self.retryAttemptName

@property
def cancel_requested(self):
def cancel_requested(self) -> bool:
return self.cancelRequested

@property
def finished_at(self):
def finished_at(self) -> Optional[datetime]:
return self.finishedAt

def finished(self):
def finished(self) -> bool:
return bool(self.finished_at)

def update(self, **args):
def update(self, **args: Any) -> None:
other_attempt = Attempt(**args)
self.id = other_attempt.id
self.sessionId = other_attempt.sessionId
Expand Down
Loading

0 comments on commit fae06d4

Please sign in to comment.