{ "info": { "author": "Julian Kimmig", "author_email": "julian-kimmig@gmx.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "##Server\nA socket server which allows to communicate between websocket clients \nand send commands between them.\nThe server can be incoken by \n`socketserver = SockerServer()` \nby default the server uses 127.0.0.1 (normaly equally to 'localhost') as the host and the port 8888. \nThis can be changed to any other host/port by using respective arguments: \n`socketserver = SockerServer(port='localhost',port=8888)` \n\nIf the Server cannot bind to the host:port pair an OSError is thrown.\nThis can be used to connect to the first free port\n```\nSOCKETPORT=8888\nnotconnected = True\nsocketserver = None\nwhile notconnected:\n try:\n socketserver = SockerServer(port=SOCKETPORT)\n notconnected = False\n except:\n SOCKETPORT += 1\n```\nafter the port is opened it can be run constantly by calling: \n`socketserver.run_forever()`\n\nBy default the server ask any connected client for a identification and sends a time stamp which can be used for time synchronization (see below)\n\n##Client\nThe package comes also with a client.\nTo invoke a client use: \n`wsc = WebSocketClient(\"name\",host=\"ws://127.0.0.1:8888\")` \nThe name should be unique and the host has to be changed match the socket server.\n\nIf a host is provided (not None) the client connects immediately to the server. If no host is provides or the auto_connect is set to False\nthe connection has to be established by calling: \n`wsc.connect_to_socket(\"hostadress\")` \n\nThe client can call functions when connecting, disconnecting or an error occures:\nto add a function call: \n`wsc.add_on_open(\"name\", func[,overwrite=False])#run func on connecting` \nthe name is used as a reference to remove the function if nescessary and overwrite=False (the default) protects already set functions from overwriting by the same name.\nNo parametes are passed to the function. Same goes for the disconnecting (add_on_close) and and error (add_on_error) functions.\nBy default the Client reconnects on error or on close. To turn this off set the **reconnect** attribute to false\n\nIn the same manner a on message can be assigned to the client. In this case the function passed resives the massage as parameter.\n\nInitially an **intrinsic message validator** is added as on-message function which validates the massage according to the default message template:\n```\n{\n \"type\": \"messagetype\",\n \"data\": {},\n \"from\": sendername,\n \"target\": messagetarget,\n }\n```\n\nBy default if the messagetype is \"cmd\" the message is threaten as a commandmessage and validated.\nA commandmessage has to have the data-structure:\n```\n{\n \"cmd\": \"commandname\",\n \"args\": [],\n \"kwargs\": {}\n}\n``` \nInitially two commands are registered: \n- \"indentify\": answers to the identtify request of the server and registers with the SocketClient.name \n- \"set_time\": sets SocketClient.time to the given data which can be used for time synchronization.\n\nadditional commands can be registered via: \n`wsc.add_cmd_function('name',func[,overwrite=False])` \n\nExample: \n```\nimport time\nimport logging\nimport random\nimport threading\nfrom websocket_communication_server.messagetemplates import commandmessage\nfrom websocket_communication_server.socketclient import WebSocketClient\nfrom websocket_communication_server.socketserver import SockerServer, SOCKETPORT\n\n\nclass Testclass:\n def __init__(self, host, name):\n self.runime = 0\n self.name = name\n self.wsc = WebSocketClient(name, host=host)\n self.wsc.add_cmd_function(\"pass_ball\", self.pass_ball) # registers own pass_ball method to be called when reciving the pass_ball command\n self.pingpong = \"ping\" if \"1\" in name else \"pong\"\n self.opponent = \"Player2\" if \"1\" in name else \"Player1\"\n\n def pass_ball(self, catch=None): #methods called by the message validator should have default attributes to be valid against \"TypeError: pass_ball() missing 1 required positional argument: 'catch'\"\n if catch is None:\n print(\"End of the game because the ball went missing somewhere\")\n return\n print(self.pingpong) # prints ping or pong\n if not catch:\n print(\"Damn!\") # dont like losing the ball\n time.sleep(1) # delay in game because it would be way to fast without, maybe the flytime of the ball :)\n self.wsc.write_to_socket(\n commandmessage(\n cmd=\"pass_ball\", # the command to call at the reciver\n sender=self.name, # sender of the command\n target=self.opponent, # reciver\n catch=random.random() < 0.8, # 80% ball catch\n )\n )\n\n\nif __name__ == \"__main__\":\n # connects to the firsts free port\n notconnected = True\n socketserver = None\n while notconnected:\n try:\n socketserver = SockerServer(port=SOCKETPORT) # binds to 127.0.0.1:8888++\n notconnected = False\n except:\n SOCKETPORT += 1\n\n threading.Thread(\n target=socketserver.run_forever\n ).start() # runs server forever in background\n test1 = Testclass(host=socketserver.ws_adress, name=\"Player1\") # create player 1\n test2 = Testclass(host=socketserver.ws_adress, name=\"Player2\") # create player 2\n time.sleep(1) # gives the players enought timw to identify\n test1.pass_ball(True) # throw the first ball\n while 1:\n time.sleep(1) # play forever\n\n```\nOutput: \nping\npong\nping\npong\nping\npong\nDamn!\nping\nDamn!\npong\nping\npong\nping\npong\nping\npong\nping\n\n\n\n", "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/JulianKimmig/websocket_communication_server", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "WsComSrv", "package_url": "https://pypi.org/project/WsComSrv/", "platform": "", "project_url": "https://pypi.org/project/WsComSrv/", "project_urls": { "Homepage": "https://github.com/JulianKimmig/websocket_communication_server" }, "release_url": "https://pypi.org/project/WsComSrv/0.1.1555408076/", "requires_dist": [ "FilterDict", "websocket-client", "websockets" ], "requires_python": "", "summary": "A basic websocket communication server", "version": "0.1.1555408076" }, "last_serial": 5149196, "releases": { "0.1.1552763283": [ { "comment_text": "", "digests": { "md5": "a170c2e845b4e2459ce5d31833b6999e", "sha256": "b7efbd7344d299b8302fe1a896c7bebeb17a1ebb9000cc0f04a68a4b6727b15e" }, "downloads": -1, "filename": "WsComSrv-0.1.1552763283-py3-none-any.whl", "has_sig": false, "md5_digest": "a170c2e845b4e2459ce5d31833b6999e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21469, "upload_time": "2019-03-16T19:08:05", "url": "https://files.pythonhosted.org/packages/a5/e1/25813ca659e0c46f66d1497990058cd2f168bda9f8166e4141a417922d38/WsComSrv-0.1.1552763283-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "281d9dd0e7457ce3e6f23a4da0adc638", "sha256": "db86f2888ad052e98c928230644da9d197c4aa859e56a9d21e99d3b9dd6b84c8" }, "downloads": -1, "filename": "WsComSrv-0.1.1552763283.tar.gz", "has_sig": false, "md5_digest": "281d9dd0e7457ce3e6f23a4da0adc638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8104, "upload_time": "2019-03-16T19:08:07", "url": "https://files.pythonhosted.org/packages/18/9b/9f585dd88614cd9557d344698e5678ba8f8e22e15ce1eadd5b750b52d004/WsComSrv-0.1.1552763283.tar.gz" } ], "0.1.1552767383": [ { "comment_text": "", "digests": { "md5": "1b0a410b317674ee1bc6f5c71b915604", "sha256": "9d4145e8e65fe5e60a0fe234233836a1f85e6d724d704a12968f43f13447e8f0" }, "downloads": -1, "filename": "WsComSrv-0.1.1552767383-py3-none-any.whl", "has_sig": false, "md5_digest": "1b0a410b317674ee1bc6f5c71b915604", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21470, "upload_time": "2019-03-16T20:16:26", "url": "https://files.pythonhosted.org/packages/4b/2d/b51f41e34fe694d20695617d49e2ac1fa5323d9f57a373b6e19a06b13c42/WsComSrv-0.1.1552767383-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24f13d3869905b4760872bc8594233b3", "sha256": "cd56d03c83036ef010e3c7f763e5934a09480f7871dc7b47c0eb0da216b70440" }, "downloads": -1, "filename": "WsComSrv-0.1.1552767383.tar.gz", "has_sig": false, "md5_digest": "24f13d3869905b4760872bc8594233b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8098, "upload_time": "2019-03-16T20:16:27", "url": "https://files.pythonhosted.org/packages/3f/2e/96411606086072f6900f9c47d3d1d6feff51b244722620dea6d1ecb7c0be/WsComSrv-0.1.1552767383.tar.gz" } ], "0.1.1552769150": [ { "comment_text": "", "digests": { "md5": "5013363fa284605df723ea64dc804782", "sha256": "1929f937573f7550b098bcace0dcb414a7121292e58628243e15cb603943dcbb" }, "downloads": -1, "filename": "WsComSrv-0.1.1552769150-py3-none-any.whl", "has_sig": false, "md5_digest": "5013363fa284605df723ea64dc804782", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21501, "upload_time": "2019-03-16T20:45:51", "url": "https://files.pythonhosted.org/packages/47/14/93e628178ad4649fb2b3061147ca520074db493d5f72f1e9c727d6c9e2ec/WsComSrv-0.1.1552769150-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "607a050d2bc0dc8498b5896c03b46886", "sha256": "06217303fc2ecb82d24c511dd79ab1aab829eee0aa714f56993686bf8f75fde2" }, "downloads": -1, "filename": "WsComSrv-0.1.1552769150.tar.gz", "has_sig": false, "md5_digest": "607a050d2bc0dc8498b5896c03b46886", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8168, "upload_time": "2019-03-16T20:45:54", "url": "https://files.pythonhosted.org/packages/ae/03/ae99e8b3f8244d7c1ec0c181e01413d6ce83803166b0beb541904331226e/WsComSrv-0.1.1552769150.tar.gz" } ], "0.1.1552776125": [ { "comment_text": "", "digests": { "md5": "daeca7e31270c94db92f186db785a26a", "sha256": "7efaca83d7676634c360ab5a26f0686d141d991a35afccc485d4253bd952eff3" }, "downloads": -1, "filename": "WsComSrv-0.1.1552776125-py3-none-any.whl", "has_sig": false, "md5_digest": "daeca7e31270c94db92f186db785a26a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21484, "upload_time": "2019-03-16T22:42:07", "url": "https://files.pythonhosted.org/packages/12/cb/0fc8b4839a2c5868976caf7ba4bd2355559e462f387ead9f8a445c186951/WsComSrv-0.1.1552776125-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dedc5beef0c75f49c14dcdd488ec4fe", "sha256": "a388cbac1ec2d482c198057ebf1c90243d39f0816da29fa04614ba20552409e2" }, "downloads": -1, "filename": "WsComSrv-0.1.1552776125.tar.gz", "has_sig": false, "md5_digest": "4dedc5beef0c75f49c14dcdd488ec4fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8108, "upload_time": "2019-03-16T22:42:10", "url": "https://files.pythonhosted.org/packages/38/00/97ddc6a8d02479155f9cd2eb8fb07cb1b830a08864f6202526fef6249302/WsComSrv-0.1.1552776125.tar.gz" } ], "0.1.1552776965": [ { "comment_text": "", "digests": { "md5": "6c0c27e82072ac24add571f96892eba8", "sha256": "98f8dd04da191248e821a52cdb2822caa088fd689c234ade01840526c13aad35" }, "downloads": -1, "filename": "WsComSrv-0.1.1552776965-py3-none-any.whl", "has_sig": false, "md5_digest": "6c0c27e82072ac24add571f96892eba8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21485, "upload_time": "2019-03-16T22:56:08", "url": "https://files.pythonhosted.org/packages/68/06/d8368c985d503711ddfe802683a08667a4fd4f347c27192e71ad34356042/WsComSrv-0.1.1552776965-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "985dd2a3e4974c55a320e707d847e0e5", "sha256": "e50acab19cbd170f91f645a5bfd7993720f5122df1b94cb4059f1114d8b5f321" }, "downloads": -1, "filename": "WsComSrv-0.1.1552776965.tar.gz", "has_sig": false, "md5_digest": "985dd2a3e4974c55a320e707d847e0e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8107, "upload_time": "2019-03-16T22:56:12", "url": "https://files.pythonhosted.org/packages/e4/43/6195d06d889798cffa54000a0d1f1eab5b2b02ad71f726a9a973c68e0b4d/WsComSrv-0.1.1552776965.tar.gz" } ], "0.1.1552843532": [ { "comment_text": "", "digests": { "md5": "3d01a14f480bf50da907005899d8aa85", "sha256": "acf5f8c6402fcaa782867bb947e942900e957558340de0907c46da786885bd51" }, "downloads": -1, "filename": "WsComSrv-0.1.1552843532-py3-none-any.whl", "has_sig": false, "md5_digest": "3d01a14f480bf50da907005899d8aa85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21477, "upload_time": "2019-03-17T17:25:38", "url": "https://files.pythonhosted.org/packages/10/62/9a4bb8c418812199c220f8c122f6682a66a2859f076aa0012a1e975b3db4/WsComSrv-0.1.1552843532-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b01f1ee0d5eb85b193e77a2a8b66e24d", "sha256": "08ef3a407bd93fb6a063dca5ac71df0f727c4b0f4da2f492944f1a3a13ebfa85" }, "downloads": -1, "filename": "WsComSrv-0.1.1552843532.tar.gz", "has_sig": false, "md5_digest": "b01f1ee0d5eb85b193e77a2a8b66e24d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8200, "upload_time": "2019-03-17T17:25:42", "url": "https://files.pythonhosted.org/packages/d7/db/4dc22648d7cae94b115b6cd4df283ec6fdcd6f7e83547b0230d285ac3dce/WsComSrv-0.1.1552843532.tar.gz" } ], "0.1.1553666437": [ { "comment_text": "", "digests": { "md5": "af2e39271e3041996584bdba0b802a00", "sha256": "78e5703bcd3129f676256e4a4421f58e8ae76d8b30cfa00c0e35d75ade2a953a" }, "downloads": -1, "filename": "WsComSrv-0.1.1553666437-py3-none-any.whl", "has_sig": false, "md5_digest": "af2e39271e3041996584bdba0b802a00", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21675, "upload_time": "2019-03-27T06:00:39", "url": "https://files.pythonhosted.org/packages/c6/68/ea6421948f8f0f7a99ec6d56036f0df14ab483533d292d77dbc9afaf3c03/WsComSrv-0.1.1553666437-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f2d484d0c6a97bd56af3eb67084fedb", "sha256": "93bed3abae3ef6422d9a725441e938974f7b167e5a7fdab1e027bbfb4b1bf862" }, "downloads": -1, "filename": "WsComSrv-0.1.1553666437.tar.gz", "has_sig": false, "md5_digest": "7f2d484d0c6a97bd56af3eb67084fedb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8347, "upload_time": "2019-03-27T06:00:41", "url": "https://files.pythonhosted.org/packages/86/98/fafd9cc896d2b020374e727a17e3e4a868f6b39b46fc05392abe61cef901/WsComSrv-0.1.1553666437.tar.gz" } ], "0.1.1553666615": [ { "comment_text": "", "digests": { "md5": "ae9078339145077619dc39cdb693d06e", "sha256": "a89d99b8450bdd6d1a68cc0ce9ff9068cab3abf99caf7b30e4a9ccc4611b9a1b" }, "downloads": -1, "filename": "WsComSrv-0.1.1553666615-py3-none-any.whl", "has_sig": false, "md5_digest": "ae9078339145077619dc39cdb693d06e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21852, "upload_time": "2019-03-27T06:03:37", "url": "https://files.pythonhosted.org/packages/1e/6b/b6cb43466917fe44098a6e22b2816de8c002e07fc991a88ab8a4efedd067/WsComSrv-0.1.1553666615-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d6db580cbf0d3d8c40b4c19ab82b792", "sha256": "60a6961ea36def6bd19cf4d4db9aae7212c8b2ce4f61fe1eb3f991d0ac82b7ef" }, "downloads": -1, "filename": "WsComSrv-0.1.1553666615.tar.gz", "has_sig": false, "md5_digest": "4d6db580cbf0d3d8c40b4c19ab82b792", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8408, "upload_time": "2019-03-27T06:03:40", "url": "https://files.pythonhosted.org/packages/e4/31/977600dafa62374128f30818792ab0acacfbf716c181749db2c350cccc49/WsComSrv-0.1.1553666615.tar.gz" } ], "0.1.1553666941": [ { "comment_text": "", "digests": { "md5": "2b0328ec0721309fcabc90c4af2802bf", "sha256": "bb8147674a1fc86dd33e4edb3f49af9e713dee852e39215acc029de26b83f864" }, "downloads": -1, "filename": "WsComSrv-0.1.1553666941-py3-none-any.whl", "has_sig": false, "md5_digest": "2b0328ec0721309fcabc90c4af2802bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21855, "upload_time": "2019-03-27T06:09:02", "url": "https://files.pythonhosted.org/packages/70/b2/dac09612fa8322789ff21d4ddb90e7602ddbe0a25d950bb698310f51500f/WsComSrv-0.1.1553666941-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a93cc12262f3a1949ab2c804a4c1ed5", "sha256": "1506082ea5a4602ae69a67cdaba37144da8fec62e5604105644fc758ee58849b" }, "downloads": -1, "filename": "WsComSrv-0.1.1553666941.tar.gz", "has_sig": false, "md5_digest": "1a93cc12262f3a1949ab2c804a4c1ed5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8416, "upload_time": "2019-03-27T06:09:04", "url": "https://files.pythonhosted.org/packages/ee/e0/a415925211287121ee278164130b469adfd285e8b03fc81a8c45a06915f2/WsComSrv-0.1.1553666941.tar.gz" } ], "0.1.1553667337": [ { "comment_text": "", "digests": { "md5": "7e2aec080640d1fd4f6764aae87a8162", "sha256": "2b4a85e325f9fae78834a6eb14a9962eef71a42f075a02cf0092bc94954488df" }, "downloads": -1, "filename": "WsComSrv-0.1.1553667337-py3-none-any.whl", "has_sig": false, "md5_digest": "7e2aec080640d1fd4f6764aae87a8162", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22847, "upload_time": "2019-03-27T06:15:39", "url": "https://files.pythonhosted.org/packages/16/4d/c874d8c98d8d78aa710cfe004db4ff8f51f4fb5a4af80166214905c48df4/WsComSrv-0.1.1553667337-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9100a66a8f650b85a960debf454e6517", "sha256": "15b09c152b1c377bb1674fb0e8883bed9cf28049c94dae316156d87aebc157b7" }, "downloads": -1, "filename": "WsComSrv-0.1.1553667337.tar.gz", "has_sig": false, "md5_digest": "9100a66a8f650b85a960debf454e6517", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9255, "upload_time": "2019-03-27T06:15:41", "url": "https://files.pythonhosted.org/packages/2f/0c/3b760356756c10f3d79570a612a325cf7e637bf9b4e43e757d0ee286feed/WsComSrv-0.1.1553667337.tar.gz" } ], "0.1.1553683691": [ { "comment_text": "", "digests": { "md5": "1eccbb72dbef4b61a786591f8c096da4", "sha256": "169bc02c226178718d67c278f25f525c11fce76719427ee6927c34005f306e82" }, "downloads": -1, "filename": "WsComSrv-0.1.1553683691-py3-none-any.whl", "has_sig": false, "md5_digest": "1eccbb72dbef4b61a786591f8c096da4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22848, "upload_time": "2019-03-27T10:48:17", "url": "https://files.pythonhosted.org/packages/a5/36/39a7b2ab7068b09d25bb560635cd662169f98c54ec5f1d3329a0b55475db/WsComSrv-0.1.1553683691-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7e3bcf5645232e4b6d0d8c4cfbe19dc", "sha256": "18b0f5c64f09dc6f2fef6cbf1b462114b1a9fd296f2402009c33bac05ac32f14" }, "downloads": -1, "filename": "WsComSrv-0.1.1553683691.tar.gz", "has_sig": false, "md5_digest": "b7e3bcf5645232e4b6d0d8c4cfbe19dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9233, "upload_time": "2019-03-27T10:48:20", "url": "https://files.pythonhosted.org/packages/0d/5c/be499e1ab475eb399b35dbbd7cda8262e76b6545349e993e3df01b93ccc7/WsComSrv-0.1.1553683691.tar.gz" } ], "0.1.1553691916": [ { "comment_text": "", "digests": { "md5": "176bbdb80cbde25c95e87b5010b4f07d", "sha256": "ec52ef3a8ea207bea7c37b2b5882d3e64e3b067ce282c571f4740c4e88097f6f" }, "downloads": -1, "filename": "WsComSrv-0.1.1553691916-py3-none-any.whl", "has_sig": false, "md5_digest": "176bbdb80cbde25c95e87b5010b4f07d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22860, "upload_time": "2019-03-27T13:05:22", "url": "https://files.pythonhosted.org/packages/3c/33/45fcbf26db7fd6ea82bf380f24d74aa941cc9de7071b99ada7e59e00ba59/WsComSrv-0.1.1553691916-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0482b6f2a090a57f627affb29359b530", "sha256": "87851c20dca8a0b390bccacada035b576b109bece1116dc28cfc8ffc6a23c7b5" }, "downloads": -1, "filename": "WsComSrv-0.1.1553691916.tar.gz", "has_sig": false, "md5_digest": "0482b6f2a090a57f627affb29359b530", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9235, "upload_time": "2019-03-27T13:05:26", "url": "https://files.pythonhosted.org/packages/58/5a/302adca8642d540848e81663ba0d360f04450cb624702e2091dac0ba5185/WsComSrv-0.1.1553691916.tar.gz" } ], "0.1.1553692186": [ { "comment_text": "", "digests": { "md5": "4238e8a2d4ebb1d8c26aa332e7e8dded", "sha256": "9ee24b10baad2f154b1116d775c4fce7269b9b15631c4b4382d9204a794c331e" }, "downloads": -1, "filename": "WsComSrv-0.1.1553692186-py3-none-any.whl", "has_sig": false, "md5_digest": "4238e8a2d4ebb1d8c26aa332e7e8dded", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22865, "upload_time": "2019-03-27T13:09:48", "url": "https://files.pythonhosted.org/packages/e5/89/1962e3fd13e39095b0efb99155a1e315818221603942fea6b5840c1c51eb/WsComSrv-0.1.1553692186-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f202a9e8ae30e115a761c37249e8fb8d", "sha256": "b65f2e1eb66925dfeb5b15a67d9929637dc109bdffb11b4915b7e62dd5675787" }, "downloads": -1, "filename": "WsComSrv-0.1.1553692186.tar.gz", "has_sig": false, "md5_digest": "f202a9e8ae30e115a761c37249e8fb8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9244, "upload_time": "2019-03-27T13:09:51", "url": "https://files.pythonhosted.org/packages/05/2a/ffed47ce15b0c47047ce35217baae4e5fe440bb687fc84324cd634b14a5d/WsComSrv-0.1.1553692186.tar.gz" } ], "0.1.1553692242": [ { "comment_text": "", "digests": { "md5": "0540aac5d224776ca409b06b8f0ce708", "sha256": "8f65060c6047dd5923d472703bc1915fab25cea666bede763f40d3013058f06b" }, "downloads": -1, "filename": "WsComSrv-0.1.1553692242-py3-none-any.whl", "has_sig": false, "md5_digest": "0540aac5d224776ca409b06b8f0ce708", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22866, "upload_time": "2019-03-27T13:10:46", "url": "https://files.pythonhosted.org/packages/97/df/de2e53d2f3195373f1df98e760017d5799463fdf7b59d276855a59dfde10/WsComSrv-0.1.1553692242-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "102a36fbce5aed5b6e3fe1fe7c05c011", "sha256": "c8baeb8d9254f95c183b8a6147a964c486a4a7c9b21898cd185d81dedc8e8162" }, "downloads": -1, "filename": "WsComSrv-0.1.1553692242.tar.gz", "has_sig": false, "md5_digest": "102a36fbce5aed5b6e3fe1fe7c05c011", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9242, "upload_time": "2019-03-27T13:10:49", "url": "https://files.pythonhosted.org/packages/3b/2f/a509000591e76be6720b14b6e8addb9914431394d3d85defa97e517ea16c/WsComSrv-0.1.1553692242.tar.gz" } ], "0.1.1553755810": [ { "comment_text": "", "digests": { "md5": "ad4fcd67966981a0853383257ea51e6d", "sha256": "bdedb480afbf1bb2b34b65c212dbf204b45ae22cb0beb010a3afe7a367f8a124" }, "downloads": -1, "filename": "WsComSrv-0.1.1553755810-py3-none-any.whl", "has_sig": false, "md5_digest": "ad4fcd67966981a0853383257ea51e6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22859, "upload_time": "2019-03-28T06:50:16", "url": "https://files.pythonhosted.org/packages/10/71/74a1123893f707348aee86d9cc5c49859d383d572ea63b810e7908081c15/WsComSrv-0.1.1553755810-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30b3a86eb6c87b4e5fb40ec37997c7c9", "sha256": "40310dfdb747296fc615203d80279bffcebff384e3a430c72ba86af68972c6df" }, "downloads": -1, "filename": "WsComSrv-0.1.1553755810.tar.gz", "has_sig": false, "md5_digest": "30b3a86eb6c87b4e5fb40ec37997c7c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9241, "upload_time": "2019-03-28T06:50:20", "url": "https://files.pythonhosted.org/packages/52/da/246b5c25f95dc0350c3b151bab6ae9cb1212b683843f8f91bdc7b2097825/WsComSrv-0.1.1553755810.tar.gz" } ], "0.1.1553763588": [ { "comment_text": "", "digests": { "md5": "e2eeade0a8f80c498ab6b62da8424e64", "sha256": "0290eb6ea135350a5b2885e61417410e5298d5b14ed7429e7f22bfffdee80059" }, "downloads": -1, "filename": "WsComSrv-0.1.1553763588-py3-none-any.whl", "has_sig": false, "md5_digest": "e2eeade0a8f80c498ab6b62da8424e64", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22957, "upload_time": "2019-03-28T08:59:49", "url": "https://files.pythonhosted.org/packages/5f/42/b80df292123a8c97ea99ed5e70eed3c9b16c3f10326db1e3b66df53fd428/WsComSrv-0.1.1553763588-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f4fac450ad0de641fbff8db4c08c62b", "sha256": "9a5747379d7ad89d83e2d3c1be44c3fea94bea5ea5b9b1ea20dfcaff6589cd16" }, "downloads": -1, "filename": "WsComSrv-0.1.1553763588.tar.gz", "has_sig": false, "md5_digest": "6f4fac450ad0de641fbff8db4c08c62b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9390, "upload_time": "2019-03-28T08:59:51", "url": "https://files.pythonhosted.org/packages/12/67/d57552e16cf4f3a0d85fcea9399d26b6ffc9d84e07326d434e1d10852950/WsComSrv-0.1.1553763588.tar.gz" } ], "0.1.1555089850": [ { "comment_text": "", "digests": { "md5": "985e64c0a2a447f712da9d775e195f20", "sha256": "95ef56e636dbe88dacc078668d15c43f9499fc1dc3488c09cb7ab1cc174c2721" }, "downloads": -1, "filename": "WsComSrv-0.1.1555089850-py3-none-any.whl", "has_sig": false, "md5_digest": "985e64c0a2a447f712da9d775e195f20", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23243, "upload_time": "2019-04-12T17:24:16", "url": "https://files.pythonhosted.org/packages/f0/8a/56979b66eb7a0999b578d7940e8399ff3208436f75c915e49527ddfca37e/WsComSrv-0.1.1555089850-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "132ad5158d1fa58d7757fa00604e1395", "sha256": "54b682e09948cf34e341f9f3e4cb4d826bc99146140e404d949047a88a4e0761" }, "downloads": -1, "filename": "WsComSrv-0.1.1555089850.tar.gz", "has_sig": false, "md5_digest": "132ad5158d1fa58d7757fa00604e1395", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9592, "upload_time": "2019-04-12T17:24:17", "url": "https://files.pythonhosted.org/packages/aa/f4/8c8a9f010f4d8cb353a55bde06d281949c130373bd9a7e1234ea337be122/WsComSrv-0.1.1555089850.tar.gz" } ], "0.1.1555403719": [ { "comment_text": "", "digests": { "md5": "fe12be576ebc353c803889d322b5bc38", "sha256": "e58e5bd439c744448aedfb82d01a61be8775af41ffff3137f584e0918b4ea517" }, "downloads": -1, "filename": "WsComSrv-0.1.1555403719-py3-none-any.whl", "has_sig": false, "md5_digest": "fe12be576ebc353c803889d322b5bc38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23983, "upload_time": "2019-04-16T08:35:21", "url": "https://files.pythonhosted.org/packages/91/81/6a2c324070b5c87095d41c88c88c73876b35542c9270d8a9e64cf89ffe4f/WsComSrv-0.1.1555403719-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70bb8134119aa7bcca819bb70267ba10", "sha256": "7c76babf9f8651bd2ed1ba2a6446b7a379db01e0cdab09529b7d51cc25435793" }, "downloads": -1, "filename": "WsComSrv-0.1.1555403719.tar.gz", "has_sig": false, "md5_digest": "70bb8134119aa7bcca819bb70267ba10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10319, "upload_time": "2019-04-16T08:35:23", "url": "https://files.pythonhosted.org/packages/68/9c/af650f27a84dcd136874a49121b855d311e3f168f4f336e527905a26519b/WsComSrv-0.1.1555403719.tar.gz" } ], "0.1.1555405149": [ { "comment_text": "", "digests": { "md5": "11481860bb76ef3ab5e002d77465821f", "sha256": "efa9ed1fe5588e411808901ab1bc74be4a5739e6d4ac12e2642e1ed54a7a8559" }, "downloads": -1, "filename": "WsComSrv-0.1.1555405149-py3-none-any.whl", "has_sig": false, "md5_digest": "11481860bb76ef3ab5e002d77465821f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24006, "upload_time": "2019-04-16T08:59:12", "url": "https://files.pythonhosted.org/packages/c1/d2/82837d8c8e36874a77b2122a9b216909571a45618b76ac2df2815b2095a6/WsComSrv-0.1.1555405149-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e15e801e87358261459ea05f3868c77", "sha256": "fabf6fe39c14ad7ea684c9cd0e2001dc114279770125d9f26524834005db462e" }, "downloads": -1, "filename": "WsComSrv-0.1.1555405149.tar.gz", "has_sig": false, "md5_digest": "3e15e801e87358261459ea05f3868c77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10340, "upload_time": "2019-04-16T08:59:13", "url": "https://files.pythonhosted.org/packages/d1/5c/edba2684bb625ad70c9d4204cc2011e32cb34854fb7dbab5b3544b58405d/WsComSrv-0.1.1555405149.tar.gz" } ], "0.1.1555408076": [ { "comment_text": "", "digests": { "md5": "f33d2344f5afdd79d7e870909159944a", "sha256": "047509113188936c404f325f6608b62acd25aaeaff65a362bcbde9b4ba613c6f" }, "downloads": -1, "filename": "WsComSrv-0.1.1555408076-py3-none-any.whl", "has_sig": false, "md5_digest": "f33d2344f5afdd79d7e870909159944a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24004, "upload_time": "2019-04-16T09:47:58", "url": "https://files.pythonhosted.org/packages/87/94/02ff42ac0458577862dd3cbdd404c258f7e7c72d27090dc67af2b6990bea/WsComSrv-0.1.1555408076-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d63762bcc192eec13a080b2469cc46e", "sha256": "5d1100cbd798bce7d82f5f30061cb889d5c9384a5d34a3301baed49a9e5548d0" }, "downloads": -1, "filename": "WsComSrv-0.1.1555408076.tar.gz", "has_sig": false, "md5_digest": "6d63762bcc192eec13a080b2469cc46e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10341, "upload_time": "2019-04-16T09:47:59", "url": "https://files.pythonhosted.org/packages/52/68/30fd01b86b9d08ba1ccaec7099da3bcdc62835fe453e04195dce8e475103/WsComSrv-0.1.1555408076.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f33d2344f5afdd79d7e870909159944a", "sha256": "047509113188936c404f325f6608b62acd25aaeaff65a362bcbde9b4ba613c6f" }, "downloads": -1, "filename": "WsComSrv-0.1.1555408076-py3-none-any.whl", "has_sig": false, "md5_digest": "f33d2344f5afdd79d7e870909159944a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24004, "upload_time": "2019-04-16T09:47:58", "url": "https://files.pythonhosted.org/packages/87/94/02ff42ac0458577862dd3cbdd404c258f7e7c72d27090dc67af2b6990bea/WsComSrv-0.1.1555408076-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d63762bcc192eec13a080b2469cc46e", "sha256": "5d1100cbd798bce7d82f5f30061cb889d5c9384a5d34a3301baed49a9e5548d0" }, "downloads": -1, "filename": "WsComSrv-0.1.1555408076.tar.gz", "has_sig": false, "md5_digest": "6d63762bcc192eec13a080b2469cc46e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10341, "upload_time": "2019-04-16T09:47:59", "url": "https://files.pythonhosted.org/packages/52/68/30fd01b86b9d08ba1ccaec7099da3bcdc62835fe453e04195dce8e475103/WsComSrv-0.1.1555408076.tar.gz" } ] }