{ "info": { "author": "Hayk Khachatryan", "author_email": "hi@hayk.io", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# resultr\n> Makes UCL PHAS results better\n\n**note** it's very possible that I made mistakes so take what this gives with a bucketload of salt.\n\nUCL Physics and Astronomy publishes the results for every year as a pdf with this format: \n\n**Candidate Number**|**Devcom**|**Module1**|**Mark**|**Module2**|**Mark**|**Module3**|**Mark**|**Module4**|**Mark**|**Module5**|**Mark**|**Module6**|**Mark**|**Module7**|**Mark**|**Module8**|**Mark**|**Provisional outcome**| \n:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:\nABCD0|100|PHAS0000|99|PHAS0001|98|PHAS0002|97|PHAS0003|96|PHAS0004|95|PHAS0005|94|PHAS0006|93|PHAS0007|92|P| \nABCD1|24|PHAS0003|93|PHAS0001|55|PHAS0004|43|PHAS0007|40|PHAS0002|34|PHAS0006|25|PHAS0005|15|PHAS0000|3|>>| \n\nresultr lets you:\n * get your weighted average for a year\n * get your rank in your year\n * plot a histogram of the results for a module in the bins: (0,40), (40,50), (50, 60), (60, 70), (80, 90), (90, 100)\n * re-format the results by module (as below) and output to csv\n\noutput format:\n\n**Devcom**|**PHAS0000**|**PHAS0001**|**PHAS0002**|**PHAS0003**|**PHAS0004**|**PHAS0005**|**PHAS0006**|**PHAS0007**|**Averages**\n:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:\n100|99|98|97|96|95|94|93|92|95.5\n24|3|55|34|93|43|15|25|40|39 \n\n## Installation\n\n```sh\n$ pip install resultr\n```\n\n## Usage example\n\nRequires:\n * [Python 3](https://www.python.org/downloads/)\n * [pandas](https://pandas.pydata.org/) and [matplotlib](https://matplotlib.org/) for plotting\n * [python-inquirer](https://github.com/magmax/python-inquirer) for the user input\n\n\n### Making the PDF usable\n\nYou're going to need to convert the .pdf given by UCL into a csv, delimited with ','. To do this I used [smallpdf](https://smallpdf.com/pdf-to-excel)'s PDF to Excel converter (this makes an xlsx with a sheet for every page of the page of the pdf). Then I used [Google Docs](https://docs.google.com) to export each sheet as a csv, and combined them in a texteditor (note though that you should remove the heading lines (cand, devcom, module1, etc) from all pages apart from the first)\n\n\n### Running resultr\n\nYou can run interact with resultr using [inquirer](https://github.com/magmax/python-inquirer) prompts:\n\n![ask demo](demoAsk.gif)\n\nOr equivalently by passing arguments when you run resultr:\n\n![args demo](demoArgs.gif)\n\n```sh\n$ resultr -h \n usage: resultr [-h] [--input INPUT] [--format FORMAT] [--plot]\n [--exportplots EXPORTPLOTS] [--showplots] [--my]\n [--year YEAR] [--rank] [--candidate CANDIDATE]\n\n Makes UCL PHAS results better\n\n optional arguments:\n -h, --help show this help message and exit\n\n --input, -i INPUT\n csv file to import\n\n --format, -f FORMAT\n reformats results by module and exports it to file\n specified\n\n --plot, -p plot the module results\n\n --exportplots, -ep EXPORTPLOTS\n export all plots to /path/you/want/\n\n --showplots, -sp show all plots\n\n --my, -m returns your weighted average for the year\n\n --year, -y YEAR specify your year\n\n --rank, -r returns your rank in the year\n\n --candidate, -c CANDIDATE\n specify your candidate number\n```\n\n\n## Release History\n\n* 0.1.10\n * Changed 'Cand' to 'CAND' in length\n* 0.1.9\n * pass _args.exportplots_ and _args.showplots_ to _resultr\\_plot.howPlotArgs_ \n* 0.1.8\n * changed entry_point to use __main__.py\n* 0.1.7\n * added entry_point to setup.py (resultr) \n* 0.1.6\n * split into _resultr\\_format_ and _resultr\\_plot_\n* 0.1.5\n * changed _matplotlib_ to run with _Agg_ \n* 0.1.4\n * added _matplotlib_ requirement in setup.py \n* 0.1.3\n * added _inquirer_ requirement in setup.py\n* 0.1.2\n * added pip\n* 0.1.1\n * Moved prompt and cli code from ``'__main__'`` to ``main()`` \n * Changed name to _resultr_ cause cool\n* 0.1.0\n * The first proper release\n\n\n## Meta\n\nHayk Khachatryan \u2013 hi@hayk.io\n\nDistributed under the MIT license. See ``LICENSE`` for more information.\n\n[https://github.com/haykkh](https://github.com/haykkh/)\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Commit your changes (`git commit -am 'Add some fooBar'`)\n4. Push to the branch (`git push origin feature/fooBar`)\n5. Create a new Pull Request\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/haykkh/resultr", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "resultr", "package_url": "https://pypi.org/project/resultr/", "platform": "", "project_url": "https://pypi.org/project/resultr/", "project_urls": { "Homepage": "https://github.com/haykkh/resultr" }, "release_url": "https://pypi.org/project/resultr/0.1.10/", "requires_dist": [ "inquirer (>=2.2.0)", "resultr-format", "resultr-plot" ], "requires_python": "", "summary": "Making UCL PHAS results better", "version": "0.1.10" }, "last_serial": 4096771, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "6e883befd57b33126ac21969daf359cb", "sha256": "f742957bdf02961d218bc9f8decbfee098449376703d009014f5386df84e91c6" }, "downloads": -1, "filename": "resultr-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "6e883befd57b33126ac21969daf359cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6461, "upload_time": "2018-07-24T12:22:04", "url": "https://files.pythonhosted.org/packages/6a/99/3dd4b684946b51d8c9d3d139fa7da9b4f8a4b9a2b613dc79cdc1ae58824f/resultr-0.1.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "078bf1c5c5c1c1c7220929712a377d09", "sha256": "a2f7859db4b50871fa01a6f2d4509e3fd2af04aac71bbbebeae107e81b425eb3" }, "downloads": -1, "filename": "resultr-0.1.10.tar.gz", "has_sig": false, "md5_digest": "078bf1c5c5c1c1c7220929712a377d09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4998, "upload_time": "2018-07-24T12:22:06", "url": "https://files.pythonhosted.org/packages/13/35/eaa4e4bdd1c242892b739ee5bdedc20fcc3a0a42e18c071e8f9030c16b8e/resultr-0.1.10.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "566d45184dd05a9a791bc02d41021647", "sha256": "395fc605fd8f260ce374fdf7320b9b467664048d8b5dc86f48da475b6a729607" }, "downloads": -1, "filename": "resultr-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "566d45184dd05a9a791bc02d41021647", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6737, "upload_time": "2018-07-13T13:10:52", "url": "https://files.pythonhosted.org/packages/c5/8f/be92fc777a2cc60e499257ded71af2bf4c3fefb800c3b9227c1be41a904d/resultr-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58c20a3c768fefb61f1ade8040f5e37e", "sha256": "908e29b390b6f3327ea6e9075117c868c35dc6fcccd65d10521baf143816987f" }, "downloads": -1, "filename": "resultr-0.1.2.tar.gz", "has_sig": false, "md5_digest": "58c20a3c768fefb61f1ade8040f5e37e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6584, "upload_time": "2018-07-13T13:10:54", "url": "https://files.pythonhosted.org/packages/6d/5a/7af2c70dc76b0c3665e725b182b1bbc05f22f2ce1db3eb25f65fb4b138de/resultr-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "af27646eec0f788d5320bab045c7720d", "sha256": "71549719a9297ba7e01ac960826971935c4341c44c8e4a709d25b614eff8a38d" }, "downloads": -1, "filename": "resultr-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "af27646eec0f788d5320bab045c7720d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6761, "upload_time": "2018-07-13T13:13:44", "url": "https://files.pythonhosted.org/packages/b8/66/546b495ae2928e4e7d102a16c1a6b2cfdd3cdb4ff7886c9fa1d369ba11a9/resultr-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da0200190d484ed4884ddb6e053d6901", "sha256": "08c96228769cc05824ce9855d866105c4c45f2fc0a54033d7a80d49731dcfb9d" }, "downloads": -1, "filename": "resultr-0.1.3.tar.gz", "has_sig": false, "md5_digest": "da0200190d484ed4884ddb6e053d6901", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6607, "upload_time": "2018-07-13T13:13:46", "url": "https://files.pythonhosted.org/packages/a1/7f/6b4ad70f575ebabd5a1d0bf91ed1898b1406a60ec8ef0d0bb0e296307823/resultr-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "4a6274700e7c5889cbde1e789937119f", "sha256": "d9c30be120a1b14f037a3722b63b320e6158585138ded8f1bf055d203da0e6cd" }, "downloads": -1, "filename": "resultr-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4a6274700e7c5889cbde1e789937119f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6781, "upload_time": "2018-07-13T13:19:03", "url": "https://files.pythonhosted.org/packages/c6/20/effe8c526da94572bd5ce407c283d74ad33c288953c0032fbd86f7306d80/resultr-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "536aaae32f1abab26ea33ca08cdebb56", "sha256": "0e9ba259f1f78339e41a5266e176f0855b2c1fbecdc34cc53679c06f5cb46cb9" }, "downloads": -1, "filename": "resultr-0.1.4.tar.gz", "has_sig": false, "md5_digest": "536aaae32f1abab26ea33ca08cdebb56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6633, "upload_time": "2018-07-13T13:19:05", "url": "https://files.pythonhosted.org/packages/31/cf/3cec066a7f3f1dbe13e8c5e9b6637d467712746ee6a99ae0fe2cc30edfd7/resultr-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "20d642294f0e7d6795d76ee11f47f777", "sha256": "b4ce16bfca07ea5d8a89dbea0b9cbfdf97f040bc215bcd8283b423b86669d3cb" }, "downloads": -1, "filename": "resultr-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "20d642294f0e7d6795d76ee11f47f777", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6814, "upload_time": "2018-07-13T14:41:28", "url": "https://files.pythonhosted.org/packages/34/d8/32e88c6fbf309771fa90520e18853fcedd9923518ca5af38e6904e4a5d40/resultr-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96e5cd9ef8fcc2b2e281d1a2b9b208bc", "sha256": "3676f350d5fd07414e17ab69257469814cf7f9c4fa396412f1d3254e1d14c8f4" }, "downloads": -1, "filename": "resultr-0.1.5.tar.gz", "has_sig": false, "md5_digest": "96e5cd9ef8fcc2b2e281d1a2b9b208bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6669, "upload_time": "2018-07-13T14:41:29", "url": "https://files.pythonhosted.org/packages/5d/20/5ad3299d0ff8d9836d13f7dac5eaaff9d161c7422ba10b8d209a91658949/resultr-0.1.5.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "0bbfc611e6dd49db80899552e5b0a372", "sha256": "4a0d8ae33ce666e725b98388147963363f694eebbfcc7332b0c39b383c20707f" }, "downloads": -1, "filename": "resultr-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "0bbfc611e6dd49db80899552e5b0a372", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6353, "upload_time": "2018-07-14T12:24:39", "url": "https://files.pythonhosted.org/packages/dd/3e/f9f61dae8118a0d2879c91221e1680160b89fe1eb27f11694177c8c94585/resultr-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a751d69b5ce9f2d9284e0b7aa5428c52", "sha256": "f55c8945290abae1683a1db6413ea93e57c2e0f4a75a0736d469b4a653bafa00" }, "downloads": -1, "filename": "resultr-0.1.8.tar.gz", "has_sig": false, "md5_digest": "a751d69b5ce9f2d9284e0b7aa5428c52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4884, "upload_time": "2018-07-14T12:24:40", "url": "https://files.pythonhosted.org/packages/67/cd/b7ec0b46c338fe9071847b8d650150229f582ebef84faf23d498ccde40a8/resultr-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "64537d64accb7e30ae5a0293738ddbb3", "sha256": "82a5dbfa02aced1b9d2a095aac5b863689b4773fe7fe12386cb28f93ec8186ee" }, "downloads": -1, "filename": "resultr-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "64537d64accb7e30ae5a0293738ddbb3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6409, "upload_time": "2018-07-16T09:54:59", "url": "https://files.pythonhosted.org/packages/73/ae/232e24033b3ca30e25fa55a66adb1d6644b7bc08bc06bc999c0b1f802bfd/resultr-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fcc835c033fb8b61bccd131d2c901723", "sha256": "d60016fb529946ab0be66919787d6962cd0bec70cec9ccc349a09a64d2649851" }, "downloads": -1, "filename": "resultr-0.1.9.tar.gz", "has_sig": false, "md5_digest": "fcc835c033fb8b61bccd131d2c901723", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4953, "upload_time": "2018-07-16T09:55:01", "url": "https://files.pythonhosted.org/packages/e9/1d/9c3aefc8018cc4f2dae58ebd3c66018de5d62108313ba9369e4f9fbc0f56/resultr-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6e883befd57b33126ac21969daf359cb", "sha256": "f742957bdf02961d218bc9f8decbfee098449376703d009014f5386df84e91c6" }, "downloads": -1, "filename": "resultr-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "6e883befd57b33126ac21969daf359cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6461, "upload_time": "2018-07-24T12:22:04", "url": "https://files.pythonhosted.org/packages/6a/99/3dd4b684946b51d8c9d3d139fa7da9b4f8a4b9a2b613dc79cdc1ae58824f/resultr-0.1.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "078bf1c5c5c1c1c7220929712a377d09", "sha256": "a2f7859db4b50871fa01a6f2d4509e3fd2af04aac71bbbebeae107e81b425eb3" }, "downloads": -1, "filename": "resultr-0.1.10.tar.gz", "has_sig": false, "md5_digest": "078bf1c5c5c1c1c7220929712a377d09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4998, "upload_time": "2018-07-24T12:22:06", "url": "https://files.pythonhosted.org/packages/13/35/eaa4e4bdd1c242892b739ee5bdedc20fcc3a0a42e18c071e8f9030c16b8e/resultr-0.1.10.tar.gz" } ] }