mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-08-31 01:02:04 +08:00
56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
#!/usr/bin/env python
|
|
|
|
import argparse
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, "lib")))
|
|
|
|
import galaxy.config
|
|
from galaxy import model
|
|
from galaxy.model.mapping import init_models_from_config
|
|
from galaxy.objectstore import build_object_store_from_config
|
|
from galaxy.util.script import (
|
|
app_properties_from_args,
|
|
populate_config_args,
|
|
)
|
|
|
|
parser = argparse.ArgumentParser()
|
|
populate_config_args(parser)
|
|
args = parser.parse_args()
|
|
|
|
|
|
def init():
|
|
app_properties = app_properties_from_args(args)
|
|
config = galaxy.config.Configuration(**app_properties)
|
|
|
|
object_store = build_object_store_from_config(config)
|
|
sa_session = init_models_from_config(config, object_store=object_store).context
|
|
return sa_session, object_store
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print("Loading Galaxy model...")
|
|
sa_session, object_store = init()
|
|
|
|
set = 0
|
|
dataset_count = sa_session.query(model.Dataset).count()
|
|
print(f"Processing {dataset_count} datasets...")
|
|
percent = 0
|
|
print(f"Completed {percent}%", end=" ")
|
|
sys.stdout.flush()
|
|
for i, dataset in enumerate(sa_session.query(model.Dataset).enable_eagerloads(False).yield_per(1000)):
|
|
if dataset.total_size is None:
|
|
dataset.set_total_size()
|
|
set += 1
|
|
if not set % 1000:
|
|
sa_session.commit()
|
|
new_percent = int(float(i) / dataset_count * 100)
|
|
if new_percent != percent:
|
|
percent = new_percent
|
|
print(f"\rCompleted {percent}%", end=" ")
|
|
sys.stdout.flush()
|
|
sa_session.commit()
|
|
print("\rCompleted 100%")
|
|
object_store.shutdown()
|