Skip to main content

A general Python ActivityPub library

Project description

This is a Python library to use with
ActivityPub. ActivityPub
is an API for an open, distributed, social network.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

activitypub-0.0.3.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

activitypub-0.0.3-py2.py3-none-any.whl (42.5 kB view details)

Uploaded Python 2 Python 3

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

Hashes for activitypub-0.0.3.tar.gz
Algorithm Hash digest
SHA256 81f02761097fa9bacb8490a1a6f8cf61ae96bc100c74775046ea441082b69510
MD5 0ccd064b8c1a604f925868db5c0c53c6
BLAKE2b-256 8075b2efd7c9a71c190ad2b10c5b01e841787a6466dea9946fa3846cd839a819

See more details on using hashes here.

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

Hashes for activitypub-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 68efb25c0f8a64ccab8f86302d9fc2d001a8ce164501bddd2218e69b582adbf7
MD5 141bae3aba6ab9ee0f35e1a046af6910
BLAKE2b-256 a842994effdea023d736eef62bd8a1ca02c26af3b8a945823fff06ddee309f90

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page