{ "info": { "author": "Divesh Uttamchandani", "author_email": "diveshuttamchandani@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Education", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Education" ], "description": "# Termicoder\n\n[![Build Status](https://travis-ci.org/termicoder/termicoder.svg?branch=master)](https://travis-ci.org/termicoder/termicoder)\n[![PyPI](https://img.shields.io/pypi/status/termicoder.svg)](https://pypi.python.org/pypi/termicoder)\n[![PyPI](https://img.shields.io/pypi/pyversions/termicoder.svg)](https://pypi.python.org/pypi/termicoder)\n[![PyPI](https://img.shields.io/pypi/v/termicoder.svg)](https://pypi.python.org/pypi/termicoder)\n[![Requirements Status](https://requires.io/github/termicoder/termicoder/requirements.svg?branch=master)](https://requires.io/github/termicoder/termicoder/requirements/?branch=master)\n[![Licence](https://img.shields.io/github/license/termicoder/termicoder.svg)](https://github.com/termicoder/termicoder/blob/master/LICENSE.txt)\n\nView, Code, Submit directly from terminal \nMade with :heart: by [Divesh Uttamchandani](https://github.com/diveshuttam)\n\n## A python based command line interface for helping in competitive programming. Termicoder aims at automating and simplifying the process of coding, testing and submitting solutions to Online Judges so that one can concentrate only on algorithms\n\n

\nInspiration behind Termicoder\n

\n

\n \n

\n\n## Installation\n\n### User installation\n\n`pip install termicoder`\nuse sudo -H if required. preferably use pip3 (python3)\n\n### Developer installation\n\n- clone this repo\n- in the root folder of this repo run\n - `pip install --editable .`\n\nnotice the dot(.) in above command at the end\n\nNote: it is better to use virtualenv and pip3 (python3)\n\n- to remove this package, in the root folder of the repo run\n - `python setup.py develop --uninstall`\n\n**Note: Termicoder is in its development stage and has only been tested on Ubuntu + python3. Support for other configurations is being worked on, if you are using some other platform and encounter errors, do create an [issue](https://github.com/diveshuttam/termicoder/issues) for them. For windows one can also try using [Bash on Ubuntu on Windows](https://msdn.microsoft.com/en-us/commandline/wsl/about) ; most features have been tested out there and work as expected.**\n\n### Autocomplete for bash\n\nTo setup tab autocompletion for termicoder commands,\nsee `termicoder config autocomplete --help`\n\n## Current Support\n\n### Judges Included\n\n1. [CodeChef](http://www.codechef.com)\n\n### Languages Support Included\n\n1. C\n2. C++\n3. Python2/3\n\n## Highlights\n\n```\nUsage: termicoder [OPTIONS] COMMAND [ARGS]...\n\n __ __ _ __\n \\ \\ / /____ _________ ___ (_)________ ____/ /__ _____\n \\ \\ / __/ _ \\/ ___/ __ `__ \\/ / ___/ __ \\/ __ / _ \\/ ___/\n / / / /_/ __/ / / / / / / / / /__/ /_/ / /_/ / __/ /\n /_/ \\__/\\___/_/ /_/ /_/ /_/_/\\___/\\____/\\__,_/\\___/_/\n\n view, code & submit problems directly from terminal.\n\nOptions:\n --version Show the version and exit.\n -v, --verbosity LVL Either CRITICAL, ERROR, WARNING, INFO or DEBUG\n -h, --help Show this message and exit.\n\nCommands:\n clip Copies code from file to clipboard.\n code Creates and opens file with template code.\n config Configure settings, autocomplete etc.\n debug Launches custom debug interface.\n list List the contents of current folder.\n repl Start an interactive shell.\n setup Sets up problem, contests and login.\n submit Submit a solution.\n test Test code against the sample testcases.\n view View contests and problems.\n```\n\n## Detailed Command Help\n\nFor details of a particular command use:\n\n```bash\n\ntermicoder --help\ntermicoder --help\n```\n\nor you can have a look at [helptext](documentation/helptext.md) which contains the output of all help commands\n\n## Sample Run\n\nFor a sample we recommend going through [sample run](documentation/samplerun.md)\nwhich contains the details\n\n## ChangeLog\n\nChangeLog and Older Releases are availible under [Releases](https://github.com/termicoder/termicoder/releases) .\n\n## Contributing to Termicoder\n\nTermicoder is mostly written in python.\nIf you are looking towards contributing to the code base, you should begin with reading the following:\n\n- [CONTRIBUTING](CONTRIBUTING.md)\n- [GUIDELINES](documentation/guidelines.md)\n- [IDEAS](https://github.com/termicoder/termicoder/blob/master/documentation/ideas.md).\n\nYou can also contribute otherwise by\n\n- Improving the Documentation.\n - Most of the documentation lies in the [documentation](https://github.com/termicoder/termicoder/tree/master/documentation) folder. To start fork this repo, change and create a pull request\n\n- reporting a bug or requesting a feature.\n - Please create an [issue](https://github.com/termicoder/termicoder/issues) about the bug/feature.\n\n- Giving feedback about the work. (both praise and criticism are equally appreciated).\n - mail : diveshuttamchandani@gmail.com\n\n## LICENSE\n\n[MIT](LICENSE.txt)\n\n## NOTE\n\nThis is a complete redesign and rewrite of _termicoder_ to support judges as plugins,\nAs well as to support the new codechef API.\n\nUnlike [previous implementation](https://github.com/termicoder/termicoder) this\ncompletely does away with `exec` and `eval` calls. And implements `Judges`,\n`Problems` and `Contests` as classes instead of modules.\n\nThere is an abstract class `Judge` which is used to dispatch operations to a\nparticular judge instance through `Judge Factory`.\nDevelopers can subclass and implement the `Judge` class externally\nand attach their module to setup tool entry-point - `termicoder.judge_plugins`.\n\nTermicoder dynamically loads these judges and dispatches the operations.\nComplete documentation for writing judge-plugins and the UML design docs for\ntermicoder would be available soon. By then you can look at the\n`termicoder/judges/codechef` in this repo for an example implementation.\nSee setup.py for example of how to subscribe to entry point\n`termicoder.judge_plugins`.\n\nThis distribution currently includes judge plugin `codechef` implemented using\n[codechef api](http://developers.codechef.com/) for [codechef api hackathon powered by Alibaba](https://www.codechef.com/CAH1801)\n\nThere are also many completely new features implemented in this version including\n`termicoder repl`, `termicoder config`, `termicoder clip`, `termicoder config autocomplete`\n\nThough this implementation lacks support for colors as well as a few other\nfeatures which were present in previous implementation.\nThis is mostly due to time constraint of the hackathon. Codechef API\nseverely limits requests per time which slows down development.\nWe will try to get it running, once we have tested and perfected the\napi based features.\n\nThis repo code will replace the [main termicoder repo](https://github.com/termicoder/termicoder) after this is perfected\n\nYou can use previous implementation of termicoder by specifying the version while pip\ninstallation.\nPrevious implementation had version numbers `~0.2.*` and current implementation has\nversions `~0.3.*`\nOnce all primary features are implemented we will shift to beta versions `~0.9.*` for develop branch and stable versions `~1.0.*` for master branch", "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/termicoder/termicoder", "keywords": "competitive codechef oj", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "termicoder", "package_url": "https://pypi.org/project/termicoder/", "platform": "", "project_url": "https://pypi.org/project/termicoder/", "project_urls": { "Bug Reports": "https://github.com/termicoder/termicoder/issues", "Homepage": "https://github.com/termicoder/termicoder", "Say Thanks!": "https://saythanks.io/to/diveshuttam", "Source": "https://github.com/termicoder/termicoder/" }, "release_url": "https://pypi.org/project/termicoder/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "CLI to view, code & submit problems directly from terminal", "version": "0.3.0" }, "last_serial": 4341953, "releases": { "0.1.7": [ { "comment_text": "", "digests": { "md5": "b64c3875da44da34ae3770a249f4622a", "sha256": "6b6b3f8f52d95815cc5964046d12dd729d0222ea28c30f3e9506da9a4e280296" }, "downloads": -1, "filename": "termicoder-0.1.7.tar.gz", "has_sig": false, "md5_digest": "b64c3875da44da34ae3770a249f4622a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29675, "upload_time": "2017-07-25T06:38:01", "url": "https://files.pythonhosted.org/packages/45/8c/35968bce8571a72d449fd2c6cf1333e7570804b5ac158547c21a2d3dcfaf/termicoder-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "dc097b9ec7dd3467352009b2a9f445ee", "sha256": "d7d5e7fcbbb5229c3321ccec710f981fbbc089a4c61fc99dc626e44d8c723a0e" }, "downloads": -1, "filename": "termicoder-0.1.8.tar.gz", "has_sig": false, "md5_digest": "dc097b9ec7dd3467352009b2a9f445ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29814, "upload_time": "2017-07-31T10:32:10", "url": "https://files.pythonhosted.org/packages/58/7d/f4db438e68cdd52c95f710c558ec543d0be0f9a2bed8b370eb3ed7e1962a/termicoder-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "2ad4d467b8f24df628098ab3399a50ec", "sha256": "7f4792995a08811c82df2f67f79d7e7ad5151cec76a2e0f63fa6ac771ea791df" }, "downloads": -1, "filename": "termicoder-0.1.9.tar.gz", "has_sig": false, "md5_digest": "2ad4d467b8f24df628098ab3399a50ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29812, "upload_time": "2017-07-31T10:39:16", "url": "https://files.pythonhosted.org/packages/a0/f1/e0218167b569eac57ea95994f68722a532d7c796c765f0f4777be2053dd2/termicoder-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "066b9e5931b4eb000141bd9688a1e855", "sha256": "b7f909e1bcf41dcfd25ed86f2c84728613af6fd6b518dc1557749741a62abca5" }, "downloads": -1, "filename": "termicoder-0.2.0.tar.gz", "has_sig": false, "md5_digest": "066b9e5931b4eb000141bd9688a1e855", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32255, "upload_time": "2017-10-23T13:09:59", "url": "https://files.pythonhosted.org/packages/2b/79/6aad2a68278ba0539193fac474f8116f27cc48e8c109702dbd73d1abc4ce/termicoder-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "e45a1481981c0c68097c373ba519c461", "sha256": "1b6b10e5e4c27b34c07a91a4bfa32ad34ea8f35adc2f0ba5056fc235f15adc66" }, "downloads": -1, "filename": "termicoder-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e45a1481981c0c68097c373ba519c461", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35035, "upload_time": "2017-12-05T12:07:36", "url": "https://files.pythonhosted.org/packages/45/a7/c495092d20e60351c127dcfe43b3af5f503eb0e0e31f726b101d05145456/termicoder-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "4f77b1f6182073f97d3e3f00408f092e", "sha256": "c28686a41548d2da3503fa0ebd4a065668d8a7532c75fa877f0593ad77d88ab2" }, "downloads": -1, "filename": "termicoder-0.2.2.tar.gz", "has_sig": false, "md5_digest": "4f77b1f6182073f97d3e3f00408f092e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33198, "upload_time": "2018-10-04T21:33:33", "url": "https://files.pythonhosted.org/packages/0b/f5/c2f0579abcc595ce1413322f6bcf2bbe639ca8dc9d5e3d198a380a319358/termicoder-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "f0c134b6a10be6e53f7252be72f26b0e", "sha256": "c424fb39ee445f5983fdc2aac2d7daf423a897518513ce63f669fedda339672b" }, "downloads": -1, "filename": "termicoder-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f0c134b6a10be6e53f7252be72f26b0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33216, "upload_time": "2018-10-04T21:38:45", "url": "https://files.pythonhosted.org/packages/80/5a/680f78fd8571cb918997ce5114d280e82a62774bd277b9b7eb8ec54344b1/termicoder-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "4d552dcfbd687be3b5ea9c374254f714", "sha256": "86ce8f0f46c6dc2722345d6061b2e1b5b3039c0b45363e88a86692ee48327b1f" }, "downloads": -1, "filename": "termicoder-0.3.0.tar.gz", "has_sig": false, "md5_digest": "4d552dcfbd687be3b5ea9c374254f714", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 216664, "upload_time": "2018-10-04T21:28:12", "url": "https://files.pythonhosted.org/packages/d2/12/740df9813d762be1118e97b94edf645734a783c92a038d4b913287b781e2/termicoder-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4d552dcfbd687be3b5ea9c374254f714", "sha256": "86ce8f0f46c6dc2722345d6061b2e1b5b3039c0b45363e88a86692ee48327b1f" }, "downloads": -1, "filename": "termicoder-0.3.0.tar.gz", "has_sig": false, "md5_digest": "4d552dcfbd687be3b5ea9c374254f714", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 216664, "upload_time": "2018-10-04T21:28:12", "url": "https://files.pythonhosted.org/packages/d2/12/740df9813d762be1118e97b94edf645734a783c92a038d4b913287b781e2/termicoder-0.3.0.tar.gz" } ] }