2323#
2424import argparse
2525import pathlib
26+ import sys
2627
2728import pyard
2829from pyard import db , data_repository
29- import pandas as pd
30+ from pyard . misc import get_data_dir
3031
3132
3233def get_imgt_version (imgt_version ):
@@ -40,18 +41,10 @@ def get_imgt_version(imgt_version):
4041 return "Latest"
4142
4243
43- def get_data_dir (data_dir ):
44- if data_dir :
45- path = pathlib .Path (data_dir )
46- if not path .exists () or not path .is_dir ():
47- raise RuntimeError (f"{ data_dir } is not a valid directory" )
48- else :
49- data_dir = db .get_pyard_db_install_directory ()
50- return data_dir
51-
52-
5344def get_v2_v3_mapping (v2_v3_mapping ):
5445 if v2_v3_mapping :
46+ import pandas as pd
47+
5548 path = pathlib .Path (v2_v3_mapping )
5649 if not path .exists () or not path .is_file ():
5750 raise RuntimeError (f"{ data_dir } is not a valid file" )
@@ -62,21 +55,52 @@ def get_v2_v3_mapping(v2_v3_mapping):
6255
6356if __name__ == "__main__" :
6457 parser = argparse .ArgumentParser (
65- usage = """[--db-version <IMGT DB Version>]\n
66- [--data-dir <directory for db file>]\n
67- [--v2-to-v3-mapping <V2 to V3 mapping CSV file>]""" ,
6858 description = """
6959 py-ard tool to generate reference SQLite database.
7060 Allows updating db with custom V2 to V3 mappings.
61+ Displays the list of available IMGT database versions.
7162 """ ,
7263 )
73- parser .add_argument ("--db-version" , dest = "imgt_version" )
74- parser .add_argument ("--data-dir" , dest = "data_dir" )
75- parser .add_argument ("--v2-to-v3-mapping" , dest = "v2_v3_mapping" )
76- parser .add_argument ("--refresh-mac" , dest = "refresh_mac" , action = "store_true" )
77- parser .add_argument ("--re-install" , dest = "reinstall" , action = "store_true" )
64+ parser .add_argument (
65+ "--list" ,
66+ dest = "show_versions" ,
67+ action = "store_true" ,
68+ help = "Show Versions of available IMGT Databases" ,
69+ )
70+ parser .add_argument (
71+ "--db-version" ,
72+ dest = "imgt_version" ,
73+ help = "Import supplied IMGT_VERSION DB Version" ,
74+ )
75+ parser .add_argument (
76+ "--data-dir" ,
77+ dest = "data_dir" ,
78+ help = "Data directory to store imported data" ,
79+ )
80+ parser .add_argument (
81+ "--v2-to-v3-mapping" , dest = "v2_v3_mapping" , help = "V2 to V3 mapping CSV file"
82+ )
83+ parser .add_argument (
84+ "--refresh-mac" ,
85+ dest = "refresh_mac" ,
86+ action = "store_true" ,
87+ help = "Only refresh MAC data" ,
88+ )
89+ parser .add_argument (
90+ "--re-install" ,
91+ dest = "reinstall" ,
92+ action = "store_true" ,
93+ help = "reinstall a fresh version of database" ,
94+ )
7895 args = parser .parse_args ()
7996
97+ if args .show_versions :
98+ versions = pyard .db_versions ()
99+ print ("Available IMGT Versions:" )
100+ for version in versions :
101+ print (f" { version } " )
102+ sys .exit (0 )
103+
80104 imgt_version = get_imgt_version (args .imgt_version )
81105 # print(imgt_version)
82106
@@ -94,8 +118,13 @@ if __name__ == "__main__":
94118 db_fullname .unlink (missing_ok = True )
95119
96120 print (f"Importing IMGT database version: { imgt_version } " )
97- ard = pyard .ARD (imgt_version = imgt_version , data_dir = data_dir )
121+ try :
122+ ard = pyard .ARD (imgt_version = imgt_version , data_dir = data_dir )
123+ except ValueError as e :
124+ print (f"Error importing version { imgt_version } :" , e )
125+ sys .exit (1 )
98126 print (f"Import complete for database version: { imgt_version } " )
127+ # We don't need ard object anymore
99128 del ard
100129
101130 if v2_to_v3_dict :
0 commit comments