kartikmandar commited on
Commit
52580dc
Β·
1 Parent(s): 7e51632

edit the docs

Browse files
README.md CHANGED
@@ -18,34 +18,216 @@ StingrayExplorer is a data analysis tool designed for quick visualization and ex
18
 
19
  ```
20
  .
 
 
 
 
21
  β”œβ”€β”€ assets
22
- β”‚ β”œβ”€β”€ audio
23
- β”‚ β”œβ”€β”€ icons
24
- β”‚ β”‚ └── svg.py
25
- β”‚ β”œβ”€β”€ images
26
- β”‚ β”œβ”€β”€ stylesheets
27
- β”‚ β”‚ └── explorer.css
28
- β”‚ └── videos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  β”œβ”€β”€ explorer.py
30
  β”œβ”€β”€ files
31
- β”‚ β”œβ”€β”€ data
32
- β”‚ └── loaded-data
 
 
 
 
 
 
 
 
 
 
 
33
  β”œβ”€β”€ modules
34
- β”‚ β”œβ”€β”€ DataLoading
35
- β”‚ β”‚ β”œβ”€β”€ DataIngestion.py
36
- β”‚ β”œβ”€β”€ Home
37
- β”‚ β”‚ β”œβ”€β”€ HomeContent.py
38
- β”‚ └── QuickLook
39
- β”‚ β”œβ”€β”€ AverageCrossSpectrum.py
40
- β”‚ β”œβ”€β”€ AveragePowerSpectrum.py
41
- β”‚ β”œβ”€β”€ CrossSpectrum.py
42
- β”‚ β”œβ”€β”€ LightCurve.py
43
- β”‚ β”œβ”€β”€ PowerSpectrum.py
44
- β”œβ”€β”€ utils
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  β”œβ”€β”€ DashboardClasses.py
 
 
 
 
 
46
  β”œβ”€β”€ globals.py
47
  β”œβ”€β”€ sidebar.py
48
  └── strings.py
 
 
49
  ```
50
 
51
  ## Installation
 
18
 
