Releases: MarshalX/atproto
v0.0.36
What's Changed
The AT Protocol Identity package has been implemented! It allows the resolution of DIDs and Handles using various techniques like DNS, HTTP, and PLC directory. Abstract and in-memory caching has been brought too. And as always, it provides both sync and async interfaces. Check the docs below!
🌐 Identity resolvers for DID and Handle
Code snippet:
from atproto import IdResolver # for async use AsyncIdResolver
resolver = IdResolver()
did = resolver.handle.resolve('test.marshal.dev')
did_doc = resolver.did.resolve(did)
print(did)
print(did_doc)
Code snippet with cache:
from atproto import DidInMemoryCache, IdResolver # for async AsyncDidInMemoryCache and AsyncIdResolver
cache = DidInMemoryCache()
resolver = IdResolver(cache=cache)
did_doc = resolver.did.resolve('did:web:feed.atproto.blue')
# Now did_document is cached and could be retrieved without network request
did_doc = resolver.did.resolve('did:web:feed.atproto.blue')
# Clear cache
cache.clear()
# Now did_document is not cached and will be retrieved with network request
did_doc = resolver.did.resolve('did:web:feed.atproto.blue')
Full Changelog: v0.0.35...v0.0.36
v0.0.35
❗Breaking changes
SDK was split into many packages. This affects imports in your codebase. Read more
What's Changed
- New SDK structure by @MarshalX in #214 and #216
- Fix decoding of CAR root by @MarshalX in #213
- Fix parsing of BlobRef in CBOR by @MarshalX in #215
- Update lexicons fetched from 905743d committed 2023-12-20T14:49:21Z by @MarshalX in #217
Full Changelog: v0.0.34...v0.0.35
v0.0.34
What's Changed
- Make SDK more backward and forward-compatible with protocol by @MarshalX in #207
- Add plenty of new high-level methods by @MarshalX in #208
- Documentation
- Breaking changes:
unlike
now accepts AT URI instead ofrecord_key
andprofile_identify
- New methods:
get_post
get_posts
get_post_thread
get_likes
get_reposted_by
get_timeline
get_author_feed
unrepost
AKAdelete_report
follow
unfollow
AKAdelete_follow
get_follows
get_followers
get_profile
get_profiles
mute
unmute
resolve_handle
update_handle
upload_blob
- Migrate lexicon parser from dacite to pydantic; enable ruff ANN by @MarshalX in #206
- Removed exceptions:
UnknownPrimitiveTypeError
UnknownDefinitionTypeError
- Renamed fields:
schema
->schema_
maxLength
->max_length
- ... and all other camelCase names now in snake_case
- Removed exceptions:
Full Changelog: v0.0.33...v0.0.34
v0.0.33
v0.0.32
What's Changed
Docs: https://atproto.blue/en/latest/text_builder.html
Create rich text using TexBuilder:
from atproto.utils import TextBuilder
text_builder = TextBuilder()
text_builder.tag('This is a rich message. ', 'atproto')
text_builder.text('I can mention ')
text_builder.mention('account', 'did:plc:kvwvcn5iqfooopmyzvb4qzba')
text_builder.text(' and add clickable ')
text_builder.link('link', 'https://atproto.blue/')
or
from atproto.utils import TextBuilder
text_builder = TextBuilder().text('Test msg using ').link('Python SDK', 'https://atproto.blue/')
and send it
from atproto import Client
from atproto.utils import TextBuilder
client = Client()
client.send_post(TextBuilder().link('Python SDK', 'https://atproto.blue/'))
- Lock dependencies by major version only by @MarshalX in #195
- Fix parsing of lexicon procedure parameters by @MarshalX in #196
- Update lexicons fetched from ffe39aa committed 2023-12-08T21:32:06Z by @MarshalX in #197
- Update code snippets in README by @MarshalX in #198
- Update changelog for v0.0.31 by @MarshalX in #191
Full Changelog: v0.0.31...v0.0.32
v0.0.31
v0.0.30
What's Changed
- Add Python 3.12; migrate from black to ruff format by @MarshalX in #177
- Async Firehose Client: block on make message handler call, add on error callback by @DXsmiley in #157
- Downgrade sphinxext-opengraph to clean up the tree of dependencies (including vulnerable) by @MarshalX in #179
- Update lexicons fetched from 46b108c committed 2023-10-26T22:29:51Z by @MarshalX in #178
- Update lexicons fetched from 772736a committed 2023-11-02T20:16:26Z by @MarshalX in #182
- Update changelog for v0.0.29 by @MarshalX in #173
- Fix type hint of OnMessageCallback (Firehose client) by @MarshalX in #183
- Fix dependency groups by @MarshalX in #180
Full Changelog: v0.0.29...v0.0.30
v0.0.29
What's Changed
- Make codegen deterministic by @DXsmiley in #162
- Add TypedDict for params and data arguments; add type hint for kwargs by @DXsmiley in #166
- Update lexicons fetched from 41ee177 committed 2023-09-27T21:08:58Z by @MarshalX in #172
- Update changelog for v0.0.28 by @MarshalX in #156
New Contributors
Full Changelog: v0.0.28...v0.0.29
v0.0.28
What's Changed
- Add
update_params
method to firehose clients to fix utilizing the old state on reconnecting by @MarshalX in #149 - Add the ability to export and import session string by @MarshalX in #154
- Add the ability to pass
base_uri
to Firehose clients by @MarshalX in #155 - Update lexicons fetched from 9879ca9 committed 2023-09-14T20:24:48Z by @MarshalX in #150
- Update changelog for v0.0.27 by @MarshalX in #146
Full Changelog: v0.0.27...v0.0.28
v0.0.27
What's Changed
- Add reposts support to the firehose process commits example by @MarshalX in #140
- Add snake to camel and camel to snake case conversion support for DotDict wrapper by @MarshalX in #143
- Update lexicons fetched from 07bb0da committed 2023-09-12T17:37:57Z by @MarshalX in #144
- Update dependencies by @MarshalX in #145
Full Changelog: v0.0.26...v0.0.27