accusleepy 0.7.3__py3-none-any.whl → 0.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
accusleepy/config.json CHANGED
@@ -33,5 +33,7 @@
33
33
  "learning_rate": 0.001,
34
34
  "momentum": 0.9,
35
35
  "training_epochs": 6
36
- }
36
+ },
37
+ "epochs_to_show": 5,
38
+ "autoscroll_state": false
37
39
  }
accusleepy/constants.py CHANGED
@@ -67,6 +67,8 @@ DEFAULT_OVERWRITE_KEY = "default_overwrite_setting"
67
67
  EMG_FILTER_KEY = "emg_filter"
68
68
  # model training hyperparameters key
69
69
  HYPERPARAMETERS_KEY = "hyperparameters"
70
+ EPOCHS_TO_SHOW_KEY = "epochs_to_show"
71
+ AUTOSCROLL_KEY = "autoscroll_state"
70
72
 
71
73
  # default values
72
74
  # default UI settings
@@ -82,3 +84,6 @@ DEFAULT_BATCH_SIZE = 64
82
84
  DEFAULT_LEARNING_RATE = 1e-3
83
85
  DEFAULT_MOMENTUM = 0.9
84
86
  DEFAULT_TRAINING_EPOCHS = 6
87
+ # default manual scoring settings
88
+ DEFAULT_EPOCHS_TO_SHOW = 5
89
+ DEFAULT_AUTOSCROLL_STATE = False
accusleepy/fileio.py CHANGED
@@ -112,7 +112,15 @@ def save_labels(
112
112
 
113
113
 
114
114
  def load_config() -> tuple[
115
- BrainStateSet, int | float, bool, bool, int | float, EMGFilter, Hyperparameters
115
+ BrainStateSet,
116
+ int | float,
117
+ bool,
118
+ bool,
119
+ int | float,
120
+ EMGFilter,
121
+ Hyperparameters,
122
+ int,
123
+ bool,
116
124
  ]:
117
125
  """Load configuration file with brain state options
118
126
 
@@ -122,7 +130,9 @@ def load_config() -> tuple[
122
130
  default confidence score output setting,
123
131
  default minimum bout length,
124
132
  EMG filter parameters,
125
- model training hyperparameters
133
+ model training hyperparameters,
134
+ default epochs to show for manual scoring,
135
+ default autoscroll state for manual scoring
126
136
  """
127
137
  with open(
128
138
  os.path.join(os.path.dirname(os.path.abspath(__file__)), c.CONFIG_FILE), "r"
@@ -158,6 +168,8 @@ def load_config() -> tuple[
158
168
  },
159
169
  )
160
170
  ),
171
+ data.get(c.EPOCHS_TO_SHOW_KEY, c.DEFAULT_EPOCHS_TO_SHOW),
172
+ data.get(c.AUTOSCROLL_KEY, c.DEFAULT_AUTOSCROLL_STATE),
161
173
  )
162
174
 
163
175
 
@@ -169,6 +181,8 @@ def save_config(
169
181
  min_bout_length: int | float,
170
182
  emg_filter: EMGFilter,
171
183
  hyperparameters: Hyperparameters,
184
+ epochs_to_show: int,
185
+ autoscroll_state: bool,
172
186
  ) -> None:
173
187
  """Save configuration of brain state options to json file
174
188
 
@@ -181,6 +195,8 @@ def save_config(
181
195
  :param overwrite_setting: default setting for overwriting
182
196
  existing labels
183
197
  :param hyperparameters: model training hyperparameters
198
+ :param epochs_to_show: default epochs to show for manual scoring,
199
+ :param autoscroll_state: default autoscroll state for manual scoring
184
200
  """
185
201
  output_dict = brain_state_set.to_output_dict()
186
202
  output_dict.update({c.DEFAULT_EPOCH_LENGTH_KEY: default_epoch_length})
@@ -189,6 +205,8 @@ def save_config(
189
205
  output_dict.update({c.DEFAULT_MIN_BOUT_LENGTH_KEY: min_bout_length})
190
206
  output_dict.update({c.EMG_FILTER_KEY: emg_filter.__dict__})
191
207
  output_dict.update({c.HYPERPARAMETERS_KEY: hyperparameters.__dict__})
208
+ output_dict.update({c.EPOCHS_TO_SHOW_KEY: epochs_to_show})
209
+ output_dict.update({c.AUTOSCROLL_KEY: autoscroll_state})
192
210
  with open(
193
211
  os.path.join(os.path.dirname(os.path.abspath(__file__)), c.CONFIG_FILE), "w"
194
212
  ) as f:
Binary file
accusleepy/gui/main.py CHANGED
@@ -81,6 +81,11 @@ from accusleepy.validation import (
81
81
 
82
82
  # note: functions using torch or scipy are lazily imported
83
83
 
84
+ # on Windows, prevent dark mode from changing the visual style
85
+ if os.name == "nt":
86
+ sys.argv += ["-platform", "windows:darkmode=0"]
87
+
88
+
84
89
  # relative path to user manual
85
90
  MAIN_GUIDE_FILE = os.path.normpath(r"text/main_guide.md")
86
91
 
@@ -116,6 +121,8 @@ class AccuSleepWindow(QMainWindow):
116
121
  self.min_bout_length,
117
122
  self.emg_filter,
118
123
  self.hyperparameters,
124
+ self.default_epochs_to_show,
125
+ self.default_autoscroll_state,
119
126
  ) = load_config()
120
127
 
121
128
  self.settings_widgets = None
@@ -1238,6 +1245,8 @@ class AccuSleepWindow(QMainWindow):
1238
1245
  self.ui.overwrite_default_checkbox.setChecked(self.only_overwrite_undefined)
1239
1246
  self.ui.confidence_setting_checkbox.setChecked(self.save_confidence_scores)
1240
1247
  self.ui.default_min_bout_length_spinbox.setValue(self.min_bout_length)
1248
+ self.ui.epochs_to_show_spinbox.setValue(self.default_epochs_to_show)
1249
+ self.ui.autoscroll_checkbox.setChecked(self.default_autoscroll_state)
1241
1250
  # EMG filter
1242
1251
  self.ui.emg_order_spinbox.setValue(self.emg_filter.order)
1243
1252
  self.ui.bp_lower_spinbox.setValue(self.emg_filter.bp_lower)
@@ -1439,6 +1448,8 @@ class AccuSleepWindow(QMainWindow):
1439
1448
  momentum=self.hyperparameters.momentum,
1440
1449
  training_epochs=self.hyperparameters.training_epochs,
1441
1450
  ),
