{ "info": { "author": "dotcomboom", "author_email": "dotcomboom@protonmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Pituophis\n[![Documentation Status](https://readthedocs.org/projects/pituophis/badge/?version=latest)](https://pituophis.readthedocs.io/en/latest/?badge=latest)\n[![PyPI version](https://img.shields.io/pypi/v/Pituophis.svg)](https://pypi.python.org/pypi/Pituophis/)\n[![PyPI license](https://img.shields.io/pypi/l/Pituophis.svg)](https://pypi.python.org/pypi/Pituophis/)\n\nPython 3 library for building Gopher clients and servers\n\nPituophis, at the moment, requires nine modules: os, re, sockets, asyncio, ssl, mimetypes, glob, and urllib, which are standard in most Python 3.7 installations, and natsort. Pituophis can simply be loaded as a module like this:\n```python\nimport pituophis\n```\n\n## Client\nPituophis can grab files and text from Gopher servers (both S/Gopher TLS and regular Gopher) through the `Request.get()` and `get()` functions.\n### Examples\nGetting menus and files as plain text:\n```python\npituophis.get('gopher.floodgap.com').text()\npituophis.get('gopher://gopher.floodgap.com/1/').text()\npituophis.get('gopher://gopher.floodgap.com:70/0/gopher/proxy').text()\npituophis.get(host='gopher.floodgap.com', port=70, path='/').text()\npituophis.get(host='gopher.floodgap.com', port=70, path='/gopher/proxy').text()\npituophis.get(host='khzae.net', port=105, path='/', tls=True).text() # TLS!\npituophis.get('gophers://khzae.net:105/1/').text() # gophers:// URLs!\n\n```\nGetting a menu, parsed:\n```python\nmenu = pituophis.get('gopher.floodgap.com').menu()\nfor selector in menu:\n print(selector.type)\n print(selector.text)\n print(selector.path)\n print(selector.host)\n print(selector.port)\n```\nUsing search services:\n```python\npituophis.get('gopher://gopher.floodgap.com:70/7/v2/vs?toast').text()\npituophis.get(host='gopher.floodgap.com', port=70, path='/v2/vs', query='toast').text()\n```\nDownloading a binary:\n```python\npituophis.get('gopher://gopher.floodgap.com:70/9/gopher/clients/win/hgopher2_3.zip').binary\npituophis.get(host='gopher.floodgap.com', port=70, path='/gopher/clients/win/hgopher2_3.zip').binary\n```\nRequests can also be created and worked with directly:\n```python\nimport pituophis\nreq = pituophis.Request()\nreq.host = 'gopher.floodgap.com' # set to 127.0.0.1 by default\nreq.port = 70 # set to 70 as default, as per tradition\nreq.type = '7' # set to 9 by default, purely for client usage\nreq.path = '/v2/vs' # set to '/' by default\nreq.query = 'food' # set to '' (nothing) by default\nreq.tls = False # set to False by default\nprint('Getting', req.url())\nrsp = req.get()\nprint(rsp.text())\n```\nThey can also be created from a URL:\n```python\nimport pituophis\nreq = pituophis.parse_url('gopher://gopher.floodgap.com/7/v2/vs?food')\nprint('Getting', req.url())\nrsp = req.get()\nprint(rsp.text())\n```\n## Server\n### Default Handler\nPituophis now lets you serve a directory. Serving gophermaps, directories, and files is supported out of the box.\n\n![server_def](https://github.com/dotcomboom/Pituophis/blob/master/server_def.png?raw=true)\n### Custom Handler\nPituophis also lets you write a custom handler for Gopher requests.\n\n![server](https://github.com/dotcomboom/Pituophis/blob/master/server.png?raw=true)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dotcomboom/Pituophis", "keywords": "", "license": "BSD 2-Clause License", "maintainer": "", "maintainer_email": "", "name": "Pituophis", "package_url": "https://pypi.org/project/Pituophis/", "platform": "", "project_url": "https://pypi.org/project/Pituophis/", "project_urls": { "Homepage": "https://github.com/dotcomboom/Pituophis" }, "release_url": "https://pypi.org/project/Pituophis/1.0/", "requires_dist": null, "requires_python": "", "summary": "Python 3 library for building Gopher clients and servers", "version": "1.0" }, "last_serial": 5392174, "releases": { "0.90": [ { "comment_text": "", "digests": { "md5": "2ea4f683b350d6704e33f66965d428c4", "sha256": "248a538f1d718b3bbced3e257a973138d0e43571deb68c3c25c53d023cb85c6b" }, "downloads": -1, "filename": "Pituophis-0.90-py3.7.egg", "has_sig": false, "md5_digest": "2ea4f683b350d6704e33f66965d428c4", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 13501, "upload_time": "2019-02-13T02:46:52", "url": "https://files.pythonhosted.org/packages/bc/ee/a2f21afbd84977b703f58eb5136f5c1c96f5ef3940123e2b3443c87175be/Pituophis-0.90-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "a85bd2ebefa79b8481131544c0381ce7", "sha256": "bbfe1ca1e8fa4e8d3dec9290d1ee21ff6c0f4ad4fa78f6a021070dcabd92ff4c" }, "downloads": -1, "filename": "Pituophis-0.90.tar.gz", "has_sig": false, "md5_digest": "a85bd2ebefa79b8481131544c0381ce7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7615, "upload_time": "2019-02-13T02:46:54", "url": "https://files.pythonhosted.org/packages/b3/c6/070bcd689e281135080d0dff3c7021c439e640f0e928d84871603d2aae17/Pituophis-0.90.tar.gz" } ], "0.91": [ { "comment_text": "", "digests": { "md5": "dd34d798850b19aead1716b135c40a8c", "sha256": "fc52074d0750be6f300ce9140a7101ae3f9d5e34cd19d0adeb01738cac284c4c" }, "downloads": -1, "filename": "Pituophis-0.91.tar.gz", "has_sig": false, "md5_digest": "dd34d798850b19aead1716b135c40a8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7838, "upload_time": "2019-02-13T04:50:11", "url": "https://files.pythonhosted.org/packages/eb/7b/42e9c09e262aebbf1fbd711a763e6ef027b18f6b2298617a47fc37d96016/Pituophis-0.91.tar.gz" } ], "0.92": [ { "comment_text": "", "digests": { "md5": "0c6202e9c62637616df6f73a5560817f", "sha256": "1c2653197fb046f5df36b0a7572e267911267fa90217062078d5f4d6ec712212" }, "downloads": -1, "filename": "Pituophis-0.92.tar.gz", "has_sig": false, "md5_digest": "0c6202e9c62637616df6f73a5560817f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8021, "upload_time": "2019-02-13T06:45:46", "url": "https://files.pythonhosted.org/packages/59/72/0cab62138bb32c86aef4877c4a11883970865e5f7cf0f312bd7c6cc4f5a3/Pituophis-0.92.tar.gz" } ], "0.93": [ { "comment_text": "", "digests": { "md5": "58992efdb049c64b6d69fd1dea0562d4", "sha256": "4477adbd75c0294f1febdfae0a0c5c37e81191c287b550d952f477077dd3f55f" }, "downloads": -1, "filename": "Pituophis-0.93.tar.gz", "has_sig": false, "md5_digest": "58992efdb049c64b6d69fd1dea0562d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8207, "upload_time": "2019-02-14T05:09:54", "url": "https://files.pythonhosted.org/packages/c4/f3/bdd803019f18e18362fd540d74ce7096427f3b59a3065bf27ddf73f56de2/Pituophis-0.93.tar.gz" } ], "0.94": [ { "comment_text": "", "digests": { "md5": "9809544a536680d70cec8dbcd3e758f7", "sha256": "3cfdbf576a639a120409b6d0dddf6e8ee08b3ccd5892e5a6e7d8c778333e2058" }, "downloads": -1, "filename": "Pituophis-0.94.tar.gz", "has_sig": false, "md5_digest": "9809544a536680d70cec8dbcd3e758f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8288, "upload_time": "2019-02-18T19:44:24", "url": "https://files.pythonhosted.org/packages/66/ad/b3d70ecb4341b6a8711c005c08d46b102800642d88c60b6b6fec27fa436b/Pituophis-0.94.tar.gz" } ], "0.95": [ { "comment_text": "", "digests": { "md5": "45ebf0e2d6a2b8f14458ccfb3550af1c", "sha256": "4d75e410bf3b7eaa85c15a2bdbf7fd38e52bef64284c9d8d6c25fa2109f5d397" }, "downloads": -1, "filename": "Pituophis-0.95.tar.gz", "has_sig": false, "md5_digest": "45ebf0e2d6a2b8f14458ccfb3550af1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8900, "upload_time": "2019-03-09T21:01:35", "url": "https://files.pythonhosted.org/packages/2a/84/70bea0a98413189b2c6a96eb20ae2ddfb3a1af0ba3993b1cd6238f790d82/Pituophis-0.95.tar.gz" } ], "0.96": [ { "comment_text": "", "digests": { "md5": "55c6b54213b2c461829c4d2874cf9b18", "sha256": "137863f44fd1ce76c39b961c3ab91b50a1c79b951e5687b117c467b1815ccdbc" }, "downloads": -1, "filename": "Pituophis-0.96.tar.gz", "has_sig": false, "md5_digest": "55c6b54213b2c461829c4d2874cf9b18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8830, "upload_time": "2019-03-14T02:03:46", "url": "https://files.pythonhosted.org/packages/26/4c/49a01b69bdbad248fd7c05f7aea80613848057b58888baf557939de085bd/Pituophis-0.96.tar.gz" } ], "0.97": [ { "comment_text": "", "digests": { "md5": "057e6abeefbe3570ed58157714ee5a51", "sha256": "d4be9ca5afe6914b5bed2950329ad866745596a61e463c1b5870050b178a141d" }, "downloads": -1, "filename": "Pituophis-0.97.tar.gz", "has_sig": false, "md5_digest": "057e6abeefbe3570ed58157714ee5a51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8834, "upload_time": "2019-03-17T18:49:27", "url": "https://files.pythonhosted.org/packages/8a/1c/b5412e45dd6778ea25c5e182db4b4868b717c7c4b2703df612852f0b5729/Pituophis-0.97.tar.gz" } ], "0.98": [ { "comment_text": "", "digests": { "md5": "283b3da9e8f859f8aaec5f599120f514", "sha256": "fea73236c8c9edc8e7a63f9a36f1e76213b5e311f4a187bf06969f3b672ccae7" }, "downloads": -1, "filename": "Pituophis-0.98.tar.gz", "has_sig": false, "md5_digest": "283b3da9e8f859f8aaec5f599120f514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8926, "upload_time": "2019-04-19T16:08:56", "url": "https://files.pythonhosted.org/packages/e2/f5/61cee350b59fcf5a80c93019dc303e4b4aa8f696d4f734b4d5841d61dd69/Pituophis-0.98.tar.gz" } ], "0.99": [ { "comment_text": "", "digests": { "md5": "ac4a1f6d34bbc2076c06ca5a213dec6f", "sha256": "bdff31ad22739acb894bdd35e4d1af48594c67c0f3c1482c3b8eed73e46b5b7a" }, "downloads": -1, "filename": "Pituophis-0.99-py3.7.egg", "has_sig": false, "md5_digest": "ac4a1f6d34bbc2076c06ca5a213dec6f", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 15944, "upload_time": "2019-04-21T01:38:49", "url": "https://files.pythonhosted.org/packages/ad/83/692bfa41b4d8db18a5530f8de4c50177ca851a4c791e76ae06ca1c3f0302/Pituophis-0.99-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "86f05f2d058d0eecbba28ea60154c121", "sha256": "f9f8f45a00aaeba4e2b85a1c98e54f05a3c9ee1408117ffdc8c1ab6bbb130c9e" }, "downloads": -1, "filename": "Pituophis-0.99.tar.gz", "has_sig": false, "md5_digest": "86f05f2d058d0eecbba28ea60154c121", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8900, "upload_time": "2019-04-21T01:38:50", "url": "https://files.pythonhosted.org/packages/62/bb/1ef46379d80ebbe6bc0ee87a84c4c3bd9fb97a14d3b022fbe5a8c2d3d66c/Pituophis-0.99.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "20c5a47c79fa2802e1ef8c0357577b2b", "sha256": "5ea06c3644d461c6f1c2d459ce028b854c60e2bc0c6258d929abaa2e72cb7e28" }, "downloads": -1, "filename": "Pituophis-1.0-py3.7.egg", "has_sig": false, "md5_digest": "20c5a47c79fa2802e1ef8c0357577b2b", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 17993, "upload_time": "2019-06-12T17:33:29", "url": "https://files.pythonhosted.org/packages/98/6c/ecc6acfa62446859be675545a6696eb0d0be0a5fa773978aadb69fbe0132/Pituophis-1.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "fe32e2fa7702058c6946c5cb4c5585b6", "sha256": "16a62e80f42b06bd318363c95d7c97de774be5a375218d1c4adc599b756fabe8" }, "downloads": -1, "filename": "Pituophis-1.0.tar.gz", "has_sig": false, "md5_digest": "fe32e2fa7702058c6946c5cb4c5585b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9358, "upload_time": "2019-06-12T17:33:31", "url": "https://files.pythonhosted.org/packages/92/db/81e98d916faced1f088a74dbb5f7a251f4ae6c0c0f375b894639bb4c2154/Pituophis-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "20c5a47c79fa2802e1ef8c0357577b2b", "sha256": "5ea06c3644d461c6f1c2d459ce028b854c60e2bc0c6258d929abaa2e72cb7e28" }, "downloads": -1, "filename": "Pituophis-1.0-py3.7.egg", "has_sig": false, "md5_digest": "20c5a47c79fa2802e1ef8c0357577b2b", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 17993, "upload_time": "2019-06-12T17:33:29", "url": "https://files.pythonhosted.org/packages/98/6c/ecc6acfa62446859be675545a6696eb0d0be0a5fa773978aadb69fbe0132/Pituophis-1.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "fe32e2fa7702058c6946c5cb4c5585b6", "sha256": "16a62e80f42b06bd318363c95d7c97de774be5a375218d1c4adc599b756fabe8" }, "downloads": -1, "filename": "Pituophis-1.0.tar.gz", "has_sig": false, "md5_digest": "fe32e2fa7702058c6946c5cb4c5585b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9358, "upload_time": "2019-06-12T17:33:31", "url": "https://files.pythonhosted.org/packages/92/db/81e98d916faced1f088a74dbb5f7a251f4ae6c0c0f375b894639bb4c2154/Pituophis-1.0.tar.gz" } ] }