1212
1313class OpXRD (PatternDB ):
1414 @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 :
1616 root_dirpath = os .path .expanduser (root_dirpath )
1717 root_dirpath = os .path .abspath (root_dirpath )
1818
@@ -24,7 +24,7 @@ def load(cls, root_dirpath : str, download : bool = True, *args, **kwargs) -> Pa
2424
2525
2626 @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 ]:
2828 if not os .path .isdir (root_dirpath ) and download :
2929 cls ._prepare_files (root_dirpath = root_dirpath )
3030
@@ -40,17 +40,20 @@ def as_database_list(cls, root_dirpath : str, download : bool = True) -> list[Pa
4040 return pattern_dbs
4141
4242 @classmethod
43- def _prepare_files (cls , root_dirpath : str ):
43+ def _prepare_files (cls , root_dirpath : str , include_in_situ : bool = False ):
4444 tmp_fpath = tempfile .mktemp (suffix = '.zip' )
4545 OpXRD ._download_zenodo_opxrd (output_fpath = tmp_fpath )
4646 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 )
4750
4851
4952 @classmethod
50- def _download_zenodo_opxrd (cls , output_fpath : str ):
53+ def _download_zenodo_opxrd (cls , output_fpath : str , filename : str = 'opxrd.zip' ):
5154 try :
5255 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 )
5457 except Exception as e :
5558 raise ConnectionError (f'Failed to download opXRD database from Zenodo. Reason: { e .__repr__ ()} ' )
5659
0 commit comments