Atproto

Latest version: v0.0.59

Safety actively analyzes 710445 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 20

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) ](https://github.com/MarshalX/bluesky-feed-generator/pull/10)

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

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

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](https://github.com/MarshalX/python-libipld/releases/tag/v2.0.0)**

* 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

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

09.02.2024

**[🔥 New documentation page about auth and session reusing!](https://atproto.blue/en/latest/atproto_client/auth.html)**

* 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

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](https://github.com/MarshalX/python-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](https://github.com/MarshalX/python-libipld): **20000 commits in 5 seconds**.
- Using pydantic v2 and [libipld](https://github.com/MarshalX/python-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](https://github.com/MarshalX/atproto/blob/main/examples/firehose/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, `createdAt` is now `created_at`.
- Root namespace has been fixed from `bsky` to `app`. For example, `Client().bsky.feed.get_likes` is now `Client().app.bsky.feed.get_likes`.
- Using similar model instances as strong refs is not allowed anymore. Use `models.create_strong_ref` helper function to convert refs ([example](https://github.com/MarshalX/atproto/blob/e20b8072f383628ea1a5ff306fc8625e1adf4072/examples/like_post.py#L11)).
- 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')`. Use `models.ComAtprotoIdentityResolveHandle.Params(handle='marshal.dev')` instead.
- Fields that conflict with reserved Pydantic names has _ (underscore) suffix. For example, `validation` is now `validation_`.
- `DotDict` has been moved to `models.dot_dict`.
- Inheritance of base models has been changed. Please check new base classes.
- Inheritance of `DotDict` has been changed. Please check the new base class.
- `BlobRef` model doesn't contain `to_dict()` method anymore.
- `CID` class has been reimplemented using [libipld](https://github.com/MarshalX/python-libipld) lib. It supports much less API.
- `_type` field of models has been renamed to `py_type`. Now it's constant.
- `leb128` module has been removed.
- Type hint of `CID` has been changed to `CIDType`.
- Type hint of `DotDict` has been changed to `DotDictType`.
- `multiformats` and `dag-cbor` dependencies have been removed.
- These reference classes have been removed:
- `ResponseRef` from `get_profile`. Use `models.AppBskyActorDefs.ProfileViewDetailed` instead.
- `ResponseRef` from `get_moderation_action`. Use `models.ComAtprotoAdminDefs.ActionViewDetail` instead.
- `ResponseRef` from `get_moderation_report`. Use `models.ComAtprotoAdminDefs.ReportViewDetail` instead.
- `ResponseRef` from `get_record`. Use `models.ComAtprotoAdminDefs.RecordViewDetail` instead.
- `ResponseRef` from `get_repo`. Use `models.ComAtprotoAdminDefs.RepoViewDetail` instead.
- `ResponseRef` from `resolve_moderation_reports`. Use `models.ComAtprotoAdminDefs.ActionView` instead.
- `ResponseRef` from `reverse_moderation_action`. Use `models.ComAtprotoAdminDefs.ActionView` instead.
- `ResponseRef` from `take_moderation_action`. Use `models.ComAtprotoAdminDefs.ActionView` instead.
- `ResponseRef` from `create_app_password`. Use `models.ComAtprotoServerCreateAppPassword.AppPassword` instead.
- These exceptions have been removed:
- `UnexpectedFieldError`. Use `ModelError` instead.
- `MissingValueError`. Use `ModelError` instead.
- `ModelFieldError`. Use `ModelError` instead.
- `WrongTypeError`. Use `ModelError` instead.
- `CBORDecodingError`. Use `DAGCBORDecodingError` instead.

**New Features**
- Unit tests for model serialization and deserialization.
- Nested dictionaries support in `DotDict` models.
- `DotDict` models now support `__getitem__` and `__setitem__` methods.
- `create_strong_ref` helper 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 `DotDict` models.
- Fixed serialization of `Union` types.
- Fixed serialization of `Literal` types.
- 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-extensions` dependency.
- Fixed passing of arguments to `ClientBase`.

Page 7 of 20

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.