Skip to content

Commit 1f70245

Browse files
wrapper: Added option to download in_situ data too
1 parent 7c15cb3 commit 1f70245

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

opxrd/wrapper/opxrd.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
class 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

Comments
 (0)