{ "info": { "author": "Studio Ousia", "author_email": "ikuya@ousia.jp", "bugtrack_url": null, "classifiers": [], "description": "gsocketpool\n===========\n\n.. image:: https://badge.fury.io/py/gsocketpool.png\n :target: http://badge.fury.io/py/gsocketpool\n\n.. image:: https://travis-ci.org/studio-ousia/gsocketpool.png?branch=master\n :target: https://travis-ci.org/studio-ousia/gsocketpool\n\nA simple connection pool for gevent.\n\nBasic Usage\n-----------\n\nThe following is an example to create a connection pool that communicates an echo server running on *localhost 2000*.\n\n.. code-block:: python\n\n >>> from gsocketpool import Pool\n >>> from gsocketpool import TcpConnection\n >>> \n >>> options = dict(host='localhost', port=2000)\n >>> pool = Pool(TcpConnection, options)\n >>> \n >>> with pool.connection() as conn:\n ... conn.send('hello')\n ... print conn.recv()\n hello\n\n\nImplementing Protocol\n---------------------\n\nArbitrary protocols can be easily implemented by extending *Connection* class. You have to override at least three functions such as *open()*, *close()* and *is_connected()*.\n\n*TcpConnection* used in the above example is also implemented as a subclass of Connection.\n\n.. code-block:: python\n\n class TcpConnection(Connection):\n\n def __init__(self, host, port, lifetime=600, timeout=None):\n self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n self._host = host\n self._port = port\n self._lifetime = lifetime\n self._timeout = timeout\n self._connected = False\n self._created = None\n\n def get(self):\n return self._sock\n\n def open(self):\n self._sock.connect((self._host, self._port))\n if self._timeout:\n self._sock.settimeout(self._timeout)\n\n self._connected = True\n self._created = time.time()\n\n def close(self):\n if self._connected:\n self._sock.close()\n self._connected = False\n\n def is_connected(self):\n return self._connected\n\n def is_expired(self):\n if time.time() - self._created > self._lifetime:\n return True\n else:\n return False\n\n def send(self, data):\n assert self._connected\n\n self._sock.send(data)\n\n def recv(self, size=1024):\n assert self._connected\n\n return self._sock.recv(size)\n\n\nDocumentation\n-------------\nDocumentation is available at http://gsocketpool.readthedocs.org/.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/studio-ousia/gsocketpool", "keywords": null, "license": "Copyright 2013 Studio Ousia\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.", "maintainer": null, "maintainer_email": null, "name": "gsocketpool", "package_url": "https://pypi.org/project/gsocketpool/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gsocketpool/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/studio-ousia/gsocketpool" }, "release_url": "https://pypi.org/project/gsocketpool/0.1.6/", "requires_dist": null, "requires_python": null, "summary": "A simple connection pool for gevent", "version": "0.1.6" }, "last_serial": 2774032, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "dfd661ccc4ce968f7f10137b3b71c8be", "sha256": "bcdfbaf73684906706426c29da5f91f53248aa3e8b274ba907c45ea578642de9" }, "downloads": -1, "filename": "gsocketpool-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "dfd661ccc4ce968f7f10137b3b71c8be", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 13688, "upload_time": "2013-10-13T10:24:11", "url": "https://files.pythonhosted.org/packages/2e/ac/19bea49f5e087cb664099fc7e5f3c61df4dcb9de84b0b89631b14d48fe79/gsocketpool-0.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5533b64d42f1db94fd684c9effe2eba9", "sha256": "5685197d69fb77fb3f5d95550d9e3f575180c136fff8a848cb8a5a82f0e49225" }, "downloads": -1, "filename": "gsocketpool-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5533b64d42f1db94fd684c9effe2eba9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5260, "upload_time": "2013-10-13T10:24:03", "url": "https://files.pythonhosted.org/packages/72/e6/a50cf60e86fa47a8143ca4dc1a3a7b010eb7540c523b9749a545f2563ad1/gsocketpool-0.0.1.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "8773f5976d5c787df5f83f9f04e0e483", "sha256": "a01c5d837c246e3b1954eba7309b8e3669f74247955e3d3d02d7b220b99285d1" }, "downloads": -1, "filename": "gsocketpool-0.1.tar.gz", "has_sig": false, "md5_digest": "8773f5976d5c787df5f83f9f04e0e483", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5281, "upload_time": "2013-10-16T04:38:12", "url": "https://files.pythonhosted.org/packages/8b/b5/b90462f86ed7b781896e1dddb41208b3f9b3380963bedb9795bce1d21e59/gsocketpool-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7f85ab937e8222162b6638e9f5d82151", "sha256": "f050087fa91a35f38bf3e3f4827e3054fd6e998f66d99e89681ba666a643e520" }, "downloads": -1, "filename": "gsocketpool-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7f85ab937e8222162b6638e9f5d82151", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5356, "upload_time": "2013-10-21T15:56:19", "url": "https://files.pythonhosted.org/packages/b6/c1/e2aee57d4477d97042bbe4a72a2c501996a621ebd401c9cd89fb52e6d3af/gsocketpool-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "65a6933ebd36730f5ed4ed271bbf26e1", "sha256": "59d711c682ba85b6a0bb7319bc35b4a07755f5f08f171678f43d5c2fe8a2507d" }, "downloads": -1, "filename": "gsocketpool-0.1.2.tar.gz", "has_sig": false, "md5_digest": "65a6933ebd36730f5ed4ed271bbf26e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5371, "upload_time": "2014-03-01T14:53:10", "url": "https://files.pythonhosted.org/packages/10/30/e84c13bdf322b3a9fb721f3f491063d419d8dbd8a97b76bc21976d7e7e51/gsocketpool-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "9df1af201ef1822d31e2bf380e59d846", "sha256": "5cba65eac61789ad06cbba95ec9b4fb5196603bd07da61b563cf3ba808fbd7fc" }, "downloads": -1, "filename": "gsocketpool-0.1.3.tar.gz", "has_sig": false, "md5_digest": "9df1af201ef1822d31e2bf380e59d846", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5381, "upload_time": "2014-04-06T08:05:25", "url": "https://files.pythonhosted.org/packages/c6/6c/13c2604f5627f2cee4db7993c9952dcd5894c444ff9ed391835b888f5fe3/gsocketpool-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "40138b351cc1cfe5eac18c6580c8c7f6", "sha256": "ca2bb6073cd0400743a95cf652c5381a66a66abe4817865430e59893fad1bc53" }, "downloads": -1, "filename": "gsocketpool-0.1.4.tar.gz", "has_sig": false, "md5_digest": "40138b351cc1cfe5eac18c6580c8c7f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5457, "upload_time": "2015-09-02T13:18:48", "url": "https://files.pythonhosted.org/packages/62/c2/75f799860deafc683beedbd390b300df932d45de971fb27c4d2a7175b464/gsocketpool-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "04f618864b18d6b06f774994f172ef49", "sha256": "b6b73deab9bcbc428d4813697eebe5c3b9c40a971f62e13607b881aa749af9d0" }, "downloads": -1, "filename": "gsocketpool-0.1.5.tar.gz", "has_sig": false, "md5_digest": "04f618864b18d6b06f774994f172ef49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5485, "upload_time": "2015-10-12T07:23:42", "url": "https://files.pythonhosted.org/packages/54/bc/23612027711193710c113eb6132af7e80b0cea83aa207755762d0def0217/gsocketpool-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "49f5f292ef1b60944ae92ca426a5e550", "sha256": "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14" }, "downloads": -1, "filename": "gsocketpool-0.1.6.tar.gz", "has_sig": false, "md5_digest": "49f5f292ef1b60944ae92ca426a5e550", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5484, "upload_time": "2017-04-11T09:50:21", "url": "https://files.pythonhosted.org/packages/af/3d/a9a5636e855908375a3a06e2eada48ce1bf2bd6eba07651dd019772f648d/gsocketpool-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "49f5f292ef1b60944ae92ca426a5e550", "sha256": "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14" }, "downloads": -1, "filename": "gsocketpool-0.1.6.tar.gz", "has_sig": false, "md5_digest": "49f5f292ef1b60944ae92ca426a5e550", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5484, "upload_time": "2017-04-11T09:50:21", "url": "https://files.pythonhosted.org/packages/af/3d/a9a5636e855908375a3a06e2eada48ce1bf2bd6eba07651dd019772f648d/gsocketpool-0.1.6.tar.gz" } ] }