{ "info": { "author": "Alex Raichev", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "Copyright (c) 2017 Alex Raichev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nDescription-Content-Type: UNKNOWN\nDescription: Countdowner\n ************\n .. image:: https://travis-ci.org/araichev/countdowner.svg?branch=master\n :target: https://travis-ci.org/araichev/countdowner\n \n A Python 3.4+ package to check for sales at Countdown grocery stores throughout New Zealand.\n Pretty rough, but gets the job done.\n \n \n Installation\n =============\n ``pip install -U git+https://github.com/araichev/countdowner``\n \n \n Usage\n ======\n Here is a common workflow.\n \n #. Get the stock codes of the products you want to watch by searching `the Countdown site `_. The stock code of a product is listed in the URL of its details page. For example, the stock code for the product at ``https://shop.countdown.co.nz/Shop/ProductDetails?stockcode=214684&name=colgate-360-toothbrush-medium-whole-mouth-clean`` is ``214684``.\n \n #. Put your stock codes into a YAML watchlist along with your email address and a name for the watchlist. The watchlist ---call it ``watchlist.yaml``--- should have the form::\n \n name: my_favorites\n email_addresses:\n - brainbummer@mailinator.com\n - rhymedude@mailinator.com\n products: |\n description,stock_code\n organic cheese,281739\n GB chocolate,260803\n Lupi olive oil,701829\n Earthcare double toilet paper,381895\n Dijon mustard,700630\n \n #. Use the ``countdowner`` library functions as in the IPython notebook at ``ipynb/examples.ipynb`` or run ``countdownit --help`` from the command line for information on the command line tool. To use the emailing functionality of ``countdowner``, you'll need a (free) `Mailgun account `_.\n \n \n Authors\n ========\n - Alex Raichev (2017-05)\n \n \n Notes\n ======\n - Development status is Alpha\n - This project uses semantic versioning\n - I might extend this to New World stores once they roll out `more online shopping `_\n - Will replace ``grequests`` with a faster asynchronous HTTP requester as soon as someone makes one for ``trio``\n \n \n History\n ========\n \n 0.3.1, 2017-11-10\n -------------------\n - Adapted ``parse_product`` function to Countdown's new HTML page format\n \n \n 0.3.0, 2017-10-06\n -------------------\n - Changed ``run_pipeline`` API\n \n \n 0.2.0, 2017-06-18\n -------------------\n - Allowed for multiple email addresses in watchlist\n - In tests, replaced actual HTTP requests with mock ones\n \n \n 0.1.0, 2017-06-04\n -------------------\n - Replaced ``curio`` and ``curio-http`` with ``grequests`` for asynchronous requests. The latter is slower but easier to use.\n - Handled invalid stock codes\n - Added some automated tests\n \n \n 0.0.1, 2017-05-30\n ------------------\n - First draft\nPlatform: UNKNOWN\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/araichev/countdowner", "keywords": "", "license": "The MIT License", "maintainer": "", "maintainer_email": "", "name": "countdowner", "package_url": "https://pypi.org/project/countdowner/", "platform": "", "project_url": "https://pypi.org/project/countdowner/", "project_urls": { "Homepage": "https://github.com/araichev/countdowner" }, "release_url": "https://pypi.org/project/countdowner/0.3.1/", "requires_dist": [ "PyYAML (>=3.12)", "beautifulsoup4 (>=4.6.0)", "click (>=6.7)", "grequests (>=0.3.0)", "lxml (>=3.7.3)", "pandas (>=0.19.0)", "requests (>=2.14.2)" ], "requires_python": "", "summary": "A Python 3.5+ package to check for sales at Countdowngrocery stores throughout New Zealand", "version": "0.3.1" }, "last_serial": 3321396, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "92994f252603e428a341a8031634519e", "sha256": "404c8122de7f9d58b28a8b5d9b9dbd041bc4a04c815997f9a41250d2f021ae3c" }, "downloads": -1, "filename": "countdowner-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "92994f252603e428a341a8031634519e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10743, "upload_time": "2017-11-10T06:17:43", "url": "https://files.pythonhosted.org/packages/80/81/e3e3fe6e2864096b4e691ba0082a6d44467d5bd5b1596411bfa05495e703/countdowner-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13a91021100c8b1a294208e67cfe140e", "sha256": "e8463b05505aa01cd75abb17cb36f4a04f2eea4a46c8c33ad003d07667b052a6" }, "downloads": -1, "filename": "countdowner-0.3.1.tar.gz", "has_sig": false, "md5_digest": "13a91021100c8b1a294208e67cfe140e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7001, "upload_time": "2017-11-10T06:17:45", "url": "https://files.pythonhosted.org/packages/97/86/8264fb7071d7724c8da8bdb98e8b5bece62638d0ccebac32b94eb052a56f/countdowner-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "92994f252603e428a341a8031634519e", "sha256": "404c8122de7f9d58b28a8b5d9b9dbd041bc4a04c815997f9a41250d2f021ae3c" }, "downloads": -1, "filename": "countdowner-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "92994f252603e428a341a8031634519e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10743, "upload_time": "2017-11-10T06:17:43", "url": "https://files.pythonhosted.org/packages/80/81/e3e3fe6e2864096b4e691ba0082a6d44467d5bd5b1596411bfa05495e703/countdowner-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13a91021100c8b1a294208e67cfe140e", "sha256": "e8463b05505aa01cd75abb17cb36f4a04f2eea4a46c8c33ad003d07667b052a6" }, "downloads": -1, "filename": "countdowner-0.3.1.tar.gz", "has_sig": false, "md5_digest": "13a91021100c8b1a294208e67cfe140e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7001, "upload_time": "2017-11-10T06:17:45", "url": "https://files.pythonhosted.org/packages/97/86/8264fb7071d7724c8da8bdb98e8b5bece62638d0ccebac32b94eb052a56f/countdowner-0.3.1.tar.gz" } ] }