reala10n / cptk Goto Github PK
View Code? Open in Web Editor NEWYour personal assistant CLI for everything competitive programming related. ๐๏ธ๐จโ๐ป
License: Apache License 2.0
Your personal assistant CLI for everything competitive programming related. ๐๏ธ๐จโ๐ป
License: Apache License 2.0
Currently, tests with large input and outputs will get loaded into memory and will take a very long time to compare.
We should use the output stream to compare the output of the execution to the expected output file online
When using the clone subcommand the resulting path is printed with inconsistent slashes, for example:
PS> cptk clone https://cses.fi/problemset/task/1068
D:\Projects\tomer-cptk\cses-fi/cses-problem-set/weird-algorithm/
Allow website plugins to make requests using a requests
session managed and provided by the cptk core.
For login information, add support for a keys.cptk.yaml
file that will contain information that is managed by website plugins.
The website plugin will define the model of their section in the keys.cptk.yaml
file.
The session used by cptk will be stored locally (probably as a pickle, perhaps an encrypted pickle).
The extension will communicate with the cptk command line and will provide a nice GUI for longer commands.
This issue proposes a new plugin to cptk
that will interact with the code
CLI and will extend the built-in feature-set of cptk.
code -g
code -d
We can analyze the websites that the user visits, what problems he spends most of his time on, and what language he prefers!
This information can be interesting and in my opinion, gives cptk
some extra points when compared to other competitive programming toolkits.
Although it sounds good, this feature may be too much for the simpler users, and we might want to consider adding it as an extra and optional dependency.
Currently, the traceback for unexpected errors lacks information and in my option, the default python one is better.
I would like to print out the default traceback (or something that is very similar to it) with an additional bold line that states that an unexpected error has occurred.
This solution is great for Python developers and users that aren't familiar with Python:
The error message should also print some information about the current Python version, and information about the version of cptk.
Logging into the websites again and again every time can be quite annoying. To avoid it, we can:
cptk
lanches.Users may want to commit and push their solutions. This is why we want to integrate git with cptk and provide the following options:
Solved {number} problems
{'\n'.join(f''{p.name} - {p.url}" for p in problems)}
Solved {numberSolved}, Resubmitted {numberResubmitted}
etc.
If the user renames the folder structure of already existing problems, cptk should be smart and create new problems with the same relative path in the new, renamed subdirectory.
For example, if there is a problem from cses.fi
located inside introductory-problems/trailing-zeros
and the user decides to rename the directory to something like intro/trailing-zeros
, other problems from the "Introductory Problems" section in the problem set should be cloned into the new intro
subdirectory instead of the old introductory-problems
one.
cool
Clone a problem into a new temporary directory. In this directory, run the preprocessor and other third-party plugin hooks, and only then copy the directory into the final destination (and raise warnings if some files are overwritten).
Checking if the tests exceeded the time limit is easy. However, checking for memory usage is a bit more difficult
The project configuration file, project.cptk.yaml
, should allow a specification of a list of template paths.
If multiple templates are provided, the first template in the list will be the default one, but the user will be able to overwrite the default choice with other choice names when cloning or creating a new problem using the clone
and create
subcommands, using a click option.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.