{ "info": { "author": "Sarbjit Singh", "author_email": "srbcheema1@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.5" ], "description": "# CoolKit\n\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.ocm/srbcheema1/CoolKit/issues)\n[![a srbcheema1 production](https://img.shields.io/badge/-a%20srbcheema1%20production-blue.svg)](https://github.com/srbcheema1)\n[![Build status](https://api.travis-ci.org/srbcheema1/CoolKit.svg?branch=master)](https://travis-ci.org/srbcheema1/CoolKit)\n[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/srbcheema1/CoolKit)\n[![HitCount](http://hits.dwyl.io/srbcheema1/CoolKit.svg)](http://hits.dwyl.io/srbcheema1/CoolKit)\n\n**CoolKit** is `Coding + ToolKit`, A command-line tool used to automate your programming experience.\n\n\n### Installation\n\n#### Install using pip\n\n- Use pip to install, user `--user` flag\n```\nsudo python3 -m pip install coolkit\n```\n\n#### Build from Source\n\n- Clone the repository and checkout to stable commit\n```\ngit clone https://github.com/srbcheema1/CoolKit\ncd CoolKit\ngit checkout \n```\n\n- install requirements\n```\npython3 -m pip install --user -r requirements.txt\n```\n- Install CoolKit\n```\npython3 setup.py install --user\n```\n\n#### Verify installation\n- check for working\n```\ncoolkit --help\n```\n- if it displays help message you are ready to go.\n\n\n#### troubleshooting\n- In case `coolkit -h` is not working, ensure that binary path is in PATH.\nAdd line `export PATH=$PATH:\"~/.local/bin\"` in your `~/.bashrc` or `~/.zshrc`.\n\n- bash users run these commands\n```\necho export PATH=\"$PATH\":\"~/.local/bin\" >> ~/.bashrc\nsource ~/.bashrc\n```\n- zsh users run these commands\n```\necho export PATH=\"$PATH\":\"~/.local/bin\" >> ~/.zshrc\nsource ~/.zshrc\n```\n\n#### Make it more smart\n- **Highly Recommended to use this feature to harness the full potential of coolkit**\n- you can make your coolkit to autodetect your `contest` and `problem` from your nomenclature of files and directories.\n- to do so you will need to redefine `get_contest_name` and `get_problem_name` in `~/.config/coolkit/global_config.py`.\n- you may define your own functions or use pre-build functions by uncommenting these lines:\n```\n# return srb_contest_name(folder)\n# return srb_problem_name(file_name)\n```\n- feel free to ping me on `srbcheema2@gmail.com` to make a `global_config.py` file for you as per your nomenclature.\n\n\n### Usage\n\n```\nsrb@srb-pc:$ coolkit --help\nusage: Coolkit [-h] [-v] {init,set,run,submit,fetch,config,view} ...\n\npositional arguments:\n {init,set,run,submit,fetch,config,view}\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --version display version number\n```\n\n```\nsuboptions are:\n init initilize a directory as coolkit directory\n set set value of coolkit variables.\n config set config values like username, password.\n fetch fetch a contest to use it for offline testing.\n run run a code file against provided testcases\n submit submit a code to online judge. and output the verdict.\n view view a user, contest, problem, friends-standings or upcoming contest\n```\n\n```\nFor more help regarding suboptions run:\n\ncoolkit init -h\ncoolkit set -h\ncoolkit config -h\ncoolkit fetch -h\ncoolkit run -h\ncoolkit submit -h\ncoolkit view -h\n```\n\n\n### Supported sites\n\n- codeforces\n\n### Examples\n\n#### init\ninit an empty repository\n```\nsrb@srb-pc:$ coolkit init\n```\n#### set\nset value of coolkit-variables for contest, prob, site, contest-type\n```\nsrb@srb-pc:$ coolkit set -c 535\nsrb@srb-pc:$ coolkit set -p A\nsrb@srb-pc:$ coolkit set -t gym\n```\n\n#### config\nset value of global configuration variables like username, password\n```\nsrb@srb-pc:$ coolkit config --user srbcheema1\nsrb@srb-pc:$ coolkit config --pswd I_wont_write_it_here_xD\n```\n\n#### fetch\nfetch a contest, if you are standing in a coolkit folder then by default it will fetch a contest configured in that folder unless you provide using `-c` option. outside a coolkit repo it is necessary to provide contest name using `-c`\n```\nsrb@srb-pc:$ coolkit fetch\nsrb@srb-pc:$ coolkit fetch -c 1025\n```\n#### run\nrun a problem against sample test cases. you can provide problem name using `-p` option, if you dont provide a problem name it will try to automatically detect the problem name using rules specified in `~/.config/coolkit/global_config.py`. **you can modify this file as you want**.\nif it is unable to detect file name then it will try to remember last problem you ran and run the test cases against it.\n```\nsrb@srb-pc:$ coolkit run one.cpp\nProb name not provided, trying to detect from filename\nrunning one.cpp file for A prob on 837\nsrb@srb-pc:$ coolkit run soln.cpp\nProb name not provided, trying to detect from filename\nUnable to detect prob name from file name\n```\n\nThere is a cool new feature: you may add your own custom input/outputs to test against binary during run command. just add these to files to your present working directory `Input.txt` and `Output.txt` containing input and output respectively.\n\n\n#### submit\nSubmit a file on online judge and show you report through desktop notification. **it wont submit a file if it fails on local sample test cases**. Still if you want to submit a file use `-f` flag\n```\nsrb@srb-pc:$ coolkit submit one.cpp\nsrb@srb-pc:$ coolkit submit one.cpp -p A\nsrb@srb-pc:$ coolkit submit one.cpp -p A -f\n```\n#### view\n```\nsrb@srb-pc:$ coolkit view user srbcheema1\nsrb@srb-pc:$ coolkit view prob A\nsrb@srb-pc:$ coolkit view contest 535\nsrb@srb-pc:$ coolkit view upcoming\nsrb@srb-pc:$ coolkit view friends\nsrb@srb-pc:$ coolkit view standings\n```\n\n### Demo for a contest\n\n[![Contest_Example_1](https://raw.githubusercontent.com/srbcheema1/CheemaFy/master/myPlugins/extra_things/png_images/coolkit/contest_example_1_1.png)](https://github.com/srbcheema1/)\n\n\n### Similar Tools\n\n- It is worth it to mention few other tools that I was using from a year or so. I have really loved those tools and also used some of their modules/functions in this tool. Those tools are [SpojPi](https://github.com/nimitbhardwaj/SpojPI), [Acedit](https://github.com/coderick14/ACedIt) and [Idne](https://github.com/endiliey/idne/blob/master/idne.py).\n\n\n### Note\n\n- Coolkit is smart enough to detect a directory is coolkit repo or not. it automatically initilizes a directory as a coolkit directory in case it is not. Still I have provided `init` option. Its main purpose is to initilize a coolkit directory inside another coolkit directory. by default it will copy parent configurations for once which you can change lateron.\n- Coolkit is smart enough to detect your program name from your filename. Have a look at `get_problem_name` in `global_config.py` file. you can suggest imporvements in that function.\n- Coolkit is smart enough to detect your contest name from your directory name. Have a look at `get_contest_name` in `global_config.py` file. you can suggest imporvements in that function.\n- To suggest me improvements you can open an issue, make an PR, mail me or contact me on links provided below. I am working to provide a flexible way for users to modify their own way of detection.\n- In case of any bug/issue, Please report this to srbcheema2@gmail.com. Or, even better, submit a PR to fix it!\n\n\n### Contact / Social Media\n\n[![Github](https://raw.githubusercontent.com/srbcheema1/CheemaFy/master/myPlugins/extra_things/png_images/social/github.png)](https://github.com/srbcheema1/)\n[![LinkedIn](https://raw.githubusercontent.com/srbcheema1/CheemaFy/master/myPlugins/extra_things/png_images/social/linkedin-48x48.png)](https://www.linkedin.com/in/srbcheema1/)\n[![Facebook](https://raw.githubusercontent.com/srbcheema1/CheemaFy/master/myPlugins/extra_things/png_images/social/fb.png)](https://www.facebook.com/srbcheema/)\n\n\n### Developed by\n\nDeveloper / Author: [Srb Cheema](https://github.com/srbcheema1/)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/srbcheema1/CoolKit", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "coolkit", "package_url": "https://pypi.org/project/coolkit/", "platform": "", "project_url": "https://pypi.org/project/coolkit/", "project_urls": { "Homepage": "http://github.com/srbcheema1/CoolKit" }, "release_url": "https://pypi.org/project/coolkit/0.0.9/", "requires_dist": null, "requires_python": "", "summary": "A command line tool for competitive programming", "version": "0.0.9" }, "last_serial": 4714591, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "31321b73d2ef82ed0e394fc31fb52c6a", "sha256": "f6535ce90dfbb7ebf9f2389dcaeb1657d74ce40baa2ce20d0a802e36723a57f7" }, "downloads": -1, "filename": "coolkit-0.0.1.tar.gz", "has_sig": false, "md5_digest": "31321b73d2ef82ed0e394fc31fb52c6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20742, "upload_time": "2018-10-03T23:33:12", "url": "https://files.pythonhosted.org/packages/52/a0/080f4f2bd23d0cf76534cbbbb54f3cf3b132770543f252aaa7837a891adf/coolkit-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "416094557888a62b374569fcabf70fba", "sha256": "e813f80860839bf3ebe889b5b982b2e2ebdf99a5dddca4c990c31416cf55af1a" }, "downloads": -1, "filename": "coolkit-0.0.2.tar.gz", "has_sig": false, "md5_digest": "416094557888a62b374569fcabf70fba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20986, "upload_time": "2018-10-04T03:16:59", "url": "https://files.pythonhosted.org/packages/4a/27/0a6ef90af13b684fb14ab959062c4775597461ce2892f887099892ad5154/coolkit-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1a7e3c6a9ef1902f7a8b446b4b6e35b6", "sha256": "9a86a68ca5505657816ef9d35021d9721138c3e2ae2e6f159040139437f04d4a" }, "downloads": -1, "filename": "coolkit-0.0.3.tar.gz", "has_sig": false, "md5_digest": "1a7e3c6a9ef1902f7a8b446b4b6e35b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23423, "upload_time": "2018-10-06T11:17:31", "url": "https://files.pythonhosted.org/packages/b8/02/63915e74f6f9ed177f16d698a00355e5cb5b5ed6ac96523c6ba533067733/coolkit-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "4fb03d4d211beb0b799f7dcc1eee2efc", "sha256": "4b38d6e42979030360276b42829904e8a18cbfe815e7c6378973c0d82ef709ab" }, "downloads": -1, "filename": "coolkit-0.0.4.tar.gz", "has_sig": false, "md5_digest": "4fb03d4d211beb0b799f7dcc1eee2efc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25769, "upload_time": "2018-10-09T01:30:22", "url": "https://files.pythonhosted.org/packages/47/02/207a2e76f2a93bca07460a40aad97524872fe3830d5b8d3f38955c4e6aef/coolkit-0.0.4.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "de2cc9b0f60a8846e687cccb288e773c", "sha256": "fd7a4fcd5a7ac681099a0f0c14d61d5964c96b8a0b41d8b8fe81c740a02aa7f5" }, "downloads": -1, "filename": "coolkit-0.0.6.tar.gz", "has_sig": false, "md5_digest": "de2cc9b0f60a8846e687cccb288e773c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26109, "upload_time": "2018-10-10T12:40:53", "url": "https://files.pythonhosted.org/packages/de/f4/867aa433232cce52dcb06773b222fdcc53a412629bf1a9de7aeff6cfccac/coolkit-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "9c8e957b0f0fddbc2d175162a95a1002", "sha256": "20fc3da501189762d775de31d1a682c57919a2d720448267a378fb65107c8add" }, "downloads": -1, "filename": "coolkit-0.0.7.tar.gz", "has_sig": false, "md5_digest": "9c8e957b0f0fddbc2d175162a95a1002", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26219, "upload_time": "2018-10-11T00:04:48", "url": "https://files.pythonhosted.org/packages/f1/a8/92fe3a15ca5175990b3b38bd5a7f4f5dfc92f86cbed77e71cb0efc32b110/coolkit-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "93a06c8e947b03261a3913e2a7d25293", "sha256": "de932f77d1f047ea8bd8e9a08a577cd280eb4d61a17a350e4cddd23f12d4bbe8" }, "downloads": -1, "filename": "coolkit-0.0.8.tar.gz", "has_sig": false, "md5_digest": "93a06c8e947b03261a3913e2a7d25293", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27065, "upload_time": "2018-11-04T20:45:04", "url": "https://files.pythonhosted.org/packages/07/7a/eb8e6c313a72127c7d006d6c01570308874120faacf2bbe732a02465fa6b/coolkit-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "43030752d787ea0ad58d00d0b2edb8a1", "sha256": "89d4dd99dfa341941577ce5f6d59fd0dba5cd47352dd1512841ae65acbd3e4ba" }, "downloads": -1, "filename": "coolkit-0.0.9.tar.gz", "has_sig": false, "md5_digest": "43030752d787ea0ad58d00d0b2edb8a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27193, "upload_time": "2019-01-19T04:55:03", "url": "https://files.pythonhosted.org/packages/ec/f5/53d3599fb850d702165f2c17c1597b2c114daa1f0286ea119a474a94ab04/coolkit-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "43030752d787ea0ad58d00d0b2edb8a1", "sha256": "89d4dd99dfa341941577ce5f6d59fd0dba5cd47352dd1512841ae65acbd3e4ba" }, "downloads": -1, "filename": "coolkit-0.0.9.tar.gz", "has_sig": false, "md5_digest": "43030752d787ea0ad58d00d0b2edb8a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27193, "upload_time": "2019-01-19T04:55:03", "url": "https://files.pythonhosted.org/packages/ec/f5/53d3599fb850d702165f2c17c1597b2c114daa1f0286ea119a474a94ab04/coolkit-0.0.9.tar.gz" } ] }