19
  ```
20
  .
21
+ β”œβ”€β”€ CODE_OF_CONDUCT.md
22
+ β”œβ”€β”€ Dockerfile
23
+ β”œβ”€β”€ LICENSE
24
+ β”œβ”€β”€ README.md
25
  β”œβ”€β”€ assets
26
+ β”‚Β Β  β”œβ”€β”€ audio
27
+ β”‚Β Β  β”œβ”€β”€ icons
28
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __pycache__
29
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── svg.cpython-311.pyc
30
+ β”‚Β Β  β”‚Β Β  └── svg.py
31
+ β”‚Β Β  β”œβ”€β”€ images
32
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ holoviz_logo.png
33
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ holoviz_logo_minimised.png
34
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ stingray_explorer.png
35
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ stingray_explorer.webp
36
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ stingray_explorer_minimised.png
37
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ stingray_logo.png
38
+ β”‚Β Β  β”‚Β Β  └── stingray_logo_minimised.png
39
+ β”‚Β Β  β”œβ”€β”€ stylesheets
40
+ β”‚Β Β  β”‚Β Β  └── explorer.css
41
+ β”‚Β Β  └── videos
42
+ β”œβ”€β”€ docs
43
+ β”‚Β Β  β”œβ”€β”€ Makefile
44
+ β”‚Β Β  β”œβ”€β”€ build
45
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ doctrees
46
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DataLoading.doctree
47
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Home.doctree
48
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ QuickLook.doctree
49
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ environment.pickle
50
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.doctree
51
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── modules.doctree
52
+ β”‚Β Β  β”‚Β Β  └── html
53
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DataLoading.html
54
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Home.html
55
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ QuickLook.html
56
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ _modules
57
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.html
58
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── modules
59
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DataLoading
60
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── DataIngestion.html
61
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Home
62
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── HomeContent.html
63
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── QuickLook
64
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AverageCrossSpectrum.html
65
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AveragePowerSpectrum.html
66
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Bispectrum.html
67
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CrossSpectrum.html
68
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ LightCurve.html
69
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PowerColors.html
70
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── PowerSpectrum.html
71
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ _sources
72
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DataLoading.rst.txt
73
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Home.rst.txt
74
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ QuickLook.rst.txt
75
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.rst.txt
76
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── modules.rst.txt
77
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ _static
78
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ _sphinx_javascript_frameworks_compat.js
79
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ basic.css
80
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ css
81
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ badge_only.css
82
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fonts
83
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Roboto-Slab-Bold.woff
84
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Roboto-Slab-Bold.woff2
85
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Roboto-Slab-Regular.woff
86
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Roboto-Slab-Regular.woff2
87
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fontawesome-webfont.eot
88
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fontawesome-webfont.svg
89
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fontawesome-webfont.ttf
90
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fontawesome-webfont.woff
91
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fontawesome-webfont.woff2
92
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold-italic.woff
93
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold-italic.woff2
94
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold.woff
95
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold.woff2
96
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-normal-italic.woff
97
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-normal-italic.woff2
98
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-normal.woff
99
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── lato-normal.woff2
100
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── theme.css
101
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ doctools.js
102
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ documentation_options.js
103
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ file.png
104
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fonts
105
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Lato
106
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold.eot
107
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold.ttf
108
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold.woff
109
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bold.woff2
110
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bolditalic.eot
111
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bolditalic.ttf
112
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bolditalic.woff
113
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-bolditalic.woff2
114
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-italic.eot
115
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-italic.ttf
116
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-italic.woff
117
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-italic.woff2
118
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-regular.eot
119
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-regular.ttf
120
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lato-regular.woff
121
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── lato-regular.woff2
122
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── RobotoSlab
123
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ roboto-slab-v7-bold.eot
124
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ roboto-slab-v7-bold.ttf
125
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ roboto-slab-v7-bold.woff
126
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ roboto-slab-v7-bold.woff2
127
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ roboto-slab-v7-regular.eot
128
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ roboto-slab-v7-regular.ttf
129
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ roboto-slab-v7-regular.woff
130
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── roboto-slab-v7-regular.woff2
131
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ jquery.js
132
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ js
133
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ badge_only.js
134
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ theme.js
135
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── versions.js
136
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ language_data.js
137
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ minus.png
138
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ plus.png
139
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ pygments.css
140
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ searchtools.js
141
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── sphinx_highlight.js
142
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ genindex.html
143
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.html
144
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ modules.html
145
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ objects.inv
146
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ py-modindex.html
147
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ search.html
148
+ β”‚Β Β  β”‚Β Β  └── searchindex.js
149
+ β”‚Β Β  β”œβ”€β”€ files
150
+ β”‚Β Β  β”‚Β Β  └── loaded-data
151
+ β”‚Β Β  β”œβ”€β”€ make.bat
152
+ β”‚Β Β  β”œβ”€β”€ requirements.txt
153
+ β”‚Β Β  └── source
154
+ β”‚Β Β  β”œβ”€β”€ DataLoading.rst
155
+ β”‚Β Β  β”œβ”€β”€ Home.rst
156
+ β”‚Β Β  β”œβ”€β”€ QuickLook.rst
157
+ β”‚Β Β  β”œβ”€β”€ _static
158
+ β”‚Β Β  β”œβ”€β”€ _templates
159
+ β”‚Β Β  β”œβ”€β”€ conf.py
160
+ β”‚Β Β  β”œβ”€β”€ index.rst
161
+ β”‚Β Β  └── modules.rst
162
+ β”œβ”€β”€ environment.yml
163
  β”œβ”€β”€ explorer.py
164
  β”œβ”€β”€ files
165
+ β”‚Β Β  β”œβ”€β”€ data
166
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ LightCurve_bexvar.fits
167
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ data_small.hdf5
168
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ data_smaller.hdf5
169
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lcurveA.fits
170
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ lcurve_new.fits
171
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ monol_testA.evt
172
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ monol_testA_calib.evt
173
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ monol_testA_calib_unsrt.evt
174
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ nomission.evt
175
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ xte_gx_test.evt.gz
176
+ β”‚Β Β  β”‚Β Β  └── xte_test.evt.gz
177
+ β”‚Β Β  └── loaded-data
178
  β”œβ”€β”€ modules
179
+ β”‚Β Β  β”œβ”€β”€ DataLoading
180
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DataIngestion.py
181
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __init__.py
182
+ β”‚Β Β  β”‚Β Β  └── __pycache__
183
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DataIngestion.cpython-311.pyc
184
+ β”‚Β Β  β”‚Β Β  └── __init__.cpython-311.pyc
185
+ β”‚Β Β  β”œβ”€β”€ Home
186
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ HomeContent.py
187
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __init__.py
188
+ β”‚Β Β  β”‚Β Β  └── __pycache__
189
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Home.cpython-311.pyc
190
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ HomeContent.cpython-311.pyc
191
+ β”‚Β Β  β”‚Β Β  └── __init__.cpython-311.pyc
192
+ β”‚Β Β  └── QuickLook
193
+ β”‚Β Β  β”œβ”€β”€ AverageCrossSpectrum.py
194
+ β”‚Β Β  β”œβ”€β”€ AveragePowerSpectrum.py
195
+ β”‚Β Β  β”œβ”€β”€ Bispectrum.py
196
+ β”‚Β Β  β”œβ”€β”€ CrossSpectrum.py
197
+ β”‚Β Β  β”œβ”€β”€ LightCurve.py
198
+ β”‚Β Β  β”œβ”€β”€ PowerColors.py
199
+ β”‚Β Β  β”œβ”€β”€ PowerSpectrum.py
200
+ β”‚Β Β  β”œβ”€β”€ __init__.py
201
+ β”‚Β Β  └── __pycache__
202
+ β”‚Β Β  β”œβ”€β”€ AverageCrossSpectrum.cpython-311.pyc
203
+ β”‚Β Β  β”œβ”€β”€ AveragePowerSpectrum.cpython-311.pyc
204
+ β”‚Β Β  β”œβ”€β”€ Bispectrum.cpython-311.pyc
205
+ β”‚Β Β  β”œβ”€β”€ CrossSpectrum.cpython-311.pyc
206
+ β”‚Β Β  β”œβ”€β”€ LightCurve.cpython-311.pyc
207
+ β”‚Β Β  β”œβ”€β”€ PowerColors.cpython-311.pyc
208
+ β”‚Β Β  β”œβ”€β”€ PowerSpectrum.cpython-311.pyc
209
+ β”‚Β Β  └── __init__.cpython-311.pyc
210
+ β”œβ”€β”€ pyproject.toml
211
+ β”œβ”€β”€ setup.py
212
+ β”œβ”€β”€ tests
213
+ β”‚Β Β  β”œβ”€β”€ test_dataloading
214
+ β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __pycache__
215
+ β”‚Β Β  β”‚Β Β  β”‚Β Β  └── test_dataingestion.cpython-311-pytest-8.2.1.pyc
216
+ β”‚Β Β  β”‚Β Β  └── test_dataingestion.py
217
+ β”‚Β Β  β”œβ”€β”€ test_quicklook
218
+ β”‚Β Β  └── test_utils
219
+ └── utils
220
  β”œβ”€β”€ DashboardClasses.py
221
+ β”œβ”€β”€ __pycache__
222
+ β”‚Β Β  β”œβ”€β”€ dashboardClasses.cpython-311.pyc
223
+ β”‚Β Β  β”œβ”€β”€ globals.cpython-311.pyc
224
+ β”‚Β Β  β”œβ”€β”€ sidebar.cpython-311.pyc
225
+ β”‚Β Β  └── strings.cpython-311.pyc
226
  β”œβ”€β”€ globals.py
227
  β”œβ”€β”€ sidebar.py
228
  └── strings.py
229
+
230
+ 47 directories, 162 files
231
  ```
