GithubHelp home page GithubHelp logo

chermehdi / egor Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 238 KB

A Command line tool for automating testing and task generation for competitive programmers

License: MIT License

Python 96.97% C++ 0.39% Java 2.64%
cli competitive-programming python

egor's Issues

Custom templates

Add the ability to use templates from templates with some good features:

  • Ability to specify these templates in ~/.egor as EGOR_JAVA_TEMPLATE, or as an env variable
  • Inject metadata about the task into the template so that people can use them in comments or in logging. {TASK_NAME}, {TASK_LINK}.

Add custom test cases

User must be able to add custom test cases, and he can specify the output file as well as no output file at all if he only wishes to run a case which he don't have the correct output.

Watch mode

Add watcher mode that watches the main file of each task in the contest and recompile/run the code if necessary. The watcher should be able to:

  • Watch files for any modification (Including changing current tests or adding new tests)
  • Add a file called ".task_metadata.json" in each task folder to keep track of tests and template link, etc.
  • Hash files before running + keep track of old runs = Don't rerun if it's the same test/code
  • Log all of these compiling/running to the user. If passed just show "PASSED" in green, if not print "FAILED:" and print the two outputs failing. (Limit the output to 1000 lines if necessary)

Exact libraries version in requirement.txt

I don't see why it's needed to have an exact version of a plugin/library in requirement.txt (using ==)
I think using a range based restriction would be a better idea.
The priority of this is very low for now, but let's keep that in mind.

Time/Memory/Output limit

We can't just run the code without any time/memory/output limit.

Also I suggest adding a ProcessManager which manages calling out os processes and getting out the output/error streams, manage limits, exceptions, etc...

Code linter

Add a code linter library to:

  • Avoid multiple collaborators adding different code styles
  • Enforce writing module/class/methods comments

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.