Fix typo and did some restricted DID support

Changed files
+36 -10
docs
src
+1 -1
docs/roadmap.md
···
|NSID|`nsid` Almost done!|
|TID|`tid` Almost done|
|Record Key|`recordKey` Almost done!|
-
|URI Scheme||
+
|URI Scheme|`uri` General URI scheme, and `uri.restricted` for restricted one for Lexicons|
+1 -1
src/atpasser/did/__init__.py
···
if isinstance(value, DID):
return str(self) == str(value)
else:
-
raise TypeError
+
return False
def fetch(self):
"""
+1 -1
src/atpasser/handle/__init__.py
···
return str(self) == str(value)
else:
-
raise TypeError
+
return False
def toTID(self):
"""
+1 -2
src/atpasser/nsid/__init__.py
···
raise ValueError("domain authority more than 253 chars")
for segment in domainAuthority:
-
print(segment)
if len(segment) > 63 or segment == "":
raise ValueError("segment not in 1~63 chars")
if not set(segment).issubset(set("abcdefghijklmnopqrstuvwxyz0123456789-")):
···
return str(self) == str(value)
else:
-
raise TypeError
+
return False
+1 -1
src/atpasser/recordKeys/__init__.py
···
return str(self) == str(value)
else:
-
raise TypeError
+
return False
+1 -1
src/atpasser/tid/__init__.py
···
if isinstance(value, TID):
return int(self) == int(value)
else:
-
raise TypeError
+
return False
def importTIDfromInteger(value: int | None = None):
+3 -3
src/atpasser/uri/__init__.py
···
self.authority = authority
unescapedAV = up.quote(authorityValue).replace("%3A", ":")
-
self.uri = "at://{}/{}{}{}".format(
+
self.uri = "at://{}{}{}{}".format(
unescapedAV,
-
pathAsText,
+
"/" + pathAsText if pathAsText != "" else "",
"?" + query if query != None else "",
"?" + fragment if fragment != None else "",
)
···
return str(self) == str(value)
else:
-
raise TypeError
+
return False
+27
src/atpasser/uri/restricted.py
···
+
from atpasser import uri, handle, nsid, recordKeys
+
+
+
class RestrictedURI(uri.URI):
+
"""
+
A class representing a restricted URI.
+
+
Attributes:
+
uri (str): The AT URI.
+
"""
+
+
def __init__(self, uri: str) -> None:
+
super().__init__(uri)
+
if self.query != None and self.fragment != None:
+
raise ValueError("has query and/or fragments")
+
if self.authority == None:
+
raise ValueError("invalid DID or handle")
+
if len(self.path) == 0:
+
self.collection, self.rkey = None, None
+
elif len(self.path) == 1:
+
self.collection = nsid.NSID(self.path[0])
+
self.rkey = None
+
elif len(self.path) == 2:
+
self.collection = nsid.NSID(self.path[0])
+
self.rkey = recordKeys.RecordKey(self.path[1])
+
else:
+
raise ValueError("ttoo much path segments")