-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Problem Constants Injection #54
Conversation
ce96180
to
90a9dc9
Compare
Codecov Report
@@ Coverage Diff @@
## master #54 +/- ##
==========================================
+ Coverage 91.07% 91.36% +0.29%
==========================================
Files 32 34 +2
Lines 1579 1668 +89
==========================================
+ Hits 1438 1524 +86
- Misses 141 144 +3
Continue to review full report at Codecov.
|
テストが重いのでAGCに対してしか実行していませんが、検出状況はこんな感じです。 |
あと、Jinja2は十分強力なので--replacementと--templateの2つを指定しなくなって使いやすくなる気がします。このPRにはその廃止は含まれていませんが。 |
@kyuridenamida コンフリクト解消して |
@asi1024 わかった まって |
した。あとは
にする作業をする |
名前変えるのは別PRにしたほうがいいかも? |
↑たしかに ではこのPRでは行いません |
Co-Authored-By: kyuridenamida <tyotyo3@gmail.com>
Co-Authored-By: kyuridenamida <tyotyo3@gmail.com>
Co-Authored-By: kyuridenamida <tyotyo3@gmail.com>
…ndidates. Instead, show warning message when detecting multiple values returning None.
return None | ||
|
||
|
||
def predict_yes_no(html: str) -> Optional[Tuple[str, str]]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
型が実装と合ってなくないですか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確かにOptional[Tuple[Optional[str], Optional[str]]]でしたね。うっかりしてました。
Noneに失敗の意味を持たせるのもあまり好きじゃないので、Optionalの代わりにエラー吐くようにしました。
なので型が
def predict_yes_no(html: str) -> Tuple[Optional[str], Optional[str]]:
になった。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes_str
が定義されているとき,その時に限り no_str
が定義されているというのは保証してほしいです (型を Optional[Tuple[...]
] にしてほしいというのはそういう意図でした)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
解があるなら普通に出力、ないならImpossibleを出力するみたいな問題を想定した上で今の実装にしていました(no_strだけが存在するケース)。
ただ、その反対のパターンつまりyes_strだけが存在するケースってのは多分想像つかないので型としてはちょっと緩いですが実用上問題ないというつもりでいます。
どう思いますか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No と Impossible を同じ no_str に入れるのは微妙な気がしますが,どうなんでしょう
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ひとまずはこれでいっか
@@ -1,13 +1,16 @@ | |||
#include <bits/stdc++.h> | |||
using namespace std; | |||
|
|||
void solve(${formal_arguments}){ | |||
|
|||
{% if mod %}const long long MOD = {{ mod }};{% endif %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
この if
は C でいう #ifdef
的なやつですよね. mod
自体は bool 値ではないので,わかりづらい気がします.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
そうですね。pythonのif文と同じ挙動をします。てことはやっぱり明示的に mod is not Noneって書いたほうがいいですね
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
同じ挙動をするというのは嘘で、jinja2独自の動作をするが正しかったです。どちらにせよ none かどうかを明示的に判定したほうがよいのはそうっぽいのでそうします。
|
@asi1024 jinja2の機能としてはできるはずです。そのテストを追加しますね。 |
MODとかYES, NOをコードに差し込む
存在していれば挿入というロジックのために今より高度なテンプレートエンジンが必要だったので、Jinja2を導入した
その際、下位互換性を持たせるために"${"が文字列に含まれていたら古いテンプレートエンジンを使うようにした。
対応した定数は以下の通り
どうせ間違ってたら使われないだけなのでかなり適当なのでRecallが重要だと思う。
とりあえずMVPということRecallは定量的にできていない。
新しいテンプレートエンジン(Jinja2)を用いたテンプレート記述例
とか書くと生成してくれる。