{ "info": { "author": "Alexander Tikhonov", "author_email": "random.gauss@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Framework :: Twisted", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System", "Topic :: System :: Software Distribution" ], "description": "AMQPipe\n=======\n\n.. image:: https://travis-ci.org/Fatal1ty/amqpipe.svg?branch=master\n :target: https://travis-ci.org/Fatal1ty/amqpipe\n\n.. image:: https://requires.io/github/Fatal1ty/amqpipe/requirements.svg?branch=master\n :target: https://requires.io/github/Fatal1ty/amqpipe/requirements/?branch=master\n :alt: Requirements Status\n\n.. image:: https://img.shields.io/pypi/v/amqpipe.svg\n :target: https://pypi.python.org/pypi/amqpipe\n\n.. image:: https://img.shields.io/pypi/pyversions/amqpipe.svg\n :target: https://pypi.python.org/pypi/amqpipe/\n\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://raw.githubusercontent.com/Fatal1ty/amqpipe/master/LICENSE\n\nTwisted based pipeline framework for AMQP. It allow you to create fast\nasynchronous services which follow ideology:\n\n- get message from queue\n- doing something with message\n- publish some result\n\nInstallation\n------------\n\nInstall via pip:\n\n::\n\n pip install amqpipe\n\nBasic usage\n-----------\n\nThe minimal module based on AMQPipe is:\n\n.. code:: python\n\n from amqpipe import AMQPipe\n\n pipe = AMQPipe()\n pipe.run()\n\nIt will simply get all messages from one RabbitMQ queue and publish them\nto other RabbitMQ exchange.\n\nNow we define some action on messages:\n\n.. code:: python\n\n import hashlib\n from amqpipe import AMQPipe\n\n def action(message):\n return hashlib.md5(message).hexdigest()\n\n pipe = AMQPipe(action=action)\n pipe.run()\n\nIt will publish md5 checksum for every message as result.\n\nIf messages in input queue are in predefined format then you can define\nconverter-function:\n\n.. code:: python\n\n import hashlib\n from amqpipe import AMQPipe\n\n def converter(message):\n return message['text']\n\n def action(text):\n return hashlib.md5(text).hexdigest()\n\n pipe = AMQPipe(converter=converter, action=action)\n pipe.run()\n\nYou can define service-specific arguments:\n\n.. code:: python\n\n import hashlib\n from amqpipe import AMQPipe\n\n class Processor:\n def set_field(self, field):\n self.field = field\n\n processor = Processor()\n\n def init(args):\n processor.set_field(args.field)\n\n def converter(message):\n return message.get(processor.field)\n\n def action(text):\n return hashlib.md5(text).hexdigest()\n\n pipe = AMQPipe(converter, action, init)\n pipe.parser.add_argument('--field', default='text', help='Field name for retrieving message value')\n pipe.run()\n\nYou can connect to database in ``init`` function or do some other things\nfor initialization.\n\nIf your action returns Deferred then result would be published to\nRabbitMQ when this Deferred will be resolved:\n\n.. code:: python\n\n import logging\n from twisted.internet import defer\n from amqpipe import AMQPipe\n\n logger = logging.getLogger(__name__)\n\n class Processor:\n def set_field(self, field):\n self.field = field\n\n processor = Processor()\n\n def init(args):\n connect_to_db()\n ...\n\n def converter(message):\n return message.get(processor.field)\n\n @defer.inlineCallbacks\n def action(text):\n result = yield db_query(text)\n logger.info('Get from db: %s', result)\n defer.returnValue(result)\n\n pipe = AMQPipe(converter, action, init)\n pipe.parser.add_argument('--field', default='text', help='Field name for retrieving message value')\n pipe.run()\n\nInit function may return Deferred too.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Fatal1ty/amqpipe", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "amqpipe", "package_url": "https://pypi.org/project/amqpipe/", "platform": "all", "project_url": "https://pypi.org/project/amqpipe/", "project_urls": { "Homepage": "https://github.com/Fatal1ty/amqpipe" }, "release_url": "https://pypi.org/project/amqpipe/1.2/", "requires_dist": null, "requires_python": "", "summary": "Twisted based pipeline framework for AMQP", "version": "1.2" }, "last_serial": 3312035, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "f5b424909c183135051e5a17cd5d7488", "sha256": "58febb578cdb08378b750e7939086e0ff2f7b7b47710df0a44cf6661a3233457" }, "downloads": -1, "filename": "amqpipe-0.1.tar.gz", "has_sig": false, "md5_digest": "f5b424909c183135051e5a17cd5d7488", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3468, "upload_time": "2015-10-23T14:39:55", "url": "https://files.pythonhosted.org/packages/43/ed/4d28dce21c3b9704fba1bb6daedae97974b11f08a4181d029051b2af2158/amqpipe-0.1.tar.gz" } ], "0.1.1": [], "0.1.10": [ { "comment_text": "", "digests": { "md5": "c148e768d0c416188daa47469966fcd1", "sha256": "6a815c6670293aa944079d07c6c1ba5d9fe97581af9d3899f628c88239342780" }, "downloads": -1, "filename": "amqpipe-0.1.10.tar.gz", "has_sig": false, "md5_digest": "c148e768d0c416188daa47469966fcd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3734, "upload_time": "2015-11-18T23:29:29", "url": "https://files.pythonhosted.org/packages/95/0e/09abf771b4b9424b9c280a570b672b020664313516b5432ba9c1141fe3ce/amqpipe-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "bbe7fe1b67eb64d322d6019168cc741f", "sha256": "9933357f60dfb269ee3300f7902c02d49f0ac42477afe05a4444a6acb721ec94" }, "downloads": -1, "filename": "amqpipe-0.1.11.tar.gz", "has_sig": false, "md5_digest": "bbe7fe1b67eb64d322d6019168cc741f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3658, "upload_time": "2015-11-26T16:23:35", "url": "https://files.pythonhosted.org/packages/22/1f/2333687c9a4824fbb1d1e3f21cee2303c42926b7d7c7fef740b4ed625993/amqpipe-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "be3113283a5c36682e8ab866557d3c5b", "sha256": "4b20e2600f3f363572d06eec75d731c024fc87396a2bf4c65420c09e35826e08" }, "downloads": -1, "filename": "amqpipe-0.1.12.tar.gz", "has_sig": false, "md5_digest": "be3113283a5c36682e8ab866557d3c5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3656, "upload_time": "2015-12-01T13:06:41", "url": "https://files.pythonhosted.org/packages/f3/29/4eff8a33d1ee0624480013a5d0c7ba474c57cf26036f9d4fc02e06f70892/amqpipe-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "5b626a5d837eeff18f14e85290eec443", "sha256": "8624dc5cbae85786881c9cc5f8b3bf5938420f06e4de3af6940aaa6ccdded824" }, "downloads": -1, "filename": "amqpipe-0.1.13.tar.gz", "has_sig": false, "md5_digest": "5b626a5d837eeff18f14e85290eec443", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3688, "upload_time": "2016-01-13T10:09:29", "url": "https://files.pythonhosted.org/packages/e1/5b/a9206c37685e62a8135d2a5305bd2bbdd1315d03d1d9b197cb1a3c1162ae/amqpipe-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "808c4f2a12fe424376de9a4a26511e8b", "sha256": "5b6787726c1a14c7b3a3b682a04a0c2920edaa3b5d502e898151ba71443fb861" }, "downloads": -1, "filename": "amqpipe-0.1.14.tar.gz", "has_sig": false, "md5_digest": "808c4f2a12fe424376de9a4a26511e8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3678, "upload_time": "2016-01-15T12:25:33", "url": "https://files.pythonhosted.org/packages/f8/f8/380c592cfc9503d01e1acd8017e6f71401a5cd591742c0b4b62f0d9ce107/amqpipe-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "dc826c7f1f6612cd737f22ea7f625374", "sha256": "599dc0a59418121450c3349b57dff5b5fea10e8c7ac7d833c788482ebfa107b8" }, "downloads": -1, "filename": "amqpipe-0.1.15.tar.gz", "has_sig": false, "md5_digest": "dc826c7f1f6612cd737f22ea7f625374", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3678, "upload_time": "2016-01-29T09:33:56", "url": "https://files.pythonhosted.org/packages/8e/40/a05cc87464a6b1baadf71b79ae5af5b7e2935bae8116deebfce4479060a4/amqpipe-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "fed10261450260e4b3d96b298c68a764", "sha256": "e4a973d741d656baefda4f5c4e343213a9488f5f0d7945c142b60e80468af42e" }, "downloads": -1, "filename": "amqpipe-0.1.16.tar.gz", "has_sig": false, "md5_digest": "fed10261450260e4b3d96b298c68a764", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3769, "upload_time": "2016-02-04T15:34:32", "url": "https://files.pythonhosted.org/packages/3c/b6/ae7110f957472f4fe3b153a200c25044f4cec43fcbac7fdc113800170518/amqpipe-0.1.16.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7a93608a5046fe2f4d2a5bec89291920", "sha256": "9b799e6b2c92f9ca21186eb8ec31ae9f8f11a720c79b30f037d365465ba73dea" }, "downloads": -1, "filename": "amqpipe-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7a93608a5046fe2f4d2a5bec89291920", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3535, "upload_time": "2015-10-23T14:57:41", "url": "https://files.pythonhosted.org/packages/9f/83/15e74a969e5635e6fe031c7fb90368caffb045241399d386e4f8c53799db/amqpipe-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c8bb56ca3bb115971f08f1221fa05179", "sha256": "97b007ab71bc2c1a271a1bc1c6cfd57b0113773c2fdbfc075f23a5085c1176de" }, "downloads": -1, "filename": "amqpipe-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c8bb56ca3bb115971f08f1221fa05179", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3559, "upload_time": "2015-10-24T17:22:39", "url": "https://files.pythonhosted.org/packages/c9/2e/b2ad0634631e62ae021574bc317dedea733764d0f6839e0f654656dd7dcf/amqpipe-0.1.3.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "13a25dcb18a90cc394e949cda98e381b", "sha256": "59be3a3841e30acf522e9db624ae57a299e8c8e453d6191a3a07aaae0fbaa9f0" }, "downloads": -1, "filename": "amqpipe-0.1.5.tar.gz", "has_sig": false, "md5_digest": "13a25dcb18a90cc394e949cda98e381b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3608, "upload_time": "2015-10-28T06:49:03", "url": "https://files.pythonhosted.org/packages/fe/42/0ec8d7005fb20382fea02a58d23bb43eabc4416e78277c31a55d138ad1af/amqpipe-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "58d0f7785fd0a171fb54e2301e7de1e3", "sha256": "09569eeec93f089b8021a879fa25eece9d859574f4993febf4a5b4feecee8410" }, "downloads": -1, "filename": "amqpipe-0.1.6.tar.gz", "has_sig": false, "md5_digest": "58d0f7785fd0a171fb54e2301e7de1e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3623, "upload_time": "2015-10-28T12:56:32", "url": "https://files.pythonhosted.org/packages/c6/40/87f7aca71079fc04c6a918ae2fe1a5216c5a15e102364068168d314ed361/amqpipe-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "9542947d62366fc8c3731972be795232", "sha256": "4e0af90bbc7f83535df18b64dc8ab360d15bb2b1b2ec2e52642ba7104cf03b4b" }, "downloads": -1, "filename": "amqpipe-0.1.7.tar.gz", "has_sig": false, "md5_digest": "9542947d62366fc8c3731972be795232", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3666, "upload_time": "2015-11-10T11:47:14", "url": "https://files.pythonhosted.org/packages/0c/a1/20a85f04a1344a860654b2a6a075ca99d1e7009b53ac06aa2446812b2fd0/amqpipe-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "023e518fb6b7c6a0e82a4c4b3f69fda2", "sha256": "2ab10d563ab30dbe2f1ae9f24f4d541cdad4ce33980b1c99530bcf7a4222c962" }, "downloads": -1, "filename": "amqpipe-0.1.8.tar.gz", "has_sig": false, "md5_digest": "023e518fb6b7c6a0e82a4c4b3f69fda2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3684, "upload_time": "2015-11-13T10:31:42", "url": "https://files.pythonhosted.org/packages/0c/86/1cea858803a97703922535270ba142d34a0cb61f63335b5e35f5b1bb3de3/amqpipe-0.1.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b31ff3cf6c653bba13aa4ec8444173b0", "sha256": "87e0db9ec78040c4195ca229ab1bf901ef4749565964668feabfdfb7dc0e23b0" }, "downloads": -1, "filename": "amqpipe-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b31ff3cf6c653bba13aa4ec8444173b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3870, "upload_time": "2016-03-16T15:05:44", "url": "https://files.pythonhosted.org/packages/94/91/041537971c6902601756d590a2acfc4636614985d73983ffec964a17138f/amqpipe-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "eef3efb3b19ec1c45418d812381c6e16", "sha256": "d18efb4dce1e2bab14a9bfc79b500e0a4a4e64769f14b766c88c5acaeb9b2b29" }, "downloads": -1, "filename": "amqpipe-0.2.1.tar.gz", "has_sig": false, "md5_digest": "eef3efb3b19ec1c45418d812381c6e16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3873, "upload_time": "2016-03-16T18:56:18", "url": "https://files.pythonhosted.org/packages/8a/9d/eb82d0a510a22c4f01daee4242181bf670acc66126be2e4bcab2ac0cee23/amqpipe-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "ed5728bcc399fff32adbf33128b8140a", "sha256": "98c201319a34c60c8ebab40508ce362b36f9c19d7f44bb341543b69af1c2fc60" }, "downloads": -1, "filename": "amqpipe-0.2.2.tar.gz", "has_sig": false, "md5_digest": "ed5728bcc399fff32adbf33128b8140a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3855, "upload_time": "2016-03-17T09:22:36", "url": "https://files.pythonhosted.org/packages/d0/09/68101b4829e3735781ecedca28a70f30fc83218c0ca689b465c1db0c1f88/amqpipe-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "b6798d8ab24f21661f0a0afef4c93bfd", "sha256": "4ac33c4db9230f53ac11945478a93e8813b724d67324a687510dd73a5afeb5e3" }, "downloads": -1, "filename": "amqpipe-0.2.3.tar.gz", "has_sig": false, "md5_digest": "b6798d8ab24f21661f0a0afef4c93bfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3904, "upload_time": "2016-03-17T15:40:50", "url": "https://files.pythonhosted.org/packages/91/d0/093d6166c742ee15ccfbcb204ce6e5598697b39ffd9c6ec200210ab014bf/amqpipe-0.2.3.tar.gz" } ], "0.2.4": [], "0.2.5": [ { "comment_text": "", "digests": { "md5": "0d1db6d0210d91fa1b15b19d1f30792b", "sha256": "e48c0af96aa9eb39ed4b4c883ed94f69440ef1780e1a4cc00303d0e28e225b58" }, "downloads": -1, "filename": "amqpipe-0.2.5.tar.gz", "has_sig": false, "md5_digest": "0d1db6d0210d91fa1b15b19d1f30792b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4981, "upload_time": "2016-08-29T08:12:40", "url": "https://files.pythonhosted.org/packages/7a/8e/5334d6120372c1580e09e2c745dfa15cb210ef9530b324de1c3680c4ce98/amqpipe-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "1c0da6dd21b28327947ac5831b946b2e", "sha256": "2f093966f65b8ad72d05936b3dd109c9ec2b4d519ece945380ceb2dcbd19f682" }, "downloads": -1, "filename": "amqpipe-0.2.6.tar.gz", "has_sig": false, "md5_digest": "1c0da6dd21b28327947ac5831b946b2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5310, "upload_time": "2016-08-31T08:07:45", "url": "https://files.pythonhosted.org/packages/56/00/7e8e959225940fa482fd9651324ebe71660782897e48d86a3d5222a36e24/amqpipe-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "f25b19a8a25bf0b1061ac67b6f476775", "sha256": "49f22992690e776d061910f4b4066d625d397f33047ce6742f25a4ff2a2667b9" }, "downloads": -1, "filename": "amqpipe-0.2.7.tar.gz", "has_sig": false, "md5_digest": "f25b19a8a25bf0b1061ac67b6f476775", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5752, "upload_time": "2017-03-21T07:23:39", "url": "https://files.pythonhosted.org/packages/ee/0a/208dbc4c91004fe3bbc59ff1fd0115dda35fbe6843f25e8d18d0c8feed47/amqpipe-0.2.7.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "6ff953b41047751103e14a805922fbbb", "sha256": "1ad564683ab96e4d502f3e0232d5a31b108496f11b2fb2a0955b32f632153221" }, "downloads": -1, "filename": "amqpipe-1.0.tar.gz", "has_sig": false, "md5_digest": "6ff953b41047751103e14a805922fbbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5765, "upload_time": "2017-08-22T07:41:27", "url": "https://files.pythonhosted.org/packages/96/10/94aa6bf0d892a8d89d2174ee12a946adac9d3f30c11750b7e48716e14094/amqpipe-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "f13f2c197dfc850e64ba723537a4f528", "sha256": "60a9ad1f5653f9308a843e03743d79d3d7bd9f2c4245613bd23b100b39c74dc6" }, "downloads": -1, "filename": "amqpipe-1.1.tar.gz", "has_sig": false, "md5_digest": "f13f2c197dfc850e64ba723537a4f528", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5847, "upload_time": "2017-11-07T07:32:46", "url": "https://files.pythonhosted.org/packages/5b/11/91a070e676d2765f85d682b34b54ce7e55cf9eda1ecea0ecafb0060cfc92/amqpipe-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "31869a576afc9ecb8fde5593b1a7e6da", "sha256": "9a2862c0a9e317cf1a0f2b1de7e68b16a7b8778df38f384f424e934bb4d96f33" }, "downloads": -1, "filename": "amqpipe-1.2.tar.gz", "has_sig": false, "md5_digest": "31869a576afc9ecb8fde5593b1a7e6da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6359, "upload_time": "2017-11-07T08:05:56", "url": "https://files.pythonhosted.org/packages/9e/b3/949ee1fe77f1490f9b971a493feddfacb32de9ec98f6ad2a24f3055c17f6/amqpipe-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "31869a576afc9ecb8fde5593b1a7e6da", "sha256": "9a2862c0a9e317cf1a0f2b1de7e68b16a7b8778df38f384f424e934bb4d96f33" }, "downloads": -1, "filename": "amqpipe-1.2.tar.gz", "has_sig": false, "md5_digest": "31869a576afc9ecb8fde5593b1a7e6da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6359, "upload_time": "2017-11-07T08:05:56", "url": "https://files.pythonhosted.org/packages/9e/b3/949ee1fe77f1490f9b971a493feddfacb32de9ec98f6ad2a24f3055c17f6/amqpipe-1.2.tar.gz" } ] }