Coverage for pesummary/core/file/formats/dat.py: 100.0%

13 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-05-02 08:42 +0000

1# Licensed under an MIT style license -- see LICENSE.md 

2 

3import numpy as np 

4from pesummary import conf 

5from pesummary.utils.utils import check_filename 

6 

7__author__ = ["Charlie Hoy <charlie.hoy@ligo.org>"] 

8 

9 

10def read_dat(path, delimiter=None): 

11 """Grab the parameters and samples in a .dat file 

12 

13 Parameters 

14 ---------- 

15 path: str 

16 path to the result file you wish to read in 

17 """ 

18 from .numpy import genfromtxt 

19 return genfromtxt(path, delimiter=delimiter, names=True) 

20 

21 

22def _write_dat( 

23 parameters, samples, outdir="./", label=None, filename=None, overwrite=False, 

24 delimiter=conf.delimiter, default_filename="pesummary_{}.dat", **kwargs 

25): 

26 """Write a set of samples to a dat file 

27 

28 Parameters 

29 ---------- 

30 parameters: list 

31 list of parameters 

32 samples: 2d list 

33 list of samples. Columns correspond to a given parameter 

34 outdir: str, optional 

35 directory to write the dat file 

36 label: str, optional 

37 The label of the analysis. This is used in the filename if a filename 

38 if not specified 

39 filename: str, optional 

40 The name of the file that you wish to write 

41 overwrite: Bool, optional 

42 If True, an existing file of the same name will be overwritten 

43 delimiter: str, optional 

44 The delimiter you wish to use for the dat file 

45 """ 

46 filename = check_filename( 

47 default_filename=default_filename, outdir=outdir, label=label, 

48 filename=filename, overwrite=overwrite 

49 ) 

50 np.savetxt( 

51 filename, samples, delimiter=delimiter, header=delimiter.join(parameters), 

52 comments='' 

53 ) 

54 

55 

56def write_dat( 

57 parameters, samples, outdir="./", label=None, filename=None, overwrite=False, 

58 delimiter=conf.delimiter, **kwargs 

59): 

60 """Write a set of samples to a dat file 

61 

62 Parameters 

63 ---------- 

64 parameters: nd list 

65 list of parameters 

66 samples: nd list 

67 list of samples. Columns correspond to a given parameter 

68 outdir: str, optional 

69 directory to write the dat file 

70 label: str, optional 

71 The label of the analysis. This is used in the filename if a filename 

72 if not specified 

73 filename: str, optional 

74 The name of the file that you wish to write 

75 overwrite: Bool, optional 

76 If True, an existing file of the same name will be overwritten 

77 delimiter: str, optional 

78 The delimiter you wish to use for the dat file 

79 """ 

80 from pesummary.io.write import _multi_analysis_write 

81 

82 _multi_analysis_write( 

83 _write_dat, parameters, samples, outdir=outdir, label=label, 

84 filename=filename, overwrite=overwrite, delimiter=delimiter, 

85 file_format="dat", **kwargs 

86 )