AtCoderStudyBooster 0.4.0__py3-none-any.whl → 0.4.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,261 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: AtCoderStudyBooster
3
- Version: 0.4.0
4
- Summary: A tool to download and manage AtCoder problems.
5
- Project-URL: Homepage, https://github.com/yuta6/AtCoderStudyBooster
6
- Author-email: yuta6 <46110512+yuta6@users.noreply.github.com>
7
- License: MIT
8
- Requires-Python: >=3.8
9
- Requires-Dist: beautifulsoup4
10
- Requires-Dist: click-aliases>=1.0.5
11
- Requires-Dist: markdownify==0.13.1
12
- Requires-Dist: pywebview>=5.4
13
- Requires-Dist: questionary>=2.0.1
14
- Requires-Dist: requests
15
- Requires-Dist: rich-click>=1.8.8
16
- Requires-Dist: rich>=13.7.1
17
- Requires-Dist: tiktoken
18
- Requires-Dist: types-beautifulsoup4>=4.12.0.20240511
19
- Requires-Dist: types-requests>=2.32.0.20240712
20
- Description-Content-Type: text/markdown
21
-
22
- # AtCoderStudyBooster
23
-
24
- ## 概要
25
-
26
- 🚧 このプロジェクトはまだ実験段階です。日々のAtCoder学習に役立つ機能を順次追加しています。
27
-
28
- AtCoderStudyBoosterはAtCoderの学習を加速させるためのCLIツールです。問題をローカルにダウンロードし、テスト、提出、解答の作成をサポートするツールです。Pythonが入っていることが必須です。Pythonが入っている環境なら、
29
-
30
- ```sh
31
- pip install AtCoderStudyBooster
32
- ```
33
-
34
- でインストールできます。(Python3.8以上が必要です)
35
-
36
- キャプチャ認証が導入されたあとでも、CLIから半自動でログイン&提出できます。ただしキャプチャをGUIから人力で解く必要があります。キャプチャー認証をバイパスするものではありません。
37
-
38
- このツールは以下のプロジェクトに強く影響を受けています。
39
- - [online-judge-tools](https://github.com/online-judge-tools)
40
- - [atcoder-cli](https://github.com/Tatamo/atcoder-cli)
41
-
42
- ## 利用ケース
43
-
44
- まずは`download`コマンドを利用して問題をローカルにダウンロードしてみましょう。
45
-
46
- ### 1. 特定のコンテストをダウンロードする
47
-
48
- 1つのコンテストの問題をダウンロードしたい場合の例です。
49
-
50
- #### ABC350の全問題をダウンロード
51
- ```sh
52
- ❯ atcdr download abc350
53
- ```
54
-
55
- #### ABC350のA〜D問題をダウンロード
56
- ```sh
57
- ❯ atcdr download abc350 {A..D}
58
- ```
59
-
60
- #### 競プロ典型90問のダウンロード
61
- ```sh
62
- ❯ atcdr download typical90
63
- ```
64
-
65
- ### 2. 複数のコンテストを一括でダウンロードする
66
-
67
- 複数のコンテストを一度にダウンロードしたい場合の例です。bashのブレース展開を活用します。
68
-
69
- #### ABC001〜ABC010までの全問題
70
- ```sh
71
- ❯ atcdr download abc{001..010}
72
- ```
73
-
74
- #### ABC320〜ABC325までのA〜C問題
75
- ```sh
76
- ❯ atcdr download abc{320..325} {A..C}
77
- ```
78
-
79
- 次のようなフォルダー構造が生成されます:
80
-
81
- ```
82
- abc320/
83
- ├── A/
84
- │ ├── Problem.html
85
- │ └── Problem.md
86
- ├── B/
87
- │ ├── Problem.html
88
- │ └── Problem.md
89
- └── C/
90
- ├── Problem.html
91
- └── Problem.md
92
- abc321/
93
- ├── A/
94
- ...(以下同様)
95
- ```
96
-
97
- ### 3. 特定の問題(A問題、B問題など)を集中的に演習したい場合
98
-
99
- 特定の難易度の問題だけを集めて練習したい場合は、**問題ラベルを先に指定**すると便利です。
100
-
101
- #### B問題だけを集中的に練習
102
- ```sh
103
- ❯ atcdr download B abc{250..260}
104
- ```
105
-
106
- 問題ラベルを先に指定すると、問題ラベルごとにフォルダが作成され、その中にコンテスト名のフォルダが配置されます。
107
-
108
- ```
109
- B/
110
- ├── abc250/
111
- │ ├── Problem.html
112
- │ └── Problem.md
113
- ├── abc251/
114
- │ ├── Problem.html
115
- │ └── Problem.md
116
- ├── abc252/
117
- │ ├── Problem.html
118
- │ └── Problem.md
119
- └── ...(以下同様)
120
- ```
121
-
122
- A問題とB問題を集める場合(`{A,B} abc{300..302}`):
123
-
124
- ```
125
- A/
126
- ├── abc300/
127
- │ ├── Problem.html
128
- │ └── Problem.md
129
- ├── abc301/
130
- │ ├── Problem.html
131
- │ └── Problem.md
132
- └── abc302/
133
- ├── Problem.html
134
- └── Problem.md
135
- B/
136
- ├── abc300/
137
- │ ├── Problem.html
138
- │ └── Problem.md
139
- ├── abc301/
140
- │ ├── Problem.html
141
- │ └── Problem.md
142
- └── abc302/
143
- ├── Problem.html
144
- └── Problem.md
145
- ```
146
- このディレクトリ構造により、同じ難易度の問題を一箇所に集めて効率的に演習できます。
147
-
148
- ### 問題を解く
149
-
150
- MarkdownファイルあるいはHTMLファイルをVS CodeのHTML Preview, Markdown Previewで開くと問題を確認できます。VS Codeで開くと左側にテキストエディターを表示して、右側で問題をみながら問題に取り組めます。
151
-
152
- ![demo画像](./.images/demo1.png)
153
-
154
- ### サンプルをローカルでテストする
155
-
156
- 問題をダウンロードしたフォルダーに移動します。
157
-
158
- ```sh
159
- ❯ cd abc224/B
160
- ```
161
-
162
- 移動したフォルダーで解答ファイルを作成後、testコマンドを実行すると、サンプルケースをテストします。
163
-
164
- ```sh
165
- ~/.../abc224/B
166
- ❯ atcdr t
167
- ```
168
-
169
- ![demo画像](./.images/demo2.png)
170
-
171
- WAの場合は以下のような表示になります。
172
-
173
- ![demo画像](./.images/demo3.png)
174
-
175
- ### 提出する
176
-
177
- ```sh
178
- ~/.../abc224/B
179
- ❯ atcdr s
180
- ```
181
-
182
- を実行すると、提出することができます。提出にはAtCoderのサイトへのログインが必要です。
183
-
184
- ### 解答をGPTで生成する
185
-
186
- ```sh
187
- ~/.../abc224/B
188
- ❯ atcdr g
189
- ```
190
-
191
- で解答をGPTで生成します。Chat GPTのAPIキーが必要です。さらに、生成されたファイルはサンプルケースが自動でテストされ、**テストをパスしなかった場合、テスト結果がGPTにフィードバックされ解答が再生成**されます。
192
-
193
- GPTとプログラムとのやり取りのログはJSONファイルで保存されます。
194
-
195
- ## 解答生成機能generateコマンドに関する注意点
196
-
197
- [AtCoder生成AI対策ルール](https://info.atcoder.jp/entry/llm-rules-ja)によるとAtCoder Beginner Contest(以下、ABCとする)および AtCoder Regular Contest (Div. 2) においてに問題文を生成AIに直接与えることは禁止されています。ただし、このルールは過去問を練習している際には適用されません。該当のコンテスト中にこの機能を使用しないでください。
198
-
199
- ## その他の機能
200
-
201
- ### markdownコマンド
202
-
203
- 完全なCLI環境方向けのコマンドです。
204
-
205
- ```sh
206
- ~/.../abc224/B
207
- ❯ atcdr md
208
- ```
209
-
210
- を実行すると、問題をプリントします。
211
-
212
- ![demo画像](./.images/demo4.png)
213
-
214
- ### 複数のファイルを一度にテスト
215
-
216
- ```sh
217
- ~/.../abc224/B
218
- ❯ atcdr t *.py
219
- ```
220
-
221
- でフォルダー内にあるすべてのPythonファイルを一度にテストします。
222
-
223
- ```sh
224
- ~/.../abc224/B
225
- ❯ atcdr t mon.py mon.c mon.cpp
226
- ```
227
-
228
- フォルダー内に複数ファイルある場合は、インタラクティブに選択できます。
229
-
230
- ```sh
231
- ~/.../abc224/B
232
- ❯ atcdr t
233
- ```
234
-
235
- ```sh
236
- ~/.../abc224/B
237
- ❯ atcdr t
238
- 複数のファイルが見つかりました.ファイルを選択してください:
239
- 十字キーで移動, [enter]で実行
240
- ❯❯❯ mon.py
241
- mon.c
242
- mon.cpp
243
- ```
244
-
245
- ### プログラミング言語を指定してコードを生成
246
-
247
- `--lang`オプションを使うと、生成したいプログラミング言語を指定できます。
248
-
249
- ```sh
250
- ~/.../abc224/B
251
- ❯ atcdr generate --lang rust
252
- ```
253
-
254
- ### テストをせずにコードのみ生成
255
-
256
- デフォルトで`atcdr generate`コマンドは生成されたコードをテストしますが、テストせずにコードのみ生成できます。
257
-
258
- ```sh
259
- ~/.../abc224/B
260
- ❯ atcdr generate --lang rust --without_test
261
- ```
@@ -1,21 +0,0 @@
1
- atcdr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- atcdr/cli.py,sha256=xiCnGf14VHtLcRlVHXNpLKW3FIxOHS2duTRDTsG8a5w,2595
3
- atcdr/download.py,sha256=R7hdhYupw3hppqjKpt7kchT-V2AJqHypitfb2qIwvtU,7926
4
- atcdr/generate.py,sha256=i-rznjOQpBcAmlI0CGGC8CEY3Nx35SoxQgGaPSh6Oz8,8183
5
- atcdr/login.py,sha256=gro9gj-nF4pGz4KepkaNSMj8PRGdSJtaVcBe7YKUPzU,4697
6
- atcdr/logout.py,sha256=WYFifFDZtdcFZ0z3BhqsmdK_JbufjmBdF4q5dDkLbHQ,753
7
- atcdr/markdown.py,sha256=RpYdXMWgBd2qcMj-WmUrSyF0VdLfyUms-FsTRXfdgRw,1485
8
- atcdr/open.py,sha256=aRmhg7_TcZU6iPBM0u7lUQhTpPF5Eo227MxS3JUSm1M,1293
9
- atcdr/submit.py,sha256=T579xpIyLeXp69D8UW_2mNC8vcjJ3d-iFT9rJvoVJ7I,9975
10
- atcdr/test.py,sha256=y9ENvL4Gdirup07tfFBjJJXA-HeiWZpSW1ncpNwiKOs,13672
11
- atcdr/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- atcdr/util/fileops.py,sha256=jxJ_d-R3XG-CLQemwwxgeNQcvNAE_7Q-3nOQ1npG3ig,3293
13
- atcdr/util/filetype.py,sha256=pceB08trkwNkdzKJx4fFfOWpz9jYMBRDwXLW4un0sRM,2254
14
- atcdr/util/gpt.py,sha256=vH10Waa7KXlz6-5pEUBuIbxTbDH3Hys7k9Tt7prvFX4,3772
15
- atcdr/util/parse.py,sha256=SJ4khlH5iWaSwyORmQLi84npMwh5u2omCeg0q7ScEAE,6974
16
- atcdr/util/problem.py,sha256=OERGf1uw4DIe4ZA6OPwt2ASoMxho2ped5HZ4fIb2XSE,1189
17
- atcdr/util/session.py,sha256=LwlSN86sfnkE9a-opL4qvKYHsCgiMy7eFCdcXdo79eg,4889
18
- atcoderstudybooster-0.4.0.dist-info/METADATA,sha256=J5wZhLmMh333Kgcaz_QBPQQIc6UB_BMZlbu_zKwsqEU,7641
19
- atcoderstudybooster-0.4.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
20
- atcoderstudybooster-0.4.0.dist-info/entry_points.txt,sha256=-stL-IwnheQGlYAdm82RuZu8CGgSakU0aVIVlA7DmFA,40
21
- atcoderstudybooster-0.4.0.dist-info/RECORD,,