232
 
233
  ## Installation
pyproject.toml CHANGED
@@ -14,3 +14,5 @@ dependencies = [
14
  "stingray",
15
  # Add other dependencies here if needed
16
  ]
 
 
 
14
  "stingray",
15
  # Add other dependencies here if needed
16
  ]
17
+ [tool.pytest.ini_options]
18
+ pythonpath = ["."]
tests/test_dataloading/test_dataingestion.py ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pytest
2
+ from unittest.mock import MagicMock, patch
3
+ from modules.DataLoading.DataIngestion import (
4
+ create_loadingdata_output_box,
5
+ load_event_data,
6
+ save_loaded_files,
7
+ delete_selected_files,
8
+ preview_loaded_files,
9
+ clear_loaded_files,
10
+ create_event_list,
11
+ simulate_event_list,
12
+ create_warning_handler,
13
+ )
14
+
15
+
16
+ def test_create_loadingdata_output_box():
17
+ content = "File loaded successfully."
18
+ output_box = create_loadingdata_output_box(content)
19
+ assert output_box.output_content == content
20
+
21
+
22
+ @patch("dataingestion.loaded_event_data", [])
23
+ def test_load_event_data_no_file_selected(
24
+ output_box_container, warning_box_container, warning_handler, mock_file_selector, filename_input, format_input, format_checkbox
25
+ ):
26
+ # Set up file selector with no selection
27
+ mock_file_selector.value = []
28
+ load_event_data(
29
+ event=None,
30
+ file_selector=mock_file_selector,
31
+ filename_input=filename_input,
32
+ format_input=format_input,
33
+ format_checkbox=format_checkbox,
34
+ output_box_container=output_box_container,
35
+ warning_box_container=warning_box_container,
36
+ warning_handler=warning_handler,
37
+ )
38
+ assert "No file selected" in output_box_container[0].output_content
39
+
40
+
41
+ @patch("dataingestion.loaded_event_data", [])
42
+ @patch("dataingestion.EventList.read")
43
+ def test_load_event_data_success(mock_read, output_box_container, warning_box_container, warning_handler, mock_file_selector, filename_input, format_input, format_checkbox):
44
+ # Mock EventList read to return a valid event
45
+ mock_read.return_value = MagicMock()
46
+
47
+ load_event_data(
48
+ event=None,
49
+ file_selector=mock_file_selector,
50
+ filename_input=filename_input,
51
+ format_input=format_input,
52
+ format_checkbox=format_checkbox,
53
+ output_box_container=output_box_container,
54
+ warning_box_container=warning_box_container,
55
+ warning_handler=warning_handler,
56
+ )
57
+ assert len(output_box_container) > 0
58
+ assert "loaded successfully" in output_box_container[0].output_content
59
+
60
+
61
+ @patch("dataingestion.loaded_event_data", [("file1", MagicMock())])
62
+ def test_load_event_data_duplicate_file(
63
+ output_box_container, warning_box_container, warning_handler, mock_file_selector, filename_input, format_input, format_checkbox
64
+ ):
65
+ # Test with duplicate file name
66
+ filename_input.value = "file1"
67
+ load_event_data(
68
+ event=None,
69
+ file_selector=mock_file_selector,
70
+ filename_input=filename_input,
71
+ format_input=format_input,
72
+ format_checkbox=format_checkbox,
73
+ output_box_container=output_box_container,
74
+ warning_box_container=warning_box_container,
75
+ warning_handler=warning_handler,
76
+ )
77
+ assert "already exists in memory" in output_box_container[0].output_content
78
+
79
+
80
+ @patch("dataingestion.os.path.exists", return_value=False)
81
+ @patch("dataingestion.loaded_event_data", [("file1", MagicMock())])
82
+ def test_save_loaded_files_success(mock_exists, output_box_container, warning_box_container, warning_handler, filename_input, format_input, format_checkbox):
83
+ save_loaded_files(
84
+ event=None,
85
+ filename_input=filename_input,
86
+ format_input=format_input,
87
+ format_checkbox=format_checkbox,
88
+ output_box_container=output_box_container,
89
+ warning_box_container=warning_box_container,
90
+ warning_handler=warning_handler,
91
+ )
92
+ assert "saved successfully" in output_box_container[0].output_content
93
+
94
+
95
+ @patch("dataingestion.os.path.exists", return_value=True)
96
+ @patch("dataingestion.loaded_event_data", [("file1", MagicMock())])
97
+ def test_save_loaded_files_duplicate_name(mock_exists, output_box_container, warning_box_container, warning_handler, filename_input, format_input, format_checkbox):
98
+ save_loaded_files(
99
+ event=None,
100
+ filename_input=filename_input,
101
+ format_input=format_input,
102
+ format_checkbox=format_checkbox,
103
+ output_box_container=output_box_container,
104
+ warning_box_container=warning_box_container,
105
+ warning_handler=warning_handler,
106
+ )
107
+ assert "already exists" in output_box_container[0].output_content
108
+
109
+
110
+ @patch("dataingestion.os.remove")
111
+ def test_delete_selected_files_success(mock_remove, output_box_container, warning_box_container, warning_handler, mock_file_selector):
112
+ delete_selected_files(
113
+ event=None,
114
+ file_selector=mock_file_selector,
115
+ output_box_container=output_box_container,
116
+ warning_box_container=warning_box_container,
117
+ warning_handler=warning_handler,
118
+ )
119
+ assert "deleted successfully" in output_box_container[0].output_content
120
+
121
+
122
+ def test_preview_loaded_files_no_data(output_box_container, warning_box_container, warning_handler):
123
+ preview_loaded_files(
124
+ event=None,
125
+ output_box_container=output_box_container,
126
+ warning_box_container=warning_box_container,
127
+ warning_handler=warning_handler,
128
+ )
129
+ assert "No valid files or light curves loaded" in output_box_container[0].output_content
130
+
131
+
132
+ @patch("dataingestion.loaded_event_data", [("event1", MagicMock(time=[0.1, 0.2], mjdref=58000, gti=[[0, 1]]) )])
133
+ def test_preview_loaded_files_with_data(output_box_container, warning_box_container, warning_handler):
134
+ preview_loaded_files(
135
+ event=None,
136
+ output_box_container=output_box_container,
137
+ warning_box_container=warning_box_container,
138
+ warning_handler=warning_handler,
139
+ )
140
+ assert "Event List - event1" in output_box_container[0].output_content
141
+
142
+
143
+ @patch("dataingestion.loaded_event_data", [("event1", MagicMock())])
144
+ def test_clear_loaded_files(output_box_container, warning_box_container):
145
+ clear_loaded_files(
146
+ event=None,
147
+ output_box_container=output_box_container,
148
+ warning_box_container=warning_box_container,
149
+ )
150
+ assert "cleared" in output_box_container[0].output_content
151
+
152
+
153
+ def test_create_event_list_missing_data(output_box_container, warning_box_container, warning_handler):
154
+ create_event_list(
155
+ event=None,
156
+ times_input=MagicMock(value=""),
157
+ energy_input=MagicMock(value=""),
158
+ pi_input=MagicMock(value=""),
159
+ gti_input=MagicMock(value=""),
160
+ mjdref_input=MagicMock(value=""),
161
+ name_input=MagicMock(value=""),
162
+ output_box_container=output_box_container,
163
+ warning_box_container=warning_box_container,
164
+ warning_handler=warning_handler,
165
+ )
166
+ assert "Please enter Photon Arrival Times and MJDREF" in output_box_container[0].output_content
167
+
168
+
169
+ def test_simulate_event_list(output_box_container, warning_box_container, warning_handler):
170
+ simulate_event_list(
171
+ event=None,
172
+ time_slider=MagicMock(value=10),
173
+ count_slider=MagicMock(value=5),
174
+ dt_input=MagicMock(value=0.1),
175
+ name_input=MagicMock(value="simulated_event"),
176
+ method_selector=MagicMock(value="Standard Method"),
177
+ output_box_container=output_box_container,
178
+ warning_box_container=warning_box_container,
179
+ warning_handler=warning_handler,
180
+ )
181
+ assert "simulated successfully" in output_box_container[0].output_content
182
+
183
+
184
+ def test_create_warning_handler():
185
+ handler = create_warning_handler()
186
+ with pytest.warns(None) as record:
187
+ handler.warn("Test warning", category=UserWarning)
188
+ assert len(record) == 1
189
+ assert record[0].message.args[0] == "Test warning"