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.
Source Distribution
Built Distribution
File details
Details for the file activitypub-0.0.3.tar.gz
.
File metadata
- Download URL: activitypub-0.0.3.tar.gz
- Upload date:
- Size: 32.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81f02761097fa9bacb8490a1a6f8cf61ae96bc100c74775046ea441082b69510 |
|
MD5 | 0ccd064b8c1a604f925868db5c0c53c6 |
|
BLAKE2b-256 | 8075b2efd7c9a71c190ad2b10c5b01e841787a6466dea9946fa3846cd839a819 |
Provenance
File details
Details for the file activitypub-0.0.3-py2.py3-none-any.whl
.
File metadata
- Download URL: activitypub-0.0.3-py2.py3-none-any.whl
- Upload date:
- Size: 42.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68efb25c0f8a64ccab8f86302d9fc2d001a8ce164501bddd2218e69b582adbf7 |
|
MD5 | 141bae3aba6ab9ee0f35e1a046af6910 |
|
BLAKE2b-256 | a842994effdea023d736eef62bd8a1ca02c26af3b8a945823fff06ddee309f90 |