@@ -238,13 +238,22 @@ <h1>Source code for xboinc.retrieve</h1><div class="highlight"><pre>
238238 < span class ="n "> job_name</ span > < span class ="o "> =</ span > < span class ="n "> parts</ span > < span class ="p "> [</ span > < span class ="mi "> 2</ span > < span class ="p "> ]</ span >
239239 < span class ="n "> wu_name</ span > < span class ="o "> =</ span > < span class ="n "> bin_file</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="o "> .</ span > < span class ="n "> replace</ span > < span class ="p "> (</ span > < span class ="s2 "> ".bin"</ span > < span class ="p "> ,</ span > < span class ="s2 "> ""</ span > < span class ="p "> )</ span >
240240 < span class ="c1 "> # append to the DataFrame</ span >
241- < span class ="n "> new_row</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> DataFrame</ span > < span class ="p "> ([{</ span >
242- < span class ="s2 "> "user"</ span > < span class ="p "> :</ span > < span class ="n "> user</ span > < span class ="p "> ,</ span >
243- < span class ="s2 "> "study_name"</ span > < span class ="p "> :</ span > < span class ="n "> study_name</ span > < span class ="p "> ,</ span >
244- < span class ="s2 "> "job_name"</ span > < span class ="p "> :</ span > < span class ="n "> job_name</ span > < span class ="p "> ,</ span >
245- < span class ="s2 "> "wu_name"</ span > < span class ="p "> :</ span > < span class ="n "> wu_name</ span > < span class ="p "> ,</ span >
246- < span class ="s2 "> "bin_file"</ span > < span class ="p "> :</ span > < span class ="n "> bin_file</ span > < span class ="p "> ,</ span >
247- < span class ="p "> }])</ span >
241+ < span class ="n "> new_row</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> DataFrame</ span > < span class ="p "> (</ span >
242+ < span class ="p "> [</ span >
243+ < span class ="p "> {</ span >
244+ < span class ="s2 "> "user"</ span > < span class ="p "> :</ span > < span class ="n "> user</ span > < span class ="p "> ,</ span >
245+ < span class ="s2 "> "study_name"</ span > < span class ="p "> :</ span > < span class ="n "> study_name</ span > < span class ="p "> ,</ span >
246+ < span class ="s2 "> "job_name"</ span > < span class ="p "> :</ span > < span class ="n "> job_name</ span > < span class ="p "> ,</ span >
247+ < span class ="s2 "> "wu_name"</ span > < span class ="p "> :</ span > < span class ="n "> wu_name</ span > < span class ="p "> ,</ span >
248+ < span class ="s2 "> "bin_file"</ span > < span class ="p "> :</ span > < span class ="n "> bin_file</ span > < span class ="p "> ,</ span >
249+ < span class ="s2 "> "json_file"</ span > < span class ="p "> :</ span > < span class ="n "> bin_file</ span > < span class ="o "> .</ span > < span class ="n "> with_name</ span > < span class ="p "> (</ span >
250+ < span class ="n "> bin_file</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="o "> .</ span > < span class ="n "> replace</ span > < span class ="p "> (</ span >
251+ < span class ="s2 "> "__file_xboinc_state_out.bin"</ span > < span class ="p "> ,</ span > < span class ="s2 "> ".json"</ span >
252+ < span class ="p "> )</ span >
253+ < span class ="p "> ),</ span >
254+ < span class ="p "> }</ span >
255+ < span class ="p "> ]</ span >
256+ < span class ="p "> )</ span >
248257 < span class ="n "> df</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> concat</ span > < span class ="p "> ([</ span > < span class ="n "> df</ span > < span class ="p "> ,</ span > < span class ="n "> new_row</ span > < span class ="p "> ],</ span > < span class ="n "> ignore_index</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> )</ span >
249258 < span class ="k "> return</ span > < span class ="n "> df</ span > </ div >
250259
@@ -460,8 +469,8 @@ <h1>Source code for xboinc.retrieve</h1><div class="highlight"><pre>
460469
461470< span class ="sd "> Yields</ span >
462471< span class ="sd "> ------</ span >
463- < span class ="sd "> tuple of (str, xpart.Particles)</ span >
464- < span class ="sd "> Job name and corresponding particles object for each result</ span >
472+ < span class ="sd "> tuple of (str, dict, xpart.Particles)</ span >
473+ < span class ="sd "> Job name, corresponding metadata, and particles object for each result</ span >
465474
466475< span class ="sd "> Raises</ span >
467476< span class ="sd "> ------</ span >
@@ -485,6 +494,7 @@ <h1>Source code for xboinc.retrieve</h1><div class="highlight"><pre>
485494 < span class ="k "> for</ span > < span class ="n "> row</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _df</ span > < span class ="p "> [</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _df</ span > < span class ="p "> [</ span > < span class ="s2 "> "study_name"</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="n "> study_name</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> itertuples</ span > < span class ="p "> ():</ span >
486495 < span class ="n "> job_name</ span > < span class ="o "> =</ span > < span class ="n "> row</ span > < span class ="o "> .</ span > < span class ="n "> job_name</ span >
487496 < span class ="n "> bin_file</ span > < span class ="o "> =</ span > < span class ="n "> row</ span > < span class ="o "> .</ span > < span class ="n "> bin_file</ span >
497+ < span class ="n "> json_file</ span > < span class ="o "> =</ span > < span class ="n "> row</ span > < span class ="o "> .</ span > < span class ="n "> json_file</ span >
488498 < span class ="n "> result</ span > < span class ="o "> =</ span > < span class ="n "> XbState</ span > < span class ="o "> .</ span > < span class ="n "> from_binary</ span > < span class ="p "> (</ span > < span class ="n "> bin_file</ span > < span class ="p "> ,</ span > < span class ="n "> raise_version_error</ span > < span class ="o "> =</ span > < span class ="kc "> False</ span > < span class ="p "> )</ span >
489499 < span class ="k "> if</ span > < span class ="n "> result</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
490500 < span class ="n "> warn</ span > < span class ="p "> (</ span >
@@ -493,7 +503,22 @@ <h1>Source code for xboinc.retrieve</h1><div class="highlight"><pre>
493503 < span class ="ne "> UserWarning</ span > < span class ="p "> ,</ span >
494504 < span class ="p "> )</ span >
495505 < span class ="k "> continue</ span >
496- < span class ="k "> yield</ span > < span class ="n "> job_name</ span > < span class ="p "> ,</ span > < span class ="n "> result</ span > < span class ="o "> .</ span > < span class ="n "> particles</ span > </ div >
506+ < span class ="k "> try</ span > < span class ="p "> :</ span >
507+ < span class ="k "> with</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> json_file</ span > < span class ="p "> ,</ span > < span class ="s2 "> "r"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> f</ span > < span class ="p "> :</ span >
508+ < span class ="n "> metadata</ span > < span class ="o "> =</ span > < span class ="n "> json</ span > < span class ="o "> .</ span > < span class ="n "> load</ span > < span class ="p "> (</ span > < span class ="n "> f</ span > < span class ="p "> )</ span >
509+ < span class ="c1 "> # is metadata an empty dict?</ span >
510+ < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="n "> metadata</ span > < span class ="p "> :</ span >
511+ < span class ="n "> warn</ span > < span class ="p "> (</ span >
512+ < span class ="sa "> f</ span > < span class ="s2 "> "Warning: The JSON file </ span > < span class ="si "> {</ span > < span class ="n "> json_file</ span > < span class ="si "> }</ span > < span class ="s2 "> is empty."</ span > < span class ="p "> ,</ span >
513+ < span class ="ne "> UserWarning</ span > < span class ="p "> ,</ span >
514+ < span class ="p "> )</ span >
515+ < span class ="k "> except</ span > < span class ="ne "> FileNotFoundError</ span > < span class ="p "> :</ span >
516+ < span class ="n "> warn</ span > < span class ="p "> (</ span >
517+ < span class ="sa "> f</ span > < span class ="s2 "> "Warning: The JSON file </ span > < span class ="si "> {</ span > < span class ="n "> json_file</ span > < span class ="si "> }</ span > < span class ="s2 "> was not found."</ span > < span class ="p "> ,</ span >
518+ < span class ="ne "> UserWarning</ span > < span class ="p "> ,</ span >
519+ < span class ="p "> )</ span >
520+ < span class ="n "> metadata</ span > < span class ="o "> =</ span > < span class ="p "> {}</ span >
521+ < span class ="k "> yield</ span > < span class ="n "> job_name</ span > < span class ="p "> ,</ span > < span class ="n "> metadata</ span > < span class ="p "> ,</ span > < span class ="n "> result</ span > < span class ="o "> .</ span > < span class ="n "> particles</ span > </ div >
497522
498523
499524< div class ="viewcode-block " id ="JobRetriever.clean ">
@@ -526,6 +551,9 @@ <h1>Source code for xboinc.retrieve</h1><div class="highlight"><pre>
526551 < span class ="n "> bin_file</ span > < span class ="o "> =</ span > < span class ="n "> row</ span > < span class ="o "> .</ span > < span class ="n "> bin_file</ span >
527552 < span class ="k "> if</ span > < span class ="n "> bin_file</ span > < span class ="o "> .</ span > < span class ="n "> exists</ span > < span class ="p "> ():</ span >
528553 < span class ="n "> bin_file</ span > < span class ="o "> .</ span > < span class ="n "> unlink</ span > < span class ="p "> ()</ span >
554+ < span class ="n "> json_file</ span > < span class ="o "> =</ span > < span class ="n "> row</ span > < span class ="o "> .</ span > < span class ="n "> json_file</ span >
555+ < span class ="k "> if</ span > < span class ="n "> json_file</ span > < span class ="o "> .</ span > < span class ="n "> exists</ span > < span class ="p "> ():</ span >
556+ < span class ="n "> json_file</ span > < span class ="o "> .</ span > < span class ="n "> unlink</ span > < span class ="p "> ()</ span >
529557 < span class ="c1 "> # Remove empty directories</ span >
530558 < span class ="k "> for</ span > < span class ="n "> folder</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _directory</ span > < span class ="o "> .</ span > < span class ="n "> glob</ span > < span class ="p "> (</ span > < span class ="s2 "> "*/"</ span > < span class ="p "> ):</ span >
531559 < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="nb "> any</ span > < span class ="p "> (</ span > < span class ="n "> folder</ span > < span class ="o "> .</ span > < span class ="n "> iterdir</ span > < span class ="p "> ()):</ span >
0 commit comments