{ "info": { "author": "liuyalong", "author_email": "4379711@qq.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Software Development :: Libraries" ], "description": "\n# functools\n\n\n##### \u4e00\u4e9b\u5f88\u6709\u7528\u7684\u5de5\u5177\n\n------------\n\n\n\n### \u4f7f\u7528\u8bf4\u660e\uff1a\n\n------------\n\n> pip install geeker\n\n------------\n\n\n> ~~\u89c9\u5f97\u597d\u7528\u8bf7\u70b9\u4e2astar\uff0c\u5206\u4eab\u7ed9\u66f4\u591a\u7684\u4eba\u4f7f\u7528~~\n------------\n\n\n## schedule\uff1a\n#### \u8bf4\u660e:geeker.schedule\u662fschedule\u7684\u4e8c\u6b21\u5f00\u53d1,\u4fee\u590d\u539f\u4f5c\u8005\u4ee3\u7801\u65e5\u671f\u4e0d\u51c6\u786e\u7b49BUG\uff0c\u5e76\u89e3\u51b3\u4efb\u52a1\u5ef6\u8fdf\u7b49\u95ee\u9898\n \n \n from geeker import schedule\n import time\n \n def abc():\n print('abc')\n \n # \u6ce8\u518c\u4efb\u52a1\n schedule.every(2).seconds.do(abc)\n schedule.every().day.at(\"10:00\").do(abc)\n \n # \u5f00\u542f\u4efb\u52a1\n while True:\n # thread_pool=False(\u9ed8\u8ba4)\u4e0d\u4f1a\u4f7f\u7528\u7ebf\u7a0b\u6c60,\u5982\u679c\u4e0a\u4e2a\u4efb\u52a1\u8017\u65f6\u5f88\u957f,\n # \u5728\u4e0b\u4e00\u6b21\u4efb\u52a1\u542f\u52a8\u65f6\u95f4\u70b9\u4ecd\u672a\u5b8c\u6210,\u4f1a\u9020\u6210\u4e0b\u6b21\u4efb\u52a1\u5ef6\u540e\n schedule.run_pending()\n \n # \u53c2\u6570max_worker \u63a7\u5236\u4efb\u52a1\u7684\u603b\u6570,\u9ed8\u8ba4\u662f\u4efb\u52a1\u6570\u76842\u500d.\n # \u6ce8\u610f,\u5982\u679c\u8bbe\u7f6e\u4e00\u4e2a\u8f83\u5927\u503c,\u8bf7\u8003\u8651\u5185\u5b58\u662f\u5426\u5141\u8bb8\n \n # schedule.run_pending(thread_pool=True, max_worker=5)\n time.sleep(1)\n \n------------ \n\n## MyLog:\n#### \u8bf4\u660e:\u5c06\u65e5\u5fd7\u5206\u65e5\u5fd7\u7b49\u7ea7\u8bb0\u5f55,\u5e76\u81ea\u52a8\u538b\u7f292019-11-11.info.log.gz\n\n#### \u53c2\u6570:\n :param dir_path: \u65e5\u5fd7\u8bb0\u5f55\u7684\u8def\u5f84,\u9ed8\u8ba4\u662f\u5f53\u524d\u8def\u5f84\u4e0b\u7684log\u6587\u4ef6\u5939\n :param logger_name: logger\u5bf9\u8c61\u7684\u540d\u5b57\n :param info_name: \u4fdd\u5b58info\u7b49\u7ea7\u7684\u6587\u4ef6\u540d\u5b57\n :param error_name:\n :param warning_name:\n :param debug_name:\n :param interval: \u538b\u7f29\u65e5\u5fd7\u7684\u9891\u7387,\u9ed8\u8ba4\u662f7\u5929\n :param detail: bool\u503c,\u8bb0\u5f55\u65e5\u5fd7\u662f\u5426\u4e3a\u8be6\u7ec6\u8bb0\u5f55\n :param debug: \u662f\u5426\u8bb0\u5f55debug,\u9ed8\u8ba4\u4e0d\u8bb0\u5f55\n :param info: \u662f\u5426\u8bb0\u5f55info,\u9ed8\u8ba4\u8bb0\u5f55\n :param error:\n :param warning:\n # \u5b9e\u4f8b\u65b9\u6cd5:\n get_logger()-->logger\n \n#### \u4f7f\u7528\u4e3e\u4f8b:\n from geeker import MyLog\n # \u8bb0\u5f55\u56db\u79cd\u7c7b\u578b\u7684\u65e5\u5fd7\n logger = MyLog(debug=True).get_logger()\n logger.info('info')\n logger.debug('debug')\n logger.error('error')\n logger.warning('warning')\n \n # # # # # # # # # # # # # # # # # # # # # # # # #\n \n # \u53ea\u8bb0\u5f55\u9519\u8bef\u65e5\u5fd7\n logger = MyLog(info=False,warning=False).get_logger()\n logger.info('info')\n logger.debug('debug')\n logger.error('error')\n logger.warning('warning')\n#### \u6ce8\u610f:\n##### MyLog()\u7684\u5b9e\u4f8b\u53ea\u4f1a\u540c\u65f6\u5b58\u5728\u4e00\u4e2a,\u9ed8\u8ba4\u8bb0\u5f55\u9996\u6b21\u521b\u5efa\u5b9e\u4f8b\u7684\u5c5e\u6027.\n#### \u4f8b\u5982:\n \n mylog = MyLog('./logs/logs/')\n mylog2 = MyLog()\n logger = mylog.get_logger()\n logger2 = mylog2.get_logger()\n logger.info('info')\n \n logger2 = MyLog('./logs/logs2/').get_logger()\n logger2.info('info2')\n \n##### \u4ee5\u4e0a\u4e24\u4e2alogger logger2,\u4f1a\u4ee5logger(\u7b2c\u4e00\u6b21\u521b\u5efa\u5b9e\u4f8b)\u7684\u5c5e\u6027\u4e3a\u51c6,\u65e5\u5fd7\u4f1a\u5b58\u653e\u5728./logs/logs/\u4e0b\n \n------------ \n\n## Concurrency :\n#### \u8bf4\u660e:\u63a7\u5236\u51fd\u6570\u6267\u884c\u9891\u7387\n\n>(\u4ec5\u7528\u4e8e\u591a\u7ebf\u7a0b\u6a21\u578b,\u534f\u7a0b\u65e0\u6548)\n\n from geeker import Concurrency\n\n # \u6bcf4\u79d2\u6267\u884c5\u6b21abc()\n\n @Concurrency(5,4)\n def abc():\n pass\n \n # \u5e76\u53d1\u91cf\u4e3a5\n @Concurrency(5)\n def abc():\n pass\n \n class Test:\n def __init__(self):\n pass\n \n @Concurrency(3)\n def test(self, a):\n print(a, self)\n time.sleep(a)\n\t\t\t\n------------\n\n## run_time:\n#### \u8bf4\u660e:\u6b64\u88c5\u9970\u5668\u8c03\u63a7\u51fd\u6570\u8fd0\u884c\u65f6\u95f4\n \n from geeker import runtime\n \n @run_time\n def test(i):\n # int('asfa')\n time.sleep(i)\n print('\u8fd0\u884c\u7ed3\u679c:', i)\n \n >>>\n START test(1, {})\n \u8fd0\u884c\u7ed3\u679c: 1\n test(1, {}) takes <1.0006> seconds\n STOP test(1, {})\n\n------------\n\n## Singleton:\n#### \u8bf4\u660e:\u5355\u4f8b\u6a21\u5f0f,\u5efa\u8bae\u4f7f\u7528\u8fd9\u4e2a\n\n from geeker import Singleton\n # \u5b9e\u4f8b\u7684\u5c5e\u6027\u4e3a\u7b2c\u4e00\u6b21\u521d\u59cb\u5316\u65f6\u7684\u5c5e\u6027\n class Test(Singleton):\n pass\n\n## SingletonOverride\n#### \u8bf4\u660e:\u5355\u4f8b\u6a21\u5f0f\n\n from geeker import SingletonOverride\n # \u540e\u9762\u521b\u5efa\u7684\u5b9e\u4f8b\u5c5e\u6027\u4f1a\u8986\u76d6\u524d\u8005\u7684\u5b9e\u4f8b\u5c5e\u6027\n class Test(SingletonOverride):\n pass\n\n------------\n\n## TimeOut:\n#### \u8bf4\u660e:\u8d85\u65f6\u88c5\u9970\u5668\n\n### \u6ce8\u610f:\n##### \u6b64\u88c5\u9970\u5668\u9700\u8981\u989d\u5916\u7684\u7ebf\u7a0b\u6570\u91cf\u6765\u63a7\u5236\u4efb\u52a1\u6267\u884c,\n##### \u5982\u5728\u591a\u7ebf\u7a0b\u5e76\u53d1\u60c5\u51b5\u4e0b\u4f7f\u7528,\u8bf7\u8bc4\u4f30\u673a\u5668\u6027\u80fd(\u4e00\u822c\u6ca1\u5565\u5927\u95ee\u9898)\n\n from geeker import TimeOut\n # \u7cbe\u5ea6\u4e3a0.1\u79d2\n \t\t\n @TimeOut(4)\n def test(i):\n time.sleep(i)\n \n \n class AA:\n \n @TimeOut(3.0)\n def test(self, i):\n time.sleep(i)\n\n\n------------\n\t\n\n## MyType:\n#### \u8bf4\u660e:\u7c7b\u5c5e\u6027\u7684\u7c7b\u578b\u68c0\u67e5\n\n from geeker import MyType \n \n class Test:\n lll = MyType('str_type1', expect_type=str)\n llll = MyType('str_type2', expect_type=str)\n \n def __init__(self, value, ):\n self.lll = value\n self.llll = value\n \n------------\n\n\n## MyDict:\n### \u6ce8\u610f:\n##### \u5982\u9700\u8981\u8f6c\u6362\u6210\u5b57\u5178,\u9700\u8981\u4f7f\u7528dict()\u53ef\u76f4\u63a5\u8f6c\u6362,\u8f6c\u6362\u540e\u53ef\u76f4\u63a5\u5b58MongoDB\n \n from geeker import MyDict\n a=MyDict()\n a.append_key('key','value')\n a.o=5\n a.c='fasf'\n a.add_key('key0','value0')\n print(dict(a))\n \u4f7f\u7528dict()\u51fd\u6570\u53ef\u4ee5\u76f4\u63a5\u8f6c\u6362\u4e3a\u5b57\u5178\u683c\u5f0f\n \n >>>{\n 'key': ['value'],\n 'o': 5, \n 'c': 'fasf', \n 'key0': {'value0'}\n }\n \n------------\n\n## IdGenerator:\n#### \u8bf4\u660e:\u5206\u5e03\u5f0f\u552f\u4e00ID\u751f\u6210\u5668\n \n from geeker import IdGenerator\n \n id_generator =IdGenerator()\n _id =id_generator.get_id()\n\n------------\n\n## show_memory_info:\n#### \u8bf4\u660e:\u67e5\u770b\u5f53\u524dpython\u8fdb\u7a0b\u5360\u7528\u7684\u5185\u5b58\n\n from geeker import show_memory_info\n \n show_memory_info()\n\n------------\n\n## retry:\n#### \u51fd\u6570\u88c5\u9970\u5668,\u6355\u83b7\u67d0\u4e2a\u5f02\u5e38,\u91cd\u65b0\u6267\u884c,\u76f4\u5230\u8bbe\u7f6e\u7684\u6700\u5927\u6b21\u6570,\u629b\u51faRuntimeError\n\n from geeker import retry\n \n @retry(5, ValueError)\n def test():\n int('asf')\n \n------------\n\n\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/4379711/functools_lyl", "keywords": "", "license": "MIT License", "maintainer": "liuyalong", "maintainer_email": "", "name": "geeker", "package_url": "https://pypi.org/project/geeker/", "platform": "all", "project_url": "https://pypi.org/project/geeker/", "project_urls": { "Homepage": "https://github.com/4379711/functools_lyl" }, "release_url": "https://pypi.org/project/geeker/2.1/", "requires_dist": [ "colorama", "click", "psutil" ], "requires_python": "", "summary": "Some useful functions !", "version": "2.1", "yanked": false, "yanked_reason": null }, "last_serial": 10596481, "releases": { "2.0": [ { "comment_text": "", "digests": { "md5": "03e1207b874aa84e395ee980f5493713", "sha256": "250f5a6670ccefdfd0485f2c2c5cdbc270c60997be78da6f3cfd0817cec90394" }, "downloads": -1, "filename": "geeker-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "03e1207b874aa84e395ee980f5493713", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21550, "upload_time": "2021-04-13T02:16:42", "upload_time_iso_8601": "2021-04-13T02:16:42.168035Z", "url": "https://files.pythonhosted.org/packages/a4/0d/3b688b02f31c9fc164f94c0852905edf86878163c5cffbe07ed45e738a10/geeker-2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fe71bae747fa9c339a6890ac3d3c10b9", "sha256": "743a17af5d0f3b5dee7017aed5ab804e5e1455117c5ab9d48bb0337894f1e6ea" }, "downloads": -1, "filename": "geeker-2.0.tar.gz", "has_sig": false, "md5_digest": "fe71bae747fa9c339a6890ac3d3c10b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17728, "upload_time": "2021-04-13T02:16:43", "upload_time_iso_8601": "2021-04-13T02:16:43.441654Z", "url": "https://files.pythonhosted.org/packages/6f/7c/c74c2ca860a7b0767841843356274c1e6ce60d4b2a9e5d6ea00e2ef15f95/geeker-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1": [ { "comment_text": "", "digests": { "md5": "13bdaf303e2bb628d236d8a6e2c49935", "sha256": "c58c421ae639682ee5c825eb2672dee46e88eb2ee1a4a2307d553ba2ead353ad" }, "downloads": -1, "filename": "geeker-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "13bdaf303e2bb628d236d8a6e2c49935", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21516, "upload_time": "2021-06-09T03:50:52", "upload_time_iso_8601": "2021-06-09T03:50:52.571819Z", "url": "https://files.pythonhosted.org/packages/37/41/6a9b35070761876cb454b5b9429fb9fd8bf9ab49d78d2efc524283f9c3e1/geeker-2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6ea2da31855282c8aa5cff4af63138c0", "sha256": "4815db21aadf9a95e5c2a1c4925552085ecc39f628470eb70e1e93720596156f" }, "downloads": -1, "filename": "geeker-2.1.tar.gz", "has_sig": false, "md5_digest": "6ea2da31855282c8aa5cff4af63138c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17729, "upload_time": "2021-06-09T03:50:54", "upload_time_iso_8601": "2021-06-09T03:50:54.903175Z", "url": "https://files.pythonhosted.org/packages/70/8d/fbabade89752ac13741ff5e6db981e6d3690c1531839b7f46915f674ae54/geeker-2.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "13bdaf303e2bb628d236d8a6e2c49935", "sha256": "c58c421ae639682ee5c825eb2672dee46e88eb2ee1a4a2307d553ba2ead353ad" }, "downloads": -1, "filename": "geeker-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "13bdaf303e2bb628d236d8a6e2c49935", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21516, "upload_time": "2021-06-09T03:50:52", "upload_time_iso_8601": "2021-06-09T03:50:52.571819Z", "url": "https://files.pythonhosted.org/packages/37/41/6a9b35070761876cb454b5b9429fb9fd8bf9ab49d78d2efc524283f9c3e1/geeker-2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6ea2da31855282c8aa5cff4af63138c0", "sha256": "4815db21aadf9a95e5c2a1c4925552085ecc39f628470eb70e1e93720596156f" }, "downloads": -1, "filename": "geeker-2.1.tar.gz", "has_sig": false, "md5_digest": "6ea2da31855282c8aa5cff4af63138c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17729, "upload_time": "2021-06-09T03:50:54", "upload_time_iso_8601": "2021-06-09T03:50:54.903175Z", "url": "https://files.pythonhosted.org/packages/70/8d/fbabade89752ac13741ff5e6db981e6d3690c1531839b7f46915f674ae54/geeker-2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }