{ "info": { "author": "Aengus Walton", "author_email": "ventolin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "vvs\n===\n\n``vvs`` is a set of tools for displaying upcoming departure times of buses, trains\nand trams from stations in the Verkehrsverbund Stuttgart.\n\nHaving started a new job, I was unfamiliar with the tram timetable for getting\nhome, and wanted a simple way of seeing, at a glance, how much time I have until\nthe next tram leaves for home.\n\nI spend most of my working day staring at a computer terminal, always in a tmux\nsession, so that seemed like a good fit:\n\n.. image:: screenshot.png\n\nIn the screenshot above, you can see that there are two trams leaving very shortly,\nafter which the next one is in a half an hour. So, it's easy to quickly decide\nwhether it's worth it to jump up and rush out the door, without having to waste\ntime opening up the VVS website.\n\n\nWhat it isn't\n-------------\n\n``vvs`` isn't a console client for the VVS website. It won't allow you to check\nroutes and connections between two stops, for example (although this could be\nimplemented with relatively little difficulty).\n\nGetting Started\n---------------\n\nInstallation\n~~~~~~~~~~~~\n\nInstall using pip3:\n\n.. code-block::\n\n pip3 install vvs\n\nIt goes without saying that you should install into a virtualenv.\n\nFinding your station ID\n~~~~~~~~~~~~~~~~~~~~~~~\n\nHave a look in the stations.json_\nfile for the station that you want to monitor. Every station is paired with an\nID, and you'll need this when running ``vvs``.\n\nPlease note that the ``stations.json`` file in this repo won't be kept updated.\nIf you can't find your station ID, follow the instructions here_.\n\n.. _stations.json: https://github.com/kopf/vvs/blob/master/stations.json\n.. _here: https://github.com/LUGBB/vvs-station-monitor#get-station-id\n\nSetting up the scraper\n~~~~~~~~~~~~~~~~~~~~~~\n\nNow we've got our station ID, we'll want to scrape data for that station. This\ncan be achieved by using the ``vvs scrape`` command. We'll then want to cache this\ndata somewhere locally. So, if our station ID were 5007115 (Hulb), we'd set up\na cronjob to do this every few minutes:\n\n.. code-block::\n\n */3 * * * * vvs scrape 5007115 > ~/.vvs.json\n\nWith this command, we'll be tracking the departures of all public transport\nfrom Hulb - but in both directions. We just want departures heading in to town.\n\nIn order to filter for what we want, we first use the ``list_directions`` subcommand:\n\n.. code-block::\n\n $ vvs list_directions 5007115\n Herrenberg\n Kirchheim (T)\n Neckarpark\n Plochingen\n $\n\nThis is a list of all terminating stations for public transport passing through\nHulb. Departures of the S-Bahn in the direction of Kirchheim an der Teck and\nPlochingen are the ones we're after, so we'll filter for them:\n\n.. code-block::\n\n */3 * * * * vvs scrape 5007115 --direction Plochingen --direction 'Kirchheim (T)' > ~/.vvs.json\n\nNow we should be getting the data we're after!\n\nDisplaying the data\n~~~~~~~~~~~~~~~~~~~\n\nThe ``vvs display`` command is used to display the data we've saved. The style\nin which it displays the data can be customized:\n\n.. code-block::\n\n $ vvs display ~/.vvs.json\n In 7, 22, 37 min\n $\n $ vvs display --limit 10 ~/.vvs.json\n In 6, 21, 36, 51, 66, 81, 96, 114, 144, 174 min\n $\n $ vvs display --limit 10 --format %H:%M ~/.vvs.json\n 19:25, 19:40, 19:55, 20:10, 20:25, 20:40, 20:55, 21:13, 21:43, 22:13\n $\n\nPython's time formatting directives (link_) are used for string formatting.\n\n.. _link: https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior\n\nTroubleshooting\n---------------\n\nLocales\n~~~~~~~\n\nIf you get an error that looks like this:\n\n.. code-block::\n\n RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment.\n\nMake sure you have your locales set correctly (``LC_ALL`` and ``LANG`` are exported).\nIf that's not possible, then set them temporarily when you invoke ``vvs``, e.g.:\n\n.. code-block::\n\n LC_ALL=en_US.utf-8 LANG=en_US.utf-8 vvs scrape 5007115\n\n\nContact\n-------\n\nAengus Walton ventolin@gmail.com\n\n\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/kopf/vvs", "keywords": "", "license": "Apache", "maintainer": "", "maintainer_email": "", "name": "vvs", "package_url": "https://pypi.org/project/vvs/", "platform": "", "project_url": "https://pypi.org/project/vvs/", "project_urls": { "Homepage": "https://github.com/kopf/vvs" }, "release_url": "https://pypi.org/project/vvs/0.4.6/", "requires_dist": [ "beautifulsoup4", "click", "requests", "pytz" ], "requires_python": "", "summary": "Displays upcoming departure times from stations on the Stuttgart public transport network", "version": "0.4.6" }, "last_serial": 3014796, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2b9845da67ef53f0efefb29d3110f4b5", "sha256": "d4c1db2d107597649a15c56e70ba663e4edc110081ccdbcf58352fc13d314b2d" }, "downloads": -1, "filename": "vvs-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b9845da67ef53f0efefb29d3110f4b5", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3740, "upload_time": "2016-11-05T20:34:40", "url": "https://files.pythonhosted.org/packages/a2/24/d8da0b2af600e245353701ff5466bc9a373a5c79f1198b82416520191ff0/vvs-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8d2af4e7f9dbb7f870d84f6026644f9", "sha256": "3a5adddcf7f973d87437b99a21bff16daf4108aea0300455b416fea312ad2d23" }, "downloads": -1, "filename": "vvs-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d8d2af4e7f9dbb7f870d84f6026644f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101189, "upload_time": "2016-11-05T20:34:36", "url": "https://files.pythonhosted.org/packages/46/c6/4fc2beffc3fea25ffe95e7885c2da4724fa9c5c6c01030a1865322908aba/vvs-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cfdf96a3b924128f8409ae44b0fb8521", "sha256": "c518a3fe167c8f40e5d995af10cdee4d26bc70ba6a50351a376e60e06c5d33fa" }, "downloads": -1, "filename": "vvs-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "cfdf96a3b924128f8409ae44b0fb8521", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3790, "upload_time": "2016-11-29T19:37:23", "url": "https://files.pythonhosted.org/packages/65/03/faf478d18e4e5f3304eee4fabb7bfa48c5466f1b415af6769e29aeceed67/vvs-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76ae720ff084f041aa421cece174b3d9", "sha256": "5a14941e7c83c9da8b7d74f9dc382001317973770a35b4f395db80559eb3cab1" }, "downloads": -1, "filename": "vvs-0.2.0.tar.gz", "has_sig": true, "md5_digest": "76ae720ff084f041aa421cece174b3d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101252, "upload_time": "2016-11-29T19:37:26", "url": "https://files.pythonhosted.org/packages/4b/08/fca2367678a2186dc5ab585661b5661526c403a5953734d6fe1e19fcd49b/vvs-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "1c2ed0beb6e66bf3f9077dfc6f8a7355", "sha256": "c0c4656fcd4ff85a3fe2c54c972f40fefd81c3c3c22f86dd307907b96bb7ee0e" }, "downloads": -1, "filename": "vvs-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1c2ed0beb6e66bf3f9077dfc6f8a7355", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3827, "upload_time": "2017-03-04T15:42:20", "url": "https://files.pythonhosted.org/packages/21/0c/e0ee550b7092f31bc3eae52dea94d6a8bc9deaccb930aedcab5c6e068086/vvs-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d3f02edfa0630799a2677b1139f46f4", "sha256": "c96271a987e8b3a98874a54ead933281abbaca44f8a0b4dc5606ec25f1717b3e" }, "downloads": -1, "filename": "vvs-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2d3f02edfa0630799a2677b1139f46f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101290, "upload_time": "2017-03-04T15:42:23", "url": "https://files.pythonhosted.org/packages/b7/1a/e4a92a20c1120e9b32eff84d26ae778e71520ed5575dbd90eee6254e3025/vvs-0.3.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "60a16d9bacb0a56f6720c89805bb04c2", "sha256": "ba1c8c18c4f4525c70aec6f0f1972b807425c3971025fc3377e7b0c9b0d2030c" }, "downloads": -1, "filename": "vvs-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "60a16d9bacb0a56f6720c89805bb04c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3856, "upload_time": "2017-04-02T10:02:10", "url": "https://files.pythonhosted.org/packages/c4/62/8509e5aa9ed14b282b3512f2d6a39cbbfc27401788967648ff9f31443dc6/vvs-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f846699113cad0ed0734ee65c0ae7ae", "sha256": "c19a484142956323df8c56757bcd1b5fcafcee8b301c92b3c97976b04e479b22" }, "downloads": -1, "filename": "vvs-0.4.1.tar.gz", "has_sig": false, "md5_digest": "5f846699113cad0ed0734ee65c0ae7ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101433, "upload_time": "2017-04-02T10:02:12", "url": "https://files.pythonhosted.org/packages/39/8a/9625d64fc322dd0047c0df4724965ee768533f8417f769fdf3a08b459363/vvs-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "1d2e8d4860511c1fa3fc0dc357e8a7e0", "sha256": "b8681c93674ac237fcbb59155640287e5e182d3ff03515708882735d2eadf248" }, "downloads": -1, "filename": "vvs-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1d2e8d4860511c1fa3fc0dc357e8a7e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3876, "upload_time": "2017-04-03T19:29:44", "url": "https://files.pythonhosted.org/packages/72/7c/054d0ab8d0ca1f1ad926d30b40e232ca84c753dbbf1ee5f1965b8ed756b1/vvs-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4084fa6c72167e07f73a4d76e53be4c", "sha256": "4d8265a9827a564946389fc1498c7c10ad791e605b1960dbd4cf77f744d3283e" }, "downloads": -1, "filename": "vvs-0.4.2.tar.gz", "has_sig": false, "md5_digest": "f4084fa6c72167e07f73a4d76e53be4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101447, "upload_time": "2017-04-03T19:29:47", "url": "https://files.pythonhosted.org/packages/3e/fe/35e563164cbf37420acbe0afde75234364ccbb89a969c3d049a2ad80f1b0/vvs-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "c4b3b4af2bb2caa4e35ff39cb8689631", "sha256": "22969db33e9bf07b0a1dbecf07c941ecfaaf386cef47d08b2a77cb98941104a1" }, "downloads": -1, "filename": "vvs-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c4b3b4af2bb2caa4e35ff39cb8689631", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3838, "upload_time": "2017-04-04T18:37:08", "url": "https://files.pythonhosted.org/packages/2e/15/98b47ffa7ac8e5f69e992d5d9eae6bf03862366120923f26fcbcdc28cb20/vvs-0.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "486b5653ffbe2dfaa68e2718a06b2840", "sha256": "5bf5e16b76dd6d58314dedbf9274e4a3ae6129096acf94a9cbcdcaeeeb1ac3e8" }, "downloads": -1, "filename": "vvs-0.4.3.tar.gz", "has_sig": false, "md5_digest": "486b5653ffbe2dfaa68e2718a06b2840", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101398, "upload_time": "2017-04-04T18:37:10", "url": "https://files.pythonhosted.org/packages/49/cf/fb4bab045fcc48230e7c83375345e2f580a5bd30a5b16bf681e009fc9e81/vvs-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "3f57131d7972ffded1e4c33dd43a912d", "sha256": "5da247603d81fc8c1c03c74a4e3d7493ed0658c1ed2a25864e06a54c765309f3" }, "downloads": -1, "filename": "vvs-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3f57131d7972ffded1e4c33dd43a912d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3852, "upload_time": "2017-04-04T18:41:01", "url": "https://files.pythonhosted.org/packages/98/eb/acc3d6637957af953d084bfb9fc29d5e7d771afff3bcae6095e07c2b8211/vvs-0.4.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b50eee490291576d65c97b08273417c0", "sha256": "f99f3135e29577f32918467656bbf95df11334ad7a661265ed8c3b68ba944860" }, "downloads": -1, "filename": "vvs-0.4.4.tar.gz", "has_sig": false, "md5_digest": "b50eee490291576d65c97b08273417c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101407, "upload_time": "2017-04-04T18:41:03", "url": "https://files.pythonhosted.org/packages/31/a1/0d4a0074871223457dafee9a6ea30e6fc0f1e54b349cfacbf1bcb78b4d23/vvs-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "3ba2c638c476066f430a8e6c79da0ddb", "sha256": "fbf9522d1592e93897f5178893da6137828523240051a3d86ad2e68cf104d603" }, "downloads": -1, "filename": "vvs-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3ba2c638c476066f430a8e6c79da0ddb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3924, "upload_time": "2017-07-11T14:13:12", "url": "https://files.pythonhosted.org/packages/ff/a1/d65c045e69567941c9b619afbcea5b38919e9372cebbaa0055134b0797ba/vvs-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eeb8d1975dd32caf12af99649461ee29", "sha256": "c250ccac5661d572ca69e8009a442a94970076aac2cd7855bb4d3e1af72a358a" }, "downloads": -1, "filename": "vvs-0.4.5.tar.gz", "has_sig": false, "md5_digest": "eeb8d1975dd32caf12af99649461ee29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101514, "upload_time": "2017-07-11T14:13:14", "url": "https://files.pythonhosted.org/packages/bb/62/d8cfec8191d33d63b551339bf8c4596a7084f56e8eb76f0e06afa8111005/vvs-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "8c625b4f5c0f012c0047925c33d381dc", "sha256": "9b83e40a91ee1408b2cd5a6a3c339ac5f9260f7b04b447e51742dd50e668d531" }, "downloads": -1, "filename": "vvs-0.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8c625b4f5c0f012c0047925c33d381dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7594, "upload_time": "2017-07-11T14:20:59", "url": "https://files.pythonhosted.org/packages/2e/76/cdcfe08892da72d5b3f1b1d98ddb800dd5cf2a6952704965ccbcd3abef09/vvs-0.4.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7108bf208bb02745d3e3353bee973d4b", "sha256": "81ceddc0f816b7108fe024f51d2b1ad17ab9090c176dd201a5c19c206398c1ee" }, "downloads": -1, "filename": "vvs-0.4.6.tar.gz", "has_sig": false, "md5_digest": "7108bf208bb02745d3e3353bee973d4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103877, "upload_time": "2017-07-11T14:21:00", "url": "https://files.pythonhosted.org/packages/62/06/8c1641fdbe89789da9b3c7dbff734187a523cdf0947c88f07381b37d401b/vvs-0.4.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8c625b4f5c0f012c0047925c33d381dc", "sha256": "9b83e40a91ee1408b2cd5a6a3c339ac5f9260f7b04b447e51742dd50e668d531" }, "downloads": -1, "filename": "vvs-0.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8c625b4f5c0f012c0047925c33d381dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7594, "upload_time": "2017-07-11T14:20:59", "url": "https://files.pythonhosted.org/packages/2e/76/cdcfe08892da72d5b3f1b1d98ddb800dd5cf2a6952704965ccbcd3abef09/vvs-0.4.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7108bf208bb02745d3e3353bee973d4b", "sha256": "81ceddc0f816b7108fe024f51d2b1ad17ab9090c176dd201a5c19c206398c1ee" }, "downloads": -1, "filename": "vvs-0.4.6.tar.gz", "has_sig": false, "md5_digest": "7108bf208bb02745d3e3353bee973d4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103877, "upload_time": "2017-07-11T14:21:00", "url": "https://files.pythonhosted.org/packages/62/06/8c1641fdbe89789da9b3c7dbff734187a523cdf0947c88f07381b37d401b/vvs-0.4.6.tar.gz" } ] }