Skip to content

Releases: MarshalX/atproto

v0.0.36

23 Dec 15:35
2b617c3
Compare
Choose a tag to compare

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

21 Dec 18:57
ba0a47d
Compare
Choose a tag to compare

❗Breaking changes

SDK was split into many packages. This affects imports in your codebase. Read more

What's Changed

Full Changelog: v0.0.34...v0.0.35

v0.0.34

17 Dec 16:48
0d7cd96
Compare
Choose a tag to compare

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 of record_key and profile_identify
    • New methods:
      • get_post
      • get_posts
      • get_post_thread
      • get_likes
      • get_reposted_by
      • get_timeline
      • get_author_feed
      • unrepost AKA delete_report
      • follow
      • unfollow AKA delete_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

Full Changelog: v0.0.33...v0.0.34

v0.0.33

13 Dec 09:39
4dc0695
Compare
Choose a tag to compare

What's Changed

  • Update lexicons fetched from 0c54951 committed 2023-12-12T21:37:06Z by @MarshalX in #202
  • Update changelog for v0.0.32 by @MarshalX in #199

Full Changelog: v0.0.32...v0.0.33

v0.0.32

11 Dec 13:41
2d1384e
Compare
Choose a tag to compare

What's Changed

  • Add text builder as helper for constructing rich text by @MarshalX in #194

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/'))

Full Changelog: v0.0.31...v0.0.32

v0.0.31

02 Dec 22:39
6c2bbf7
Compare
Choose a tag to compare

What's Changed

  • Migrate firehose to new relay URI by @MarshalX in #190
  • Update lexicons fetched from 8d9b1f7 committed 2023-12-01T20:28:54Z by @MarshalX in #189
  • Update changelog for v0.0.30 by @MarshalX in #184

Full Changelog: v0.0.30...v0.0.31

v0.0.30

06 Nov 10:43
dacea8f
Compare
Choose a tag to compare

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

28 Sep 12:58
31eea9a
Compare
Choose a tag to compare

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

16 Sep 14:20
9692ee1
Compare
Choose a tag to compare

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

13 Sep 19:25
ed27433
Compare
Choose a tag to compare

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