kyuridenamida / atcoder-tools Goto Github PK
View Code? Open in Web Editor NEWConvenient modules & tools for AtCoder users, written in Python 3.6
License: MIT License
Convenient modules & tools for AtCoder users, written in Python 3.6
License: MIT License
pipにパッケージを登録して導入を簡単にする
https://kyuridenamida.github.io/atcoder-tools/#/quality/summary のページには全問題の解析結果が含まれていることに気付きました。これの内部に含まれているデータをもうすこし扱いやすい形式で (たとえば https://kyuridenamida.github.io/atcoder-tools/api.json
のようなURLを叩くだけなど) で提供してほしいです。
用途は、userscriptからatcoder-toolsを使えるようにすることです。
今でも十分早いかもしれないが、TestFormatPrediction.test_overallを実行するのに手元で43秒かかるのでもう少し早くしたい。
少なくとも誤差ジャッジに対応する
例えば以下のようなコードが生成できるようになってほしいです。
出力部分を書かなくていいのは単に楽ですし、これができれば自動でサンプルをテストする機能を生成コードの中に組み込めたりもしてうれしいです。
bool solve(int n) {
...
return answer;
}
int main() {
...
bool answer = solve(n);
cout << (answer ? "Yes" : "No") << endl;
}
言語テンプレートの新規追加時に正しく動いているかどうかをテスト出来るようにする
CIしづらい
統一される (文字列の場合があるので std::cin
になる) と嬉しくて、選択可能になるともっとうれしいです。速度の問題で cin.tie(0)
をしたりしなかったりとか、出力結果を加工してさらに何かするときの都合です。
実装の選択肢は以下のふたつになると思います。template は言語ごとに独立なので定義される値を足しても困ることはなく、実装や利用の単純さから後者がよいはずです。
{{input_part}}
だけでなくて {{input_part_cin}}
{{input_par_scanf}}
を用意する大体インターネットに繋がってないときに起きるから問題はなかろうと思うんですが、このバグはちょっと間抜けなので治す。
toolsまわりのテストが全くないことになっているらしい。なぜだ、困った。
スペースの区切りの文字列または
c1c2c3...と書かれているが実際にはabc...みたいに連接した入力が来るとき,破綻する問題.
This recording has been archived
になってます。
対応としては軽めのgifにしてGitHubのIssuesやWikiにuploadするのがおすすめです。
表題の通りで、Segmentation Faultなどをするときに[RE]のみが出てしまいます。print debugをatcoder-tools上でやりたい時もあると思うので、サポートしてくれると嬉しいです。
やばい
Since merging #26, Travis CI has been failing. My bad, I will fix it soon.
誤差ジャッジや特殊ジャッジの時にsampleにACできないですが、sampleを通さなくてもsubmitできる機能があると嬉しいかも。(あと、sampleが0個の時はsubmitしないのは仕様ですか?)
パッとどんな感じのテンプレートか見れたほうが良いと思うので
tester.py
を実行する際に、カレントディレクトリにサブディレクトリが存在すると、サブディレクトリが実行可能プログラムとみなされ警告が出力される。ディレクトリは候補から除外するべき。
$ atcoder-tester
WARNING: There're multiple executable files. This time, './a.exe' is selected. candidates = ['./a.exe', './in', './out']
# in_C_1.txt ... PASSED
# in_C_2.txt ... PASSED
# in_C_3.txt ... PASSED
# in_C_4.txt ... PASSED
Passed all testcases!!!
$ ls -l
合計 20648
-rwxr-xr-x 1 ユーザ名 なし 158346 11月 19 00:22 a.exe
(略)
drwxr-xr-x 1 ユーザ名 なし 0 11月 15 00:50 in
(略)
drwxr-xr-x 1 ユーザ名 なし 0 11月 15 00:50 out
(以下略)
submitにおいて--codeがきかない。これはよくない
現状はコード自動生成機能は atcoder-tools gen CONTEST_ID
のサブコマンドを用いて間接的にしか利用できません。これは「単独の問題ごとの利用ができない」「ディレクトリ構造が固定される」などの不都合があります。なので、単体でこの機能を使えるサブコマンドがほしいです。
具体的なインターフェースの形としては atcoder-tools codegen [-l LANGUAGE] URL > PATH
か atcoder-tools codegen URL PATH
(言語は PATH
から判別) などが使いやすいかなと思います。
対象の指定方法は url であるべきのはずです。task_id だけの指定では contest_id の復元が不可能であり、contest_id と task_id をふたつ指定するのは url コピペするだけに比べて煩雑なためです。
出力先は特定のディレクトリ構造に依存するべきでないので (そういう趣旨でのコマンドの追加なので)、標準出力を使うか引数として受けとるべきです。
入力以外にpreタグがあった時に死ぬ現象をなんとかする.
説明のためとかにあったりするので.
#59 の後に作業すべき
これはEnglish用のステートメントのタグ消してるから起きる.
code generator は現状設定ファイルでしか指定できないが、引数で指定できるようになるとツールチェインとして使うときに便利かもしれない。
R C N
x1,1 y1,1 x1,2 y1,2
:
xN,1 yN,1 xN,2 yN,2
を
R C N
x1,1 x1,2
:
xN,1 xN,2
y1,1 y1,2
:
yN,1 yN,2
みたいに解釈する。何事
Mistakenly created issue
H W
a_{1, 1}\ldotsa_{1, W}
:
a_{H, 1}\ldotsa_{H, W}
N
p_1 p_2 \ldots p_N
N
a_1 b_1
a_2 b_2
:
a_{N - 1} b_{N - 1}
みたいなケースの取得になぜか失敗する
https://dp.contest.atcoder.jp/tasks/dp_a
https://dp.contest.atcoder.jp/tasks/dp_b
https://dp.contest.atcoder.jp/tasks/dp_h
https://dp.contest.atcoder.jp/tasks/dp_i
https://dp.contest.atcoder.jp/tasks/dp_j
https://dp.contest.atcoder.jp/tasks/dp_v
:
などなど
ユーザーにテンプレートパラメータ生成のための関数(User-defined function)を定義させられるようにする。
(中間形式, 問題文内定数) → ディクショナリ
みたいなUDFを想定
ログインしなくても見れるページしか触らない場合でもパスワードの入力が要求されてしまっています。必要もないのにパスワードを聞いてくるプログラムにパスワードを入力するのは勇気が必要であり、ユーザに優しくないです。なので --without-login
はデフォルトにしたいです。
Use codecov
セキュリティリスクが高すぎるので廃止する。
online-judge-toolsのようにセッション情報だけ持つようにする
https://github.com/kmyk/online-judge-tools
ものすごくどうでもいいんですが"PythonはすごいのでリストXに対してX[0::2]"の直後に変な文字が入っています。miとかで開くと可視化されます。
たしかMacで、日本語を入力→スペースキー→バックスペースとやるとこの文字が入った気がする。
kupc2016で死んだ
ウ ン チ ー コ ン グ
docにARC/ABC/AGC/有志コンテスト別にそれぞれ定量的な精度情報を載せる
Replacementとtemplateを分ける理由がどれくらいあるかというかかなり不明なのでreplacementを無くす
自分でテストケースを追加したとき、out_(問題id)_(サンプルid).txt
の改行コードが、プログラムが出力する改行コードと異なるとWAを出力する。
$ atcoder-tester
# in_D_1.txt ... PASSED
...
# in_D_s2.txt ... PASSED
# in_D_s3.txt ... WA
[Input]
...
[Expected]
2
[Received]
2
Some cases FAILED (passed 5 of 6)
$ cat -e out_D_s3.txt
2^M$
$ ./a < in_D_s3.txt | cat -e
2$
また,ファイルの最後の改行のある無しの違いでもWAが出るため,改善したい.
parser部分にPRを送りたいという要望がきたため、適当なところを直す
ドキュメント・自動生成されたコード、どの問題を確認できるWebapp(もしくはページ)を作る
以下があると嬉しいですね
入力フォーマットのより良い中間形式について議論する
+@asi1024
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.