{ "info": { "author": "Dongwei", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "## rtconfig\n\nA simple Python lib for manage remote server configuration. \n- Configuration remote unified management center.\n- When the configuration changes, pushed to client in real time.\n\n## Installing\n```\npip install rtconfig\n```\n\n## Server deploy\nYou can start server directly by single process.\n```\npython -m rtconfig.server\n```\nCommand options:\n- --host: server host\n- --port: server port\n- --auto-reload: if auto reload\n- --store-type: rtconfig server store type\n- --broker-url: rtconfig server broker url\n\nOr you can start server multiprocess by Gunicorn.\n>gunicorn rtconfig.server:app -b 0.0.0.0:8089 -k alita.GunicornWorker -w 2\n\n## Login account\nBoth of initial user name and password is `admin`.\nIf you want to change password or add new account, you need use command like this:\n>python -m rtconfig.cli update_user {name} {password}\n\n## Client connection\nCreate a new python module `conf.py`, then write code like this:\n```\nfrom rtconfig import RtConfigClient\nclient = RtConfigClient('demo',ws_url='ws://127.0.0.1:8089',config_module=globals())\n```\nSo, you can use real time configuration like this:\n```\nconf.config_name\n```\n\n## Configuration\nYou can create `service.py` python file in current directory. \n\nConfiguration options:\n\n| config name | default | description |\n|--------|--------|--------|\n| DEBUG | false | debug mode |\n| MAX_CONNECTION | 1024 | max client connections |\n| STORE_TYPE | json_file | data store type |\n| BROKER_URL | | data store broker url |\n\n## Config data store method broker url\njson_file\n>BROKER_URL = \"~/rtconfig\" (\u9ed8\u8ba4\u53ef\u4e0d\u586b)\n\nredis\n>BROKER_URL = \"redis://127.0.0.1:6379/0\"\n\nmongodb\n>BROKER_URL = \"mongodb://127.0.0.1:27017/demo?connect=false\"\n\n## Notes\n- `json_file` store type not support multiprocess deploy.\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/dwpy/rtconfig", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "rtconfig", "package_url": "https://pypi.org/project/rtconfig/", "platform": "any", "project_url": "https://pypi.org/project/rtconfig/", "project_urls": { "Code": "https://github.com/dwpy/rtconfig", "Homepage": "https://github.com/dwpy/rtconfig" }, "release_url": "https://pypi.org/project/rtconfig/0.1.7/", "requires_dist": [ "attrs", "uwsgidecorators", "python-dotenv", "websockets (==6.0)" ], "requires_python": ">=3.5", "summary": "A simple python real-time remote configuration framework.", "version": "0.1.7" }, "last_serial": 5602956, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a52369dede42a38914cacccb0007eec6", "sha256": "2bd1e29a15c9832a635364b2359bc9c109e4f357ce59a62612c7511edda333dd" }, "downloads": -1, "filename": "rtconfig-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a52369dede42a38914cacccb0007eec6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 23752, "upload_time": "2019-06-10T06:57:06", "url": "https://files.pythonhosted.org/packages/a6/ca/f018c4e094c92356cf89e21fe19f6151aa71afaa7aa1070ad938b69a0d2d/rtconfig-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e3f5e5f164026aaba13ce5edf0dc54d", "sha256": "1d134aa47f0ad8a5629a119db7b43814caf91ef434068ca817a13a9312d9bd0d" }, "downloads": -1, "filename": "rtconfig-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4e3f5e5f164026aaba13ce5edf0dc54d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19263, "upload_time": "2019-06-10T06:57:09", "url": "https://files.pythonhosted.org/packages/07/d7/076a430aefeafe70f125cfa168445bb68bbc380e521810f633891a595876/rtconfig-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f4787eaac47d31503728315e8b8f71a2", "sha256": "9f9adc5fad404ad7cdc51d375ad803ac5e0a4177071b067feece977be254e4dd" }, "downloads": -1, "filename": "rtconfig-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f4787eaac47d31503728315e8b8f71a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 25271, "upload_time": "2019-06-12T09:03:19", "url": "https://files.pythonhosted.org/packages/36/35/43666a918bbb8e9d4a4a734ed30b91124a39e7c8c1d6909951bac369589c/rtconfig-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddb574be1ccb93691a39eb45c69ab210", "sha256": "64e99cda62ad6b6fb4eab4da144876a300f765bbfb4c5c81eae54cbc94e87433" }, "downloads": -1, "filename": "rtconfig-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ddb574be1ccb93691a39eb45c69ab210", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20850, "upload_time": "2019-06-12T09:03:21", "url": "https://files.pythonhosted.org/packages/35/88/d68ffdb21f2d1c750d62c808918586a6f1c180b60f5554b6b920ba4a799c/rtconfig-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "69577a9c362a60deb2fdd7fb0f1faef0", "sha256": "cb868377b52460ab055b7edd8d5e69a866277ab14721053cc1fdb238fc2690be" }, "downloads": -1, "filename": "rtconfig-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "69577a9c362a60deb2fdd7fb0f1faef0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 872248, "upload_time": "2019-06-12T09:16:59", "url": "https://files.pythonhosted.org/packages/4d/15/353668d8f24e70703e2f0b8e4db893b8b2ffff89db4aabb9d41464dce164/rtconfig-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4696d46cc3474111b955ec508fc42b3d", "sha256": "8793a11e73b8a099f8eee2ab38f680fc9153c70d051652a4ca66728448eada6e" }, "downloads": -1, "filename": "rtconfig-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4696d46cc3474111b955ec508fc42b3d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 808210, "upload_time": "2019-06-12T09:17:04", "url": "https://files.pythonhosted.org/packages/00/72/778a953bb769e85d583f77cd698f908d72ecda561e57518f6edb533dd323/rtconfig-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c99334d875d45ee1c916b238859cd66d", "sha256": "6382f36e7c9022f50d1ed888fa74c0d2d974fd18bbea337861cbada4ff591cb0" }, "downloads": -1, "filename": "rtconfig-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c99334d875d45ee1c916b238859cd66d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 872740, "upload_time": "2019-06-13T07:18:11", "url": "https://files.pythonhosted.org/packages/58/1b/9734035d44d2c451792bb54f654bbad6401eb28f16189d2f416f43f4ccd1/rtconfig-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "359a3dbc7b4155995b525b1b2850920f", "sha256": "f8912b27fe704c58ce098bab2de5c61ca3a61c62f69cd8659bc1eec43837d02d" }, "downloads": -1, "filename": "rtconfig-0.1.3.tar.gz", "has_sig": false, "md5_digest": "359a3dbc7b4155995b525b1b2850920f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 808472, "upload_time": "2019-06-13T07:18:18", "url": "https://files.pythonhosted.org/packages/c3/50/435f22f2051beb216f88f474723534485b1ccac1531270cbd174c8745f06/rtconfig-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "214a517a4937fb80d9458e842f5a52e5", "sha256": "6bba75b756c8f69948586fb8b223df14bb45c6622310ded08a4d89c4615d8a8b" }, "downloads": -1, "filename": "rtconfig-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "214a517a4937fb80d9458e842f5a52e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 874820, "upload_time": "2019-07-04T05:37:04", "url": "https://files.pythonhosted.org/packages/d7/f5/6b7596ad173faef92f64ea08b68ff4933f8824420f30b0ac70e52adb1db4/rtconfig-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39edc9db7a2b08af87e522d534ca10c8", "sha256": "0ed54bbbe360cc2b287d5de5a153d4a4a09e9815c85bbda75e1eb27e19d753c2" }, "downloads": -1, "filename": "rtconfig-0.1.4.tar.gz", "has_sig": false, "md5_digest": "39edc9db7a2b08af87e522d534ca10c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 809434, "upload_time": "2019-07-04T05:37:08", "url": "https://files.pythonhosted.org/packages/07/26/0e040dc7900f0f7a1492d17b92f236d5853e675f54f2f1a8110bad0fe4d4/rtconfig-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "0dc613737abfdeaaaf17c17c5cc787ee", "sha256": "20289b58891a9c3d84dfdbc19724201c38a8bd421b9a79dc843a6f5cecbf7461" }, "downloads": -1, "filename": "rtconfig-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "0dc613737abfdeaaaf17c17c5cc787ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 874842, "upload_time": "2019-07-09T10:17:19", "url": "https://files.pythonhosted.org/packages/a4/42/7c510bce57bbbd4da900d1524c16e84c6c42ad13a02c34a507f1aff2d1b4/rtconfig-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3ff080f1a6b06a7db16a1ec442e3730", "sha256": "e8360c12703c8e50fcccd2040931acdf268d29a39a6ec5249308cd218938f362" }, "downloads": -1, "filename": "rtconfig-0.1.5.tar.gz", "has_sig": false, "md5_digest": "b3ff080f1a6b06a7db16a1ec442e3730", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 809439, "upload_time": "2019-07-09T10:17:24", "url": "https://files.pythonhosted.org/packages/e7/f0/643e9241d5970ebcb0b0f5a78dbf1a45637c60ccc23fdc53e79f264ba43c/rtconfig-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "ab7ebf99ca76bee0a543b7010f805c68", "sha256": "0acd4fe36831406b1aa2c712623e9546403510c7bf34b98579174b841567b63d" }, "downloads": -1, "filename": "rtconfig-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "ab7ebf99ca76bee0a543b7010f805c68", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 874752, "upload_time": "2019-07-10T06:17:36", "url": "https://files.pythonhosted.org/packages/83/7f/1f5bb961cdb1ff2d2b963ec0cd8778f96659bc6b4dc9a2d565e4af02200e/rtconfig-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "968d30caf77884dab58462531506e43f", "sha256": "1732945872bfdcd3cc8dc7fa9fb8034333bb198a5bfb3b66647f7c0c3a623121" }, "downloads": -1, "filename": "rtconfig-0.1.6.tar.gz", "has_sig": false, "md5_digest": "968d30caf77884dab58462531506e43f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 809594, "upload_time": "2019-07-10T06:17:47", "url": "https://files.pythonhosted.org/packages/ed/22/0e7c2fb6727f276c883d66462e60cd0d970e0e20f8b4bea27a5bb7d942f8/rtconfig-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "2bd812c6ad952bb3aebf1ff83db3d753", "sha256": "3647158689b2981be9f302fcab909d23e899ce3511cef55798a1da0d99b30818" }, "downloads": -1, "filename": "rtconfig-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "2bd812c6ad952bb3aebf1ff83db3d753", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 875227, "upload_time": "2019-07-30T02:22:49", "url": "https://files.pythonhosted.org/packages/9e/95/7aac137d033d111c825ea7d9f03c43bf40974bdae0076c4197fa3c2d6bad/rtconfig-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb9730f63c6c9837272a1a4626fe23bd", "sha256": "a8fc800acac8e5f9fc152fa904ee11a5cdb65c658fa4ebd33aac3cfcac3cf312" }, "downloads": -1, "filename": "rtconfig-0.1.7.tar.gz", "has_sig": false, "md5_digest": "fb9730f63c6c9837272a1a4626fe23bd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 810027, "upload_time": "2019-07-30T02:22:54", "url": "https://files.pythonhosted.org/packages/9a/cb/4883fb270dece66b88a8ee4abe6c115885e9dac14c19c9cef848e8f2832e/rtconfig-0.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2bd812c6ad952bb3aebf1ff83db3d753", "sha256": "3647158689b2981be9f302fcab909d23e899ce3511cef55798a1da0d99b30818" }, "downloads": -1, "filename": "rtconfig-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "2bd812c6ad952bb3aebf1ff83db3d753", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 875227, "upload_time": "2019-07-30T02:22:49", "url": "https://files.pythonhosted.org/packages/9e/95/7aac137d033d111c825ea7d9f03c43bf40974bdae0076c4197fa3c2d6bad/rtconfig-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb9730f63c6c9837272a1a4626fe23bd", "sha256": "a8fc800acac8e5f9fc152fa904ee11a5cdb65c658fa4ebd33aac3cfcac3cf312" }, "downloads": -1, "filename": "rtconfig-0.1.7.tar.gz", "has_sig": false, "md5_digest": "fb9730f63c6c9837272a1a4626fe23bd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 810027, "upload_time": "2019-07-30T02:22:54", "url": "https://files.pythonhosted.org/packages/9a/cb/4883fb270dece66b88a8ee4abe6c115885e9dac14c19c9cef848e8f2832e/rtconfig-0.1.7.tar.gz" } ] }