Change Log¶
Version 0.0.65¶
08.12.2025
Migrate to PEP 621 (use
projectsection inpyproject.toml) by @MarshalX in https://github.com/MarshalX/atproto/pull/645Update lexicons fetched from 380aa3b committed 2025-12-08T14:47:20Z by @MarshalX in https://github.com/MarshalX/atproto/pull/643
Bump
urllib3and other deps by @MarshalX in https://github.com/MarshalX/atproto/pull/646
Version 0.0.64¶
01.12.2025
⚡ The underlying lib for CAR decoding got a x2 speed boost for your custom feeds and firehose in general! Update it now with pip install -U libipld. More info and benchmarks: https://github.com/MarshalX/python-libipld/releases/tag/v3.3.0
Add
leewayargument toverify_jwtfunction by @MarshalX in https://github.com/MarshalX/atproto/pull/638Add caching to model building functions and fix record model name resolution in refs by @MarshalX in https://github.com/MarshalX/atproto/pull/633
Update quickstart documentation to clarify base API URLs by @paulopperman in https://github.com/MarshalX/atproto/pull/635
Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/631 and https://github.com/MarshalX/atproto/pull/639
Fix pydantic field warnings for optional fields with constraints by @zzstoatzz in https://github.com/MarshalX/atproto/pull/630
Version 0.0.63¶
22.10.2025
Breaking changes
Drop support for Python 3.8 by @zzstoatzz in https://github.com/MarshalX/atproto/pull/605
Notes:
Since we updated
websocketslib to v15, which uses the new async client, differences in stability are possible. Please report your findings!Since we updated
pydanticlib, new strange warnings coming from it are possible. Please report your findings!
What’s Changed
Add Python 3.14 support by @MarshalX in https://github.com/MarshalX/atproto/pull/629
Update lexicons fetched by @MarshalX in https://github.com/MarshalX/atproto/pull/621 and https://github.com/MarshalX/atproto/pull/626
Update
websocketsto v15 by @zzstoatzz in https://github.com/MarshalX/atproto/pull/605Fix
httpxdeprecation warnings by @zzstoatzz in https://github.com/MarshalX/atproto/pull/614Fix
pydanticfield warnings for optional fields with constraints by @zzstoatzz in https://github.com/MarshalX/atproto/pull/627
Version 0.0.62¶
17.08.2025
❗ Next release will drop Python 3.8 support
Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/603, https://github.com/MarshalX/atproto/pull/607, https://github.com/MarshalX/atproto/pull/615, https://github.com/MarshalX/atproto/pull/617, https://github.com/MarshalX/atproto/pull/618
Bump h11 from 0.14.0 to 0.16.0 by @dependabot[bot] in https://github.com/MarshalX/atproto/pull/606
Bump urllib3 and requests by @MarshalX in https://github.com/MarshalX/atproto/pull/619
Fix codegen for cases where NSID contains V2 by @MarshalX in https://github.com/MarshalX/atproto/pull/611
Version 0.0.61¶
19.04.2025
Note: this release fixes the session refreshing issue broken by 0.0.60.
Fix headers overriding in
RequestBase -> get_headers()by @MarshalX in https://github.com/MarshalX/atproto/pull/601Update lexicons fetched from 0087dc1 committed 2025-04-18T19:46:42Z by @MarshalX in https://github.com/MarshalX/atproto/pull/599
Version 0.0.60¶
11.04.2025
Note: session refreshing was broken in this version. Please use 0.0.61 instead.
Add message reaction to the example of Direct Messages by @MarshalX in https://github.com/MarshalX/atproto/pull/595
Add
UnknownUnionModeltype by @MarshalX in https://github.com/MarshalX/atproto/pull/586Add
include_pinsargument toget_author_feedmethod ofClientby @maratsh in https://github.com/MarshalX/atproto/pull/583Add
auth_factor_tokenargument to theloginmethod to support Email 2FA by @MarshalX in https://github.com/MarshalX/atproto/pull/593Improve
AtUriby adding relative URIs support andmakemethod by @MarshalX in https://github.com/MarshalX/atproto/pull/592Improve a way to configure
HTTPXclient (timeouts, SSL, retry policies, etc.) by @MarshalX in https://github.com/MarshalX/atproto/pull/594Allow overriding of
Content-Typeheader by @MarshalX in https://github.com/MarshalX/atproto/pull/579Allow digits in the
NSID; fix edge cases for string format validation by @zzstoatzz in https://github.com/MarshalX/atproto/pull/572Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/562, https://github.com/MarshalX/atproto/pull/570, https://github.com/MarshalX/atproto/pull/567, https://github.com/MarshalX/atproto/pull/587, https://github.com/MarshalX/atproto/pull/591
Fix lexicon parsing for nested objects; apply a limited scope of types for properties of params by @MarshalX in https://github.com/MarshalX/atproto/pull/574
Fix models code generator with an empty union type by @MarshalX in https://github.com/MarshalX/atproto/pull/584
Fix the issue of session refreshing on session creation in Client by @betaprior in https://github.com/MarshalX/atproto/pull/582
Version 0.0.59¶
23.02.2025
Add support for the repository
#syncmessage in the subscribe repos firehose by @MarshalX in https://github.com/MarshalX/atproto/pull/556Add
chat.*andtools.*models to the main menu of documentation by @MarshalX in https://github.com/MarshalX/atproto/pull/551Allow SDK usage with
httpx0.28.x by @MarshalX in https://github.com/MarshalX/atproto/pull/553Allow SDK usage with
cryptographyv44 and v45 by @MarshalX in https://github.com/MarshalX/atproto/pull/554Improve mapping protocol of
DotDictby @MarshalX in https://github.com/MarshalX/atproto/pull/550Fix segfault in CAR decoding (firehose subscription) by @MarshalX in https://github.com/MarshalX/atproto/pull/552
Fix descriptions of array items in generated models by @MarshalX in https://github.com/MarshalX/atproto/pull/534
Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/555, https://github.com/MarshalX/atproto/pull/537, https://github.com/MarshalX/atproto/pull/539, https://github.com/MarshalX/atproto/pull/540, https://github.com/MarshalX/atproto/pull/546, https://github.com/MarshalX/atproto/pull/548
Version 0.0.58¶
25.01.2025
Add the ability to send an aspect ratio with
send_videoby @yamamotura in https://github.com/MarshalX/atproto/pull/521Automatically reconnect firehose clients after a period of inactivity (timeout for recv) by @p1timmy in https://github.com/MarshalX/atproto/pull/520
Allow sync
on_session_changecallbacks in an async client by @MarshalX in https://github.com/MarshalX/atproto/pull/531Update lexicons fetched from c0a75d3 committed 2025-01-21T18:49:02Z by @MarshalX in https://github.com/MarshalX/atproto/pull/529
Fix session sharing with all cloned client instances by @MarshalX in https://github.com/MarshalX/atproto/pull/531
Fix types for image aspect ratios in
send_imageandsend_imagesby @MarshalX in https://github.com/MarshalX/atproto/pull/531
Version 0.0.57¶
20.01.2025
Add opt-in strict string format validation by @zzstoatzz in https://github.com/MarshalX/atproto/pull/451
Add documentation for string formats; fix
at-identifierformat by @zzstoatzz in https://github.com/MarshalX/atproto/pull/491Add an example to quote a post with an image by @zzstoatzz in https://github.com/MarshalX/atproto/pull/484
Fix grammar in the README by @ErikPohl444 in https://github.com/MarshalX/atproto/pull/492
Fix typo in the word
REFRESHby @tveastman in https://github.com/MarshalX/atproto/pull/500Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/490, https://github.com/MarshalX/atproto/pull/502, https://github.com/MarshalX/atproto/pull/503, https://github.com/MarshalX/atproto/pull/508, https://github.com/MarshalX/atproto/pull/516
Version 0.0.56¶
05.12.2024
Add ability to send aspect ratio with
send_imageandsend_imagesby @palmer-cl in https://github.com/MarshalX/atproto/pull/480Add
get_bsky_post_by_urlexample by @DGaffney in https://github.com/MarshalX/atproto/pull/424Add new
add_user_to_listadvanced example by @MarshalX in https://github.com/MarshalX/atproto/pull/435Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/481, https://github.com/MarshalX/atproto/pull/485, https://github.com/MarshalX/atproto/pull/458, https://github.com/MarshalX/atproto/pull/452, https://github.com/MarshalX/atproto/pull/429, https://github.com/MarshalX/atproto/pull/442
Fix
update_lexiconsworkflow by @MarshalX in https://github.com/MarshalX/atproto/pull/428Fix typo in item of
SessionEvent:'creat'->'create'by @zzstoatzz in https://github.com/MarshalX/atproto/pull/439Fix
clone()andwith_...()methods forAsyncClientby @MarshalX in https://github.com/MarshalX/atproto/pull/457Fix link to API docs for rate-limits in
atproto_client/auth.mdby @questionlp in https://github.com/MarshalX/atproto/pull/464
Version 0.0.55¶
24.10.2024
Add Python 3.13 support by @MarshalX in https://github.com/MarshalX/atproto/pull/416
Add support for
LexRefas a Schema type of inputs by @MarshalX in https://github.com/MarshalX/atproto/pull/412Replace
threading.Lockwith a boolean flag in_WebsocketClientby @Darkkekus in https://github.com/MarshalX/atproto/pull/402Update compatibility with Read The Docs by @MarshalX in https://github.com/MarshalX/atproto/pull/405
Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/403, https://github.com/MarshalX/atproto/pull/404, https://github.com/MarshalX/atproto/pull/413
Fix different cases of response header names by @MarshalX in https://github.com/MarshalX/atproto/pull/415
Version 0.0.54¶
13.09.2024
Add
Client.send_videohigh-level method by @Meorge in https://github.com/MarshalX/atproto/pull/395Add support for
known_valuesandenumof string properties in objects by @MarshalX in https://github.com/MarshalX/atproto/pull/391Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/394 and https://github.com/MarshalX/atproto/pull/398
Fix string definitions which use
know_valuesfield as closed enum by @MarshalX in https://github.com/MarshalX/atproto/pull/389Fix model field default value generating in cases when this is the only one constraint by @MarshalX in https://github.com/MarshalX/atproto/pull/393
Fix response parsing for JSON content type by @MarshalX in https://github.com/MarshalX/atproto/pull/397
Version 0.0.53¶
10.09.2024
⚡ Thanks to libipld 2.0.0 firehose performance should increase approximately by 30%! No changes from you are required! Check more detailed benchmark results here
Add libipld v2.0.0 support by @MarshalX in https://github.com/MarshalX/atproto/pull/315
Update lexicons fetched from e4d41d6 committed 2024-09-04T10:42:39Z by @MarshalX in https://github.com/MarshalX/atproto/pull/380
Fix firehose client stop by @MarshalX in https://github.com/MarshalX/atproto/pull/384
Version 0.0.52¶
01.09.2024
Add new asyncio implementation support for websockets 13.0; handle
ConnectionErrorexception; removeclose_timeoutby @MarshalX in https://github.com/MarshalX/atproto/pull/376Add process_commits_async example by @MarshalX in https://github.com/MarshalX/atproto/pull/377
Update process_commits example by @MarshalX in https://github.com/MarshalX/atproto/pull/374
Version 0.0.51¶
31.08.2024
Fix PDS auto-switching for self-hosted instances by @MarshalX in https://github.com/MarshalX/atproto/pull/370
Update lexicons fetched from bfbac24 committed 2024-08-30T18:18:43Z by @MarshalX in https://github.com/MarshalX/atproto/pull/372
Version 0.0.50¶
30.08.2024
Use
jiterinstead of the built-injsonmodule to improve performance by @MarshalX in https://github.com/MarshalX/atproto/pull/360Update docs example to fix empty blocks of commit by @MarshalX in https://github.com/MarshalX/atproto/pull/363
Bump
certififrom 2024.2.2 to 2024.7.4 by @dependabot in https://github.com/MarshalX/atproto/pull/355Bump
zippfrom 3.18.1 to 3.19.1 by @dependabot in https://github.com/MarshalX/atproto/pull/356Bump
setuptoolsfrom 69.5.1 to 70.0.0 by @dependabot in https://github.com/MarshalX/atproto/pull/357Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/358, https://github.com/MarshalX/atproto/pull/359, https://github.com/MarshalX/atproto/pull/364, https://github.com/MarshalX/atproto/pull/366, https://github.com/MarshalX/atproto/pull/367
Version 0.0.49¶
04.07.2024
Breaking changes for Direct Messages. Now you must create a client with a chat proxy. See the updated documentation.
Add automatically switching to PDS endpoint after login and session resume by @MarshalX in https://github.com/MarshalX/atproto/pull/344
Add atproto proxy and atproto labelers support by @MarshalX in https://github.com/MarshalX/atproto/pull/345 and https://github.com/MarshalX/atproto/pull/351
Add
BlobRefrepresentation conversations by @MarshalX in https://github.com/MarshalX/atproto/pull/348Fix
BlobRefcreation for JSON representation by @MarshalX in https://github.com/MarshalX/atproto/pull/340Fix
delete_postexample by @MarshalX in https://github.com/MarshalX/atproto/pull/342Fix
repostmethod by @MarshalX in https://github.com/MarshalX/atproto/pull/343Bump urllib3 from 2.2.1 to 2.2.2 by @dependabot in https://github.com/MarshalX/atproto/pull/346
Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/352, https://github.com/MarshalX/atproto/pull/350, https://github.com/MarshalX/atproto/pull/349, https://github.com/MarshalX/atproto/pull/347, https://github.com/MarshalX/atproto/pull/339, https://github.com/MarshalX/atproto/pull/337
Version 0.0.48¶
01.06.2024
Add Firehose Account message (use instead of Identity) by @MarshalX in https://github.com/MarshalX/atproto/pull/335
Update lexicons fetched from 255d5ea committed 2024-05-31T21:39:21Z by @MarshalX in https://github.com/MarshalX/atproto/pull/334
Version 0.0.47¶
22.05.2024
💬 Just shipped: Bluesky Direct Messages! https://atproto.blue/en/latest/dm.html
Breaking changes
Many of these changes were backward compatible for a few months with proper warnings.
Drop support for Python 3.7 by @MarshalX in https://github.com/MarshalX/atproto/pull/321
Delete deprecated record models called
Maininstead ofRecordby @MarshalX in https://github.com/MarshalX/atproto/pull/323Delete deprecated
SessionStringclass by @MarshalX in https://github.com/MarshalX/atproto/pull/324Delete deprecated
subjectargument of.like()and.repost()methods by @MarshalX in https://github.com/MarshalX/atproto/pull/325
What’s Changed
Add support for Direct Messages (Chats) by @MarshalX in https://github.com/MarshalX/atproto/pull/331
Add method to send post with multiple attached photos by @ryoryo25 in https://github.com/MarshalX/atproto/pull/313
Register chat (DM) namespace by @MarshalX in https://github.com/MarshalX/atproto/pull/330
Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/312, https://github.com/MarshalX/atproto/pull/314, https://github.com/MarshalX/atproto/pull/317, https://github.com/MarshalX/atproto/pull/322, https://github.com/MarshalX/atproto/pull/327, https://github.com/MarshalX/atproto/pull/328
Fix HTTP error handling by @MarshalX in https://github.com/MarshalX/atproto/pull/329
Bump requests from 2.31.0 to 2.32.2 by @dependabot in https://github.com/MarshalX/atproto/pull/332
Version 0.0.46¶
20.03.2024
Fix follow redirects by @MarshalX in https://github.com/MarshalX/atproto/pull/309
Update lexicons fetched from c28e374 committed 2024-03-19T16:26:14Z by @MarshalX in https://github.com/MarshalX/atproto/pull/310
Version 0.0.45¶
14.03.2024
Content labeling (moderation) is here! This update brings labeling data-stream support as well ozone.tools API!
Add labels firehose data stream by @MarshalX in https://github.com/MarshalX/atproto/pull/304
Register ozone.tools namespace as root namespace by @MarshalX in https://github.com/MarshalX/atproto/pull/303
Generate unique namespace classes to avoid collisions between lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/299
Update lexicons by @MarshalX in https://github.com/MarshalX/atproto/pull/297, https://github.com/MarshalX/atproto/pull/298, https://github.com/MarshalX/atproto/pull/302
Fix CIMON by @MarshalX in https://github.com/MarshalX/atproto/pull/300
Fix lexicon updater by @MarshalX in https://github.com/MarshalX/atproto/pull/301
Version 0.0.44¶
05.03.2024
Add identity firehose message by @MarshalX in https://github.com/MarshalX/atproto/pull/294
Update lexicons fetched from d643b5b committed 2024-02-23T22:59:47Z by @MarshalX in https://github.com/MarshalX/atproto/pull/293
Update lexicons fetched from c7e6ef0 committed 2024-03-05T19:27:25Z by @MarshalX in https://github.com/MarshalX/atproto/pull/295
Fix typo in README by @yallxe in https://github.com/MarshalX/atproto/pull/291
Version 0.0.43¶
22.02.2024
🎉 New lexicon introduces Account Migration between PDS. More info: https://github.com/bluesky-social/pds/blob/main/ACCOUNT_MIGRATION.md
Fix bytes response by @MarshalX in https://github.com/MarshalX/atproto/pull/287
Update lexicons fetched from 514aab9 committed 2024-02-22T15:43:58Z by @MarshalX in https://github.com/MarshalX/atproto/pull/288
Bump cryptography from 42.0.2 to 42.0.4 by @dependabot in https://github.com/MarshalX/atproto/pull/289
Version 0.0.42¶
17.02.2024
Add
send_ogp_link_card.py(Open Graph protocol) example by @OhkuboSGMS in https://github.com/MarshalX/atproto/pull/273Update lexicons fetched from 8c94979 committed 2024-02-16T02:12:39Z by @MarshalX in https://github.com/MarshalX/atproto/pull/279
Bump cryptography from 41.0.7 to 42.0.2 by @dependabot in https://github.com/MarshalX/atproto/pull/280
Fix pyright for pydantic aliases via
alias_generatorby @MarshalX in https://github.com/MarshalX/atproto/pull/277Fix
filterargument ofget_author_feedmethod in https://github.com/MarshalX/atproto/pull/278Fix pyright errors part 1 by @MarshalX in https://github.com/MarshalX/atproto/pull/278
Version 0.0.41¶
09.02.2024
🔥 New documentation page about auth and session reusing!
Add on session change callback by @MarshalX in https://github.com/MarshalX/atproto/pull/269
Update lexicons fetched from e4ec7af committed 2024-02-06T00:10:44Z by @MarshalX in https://github.com/MarshalX/atproto/pull/271
Version 0.0.40¶
04.02.2024
Syntax sugar for records is here! Check out how simple work with basic operations is:
from atproto import AtUri, Client, models
client = Client()
client.login('my-username', 'my-password')
# get records list
posts = client.app.bsky.feed.post.list(client.me.did, limit=10)
for uri, post in posts.records.items():
print(uri, post.text)
# get specific record
post = client.app.bsky.feed.post.get(client.me.did, AtUri.from_str(uri).rkey)
print(post.value.text)
# create new record
post_record = models.AppBskyFeedPost.Record(text='test record namespaces', created_at=client.get_current_time_iso())
new_post = client.app.bsky.feed.post.create(client.me.did, post_record)
print(new_post)
# delete record
deleted_post = client.app.bsky.feed.post.delete(client.me.did, AtUri.from_str(new_post.uri).rkey)
print(deleted_post)
⚠️ Record models have been renamed from “Main” to “Record”. Backward compatibility is provided but will be removed soon! ⚠️ Internals of High-Level Clients have been migrated to new syntax sugar. It could affect you because returned models are changed but the fields are the same.
Add record syntax sugar with get, list, create, and delete methods by @MarshalX in https://github.com/MarshalX/atproto/pull/263
Rename record models from “Main” to “Record” by @MarshalX in https://github.com/MarshalX/atproto/pull/264
Integrate syntax sugar for repo operations upon records by @MarshalX in https://github.com/MarshalX/atproto/pull/266
Version 0.0.39¶
02.02.2024
⚠️ Using strong references in .like() and .repost() methods are deprecated. Use URI and CID arguments instead.
Use .like() and .repost() methods without strong reference by @MarshalX in https://github.com/MarshalX/atproto/pull/255
Allow Service URl as base URL by @MarshalX in https://github.com/MarshalX/atproto/pull/256
Improve URL detection in auto_hyperlinks example by @editor-syntax in https://github.com/MarshalX/atproto/pull/250
Simplify send_embed example by @MarshalX in https://github.com/MarshalX/atproto/pull/258
Update lexicons fetched from f023494 committed 2024-01-30T22:19:36Z by @MarshalX in https://github.com/MarshalX/atproto/pull/259
Delete release workflow by @MarshalX in https://github.com/MarshalX/atproto/pull/252
Add docs codegen check to GitHub Actions Workflow by @MarshalX in https://github.com/MarshalX/atproto/pull/260
Version 0.0.38¶
26.01.2024
Add lexicons updating automation using GitHub Actions by @MarshalX in https://github.com/MarshalX/atproto/pull/248
Update lexicons fetched from 8994d36 committed 2024-01-25T20:16:30Z by @MarshalX in https://github.com/MarshalX/atproto/pull/249
Update code snippet in README by @MarshalX in https://github.com/MarshalX/atproto/pull/245
Fix input data mutation in DotDict by @MarshalX in https://github.com/MarshalX/atproto/pull/246
Fix links to documentation by @MarshalX in https://github.com/MarshalX/atproto/pull/244
Version 0.0.37¶
12.01.2024
🎉 Welcome in 2024! User-specific custom feeds are here! This is a massive update with a lot of new implementations including Service JWT, signature validation, DID Keys, AtProtoData, and more! Huge docs restructuring is here too: https://atproto.blue
Code snippet: Authorized Custom Feed (user-specific results)
SDK:
Implement Service JWT by @MarshalX in https://github.com/MarshalX/atproto/pull/225
Implement AtprotoData and DID key formatting and parsing by @MarshalX in https://github.com/MarshalX/atproto/pull/227
Implement signature verification by @MarshalX in https://github.com/MarshalX/atproto/pull/232
Add tests for auth flow in custom feeds by @MarshalX in https://github.com/MarshalX/atproto/pull/236
Describe JWT payload according to RFC 7519 by @MarshalX in https://github.com/MarshalX/atproto/pull/235
Update lexicons fetched from 51fcba7 committed 2024-01-09T23:29:07Z by @MarshalX in https://github.com/MarshalX/atproto/pull/238
Fix AtUri hostname parsing with digits by @MarshalX in https://github.com/MarshalX/atproto/pull/229
Docs:
Enable pydocstyle rules by @MarshalX in https://github.com/MarshalX/atproto/pull/226
Cleanup docs of models by disabling aliases, schemes, validators, and list of fields by @MarshalX in https://github.com/MarshalX/atproto/pull/231
Improve documentation by @MarshalX in https://github.com/MarshalX/atproto/pull/234
Bump jinja2 from 3.1.2 to 3.1.3 by @dependabot in https://github.com/MarshalX/atproto/pull/230
Version 0.0.36¶
23.12.2023
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!
Version 0.0.35¶
21.12.2023
❗Breaking changes: SDK was split into many packages. This affects imports in your codebase. Read more
New SDK structure by @MarshalX in https://github.com/MarshalX/atproto/pull/214 and https://github.com/MarshalX/atproto/pull/216
Fix decoding of CAR root by @MarshalX in https://github.com/MarshalX/atproto/pull/213
Fix parsing of BlobRef in CBOR by @MarshalX in https://github.com/MarshalX/atproto/pull/215
Update lexicons fetched from 905743d committed 2023-12-20T14:49:21Z by @MarshalX in https://github.com/MarshalX/atproto/pull/217
Version 0.0.34¶
17.12.2023
Make SDK more backward and forward-compatible with protocol by @MarshalX in https://github.com/MarshalX/atproto/pull/207
Add plenty of new high-level methods by @MarshalX in https://github.com/MarshalX/atproto/pull/208
Breaking changes:
unlikenow accepts AT URI instead ofrecord_keyandprofile_identify
New methods:
get_postget_postsget_post_threadget_likesget_reposted_byget_timelineget_author_feedunrepostAKAdelete_reportfollowunfollowAKAdelete_followget_followsget_followersget_profileget_profilesmuteunmuteresolve_handleupdate_handleupload_blob
Migrate lexicon parser from dacite to pydantic; enable ruff ANN by @MarshalX in https://github.com/MarshalX/atproto/pull/206
Removed exceptions:
UnknownPrimitiveTypeErrorUnknownDefinitionTypeError
Renamed fields:
schema->schema_maxLength->max_length… and all other camelCase names now in snake_case
Version 0.0.33¶
13.12.2023
Update lexicons fetched from 0c54951 committed 2023-12-12T21:37:06Z by @MarshalX in https://github.com/MarshalX/atproto/pull/202
Update changelog for v0.0.32 by @MarshalX in https://github.com/MarshalX/atproto/pull/199
Version 0.0.32¶
11.12.2023
Add text builder as helper for constructing rich text by @MarshalX in https://github.com/MarshalX/atproto/pull/194
Lock dependencies by major version only by @MarshalX in https://github.com/MarshalX/atproto/pull/195
Fix parsing of lexicon procedure parameters by @MarshalX in https://github.com/MarshalX/atproto/pull/196
Update lexicons fetched from ffe39aa committed 2023-12-08T21:32:06Z by @MarshalX in https://github.com/MarshalX/atproto/pull/197
Update code snippets in README by @MarshalX in https://github.com/MarshalX/atproto/pull/198
Update changelog for v0.0.31 by @MarshalX in https://github.com/MarshalX/atproto/pull/191
Version 0.0.31¶
02.12.2023
Migrate firehose to new relay URI by @MarshalX in https://github.com/MarshalX/atproto/pull/190
Update lexicons fetched from 8d9b1f7 committed 2023-12-01T20:28:54Z by @MarshalX in https://github.com/MarshalX/atproto/pull/189
Update changelog for v0.0.30 by @MarshalX in https://github.com/MarshalX/atproto/pull/184
Version 0.0.30¶
06.11.2023
Add Python 3.12; migrate from black to ruff format by @MarshalX in https://github.com/MarshalX/atproto/pull/177
Async Firehose Client: block on make message handler call, add on error callback by @DXsmiley in https://github.com/MarshalX/atproto/pull/157
Downgrade sphinxext-opengraph to clean up the tree of dependencies (including vulnerable) by @MarshalX in https://github.com/MarshalX/atproto/pull/179
Update lexicons fetched from 46b108c committed 2023-10-26T22:29:51Z by @MarshalX in https://github.com/MarshalX/atproto/pull/178
Update lexicons fetched from 772736a committed 2023-11-02T20:16:26Z by @MarshalX in https://github.com/MarshalX/atproto/pull/182
Update changelog for v0.0.29 by @MarshalX in https://github.com/MarshalX/atproto/pull/173
Fix type hint of OnMessageCallback (Firehose client) by @MarshalX in https://github.com/MarshalX/atproto/pull/183
Fix dependency groups by @MarshalX in https://github.com/MarshalX/atproto/pull/180
Version 0.0.29¶
28.09.2023
Make codegen deterministic by @DXsmiley in https://github.com/MarshalX/atproto/pull/162
Add TypedDict for params and data arguments; add type hint for kwargs by @DXsmiley in https://github.com/MarshalX/atproto/pull/166
Update lexicons fetched from 41ee177 committed 2023-09-27T21:08:58Z by @MarshalX in https://github.com/MarshalX/atproto/pull/172
Update changelog for v0.0.28 by @MarshalX in https://github.com/MarshalX/atproto/pull/156
Version 0.0.28¶
16.09.2023
Add
update_paramsmethod to firehose clients to fix utilizing the old state on reconnecting by @MarshalX in https://github.com/MarshalX/atproto/pull/149Add the ability to export and import session string by @MarshalX in https://github.com/MarshalX/atproto/pull/154
Add the ability to pass
base_urito Firehose clients by @MarshalX in https://github.com/MarshalX/atproto/pull/155Update lexicons fetched from 9879ca9 committed 2023-09-14T20:24:48Z by @MarshalX in https://github.com/MarshalX/atproto/pull/150
Update changelog for v0.0.27 by @MarshalX in https://github.com/MarshalX/atproto/pull/146
Version 0.0.27¶
13.09.2023
Add reposts support to the firehose process commits example by @MarshalX in https://github.com/MarshalX/atproto/pull/140
Add snake to camel and camel to snake case conversion support for DotDict wrapper by @MarshalX in https://github.com/MarshalX/atproto/pull/143
Update lexicons fetched from 07bb0da committed 2023-09-12T17:37:57Z by @MarshalX in https://github.com/MarshalX/atproto/pull/144
Update dependencies by @MarshalX in https://github.com/MarshalX/atproto/pull/145
Version 0.0.26¶
08.09.2023
All models have been migrated to Pydantic v2. Fields constraints have been added. Decoding of DAG-CBOR, CID and CAR files has been migrated to the brand-new library libipld. This library is powered by Rust and is much faster than the previous implementation. Pydantic v2 also uses Rust in the core. This leads to a significant performance boost.
Firehose catch up benchmark:
The previous SDK version: 700 commits in 5 seconds.
After migration to Pydantic v2: 2650 commits in 5 seconds.
After migration to libipld: 20000 commits in 5 seconds.
Using pydantic v2 and libipld with multiprocessing: 30000 commits in 5 seconds.
The new release gives a 40x performance boost! But the cost is a lot of breaking changes.
Example of firehose consumer with multiprocessing: process_commits.py
Test stand for benchmarks: MacBook Pro 2021, Apple M1 Pro, 32 GB RAM, 450mbps connection speed, Python 3.8
❗Breaking changes
Python 3.7.0 has been dropped. The minimum supported version is now Python 3.7.1.
Camel cased fields are gone. Use snake case instead. For example,
createdAtis nowcreated_at.Root namespace has been fixed from
bskytoapp. For example,Client().bsky.feed.get_likesis nowClient().app.bsky.feed.get_likes.Using similar model instances as strong refs is not allowed anymore. Use
models.create_strong_refhelper function to convert refs (example).Creating model instances using positional arguments is no longer supported. Use keyword arguments instead. For example, thant’s not possible anymore
models.ComAtprotoIdentityResolveHandle.Params('marshal.dev'). Usemodels.ComAtprotoIdentityResolveHandle.Params(handle='marshal.dev')instead.Fields that conflict with reserved Pydantic names has _ (underscore) suffix. For example,
validationis nowvalidation_.DotDicthas been moved tomodels.dot_dict.Inheritance of base models has been changed. Please check new base classes.
Inheritance of
DotDicthas been changed. Please check the new base class.BlobRefmodel doesn’t containto_dict()method anymore.CIDclass has been reimplemented using libipld lib. It supports much less API._typefield of models has been renamed topy_type. Now it’s constant.leb128module has been removed.Type hint of
CIDhas been changed toCIDType.Type hint of
DotDicthas been changed toDotDictType.multiformatsanddag-cbordependencies have been removed.These reference classes have been removed:
ResponseReffromget_profile. Usemodels.AppBskyActorDefs.ProfileViewDetailedinstead.ResponseReffromget_moderation_action. Usemodels.ComAtprotoAdminDefs.ActionViewDetailinstead.ResponseReffromget_moderation_report. Usemodels.ComAtprotoAdminDefs.ReportViewDetailinstead.ResponseReffromget_record. Usemodels.ComAtprotoAdminDefs.RecordViewDetailinstead.ResponseReffromget_repo. Usemodels.ComAtprotoAdminDefs.RepoViewDetailinstead.ResponseReffromresolve_moderation_reports. Usemodels.ComAtprotoAdminDefs.ActionViewinstead.ResponseReffromreverse_moderation_action. Usemodels.ComAtprotoAdminDefs.ActionViewinstead.ResponseReffromtake_moderation_action. Usemodels.ComAtprotoAdminDefs.ActionViewinstead.ResponseReffromcreate_app_password. Usemodels.ComAtprotoServerCreateAppPassword.AppPasswordinstead.
These exceptions have been removed:
UnexpectedFieldError. UseModelErrorinstead.MissingValueError. UseModelErrorinstead.ModelFieldError. UseModelErrorinstead.WrongTypeError. UseModelErrorinstead.CBORDecodingError. UseDAGCBORDecodingErrorinstead.
New Features
Unit tests for model serialization and deserialization.
Nested dictionaries support in
DotDictmodels.DotDictmodels now support__getitem__and__setitem__methods.create_strong_refhelper function to convert ref-like models to strong refs.Fields constraints for models. Now you can see the max items count for the image array, max string length, etc.
Better documentation of models.
Minor Changes
Fixed nesting of
DotDictmodels.Fixed serialization of
Uniontypes.Fixed serialization of
Literaltypes.Fixed sending proper datetime values to the server.
Fixed printing tracebacks in the Firehose async client.
Fixed chaining of firehose exceptions.
Fixed locked and outdated
typing-extensionsdependency.Fixed passing of arguments to
ClientBase.
Version 0.0.25¶
30.08.2023
🔥 Bsky made breaking changes in models of firehose. This release fixes it
Update changelog for v0.0.24 by @MarshalX in https://github.com/MarshalX/atproto/pull/126
Update lexicons fetched from ad1fcf1 committed 2023-08-30T00:07:21Z by @MarshalX in https://github.com/MarshalX/atproto/pull/131
Version 0.0.24¶
15.08.2023
Add update profile example by @MarshalX in https://github.com/MarshalX/atproto/pull/120
Add automatic link (facet) detection example by @Jxck-S in https://github.com/MarshalX/atproto/pull/122
Update changelog for v0.0.23 by @MarshalX in https://github.com/MarshalX/atproto/pull/117
Update changelog by @MarshalX in https://github.com/MarshalX/atproto/pull/118
Update lexicons fetched from 244bf46 committed 2023-08-10T20:54:24Z by @MarshalX in https://github.com/MarshalX/atproto/pull/124
Update packages; fix CVE-2023-37920 (certifi) by @MarshalX in https://github.com/MarshalX/atproto/pull/125
Fix update profile example by @IamC8 in https://github.com/MarshalX/atproto/pull/121
Version 0.0.23¶
23.07.2023
❗ Delete get_or_create_model method (backward incompatible) by @MarshalX in https://github.com/MarshalX/atproto/pull/111
Add documentation for base models by @MarshalX in https://github.com/MarshalX/atproto/pull/109
Add import aliases for “models.utils” by @MarshalX in https://github.com/MarshalX/atproto/pull/111
Add str and repr for BlobRef by @MarshalX in https://github.com/MarshalX/atproto/pull/113
Add Firehose process commits example by @MarshalX in https://github.com/MarshalX/atproto/pull/114
Implement additional magic methods for DotDict by @MarshalX in https://github.com/MarshalX/atproto/pull/109
Make languages constants immutable by @MarshalX in https://github.com/MarshalX/atproto/pull/110
Fix get_model_as_dict for DotDict by @MarshalX in https://github.com/MarshalX/atproto/pull/111
Fix is_record_type for DotDict models by @MarshalX in https://github.com/MarshalX/atproto/pull/112
Fix access to unknown fields in DotDict by @MarshalX in https://github.com/MarshalX/atproto/pull/116
Update changelog for v0.0.21 by @MarshalX in https://github.com/MarshalX/atproto/pull/108
Version 0.0.22¶
23.07.2023
release has been yanked
Version 0.0.21¶
21.07.2023
Add dot notation for dictionaries by @MarshalX in https://github.com/MarshalX/atproto/pull/106
Fix unknown type that could be plain dictionary by @MarshalX in https://github.com/MarshalX/atproto/pull/105
Fix parsing of custom (extended) records by @MarshalX in https://github.com/MarshalX/atproto/pull/106
Fix a small typo in
README.mdby @ndrezn in https://github.com/MarshalX/atproto/pull/104Update lexicons fetched from b2ef386 committed 2023-07-20T16:00:51Z by @MarshalX in https://github.com/MarshalX/atproto/pull/107
Update changelog for v0.0.20 by @MarshalX in https://github.com/MarshalX/atproto/pull/103
Version 0.0.20¶
19.07.2023
Update changelog for v0.0.19 by @MarshalX in https://github.com/MarshalX/atproto/pull/99
Add pagination example using cursors by @ymdpharm in https://github.com/MarshalX/atproto/pull/93
Migrate to websockets lib (fixed all known issues with lost firehouse frames, reconnections and crashes) by @MarshalX in https://github.com/MarshalX/atproto/pull/101
Version 0.0.19¶
18.07.2023
Update changelog for v0.0.18 by @MarshalX in https://github.com/MarshalX/atproto/pull/92
Add posts langs support by @MarshalX in https://github.com/MarshalX/atproto/pull/96
Fix infinite loop of reconnections to Firehose by @MarshalX in https://github.com/MarshalX/atproto/pull/97
Update lexicons fetched from 775944e committed 2023-07-17T23:06:44Z by @MarshalX in https://github.com/MarshalX/atproto/pull/98
Version 0.0.18¶
16.07.2023
Update changelog for v0.0.17 by @MarshalX in https://github.com/MarshalX/atproto/pull/86
Fix is_record_type for dict record types by @joelghill in https://github.com/MarshalX/atproto/pull/88
Lower version of typing-extensions as possible; update ruff by @MarshalX in https://github.com/MarshalX/atproto/pull/90
Update lexicons fetched from b9ca76f committed 2023-07-14T23:05:56Z by @MarshalX in https://github.com/MarshalX/atproto/pull/91
Version 0.0.17¶
06.07.2023
Update changelog for v0.0.16 by @MarshalX in https://github.com/MarshalX/atproto/pull/82
Move the websocket client into part of the atproto package by @MarshalX in https://github.com/MarshalX/atproto/pull/84
Update lexicons fetched from e7a0d27 committed 2023-07-03T16:28:39Z by @MarshalX in https://github.com/MarshalX/atproto/pull/85
Version 0.0.16¶
01.07.2023
Update changelog for v0.0.15 by @MarshalX in https://github.com/MarshalX/atproto/pull/77
Update lexicons fetched from 0306f81 committed 2023-06-23T20:30:52Z by @MarshalX in https://github.com/MarshalX/atproto/pull/79
Lock ruff version in GHA workflow by @MarshalX in https://github.com/MarshalX/atproto/pull/81
Version 0.0.15¶
23.06.2023
Update changelog for v0.0.14 by @MarshalX in https://github.com/MarshalX/atproto/pull/70
Update Cimon by @MarshalX in https://github.com/MarshalX/atproto/pull/71
Update lexicons fetched from 84032a6 committed 2023-06-12T21:51:38Z by @MarshalX in https://github.com/MarshalX/atproto/pull/72
Update Ruff; make _MANDATORY_HEADERS private; fix issues by @MarshalX in https://github.com/MarshalX/atproto/pull/73
Disable Cimon fail-on-error flag by @MarshalX in https://github.com/MarshalX/atproto/pull/74
Update lexicons fetched from 2768fb9 committed 2023-06-20T14:36:09Z by @MarshalX in https://github.com/MarshalX/atproto/pull/75
Fix dynamic versioning build backend by @MarshalX in https://github.com/MarshalX/atproto/pull/76
Version 0.0.14¶
10.06.2023
Update changelog for v0.0.13 by @MarshalX in https://github.com/MarshalX/atproto/pull/60
Add Cimon in Detect Mode by @MarshalX in https://github.com/MarshalX/atproto/pull/63
Enable Cimon Prevent Mode by @MarshalX in https://github.com/MarshalX/atproto/pull/64
Add send_embed example by @MarshalX in https://github.com/MarshalX/atproto/pull/66
Update README by @MarshalX in https://github.com/MarshalX/atproto/pull/67
Update lexicons fetched from 8857fb0 committed 2023-06-09T13:21:09Z by @MarshalX in https://github.com/MarshalX/atproto/pull/68
Bump requests from 2.30.0 to 2.31.0 by @dependabot in https://github.com/MarshalX/atproto/pull/69
Version 0.0.13¶
03.06.2023
Update changelog for v0.0.12 by @MarshalX in https://github.com/MarshalX/atproto/pull/58
Update lexicons (add admin.rebaseRepo) fetched from 4a6c976 committed 2023-05-30T15:50:46Z by @MarshalX in https://github.com/MarshalX/atproto/pull/59
Version 0.0.12¶
01.06.2023
Update changelog for v0.0.11 by @MarshalX in https://github.com/MarshalX/atproto/pull/55
Add mypy; fix types; fix error handling of requests by @MarshalX in https://github.com/MarshalX/atproto/pull/56
Increase max message size in Firehose by @MarshalX in https://github.com/MarshalX/atproto/pull/57
Version 0.0.11¶
30.05.2023
Update changelog for v0.0.10 by @MarshalX in https://github.com/MarshalX/atproto/pull/52
Keep Firehose open on invalid CBOR or DAG-CBOR by @MarshalX in https://github.com/MarshalX/atproto/pull/54
Version 0.0.10¶
27.05.2023
Update changelog for v0.0.9 by @MarshalX in https://github.com/MarshalX/atproto/pull/42
Add CLI for codegen by @MarshalX in https://github.com/MarshalX/atproto/pull/43
Update lexicons fetched from 743eaf1 committed 2023-05-26T00:04:10Z by @MarshalX in https://github.com/MarshalX/atproto/pull/44
Add Ruff; init tests; fix code style and type hints by @MarshalX in https://github.com/MarshalX/atproto/pull/45
Move docs dependencies to separated group by @MarshalX in https://github.com/MarshalX/atproto/pull/46
Fix Ruff for root dir by @MarshalX in https://github.com/MarshalX/atproto/pull/48
Update lexicons fetched from c62964b committed 2023-05-26T00:22:05Z by @MarshalX in https://github.com/MarshalX/atproto/pull/49
Fix .gitignore by @MarshalX in https://github.com/MarshalX/atproto/pull/50
Custom feed generators by @MarshalX in https://github.com/MarshalX/atproto/pull/47
Fix firehose params by @MarshalX in https://github.com/MarshalX/atproto/pull/51
Version 0.0.9¶
25.05.2023
Update changelog for v0.0.8 by @MarshalX in https://github.com/MarshalX/atproto/pull/39
Add “delete_post” and “repost” methods by @codybraun in https://github.com/MarshalX/atproto/pull/40
Fix request error handling by @MarshalX in https://github.com/MarshalX/atproto/pull/41
Version 0.0.8¶
23.05.2023
update changelog for v0.0.7 by @MarshalX in https://github.com/MarshalX/atproto/pull/34
Fix duplication of field descriptions in docs by @MarshalX in https://github.com/MarshalX/atproto/pull/35
Add support for custom feeds. Update lexicons fetched from d661a60 committed 2023-05-23T05:02:36Z by @MarshalX in https://github.com/MarshalX/atproto/pull/36
Add Firehose (data streaming) by @MarshalX in https://github.com/MarshalX/atproto/pull/31
Add forgotten models by @MarshalX in https://github.com/MarshalX/atproto/pull/37
Fix link format in docs by @MarshalX in https://github.com/MarshalX/atproto/pull/38
Version 0.0.7¶
20.05.2023
update changelog for v0.0.6 by @MarshalX in https://github.com/MarshalX/atproto/pull/29
Update docs by @MarshalX in https://github.com/MarshalX/atproto/pull/30
Short typing import by @MarshalX in https://github.com/MarshalX/atproto/pull/32
Fix session refreshing by @MarshalX in https://github.com/MarshalX/atproto/pull/33
Version 0.0.6¶
19.05.2023
update changelog for v0.0.5 by @MarshalX in https://github.com/MarshalX/atproto/pull/24
Update docs domain; improve open graph by @MarshalX in https://github.com/MarshalX/atproto/pull/25
Don’t lock dependencies so strictly; add pyjwt by @MarshalX in https://github.com/MarshalX/atproto/pull/26
Add session refreshing by @MarshalX in https://github.com/MarshalX/atproto/pull/27
Update lexicons fetched from cf36b36 committed 2023-05-18T22:57:59Z by @MarshalX in https://github.com/MarshalX/atproto/pull/28
Version 0.0.5¶
17.05.2023
update changelog for v0.0.4 by @MarshalX in https://github.com/MarshalX/atproto/pull/14
Add CAR files support by @MarshalX in https://github.com/MarshalX/atproto/pull/17
Update lexicons fetched from 1cbffd6 committed 2023-05-12T21:45:15Z (lists, mute lists preferences, repo rebase, and more), by @MarshalX in https://github.com/MarshalX/atproto/pull/18
Fix spacing in examples by @prtolem in https://github.com/MarshalX/atproto/pull/16
bump version by @MarshalX in https://github.com/MarshalX/atproto/pull/19
Add PyPI publishing to release workflow by @MarshalX in https://github.com/MarshalX/atproto/pull/21
Dynamic versioning from Git Tags by @MarshalX in https://github.com/MarshalX/atproto/pull/22
fix creating of GitHub Release by @MarshalX in https://github.com/MarshalX/atproto/pull/23
Version 0.0.4¶
12.05.2023
update changes for 0.0.3 by @MarshalX in https://github.com/MarshalX/atproto/pull/10
Update logo by @MarshalX in https://github.com/MarshalX/atproto/pull/11
add example with rich text; fix generation of system type field by @MarshalX in https://github.com/MarshalX/atproto/pull/13
fix sending of facets
Version 0.0.3¶
08.05.2023
add GHA workflow to create release on tag creation by @roj1512 in https://github.com/MarshalX/atproto/pull/1
Add notifications example by @MarshalX in https://github.com/MarshalX/atproto/pull/2
simplify and fix process_notifications example by @MarshalX in https://github.com/MarshalX/atproto/pull/4
add ability to access to model’s fields by [] by @MarshalX in https://github.com/MarshalX/atproto/pull/5
add deserialization of records by @MarshalX in https://github.com/MarshalX/atproto/pull/6
add home_timeline and profile_posts examples by @MarshalX in https://github.com/MarshalX/atproto/pull/7
publish package with OpenID Connect by @MarshalX in https://github.com/MarshalX/atproto/pull/8
bump version to 0.0.3 by @MarshalX in https://github.com/MarshalX/atproto/pull/9
Version 0.0.2¶
06.05.2023
The first public release.