-112
src/atpasser/uri/did.py
-112
src/atpasser/uri/did.py
···-where method defines the resolution mechanism (e.g., 'plc' for PLC directory, 'web' for web-based).
-92
src/atpasser/uri/restricted.py
-92
src/atpasser/uri/restricted.py
···
+157
src/atpasser/uri/rkey.py
+157
src/atpasser/uri/rkey.py
···
-136
src/atpasser/uri/tid.py
-136
src/atpasser/uri/tid.py
···
-182
src/atpasser/data/decoder.py
-182
src/atpasser/data/decoder.py
···
-82
src/atpasser/data/encoder.py
-82
src/atpasser/data/encoder.py
···
-227
src/atpasser/data/hooks.py
-227
src/atpasser/data/hooks.py
···
-346
src/atpasser/data/wrapper.py
-346
src/atpasser/data/wrapper.py
···
+6
-1
.gitignore
+6
-1
.gitignore
+10
-2
README.md
+10
-2
README.md
···A simple library for the [Authenticated Transfer Protocol](https://atproto.com/specs/atp) (AT Protocol or atproto for short).···+[There's an ATProto SDK already (and used by lots of projects) by MarshalX,](https://github.com/MarshalX/atproto) and why do this exists?+The first reason is that I'm recovering the now-closed [Tietiequan](https://tangled.org/@dwn.dwnfonts.cc/bluesky-circle) app and found that some API has changed so I have to rewrite it via vanilla JS.+The second reason is that I'm a newbie in ATProto, wanting to know how ATProto is, and how this can be represented in Python.
-76
src/atpasser/data/_data.py
-76
src/atpasser/data/_data.py
···
-61
src/atpasser/data/_wrapper.py
-61
src/atpasser/data/_wrapper.py
···
-137
src/atpasser/data/cbor.py
-137
src/atpasser/data/cbor.py
···
-4
tests/__init__.py
-4
tests/__init__.py
-179
tests/_strings.py
-179
tests/_strings.py
···
+205
ARCHITECTURE_OVERVIEW.md
+205
ARCHITECTURE_OVERVIEW.md
···+ๆฌ้กน็ฎไธบ ATProto (Authenticated Transfer Protocol) ๆไพ Python ๅฎ็ฐ๏ผไธๆณจไบๆฐๆฎๆจกๅๅ Lexicon ๅฎไน็ๅค็ใๅบไบ็ฐๆ็ URI ๆจกๅๆถๆๆจกๅผ๏ผๆไพ็ฑปๅๅฎๅ จ็ๆฐๆฎ้ช่ฏใๅบๅๅๅ Lexicon ่งฃๆๅ่ฝใ+ๆฌๆถๆ่ฎพ่ฎกๆไพไบไธไธชๅฎๆดใๅฏๆฉๅฑ็ ATProto ๆฐๆฎๅค็่งฃๅณๆนๆก๏ผๅ ๅๅฉ็จไบ Python ็็ฑปๅ็ณป็ปๅ็ฐๆ็ๆ๏ผๅๆถไฟๆไบไธ ATProto ่ง่็ๅฎๅ จๅ ผๅฎนๆงใๆจกๅๅ็่ฎพ่ฎกไฝฟๅพๅไธช็ปไปถๅฏไปฅ็ฌ็ซๅผๅๅๆต่ฏ๏ผๅๆถไนไพฟไบๆชๆฅ็ๆฉๅฑๅ็ปดๆคใ
+119
examples/basic_usage.py
+119
examples/basic_usage.py
···
+11
src/atpasser/__init__.py
+11
src/atpasser/__init__.py
···
+215
src/atpasser/data/ARCHITECTURE.md
+215
src/atpasser/data/ARCHITECTURE.md
···+ๆฌๆจกๅ่ด่ดฃๅฎ็ฐ ATProto ๆฐๆฎๆจกๅ็ๅบๅๅใๅๅบๅๅๅ้ช่ฏๅ่ฝ๏ผๆฏๆ JSON ๅ DAG-CBOR ไธค็งๆ ผๅผ็ๆฐๆฎ็ผ็ ใ
+47
src/atpasser/data/__init__.py
+47
src/atpasser/data/__init__.py
···
+87
src/atpasser/data/exceptions.py
+87
src/atpasser/data/exceptions.py
···
+190
src/atpasser/data/formats.py
+190
src/atpasser/data/formats.py
···
+125
src/atpasser/data/serializer.py
+125
src/atpasser/data/serializer.py
···
+263
src/atpasser/lexicon/ARCHITECTURE.md
+263
src/atpasser/lexicon/ARCHITECTURE.md
···+ๆฌๆจกๅ่ด่ดฃ่งฃๆใ้ช่ฏๅ็ฎก็ ATProto Lexicon ๅฎไนๆไปถ๏ผๅฐ JSON Schema ่ฝฌๆขไธบๅฏๆง่ก็ Pydantic ๆจกๅ๏ผๅนถๆไพ็ฑปๅๅฎๅ จ็ๆฅๅฃใ
+71
src/atpasser/lexicon/__init__.py
+71
src/atpasser/lexicon/__init__.py
···
+125
src/atpasser/lexicon/exceptions.py
+125
src/atpasser/lexicon/exceptions.py
···
+208
src/atpasser/lexicon/parser.py
+208
src/atpasser/lexicon/parser.py
···
+114
src/atpasser/lexicon/registry.py
+114
src/atpasser/lexicon/registry.py
···
+155
src/atpasser/lexicon/types.py
+155
src/atpasser/lexicon/types.py
···