A general Python ActivityPub library
Project description
Install
You can install the development version of activitypub with:
pip install git+git://github.com/dsblank/activitypub
or the last packaged version with:
pip install activitypub
To use with redis:
pip install redis redis_collections
OR to use with mongodb:
pip install pymongo
OR to use with SQLAlchemy:
pip install sqlalchemy
Abstractions
This module is designed to be a generally useful ActivityPub library in Python. It targets three different levels of use:
- ActivityPub object API
- ActivityPub database API
- Webserver API
These levels can be used independently, or together. They can best be used together using a Manager:
>>> from activitypub.manager import Manager >>> from activitypub.database import ListDatabase >>> db = ListDatabase() >>> manager = Manager(database=db) >>> p = manager.Person(id="alyssa") >>> p.to_dict() {'@context': 'https://www.w3.org/ns/activitystreams', 'endpoints': {}, 'followers': 'https://example.com/alyssa/followers', 'following': 'https://example.com/alyssa/following', 'id': 'https://example.com/alyssa', 'inbox': 'https://example.com/alyssa/inbox', 'liked': 'https://example.com/alyssa/liked', 'likes': 'https://example.com/alyssa/likes', 'outbox': 'https://example.com/alyssa/outbox', 'type': 'Person', 'url': 'https://example.com/alyssa'} >>> db.actors.insert_one(p.to_dict()) >>> db.actors.find_one({"id": 'https://example.com/alyssa'}) {'@context': 'https://www.w3.org/ns/activitystreams', 'endpoints': {}, 'followers': 'https://example.com/alyssa/followers', 'following': 'https://example.com/alyssa/following', 'id': 'https://example.com/alyssa', 'inbox': 'https://example.com/alyssa/inbox', 'liked': 'https://example.com/alyssa/liked', 'likes': 'https://example.com/alyssa/likes', 'outbox': 'https://example.com/alyssa/outbox', 'type': 'Person', 'url': 'https://example.com/alyssa', '_id': ObjectId('5b579aee1342a3230c18fbf7')}
activitypub supports the following databases:
- MongoDB
- SQL dialects — any that that sqlalchemy supports, including:
- SQLite (including in-memory)
- Firebird
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- Sybase
- … and many more!
- An in-memory, JSON-based database for testing
- Redis
The activitypub database API is a subset of the MongoDB.
activitypub is targeting the following web frameworks:
- Flask
- Tornado
Others can be supported. Please ask!
The activitypub webservice API is based on Flask’s.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size activitypub-0.0.3-py2.py3-none-any.whl (42.5 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Filename, size activitypub-0.0.3.tar.gz (32.0 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for activitypub-0.0.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68efb25c0f8a64ccab8f86302d9fc2d001a8ce164501bddd2218e69b582adbf7 |
|
MD5 | 141bae3aba6ab9ee0f35e1a046af6910 |
|
BLAKE2-256 | a842994effdea023d736eef62bd8a1ca02c26af3b8a945823fff06ddee309f90 |