{ "info": { "author": "Wenzhi Ding", "author_email": "wenzhi.ding@foxmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# py_reminder\nThis is a Python decorator that can send email for various purpose.\n\nBy the way, I am also planning to expand the receiving channels from email to Message, Telegram, Wechat, or even more.\n\n**If you are interested, let's work together!**\n\n## Introduction\nOften times we have some time-consuming task, and we want to leave it run alone without staring at the screen for 7\\*24 hours.\n\nThis package will offer you a **one-line** experience (a function decorator) of sending you email report with customized information.\n\nSo that you can catch a coffee break / go dating / play Dota2 without worrying about your machine learning / web-scraping / crazy robot. Because you can always get key update through your cell phone.\n\nThis is definitely a easy function, I believe many guys have written their own equivalent one. What I did is to simplify it into a decorator, so it is now even more convenient!\n\n## Installation\n```bash\npip install -U py_reminder\n```\n\n## Initial configuration\n**You will suggest to use a unimportant mail box to send messages**, since the password is going to store in plain text. (or if someone knows how to encrypt, please help!)\n\nFor the first time, you should specify configuration\n```python\nfrom py_reminder import config\n\nconfig(address='your_email@example.com',\n password='123456',\n smtp='smtp.example.com',\n port=999,\n default_to='receiver@example.com')\n```\nYou can ignore `default_to`. It will set to be the same as `address` by default.\n\nIf you receive a testing email, then the configuration is done. You can never include this code thereafter.\n\n## Sample code\n```python\nfrom py_reminder import monitor\n\n@monitor(task='do something', to='receiver@example.com')\ndef foo()\n time.sleep(10)\n return 0\n\nfoo() \n```\nYou can ignore `to` if you send to your default receiver. So the most simple way to use this decorator is:\n\n```python\n@monitor('do something')\n```\n\nAnd you will see\n\n\n\n## Email Service Provider\n- GMail\n - I used a new registered account and was banned after one day.\n - Haven't tested personal account yet.\n- Foxmail\n - I use my personal account and it is all good up to now (two months).\n\n**Tests on other email vendors are welcome!**\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/wenzhi-ding/py_reminder", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "py-reminder", "package_url": "https://pypi.org/project/py-reminder/", "platform": "", "project_url": "https://pypi.org/project/py-reminder/", "project_urls": { "Homepage": "https://github.com/wenzhi-ding/py_reminder" }, "release_url": "https://pypi.org/project/py-reminder/0.1.1/", "requires_dist": null, "requires_python": ">=3.6", "summary": "A decorator for monitoring your task", "version": "0.1.1", "yanked": false, "yanked_reason": null }, "last_serial": 6039275, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "08a68e64baedc1234098fabbaee1fd5f", "sha256": "2215c6139449b7ee8631072dc9735437f83c3a8a184bf624239916412a2d5d87" }, "downloads": -1, "filename": "py_reminder-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "08a68e64baedc1234098fabbaee1fd5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4136, "upload_time": "2019-10-18T17:24:07", "upload_time_iso_8601": "2019-10-18T17:24:07.385831Z", "url": "https://files.pythonhosted.org/packages/af/84/a0ebc93c261ebe993093090bc1001bcc90aebb293c5cbb14fd8d61b49121/py_reminder-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "30f78cf6c073cd339962fa68e68030aa", "sha256": "ac566eb9b2a0d087bbdb8b964b548378515288c4c9ef412755f708d120d726c3" }, "downloads": -1, "filename": "py_reminder-0.0.1.tar.gz", "has_sig": false, "md5_digest": "30f78cf6c073cd339962fa68e68030aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2934, "upload_time": "2019-10-18T17:24:10", "upload_time_iso_8601": "2019-10-18T17:24:10.202091Z", "url": "https://files.pythonhosted.org/packages/c2/2c/19cbbca625183f4e6b66c866f6cb9452ab8454dc927de7724a6621fe439c/py_reminder-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1c06f5cd0134c219bf14266ea76760c4", "sha256": "4ff861bcf5094dbc797eaf81efbac468b616094692ced38a6d6cfe1a5160bc5e" }, "downloads": -1, "filename": "py_reminder-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1c06f5cd0134c219bf14266ea76760c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5286, "upload_time": "2019-10-18T18:05:13", "upload_time_iso_8601": "2019-10-18T18:05:13.152640Z", "url": "https://files.pythonhosted.org/packages/f5/24/b1449577880fa90b601a58a9eae557fb77d908bf53b13f9f5f9826c4bcb3/py_reminder-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c01c54608e4a2530d6af1dc18598ae23", "sha256": "fe9ceb003c98eeb8baee251bb1b34b61641fb3196811e00404634fd4d7eb94ed" }, "downloads": -1, "filename": "py_reminder-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c01c54608e4a2530d6af1dc18598ae23", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3858, "upload_time": "2019-10-18T18:05:15", "upload_time_iso_8601": "2019-10-18T18:05:15.078782Z", "url": "https://files.pythonhosted.org/packages/64/23/94ed386b5e4fc4f8e448a1f889b85ac531e0a84b29ecf2142a944e6714c5/py_reminder-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "fd99490cbee632d8ba84fa41c30503ea", "sha256": "920b57b07b811d7231f9e793ac734cab1113121cf62b9f4529fda68c8b2e3b20" }, "downloads": -1, "filename": "py_reminder-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fd99490cbee632d8ba84fa41c30503ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5392, "upload_time": "2019-10-18T18:17:40", "upload_time_iso_8601": "2019-10-18T18:17:40.098029Z", "url": "https://files.pythonhosted.org/packages/53/86/57593128c9e4894ab5406978f2046ec5faeb2f3fb21329b987b1d5876678/py_reminder-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d81a2aa8df8aaa0f7ce8d3a04443eddd", "sha256": "e970327cf92f0553016afe73ab5e6481d226668213d04d7452ccdd3121156fc4" }, "downloads": -1, "filename": "py_reminder-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d81a2aa8df8aaa0f7ce8d3a04443eddd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3937, "upload_time": "2019-10-18T18:17:41", "upload_time_iso_8601": "2019-10-18T18:17:41.934782Z", "url": "https://files.pythonhosted.org/packages/6e/a3/fcb6ce396b76f9941a940ba57eb12e98f214670f511f9418c6afbdb2d304/py_reminder-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5b76b21ff250a1d5bac790660bcf982d", "sha256": "142fea3966917d6f8584f80ffb88846d7cdf78bdc2a49d88fb7326bd18757ee3" }, "downloads": -1, "filename": "py_reminder-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5b76b21ff250a1d5bac790660bcf982d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5614, "upload_time": "2019-10-28T04:22:51", "upload_time_iso_8601": "2019-10-28T04:22:51.636718Z", "url": "https://files.pythonhosted.org/packages/78/13/cd7d5f40b4466d8fd64ffe54deeaad85b81a63ade17686468d50828e84c3/py_reminder-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "809529d84d14fab35cd6c5359709ac97", "sha256": "11e2146efab1687cb6b48bb3dbb6c55db2cabe04e2637f62261f58203f6511ed" }, "downloads": -1, "filename": "py_reminder-0.1.1.tar.gz", "has_sig": false, "md5_digest": "809529d84d14fab35cd6c5359709ac97", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4180, "upload_time": "2019-10-28T04:22:54", "upload_time_iso_8601": "2019-10-28T04:22:54.295500Z", "url": "https://files.pythonhosted.org/packages/67/6a/c4918d29c0f2030b8198acc60de248f23b6b5e621d6dc920119ae9c15893/py_reminder-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5b76b21ff250a1d5bac790660bcf982d", "sha256": "142fea3966917d6f8584f80ffb88846d7cdf78bdc2a49d88fb7326bd18757ee3" }, "downloads": -1, "filename": "py_reminder-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5b76b21ff250a1d5bac790660bcf982d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5614, "upload_time": "2019-10-28T04:22:51", "upload_time_iso_8601": "2019-10-28T04:22:51.636718Z", "url": "https://files.pythonhosted.org/packages/78/13/cd7d5f40b4466d8fd64ffe54deeaad85b81a63ade17686468d50828e84c3/py_reminder-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "809529d84d14fab35cd6c5359709ac97", "sha256": "11e2146efab1687cb6b48bb3dbb6c55db2cabe04e2637f62261f58203f6511ed" }, "downloads": -1, "filename": "py_reminder-0.1.1.tar.gz", "has_sig": false, "md5_digest": "809529d84d14fab35cd6c5359709ac97", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4180, "upload_time": "2019-10-28T04:22:54", "upload_time_iso_8601": "2019-10-28T04:22:54.295500Z", "url": "https://files.pythonhosted.org/packages/67/6a/c4918d29c0f2030b8198acc60de248f23b6b5e621d6dc920119ae9c15893/py_reminder-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }