summaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/state_impl/_operations/load_packages.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-08-22 16:02:10 +0200
committerWojtek Kosior <koszko@koszko.org>2022-09-28 12:54:52 +0200
commitc100476b0a34f5098efc96bf2487f09b66b4a6c4 (patch)
treece2ce57f5af0ec2f0e5596da5e0eb19a373979d6 /src/hydrilla/proxy/state_impl/_operations/load_packages.py
parent8238435825d01ad2ec1a11b6bcaf6d9a9aad5ab5 (diff)
downloadhaketilo-hydrilla-c100476b0a34f5098efc96bf2487f09b66b4a6c4.tar.gz
haketilo-hydrilla-c100476b0a34f5098efc96bf2487f09b66b4a6c4.zip
re-enable the functionality to load packages from ZIP file
Diffstat (limited to 'src/hydrilla/proxy/state_impl/_operations/load_packages.py')
-rw-r--r--src/hydrilla/proxy/state_impl/_operations/load_packages.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/hydrilla/proxy/state_impl/_operations/load_packages.py b/src/hydrilla/proxy/state_impl/_operations/load_packages.py
index c294ef0..78e8024 100644
--- a/src/hydrilla/proxy/state_impl/_operations/load_packages.py
+++ b/src/hydrilla/proxy/state_impl/_operations/load_packages.py
@@ -125,7 +125,7 @@ def get_or_make_item(cursor: sqlite3.Cursor, type: str, identifier: str) -> int:
return item_id
-def get_or_make_item_version(
+def make_item_version(
cursor: sqlite3.Cursor,
item_id: int,
repo_iteration_id: int,
@@ -136,13 +136,14 @@ def get_or_make_item_version(
cursor.execute(
'''
- INSERT OR IGNORE INTO item_versions(
+ INSERT INTO item_versions(
item_id,
version,
+ installed,
repo_iteration_id,
definition
)
- VALUES(?, ?, ?, ?);
+ VALUES(?, ?, 'I', ?, ?);
''',
(item_id, ver_str, repo_iteration_id, definition)
)
@@ -241,7 +242,10 @@ def _add_item(
) -> None:
item_id = get_or_make_item(cursor, info.type_name, info.identifier)
- item_version_id = get_or_make_item_version(
+ if isinstance(info, item_infos.MappingInfo):
+ make_mapping_status(cursor, item_id)
+
+ item_version_id = make_item_version(
cursor,
item_id,
repo_iteration_id,
@@ -249,9 +253,6 @@ def _add_item(
definition
)
- if isinstance(info, item_infos.MappingInfo):
- make_mapping_status(cursor, item_id)
-
file_infos = {}
file_specifiers = [*info.source_copyright]
@@ -352,6 +353,8 @@ def load_packages(
repo_id: int,
package_file_resolver: t.Optional[FileResolver] = None
) -> int:
+ assert cursor.connection.in_transaction
+
if package_file_resolver is None:
package_file_resolver = MalcontentFileResolver(malcontent_path)