{ "info": { "author": "namuyan", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "p2p-python\n==========\nI seek a library that can make a simple P2P network. \nThis library enables you create P2P application.\n\n## Specification\n* Asynchronous IO\n* Pure Python code\n* TCP and UDP connection\n* Automatic network build\n* Python**3.6+**\n\n## How to install\nwarning: **Destructive change from 3.0.0**\n```commandline\npip3 install --user p2p-python>=3.0.0\n```\n\n## How to use\nbasic usage with debug tool `aiomonitor`. \ninstall by `pip3 install --user aiomonitor`. \n```python\nfrom p2p_python.utils import setup_p2p_params, setup_logger\nfrom p2p_python.server import Peer2Peer, Peer2PeerCmd\nimport logging\nimport asyncio\nimport aiomonitor\nimport time\n \nloop = asyncio.get_event_loop()\nlog = logging.getLogger(__name__)\n \nsetup_logger(logging.INFO)\n \n# setup Peer2Peer\nsetup_p2p_params(\n network_ver=11111, # (int) identify other network\n p2p_port=2000, # (int) P2P listen port\n p2p_accept=True, # (bool) switch on TCP server\n p2p_udp_accept=True, # (bool) switch on UDP server\n)\np2p = Peer2Peer(listen=100) # allow 100 connection\np2p.setup()\n \n# close method example\ndef close():\n p2p.close()\n loop.call_later(1.0, loop.stop)\n \n# You can setup DirectDmd method\nclass DirectCmd(object):\n \n @staticmethod\n async def what_is_your_name(user, data):\n print(\"what_is_your_name\", user, data)\n return {\"you return\": time.time()}\n \n @staticmethod\n async def get_time_now(user, data):\n print(\"get_time_now\", user, data)\n return {\"get time now\": time.time()}\n \n# register methods for DirectCmd\np2p.event.setup_events_from_class(DirectCmd)\n# throw cmd by `await p2p.send_direct_cmd(DirectCmd.what_is_your_name, 'kelly')`\n# or `await p2p.send_direct_cmd('what_is_your_name', 'kelly')`\n \n# You can setup broadcast policy (default disabled)\n# WARNING: You must set strict policy or will be broken by users\nasync def broadcast_check_normal(user, data):\n return True\n \n# overwrite method\np2p.broadcast_check = broadcast_check_normal\n \n# setup netcat monitor\nlocal = locals().copy()\nlocal.update({k: v for k, v in globals().items() if not k.startswith('__')})\nlog.info('local', list(local.keys()))\naiomonitor.start_monitor(loop, port=3000, locals=local)\nlog.info(f\"you can connect by `nc 127.0.0.1 3000`\")\n \n# start event loop\n# close by `close()` on netcat console\ntry:\n loop.run_forever()\nexcept KeyboardInterrupt:\n log.info(\"closing\")\nloop.close()\n```\n\n## Documents\n* [about inner commands](doc/COMMANDS.md)\n* [for debug](doc/FOR_DEBUG.md)\n* [how to work p2p-python? (OLD and JP)](https://ameblo.jp/namuyan/entry-12398575560.html)\n\n## Author\n[@namuyan_mine](http://twitter.com/namuyan_mine/)\n\n## Licence\n[MIT](LICENSE)", "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/namuyan/p2p-python", "keywords": "", "license": "MIT Licence", "maintainer": "", "maintainer_email": "", "name": "p2p-python", "package_url": "https://pypi.org/project/p2p-python/", "platform": "", "project_url": "https://pypi.org/project/p2p-python/", "project_urls": { "Homepage": "https://github.com/namuyan/p2p-python" }, "release_url": "https://pypi.org/project/p2p-python/3.0.4/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Simple peer2peer library.", "version": "3.0.4" }, "last_serial": 5928667, "releases": { "0.0.5": [ { "comment_text": "", "digests": { "md5": "55d42d5a046afab1cf380746ec5610f0", "sha256": "eadd55a12a7f3d58c899a6f171bc761467c9e721e71c3e88fb6bd8498e710a95" }, "downloads": -1, "filename": "p2p_python-0.0.5.tar.gz", "has_sig": false, "md5_digest": "55d42d5a046afab1cf380746ec5610f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16404, "upload_time": "2018-02-08T00:45:27", "url": "https://files.pythonhosted.org/packages/e6/d8/a5853bd6903bdd26ce49a18fc7eef46f4e920a167533f5b7ef4751c55d0e/p2p_python-0.0.5.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "213852b2d8b2edf279ae413fe55fbaec", "sha256": "0fad3d7efae1b6296f97ebcd5e0e4654fffec7cf8c55f2b5de635a379e6742f6" }, "downloads": -1, "filename": "p2p_python-1.0.10.tar.gz", "has_sig": false, "md5_digest": "213852b2d8b2edf279ae413fe55fbaec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25465, "upload_time": "2018-09-14T08:38:59", "url": "https://files.pythonhosted.org/packages/75/a6/65de70c2dace873c56615d7a0f8e9a5871f2a93cf3ad7a71e847e11952ab/p2p_python-1.0.10.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "5ae6c0a81e4756837e2ecffa0d72424d", "sha256": "5a683d28c803a42bffca5c8a90285df4f368404c5d794438fb8773cefbc29c44" }, "downloads": -1, "filename": "p2p_python-1.0.12.tar.gz", "has_sig": false, "md5_digest": "5ae6c0a81e4756837e2ecffa0d72424d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26062, "upload_time": "2018-09-16T15:10:23", "url": "https://files.pythonhosted.org/packages/8c/0d/e2b1c715012baa5781a9817d210fb774a1a343cf23fa71952f0855c23514/p2p_python-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "24afe454564fb73edf397de9a44b0358", "sha256": "717eccf0061e7dbdbefc8e8d4b11684f92f1f7bb76184e3cdfcc28bb7919b2cc" }, "downloads": -1, "filename": "p2p_python-1.0.13.tar.gz", "has_sig": false, "md5_digest": "24afe454564fb73edf397de9a44b0358", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26773, "upload_time": "2018-09-29T11:39:35", "url": "https://files.pythonhosted.org/packages/4d/66/54fc12d04409a64c0bdd765afd52edde0058b3ba3ffc6cc23264ff536bf8/p2p_python-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "7f39c797eeba23a31010efef6bc3559a", "sha256": "746a61a5069c8bfa9d940722e47d0e1979fb0dec275eb0ca20ad1f908854724a" }, "downloads": -1, "filename": "p2p_python-1.0.14.tar.gz", "has_sig": false, "md5_digest": "7f39c797eeba23a31010efef6bc3559a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27640, "upload_time": "2018-10-24T12:13:55", "url": "https://files.pythonhosted.org/packages/4c/87/e5c66c7b325af4e1e1d44264b303f51b0b1085b74a54a15eba4de6e1f473/p2p_python-1.0.14.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "7ee48f5e66a2fc6644438f07fed52adc", "sha256": "52c65752c8f7a3143a9efc26b49a96addc38fd254b7f4706be768f20d9d13324" }, "downloads": -1, "filename": "p2p_python-1.0.16.tar.gz", "has_sig": false, "md5_digest": "7ee48f5e66a2fc6644438f07fed52adc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27824, "upload_time": "2018-11-29T12:29:09", "url": "https://files.pythonhosted.org/packages/8c/9b/2d50a532b1cd07882fb7aa663461cd81aa683fb373cd32ce12a8ad3df015/p2p_python-1.0.16.tar.gz" } ], "1.0.17": [ { "comment_text": "", "digests": { "md5": "3b99074553351f4c865cf06cee0e3822", "sha256": "c916ff258ee2a3c8b305909ab95f504051f8c4c96e80e9723081c124fe1fbab1" }, "downloads": -1, "filename": "p2p_python-1.0.17.tar.gz", "has_sig": false, "md5_digest": "3b99074553351f4c865cf06cee0e3822", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27851, "upload_time": "2018-12-06T09:44:13", "url": "https://files.pythonhosted.org/packages/a6/53/000945b01f6d0014c0d402529aa4ea6bdb359d6b3907b232d9228738362f/p2p_python-1.0.17.tar.gz" } ], "1.0.19": [ { "comment_text": "", "digests": { "md5": "cb71b1abfd109d74320566b075a729e0", "sha256": "ef3ed4f681cb86f3424dcb3750c0eb5eeb35b160205d631686c032a2ce073fb9" }, "downloads": -1, "filename": "p2p_python-1.0.19.tar.gz", "has_sig": false, "md5_digest": "cb71b1abfd109d74320566b075a729e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28316, "upload_time": "2018-12-10T03:44:09", "url": "https://files.pythonhosted.org/packages/de/3a/d0b5a86bf3fcd00ee61d4cdb4f16d78d13ccb5e6f7a17e74db04169f085c/p2p_python-1.0.19.tar.gz" } ], "1.0.21": [ { "comment_text": "", "digests": { "md5": "b1952c9ee1ad25900684ca887018d7b2", "sha256": "288610a6a9ec1a71aa8c63cd0f760e9908a4bc71881f1226e037414f631f1da0" }, "downloads": -1, "filename": "p2p_python-1.0.21.tar.gz", "has_sig": false, "md5_digest": "b1952c9ee1ad25900684ca887018d7b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28434, "upload_time": "2018-12-15T14:40:59", "url": "https://files.pythonhosted.org/packages/ff/59/f2ab988ec8122071ecc61b31528905b4167340b6693fd747c2dbb5103e12/p2p_python-1.0.21.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "e597f1b1940820f39541cef0fd347f77", "sha256": "b3ad6db4b5f07989b6e34353b32e87e05a65b9433bb15e2fa67ba5b16f32bcc5" }, "downloads": -1, "filename": "p2p_python-1.0.4-py3.6.egg", "has_sig": false, "md5_digest": "e597f1b1940820f39541cef0fd347f77", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 85005, "upload_time": "2018-05-04T12:00:15", "url": "https://files.pythonhosted.org/packages/98/af/80b9d0194bb80be6574a00b6d47b30e8760f5bae898705299c7d8463d46a/p2p_python-1.0.4-py3.6.egg" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "9abe4d2b7d4366250454cd95fc2edacb", "sha256": "a74073c009cb3bd679c77ea008960bb4e2a186aeb24b2cd684249bf4b7cee34a" }, "downloads": -1, "filename": "p2p_python-1.0.5.tar.gz", "has_sig": false, "md5_digest": "9abe4d2b7d4366250454cd95fc2edacb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24908, "upload_time": "2018-05-04T12:00:17", "url": "https://files.pythonhosted.org/packages/b5/04/c5410744e5781b4b7363bb2fa4b9ca5ba8289630820508fa9e902e0ab77f/p2p_python-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "e9dab90435e3f0b47378fc158ad85516", "sha256": "8b3b57121f8055e9fa9c9968e739300a4598a0dfa52f765961347f76efa2c4fb" }, "downloads": -1, "filename": "p2p_python-1.0.6.tar.gz", "has_sig": false, "md5_digest": "e9dab90435e3f0b47378fc158ad85516", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25229, "upload_time": "2018-06-03T01:10:51", "url": "https://files.pythonhosted.org/packages/4d/20/fa55860aacf08da9deb1915828c545c790008c7f43df9edb128af4cc61c1/p2p_python-1.0.6.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "ff31f03f0b4e2ab5358f1f05572ab633", "sha256": "5c929c9519aa31a80fdedac9af8bdbdb53c82f31b85facb8bf23feba9468ff52" }, "downloads": -1, "filename": "p2p_python-1.0.9.tar.gz", "has_sig": false, "md5_digest": "ff31f03f0b4e2ab5358f1f05572ab633", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25435, "upload_time": "2018-09-12T07:04:56", "url": "https://files.pythonhosted.org/packages/9d/bd/08e9a9394eb8b06d038e0d61aae96f2bc2a8fa8685206a5f904d1022bbf1/p2p_python-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "85fcdf7101a7e21c77926af66687cf4a", "sha256": "26e108e3566e32600c4758bbd74db0239413a4f583643462dbdc7ff776e0f4e9" }, "downloads": -1, "filename": "p2p_python-1.1.0.tar.gz", "has_sig": false, "md5_digest": "85fcdf7101a7e21c77926af66687cf4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21423, "upload_time": "2018-12-20T14:25:57", "url": "https://files.pythonhosted.org/packages/f8/c0/bd31c945863d51195692f6dfd440b4af4548a134dd4c36ef77ba252c499a/p2p_python-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "54c0c16f1324eeceeb8b419f8ab7d3a9", "sha256": "6c9c490a0d369b2aa164bc5c19abca567ffd8cd33bebe07053c7649ead308886" }, "downloads": -1, "filename": "p2p_python-1.1.1.tar.gz", "has_sig": false, "md5_digest": "54c0c16f1324eeceeb8b419f8ab7d3a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21476, "upload_time": "2018-12-20T14:34:28", "url": "https://files.pythonhosted.org/packages/12/89/9e7e17270986b0a705e5f3c5e871bbac5ed6aa9cf3928215e117247b8df5/p2p_python-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "9db0186afaccbddea121bdbeb478c5c2", "sha256": "69dff1191a6b6d515de8ea55aa5dc0e1a55fefa6daed757e90cd9c4f204f3907" }, "downloads": -1, "filename": "p2p_python-1.1.2.tar.gz", "has_sig": false, "md5_digest": "9db0186afaccbddea121bdbeb478c5c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21572, "upload_time": "2018-12-27T13:48:32", "url": "https://files.pythonhosted.org/packages/b5/45/2ba50ac1d4babdbd7a7df2759425d1726ee2b9126227dbf8674627f7063a/p2p_python-1.1.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "fddf591feac07e4564b8f29a2b75a753", "sha256": "3312b554f4fc38fa4b9c173d1759ecfa72e9f15f5375307659fdfd25641fa63c" }, "downloads": -1, "filename": "p2p_python-2.0.0.tar.gz", "has_sig": false, "md5_digest": "fddf591feac07e4564b8f29a2b75a753", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18998, "upload_time": "2019-01-15T15:18:36", "url": "https://files.pythonhosted.org/packages/49/7a/582a54c0c360ce490f020d42622b3abf46683d8a172994e5fa5e3bb86ef7/p2p_python-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "6ed881707aafcb3d920ff25762263f98", "sha256": "628d6ffce9fd61a2fb20d8847d841a5d686b7b1fb671d88328bc9ddbaf9307a4" }, "downloads": -1, "filename": "p2p_python-2.0.1.tar.gz", "has_sig": false, "md5_digest": "6ed881707aafcb3d920ff25762263f98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18789, "upload_time": "2019-03-29T15:26:23", "url": "https://files.pythonhosted.org/packages/de/b0/84f3d5565dc71087982324f5d4a217c92a5a138705d4b1eb93f3596bddf5/p2p_python-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "b07ed78dab9ac5bcbf62dcb578520d6b", "sha256": "bc873fe90af1d9d929e064ee235b3ccb03010e266e07412b3c389a724e9bb09f" }, "downloads": -1, "filename": "p2p_python-2.0.2.tar.gz", "has_sig": false, "md5_digest": "b07ed78dab9ac5bcbf62dcb578520d6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18811, "upload_time": "2019-04-01T14:57:08", "url": "https://files.pythonhosted.org/packages/a6/78/f5b9a30b1a97e440539719b9e23258f60d52e2f7579afb0e7b8e2d1d2609/p2p_python-2.0.2.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "d277bc0f5840dbef7b42868cf3a6ad6c", "sha256": "81acbd9595d5a101c3a9a647cdea8f91bab2fcb0933eaf7cb8623902a65f42d7" }, "downloads": -1, "filename": "p2p_python-2.1.0.tar.gz", "has_sig": false, "md5_digest": "d277bc0f5840dbef7b42868cf3a6ad6c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19151, "upload_time": "2019-06-14T14:56:53", "url": "https://files.pythonhosted.org/packages/c1/ee/50a52a5790247e80cbb95ee77820c3962710d5439a94e05e80b0b8e6a3d3/p2p_python-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "4d4a96aca0d6f316fd8a29a525392136", "sha256": "0bbe6d5da4dc5a93edb8ae963e907970d63e6fb8ae7a23f0eebd6940957b20d9" }, "downloads": -1, "filename": "p2p_python-2.1.1.tar.gz", "has_sig": false, "md5_digest": "4d4a96aca0d6f316fd8a29a525392136", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19323, "upload_time": "2019-06-18T07:59:16", "url": "https://files.pythonhosted.org/packages/1a/41/c0798bf3fa1e066e82cfb1648193fdcfdd86368ab4b2ee704d73fed66ed1/p2p_python-2.1.1.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "a6ec8fa06b25985e5bf9c6a62f1f28ab", "sha256": "67b1cc3025f21ef73c4f7b5f8b845660573570e5a0309160e5be16160d3ca406" }, "downloads": -1, "filename": "p2p_python-3.0.1.tar.gz", "has_sig": false, "md5_digest": "a6ec8fa06b25985e5bf9c6a62f1f28ab", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 21120, "upload_time": "2019-06-25T15:15:29", "url": "https://files.pythonhosted.org/packages/72/bb/03642d21e563cb3f1c2c084e97f46536b0acee2aa2a7b582eba7dfcebe3d/p2p_python-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "e2187cf7236a58fba4a760e08214efb5", "sha256": "8055c1e494bb6fb9fdf47950e46517f6bcc6da155b72e937b93fbc29146556bd" }, "downloads": -1, "filename": "p2p_python-3.0.2.tar.gz", "has_sig": false, "md5_digest": "e2187cf7236a58fba4a760e08214efb5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 21390, "upload_time": "2019-06-27T17:20:41", "url": "https://files.pythonhosted.org/packages/23/46/1a9a04dcff07f4b30c9f549f02138ec67db58c632ff42ccb4f825298907c/p2p_python-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "99bcb13a8a566344dbbc32afdd4a9875", "sha256": "b9850b0e4e2fe4d4a95af9fb3f12f31632aa250cd76ce8526080cf5a222cd236" }, "downloads": -1, "filename": "p2p_python-3.0.3.tar.gz", "has_sig": false, "md5_digest": "99bcb13a8a566344dbbc32afdd4a9875", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 22514, "upload_time": "2019-07-21T03:31:22", "url": "https://files.pythonhosted.org/packages/f6/6d/35f62e35d617880a56234e3f30d4bd15dd66f82797c7f968a7655e71dad0/p2p_python-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "2ee4e85ea7dc689adccd61cf700ff86a", "sha256": "455ab838e61b8ad10bff7829147416b27f074f26bfe94413a5ad00275dee056d" }, "downloads": -1, "filename": "p2p_python-3.0.4.tar.gz", "has_sig": false, "md5_digest": "2ee4e85ea7dc689adccd61cf700ff86a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 22297, "upload_time": "2019-10-04T14:25:31", "url": "https://files.pythonhosted.org/packages/de/48/9fc7a9c928c632dde29f942e1ced151f16b58efe53e4d50f926430082581/p2p_python-3.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2ee4e85ea7dc689adccd61cf700ff86a", "sha256": "455ab838e61b8ad10bff7829147416b27f074f26bfe94413a5ad00275dee056d" }, "downloads": -1, "filename": "p2p_python-3.0.4.tar.gz", "has_sig": false, "md5_digest": "2ee4e85ea7dc689adccd61cf700ff86a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 22297, "upload_time": "2019-10-04T14:25:31", "url": "https://files.pythonhosted.org/packages/de/48/9fc7a9c928c632dde29f942e1ced151f16b58efe53e4d50f926430082581/p2p_python-3.0.4.tar.gz" } ] }