Mercurial > repos > ufz > lm_get_projects
annotate get_projects.py @ 0:713502c9a98f draft default tip
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
author | ufz |
---|---|
date | Mon, 17 Mar 2025 20:35:10 +0000 |
parents | |
children |
rev | line source |
---|---|
0
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
1 import argparse |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
2 import os |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
3 from json import load |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
4 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
5 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
6 import pandas as pd |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
7 import sqlalchemy as db |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
8 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
9 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
10 def get_arguments() -> argparse.Namespace: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
11 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
12 Parse and return the command-line arguments required for the script. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
13 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
14 return: argparse.Namespace: Parsed arguments containing credentials_file (str) and login (str). |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
15 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
16 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
17 parser = argparse.ArgumentParser( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
18 description="Read the projects of the current user from the Lambda-Miner Database" |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
19 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
20 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
21 # Add argument for the credentials file |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
22 parser.add_argument( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
23 "-c", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
24 "--credentials-file", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
25 dest="credentials_file", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
26 type=str, |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
27 required=False, # Optional |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
28 help=( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
29 "Credential file in JSON format including dialect, user, password, host, port, and " |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
30 "database. If not provided, the environment variable LAMBDAMINER_CREDENTIALS will be " |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
31 "used." |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
32 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
33 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
34 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
35 # Add argument for the login name |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
36 parser.add_argument( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
37 "-l", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
38 "--login-name", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
39 dest="login", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
40 type=str, |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
41 required=True, |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
42 help="UFZ login name of the user" |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
43 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
44 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
45 # Add argument for the output file |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
46 parser.add_argument( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
47 "-o", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
48 "--output-file", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
49 dest="output", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
50 type=str, |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
51 default="projects.csv", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
52 help="Specifiy the output file path including the file name (default: 'projects.csv')" |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
53 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
54 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
55 # Add argument for the type |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
56 parser.add_argument( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
57 "-t", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
58 "--type", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
59 choices=["generic", "import", "calibration", "assignment", "validation", "export"], |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
60 default="generic", |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
61 help="Specify the workflow type (default: 'generic')" |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
62 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
63 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
64 return parser.parse_args() |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
65 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
66 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
67 def parse_check_args(args): |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
68 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
69 Parse and validate command line arguments. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
70 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
71 Following actions are performed: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
72 - Check of the existence of the specified directory in the output path. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
73 - Assignment the correct credentials file to the arguments. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
74 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
75 :param args: command line arguments. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
76 :type args: argparse.Namespace |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
77 :raises FileNotFoundError: If the specified directory in the output path does not exist. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
78 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
79 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
80 # Extract the directory part of the specified output path |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
81 dir_path = os.path.dirname(args.output) or "." |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
82 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
83 # Check if the directory exists and raise error if not |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
84 if not os.path.isdir(dir_path): |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
85 raise FileNotFoundError(f"Error: The directory does not exist: {dir_path}") |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
86 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
87 # Get environment variable LAMBDAMINER_CREDENTIALS |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
88 envar_credentials = os.getenv("LAMBDAMINER_CREDENTIALS") |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
89 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
90 # Use the provided argument or fallback to the environment variable |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
91 args.credentials_file = args.credentials_file or envar_credentials |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
92 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
93 assert args.credentials_file is not None, "Error: No credentials specified" |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
94 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
95 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
96 def get_engine(credentials_path: str, echo: bool = False) -> db.engine.Engine: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
97 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
98 Create and return a SQLAlchemy engine based on the supplied credentials. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
99 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
100 The engine is created using the data from the supplied credentials file, |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
101 which should be in JSON format and include the following keys: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
102 dialect, user, password, host, port, database |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
103 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
104 :param credentials_path: The path to the credentials file. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
105 :type credentials_path: str |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
106 :return: The SQLAlchemy engine object. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
107 :rtype: sqlalchemy.engine.Engine |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
108 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
109 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
110 with open(credentials_path) as file: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
111 credentials = load(file) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
112 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
113 dialect = credentials["dialect"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
114 username = credentials["user"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
115 password = credentials["password"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
116 host = credentials["host"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
117 port = credentials["port"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
118 database_name = credentials["database"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
119 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
120 database_url = f"{dialect}://{username}:{password}@{host}:{port}/{database_name}" |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
121 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
122 return db.create_engine(database_url, echo=echo) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
123 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
124 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
125 def get_user_id(connection, metadata, login: str) -> int: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
126 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
127 Retrieve the user_id for a given login. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
128 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
129 :param connection: The database connection. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
130 :param metadata: The database metadata containing table definitions. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
131 :param login: The login username to search for. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
132 :return: The user_id if found, otherwise None. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
133 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
134 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
135 # Access the 'ufz_user' table from metadata. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
136 User = metadata.tables["ufz_user"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
137 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
138 # Construct a query to select the user_id where the login matches. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
139 query = db.select(User.c.user_id).where(User.c.login == login) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
140 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
141 # Execute the query and fetch the scalar result. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
142 result = connection.execute(query).scalar() |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
143 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
144 # Return the user_id as an integer if found, otherwise return None. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
145 return int(result) if result else None |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
146 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
147 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
148 def get_projects_with_sample_count(connection, metadata, user_id): |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
149 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
150 Retrieve projects and their sample counts for a given user_id. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
151 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
152 The query will return a pandas DataFrame with the columns: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
153 project_id : The id of the project. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
154 name : The name of the project. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
155 sample_count : The number of samples associated with the project. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
156 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
157 :param connection: The database connection. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
158 :param metadata: The database metadata containing table definitions. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
159 :param user_id: The user_id to search for. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
160 :return: A pandas DataFrame with the projects and their sample counts. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
161 """ |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
162 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
163 User = metadata.tables["ufz_user"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
164 User_Project = metadata.tables["ufz_user_project"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
165 Project = metadata.tables["project"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
166 Sample = metadata.tables["sample"] |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
167 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
168 # Construct the query: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
169 # 1. Select project_id, name and the count of sample_id as sample_count. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
170 # 2. Join the tables ufz_user_project, ufz_user, project and sample. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
171 # - Join ufz_user_project with project on project_id. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
172 # - Join ufz_user with ufz_user_project on user_id. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
173 # - Join sample with project on project_id. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
174 # - Use an outer join to include projects without samples. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
175 # 3. Filter the results to only include the given user_id. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
176 # 4. Group the results by project_id and name. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
177 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
178 query = ( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
179 db.select( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
180 Project.c.project_id.label("Project ID"), |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
181 Project.c.name.label("Project Name"), |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
182 db.func.count(Sample.c.sample_id).label("Sample Count") |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
183 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
184 .join(User_Project, User_Project.c.project_id == Project.c.project_id) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
185 .join(User, User.c.user_id == User_Project.c.user_id) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
186 .join(Sample, Sample.c.project == Project.c.project_id, isouter=True) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
187 .where(User.c.user_id == user_id) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
188 .group_by(Project.c.project_id, Project.c.name) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
189 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
190 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
191 # Execute the query, fetch the results, and return the DataFrame. |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
192 return pd.DataFrame(connection.execute(query).fetchall()) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
193 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
194 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
195 def main(): |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
196 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
197 # Parse command-line arguments |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
198 args = get_arguments() |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
199 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
200 # Parse and check the specified command line arguments |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
201 parse_check_args(args) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
202 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
203 try: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
204 # Load credentials and create the database engine |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
205 engine = get_engine(args.credentials_file) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
206 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
207 # Reflect metadata and connect to the database |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
208 metadata = db.MetaData() |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
209 metadata.reflect(bind=engine, only=["ufz_user", "ufz_user_project", "project", "sample"]) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
210 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
211 with engine.connect() as conn: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
212 # Get user ID |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
213 user_id = get_user_id(conn, metadata, args.login) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
214 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
215 if not user_id: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
216 raise ValueError( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
217 "No Lambda-Miner user found with the login name \"{}\". " |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
218 "Please find the description on how to register for the Lambda-Miner at " |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
219 "https://lambda-miner-project.pages.ufz.de/lambda-miner-workflows/getting-started/." |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
220 .format(args.login) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
221 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
222 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
223 # Get projects with sample counts |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
224 projects = get_projects_with_sample_count(conn, metadata, user_id) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
225 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
226 # Write projects as a CSV file to the specified output |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
227 with open(args.output, "w") as f: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
228 f.write(projects.to_csv(index=False)) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
229 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
230 # Display the result |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
231 if projects.empty: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
232 raise ValueError( |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
233 "No projects found for the user \"{}\". " |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
234 "Please create a project before going on." |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
235 .format(args.login) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
236 ) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
237 else: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
238 print(projects) |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
239 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
240 except FileNotFoundError: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
241 raise FileNotFoundError(f"Credentials file not found at \"{args.credentials_file}\".") |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
242 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
243 except db.exc.SQLAlchemyError as e: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
244 raise RuntimeError(f"Database error occurred: {e}") |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
245 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
246 except Exception as e: |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
247 raise RuntimeError(f"An unexpected error occurred: {e}") |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
248 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
249 |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
250 if __name__ == "__main__": |
713502c9a98f
planemo upload for repository https://github.com/jw44lavo/galaxy-tools/blob/bgo/tools/lambdaminer/ commit 3f45cd07445498cefa73931cadf3d1115245ca1e
ufz
parents:
diff
changeset
|
251 main() |