22
33from __future__ import annotations
44
5- from typing import Any , Dict , Iterator , List , Optional
5+ from typing import Any , Iterator
66
77
88try :
99 from uritemplate import expand
1010except ImportError :
1111 # TODO: emit a warning
12- def expand (href : str , templates : Dict [str , str ]) -> str :
12+ def expand (href : str , templates : dict [str , str ]) -> str :
1313 for templ , value in templates .items ():
1414 href = href .replace ('{%s}' % (templ , ), value )
1515 return href
@@ -36,7 +36,7 @@ def __init__(self, *args, **kwargs) -> None:
3636 def self (self ) -> str :
3737 return self .expand (self .get_link ('self' )['href' ])
3838
39- def get_links (self , relation : str , name : None = None ) -> Iterator [Dict [str , None | bool | str ]]:
39+ def get_links (self , relation : str , name : None = None ) -> Iterator [dict [str , None | bool | str ]]:
4040 links = self ['_links' ].get (relation )
4141 if links is None :
4242 return
@@ -66,13 +66,13 @@ def get_links(self, relation: str, name: None = None) -> Iterator[Dict[str, None
6666 link ['deprecation' ] = False
6767 yield link
6868
69- def get_link (self , relation : str , name : str | None = None ) -> Dict [str , bool | str | None ] | None :
69+ def get_link (self , relation : str , name : str | None = None ) -> dict [str , bool | str | None ] | None :
7070 try :
7171 return next (self .get_links (relation , name ))
7272 except StopIteration :
7373 pass
7474
75- def get_relations (self ) -> List [str ]:
75+ def get_relations (self ) -> list [str ]:
7676 return list (set (self ['_links' ].keys ()) | set (self ['_embedded' ].keys ()))
7777
7878 def get_resources (self , relation : str ) -> None :
@@ -103,15 +103,15 @@ def get_curie(self, relation: str) -> str:
103103 return self .expand (link ['href' ], rel = rel )
104104 return relation
105105
106- def add_link (self , relation : str , link : Dict [str , str ]) -> None :
106+ def add_link (self , relation : str , link : dict [str , str ]) -> None :
107107 links = self ['_links' ].setdefault (relation , [])
108108 if not isinstance (links , list ):
109109 links = [links ]
110110 links .append (link )
111111 self ['_links' ][relation ] = links
112112 self ['_links' ][relation ] = list (self .get_links (relation ))
113113
114- def add_resource (self , relation : str , resource : Dict [Any , Any ]) -> None :
114+ def add_resource (self , relation : str , resource : dict [Any , Any ]) -> None :
115115 resources = list (self .get_resources (relation ))
116116 resources .append (resource )
117117 self ['_embedded' ][relation ] = resources
@@ -128,7 +128,7 @@ def decode(cls, data: bytes, charset: str | None = None, mimetype: ContentType |
128128 return Resource (data )
129129
130130 @classmethod
131- def encode (cls , data : Dict [str , None ] | Resource , charset : str | None = None , mimetype : ContentType | None = None ) -> bytes :
131+ def encode (cls , data : dict [str , None ] | Resource , charset : str | None = None , mimetype : ContentType | None = None ) -> bytes :
132132 if not isinstance (data , dict ):
133133 raise EncodeError ('HAL documents must be JSON objects.' )
134134
0 commit comments