12
12
13
13
class OpXRD (PatternDB ):
14
14
@classmethod
15
- def load (cls , root_dirpath : str , download : bool = True , * args , ** kwargs ) -> PatternDB :
15
+ def load (cls , root_dirpath : str , download : bool = True , download_in_situ : bool = False , * args , ** kwargs ) -> PatternDB :
16
16
root_dirpath = os .path .expanduser (root_dirpath )
17
17
root_dirpath = os .path .abspath (root_dirpath )
18
18
@@ -24,7 +24,7 @@ def load(cls, root_dirpath : str, download : bool = True, *args, **kwargs) -> Pa
24
24
25
25
26
26
@classmethod
27
- def as_database_list (cls , root_dirpath : str , download : bool = True ) -> list [PatternDB ]:
27
+ def as_database_list (cls , root_dirpath : str , download : bool = True , download_in_situ : bool = False ) -> list [PatternDB ]:
28
28
if not os .path .isdir (root_dirpath ) and download :
29
29
cls ._prepare_files (root_dirpath = root_dirpath )
30
30
@@ -40,17 +40,20 @@ def as_database_list(cls, root_dirpath : str, download : bool = True) -> list[Pa
40
40
return pattern_dbs
41
41
42
42
@classmethod
43
- def _prepare_files (cls , root_dirpath : str ):
43
+ def _prepare_files (cls , root_dirpath : str , include_in_situ : bool = False ):
44
44
tmp_fpath = tempfile .mktemp (suffix = '.zip' )
45
45
OpXRD ._download_zenodo_opxrd (output_fpath = tmp_fpath )
46
46
OpXRD ._unzip_file (tmp_fpath , output_dir = root_dirpath )
47
+ if include_in_situ :
48
+ cls ._download_zenodo_opxrd (output_fpath = tmp_fpath , filename = 'opxrd_in_situ.zip' )
49
+ cls ._unzip_file (tmp_fpath , output_dir = root_dirpath )
47
50
48
51
49
52
@classmethod
50
- def _download_zenodo_opxrd (cls , output_fpath : str ):
53
+ def _download_zenodo_opxrd (cls , output_fpath : str , filename : str = 'opxrd.zip' ):
51
54
try :
52
55
zenodo_url = f'https://zenodo.org/api/records/{ cls .get_latest_record_id ()} '
53
- file_response = requests .get (url = f'{ zenodo_url } /files/opxrd.zip /content' , stream = True )
56
+ file_response = requests .get (url = f'{ zenodo_url } /files/{ filename } /content' , stream = True )
54
57
except Exception as e :
55
58
raise ConnectionError (f'Failed to download opXRD database from Zenodo. Reason: { e .__repr__ ()} ' )
56
59
0 commit comments