1451
+ epochs_to_show=self.ui.epochs_to_show_spinbox.value(),
1452
+ autoscroll_state=self.ui.autoscroll_checkbox.isChecked(),
1442
1453
  )
1443
1454
  self.ui.save_config_status.setText("configuration saved")
1444
1455
 
@@ -140,10 +140,17 @@ class ManualScoringWindow(QDialog):
140
140
  self.setWindowTitle("AccuSleePy manual scoring window")
141
141
 
142
142
  # load set of valid brain states
143
- self.brain_state_set, _, _, _, _, _, _ = load_config()
144
-
145
- # initial setting for number of epochs to show in the lower plot
146
- self.epochs_to_show = 5
143
+ (
144
+ self.brain_state_set,
145
+ _,
146
+ _,
147
+ _,
148
+ _,
149
+ _,
150
+ _,
151
+ self.epochs_to_show,
152
+ self.autoscroll_state,
153
+ ) = load_config()
147
154
 
148
155
  # find the set of y-axis locations of valid brain state labels
149
156
  self.label_display_options = convert_labels(
@@ -216,7 +223,11 @@ class ManualScoringWindow(QDialog):
216
223
  self.emg_signal_offset = 0
217
224
  self.roi_brain_state = 0
218
225
  self.label_roi_mode = False
219
- self.autoscroll_state = False
226
+
227
+ # set autoscroll state and epochs to show, based on defaults
228
+ self.ui.autoscroll.setChecked(self.autoscroll_state)
229
+ self.ui.shownepochslabel.setText(str(self.epochs_to_show))
230
+
220
231
  # keep track of save state to warn user when they quit
221
232
  self.last_saved_labels = copy.deepcopy(self.labels)
222
233
 
@@ -2224,20 +2224,25 @@ class Ui_PrimaryWindow(object):
2224
2224
  self.horizontalLayout_81.setSpacing(20)
2225
2225
  self.horizontalLayout_81.setObjectName("horizontalLayout_81")
2226
2226
  self.verticalLayout_6 = QVBoxLayout()
2227
- self.verticalLayout_6.setSpacing(10)
2227
+ self.verticalLayout_6.setSpacing(20)
2228
2228
  self.verticalLayout_6.setObjectName("verticalLayout_6")
2229
+ self.primary_defaults_groupbox = QGroupBox(self.ui_default_page)
2230
+ self.primary_defaults_groupbox.setObjectName("primary_defaults_groupbox")
2231
+ self.verticalLayout_4 = QVBoxLayout(self.primary_defaults_groupbox)
2232
+ self.verticalLayout_4.setSpacing(10)
2233
+ self.verticalLayout_4.setObjectName("verticalLayout_4")
2229
2234
  self.default_epoch_layout = QHBoxLayout()
2230
2235
  self.default_epoch_layout.setObjectName("default_epoch_layout")
2231
2236
  self.horizontalLayout_60 = QHBoxLayout()
2232
2237
  self.horizontalLayout_60.setObjectName("horizontalLayout_60")
2233
- self.label_17 = QLabel(self.ui_default_page)
2238
+ self.label_17 = QLabel(self.primary_defaults_groupbox)
2234
2239
  self.label_17.setObjectName("label_17")
2235
2240
  sizePolicy1.setHeightForWidth(self.label_17.sizePolicy().hasHeightForWidth())
2236
2241
  self.label_17.setSizePolicy(sizePolicy1)
2237
2242
 
2238
2243
  self.horizontalLayout_60.addWidget(self.label_17)
2239
2244
 
2240
- self.default_epoch_input = QDoubleSpinBox(self.ui_default_page)
2245
+ self.default_epoch_input = QDoubleSpinBox(self.primary_defaults_groupbox)
2241
2246
  self.default_epoch_input.setObjectName("default_epoch_input")
2242
2247
  sizePolicy1.setHeightForWidth(
2243
2248
  self.default_epoch_input.sizePolicy().hasHeightForWidth()
@@ -2256,13 +2261,13 @@ class Ui_PrimaryWindow(object):
2256
2261
 
2257
2262
  self.default_epoch_layout.addItem(self.horizontalSpacer_70)
2258
2263
 
2259
- self.verticalLayout_6.addLayout(self.default_epoch_layout)
2264
+ self.verticalLayout_4.addLayout(self.default_epoch_layout)
2260
2265
 
2261
2266
  self.horizontalLayout_75 = QHBoxLayout()
2262
2267
  self.horizontalLayout_75.setObjectName("horizontalLayout_75")
2263
2268
  self.horizontalLayout_76 = QHBoxLayout()
2264
2269
  self.horizontalLayout_76.setObjectName("horizontalLayout_76")
2265
- self.overwrite_default_checkbox = QCheckBox(self.ui_default_page)
2270
+ self.overwrite_default_checkbox = QCheckBox(self.primary_defaults_groupbox)
2266
2271
  self.overwrite_default_checkbox.setObjectName("overwrite_default_checkbox")
2267
2272
 
2268
2273
  self.horizontalLayout_76.addWidget(self.overwrite_default_checkbox)
@@ -2275,7 +2280,7 @@ class Ui_PrimaryWindow(object):
2275
2280
 
2276
2281
  self.horizontalLayout_75.addItem(self.horizontalSpacer_88)
2277
2282
 
2278
- self.verticalLayout_6.addLayout(self.horizontalLayout_75)
2283
+ self.verticalLayout_4.addLayout(self.horizontalLayout_75)
2279
2284
 
2280
2285
  self.confidence_score_setting_layout = QHBoxLayout()
2281
2286
  self.confidence_score_setting_layout.setObjectName(
@@ -2283,7 +2288,7 @@ class Ui_PrimaryWindow(object):
2283
2288
  )
2284
2289
  self.horizontalLayout_62 = QHBoxLayout()
2285
2290
  self.horizontalLayout_62.setObjectName("horizontalLayout_62")
2286
- self.confidence_setting_checkbox = QCheckBox(self.ui_default_page)
2291
+ self.confidence_setting_checkbox = QCheckBox(self.primary_defaults_groupbox)
2287
2292
  self.confidence_setting_checkbox.setObjectName("confidence_setting_checkbox")
2288
2293
  sizePolicy1.setHeightForWidth(
2289
2294
  self.confidence_setting_checkbox.sizePolicy().hasHeightForWidth()
@@ -2301,20 +2306,22 @@ class Ui_PrimaryWindow(object):
2301
2306
 
2302
2307
  self.confidence_score_setting_layout.addItem(self.horizontalSpacer_72)
2303
2308
 
2304
- self.verticalLayout_6.addLayout(self.confidence_score_setting_layout)
2309
+ self.verticalLayout_4.addLayout(self.confidence_score_setting_layout)
2305
2310
 
2306
2311
  self.horizontalLayout_2 = QHBoxLayout()
2307
2312
  self.horizontalLayout_2.setObjectName("horizontalLayout_2")
2308
2313
  self.horizontalLayout_18 = QHBoxLayout()
2309
2314
  self.horizontalLayout_18.setObjectName("horizontalLayout_18")
2310
- self.label_19 = QLabel(self.ui_default_page)
2315
+ self.label_19 = QLabel(self.primary_defaults_groupbox)
2311
2316
  self.label_19.setObjectName("label_19")
2312
2317
  sizePolicy1.setHeightForWidth(self.label_19.sizePolicy().hasHeightForWidth())
2313
2318
  self.label_19.setSizePolicy(sizePolicy1)
2314
2319
 
2315
2320
  self.horizontalLayout_18.addWidget(self.label_19)
2316
2321
 
2317
- self.default_min_bout_length_spinbox = QDoubleSpinBox(self.ui_default_page)
2322
+ self.default_min_bout_length_spinbox = QDoubleSpinBox(
2323
+ self.primary_defaults_groupbox
2324
+ )
2318
2325
  self.default_min_bout_length_spinbox.setObjectName(
2319
2326
  "default_min_bout_length_spinbox"
2320
2327
  )
@@ -2335,7 +2342,68 @@ class Ui_PrimaryWindow(object):
2335
2342
 
2336
2343
  self.horizontalLayout_2.addItem(self.horizontalSpacer_90)
2337
2344
 
2338
- self.verticalLayout_6.addLayout(self.horizontalLayout_2)
2345
+ self.verticalLayout_4.addLayout(self.horizontalLayout_2)
2346
+
2347
+ self.verticalLayout_6.addWidget(self.primary_defaults_groupbox)
2348
+
2349
+ self.manual_defaults_groupbox = QGroupBox(self.ui_default_page)
2350
+ self.manual_defaults_groupbox.setObjectName("manual_defaults_groupbox")
2351
+ self.verticalLayout_7 = QVBoxLayout(self.manual_defaults_groupbox)
2352
+ self.verticalLayout_7.setSpacing(10)
2353
+ self.verticalLayout_7.setObjectName("verticalLayout_7")
2354
+ self.epochs_to_show_layout = QHBoxLayout()
2355
+ self.epochs_to_show_layout.setObjectName("epochs_to_show_layout")
2356
+ self.horizontalLayout_78 = QHBoxLayout()
2357
+ self.horizontalLayout_78.setObjectName("horizontalLayout_78")
2358
+ self.label_20 = QLabel(self.manual_defaults_groupbox)
2359
+ self.label_20.setObjectName("label_20")
2360
+ sizePolicy1.setHeightForWidth(self.label_20.sizePolicy().hasHeightForWidth())
2361
+ self.label_20.setSizePolicy(sizePolicy1)
2362
+
2363
+ self.horizontalLayout_78.addWidget(self.label_20)
2364
+
2365
+ self.epochs_to_show_spinbox = QSpinBox(self.manual_defaults_groupbox)
2366
+ self.epochs_to_show_spinbox.setObjectName("epochs_to_show_spinbox")
2367
+ self.epochs_to_show_spinbox.setMinimum(3)
2368
+ self.epochs_to_show_spinbox.setSingleStep(2)
2369
+ self.epochs_to_show_spinbox.setValue(5)
2370
+
2371
+ self.horizontalLayout_78.addWidget(self.epochs_to_show_spinbox)
2372
+
2373
+ self.epochs_to_show_layout.addLayout(self.horizontalLayout_78)
2374
+
2375
+ self.horizontalSpacer_92 = QSpacerItem(
2376
+ 40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum
2377
+ )
2378
+
2379
+ self.epochs_to_show_layout.addItem(self.horizontalSpacer_92)
2380
+
2381
+ self.verticalLayout_7.addLayout(self.epochs_to_show_layout)
2382
+
2383
+ self.autoscroll_layout = QHBoxLayout()
2384
+ self.autoscroll_layout.setObjectName("autoscroll_layout")
2385
+ self.horizontalLayout_77 = QHBoxLayout()
2386
+ self.horizontalLayout_77.setObjectName("horizontalLayout_77")
2387
+ self.autoscroll_checkbox = QCheckBox(self.manual_defaults_groupbox)
2388
+ self.autoscroll_checkbox.setObjectName("autoscroll_checkbox")
2389
+ sizePolicy1.setHeightForWidth(
2390
+ self.autoscroll_checkbox.sizePolicy().hasHeightForWidth()
2391
+ )
2392
+ self.autoscroll_checkbox.setSizePolicy(sizePolicy1)
2393
+
2394
+ self.horizontalLayout_77.addWidget(self.autoscroll_checkbox)
2395
+
2396
+ self.autoscroll_layout.addLayout(self.horizontalLayout_77)
2397
+
2398
+ self.horizontalSpacer_91 = QSpacerItem(
2399
+ 10, 10, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum
2400
+ )
2401
+
2402
+ self.autoscroll_layout.addItem(self.horizontalSpacer_91)
2403
+
2404
+ self.verticalLayout_7.addLayout(self.autoscroll_layout)
2405
+
2406
+ self.verticalLayout_6.addWidget(self.manual_defaults_groupbox)
2339
2407
 
2340
2408
  self.verticalSpacer_5 = QSpacerItem(
2341
2409
  5, 5, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding
@@ -3098,32 +3166,96 @@ class Ui_PrimaryWindow(object):
3098
3166
  None,
3099
3167
  )
3100
3168
  )
3169
+ self.primary_defaults_groupbox.setTitle(
3170
+ QCoreApplication.translate("PrimaryWindow", "Primary window settings", None)
3171
+ )
3101
3172
  self.label_17.setText(
3102
3173
  QCoreApplication.translate("PrimaryWindow", "Epoch length:", None)
3103
3174
  )
3175
+ # if QT_CONFIG(tooltip)
3176
+ self.default_epoch_input.setToolTip(
3177
+ QCoreApplication.translate(
3178
+ "PrimaryWindow",
3179
+ "This sets the temporal resolution for sleep scoring",
3180
+ None,
3181
+ )
3182
+ )
3183
+ # endif // QT_CONFIG(tooltip)
3104
3184
  self.default_epoch_input.setSuffix(
3105
3185
  QCoreApplication.translate("PrimaryWindow", " sec", None)
3106
3186
  )
3187
+ # if QT_CONFIG(tooltip)
3188
+ self.overwrite_default_checkbox.setToolTip(
3189
+ QCoreApplication.translate(
3190
+ "PrimaryWindow",
3191
+ "During automated scoring, only overwrite epochs with the undefined brain state",
3192
+ None,
3193
+ )
3194
+ )
3195
+ # endif // QT_CONFIG(tooltip)
3107
3196
  self.overwrite_default_checkbox.setText(
3108
3197
  QCoreApplication.translate(
3109
3198
  "PrimaryWindow", "Only overwrite undefined epochs", None
3110
3199
  )
3111
3200
  )
3201
+ # if QT_CONFIG(tooltip)
3202
+ self.confidence_setting_checkbox.setToolTip(
3203
+ QCoreApplication.translate(
3204
+ "PrimaryWindow",
3205
+ "Save the model's confidence scores in label files",
3206
+ None,
3207
+ )
3208
+ )
3209
+ # endif // QT_CONFIG(tooltip)
3112
3210
  self.confidence_setting_checkbox.setText(
3113
3211
  QCoreApplication.translate("PrimaryWindow", "Save confidence scores", None)
3114
3212
  )
3115
3213
  self.label_19.setText(
3116
3214
  QCoreApplication.translate("PrimaryWindow", "Minimum bout length:", None)
3117
3215
  )
3216
+ # if QT_CONFIG(tooltip)
3217
+ self.default_min_bout_length_spinbox.setToolTip(
3218
+ QCoreApplication.translate(
3219
+ "PrimaryWindow",
3220
+ "Minimum allowed duration for a bout of any brain state",
3221
+ None,
3222
+ )
3223
+ )
3224
+ # endif // QT_CONFIG(tooltip)
3118
3225
  self.default_min_bout_length_spinbox.setSuffix(
3119
3226
  QCoreApplication.translate("PrimaryWindow", " sec", None)
3120
3227
  )
3228
+ self.manual_defaults_groupbox.setTitle(
3229
+ QCoreApplication.translate(
3230
+ "PrimaryWindow", "Manual scoring window settings", None
3231
+ )
3232
+ )
3233
+ self.label_20.setText(
3234
+ QCoreApplication.translate("PrimaryWindow", "Epochs to show", None)
3235
+ )
3236
+ # if QT_CONFIG(tooltip)
3237
+ self.epochs_to_show_spinbox.setToolTip(
3238
+ QCoreApplication.translate(
3239
+ "PrimaryWindow", "Number of epochs to display in the lower plots", None
3240
+ )
3241
+ )
3242
+ # endif // QT_CONFIG(tooltip)
3243
+ # if QT_CONFIG(tooltip)
3244
+ self.autoscroll_checkbox.setToolTip(
3245
+ QCoreApplication.translate(
3246
+ "PrimaryWindow",
3247
+ "After scoring each epoch, automatically advance to the next one",
3248
+ None,
3249
+ )
3250
+ )
3251
+ # endif // QT_CONFIG(tooltip)
3252
+ self.autoscroll_checkbox.setText(
3253
+ QCoreApplication.translate("PrimaryWindow", "Auto scroll", None)
3254
+ )
3121
3255
  self.ui_default_description_label.setText(
3122
3256
  QCoreApplication.translate(
3123
3257
  "PrimaryWindow",
3124
- "These are the default values/settings that are shown in the primary UI window when it starts up.\n"
3125
- "\n"
3126
- 'Changes here will not affect the **current** state of the controls in the "Sleep scoring" tab.',
3258
+ "<html><head/><body><p>These are the default values/settings that are shown in the primary window and manual scoring window when they start up.</p><p>Changes here will not affect the **current** state of the controls in the &quot;Sleep scoring&quot; tab.</p></body></html>",
3127
3259
  None,
3128
3260
  )
3129
3261
  )
@@ -3787,184 +3787,307 @@ Each brain state has several attributes:
3787
3787
  <item>
3788
3788
  <layout class="QVBoxLayout" name="verticalLayout_6">
3789
3789
  <property name="spacing">
3790
- <number>10</number>
3790
+ <number>20</number>
3791
3791
  </property>
3792
3792
  <item>
3793
- <layout class="QHBoxLayout" name="default_epoch_layout">
3794
- <item>
3795
- <layout class="QHBoxLayout" name="horizontalLayout_60">
3796
- <item>
3797
- <widget class="QLabel" name="label_17">
3798
- <property name="sizePolicy">
3799
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3800
- <horstretch>0</horstretch>
3801
- <verstretch>0</verstretch>
3802
- </sizepolicy>
3803
- </property>
3804
- <property name="text">
3805
- <string>Epoch length:</string>
3806
- </property>
3807
- </widget>
3808
- </item>
3809
- <item>
3810
- <widget class="QDoubleSpinBox" name="default_epoch_input">
3811
- <property name="sizePolicy">
3812
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3813
- <horstretch>0</horstretch>
3814
- <verstretch>0</verstretch>
3815
- </sizepolicy>
3816
- </property>
3817
- <property name="suffix">
3818
- <string> sec</string>
3819
- </property>
3820
- <property name="maximum">
3821
- <double>100000.000000000000000</double>
3822
- </property>
3823
- <property name="singleStep">
3824
- <double>0.500000000000000</double>
3825
- </property>
3826
- </widget>
3827
- </item>
3828
- </layout>
3829
- </item>
3830
- <item>
3831
- <spacer name="horizontalSpacer_70">
3832
- <property name="orientation">
3833
- <enum>Qt::Orientation::Horizontal</enum>
3834
- </property>
3835
- <property name="sizeType">
3836
- <enum>QSizePolicy::Policy::Expanding</enum>
3837
- </property>
3838
- <property name="sizeHint" stdset="0">
3839
- <size>
3840
- <width>10</width>
3841
- <height>10</height>
3842
- </size>
3843
- </property>
3844
- </spacer>
3845
- </item>
3846
- </layout>
3847
- </item>
3848
- <item>
3849
- <layout class="QHBoxLayout" name="horizontalLayout_75">
3850
- <item>
3851
- <layout class="QHBoxLayout" name="horizontalLayout_76">
3852
- <item>
3853
- <widget class="QCheckBox" name="overwrite_default_checkbox">
3854
- <property name="text">
3855
- <string>Only overwrite undefined epochs</string>
3856
- </property>
3857
- </widget>
3858
- </item>
3859
- </layout>
3860
- </item>
3861
- <item>
3862
- <spacer name="horizontalSpacer_88">
3863
- <property name="orientation">
3864
- <enum>Qt::Orientation::Horizontal</enum>
3865
- </property>
3866
- <property name="sizeHint" stdset="0">
3867
- <size>
3868
- <width>40</width>
3869
- <height>20</height>
3870
- </size>
3871
- </property>
3872
- </spacer>
3873
- </item>
3874
- </layout>
3875
- </item>
3876
- <item>
3877
- <layout class="QHBoxLayout" name="confidence_score_setting_layout">
3878
- <item>
3879
- <layout class="QHBoxLayout" name="horizontalLayout_62">
3880
- <item>
3881
- <widget class="QCheckBox" name="confidence_setting_checkbox">
3882
- <property name="sizePolicy">
3883
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3884
- <horstretch>0</horstretch>
3885
- <verstretch>0</verstretch>
3886
- </sizepolicy>
3887
- </property>
3888
- <property name="text">
3889
- <string>Save confidence scores</string>
3890
- </property>
3891
- <property name="checked">
3892
- <bool>true</bool>
3893
- </property>
3894
- </widget>
3895
- </item>
3896
- </layout>
3897
- </item>
3898
- <item>
3899
- <spacer name="horizontalSpacer_72">
3900
- <property name="orientation">
3901
- <enum>Qt::Orientation::Horizontal</enum>
3902
- </property>
3903
- <property name="sizeType">
3904
- <enum>QSizePolicy::Policy::Expanding</enum>
3905
- </property>
3906
- <property name="sizeHint" stdset="0">
3907
- <size>
3908
- <width>10</width>
3909
- <height>10</height>
3910
- </size>
3911
- </property>
3912
- </spacer>
3913
- </item>
3914
- </layout>
3793
+ <widget class="QGroupBox" name="primary_defaults_groupbox">
3794
+ <property name="title">
3795
+ <string>Primary window settings</string>
3796
+ </property>
3797
+ <layout class="QVBoxLayout" name="verticalLayout_4">
3798
+ <property name="spacing">
3799
+ <number>10</number>
3800
+ </property>
3801
+ <item>
3802
+ <layout class="QHBoxLayout" name="default_epoch_layout">
3803
+ <item>
3804
+ <layout class="QHBoxLayout" name="horizontalLayout_60">
3805
+ <item>
3806
+ <widget class="QLabel" name="label_17">
3807
+ <property name="sizePolicy">
3808
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3809
+ <horstretch>0</horstretch>
3810
+ <verstretch>0</verstretch>
3811
+ </sizepolicy>
3812
+ </property>
3813
+ <property name="text">
3814
+ <string>Epoch length:</string>
3815
+ </property>
3816
+ </widget>
3817
+ </item>
3818
+ <item>
3819
+ <widget class="QDoubleSpinBox" name="default_epoch_input">
3820
+ <property name="sizePolicy">
3821
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3822
+ <horstretch>0</horstretch>
3823
+ <verstretch>0</verstretch>
3824
+ </sizepolicy>
3825
+ </property>
3826
+ <property name="toolTip">
3827
+ <string>This sets the temporal resolution for sleep scoring</string>
3828
+ </property>
3829
+ <property name="suffix">
3830
+ <string> sec</string>
3831
+ </property>
3832
+ <property name="maximum">
3833
+ <double>100000.000000000000000</double>
3834
+ </property>
3835
+ <property name="singleStep">
3836
+ <double>0.500000000000000</double>
3837
+ </property>
3838
+ </widget>
3839
+ </item>
3840
+ </layout>
3841
+ </item>
3842
+ <item>
3843
+ <spacer name="horizontalSpacer_70">
3844
+ <property name="orientation">
3845
+ <enum>Qt::Orientation::Horizontal</enum>
3846
+ </property>
3847
+ <property name="sizeType">
3848
+ <enum>QSizePolicy::Policy::Expanding</enum>
3849
+ </property>
3850
+ <property name="sizeHint" stdset="0">
3851
+ <size>
3852
+ <width>10</width>
3853
+ <height>10</height>
3854
+ </size>
3855
+ </property>
3856
+ </spacer>
3857
+ </item>
3858
+ </layout>
3859
+ </item>
3860
+ <item>
3861
+ <layout class="QHBoxLayout" name="horizontalLayout_75">
3862
+ <item>
3863
+ <layout class="QHBoxLayout" name="horizontalLayout_76">
3864
+ <item>
3865
+ <widget class="QCheckBox" name="overwrite_default_checkbox">
3866
+ <property name="toolTip">
3867
+ <string>During automated scoring, only overwrite epochs with the undefined brain state</string>
3868
+ </property>
3869
+ <property name="text">
3870
+ <string>Only overwrite undefined epochs</string>
3871
+ </property>
3872
+ </widget>
3873
+ </item>
3874
+ </layout>
3875
+ </item>
3876
+ <item>
3877
+ <spacer name="horizontalSpacer_88">
3878
+ <property name="orientation">
3879
+ <enum>Qt::Orientation::Horizontal</enum>
3880
+ </property>
3881
+ <property name="sizeHint" stdset="0">
3882
+ <size>
3883
+ <width>40</width>
3884
+ <height>20</height>
3885
+ </size>
3886
+ </property>
3887
+ </spacer>
3888
+ </item>
3889
+ </layout>
3890
+ </item>
3891
+ <item>
3892
+ <layout class="QHBoxLayout" name="confidence_score_setting_layout">
3893
+ <item>
3894
+ <layout class="QHBoxLayout" name="horizontalLayout_62">
3895
+ <item>
3896
+ <widget class="QCheckBox" name="confidence_setting_checkbox">
3897
+ <property name="sizePolicy">
3898
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3899
+ <horstretch>0</horstretch>
3900
+ <verstretch>0</verstretch>
3901
+ </sizepolicy>
3902
+ </property>
3903
+ <property name="toolTip">
3904
+ <string>Save the model's confidence scores in label files</string>
3905
+ </property>
3906
+ <property name="text">
3907
+ <string>Save confidence scores</string>
3908
+ </property>
3909
+ <property name="checked">
3910
+ <bool>true</bool>
3911
+ </property>
3912
+ </widget>
3913
+ </item>
3914
+ </layout>
3915
+ </item>
3916
+ <item>
3917
+ <spacer name="horizontalSpacer_72">
3918
+ <property name="orientation">
3919
+ <enum>Qt::Orientation::Horizontal</enum>
3920
+ </property>
3921
+ <property name="sizeType">
3922
+ <enum>QSizePolicy::Policy::Expanding</enum>
3923
+ </property>
3924
+ <property name="sizeHint" stdset="0">
3925
+ <size>
3926
+ <width>10</width>
3927
+ <height>10</height>
3928
+ </size>
3929
+ </property>
3930
+ </spacer>
3931
+ </item>
3932
+ </layout>
3933
+ </item>
3934
+ <item>
3935
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
3936
+ <item>
3937
+ <layout class="QHBoxLayout" name="horizontalLayout_18">
3938
+ <item>
3939
+ <widget class="QLabel" name="label_19">
3940
+ <property name="sizePolicy">
3941
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3942
+ <horstretch>0</horstretch>
3943
+ <verstretch>0</verstretch>
3944
+ </sizepolicy>
3945
+ </property>
3946
+ <property name="text">
3947
+ <string>Minimum bout length:</string>
3948
+ </property>
3949
+ </widget>
3950
+ </item>
3951
+ <item>
3952
+ <widget class="QDoubleSpinBox" name="default_min_bout_length_spinbox">
3953
+ <property name="sizePolicy">
3954
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3955
+ <horstretch>0</horstretch>
3956
+ <verstretch>0</verstretch>
3957
+ </sizepolicy>
3958
+ </property>
3959
+ <property name="toolTip">
3960
+ <string>Minimum allowed duration for a bout of any brain state</string>
3961
+ </property>
3962
+ <property name="suffix">
3963
+ <string> sec</string>
3964
+ </property>
3965
+ <property name="maximum">
3966
+ <double>1000.000000000000000</double>
3967
+ </property>
3968
+ <property name="value">
3969
+ <double>5.000000000000000</double>
3970
+ </property>
3971
+ </widget>
3972
+ </item>
3973
+ </layout>
3974
+ </item>
3975
+ <item>
3976
+ <spacer name="horizontalSpacer_90">
3977
+ <property name="orientation">
3978
+ <enum>Qt::Orientation::Horizontal</enum>
3979
+ </property>
3980
+ <property name="sizeHint" stdset="0">
3981
+ <size>
3982
+ <width>5</width>
3983
+ <height>5</height>
3984
+ </size>
3985
+ </property>
3986
+ </spacer>
3987
+ </item>
3988
+ </layout>
3989
+ </item>
3990
+ </layout>
3991
+ </widget>
3915
3992
  </item>
3916
3993
  <item>
3917
- <layout class="QHBoxLayout" name="horizontalLayout_2">
3918
- <item>
3919
- <layout class="QHBoxLayout" name="horizontalLayout_18">
3920
- <item>
3921
- <widget class="QLabel" name="label_19">
3922
- <property name="sizePolicy">
3923
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3924
- <horstretch>0</horstretch>
3925
- <verstretch>0</verstretch>
3926
- </sizepolicy>
3927
- </property>
3928
- <property name="text">
3929
- <string>Minimum bout length:</string>
3930
- </property>
3931
- </widget>
3932
- </item>
3933
- <item>
3934
- <widget class="QDoubleSpinBox" name="default_min_bout_length_spinbox">
3935
- <property name="sizePolicy">
3936
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3937
- <horstretch>0</horstretch>
3938
- <verstretch>0</verstretch>
3939
- </sizepolicy>
3940
- </property>
3941
- <property name="suffix">
3942
- <string> sec</string>
3943
- </property>
3944
- <property name="maximum">
3945
- <double>1000.000000000000000</double>
3946
- </property>
3947
- <property name="value">
3948
- <double>5.000000000000000</double>
3949
- </property>
3950
- </widget>
3951
- </item>
3952
- </layout>
3953
- </item>
3954
- <item>
3955
- <spacer name="horizontalSpacer_90">
3956
- <property name="orientation">
3957
- <enum>Qt::Orientation::Horizontal</enum>
3958
- </property>
3959
- <property name="sizeHint" stdset="0">
3960
- <size>
3961
- <width>5</width>
3962
- <height>5</height>
3963
- </size>
3964
- </property>
3965
- </spacer>
3966
- </item>
3967
- </layout>
3994
+ <widget class="QGroupBox" name="manual_defaults_groupbox">
3995
+ <property name="title">
3996
+ <string>Manual scoring window settings</string>
3997
+ </property>
3998
+ <layout class="QVBoxLayout" name="verticalLayout_7">
3999
+ <property name="spacing">
4000
+ <number>10</number>
4001
+ </property>
4002
+ <item>
4003
+ <layout class="QHBoxLayout" name="epochs_to_show_layout">
4004
+ <item>
4005
+ <layout class="QHBoxLayout" name="horizontalLayout_78">
4006
+ <item>
4007
+ <widget class="QLabel" name="label_20">
4008
+ <property name="sizePolicy">
4009
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
4010
+ <horstretch>0</horstretch>
4011
+ <verstretch>0</verstretch>
4012
+ </sizepolicy>
4013
+ </property>
4014
+ <property name="text">
4015
+ <string>Epochs to show</string>
4016
+ </property>
4017
+ </widget>
4018
+ </item>
4019
+ <item>
4020
+ <widget class="QSpinBox" name="epochs_to_show_spinbox">
4021
+ <property name="toolTip">
4022
+ <string>Number of epochs to display in the lower plots</string>
4023
+ </property>
4024
+ <property name="minimum">
4025
+ <number>3</number>
4026
+ </property>
4027
+ <property name="singleStep">
4028
+ <number>2</number>
4029
+ </property>
4030
+ <property name="value">
4031
+ <number>5</number>
4032
+ </property>
4033
+ </widget>
4034
+ </item>
4035
+ </layout>
4036
+ </item>
4037
+ <item>
4038
+ <spacer name="horizontalSpacer_92">
4039
+ <property name="orientation">
4040
+ <enum>Qt::Orientation::Horizontal</enum>
4041
+ </property>
4042
+ <property name="sizeHint" stdset="0">
4043
+ <size>
4044
+ <width>40</width>
4045
+ <height>20</height>
4046
+ </size>
4047
+ </property>
4048
+ </spacer>
4049
+ </item>
4050
+ </layout>
4051
+ </item>
4052
+ <item>
4053
+ <layout class="QHBoxLayout" name="autoscroll_layout">
4054
+ <item>
4055
+ <layout class="QHBoxLayout" name="horizontalLayout_77">
4056
+ <item>
4057
+ <widget class="QCheckBox" name="autoscroll_checkbox">
4058
+ <property name="sizePolicy">
4059
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
4060
+ <horstretch>0</horstretch>
4061
+ <verstretch>0</verstretch>
4062
+ </sizepolicy>
4063
+ </property>
4064
+ <property name="toolTip">
4065
+ <string>After scoring each epoch, automatically advance to the next one</string>
4066
+ </property>
4067
+ <property name="text">
4068
+ <string>Auto scroll</string>
4069
+ </property>
4070
+ </widget>
4071
+ </item>
4072
+ </layout>
4073
+ </item>
4074
+ <item>
4075
+ <spacer name="horizontalSpacer_91">
4076
+ <property name="orientation">
4077
+ <enum>Qt::Orientation::Horizontal</enum>
4078
+ </property>
4079
+ <property name="sizeHint" stdset="0">
4080
+ <size>
4081
+ <width>10</width>
4082
+ <height>10</height>
4083
+ </size>
4084
+ </property>
4085
+ </spacer>
4086
+ </item>
4087
+ </layout>
4088
+ </item>
4089
+ </layout>
4090
+ </widget>
3968
4091
  </item>
3969
4092
  <item>
3970
4093
  <spacer name="verticalSpacer_5">
@@ -3989,9 +4112,7 @@ Each brain state has several attributes:
3989
4112
  <string notr="true">background-color: white;</string>
3990
4113
  </property>
3991
4114
  <property name="text">
3992
- <string>These are the default values/settings that are shown in the primary UI window when it starts up.
3993
-
3994
- Changes here will not affect the **current** state of the controls in the &quot;Sleep scoring&quot; tab.</string>
4115
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;These are the default values/settings that are shown in the primary window and manual scoring window when they start up.&lt;/p&gt;&lt;p&gt;Changes here will not affect the **current** state of the controls in the &amp;quot;Sleep scoring&amp;quot; tab.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
3995
4116
  </property>
3996
4117
  <property name="textFormat">
3997
4118
  <enum>Qt::TextFormat::MarkdownText</enum>
@@ -40,7 +40,7 @@ your changes, you need to update the python representation of the UI.
40
40
  ```
41
41
  If the file already contains the line `import resources_rc`,
42
42
  replace it with the one above.
43
- If you updated `primary_window.py`, you also need to add:
43
+ If you updated `viewer_window.py`, you also need to add:
44
44
  ```
45
45
  from accusleepy.gui.mplwidget import MplWidget
46
46
  ```
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: accusleepy
3
- Version: 0.7.3
3
+ Version: 0.8.0
4
4
  Summary: Python implementation of AccuSleep
5
5
  License: GPL-3.0-only
6
6
  Author: Zeke Barger
@@ -80,6 +80,7 @@ please consult the [developer guide](accusleepy/gui/text/dev_guide.md).
80
80
 
81
81
  ## Changelog
82
82
 
83
+ - 0.8.0: More configurable settings, visual improvements
83
84
  - 0.7.1-0.7.3: Bugfixes, code cleanup
84
85
  - 0.7.0: More settings can be configured in the UI
85
86
  - 0.6.0: Confidence scores can now be displayed and saved. Retraining your models is recommended
@@ -3,9 +3,9 @@ accusleepy/__main__.py,sha256=dKzl2N2Hg9lD264CWYNxThRyDKzWwyMwHRXmJxOmMis,104
3
3
  accusleepy/bouts.py,sha256=F_y6DxnpKFfImYb7vCZluZ2eD5I_33gZXmRM8mvebsg,5679
4
4
  accusleepy/brain_state_set.py,sha256=fRkrArHLIbEKimub804yt_mUXoyfsjJEfiJnTjeCMkY,3233
5
5
  accusleepy/classification.py,sha256=mF35xMrD9QXGldSnl3vkdHbm7CAptPUNjHxUA_agOTA,9778
6
- accusleepy/config.json,sha256=Ip0qTMAn2LZfof9GVA_azOvpXP0WKnqLCZeSaya1sss,819
7
- accusleepy/constants.py,sha256=r53FWeMMefuKA-mR_b2E1KBeJbq2Ck9c5VHoJ1WGZjg,2815
8
- accusleepy/fileio.py,sha256=woIF0zgJt6Lx6T9KBXAQ-AlbQAwOK1_RUmVF710nltI,7383
6
+ accusleepy/config.json,sha256=VmUFsiGD1ymEyjdzqeM5nTp8jWvDI-DIxLy1_92nueo,875
7
+ accusleepy/constants.py,sha256=62mmsr1NKzF-psS-9esuAE65kAcPL6o8v9UXQEvb5yc,2983
8
+ accusleepy/fileio.py,sha256=iWUQtWCSL9hG3eQC8-RXJUrHv149PBxM3IjYKaUcMFk,7981
9
9
  accusleepy/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  accusleepy/gui/icons/brightness_down.png,sha256=PLT1fb83RHIhSRuU7MMMx0G7oJAY7o9wUcnqM8veZfM,12432
11
11
  accusleepy/gui/icons/brightness_up.png,sha256=64GnUqgPvN5xZ6Um3wOzwqvUmdAWYZT6eFmWpBsHyks,12989
@@ -18,17 +18,17 @@ accusleepy/gui/icons/save.png,sha256=J3EA8iU1BqLYRSsrq_OdoZlqrv2yfL7oV54DklTy_DI
18
18
  accusleepy/gui/icons/up_arrow.png,sha256=V9yF9t1WgjPaUu-mF1YGe_DfaRHg2dUpR_sUVVcvVvY,3329
19
19
  accusleepy/gui/icons/zoom_in.png,sha256=MFWnKZp7Rvh4bLPq4Cqo4sB_jQYedUUtT8-ZO8tNYyc,13589
20
20
  accusleepy/gui/icons/zoom_out.png,sha256=IB8Jecb3i0U4qjWRR46ridjLpvLCSe7PozBaLqQqYSw,13055
21
- accusleepy/gui/images/primary_window.png,sha256=VBeXf20pYJ8Sfjz5qCrlciQfiwZhMutF4tHCHA7-RGc,595012
21
+ accusleepy/gui/images/primary_window.png,sha256=jI_E2oZZN-Ajb4_5n-jVlNT7OkEPrK50xK2WOJnaiBc,598184
22
22
  accusleepy/gui/images/viewer_window.png,sha256=b_B7m9WSLMAOzNjctq76SyekO1WfC6qYZVNnYfhjPe8,977197
23
23
  accusleepy/gui/images/viewer_window_annotated.png,sha256=uMNUmsZIdzDlQpyoiS3lJGoWlg_T325Oj5hDZhM3Y14,146817
24
- accusleepy/gui/main.py,sha256=sLHe1imVU6xz3f6sJ9u7sxrTny9X213ev29ldoxXpX0,57740
25
- accusleepy/gui/manual_scoring.py,sha256=7jKdw-D9HdpYC2G_2RHt5UALLMjrIsP-hvLFkNM25Ek,40553
24
+ accusleepy/gui/main.py,sha256=GdxQXdg0kxCaJzClvRiN95A6pQjZ-jBoOb2YyInKvyc,58253
25
+ accusleepy/gui/manual_scoring.py,sha256=woi4LxsUkHfNnjPGKdSFWyynuti1rWFrar6IJP7HyKA,40773
26
26
  accusleepy/gui/mplwidget.py,sha256=rJSTtWmLjHn8r3c9Kb23Rc4XzXl3i9B-JrjNjjlNnmQ,13492
27
- accusleepy/gui/primary_window.py,sha256=aV0r4mRIXp56MKvuyF2iZLXPNZjZWrpugPtUb2D5saQ,135855
28
- accusleepy/gui/primary_window.ui,sha256=8Vs76j-QMlAKaX1oclOS1LicdGQ2znpqKarro2tLgbA,201602
27
+ accusleepy/gui/primary_window.py,sha256=qqV-GAC3BgOus1lJMOg2U4AGQbhy35zLMyN8Q7ouTd8,141479
28
+ accusleepy/gui/primary_window.ui,sha256=2mD0G6b8bsyyUvMCUosQ0K-nAzMA2iiP3yMpeh9INcQ,208209
29
29
  accusleepy/gui/resources.qrc,sha256=wqPendnTLAuKfVI6v2lKHiRqAWM0oaz2ZuF5cucJdS4,803
30
30
  accusleepy/gui/resources_rc.py,sha256=Z2e34h30U4snJjnYdZVV9B6yjATKxxfvgTRt5uXtQdo,329727
31
- accusleepy/gui/text/dev_guide.md,sha256=X69cMsPtSNCqjiYQNvaIUD-QXjRFeGHLPyH2GXMTC8Q,2061
31
+ accusleepy/gui/text/dev_guide.md,sha256=PgOXfGvN17fCtnsfGvPhrhK4FUWFGP_TsHA6t9skP3U,2060
32
32
  accusleepy/gui/text/main_guide.md,sha256=iZDRp5OWyQX9LV7CMeUFIYv2ryKlIcGALRLXjxR8HpI,8288
33
33
  accusleepy/gui/text/manual_scoring_guide.md,sha256=ow_RMSjFy05NupEDSCuJtu-V65-BPnIkrZqtssFoZCQ,999
34
34
  accusleepy/gui/viewer_window.py,sha256=jysFw7C_Tr7mtK1XNWhIpHblBvatwduE3RF2GP4lrro,24479
@@ -38,6 +38,6 @@ accusleepy/multitaper.py,sha256=D5-iglwkFBRciL5tKSNcunMtcq0rM3zHwRHUVPgem1U,2567
38
38
  accusleepy/signal_processing.py,sha256=47fEAx8Aqqkiqix1ai2YEK9Fhq6UHoQcwAcOi-a8ewo,16834
39
39
  accusleepy/temperature_scaling.py,sha256=glvPcvxHpBdFjwjGfZdNku9L_BozycEmdqZhKKUCCNg,5749
40
40
  accusleepy/validation.py,sha256=VpLWK-wD5tCU6lTBG3KYgTi3PWGuYh6NitMgMoMH8JM,4434
41
- accusleepy-0.7.3.dist-info/METADATA,sha256=sna1nfMfIcNYYsNT-2Z3BlanP2Jt5kLr9wpBuRILhzA,4743
42
- accusleepy-0.7.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
43
- accusleepy-0.7.3.dist-info/RECORD,,
41
+ accusleepy-0.8.0.dist-info/METADATA,sha256=gnk8O1By632zTCFJG9ifqkQDDSEDTqggGUpG8F-WPgs,4800
42
+ accusleepy-0.8.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
43
+ accusleepy-0.8.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any