Rename recordKeys to rKey

Changed files
+134 -8
src
atpasser
tests
+25 -2
src/atpasser/recordKeys/__init__.py src/atpasser/rKey/__init__.py
···
-
class RecordKey:
+
class RKey:
"""
+
A class representing a RecordKey.
+
Attributes:
+
recordKey (str): The RecordKey URI.
"""
+
def __init__(self, recordKey: str) -> None:
"""
+
Initalizes an RecordKey object.
+
Parameters:
+
recordKey (str): The RecordKey.
"""
+
if recordKey == "" or len(recordKey) > 512:
+
raise ValueError("null record key or record key longer than 512 chars")
+
if recordKey == ".." or recordKey == ".":
+
raise ValueError("reserved value . and ..")
+
if not set(recordKey).issubset(
+
set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_:~")
):
+
raise ValueError("invalid char")
+
self.recordKey = recordKey
+
def __str__(self) -> str:
"""
+
Convert the RecordKey to a string by given the URI.
"""
return self.recordKey
+
def __eq__(self, value: object, /) -> bool:
"""
+
Check if the 2 values are exactly the same.
"""
-
if isinstance(value, RecordKey):
+
+
if isinstance(value, RKey):
+
return str(self) == str(value)
else:
+
return False
+
+26 -2
src/atpasser/uri/restricted.py
···
-
from atpasser import uri, handle, nsid, recordKeys
+
from atpasser import uri, handle, nsid, rKey
+
class RestrictedURI(uri.URI):
"""
+
A class representing a restricted URI.
+
Attributes:
+
collection (atpasser.nsid.NSID): Collection as NSID.
+
rkey (atpasser.rKey.RKey): Record key as a RKey object.
"""
+
def __init__(self, uri: str) -> None:
"""
+
Initalizes a restricted URI.
+
Parameters:
+
uri (str): The AT URI.
"""
+
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])
+
+
self.rkey = rKey.RKey(self.path[1])
else:
+
raise ValueError("ttoo much path segments")
+
+83 -4
tests/_strings.py
···
-
from atpasser import did, handle, nsid, recordKeys, uri
+
from atpasser import did, handle, nsid, rKey, uri
+
testStrings, testMethods = {}, {}
+
testStrings[
"did"
+
] = """did:plc:z72i7hdynmk6r22z27h6tvur
+
did:web:blueskyweb.xyz
+
did:method:val:two
+
did:m:v
+
did:method::::val
+
did:method:-:_:.
+
did:key:zQ3shZc2QzApp2oymGvQbzP8eKheVshBHbU4ZYjeXqwSKEn6N
+
did:METHOD:val
+
did:m123:val
+
DID:method:val
did:method:
+
did:method:val/two
+
did:method:val?two
+
did:method:val#two"""
+
testMethods["did"] = did.DID
+
testStrings[
"handle"
+
] = """jay.bsky.social
+
8.cn
+
name.t--t
+
XX.LCS.MIT.EDU
a.co
+
xn--notarealidn.com
+
xn--fiqa61au8b7zsevnm8ak20mc4a87e.xn--fiqs8s
+
xn--ls8h.test
example.t
+
jo@hn.test
-
💩.test
+
+
💩.tes
+
t
john..test
+
xn--bcher-.tld
+
john.0
+
cn.8
+
www.masełkowski.pl.com
+
org
+
name.org.
+
2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion
laptop.local
+
blah.arpa"""
+
testMethods["handle"] = handle.Handle
+
testStrings[
"nsid"
+
] = """com.example.fooBar
+
net.users.bob.ping
+
a-0.b-1.c
+
a.b.c
+
com.example.fooBarV2
+
cn.8.lex.stuff
-
com.exa💩ple.thing
+
+
com.exa💩ple.thin
com.example
+
com.example.3"""
+
testMethods["nsid"] = nsid.NSID
+
testStrings[
+
"rkey"
+
] = """3jui7kd54zh2y
self
example.com
+
~1.2-3_
+
dHJ1ZQ
pre:fix
+
_
+
alpha/beta
.
..
+
#extra
+
@handle
+
any space
+
any+space
+
number[3]
+
number(3)
+
"quote"
+
dHJ1ZQ=="""
-
testMethods["rkey"] = recordKeys.RecordKey
+
+
testMethods["rkey"] = rKey.RKey
+
testStrings[
"uri"
+
] = """at://foo.com/com.example.foo/123
+
at://foo.com/example/123
+
at://computer
+
at://example.com:3000
+
at://foo.com/
+
at://user:pass@foo.com"""
+
testMethods["uri"] = uri.URI
+
for item in testMethods:
+
print(f"START TEST {item}")
+
for value in testStrings[item].splitlines():
+
print(f"Value: {value}")
+
try:
+
print(f"str(): {str(testMethods[item](value))}")
+
except Exception as e:
+
print(f"× {e}")
+