kattis-cli 1.1.2__py3-none-any.whl → 1.2.0__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.
- kattis_cli/kattis_templates/__init__.py +0 -0
- kattis_cli/kattis_templates/main/c.txt +8 -0
- kattis_cli/kattis_templates/main/cpp.txt +15 -0
- kattis_cli/kattis_templates/main/java.txt +14 -0
- kattis_cli/kattis_templates/main/python.txt +21 -0
- kattis_cli/kattis_templates/main/python3.txt +22 -0
- kattis_cli/kattis_templates/project_structure/c/Makefile +0 -0
- kattis_cli/kattis_templates/project_structure/c/src/problemid/problemid.c +0 -0
- kattis_cli/kattis_templates/project_structure/c/tests/test_problemid.c +0 -0
- kattis_cli/kattis_templates/project_structure/cpp/Makefile +0 -0
- kattis_cli/kattis_templates/project_structure/cpp/src/problemid/problemid.cpp +0 -0
- kattis_cli/kattis_templates/project_structure/cpp/tests/test_problemid.cpp +0 -0
- kattis_cli/kattis_templates/project_structure/python3/Makefile +0 -0
- kattis_cli/kattis_templates/project_structure/python3/src/problemid/__init__.py +0 -0
- kattis_cli/kattis_templates/project_structure/python3/src/problemid/problemid.py +0 -0
- kattis_cli/kattis_templates/project_structure/python3/tests/test_problemid.py +0 -0
- kattis_cli/main.py +24 -9
- kattis_cli/solution_tester.py +9 -2
- kattis_cli/template.py +161 -0
- kattis_cli/utils/config.py +3 -3
- kattis_cli/utils/languages.py +4 -3
- {kattis_cli-1.1.2.dist-info → kattis_cli-1.2.0.dist-info}/METADATA +20 -7
- kattis_cli-1.2.0.dist-info/RECORD +38 -0
- kattis_cli-1.1.2.dist-info/RECORD +0 -21
- {kattis_cli-1.1.2.dist-info → kattis_cli-1.2.0.dist-info}/WHEEL +0 -0
- {kattis_cli-1.1.2.dist-info → kattis_cli-1.2.0.dist-info}/entry_points.txt +0 -0
- {kattis_cli-1.1.2.dist-info → kattis_cli-1.2.0.dist-info}/licenses/LICENSE +0 -0
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import java.util.Scanner;
|
|
2
|
+
|
|
3
|
+
public class {class_name} {
|
|
4
|
+
public static void main(String[] args) {
|
|
5
|
+
Scanner scanner = new Scanner(System.in);
|
|
6
|
+
|
|
7
|
+
// Your solution here
|
|
8
|
+
// if (scanner.hasNext()) {
|
|
9
|
+
// String line = scanner.next();
|
|
10
|
+
// }
|
|
11
|
+
|
|
12
|
+
scanner.close();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Python template
|
|
2
|
+
"""
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def main() -> None:
|
|
7
|
+
"""Main function
|
|
8
|
+
"""
|
|
9
|
+
# Read all lines from stdin
|
|
10
|
+
input_data = sys.stdin.read().split()
|
|
11
|
+
if not input_data:
|
|
12
|
+
return
|
|
13
|
+
|
|
14
|
+
# Example: reading an integer
|
|
15
|
+
# n = int(input_data[0])
|
|
16
|
+
|
|
17
|
+
# Your solution here
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
if __name__ == "__main__":
|
|
21
|
+
main()
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""Python template
|
|
2
|
+
"""
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def main() -> None:
|
|
7
|
+
"""Main function
|
|
8
|
+
"""
|
|
9
|
+
# Read all lines from stdin
|
|
10
|
+
input_data = sys.stdin.read().split()
|
|
11
|
+
if not input_data:
|
|
12
|
+
return
|
|
13
|
+
|
|
14
|
+
# Example: reading an integer
|
|
15
|
+
# n = int(input_data[0])
|
|
16
|
+
|
|
17
|
+
# Your solution here
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
if __name__ == "__main__":
|
|
21
|
+
name()
|
|
22
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
kattis_cli/main.py
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
""" Main module for the kattis_cli package.
|
|
2
|
-
This is the main.py file for the kattis_cli package.
|
|
3
|
-
|
|
4
|
-
Change the contents in dev.py instead of in main.py.
|
|
5
|
-
build.sh script copies the contents of this file to main.py.
|
|
6
2
|
|
|
7
3
|
Change the __version__ to match in pyproject.toml
|
|
8
|
-
Has to be higher than the pypi version.
|
|
9
4
|
"""
|
|
10
|
-
__version__ = '1.
|
|
5
|
+
__version__ = '1.2.0'
|
|
11
6
|
|
|
12
7
|
from math import inf
|
|
8
|
+
import os
|
|
13
9
|
from typing import Tuple
|
|
14
10
|
from rich.console import Console
|
|
15
11
|
import click
|
|
@@ -21,6 +17,7 @@ import kattis_cli.solution_tester as solution_tester
|
|
|
21
17
|
import kattis_cli.kattis as kattis
|
|
22
18
|
import kattis_cli.utils.languages as languages
|
|
23
19
|
import kattis_cli.kattis_setup as kattis_setup
|
|
20
|
+
import kattis_cli.template as template
|
|
24
21
|
|
|
25
22
|
|
|
26
23
|
@tui()
|
|
@@ -43,13 +40,16 @@ def get(problemid: str) -> None:
|
|
|
43
40
|
f"Downloading samples: [bold blue]{problemid}[/bold blue]")
|
|
44
41
|
try:
|
|
45
42
|
download.download_sample_data(problemid)
|
|
43
|
+
console.print(
|
|
44
|
+
f"Downloading metadata: [bold blue]{problemid}[/bold blue]")
|
|
45
|
+
download.load_problem_metadata(problemid)
|
|
46
46
|
except requests.exceptions.InvalidURL:
|
|
47
47
|
console.print(
|
|
48
48
|
f"Problem ID: [bold red]{problemid}[/bold red] not found.")
|
|
49
49
|
else:
|
|
50
50
|
console.print(
|
|
51
|
-
f"
|
|
52
|
-
|
|
51
|
+
f"Downloaded samples and metadata: \
|
|
52
|
+
[bold blue]{problemid}[/bold blue]")
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
@main.command(help='Show problem metadata.')
|
|
@@ -115,7 +115,6 @@ def submit(problemid: str, language: str,
|
|
|
115
115
|
languages.update_args(
|
|
116
116
|
problemid, language, mainclass, list(files))
|
|
117
117
|
# Finally, submit the solution
|
|
118
|
-
# print(f'{problemid=} {language=} {mainclass=} {tag=} {force=} {_files=}')
|
|
119
118
|
if not mainclass:
|
|
120
119
|
mainclass = languages.guess_mainfile(
|
|
121
120
|
language, _files, problemid, lang_config)
|
|
@@ -132,5 +131,21 @@ def setup() -> None:
|
|
|
132
131
|
kattis_setup.setup()
|
|
133
132
|
|
|
134
133
|
|
|
134
|
+
@main.command(help='Create a template file for a problem.')
|
|
135
|
+
@click.option('-l', '--language', default='python3',
|
|
136
|
+
help='Programming language (default: python3)')
|
|
137
|
+
@click.option('-p', '--problemid', default=None,
|
|
138
|
+
help='Problem ID (default: parent directory name)')
|
|
139
|
+
@click.option('-s', '--src', is_flag=True, default=False,
|
|
140
|
+
help='Create src layout structure')
|
|
141
|
+
def template_cmd(language: str, problemid: str, src: bool) -> None:
|
|
142
|
+
"""Create a template file.
|
|
143
|
+
"""
|
|
144
|
+
if not problemid:
|
|
145
|
+
problemid = os.path.basename(os.getcwd())
|
|
146
|
+
|
|
147
|
+
template.create_template(language, problemid, src)
|
|
148
|
+
|
|
149
|
+
|
|
135
150
|
if __name__ == '__main__':
|
|
136
151
|
main()
|
kattis_cli/solution_tester.py
CHANGED
|
@@ -91,6 +91,10 @@ class SolutionTester:
|
|
|
91
91
|
total = len(in_files)
|
|
92
92
|
console.clear()
|
|
93
93
|
title = f"[not italic bold blue]👷 Testing {mainclass} "
|
|
94
|
+
main_src_file = next((f for f in files if f.endswith(mainclass)), None)
|
|
95
|
+
if not main_src_file:
|
|
96
|
+
main_src_file = mainclass
|
|
97
|
+
|
|
94
98
|
title += f" using {loc_language} 👷[/]"
|
|
95
99
|
table.title = title
|
|
96
100
|
with Live(table_centered, console=console,
|
|
@@ -145,7 +149,7 @@ class SolutionTester:
|
|
|
145
149
|
expected = b"No .ans or .out file found!"
|
|
146
150
|
code, ans, error = run_program.run(
|
|
147
151
|
lang_config,
|
|
148
|
-
|
|
152
|
+
main_src_file,
|
|
149
153
|
in_file,
|
|
150
154
|
)
|
|
151
155
|
if code != 0:
|
|
@@ -159,7 +163,10 @@ class SolutionTester:
|
|
|
159
163
|
result = "[bold red]❌[/bold red]"
|
|
160
164
|
|
|
161
165
|
in_filename = Path(in_file).parts[-1]
|
|
162
|
-
|
|
166
|
+
if b"No .ans or .out file found!" == expected:
|
|
167
|
+
out_filename = "N/A"
|
|
168
|
+
else:
|
|
169
|
+
out_filename = Path(out_file).parts[-1]
|
|
163
170
|
time.sleep(0.1)
|
|
164
171
|
table.add_row(in_filename,
|
|
165
172
|
input_content.decode('utf-8'),
|
kattis_cli/template.py
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"""Module for generating project templates."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import shutil
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
import importlib.resources as pkg_resources
|
|
7
|
+
from rich.console import Console
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
LANGUAGE_EXTENSIONS = {
|
|
11
|
+
'c': '.c',
|
|
12
|
+
'cpp': '.cpp',
|
|
13
|
+
'csharp': '.cs',
|
|
14
|
+
'cobol': '.cob',
|
|
15
|
+
'fsharp': '.fs',
|
|
16
|
+
'go': '.go',
|
|
17
|
+
'haskell': '.hs',
|
|
18
|
+
'java': '.java',
|
|
19
|
+
'nodejs': '.js',
|
|
20
|
+
'typescript': '.ts',
|
|
21
|
+
'kotlin': '.kt',
|
|
22
|
+
'lisp': '.lisp',
|
|
23
|
+
'objective-c': '.m',
|
|
24
|
+
'ocaml': '.ml',
|
|
25
|
+
'pascal': '.pas',
|
|
26
|
+
'php': '.php',
|
|
27
|
+
'prolog': '.pl',
|
|
28
|
+
'python': '.py',
|
|
29
|
+
'python3': '.py',
|
|
30
|
+
'ruby': '.rb',
|
|
31
|
+
'rust': '.rs',
|
|
32
|
+
'scala': '.scala',
|
|
33
|
+
'fortran': '.f90',
|
|
34
|
+
'bash': '.sh',
|
|
35
|
+
'apl': '.apl',
|
|
36
|
+
'gerbil': '.ss',
|
|
37
|
+
'julia': '.jl',
|
|
38
|
+
'vb': '.vb',
|
|
39
|
+
'dart': '.dart',
|
|
40
|
+
'zig': '.zig',
|
|
41
|
+
'swift': '.swift',
|
|
42
|
+
'nim': '.nim',
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def create_template(
|
|
47
|
+
language: str,
|
|
48
|
+
problemid: str,
|
|
49
|
+
src_layout: bool = False) -> None:
|
|
50
|
+
"""Create a template file for the specified language and problem ID.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
language (str): The programming language (e.g., 'python3', 'cpp').
|
|
54
|
+
problemid (str): The problem ID, used for the filename.
|
|
55
|
+
src_layout (bool): If True, create a src/ directory structure.
|
|
56
|
+
"""
|
|
57
|
+
language = language.lower()
|
|
58
|
+
home_templates = os.path.expanduser('~/kattis_templates')
|
|
59
|
+
|
|
60
|
+
def _check_kattis_templates() -> bool:
|
|
61
|
+
# Always use ~/kattis_templates as the user-facing template directory
|
|
62
|
+
# On first use, if not present, copy all default templates from
|
|
63
|
+
# package data
|
|
64
|
+
if not os.path.isdir(home_templates):
|
|
65
|
+
try:
|
|
66
|
+
# Use importlib.resources to access kattis_templates as a
|
|
67
|
+
# package resource
|
|
68
|
+
src = pkg_resources.files("kattis_cli") / "kattis_templates"
|
|
69
|
+
shutil.copytree(str(src), home_templates)
|
|
70
|
+
except Exception as e:
|
|
71
|
+
console.print(
|
|
72
|
+
f"[bold red]❌ Error:[/bold red] Could not \
|
|
73
|
+
copy templates: {e}")
|
|
74
|
+
return False
|
|
75
|
+
return True
|
|
76
|
+
|
|
77
|
+
def _get_main_template(language: str) -> str:
|
|
78
|
+
main_templates = Path(home_templates).joinpath('main')
|
|
79
|
+
for file in main_templates.iterdir():
|
|
80
|
+
# print(file.stem.lower(), language)
|
|
81
|
+
if file.is_file() and file.stem.lower() == language:
|
|
82
|
+
return str(file)
|
|
83
|
+
return ''
|
|
84
|
+
|
|
85
|
+
console = Console()
|
|
86
|
+
if not _check_kattis_templates():
|
|
87
|
+
console.print(
|
|
88
|
+
f"[bold red]❌ Error:[/bold red] Templates '{language}' \
|
|
89
|
+
not found in {home_templates}!")
|
|
90
|
+
return
|
|
91
|
+
|
|
92
|
+
def _copytree_with_problemid(src: str,
|
|
93
|
+
dst: str,
|
|
94
|
+
problemid: str) -> None:
|
|
95
|
+
for root, _, files in os.walk(src):
|
|
96
|
+
rel = os.path.relpath(root, src)
|
|
97
|
+
rel = rel.replace('problemid', problemid)
|
|
98
|
+
target_root = os.path.join(dst, rel) if rel != '.' else dst
|
|
99
|
+
os.makedirs(target_root, exist_ok=True)
|
|
100
|
+
for f in files:
|
|
101
|
+
src_file = os.path.join(root, f)
|
|
102
|
+
dst_file = os.path.join(
|
|
103
|
+
target_root, f.replace('problemid', problemid))
|
|
104
|
+
shutil.copy2(src_file, dst_file)
|
|
105
|
+
|
|
106
|
+
# If src_layout, copy the project structure for the language
|
|
107
|
+
if src_layout:
|
|
108
|
+
proj_struct_root = Path(home_templates).joinpath('project_structure')
|
|
109
|
+
lang_src_struct = proj_struct_root.joinpath(language)
|
|
110
|
+
if os.path.isdir(lang_src_struct):
|
|
111
|
+
_copytree_with_problemid(
|
|
112
|
+
str(lang_src_struct), os.getcwd(), problemid)
|
|
113
|
+
console.print(
|
|
114
|
+
f"[bold blue]✅ [/bold blue] Created project \
|
|
115
|
+
structure for {language}.")
|
|
116
|
+
target_dir = os.path.join("src", problemid)
|
|
117
|
+
else:
|
|
118
|
+
target_dir = "."
|
|
119
|
+
|
|
120
|
+
main_template = _get_main_template(language=language)
|
|
121
|
+
extension = LANGUAGE_EXTENSIONS.get(language, None)
|
|
122
|
+
|
|
123
|
+
try:
|
|
124
|
+
with open(str(main_template), 'r', encoding='utf-8') as tf:
|
|
125
|
+
template_content = tf.read()
|
|
126
|
+
except OSError:
|
|
127
|
+
console.print(
|
|
128
|
+
f"[bold red] ❌ [/bold red] Could not read \
|
|
129
|
+
template file: {main_template}")
|
|
130
|
+
return
|
|
131
|
+
|
|
132
|
+
if not main_template:
|
|
133
|
+
return
|
|
134
|
+
# Handle Java class naming convention (capitalize first letter)
|
|
135
|
+
if language == 'java':
|
|
136
|
+
class_name = problemid[0].upper(
|
|
137
|
+
) + problemid[1:] if problemid else "Main"
|
|
138
|
+
filename = f"{class_name}{extension}"
|
|
139
|
+
content = template_content.replace("{class_name}", class_name)
|
|
140
|
+
else:
|
|
141
|
+
filename = f"{problemid}{extension}"
|
|
142
|
+
content = template_content
|
|
143
|
+
|
|
144
|
+
filepath = os.path.join(target_dir, filename)
|
|
145
|
+
|
|
146
|
+
if os.path.exists(filepath) and os.path.getsize(filepath) > 0:
|
|
147
|
+
console.print(
|
|
148
|
+
f"[bold yellow]Warning:[/bold yellow] File '{filepath}' \
|
|
149
|
+
exists with content. Skipping.")
|
|
150
|
+
return
|
|
151
|
+
|
|
152
|
+
try:
|
|
153
|
+
with open(filepath, 'w', encoding='utf-8') as f:
|
|
154
|
+
f.write(content)
|
|
155
|
+
console.print(
|
|
156
|
+
f"[bold green]✅ [/bold green] Created template \
|
|
157
|
+
'{filepath}' for {language}.")
|
|
158
|
+
except OSError as e:
|
|
159
|
+
console.print(
|
|
160
|
+
f"[bold red]❌ [/bold red] Failed to create template \
|
|
161
|
+
'{filepath}': {e}")
|
kattis_cli/utils/config.py
CHANGED
|
@@ -11,7 +11,7 @@ import yaml
|
|
|
11
11
|
|
|
12
12
|
from kattis_cli.utils.utility import find_problem_root_folder
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
_KATTIS_RC = Path.home().joinpath('.kattisrc')
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class ConfigError(Exception):
|
|
@@ -42,8 +42,8 @@ def get_kattisrc() -> configparser.ConfigParser:
|
|
|
42
42
|
"""Returns a ConfigParser object for the .kattisrc file(s)
|
|
43
43
|
"""
|
|
44
44
|
cfg = configparser.ConfigParser()
|
|
45
|
-
if os.path.exists(
|
|
46
|
-
cfg.read(
|
|
45
|
+
if os.path.exists(_KATTIS_RC):
|
|
46
|
+
cfg.read(_KATTIS_RC)
|
|
47
47
|
|
|
48
48
|
if not cfg.read([os.path.join(os.path.expanduser("~"), '.kattisrc'),
|
|
49
49
|
os.path.join(os.path.dirname(sys.argv[0]), '.kattisrc')]):
|
kattis_cli/utils/languages.py
CHANGED
|
@@ -271,7 +271,7 @@ def update_args(problemid: str,
|
|
|
271
271
|
|
|
272
272
|
console = Console()
|
|
273
273
|
if not files:
|
|
274
|
-
files = get_coding_files()
|
|
274
|
+
files = get_coding_files(Path.cwd())
|
|
275
275
|
# check if problemid is given
|
|
276
276
|
# if not problemid:
|
|
277
277
|
cur_folder = Path.cwd()
|
|
@@ -318,13 +318,14 @@ filename extension "{ext}"''')
|
|
|
318
318
|
return problemid, loc_language, mainclass, files, root_folder, lang_config
|
|
319
319
|
|
|
320
320
|
|
|
321
|
-
def get_coding_files(base_path: Path
|
|
321
|
+
def get_coding_files(base_path: Path) -> List[str]:
|
|
322
322
|
"""Get coding files from current directory.
|
|
323
323
|
|
|
324
324
|
Returns:
|
|
325
325
|
List[str]: List of coding files.
|
|
326
326
|
"""
|
|
327
|
-
|
|
327
|
+
if not base_path:
|
|
328
|
+
base_path = Path.cwd()
|
|
328
329
|
if Path(base_path / "src").is_dir():
|
|
329
330
|
base_path = base_path / "src"
|
|
330
331
|
console = Console()
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kattis-cli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.0
|
|
4
4
|
Summary: A command-line tool for Kattis
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Author: Ram Basnet
|
|
7
7
|
Author-email: rbasnet@coloradomesa.edu
|
|
8
8
|
Requires-Python: >=3.10.0,<4.0.0
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
10
|
Classifier: License :: OSI Approved :: MIT License
|
|
10
11
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
17
12
|
Requires-Dist: beautifulsoup4 (>=4.12.2,<5.0.0)
|
|
18
13
|
Requires-Dist: click (>=8.1.7,<9.0.0)
|
|
19
14
|
Requires-Dist: lxml (>=6.0.1,<7.0.0)
|
|
@@ -138,6 +133,24 @@ kattis info
|
|
|
138
133
|
|
|
139
134
|

|
|
140
135
|
|
|
136
|
+
### Creating project template
|
|
137
|
+
|
|
138
|
+
- create project template files for a given programming language
|
|
139
|
+
- src style default templates are created in the home directory under **.kattis-templates** folder
|
|
140
|
+
- you can overwrite/create new templates following the structure provided `kattis_templates`
|
|
141
|
+
- local languages codes supported are:
|
|
142
|
+
- python3
|
|
143
|
+
- c++
|
|
144
|
+
- java
|
|
145
|
+
- c
|
|
146
|
+
- nodejs
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
kattis template --help
|
|
150
|
+
# create python3 project template for cold problem
|
|
151
|
+
kattis template -l python3 -p cold -s
|
|
152
|
+
```
|
|
153
|
+
|
|
141
154
|
### Test a solution locally
|
|
142
155
|
|
|
143
156
|

|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
kattis_cli/.kattis-cli.toml,sha256=kGh0gmpFAnivyUC9hR8Y1ZqYJeTBWNyBQ9zOg4AInZ0,898
|
|
2
|
+
kattis_cli/__init__.py,sha256=afN92pog2fGyicY6KNBofYbCBYbYj4Fpi_INUSpsc-E,402
|
|
3
|
+
kattis_cli/client.py,sha256=5ef-pq737q-VBBxY1F-bEbP9Mf8145YppL4m9NlVCVY,16938
|
|
4
|
+
kattis_cli/download.py,sha256=BATQskOUFyc286vDYY7S4nmBWPBrYsgHwCE1VBsltx0,8662
|
|
5
|
+
kattis_cli/fireworks.py,sha256=yKFXIvDDdNrzBhpEt2Pdy5zgfYjJffoOEf2yUFlu2TQ,4134
|
|
6
|
+
kattis_cli/kattis.py,sha256=wpnM6sC0a32kJYzEux27izug59bicexNnOFxcx0qWM8,2621
|
|
7
|
+
kattis_cli/kattis_setup.py,sha256=mic79GjOI_rC6Lfl5D5ORDMWdrcxR71ksYUM51yezu8,5659
|
|
8
|
+
kattis_cli/kattis_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
kattis_cli/kattis_templates/main/c.txt,sha256=HIJF1XMi40XbaC63o7kqfInvK_WvO6pPkST_xjmPPw0,96
|
|
10
|
+
kattis_cli/kattis_templates/main/cpp.txt,sha256=TmVm0vX1YZyzG3P0p2doix-47bofS0xiZeKiPbmNcWM,214
|
|
11
|
+
kattis_cli/kattis_templates/main/java.txt,sha256=4-485QJ0sV1RczRV-VxKYc6El2xD16y2oUAUEQpu9Fg,309
|
|
12
|
+
kattis_cli/kattis_templates/main/python.txt,sha256=RTDUEN2sSp6u1NuI1j371hgii3ouRfnfXI2Yb55D2zM,327
|
|
13
|
+
kattis_cli/kattis_templates/main/python3.txt,sha256=bYcDVlq0cGhjVF1wXHlrN42cQkMD47qmmogzMfCpXtY,331
|
|
14
|
+
kattis_cli/kattis_templates/project_structure/c/Makefile,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
kattis_cli/kattis_templates/project_structure/c/src/problemid/problemid.c,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
+
kattis_cli/kattis_templates/project_structure/c/tests/test_problemid.c,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
kattis_cli/kattis_templates/project_structure/cpp/Makefile,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
+
kattis_cli/kattis_templates/project_structure/cpp/src/problemid/problemid.cpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
+
kattis_cli/kattis_templates/project_structure/cpp/tests/test_problemid.cpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
kattis_cli/kattis_templates/project_structure/python3/Makefile,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
+
kattis_cli/kattis_templates/project_structure/python3/src/problemid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
+
kattis_cli/kattis_templates/project_structure/python3/src/problemid/problemid.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
+
kattis_cli/kattis_templates/project_structure/python3/tests/test_problemid.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
+
kattis_cli/main.py,sha256=d8-2R4r1_kHb52nfpydS_5dWgf32MVUiJwVAjljk8TA,4996
|
|
25
|
+
kattis_cli/settings.py,sha256=d5q4dYj9VqDSqPalleh2oZWtND-1bPB0T2IwdajFrBg,591
|
|
26
|
+
kattis_cli/solution_tester.py,sha256=SQUq1Da06-_b9tTi0-CiTogscWje1Ur7KuaiK1Bxsgs,7860
|
|
27
|
+
kattis_cli/template.py,sha256=QAbaQt9H9lPh8aOUMdl0B_vf2tZKL3mh9qdw7G-kw3g,5274
|
|
28
|
+
kattis_cli/ui.py,sha256=2qFWz9QB7cgjLfZKHrWUrKFVYLRLwl0c37ZTNljwmAI,4580
|
|
29
|
+
kattis_cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
kattis_cli/utils/config.py,sha256=sR6lbRl9KiXRKIV1zRP5s6KJ9jed0znilsHSBS-_G2k,2278
|
|
31
|
+
kattis_cli/utils/languages.py,sha256=GQjos4VKkyEBySPaOK1SFsWTqIIWdld0O_VHG-YEgi4,8977
|
|
32
|
+
kattis_cli/utils/run_program.py,sha256=NWQ6vtTeWgkaW75r91FIHGXR5cAbeu8yMb5hwzpYFsg,2613
|
|
33
|
+
kattis_cli/utils/utility.py,sha256=oUbydPbcC2wXvfku21YAWpaJjuBKaBRVybMAWCSfM9Y,2987
|
|
34
|
+
kattis_cli-1.2.0.dist-info/METADATA,sha256=EuWgm_1VbuCG0OCUR2qzd9xbBEuGNcWBOrmEGwCqHtI,7206
|
|
35
|
+
kattis_cli-1.2.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
36
|
+
kattis_cli-1.2.0.dist-info/entry_points.txt,sha256=kyzGN20VqUPR_H0J_jJUKT-10-cAMFLVegQ6C7tbHss,47
|
|
37
|
+
kattis_cli-1.2.0.dist-info/licenses/LICENSE,sha256=JmBa4SEKBCDWEgiOZcISU4tUCpli6xSpVlSYgkBXSNQ,1067
|
|
38
|
+
kattis_cli-1.2.0.dist-info/RECORD,,
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
kattis_cli/.kattis-cli.toml,sha256=kGh0gmpFAnivyUC9hR8Y1ZqYJeTBWNyBQ9zOg4AInZ0,898
|
|
2
|
-
kattis_cli/__init__.py,sha256=afN92pog2fGyicY6KNBofYbCBYbYj4Fpi_INUSpsc-E,402
|
|
3
|
-
kattis_cli/client.py,sha256=5ef-pq737q-VBBxY1F-bEbP9Mf8145YppL4m9NlVCVY,16938
|
|
4
|
-
kattis_cli/download.py,sha256=BATQskOUFyc286vDYY7S4nmBWPBrYsgHwCE1VBsltx0,8662
|
|
5
|
-
kattis_cli/fireworks.py,sha256=yKFXIvDDdNrzBhpEt2Pdy5zgfYjJffoOEf2yUFlu2TQ,4134
|
|
6
|
-
kattis_cli/kattis.py,sha256=wpnM6sC0a32kJYzEux27izug59bicexNnOFxcx0qWM8,2621
|
|
7
|
-
kattis_cli/kattis_setup.py,sha256=mic79GjOI_rC6Lfl5D5ORDMWdrcxR71ksYUM51yezu8,5659
|
|
8
|
-
kattis_cli/main.py,sha256=jRANFixHzJdnACp1Mzi5p5wxFrSF6FXFrPxLhn8olSc,4491
|
|
9
|
-
kattis_cli/settings.py,sha256=d5q4dYj9VqDSqPalleh2oZWtND-1bPB0T2IwdajFrBg,591
|
|
10
|
-
kattis_cli/solution_tester.py,sha256=hTXtryYs8lkO9CkSPtQNjhrAPPLaC4au5ueCQ3ioZWQ,7577
|
|
11
|
-
kattis_cli/ui.py,sha256=2qFWz9QB7cgjLfZKHrWUrKFVYLRLwl0c37ZTNljwmAI,4580
|
|
12
|
-
kattis_cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
kattis_cli/utils/config.py,sha256=6SIuiXA9sFADo8RZUj8A6rXb3uqmrWrmmArfZrqNQdw,2293
|
|
14
|
-
kattis_cli/utils/languages.py,sha256=gcJJJwkPS1Zpg76atwoo2O2Vd7ETKBQV-KD_cwclrmE,8928
|
|
15
|
-
kattis_cli/utils/run_program.py,sha256=NWQ6vtTeWgkaW75r91FIHGXR5cAbeu8yMb5hwzpYFsg,2613
|
|
16
|
-
kattis_cli/utils/utility.py,sha256=oUbydPbcC2wXvfku21YAWpaJjuBKaBRVybMAWCSfM9Y,2987
|
|
17
|
-
kattis_cli-1.1.2.dist-info/METADATA,sha256=SM1Ah1m_9WvKo-glbw1Xx-BnEwUSFFhxU6oCViGjUxc,6962
|
|
18
|
-
kattis_cli-1.1.2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
19
|
-
kattis_cli-1.1.2.dist-info/entry_points.txt,sha256=kyzGN20VqUPR_H0J_jJUKT-10-cAMFLVegQ6C7tbHss,47
|
|
20
|
-
kattis_cli-1.1.2.dist-info/licenses/LICENSE,sha256=JmBa4SEKBCDWEgiOZcISU4tUCpli6xSpVlSYgkBXSNQ,1067
|
|
21
|
-
kattis_cli-1.1.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|