Skip to content

Commit 6d443e4

Browse files
author
František Nečas
committed
fixup! Enforce strict Optional typing
1 parent 58572af commit 6d443e4

File tree

8 files changed

+39
-30
lines changed

8 files changed

+39
-30
lines changed

ogr/abstract.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -1009,7 +1009,7 @@ def set(
10091009
raise NotImplementedError()
10101010

10111011
@property
1012-
def created(self) -> Optional[datetime.datetime]:
1012+
def created(self) -> datetime.datetime:
10131013
"""Datetime of creating the commit status."""
10141014
raise NotImplementedError()
10151015

@@ -1112,7 +1112,11 @@ def body(self) -> str:
11121112

11131113
@property
11141114
def git_tag(self) -> GitTag:
1115-
"""Object that represents tag tied to the release."""
1115+
"""Object that represents tag tied to the release.
1116+
1117+
Raises:
1118+
OgrException, if the tag is not found.
1119+
"""
11161120
raise NotImplementedError()
11171121

11181122
@property
@@ -1337,7 +1341,7 @@ def __init__(
13371341
13381342
- GitHub: username or org name.
13391343
- GitLab: username or org name.
1340-
- Pagure: namespace (e.g. `"rpms"`). May be none.
1344+
- Pagure: namespace (e.g. `"rpms"`). May be `None`, i.e. no namespace present.
13411345
13421346
In case of forks: `"fork/{username}/{namespace}"`.
13431347
"""

ogr/parsing.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ class RepoUrl:
1010
Class that represents repo URL.
1111
1212
Attributes:
13-
repo (Optional[str]): Name of the repository. Can be None if parsing is being done.
14-
namespace (Optional[str]): Namespace of the repository, if has any.
15-
username (Optional[str]): Username of the repository owner, if can be
13+
repo: Name of the repository. Can be `None` if parsing is being done.
14+
namespace: Namespace of the repository, if has any.
15+
username: Username of the repository owner, if can be
1616
specified.
17-
is_fork (bool): Flag denoting if repository is a fork, if can be
17+
is_fork: Flag denoting if repository is a fork, if can be
1818
specified (Pagure).
19-
hostname (Optional[str]): Hostname of host of the repository.
20-
scheme (Optional[str]): Protocol used to access repository.
19+
hostname: Hostname of host of the repository.
20+
scheme: Protocol used to access repository.
2121
"""
2222

2323
def __init__(

ogr/services/github/flag.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from ogr.abstract import CommitFlag, CommitStatus
1010
from ogr.services import github as ogr_github
1111
from ogr.services.base import BaseCommitFlag
12+
from ogr.exceptions import OgrException
1213

1314

1415
class GithubCommitFlag(BaseCommitFlag):
@@ -64,10 +65,10 @@ def set(
6465
return GithubCommitFlag(project=project, raw_commit_flag=status, commit=commit)
6566

6667
@property
67-
def created(self) -> Optional[datetime.datetime]:
68-
if self._raw_commit_flag:
69-
return self._raw_commit_flag.created_at
70-
return None
68+
def created(self) -> datetime.datetime:
69+
if not self._raw_commit_flag:
70+
raise OgrException("Raw commit flag not set, this should not happen.")
71+
return self._raw_commit_flag.created_at
7172

7273
@property
7374
def edited(self) -> Optional[datetime.datetime]:

ogr/services/github/issue.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def create(
8686
body: str,
8787
private: Optional[bool] = None,
8888
labels: Optional[List[str]] = None,
89-
assignees: Optional[list] = None,
89+
assignees: Optional[List[str]] = None,
9090
) -> "Issue":
9191
if private:
9292
raise OperationNotSupported("Private issues are not supported by Github")

ogr/services/gitlab/flag.py

+8-9
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
import logging
55
import datetime
6-
from typing import List, Optional
6+
from typing import List
77

88
import gitlab
99

1010
from ogr.abstract import CommitFlag, CommitStatus
11-
from ogr.exceptions import GitlabAPIException, OperationNotSupported
11+
from ogr.exceptions import GitlabAPIException, OperationNotSupported, OgrException
1212
from ogr.services import gitlab as ogr_gitlab
1313
from ogr.services.base import BaseCommitFlag
1414

@@ -93,13 +93,12 @@ def set(
9393
return GitlabCommitFlag(raw_commit_flag=raw_status, project=project)
9494

9595
@property
96-
def created(self) -> Optional[datetime.datetime]:
97-
return (
98-
datetime.datetime.strptime(
99-
self._raw_commit_flag.created_at, "%Y-%m-%dT%H:%M:%S.%fZ"
100-
)
101-
if self._raw_commit_flag
102-
else None
96+
def created(self) -> datetime.datetime:
97+
if not self._raw_commit_flag:
98+
raise OgrException("Raw commit flag not set, this should not happen.")
99+
100+
return datetime.datetime.strptime(
101+
self._raw_commit_flag.created_at, "%Y-%m-%dT%H:%M:%S.%fZ"
103102
)
104103

105104
@property

ogr/services/gitlab/issue.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def url(self) -> str:
4747
return self._raw_issue.web_url
4848

4949
@property
50-
def assignees(self) -> Optional[list]:
50+
def assignees(self) -> Optional[List[str]]:
5151
try:
5252
return self._raw_issue.assignees
5353
except AttributeError:

ogr/services/pagure/flag.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from ogr.abstract import CommitFlag, CommitStatus
99
from ogr.services import pagure as ogr_pagure
1010
from ogr.services.base import BaseCommitFlag
11+
from ogr.exceptions import OgrException
1112

1213

1314
class PagureCommitFlag(BaseCommitFlag):
@@ -73,11 +74,11 @@ def set(
7374
)
7475

7576
@property
76-
def created(self) -> Optional[datetime.datetime]:
77-
return (
78-
datetime.datetime.fromtimestamp(int(self._raw_commit_flag["date_created"]))
79-
if self._raw_commit_flag
80-
else None
77+
def created(self) -> datetime.datetime:
78+
if not self._raw_commit_flag:
79+
raise OgrException("Raw commit flag not set, this should not happen.")
80+
return datetime.datetime.fromtimestamp(
81+
int(self._raw_commit_flag["date_created"])
8182
)
8283

8384
@property

ogr/services/pagure/release.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,12 @@ def create(
7171
message: str,
7272
ref: Optional[str] = None,
7373
) -> "Release":
74+
"""
75+
Raises:
76+
ValueError, if ref is not specified.
77+
"""
7478
if not ref:
75-
raise PagureAPIException("Release ref must be specified")
79+
raise ValueError("Release ref must be specified")
7680
payload = {
7781
"tagname": tag,
7882
"commit_hash": ref,

0 commit comments

Comments
 (0)