Metadata-Version: 2.1
Name: activitypub
Version: 0.0.2
Summary: A general Python ActivityPub library
Home-page: https://github.com/dsblank/activitypub
Author: Douglas S. Blank
Author-email: doug.blank@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Framework :: IPython
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3

activitypub
===========

| This is a Python library to use with
| `ActivityPub <https://en.wikipedia.org/wiki/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

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:

.. code:: python

    >>> 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 MongDB.

activitypub is targeting the following web frameworks:

-  Flask
-  Tornado

Others can be supported. Please ask!

The activitypub webservice API is based on Flask's.


