{ "info": { "author": "Greger Wedel", "author_email": "support@greger.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: System :: Distributed Computing" ], "description": "======================================================\nREADME - actingweb - an ActingWeb Library\n======================================================\nThis is a python library implementation showcasing the REST-based `ActingWeb `_\ndistributed micro-services model. A typical use case is bot to bot communication on a peer to peer level.\nIt serves as the reference implementation for the `ActingWeb REST protocol\nspecification `_ for\nhow such micro-services interact.\n\nRepository and documentation\n----------------------------\n\nThe library is available as a PYPI library and installed with `pip install actingweb`. Project home is at\n`https://pypi.org/project/actingweb/ `_.\n\nThe git repository for this library can be found at\n`https://bitbucket.org/gregerw/actingweb `_.\n\nThe latest documentation for the released version (release branch) of this library can be found at \n`http://actingweb.readthedocs.io/ `_.\n\nThe master branch of the library has the latest features and bug fixes and the updated documentation can be found at\n`http://actingweb.readthedocs.io/en/master `_.\n\n\nWhy use actingweb?\n---------------------\nActingWeb is well suited for applications where each individual user's data and functionality both needs high degree\nof security and privacy AND high degree of interactions with the outside world. Typical use cases are Internet of Things\nwhere each user's \"Thing\" becomes a bot that interacts with the outside world, as well as bot to bot\ncommunication where each user can get a dedicated, controllable bot talking to other user's bots.\n\nAs a developer, you get a set of out of the box functionality from the ActingWeb library:\n\n- an out-of-the-box REST bot representing each user's thing, service, or functionality (your choice)\n- a way to store and expose data over REST in a very granular way using properties\n- a trust system that allows creation of relationships the user's bot on the user level\n- a subscription system that allows one bot (user) to subscribe to another bot's (user's) changes\n- an oauth framework to tie the bot to any other API service and thus allow user to user communication using\n individual user's data from the API service\n\nThere is a high degree of configurability in what to expose, and although the ActingWeb specification specifies\na protocol set to allow bots from different developers to talk to each other, not all functionality needs to be\nexposed.`\n\nEach user's indvidual bot is called an ``actor`` and this actor has its own root URL where its data and services are\nexposed. See below for further details.\n\nFeatures of actingweb library\n----------------------------------\nThe latest code in master is at all times deployed to\n`https://actingwebdemo.greger.io/ `_\nIt has implemented a simple sign-up page as a front-end to a REST-based factory URL that will instantiate a\nnew actor with a guid to identify the actor. The guid is then embedded in the actor's root URL, e.g.\n``https://actingwebdemo.greger.io/9f1c331a3e3b5cf38d4c3600a2ab5d54``.\n\nIf you try to create an actor, you will get to a simple web front-end where you can set the actor's data\n(properties) and delete the actor. You can later access the actor (both /www and REST) by using the Creator\nyou set as username and the passphrase you get when creating the actor and log in.\n\n**acting-web-gae-library** is a close to complete implementation of the full ActingWeb specification where all\nfunctionality can be accessed through the actor's root URL (e.g.\n``https://actingwebdemo.greger.io/9f1c331a3e3b5cf38d4c3600a2ab5d54``):\n\n- ``/properties``: attributed/value pairs as flat or nested json can be set, accessed, and deleted to store this actor's data\n- ``/meta``: a publicly available json structure allowing actor's to discover each other's capabilities\n- ``/trust``: access to requesting, approving, and managing trust relationships with other actors of either the same type or any other actor \"talking actingweb\"\n- ``/subscriptions``: once a trust relationship is set up, this path allows access to establishing, retrieving, and managing subscriptions that are based on paths and identified with target, sub-target, and resource, e.g. ``/resources/folders/12345``\n- ``/callbacks``: used for verification when establishing trust/subscriptions, to receive callbacks on subscriptions, as well as a programming hook to process webhooks from 3rd party services\n- ``/resources``: a skeleton to simplify exposure of any type of resource (where /properties is not suited)\n- ``/oauth``: used to initiate a www-based oauth flow to tie the actor to a specific OAuth user and service. Available if OAuth is turned on and a 3rd party OAuth service has been configured in config.py. /www will also be redirected to /oauth (*OAuth is not enabled in the online actingwebdemo mini-application*)\n\n**Sidenote**: The **actingweb library** also implements a simple mechanism for protecting the /www path with oauth\n(not in the specification). On successful OAuth authorisation, it will set a browser cookie to the oauth\ntoken. This is not used in the inline demo and requires also that the identity of the user authorising OAuth\naccess is the same user already tied to the instantiated actor. There is a programming hook that allows such\nverification as part of the OAuth flow, but it is not enabled in the actingwebdemo mini-application.\n\nOther applications using the actingweb library\n---------------------------------------------------\nThere is also another demo application available for `Cisco Webex Teams `_\n. It uses the actingweb library to implement a Webex Teams bot and integration. If you have signed up as a\nCisco Webex Teams user, you can try it out by sending a message to armyknife@webex.bot.\n\nMore details about the Army Knife can be found on `this blog `_\n.\n\nThe ActingWeb Model\n-------------------\nThe ActingWeb micro-services model and protocol defines a bot-to-bot and micro-service-to-micro-service\ncommunication that allows extreme distribution of data and functionality. This makes it very suitable for\nholding small pieces of sensitive data on behalf of a user or \"things\" (as in Internet of Things).\nThese sensitive data can then be used and shared in a very granular and controlled way through the secure\nand distributed ActingWeb REST protocol. This allows you to expose e.g. your location data from your phone\ndirectly on the Internet (protected by a security framework) and to be used by other services **on your choosing**.\nYou can at any time revoke access to your data for one particular service without influencing anything else.\n\nThe ActingWeb Micro-Services Model\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nThe programming model in ActingWeb is based on an extreme focus on only representing one small set of functionality\nand for only one user or entity. This is achieved by not allowing any other way of calling the service\n(in ActingWeb called a \"mini-application\") than through a user and the mini-app's REST interface (a user's\ninstance of a mini-application is called an *actor* in ActingWeb). From a practical point of view, getting xyz's\nlocation through the REST protocol is as simple as doing a GET ``http://mini-app-url/xyz/properties/location``.\n\nThere is absolutely no way of getting xyz's and yyz's location information in one request, and the security model\nenforces access based on user (i.e. actor), so even if you have access to\n``http://mini-app-url/xyz/properties/location``, you may not have access to\n``http://mini-app-url/yyz/properties/location``.\n\nAny functionality desired across actors, for example xyz sharing location information with yyz\n**MUST** be done through the ActingWeb REST protocol. However, since the ActingWeb service-to-service\nREST protocol is standardised, **any** service implementing the protocol can easily share data with other services.\n\nThe ActingWeb REST Protocol\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nThe ActingWeb REST protocol specifies a set of default endpoints (like ``/properties``, ``/trust``,\n``/subscriptions`` etc) that are used to implement the service-to-service communication, as well as a set of\nsuggested endpoints (like ``/resources``, ``/actions`` etc) where the mini-applications can expose their own\nfunctionality. All exchanges are based on REST principles and a set of flows are built into the protocol that\nsupport exchanging data, establishing trust between actors (per actor, not per mini-application), as well as\nsubscribing to changes.\n\nThe ActingWeb Security Model\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nThe security model is based on trust between actors, not mini-applications. This means that each instance of the\nmini-application holding the sensitive data for one particular person or thing **must** be connected through a trust\nrelationship to another ActingWeb actor, but it doesn't have to be a mini-application of the same type (like location\nsharing), but could be a location sharing actor establishing a trust relationship with 911 authorities to\nallow emergency services to always be able to look you up.\n\nThere are currently two ways of establishing trust between actors: either through an explicit OAuth flow where an\nactor is tied to somebody's account somewhere else (like Google, Box.com, etc) or through a flow where one actor\nrequests a trust relationship with another, which then needs to be approved either interactively by a user or\nprogramatically through the REST interface.\n\nSee `http://actingweb.org/ `_ for more information.\n\nBuilding and installing\n------------------------\n\n::\n\n # Build source and binary distributions:\n python setup.py sdist bdist_wheel --universal\n\n # Upload to test server:\n python setup.py sdist upload -r pypitest\n twine upload --repository pypitest dist/actingweb-a.b.c.*\n\n # Upload to production server:\n twine upload dist/actingweb-a.b.c.*\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://actingweb.org", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "actingweb", "package_url": "https://pypi.org/project/actingweb/", "platform": "", "project_url": "https://pypi.org/project/actingweb/", "project_urls": { "Homepage": "http://actingweb.org" }, "release_url": "https://pypi.org/project/actingweb/2.5.1/", "requires_dist": [ "pynamodb", "boto3", "urlfetch" ], "requires_python": ">=2.7", "summary": "The official ActingWeb library", "version": "2.5.1" }, "last_serial": 4753277, "releases": { "2.1.0": [ { "comment_text": "", "digests": { "md5": "135ea746f11594ec7558cb5d145d143e", "sha256": "5fe2441f598cc97bc855289014b9d4db2b4b2358fc8a2fa5d101969abd670d26" }, "downloads": -1, "filename": "actingweb-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "135ea746f11594ec7558cb5d145d143e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "<3", "size": 29261, "upload_time": "2017-11-05T08:05:36", "url": "https://files.pythonhosted.org/packages/de/38/dd3037f6415df49b72556d4bfb087868927fed10b7149169837b371819e8/actingweb-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8b1eae5ac18ddb20adf1ecfd8f512c3", "sha256": "e13ba2bd7f5f25e9967c5c047ed4d1005fdc9034888bcfefd7c92ae808b065c9" }, "downloads": -1, "filename": "actingweb-2.1.0.tar.gz", "has_sig": false, "md5_digest": "a8b1eae5ac18ddb20adf1ecfd8f512c3", "packagetype": "sdist", "python_version": "source", "requires_python": "<3", "size": 60604, "upload_time": "2017-10-07T14:49:05", "url": "https://files.pythonhosted.org/packages/2c/6d/c9196adc3efaeb73435c38ea9c3f991aac426bc94dd5c04db2d2d9b79b85/actingweb-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "aa36b54ae41802537be372ddd1ca2c9c", "sha256": "f41098809b8c726d39043fe42107d98a71ad7d4fca531c6156aa1c1cdea3d9c7" }, "downloads": -1, "filename": "actingweb-2.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "aa36b54ae41802537be372ddd1ca2c9c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "<3", "size": 29262, "upload_time": "2017-11-05T08:06:32", "url": "https://files.pythonhosted.org/packages/ee/d4/4a817b0de3819e5995e04dc2f28cfc5e380986e10c016741994e49af5ebb/actingweb-2.1.1-py2-none-any.whl" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "cf08c1951057a9aca9050a0e4cdb4765", "sha256": "acad506ef28395a388b59ced792ae0a3301632f3f1c5eab03db88965ed17e77d" }, "downloads": -1, "filename": "actingweb-2.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "cf08c1951057a9aca9050a0e4cdb4765", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "<3", "size": 63104, "upload_time": "2017-11-12T09:17:03", "url": "https://files.pythonhosted.org/packages/b9/98/1226b68b7fed5ba56c82e047eceaecbec49954a0e80cd018635e0b57af05/actingweb-2.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91ac8b745493cf9edb725ff6bc74e340", "sha256": "3f6aea23e9fc2d27e0383c4028e9e051f5c4be5e8b756bd8f27759d7eba33351" }, "downloads": -1, "filename": "actingweb-2.1.2.tar.gz", "has_sig": false, "md5_digest": "91ac8b745493cf9edb725ff6bc74e340", "packagetype": "sdist", "python_version": "source", "requires_python": "<3", "size": 83980, "upload_time": "2017-11-12T09:17:04", "url": "https://files.pythonhosted.org/packages/31/c6/5ee003e941fd1a12c7fc29fe5aa4fa7f8251a640546fcb4986c9ef0b47e0/actingweb-2.1.2.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "6a136238241ed5281e3f5acc6d4ce75a", "sha256": "801f2d8885c1393dfe9965a81165a00ff2b6e9af93b6f53fcbc8318076f99ebb" }, "downloads": -1, "filename": "actingweb-2.2.0.macosx-10.6-intel.tar.gz", "has_sig": false, "md5_digest": "6a136238241ed5281e3f5acc6d4ce75a", "packagetype": "sdist", "python_version": "source", "requires_python": "<3", "size": 115022, "upload_time": "2017-11-25T19:51:27", "url": "https://files.pythonhosted.org/packages/0b/37/f9aa8192c40f33f212cd6454aa117410648ab9bb85376c00b2a56fa43eef/actingweb-2.2.0.macosx-10.6-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "4b1f573c3a3d0eb34d85119d45094863", "sha256": "a724bd54d3d80515cd9ab745001797690b6f27bf6a320ae095ca46198cfd6a4d" }, "downloads": -1, "filename": "actingweb-2.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4b1f573c3a3d0eb34d85119d45094863", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "<3", "size": 73476, "upload_time": "2017-11-25T20:05:01", "url": "https://files.pythonhosted.org/packages/f2/b1/945eb8da64578ba7e642789868fee82afbfde0504f50a822760704119b42/actingweb-2.2.0-py2-none-any.whl" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "692537a61767e340588db8c897a248cb", "sha256": "a975a15f9c29aaccf400ff28fde699e282d93d51e4a64f0f1bac726fbfdef669" }, "downloads": -1, "filename": "actingweb-2.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "692537a61767e340588db8c897a248cb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "<3", "size": 73656, "upload_time": "2017-12-03T07:04:19", "url": "https://files.pythonhosted.org/packages/47/48/b8249ee26d8f7cf5f4d0dc30379312097877843b33fe2d1ec684192dcad5/actingweb-2.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ca90d4ed20f81f010e22f5b64298490", "sha256": "d389514cd821a6a870ae069f154a812a445aaf8ff6682fd82606b35171f6729f" }, "downloads": -1, "filename": "actingweb-2.2.1.tar.gz", "has_sig": false, "md5_digest": "8ca90d4ed20f81f010e22f5b64298490", "packagetype": "sdist", "python_version": "source", "requires_python": "<3", "size": 90469, "upload_time": "2017-12-03T07:04:22", "url": "https://files.pythonhosted.org/packages/82/2b/0155b0839334a68318833f1e1ef61cc6f49e1b49d33706434b1c77ec5f07/actingweb-2.2.1.tar.gz" } ], "2.2.2": [ { "comment_text": "", "digests": { "md5": "2d922799f9400ce776b69ea34cd9bcd1", "sha256": "2e67dd939a12eecf48b54479762ed1272e2c4f6df760950a46888a9b3a87f99f" }, "downloads": -1, "filename": "actingweb-2.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2d922799f9400ce776b69ea34cd9bcd1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "<3", "size": 73691, "upload_time": "2017-12-03T13:23:55", "url": "https://files.pythonhosted.org/packages/f2/1c/0fc92858e2b1632c5ea1050605f20049d1e0ee8b6709a11a47bd365c99cf/actingweb-2.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6302b210f18bd34023b863d8e01aa70b", "sha256": "79334d9706759983d204e89bfdb81c4a5b3da3937d90dda86e3486864e4c5f3b" }, "downloads": -1, "filename": "actingweb-2.2.2.tar.gz", "has_sig": false, "md5_digest": "6302b210f18bd34023b863d8e01aa70b", "packagetype": "sdist", "python_version": "source", "requires_python": "<3", "size": 90503, "upload_time": "2017-12-03T13:23:56", "url": "https://files.pythonhosted.org/packages/8d/81/e86bea21a4bf77f8e9d63009717528831177fcc5a9057ee54906708ed3a7/actingweb-2.2.2.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "4690baa412bb5682d54568fd538f54c2", "sha256": "cd4fe7cad847fff5159b302f8caeedda2602ab885797568385bb32c3cabc1f29" }, "downloads": -1, "filename": "actingweb-2.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4690baa412bb5682d54568fd538f54c2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "<3", "size": 74531, "upload_time": "2017-12-26T09:23:10", "url": "https://files.pythonhosted.org/packages/05/ad/531848c759295c80dbbe49e74440bd61ae307204788ceda8dc79cf66ff8e/actingweb-2.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "349f836c94de5622cae0001a47c879ba", "sha256": "41dbf4cf7270736dfb28ac9673021f87f91e0bfbcb654c00159d158aeacb8528" }, "downloads": -1, "filename": "actingweb-2.3.0.tar.gz", "has_sig": false, "md5_digest": "349f836c94de5622cae0001a47c879ba", "packagetype": "sdist", "python_version": "source", "requires_python": "<3", "size": 87788, "upload_time": "2017-12-26T09:23:12", "url": "https://files.pythonhosted.org/packages/48/b3/cfe4fdabf33804e1d11cc0f379e6b9cccf7d6ec4babe4688418ace743cb0/actingweb-2.3.0.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "b66b62477cca4cc1dab813dfe65900ae", "sha256": "625a0783f4f872d885144e1b8a7e12173d5e9aabc328e7e454aa8a452ee063f6" }, "downloads": -1, "filename": "actingweb-2.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b66b62477cca4cc1dab813dfe65900ae", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7", "size": 70593, "upload_time": "2018-09-24T18:42:03", "url": "https://files.pythonhosted.org/packages/22/b8/b5dd5dfe69aa1cab4896dd5da901ff9f6ed6848e0d2f718745497d78ee08/actingweb-2.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f1fabce8323ce81098cf7bf9ba371bb", "sha256": "c75c95344837c794f8ee11c1e8d65a83ddee1a40dac48404c65e815ff662e50c" }, "downloads": -1, "filename": "actingweb-2.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8f1fabce8323ce81098cf7bf9ba371bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 70596, "upload_time": "2018-09-24T18:42:05", "url": "https://files.pythonhosted.org/packages/76/46/2ead3d412ded4006da7abb101b0b11a760e1a4e072437dc9745ad55921fe/actingweb-2.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "384c13c76b18bbcf3cceaaa8c025ef02", "sha256": "4abd0f8443f54509eb8096114975a64a0a64126d939ca4ccb0672c432ea82b6d" }, "downloads": -1, "filename": "actingweb-2.4.0.tar.gz", "has_sig": false, "md5_digest": "384c13c76b18bbcf3cceaaa8c025ef02", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 85437, "upload_time": "2018-09-24T18:45:28", "url": "https://files.pythonhosted.org/packages/85/6d/1b359c63a17601083a14fecbf4daa4721208c5b53e15c9e2229cf07e5aad/actingweb-2.4.0.tar.gz" } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "f34e1e8912e7ae987c88a17f501851d4", "sha256": "9e4b1355b7c033f9a2fdeb970c453472367be919004467e9fb29d7b2a64f6f30" }, "downloads": -1, "filename": "actingweb-2.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f34e1e8912e7ae987c88a17f501851d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 70604, "upload_time": "2018-09-26T05:39:16", "url": "https://files.pythonhosted.org/packages/76/43/01e7aad993eaa3ab4cf62e8282677d672564fd314c7c0df2470abe43527d/actingweb-2.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "000609bf6d8b36488f65300cc53ce8c9", "sha256": "cfa47f57473b25de144d2ff1491d50aa5cad24958ef458bc64a59688646f7ce4" }, "downloads": -1, "filename": "actingweb-2.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "000609bf6d8b36488f65300cc53ce8c9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 70601, "upload_time": "2018-09-26T05:39:18", "url": "https://files.pythonhosted.org/packages/1c/18/d20f5d0bf02a958b24f1ef3225a7092e01ef43b2c96cc1dd54ae24c5a797/actingweb-2.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "edce542b3e5b18b56af7e11ef66cddfd", "sha256": "39caf471d18eac43c716fd9e699456d73c36f79b1d100a15a4481ee0506e08cc" }, "downloads": -1, "filename": "actingweb-2.4.1.tar.gz", "has_sig": false, "md5_digest": "edce542b3e5b18b56af7e11ef66cddfd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 85501, "upload_time": "2018-09-26T05:39:19", "url": "https://files.pythonhosted.org/packages/8d/19/d9658c81970866bf0a18d77df34d3c6dee308a0d66a29daa4d6919a1bdfe/actingweb-2.4.1.tar.gz" } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "756740d763c5cd2fe0753057bc477c7e", "sha256": "1d6f267602465311d59daeab2b3e8a5dc119e6b02487ed3eddaf2732e19ef511" }, "downloads": -1, "filename": "actingweb-2.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "756740d763c5cd2fe0753057bc477c7e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 70554, "upload_time": "2018-09-27T05:49:27", "url": "https://files.pythonhosted.org/packages/d5/b9/8c09e7f10849c8a8cf8ab66dd50b4158ef78cdb356f5fe875421ca884a5d/actingweb-2.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52c989b6d9fba4db95751ddcadcf2472", "sha256": "9da83b2c9a83af28fa7736dedc0551584a7401fe37b498f933bd307f1f86b717" }, "downloads": -1, "filename": "actingweb-2.4.2.tar.gz", "has_sig": false, "md5_digest": "52c989b6d9fba4db95751ddcadcf2472", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 85459, "upload_time": "2018-09-27T05:49:28", "url": "https://files.pythonhosted.org/packages/7d/36/4a97397f5e0fea90228ade3e3b7da3172379ccecb0a7fefb055b79b7a6e9/actingweb-2.4.2.tar.gz" } ], "2.4.3": [ { "comment_text": "", "digests": { "md5": "be6e63a9b4bfe1d0c0c73d89cf72188e", "sha256": "c92bc952f69575ab62f65791acde0ceb9a651a2038c3a3f9a47f2d731e65619b" }, "downloads": -1, "filename": "actingweb-2.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "be6e63a9b4bfe1d0c0c73d89cf72188e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 70569, "upload_time": "2018-09-28T04:45:06", "url": "https://files.pythonhosted.org/packages/4f/70/c0eac8da581e39543012ce4cdd830709b64df66c4cd839fe32f5c421e3f9/actingweb-2.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d0f6256c74a68cd34c5f208bcc835d8", "sha256": "cec894afda32e06ed9a16db97c08a04720379a1e04827519362502077067f04b" }, "downloads": -1, "filename": "actingweb-2.4.3.tar.gz", "has_sig": false, "md5_digest": "7d0f6256c74a68cd34c5f208bcc835d8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 85607, "upload_time": "2018-09-28T04:45:07", "url": "https://files.pythonhosted.org/packages/a6/88/e44b07627844e7732d9d294851139b696c8a2d60801c57a29eccd7bde98c/actingweb-2.4.3.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "4656b1aa32253622296623fa573b4887", "sha256": "0d7289b4ada4c9fdc9bf64aa9af61e3b90cbef2e9333e7e21cfb3b49680761d0" }, "downloads": -1, "filename": "actingweb-2.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4656b1aa32253622296623fa573b4887", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 72720, "upload_time": "2018-11-21T17:04:07", "url": "https://files.pythonhosted.org/packages/48/0a/6db67b343f20c1af00c93ffcae12de64af95d95753283d963c31b1f463b8/actingweb-2.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e95a796601a7c033a05d0be0c5c0370f", "sha256": "c8224ae4848cf319aa0b6790add5e766a526ccedd0de6d6f6d119e73414beb7a" }, "downloads": -1, "filename": "actingweb-2.5.0.tar.gz", "has_sig": false, "md5_digest": "e95a796601a7c033a05d0be0c5c0370f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 53695, "upload_time": "2018-11-21T17:04:09", "url": "https://files.pythonhosted.org/packages/1c/4d/0ed091407809cc57f9a62f1c39e465760fd790d44ebc67879e1f7f20fdb8/actingweb-2.5.0.tar.gz" } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "8f90b06957451178418a1303f8780534", "sha256": "6c654cf11083efbd067ba7b8674ee6c5a4e95927d07f2b2c063856a152adb6ea" }, "downloads": -1, "filename": "actingweb-2.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f90b06957451178418a1303f8780534", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 72796, "upload_time": "2019-01-29T05:33:48", "url": "https://files.pythonhosted.org/packages/3d/68/216c4d400c7bf9cfeb54b30391dfb13911b086bb1c2188998db8d9846e5c/actingweb-2.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a8f4096b422d1469fd7ad0466507e01", "sha256": "fa7c3dc76796be06e3b144e07169309cc83e7cb749502af6d2f303511cfc38de" }, "downloads": -1, "filename": "actingweb-2.5.1.tar.gz", "has_sig": false, "md5_digest": "9a8f4096b422d1469fd7ad0466507e01", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 53808, "upload_time": "2019-01-29T05:33:50", "url": "https://files.pythonhosted.org/packages/4e/b1/94314eda0f462e6e8ae7e05110d3628c9b129120f5d9460dddabded794cf/actingweb-2.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8f90b06957451178418a1303f8780534", "sha256": "6c654cf11083efbd067ba7b8674ee6c5a4e95927d07f2b2c063856a152adb6ea" }, "downloads": -1, "filename": "actingweb-2.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f90b06957451178418a1303f8780534", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 72796, "upload_time": "2019-01-29T05:33:48", "url": "https://files.pythonhosted.org/packages/3d/68/216c4d400c7bf9cfeb54b30391dfb13911b086bb1c2188998db8d9846e5c/actingweb-2.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a8f4096b422d1469fd7ad0466507e01", "sha256": "fa7c3dc76796be06e3b144e07169309cc83e7cb749502af6d2f303511cfc38de" }, "downloads": -1, "filename": "actingweb-2.5.1.tar.gz", "has_sig": false, "md5_digest": "9a8f4096b422d1469fd7ad0466507e01", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 53808, "upload_time": "2019-01-29T05:33:50", "url": "https://files.pythonhosted.org/packages/4e/b1/94314eda0f462e6e8ae7e05110d3628c9b129120f5d9460dddabded794cf/actingweb-2.5.1.tar.gz" } ] }