{"id":19084339,"url":"https://github.com/coghost/izen","last_synced_at":"2025-04-30T09:13:31.242Z","repository":{"id":62571991,"uuid":"127502855","full_name":"coghost/izen","owner":"coghost","description":"encapsulation of some useful features","archived":false,"fork":false,"pushed_at":"2019-06-23T04:00:31.000Z","size":80,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-09T04:57:26.347Z","etag":null,"topics":["chaos","crawler","encrypt","izen","mqtt","profig","python3","utils"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coghost.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-31T05:43:11.000Z","updated_at":"2021-02-23T10:07:24.000Z","dependencies_parsed_at":"2022-11-03T18:26:21.778Z","dependency_job_id":null,"html_url":"https://github.com/coghost/izen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coghost%2Fizen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coghost%2Fizen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coghost%2Fizen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coghost%2Fizen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coghost","download_url":"https://codeload.github.com/coghost/izen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223780004,"owners_count":17201287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chaos","crawler","encrypt","izen","mqtt","profig","python3","utils"],"created_at":"2024-11-09T02:50:58.527Z","updated_at":"2024-11-09T02:50:58.601Z","avatar_url":"https://github.com/coghost.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"izen 库\n=====\n\n\u003e izen, 封装一些常用功能\n\n## 功能列表\n\n- [x] 配置文件\n- [x] 加密解密\n- [x] 常用装饰器\n- [x] 常用辅助功能\n- [x] mqtt通信\n- [x] redis通信\n- [x] 定期任务\n\n### `icfg.py`\n\n使用样例\n\n```python\n\u003e\u003e\u003e import logzero\n\u003e\u003e\u003e from logzero import logger as log\n\u003e\u003e\u003e from izen.icfg import Conf, LFormatter\n\n\u003e\u003e\u003e pth_cfg = '/tmp/.code.cnf'\n\u003e\u003e\u003e cfg = Conf(\n...     pth=pth_cfg,\n...     dat={\n...         'mg.host': '127.0.0.1',\n...         'mg.port': 27027,\n...         'mg.db': 'test_db',\n...         'rds.host': '127.0.0.1',\n...         'rds.port': 6379,\n...         'rds.db': {\n...             'val': 0,\n...             'proto': str\n...         },\n...     }\n... ).cfg\n\n\u003e\u003e\u003e if cfg.get('log.enabled', False):\n...     logzero.logfile(\n...         cfg.get('log.file_pth', '/tmp/.code.log'),\n...         maxBytes=cfg.get('log.file_size', 5) * 1000000,\n...         backupCount=cfg.get('log.file_backups', 3),\n...         loglevel=cfg.get('log.level', 10),\n...     )\n...\n\u003e\u003e\u003e bagua = '🍺🍻♨️️😈☠'\n\u003e\u003e\u003e formatter = LFormatter(bagua)\n\u003e\u003e\u003e logzero.formatter(formatter)\n\u003e\u003e\u003e\n\u003e\u003e\u003e log.debug('hi')\n 🍺 D 180417 16:36:05 \u003cstdin\u003e:1 | hi\n\u003e\u003e\u003e log.info('hi')\n 🍻 I 180417 16:37:21 \u003cstdin\u003e:1 | hi\n\u003e\u003e\u003e log.warning('hi')\n ♨ W 180417 16:37:35 \u003cstdin\u003e:1 | hi\n\u003e\u003e\u003e log.error('hi')\n ️ E 180417 16:37:41 \u003cstdin\u003e:1 | hi\n```\n\n### 装饰器\n\ni.e. `dec.catch`, 自动捕获函数内程序错误, 并保证其他函数可以正常运行\n\n```python\n\u003e\u003e\u003e from izen import dec\n\u003e\u003e\u003e\n\u003e\u003e\u003e\n\u003e\u003e\u003e @dec.catch(True, ZeroDivisionError)\n... def terr():\n...     print('divide by 0')\n...     print(1 / 0)\n...     print('i can not go here.')\n...\n\u003e\u003e\u003e\n\u003e\u003e\u003e def t():\n...     terr()\n...     print('but i can go here.')\n...\n\u003e\u003e\u003e t()\ndivide by 0\n[E 180417 16:25:41 dec:457] \u003cstdin\u003e(1)\u003eterr: has err(division by zero)\nTraceback (most recent call last):\n  File \"/Users/lihe/pan.weiyun/tinyc/smartwear/izen/izen/dec.py\", line 452, in wrapper_\n    return fn(*args, **kwargs)\n  File \"\u003cstdin\u003e\", line 4, in terr\nZeroDivisionError: division by zero\nbut i can go here.\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoghost%2Fizen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoghost%2Fizen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoghost%2Fizen/lists"}