Skip to content

Commit 73786ff

Browse files
committed
Fix typing errors in http_sfv
1 parent ff60570 commit 73786ff

File tree

1 file changed

+21
-19
lines changed
  • http_message_signatures/http_sfv

1 file changed

+21
-19
lines changed

http_message_signatures/http_sfv/item.py

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
from collections import UserList
22
from datetime import datetime
33
from decimal import Decimal
4-
from typing import List as _List, Tuple, Union, Any, Iterable, cast
4+
from typing import Any, Iterable
5+
from typing import List as _List
6+
from typing import Optional, Tuple, Union, cast
7+
58
from typing_extensions import SupportsIndex
69

710
from .boolean import parse_boolean, ser_boolean
8-
from .byteseq import parse_byteseq, ser_byteseq, BYTE_DELIMIT
9-
from .decimal import ser_decimal
10-
from .integer import parse_number, ser_integer, NUMBER_START_CHARS
11-
from .string import parse_string, ser_string, DQUOTE
12-
from .token import parse_token, ser_token, Token, TOKEN_START_CHARS
11+
from .byteseq import BYTE_DELIMIT, parse_byteseq, ser_byteseq
1312
from .date import parse_date, ser_date
14-
from .display_string import parse_display_string, ser_display_string, DisplayString
15-
from .types import BareItemType, JsonItemType, JsonParamType, JsonInnerListType
16-
from .util import (
17-
StructuredFieldValue,
18-
discard_ows,
19-
parse_key,
20-
ser_key,
21-
)
22-
from .util_json import value_to_json, value_from_json
23-
13+
from .decimal import ser_decimal
14+
from .display_string import DisplayString, parse_display_string, ser_display_string
15+
from .integer import NUMBER_START_CHARS, parse_number, ser_integer
16+
from .string import DQUOTE, parse_string, ser_string
17+
from .token import TOKEN_START_CHARS, Token, parse_token, ser_token
18+
from .types import BareItemType, JsonInnerListType, JsonItemType, JsonParamType
19+
from .util import StructuredFieldValue, discard_ows, parse_key, ser_key
20+
from .util_json import value_from_json, value_to_json
2421

2522
SEMICOLON = ord(b";")
2623
EQUALS = ord(b"=")
@@ -30,7 +27,7 @@
3027

3128

3229
class Item(StructuredFieldValue):
33-
def __init__(self, value: BareItemType = None) -> None:
30+
def __init__(self, value: Optional[BareItemType] = None) -> None:
3431
StructuredFieldValue.__init__(self)
3532
self.value = value
3633
self.params = Parameters()
@@ -45,6 +42,8 @@ def parse_content(self, data: bytes) -> int:
4542
return bytes_consumed
4643

4744
def __str__(self) -> str:
45+
if self.value is None:
46+
return "Item(None)"
4847
return f"{ser_bare_item(self.value)}{str(self.params)}"
4948

5049
def __eq__(self, other: Any) -> bool:
@@ -53,6 +52,7 @@ def __eq__(self, other: Any) -> bool:
5352
return bool(self.value == other)
5453

5554
def to_json(self) -> JsonItemType:
55+
assert self.value is not None
5656
value = value_to_json(self.value)
5757
return (value, self.params.to_json())
5858

@@ -104,8 +104,10 @@ def from_json(self, json_data: JsonParamType) -> None:
104104

105105

106106
class InnerList(UserList):
107-
def __init__(self, values: _List[Union[Item, SingleItemType]] = None) -> None:
108-
UserList.__init__(self, [itemise(v) for v in values or []])
107+
def __init__(self, values: Optional[_List[Union[Item, SingleItemType]]] = None) -> None:
108+
if values is None:
109+
values = []
110+
UserList.__init__(self, [itemise(v) for v in values])
109111
self.params = Parameters()
110112

111113
def parse(self, data: bytes) -> int:

0 commit comments

Comments
 (0)