kleinkram 0.43.6.dev20250401140552__tar.gz → 0.44.0.dev20250407065841__tar.gz
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.
Potentially problematic release.
This version of kleinkram might be problematic. Click here for more details.
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/PKG-INFO +1 -1
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_verify.py +11 -1
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/core.py +34 -7
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/models.py +1 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/printing.py +1 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram.egg-info/PKG-INFO +1 -1
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/setup.cfg +1 -1
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/README.md +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/__init__.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/__main__.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/_version.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/__init__.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/client.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/deser.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/file_transfer.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/pagination.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/query.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/routes.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/auth.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/__init__.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_download.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_endpoint.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_file.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_list.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_mission.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_project.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_upload.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/app.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/error_handling.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/config.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/errors.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/main.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/py.typed +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/types.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/utils.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/wrappers.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram.egg-info/SOURCES.txt +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram.egg-info/dependency_links.txt +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram.egg-info/entry_points.txt +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram.egg-info/requires.txt +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram.egg-info/top_level.txt +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/pyproject.toml +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/requirements.txt +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/setup.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/testing/__init__.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/testing/backend_fixtures.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/__init__.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/conftest.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_config.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_core.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_end_to_end.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_error_handling.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_fixtures.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_printing.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_query.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_utils.py +0 -0
- {kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_wrappers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kleinkram
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.44.0.dev20250407065841
|
|
4
4
|
Summary: give me your bags
|
|
5
5
|
Author: Cyrill Püntener, Dominique Garmier, Johann Schwabe
|
|
6
6
|
Author-email: pucyril@ethz.ch, dgarmier@ethz.ch, jschwab@ethz.ch
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_verify.py
RENAMED
|
@@ -32,7 +32,15 @@ def verify(
|
|
|
32
32
|
None, "--project", "-p", help="project id or name"
|
|
33
33
|
),
|
|
34
34
|
mission: str = typer.Option(..., "--mission", "-m", help="mission id or name"),
|
|
35
|
-
skip_hash: bool = typer.Option(
|
|
35
|
+
skip_hash: bool = typer.Option(None, help="skip hash check"),
|
|
36
|
+
check_file_hash: bool = typer.Option(
|
|
37
|
+
True,
|
|
38
|
+
help="check file hash. If True, file names and file hashes are checked.",
|
|
39
|
+
),
|
|
40
|
+
check_file_size: bool = typer.Option(
|
|
41
|
+
True,
|
|
42
|
+
help="check file size. If True, file names and file sizes are checked.",
|
|
43
|
+
),
|
|
36
44
|
) -> None:
|
|
37
45
|
# get all filepaths
|
|
38
46
|
file_paths = [Path(file) for file in files]
|
|
@@ -51,6 +59,8 @@ def verify(
|
|
|
51
59
|
query=mission_query,
|
|
52
60
|
file_paths=file_paths,
|
|
53
61
|
skip_hash=skip_hash,
|
|
62
|
+
check_file_hash=check_file_hash,
|
|
63
|
+
check_file_size=check_file_size,
|
|
54
64
|
verbose=verbose,
|
|
55
65
|
)
|
|
56
66
|
print_file_verification_status(file_status, pprint=verbose)
|
|
@@ -133,9 +133,20 @@ def verify(
|
|
|
133
133
|
client: AuthenticatedClient,
|
|
134
134
|
query: MissionQuery,
|
|
135
135
|
file_paths: Sequence[Path],
|
|
136
|
-
skip_hash: bool =
|
|
136
|
+
skip_hash: Optional[bool] = None,
|
|
137
|
+
check_file_hash: bool = True,
|
|
138
|
+
check_file_size: bool = False,
|
|
137
139
|
verbose: bool = False,
|
|
138
140
|
) -> Dict[Path, FileVerificationStatus]:
|
|
141
|
+
|
|
142
|
+
# add deprecated warning for skip_hash
|
|
143
|
+
if skip_hash is not None:
|
|
144
|
+
print(
|
|
145
|
+
"Warning: --skip-hash is deprecated and will be removed in a future version. "
|
|
146
|
+
"Use --check-file-hash=False instead.",
|
|
147
|
+
)
|
|
148
|
+
check_file_hash = not skip_hash
|
|
149
|
+
|
|
139
150
|
# check that file paths are for valid files and have valid suffixes
|
|
140
151
|
check_file_paths(file_paths)
|
|
141
152
|
|
|
@@ -167,14 +178,30 @@ def verify(
|
|
|
167
178
|
if remote_file.state == FileState.UPLOADING:
|
|
168
179
|
file_status[file] = FileVerificationStatus.UPLOADING
|
|
169
180
|
elif remote_file.state == FileState.OK:
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
181
|
+
|
|
182
|
+
# default case, will be overwritten if we find a mismatch
|
|
183
|
+
file_status[file] = FileVerificationStatus.UPLAODED
|
|
184
|
+
|
|
185
|
+
if check_file_size:
|
|
186
|
+
if remote_file.size == file.stat().st_size:
|
|
187
|
+
file_status[file] = FileVerificationStatus.UPLAODED
|
|
188
|
+
else:
|
|
189
|
+
file_status[file] = FileVerificationStatus.MISMATCHED_SIZE
|
|
190
|
+
|
|
191
|
+
if file_status[file] != FileVerificationStatus.UPLAODED:
|
|
192
|
+
continue # abort if we already found a mismatch
|
|
193
|
+
|
|
194
|
+
if check_file_hash:
|
|
195
|
+
if remote_file.hash is None:
|
|
196
|
+
file_status[file] = FileVerificationStatus.COMPUTING_HASH
|
|
197
|
+
elif remote_file.hash == b64_md5(file):
|
|
198
|
+
file_status[file] = FileVerificationStatus.UPLAODED
|
|
199
|
+
else:
|
|
200
|
+
file_status[file] = FileVerificationStatus.MISMATCHED_HASH
|
|
201
|
+
|
|
176
202
|
else:
|
|
177
203
|
file_status[file] = FileVerificationStatus.UNKNOWN
|
|
204
|
+
|
|
178
205
|
return file_status
|
|
179
206
|
|
|
180
207
|
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/printing.py
RENAMED
|
@@ -42,6 +42,7 @@ FILE_VERIFICATION_STATUS_STYLES = {
|
|
|
42
42
|
FileVerificationStatus.UPLOADING: "yellow",
|
|
43
43
|
FileVerificationStatus.MISSING: "yellow",
|
|
44
44
|
FileVerificationStatus.MISMATCHED_HASH: "red",
|
|
45
|
+
FileVerificationStatus.MISMATCHED_SIZE: "red",
|
|
45
46
|
FileVerificationStatus.UNKNOWN: "gray",
|
|
46
47
|
FileVerificationStatus.COMPUTING_HASH: "purple",
|
|
47
48
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kleinkram
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.44.0.dev20250407065841
|
|
4
4
|
Summary: give me your bags
|
|
5
5
|
Author: Cyrill Püntener, Dominique Garmier, Johann Schwabe
|
|
6
6
|
Author-email: pucyril@ethz.ch, dgarmier@ethz.ch, jschwab@ethz.ch
|
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/__init__.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/__main__.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/_version.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/__init__.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/client.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/deser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/query.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/api/routes.py
RENAMED
|
File without changes
|
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/__init__.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_download.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_endpoint.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_file.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_list.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_mission.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_project.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/_upload.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/cli/app.py
RENAMED
|
File without changes
|
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/config.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/py.typed
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/types.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/utils.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/kleinkram/wrappers.py
RENAMED
|
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
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/testing/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_config.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_core.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_end_to_end.py
RENAMED
|
File without changes
|
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_fixtures.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_printing.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_query.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_utils.py
RENAMED
|
File without changes
|
{kleinkram-0.43.6.dev20250401140552 → kleinkram-0.44.0.dev20250407065841}/tests/test_wrappers.py
RENAMED
|
File without changes
|