forked from fversaci/cassandra-dali-plugin
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcache_uuids.py
55 lines (48 loc) · 1.55 KB
/
cache_uuids.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Copyright 2022 CRS4 (http://www.crs4.it/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
from clize import run
from crs4.cassandra_utils import MiniListManager
from private_data import cass_conf as CC
def cache_uuids(
*,
metadata_table,
rows_fn,
id_col="id",
):
"""Cache uuids from DB to local file (via pickle)
:param metadata_table: Cassandra metadata table (i.e., keyspace.name_of_the_metadata_table)
:param rows_fn: Filename of local copy of UUIDs
:param id_col: Column containing the UUIDs
"""
# Load list of uuids from Cassandra DB...
lm = MiniListManager(
cass_conf=CC,
)
conf = {
"table": metadata_table,
"id_col": id_col,
}
lm.set_config(conf)
print("Loading list of uuids from DB... ", end="", flush=True)
lm.read_rows_from_db()
stuff = lm.get_rows()
uuids = stuff["row_keys"]
real_sz = len(uuids)
print(f" {real_sz} images")
lm.save_rows(rows_fn)
print(f"Saved as {rows_fn}.")
# parse arguments
if __name__ == "__main__":
run(cache_uuids)