Page:
run 2399 COVERAGE commit e4cce9e
Pages
Home
run 1115 COVERAGE commit 5ac6854
run 1115 TEST commit 5ac6854
run 1117 COVERAGE commit 9c50639
run 1117 TEST commit 9c50639
run 1118 COVERAGE commit 2edb199
run 1118 TEST commit 2edb199
run 1119 COVERAGE commit 4a80d68
run 1119 TEST commit 4a80d68
run 1120 COVERAGE commit 391a757
run 1120 TEST commit 391a757
run 1121 COVERAGE commit 967642b
run 1121 TEST commit 967642b
run 1123 COVERAGE commit a042e53
run 1123 TEST commit a042e53
run 1124 COVERAGE commit b027d7d
run 1124 TEST commit b027d7d
run 1125 COVERAGE commit d212304
run 1125 TEST commit d212304
run 1126 COVERAGE commit e4a6d72
run 1126 TEST commit e4a6d72
run 1205 COVERAGE commit d685406
run 1205 TEST commit d685406
run 1206 COVERAGE commit 52b9297
run 1206 TEST commit 52b9297
run 1207 COVERAGE commit 6279733
run 1207 TEST commit 6279733
run 1208 COVERAGE commit e282c73
run 1208 TEST commit e282c73
run 1209 COVERAGE commit 4cb73c8
run 1209 TEST commit 4cb73c8
run 1210 COVERAGE commit fd1ad7e
run 1210 TEST commit fd1ad7e
run 1211 COVERAGE commit df9c0dd
run 1211 TEST commit df9c0dd
run 1212 COVERAGE commit e4a17e0
run 1212 TEST commit e4a17e0
run 1213 COVERAGE commit 02b150b
run 1213 TEST commit 02b150b
run 1214 COVERAGE commit 3b510be
run 1214 TEST commit 3b510be
run 1215 COVERAGE commit 793bff7
run 1215 TEST commit 793bff7
run 1216 COVERAGE commit b7618f6
run 1216 TEST commit b7618f6
run 1217 COVERAGE commit ec596ae
run 1217 TEST commit ec596ae
run 1218 COVERAGE commit 044d68b
run 1218 TEST commit 044d68b
run 1219 COVERAGE commit c2fdb32
run 1219 TEST commit c2fdb32
run 1220 COVERAGE commit 83e6b9a
run 1220 TEST commit 83e6b9a
run 1221 COVERAGE commit 74fc22e
run 1221 TEST commit 74fc22e
run 1222 COVERAGE commit 0e5542c
run 1222 TEST commit 0e5542c
run 1223 COVERAGE commit 7e83507
run 1223 TEST commit 7e83507
run 1224 COVERAGE commit edd68a4
run 1224 TEST commit edd68a4
run 1226 COVERAGE commit 2559b12
run 1226 TEST commit 2559b12
run 1228 COVERAGE commit 35fa31f
run 1228 TEST commit 35fa31f
run 1229 COVERAGE commit 4a79248
run 1229 TEST commit 4a79248
run 1231 COVERAGE commit 02814f9
run 1231 TEST commit 02814f9
run 1233 COVERAGE commit 98a2c7b
run 1233 TEST commit 98a2c7b
run 1234 COVERAGE commit 291f462
run 1234 TEST commit 291f462
run 1235 COVERAGE commit 7ca3b27
run 1235 TEST commit 7ca3b27
run 1236 COVERAGE commit d3ecfa0
run 1236 TEST commit d3ecfa0
run 1237 COVERAGE commit 57e4f06
run 1237 TEST commit 57e4f06
run 1238 COVERAGE commit 467a8da
run 1238 TEST commit 467a8da
run 1239 COVERAGE commit db18833
run 1239 TEST commit db18833
run 1240 COVERAGE commit f96e0c0
run 1240 TEST commit f96e0c0
run 1241 COVERAGE commit bc21a2e
run 1241 TEST commit bc21a2e
run 1242 COVERAGE commit 074bf9e
run 1242 TEST commit 074bf9e
run 1243 COVERAGE commit 4517561
run 1243 TEST commit 4517561
run 1244 COVERAGE commit 37f48e8
run 1244 TEST commit 37f48e8
run 1245 COVERAGE commit c8678e3
run 1245 TEST commit c8678e3
run 1246 COVERAGE commit e16bc21
run 1246 TEST commit e16bc21
run 1247 COVERAGE commit 03a4209
run 1247 TEST commit 03a4209
run 1248 COVERAGE commit f4435bb
run 1248 TEST commit f4435bb
run 1249 COVERAGE commit 0df8fed
run 1249 TEST commit 0df8fed
run 1250 COVERAGE commit 0a8f456
run 1250 TEST commit 0a8f456
run 1251 COVERAGE commit 3fba391
run 1251 TEST commit 3fba391
run 1252 COVERAGE commit 671aacb
run 1252 TEST commit 671aacb
run 1253 COVERAGE commit 7940588
run 1253 TEST commit 7940588
run 1254 COVERAGE commit b287639
run 1254 TEST commit b287639
run 1255 COVERAGE commit b0f997c
run 1255 TEST commit b0f997c
run 1256 COVERAGE commit 9e0035a
run 1256 TEST commit 9e0035a
run 1257 COVERAGE commit ef102d9
run 1257 TEST commit ef102d9
run 1258 COVERAGE commit d49879c
run 1258 TEST commit d49879c
run 1259 COVERAGE commit a84d058
run 1259 TEST commit a84d058
run 1260 COVERAGE commit a39ccff
run 1260 TEST commit a39ccff
run 1261 COVERAGE commit c2dae29
run 1261 TEST commit c2dae29
run 1262 COVERAGE commit 8f69eca
run 1262 TEST commit 8f69eca
run 1264 COVERAGE commit 78cf5b7
run 1264 TEST commit 78cf5b7
run 1265 COVERAGE commit ff1d6c7
run 1265 TEST commit ff1d6c7
run 1266 COVERAGE commit 38503b1
run 1266 TEST commit 38503b1
run 1267 COVERAGE commit 878527b
run 1267 TEST commit 878527b
run 1268 COVERAGE commit 3f6917e
run 1268 TEST commit 3f6917e
run 1269 COVERAGE commit af49f63
run 1269 TEST commit af49f63
run 1270 COVERAGE commit f0636dd
run 1270 TEST commit f0636dd
run 1271 COVERAGE commit 27fdc76
run 1271 TEST commit 27fdc76
run 1272 COVERAGE commit 695e1f3
run 1272 TEST commit 695e1f3
run 1273 COVERAGE commit 554113c
run 1273 TEST commit 554113c
run 1274 COVERAGE commit 1ce81b4
run 1274 TEST commit 1ce81b4
run 1275 COVERAGE commit 896a67f
run 1275 TEST commit 896a67f
run 1276 COVERAGE commit 7241e93
run 1276 TEST commit 7241e93
run 1277 COVERAGE commit 8e3a48b
run 1277 TEST commit 8e3a48b
run 1278 COVERAGE commit b0be79c
run 1278 TEST commit b0be79c
run 1279 COVERAGE commit 1e62de1
run 1279 TEST commit 1e62de1
run 1280 COVERAGE commit e5b6ce0
run 1280 TEST commit e5b6ce0
run 1281 COVERAGE commit c87d284
run 1281 TEST commit c87d284
run 1282 COVERAGE commit 98f785d
run 1282 TEST commit 98f785d
run 1283 COVERAGE commit 6dd4974
run 1283 TEST commit 6dd4974
run 1284 COVERAGE commit 3d56f96
run 1284 TEST commit 3d56f96
run 1285 COVERAGE commit 9b8d5e5
run 1285 TEST commit 9b8d5e5
run 1286 COVERAGE commit 8f83690
run 1286 TEST commit 8f83690
run 1287 COVERAGE commit 789e917
run 1287 TEST commit 789e917
run 1288 COVERAGE commit 4d897eb
run 1288 TEST commit 4d897eb
run 1289 COVERAGE commit f7255a5
run 1289 TEST commit f7255a5
run 1290 COVERAGE commit fa2072f
run 1290 TEST commit fa2072f
run 1291 COVERAGE commit 2befd1d
run 1291 TEST commit 2befd1d
run 1292 COVERAGE commit 049ea47
run 1292 TEST commit 049ea47
run 1293 COVERAGE commit 055bbef
run 1293 TEST commit 055bbef
run 1295 COVERAGE commit a47da38
run 1295 TEST commit a47da38
run 1296 COVERAGE commit 24a22a6
run 1296 TEST commit 24a22a6
run 1297 COVERAGE commit 617c8ab
run 1297 TEST commit 617c8ab
run 1298 COVERAGE commit e24b41c
run 1298 TEST commit e24b41c
run 1299 COVERAGE commit 0fab99c
run 1299 TEST commit 0fab99c
run 1300 COVERAGE commit 0b4d515
run 1300 TEST commit 0b4d515
run 1301 COVERAGE commit a3935ec
run 1301 TEST commit a3935ec
run 1302 COVERAGE commit 910b287
run 1302 TEST commit 910b287
run 1303 COVERAGE commit ec788ee
run 1303 TEST commit ec788ee
run 1305 COVERAGE commit ddceb3f
run 1305 TEST commit ddceb3f
run 1306 COVERAGE commit 84d93cc
run 1306 TEST commit 84d93cc
run 1307 COVERAGE commit 27cfd48
run 1307 TEST commit 27cfd48
run 1308 COVERAGE commit 9482104
run 1308 TEST commit 9482104
run 1309 COVERAGE commit 8e84cd6
run 1309 TEST commit 8e84cd6
run 1310 COVERAGE commit 8ed594f
run 1310 TEST commit 8ed594f
run 1311 COVERAGE commit 6cf30cd
run 1311 TEST commit 6cf30cd
run 1313 COVERAGE commit c96d71f
run 1313 TEST commit c96d71f
run 1314 COVERAGE commit b5bf2a2
run 1314 TEST commit b5bf2a2
run 1315 COVERAGE commit b163099
run 1315 TEST commit b163099
run 1316 COVERAGE commit 79f4645
run 1316 TEST commit 79f4645
run 1317 COVERAGE commit 958d007
run 1317 TEST commit 958d007
run 1318 COVERAGE commit 8dfe1ef
run 1318 TEST commit 8dfe1ef
run 1319 COVERAGE commit 6d9f8e5
run 1319 TEST commit 6d9f8e5
run 1320 COVERAGE commit d5a9a03
run 1320 TEST commit d5a9a03
run 1321 COVERAGE commit cfb2414
run 1321 TEST commit cfb2414
run 1322 COVERAGE commit 5c700e4
run 1322 TEST commit 5c700e4
run 1323 COVERAGE commit 65ba306
run 1323 TEST commit 65ba306
run 1324 COVERAGE commit 8836c8f
run 1324 TEST commit 8836c8f
run 1325 COVERAGE commit 3b98822
run 1325 TEST commit 3b98822
run 1326 COVERAGE commit cea11d8
run 1326 TEST commit cea11d8
run 1327 COVERAGE commit b6e0cc5
run 1327 TEST commit b6e0cc5
run 1328 COVERAGE commit c41d1fe
run 1328 TEST commit c41d1fe
run 1329 COVERAGE commit 952fd6d
run 1329 TEST commit 952fd6d
run 1330 COVERAGE commit c46be74
run 1330 TEST commit c46be74
run 1331 COVERAGE commit c415a45
run 1331 TEST commit c415a45
run 1332 COVERAGE commit 5177a9c
run 1332 TEST commit 5177a9c
run 1333 COVERAGE commit 2bbc837
run 1333 TEST commit 2bbc837
run 1334 COVERAGE commit 9b4f7e3
run 1334 TEST commit 9b4f7e3
run 1335 COVERAGE commit ecb953d
run 1335 TEST commit ecb953d
run 1336 COVERAGE commit df4afd0
run 1336 TEST commit df4afd0
run 1337 COVERAGE commit 44cb456
run 1337 TEST commit 44cb456
run 1338 COVERAGE commit 76a0aea
run 1338 TEST commit 76a0aea
run 1339 COVERAGE commit d272dd7
run 1339 TEST commit d272dd7
run 1340 COVERAGE commit bdeacc8
run 1340 TEST commit bdeacc8
run 1341 COVERAGE commit 1935c7f
run 1341 TEST commit 1935c7f
run 1342 COVERAGE commit c93786a
run 1342 TEST commit c93786a
run 1343 COVERAGE commit dcfa444
run 1343 TEST commit dcfa444
run 1344 COVERAGE commit fde18c5
run 1344 TEST commit fde18c5
run 1346 COVERAGE commit 5157541
run 1346 TEST commit 5157541
run 1347 COVERAGE commit 903bf32
run 1347 TEST commit 903bf32
run 1348 COVERAGE commit 6596b06
run 1348 TEST commit 6596b06
run 1349 COVERAGE commit f8e31bb
run 1349 TEST commit f8e31bb
run 1350 COVERAGE commit 5dab87c
run 1350 TEST commit 5dab87c
run 1351 COVERAGE commit 6ea7b2e
run 1351 TEST commit 6ea7b2e
run 1352 COVERAGE commit cac203e
run 1352 TEST commit cac203e
run 1353 COVERAGE commit 5349a38
run 1353 TEST commit 5349a38
run 1354 COVERAGE commit 8413f53
run 1354 TEST commit 8413f53
run 1355 COVERAGE commit 31259d7
run 1355 TEST commit 31259d7
run 1356 COVERAGE commit 4ec6353
run 1356 TEST commit 4ec6353
run 1357 COVERAGE commit 8f660e7
run 1357 TEST commit 8f660e7
run 1358 COVERAGE commit eaf8816
run 1358 TEST commit eaf8816
run 1359 COVERAGE commit 3d74796
run 1359 TEST commit 3d74796
run 1360 COVERAGE commit c0abb40
run 1360 TEST commit c0abb40
run 1361 COVERAGE commit 8d5a66c
run 1361 TEST commit 8d5a66c
run 1362 COVERAGE commit 9aed7af
run 1362 TEST commit 9aed7af
run 1363 COVERAGE commit 9642f29
run 1363 TEST commit 9642f29
run 1364 COVERAGE commit f02d28f
run 1364 TEST commit f02d28f
run 1366 COVERAGE commit ce095e7
run 1366 TEST commit ce095e7
run 1367 COVERAGE commit 2e3aaf5
run 1367 TEST commit 2e3aaf5
run 1368 COVERAGE commit e028805
run 1368 TEST commit e028805
run 1369 COVERAGE commit 5efc349
run 1369 TEST commit 5efc349
run 1370 COVERAGE commit 4610825
run 1370 TEST commit 4610825
run 1371 COVERAGE commit 3d0a4c8
run 1371 TEST commit 3d0a4c8
run 1372 COVERAGE commit 7e2b327
run 1372 TEST commit 7e2b327
run 1373 COVERAGE commit 5405f8a
run 1373 TEST commit 5405f8a
run 1374 COVERAGE commit c0fd983
run 1374 TEST commit c0fd983
run 1375 COVERAGE commit 4855b24
run 1375 TEST commit 4855b24
run 1376 COVERAGE commit c5af87d
run 1376 TEST commit c5af87d
run 1377 COVERAGE commit 7b73a74
run 1377 TEST commit 7b73a74
run 1378 COVERAGE commit 8caeb29
run 1378 TEST commit 8caeb29
run 1379 COVERAGE commit 7fd3240
run 1379 TEST commit 7fd3240
run 1380 COVERAGE commit 9ffe1f6
run 1380 TEST commit 9ffe1f6
run 1381 COVERAGE commit 3c525c8
run 1381 TEST commit 3c525c8
run 1382 COVERAGE commit b702759
run 1382 TEST commit b702759
run 1383 COVERAGE commit 54234c1
run 1383 TEST commit 54234c1
run 1384 COVERAGE commit d5c7a86
run 1384 TEST commit d5c7a86
run 1385 COVERAGE commit 7f7af82
run 1385 TEST commit 7f7af82
run 1386 COVERAGE commit 179a3e3
run 1386 TEST commit 179a3e3
run 1387 COVERAGE commit f089cd1
run 1387 TEST commit f089cd1
run 1388 COVERAGE commit 1a802cf
run 1388 TEST commit 1a802cf
run 1389 COVERAGE commit 4083dba
run 1389 TEST commit 4083dba
run 1391 COVERAGE commit cf43c3d
run 1391 TEST commit cf43c3d
run 1392 COVERAGE commit ef363ef
run 1392 TEST commit ef363ef
run 1393 COVERAGE commit 406c7bc
run 1393 TEST commit 406c7bc
run 1394 COVERAGE commit 43ba479
run 1394 TEST commit 43ba479
run 1395 COVERAGE commit b72a87d
run 1395 TEST commit b72a87d
run 1396 COVERAGE commit d817397
run 1396 TEST commit d817397
run 1397 COVERAGE commit 2f82270
run 1397 TEST commit 2f82270
run 1398 COVERAGE commit 5c13920
run 1398 TEST commit 5c13920
run 1399 COVERAGE commit e79e7dc
run 1399 TEST commit e79e7dc
run 1400 COVERAGE commit a58e249
run 1400 TEST commit a58e249
run 1401 COVERAGE commit 99d05b3
run 1401 TEST commit 99d05b3
run 1402 COVERAGE commit 571e4a4
run 1402 TEST commit 571e4a4
run 1403 COVERAGE commit 27c5c4d
run 1403 TEST commit 27c5c4d
run 1405 COVERAGE commit 9e1671d
run 1405 TEST commit 9e1671d
run 1406 COVERAGE commit 7801094
run 1406 TEST commit 7801094
run 1407 COVERAGE commit 08ab3d5
run 1407 TEST commit 08ab3d5
run 1409 COVERAGE commit 11cf418
run 1409 TEST commit 11cf418
run 1410 COVERAGE commit 349c0ce
run 1410 TEST commit 349c0ce
run 1411 COVERAGE commit bea7010
run 1411 TEST commit bea7010
run 1412 COVERAGE commit a7bac06
run 1412 TEST commit a7bac06
run 1413 COVERAGE commit 26192a8
run 1413 TEST commit 26192a8
run 1414 COVERAGE commit c35dc71
run 1414 TEST commit c35dc71
run 1415 COVERAGE commit fa863cb
run 1415 TEST commit fa863cb
run 1416 COVERAGE commit a642665
run 1416 TEST commit a642665
run 1417 COVERAGE commit 53f377d
run 1417 TEST commit 53f377d
run 1418 COVERAGE commit afa00ba
run 1418 TEST commit afa00ba
run 1419 COVERAGE commit e491d50
run 1419 TEST commit e491d50
run 1420 COVERAGE commit b71dae4
run 1420 TEST commit b71dae4
run 1421 COVERAGE commit 2d73e35
run 1421 TEST commit 2d73e35
run 1422 COVERAGE commit d13933c
run 1422 TEST commit d13933c
run 1423 COVERAGE commit 1a014ef
run 1423 TEST commit 1a014ef
run 1424 COVERAGE commit 83a47fe
run 1424 TEST commit 83a47fe
run 1425 COVERAGE commit 9cec262
run 1425 TEST commit 9cec262
run 1426 COVERAGE commit b043fda
run 1426 TEST commit b043fda
run 1427 COVERAGE commit a6bfc0a
run 1427 TEST commit a6bfc0a
run 1428 COVERAGE commit e98acba
run 1428 TEST commit e98acba
run 1429 COVERAGE commit 31a8a51
run 1429 TEST commit 31a8a51
run 1430 COVERAGE commit 53c62fe
run 1430 TEST commit 53c62fe
run 1431 COVERAGE commit 93fd2ff
run 1431 TEST commit 93fd2ff
run 1432 COVERAGE commit 0c530e6
run 1432 TEST commit 0c530e6
run 1433 COVERAGE commit 73a739f
run 1433 TEST commit 73a739f
run 1434 COVERAGE commit 1905547
run 1434 TEST commit 1905547
run 1435 COVERAGE commit 0feee2e
run 1435 TEST commit 0feee2e
run 1437 COVERAGE commit 1092fd8
run 1437 TEST commit 1092fd8
run 1438 COVERAGE commit c4180f9
run 1438 TEST commit c4180f9
run 1439 COVERAGE commit afd968d
run 1439 TEST commit afd968d
run 1440 COVERAGE commit ccaf907
run 1440 TEST commit ccaf907
run 1442 COVERAGE commit 3fbdcb5
run 1442 TEST commit 3fbdcb5
run 1443 COVERAGE commit bcd01bf
run 1443 TEST commit bcd01bf
run 1444 COVERAGE commit cff87da
run 1444 TEST commit cff87da
run 1445 COVERAGE commit 89a56b7
run 1445 TEST commit 89a56b7
run 1446 COVERAGE commit 4ba69f9
run 1446 TEST commit 4ba69f9
run 1447 COVERAGE commit e255fe4
run 1447 TEST commit e255fe4
run 1448 COVERAGE commit 16de8cd
run 1448 TEST commit 16de8cd
run 1449 COVERAGE commit f1c2aa3
run 1449 TEST commit f1c2aa3
run 1450 COVERAGE commit 090d23a
run 1450 TEST commit 090d23a
run 1451 COVERAGE commit a848eed
run 1451 TEST commit a848eed
run 1452 COVERAGE commit 35e4f6f
run 1452 TEST commit 35e4f6f
run 1453 COVERAGE commit bc5f640
run 1453 TEST commit bc5f640
run 1454 COVERAGE commit a2585a4
run 1454 TEST commit a2585a4
run 1455 COVERAGE commit cd288e9
run 1455 TEST commit cd288e9
run 1456 COVERAGE commit d96c860
run 1456 TEST commit d96c860
run 1459 COVERAGE commit 8f288f3
run 1459 TEST commit 8f288f3
run 1463 COVERAGE commit 470a1bc
run 1463 TEST commit 470a1bc
run 1464 COVERAGE commit dc2bc76
run 1464 TEST commit dc2bc76
run 1465 COVERAGE commit 3828fba
run 1465 TEST commit 3828fba
run 1466 COVERAGE commit b902c78
run 1466 TEST commit b902c78
run 1467 COVERAGE commit 1fea03a
run 1467 TEST commit 1fea03a
run 1468 COVERAGE commit f8bc419
run 1468 TEST commit f8bc419
run 1469 COVERAGE commit a4927fc
run 1469 TEST commit a4927fc
run 1470 COVERAGE commit 682466e
run 1470 TEST commit 682466e
run 1471 COVERAGE commit 4c71959
run 1471 TEST commit 4c71959
run 1472 COVERAGE commit ac116d5
run 1472 TEST commit ac116d5
run 1473 COVERAGE commit 6e91448
run 1473 TEST commit 6e91448
run 1474 COVERAGE commit 1b009a8
run 1474 TEST commit 1b009a8
run 1475 COVERAGE commit fd26819
run 1475 TEST commit fd26819
run 1476 COVERAGE commit 0cc0286
run 1476 TEST commit 0cc0286
run 1478 COVERAGE commit e7f80fe
run 1478 TEST commit e7f80fe
run 1479 COVERAGE commit 510707f
run 1479 TEST commit 510707f
run 1480 COVERAGE commit 7e495f9
run 1480 TEST commit 7e495f9
run 1481 COVERAGE commit c148f39
run 1481 TEST commit c148f39
run 1482 COVERAGE commit d4410ab
run 1482 TEST commit d4410ab
run 1483 COVERAGE commit 856cf87
run 1483 TEST commit 856cf87
run 1484 COVERAGE commit cbabc9a
run 1484 TEST commit cbabc9a
run 1485 COVERAGE commit 172342c
run 1485 TEST commit 172342c
run 1486 COVERAGE commit 6f8c722
run 1486 TEST commit 6f8c722
run 1487 COVERAGE commit a461b5e
run 1487 TEST commit a461b5e
run 1488 COVERAGE commit 8050899
run 1488 TEST commit 8050899
run 1489 COVERAGE commit 7236c00
run 1489 TEST commit 7236c00
run 1490 COVERAGE commit 197f706
run 1490 TEST commit 197f706
run 1491 COVERAGE commit d940835
run 1491 TEST commit d940835
run 1492 COVERAGE commit 63ecf49
run 1492 TEST commit 63ecf49
run 1493 COVERAGE commit 2fbf52f
run 1493 TEST commit 2fbf52f
run 1494 COVERAGE commit 7723ee9
run 1494 TEST commit 7723ee9
run 1495 COVERAGE commit 798548b
run 1495 TEST commit 798548b
run 1496 COVERAGE commit 315b782
run 1496 TEST commit 315b782
run 1497 COVERAGE commit 8bdf5ca
run 1497 TEST commit 8bdf5ca
run 1498 COVERAGE commit 1d053c5
run 1498 TEST commit 1d053c5
run 1499 COVERAGE commit 39b7991
run 1499 TEST commit 39b7991
run 1501 COVERAGE commit 02c6313
run 1501 TEST commit 02c6313
run 1502 COVERAGE commit db13732
run 1502 TEST commit db13732
run 1504 COVERAGE commit 4670b69
run 1504 TEST commit 4670b69
run 1505 COVERAGE commit bd22484
run 1505 TEST commit bd22484
run 1506 COVERAGE commit ca27e93
run 1506 TEST commit ca27e93
run 1507 COVERAGE commit bde9ca3
run 1507 TEST commit bde9ca3
run 1508 COVERAGE commit 4d76866
run 1508 TEST commit 4d76866
run 1509 COVERAGE commit 98426ba
run 1509 TEST commit 98426ba
run 1510 COVERAGE commit 7933d06
run 1510 TEST commit 7933d06
run 1512 COVERAGE commit 88089e1
run 1512 TEST commit 88089e1
run 1513 COVERAGE commit ae599cb
run 1513 TEST commit ae599cb
run 1514 COVERAGE commit 0d9ff37
run 1514 TEST commit 0d9ff37
run 1515 COVERAGE commit 98f69d7
run 1515 TEST commit 98f69d7
run 1516 COVERAGE commit 5f9a8e5
run 1516 TEST commit 5f9a8e5
run 1517 COVERAGE commit 28c1bef
run 1517 TEST commit 28c1bef
run 1519 COVERAGE commit 43725d1
run 1519 TEST commit 43725d1
run 1520 COVERAGE commit 8a6b50d
run 1520 TEST commit 8a6b50d
run 1521 COVERAGE commit 4a769ef
run 1521 TEST commit 4a769ef
run 1522 COVERAGE commit 5f09a4f
run 1522 TEST commit 5f09a4f
run 1523 COVERAGE commit 9021c1b
run 1523 TEST commit 9021c1b
run 1524 COVERAGE commit c005dc3
run 1524 TEST commit c005dc3
run 1525 COVERAGE commit 8eccc62
run 1525 TEST commit 8eccc62
run 1526 COVERAGE commit 6759019
run 1526 TEST commit 6759019
run 1527 COVERAGE commit 4405fbd
run 1527 TEST commit 4405fbd
run 1528 COVERAGE commit 23f1e69
run 1528 TEST commit 23f1e69
run 1529 COVERAGE commit 5bddbf4
run 1529 TEST commit 5bddbf4
run 1530 COVERAGE commit f5fa0ee
run 1530 TEST commit f5fa0ee
run 1531 COVERAGE commit ed84924
run 1531 TEST commit ed84924
run 1532 COVERAGE commit dbf57cc
run 1532 TEST commit dbf57cc
run 1534 COVERAGE commit 57c77cb
run 1534 TEST commit 57c77cb
run 1536 COVERAGE commit 7ddcfe1
run 1536 TEST commit 7ddcfe1
run 1537 COVERAGE commit 30a5203
run 1537 TEST commit 30a5203
run 1538 COVERAGE commit 8a314ee
run 1538 TEST commit 8a314ee
run 1539 COVERAGE commit 4f726da
run 1539 TEST commit 4f726da
run 1541 COVERAGE commit 8536f93
run 1541 TEST commit 8536f93
run 1542 COVERAGE commit f855462
run 1542 TEST commit f855462
run 1543 COVERAGE commit f4cd411
run 1543 TEST commit f4cd411
run 1544 COVERAGE commit 5aa9408
run 1544 TEST commit 5aa9408
run 1545 COVERAGE commit 9b2f6c3
run 1545 TEST commit 9b2f6c3
run 1546 COVERAGE commit d41c7c0
run 1546 TEST commit d41c7c0
run 1547 COVERAGE commit c968940
run 1547 TEST commit c968940
run 1548 COVERAGE commit 2e25b20
run 1548 TEST commit 2e25b20
run 1549 COVERAGE commit 343c24b
run 1549 TEST commit 343c24b
run 1550 COVERAGE commit adbd7dc
run 1550 TEST commit adbd7dc
run 1551 COVERAGE commit 5a21174
run 1551 TEST commit 5a21174
run 1552 COVERAGE commit 76dbd53
run 1552 TEST commit 76dbd53
run 1553 COVERAGE commit 06495a6
run 1553 TEST commit 06495a6
run 1554 COVERAGE commit f18608f
run 1554 TEST commit f18608f
run 1555 COVERAGE commit ae9aff7
run 1555 TEST commit ae9aff7
run 1556 COVERAGE commit acfbf24
run 1556 TEST commit acfbf24
run 1557 COVERAGE commit 864c9a4
run 1557 TEST commit 864c9a4
run 1558 COVERAGE commit 1731c74
run 1558 TEST commit 1731c74
run 1559 COVERAGE commit 971e71e
run 1559 TEST commit 971e71e
run 1561 COVERAGE commit a92542a
run 1561 TEST commit a92542a
run 1562 COVERAGE commit 7051d58
run 1562 TEST commit 7051d58
run 1563 COVERAGE commit 82ba041
run 1563 TEST commit 82ba041
run 1564 COVERAGE commit 6ae5795
run 1564 TEST commit 6ae5795
run 1565 COVERAGE commit 4e955a3
run 1565 TEST commit 4e955a3
run 1566 COVERAGE commit 5ed98a5
run 1566 TEST commit 5ed98a5
run 1567 COVERAGE commit a71f796
run 1567 TEST commit a71f796
run 1568 COVERAGE commit c5a7e0b
run 1568 TEST commit c5a7e0b
run 1569 COVERAGE commit e850d8b
run 1569 TEST commit e850d8b
run 1570 COVERAGE commit 2036b00
run 1570 TEST commit 2036b00
run 1571 COVERAGE commit 6e4dfd4
run 1571 TEST commit 6e4dfd4
run 1572 COVERAGE commit ca94ffb
run 1572 TEST commit ca94ffb
run 1573 COVERAGE commit fb7bab9
run 1573 TEST commit fb7bab9
run 1574 COVERAGE commit 1d04641
run 1574 TEST commit 1d04641
run 1575 COVERAGE commit 45f2f3a
run 1575 TEST commit 45f2f3a
run 1576 COVERAGE commit 1aaf1dc
run 1576 TEST commit 1aaf1dc
run 1577 COVERAGE commit 079a67a
run 1577 TEST commit 079a67a
run 1578 COVERAGE commit 64265fd
run 1578 TEST commit 64265fd
run 1579 COVERAGE commit 3a59c36
run 1579 TEST commit 3a59c36
run 1582 COVERAGE commit 8851efd
run 1582 TEST commit 8851efd
run 1585 COVERAGE commit b565ee0
run 1585 TEST commit b565ee0
run 1588 COVERAGE commit c77f85d
run 1588 TEST commit c77f85d
run 1589 COVERAGE commit 53457f6
run 1589 TEST commit 53457f6
run 1593 COVERAGE commit 2bc0c74
run 1593 TEST commit 2bc0c74
run 1602 COVERAGE commit 01635ec
run 1602 TEST commit 01635ec
run 1610 COVERAGE commit 64414a8
run 1610 TEST commit 64414a8
run 1611 COVERAGE commit ad0964f
run 1611 TEST commit ad0964f
run 1612 COVERAGE commit da29694
run 1612 TEST commit da29694
run 1614 COVERAGE commit 2c2b8c3
run 1614 TEST commit 2c2b8c3
run 1615 COVERAGE commit 553cd45
run 1615 TEST commit 553cd45
run 1616 COVERAGE commit 224d66e
run 1616 TEST commit 224d66e
run 1617 COVERAGE commit daba0e3
run 1617 TEST commit daba0e3
run 1618 COVERAGE commit 1648c25
run 1618 TEST commit 1648c25
run 1620 COVERAGE commit c2fe04f
run 1620 TEST commit c2fe04f
run 1621 COVERAGE commit e760906
run 1621 TEST commit e760906
run 1622 COVERAGE commit 6b58486
run 1622 TEST commit 6b58486
run 1623 COVERAGE commit df31d92
run 1623 TEST commit df31d92
run 1624 COVERAGE commit 40f2224
run 1624 TEST commit 40f2224
run 1625 COVERAGE commit 0814742
run 1625 TEST commit 0814742
run 1626 COVERAGE commit 9885f9c
run 1626 TEST commit 9885f9c
run 1628 COVERAGE commit e668e87
run 1628 TEST commit e668e87
run 1630 COVERAGE commit e5838b6
run 1630 TEST commit e5838b6
run 1631 COVERAGE commit 3520ac1
run 1631 TEST commit 3520ac1
run 1633 COVERAGE commit f005cfe
run 1633 TEST commit f005cfe
run 1634 COVERAGE commit f649d81
run 1634 TEST commit f649d81
run 1635 COVERAGE commit 691f2f8
run 1635 TEST commit 691f2f8
run 1636 COVERAGE commit fbba560
run 1636 TEST commit fbba560
run 1637 COVERAGE commit 179a684
run 1637 TEST commit 179a684
run 1638 COVERAGE commit 8dbf02a
run 1638 TEST commit 8dbf02a
run 1639 COVERAGE commit bd7be33
run 1639 TEST commit bd7be33
run 1641 COVERAGE commit 8521dd5
run 1641 TEST commit 8521dd5
run 1642 COVERAGE commit aaa53bb
run 1642 TEST commit aaa53bb
run 1644 COVERAGE commit d1d6cc7
run 1644 TEST commit d1d6cc7
run 1649 COVERAGE commit b6b88c1
run 1649 TEST commit b6b88c1
run 1651 COVERAGE commit 5018a10
run 1651 TEST commit 5018a10
run 1652 COVERAGE commit 7da5c72
run 1652 TEST commit 7da5c72
run 1653 COVERAGE commit 144623b
run 1653 TEST commit 144623b
run 1654 COVERAGE commit 71095f8
run 1654 TEST commit 71095f8
run 1655 COVERAGE commit dfb8b95
run 1655 TEST commit dfb8b95
run 1656 COVERAGE commit 5064fec
run 1656 TEST commit 5064fec
run 1657 COVERAGE commit 825b2b6
run 1657 TEST commit 825b2b6
run 1658 COVERAGE commit 4604f18
run 1658 TEST commit 4604f18
run 1659 COVERAGE commit 751ce4b
run 1659 TEST commit 751ce4b
run 1662 COVERAGE commit ed96778
run 1662 TEST commit ed96778
run 1663 COVERAGE commit e552480
run 1663 TEST commit e552480
run 1664 COVERAGE commit 19b199d
run 1664 TEST commit 19b199d
run 1665 COVERAGE commit 7882c92
run 1665 TEST commit 7882c92
run 1666 COVERAGE commit eb8298c
run 1666 TEST commit eb8298c
run 1667 COVERAGE commit e6a9a73
run 1667 TEST commit e6a9a73
run 1682 COVERAGE commit 07a6698
run 1682 TEST commit 07a6698
run 1692 COVERAGE commit dcf143c
run 1692 TEST commit dcf143c
run 1693 COVERAGE commit 4c03f80
run 1693 TEST commit 4c03f80
run 1694 COVERAGE commit a933b59
run 1694 TEST commit a933b59
run 1695 COVERAGE commit d41c498
run 1695 TEST commit d41c498
run 1696 COVERAGE commit 44ae1fb
run 1696 TEST commit 44ae1fb
run 1697 COVERAGE commit 0797c0d
run 1697 TEST commit 0797c0d
run 1699 COVERAGE commit 6050f6b
run 1699 TEST commit 6050f6b
run 1700 COVERAGE commit 4bdfe9c
run 1700 TEST commit 4bdfe9c
run 1701 COVERAGE commit fb25cd5
run 1701 TEST commit fb25cd5
run 1702 COVERAGE commit 7b07851
run 1702 TEST commit 7b07851
run 1703 COVERAGE commit caa971c
run 1703 TEST commit caa971c
run 1704 COVERAGE commit 66dbb81
run 1704 TEST commit 66dbb81
run 1705 COVERAGE commit ba6969d
run 1705 TEST commit ba6969d
run 1706 COVERAGE commit a9e9e9b
run 1706 TEST commit a9e9e9b
run 1708 COVERAGE commit 16d5cbd
run 1708 TEST commit 16d5cbd
run 1709 COVERAGE commit 9889da7
run 1709 TEST commit 9889da7
run 1710 COVERAGE commit 21f75fd
run 1710 TEST commit 21f75fd
run 1711 COVERAGE commit 418f096
run 1711 TEST commit 418f096
run 1712 COVERAGE commit 9e98ad9
run 1712 TEST commit 9e98ad9
run 1713 COVERAGE commit eb17569
run 1713 TEST commit eb17569
run 1714 COVERAGE commit 33f67fe
run 1714 TEST commit 33f67fe
run 1715 COVERAGE commit 1f0b860
run 1715 TEST commit 1f0b860
run 1717 COVERAGE commit fc1930d
run 1717 TEST commit fc1930d
run 1718 COVERAGE commit fc0791c
run 1718 TEST commit fc0791c
run 1719 COVERAGE commit fddd8c8
run 1719 TEST commit fddd8c8
run 1720 COVERAGE commit d16c4a1
run 1720 TEST commit d16c4a1
run 1722 COVERAGE commit 24aeb39
run 1722 TEST commit 24aeb39
run 1724 COVERAGE commit 0dda227
run 1724 TEST commit 0dda227
run 1725 COVERAGE commit 417670b
run 1725 TEST commit 417670b
run 1726 COVERAGE commit 7cca01c
run 1726 TEST commit 7cca01c
run 1727 COVERAGE commit a05f216
run 1727 TEST commit a05f216
run 1733 COVERAGE commit a63e2e5
run 1733 TEST commit a63e2e5
run 1734 COVERAGE commit fc47eb9
run 1734 TEST commit fc47eb9
run 1735 COVERAGE commit 033ce58
run 1735 TEST commit 033ce58
run 1736 COVERAGE commit 0b26cf0
run 1736 TEST commit 0b26cf0
run 1737 COVERAGE commit 8c96a00
run 1737 TEST commit 8c96a00
run 1738 COVERAGE commit 14d2005
run 1738 TEST commit 14d2005
run 1739 COVERAGE commit df10a9a
run 1739 TEST commit df10a9a
run 1745 COVERAGE commit 04c4014
run 1745 TEST commit 04c4014
run 1746 COVERAGE commit fc5f0f3
run 1746 TEST commit fc5f0f3
run 1747 COVERAGE commit d8ab871
run 1747 TEST commit d8ab871
run 1751 COVERAGE commit 6c21806
run 1751 TEST commit 6c21806
run 1752 COVERAGE commit 10bda45
run 1752 TEST commit 10bda45
run 1753 COVERAGE commit 06cf68a
run 1753 TEST commit 06cf68a
run 1754 COVERAGE commit b8e394b
run 1754 TEST commit b8e394b
run 1756 COVERAGE commit 012684c
run 1756 TEST commit 012684c
run 1757 COVERAGE commit 4b62821
run 1757 TEST commit 4b62821
run 1758 COVERAGE commit cc73699
run 1758 TEST commit cc73699
run 1760 COVERAGE commit 4e1c44c
run 1760 TEST commit 4e1c44c
run 1761 COVERAGE commit 2be7d99
run 1761 TEST commit 2be7d99
run 1762 COVERAGE commit c8246de
run 1762 TEST commit c8246de
run 1763 COVERAGE commit 75e5979
run 1763 TEST commit 75e5979
run 1764 COVERAGE commit 93453db
run 1764 TEST commit 93453db
run 1765 COVERAGE commit c158c93
run 1765 TEST commit c158c93
run 1766 COVERAGE commit f8726ef
run 1766 TEST commit f8726ef
run 1768 COVERAGE commit ad4eac8
run 1768 TEST commit ad4eac8
run 1770 COVERAGE commit b4bad3d
run 1770 TEST commit b4bad3d
run 1771 COVERAGE commit a99c3a9
run 1771 TEST commit a99c3a9
run 1776 COVERAGE commit 750733f
run 1776 TEST commit 750733f
run 1778 COVERAGE commit da3778a
run 1778 TEST commit da3778a
run 1780 COVERAGE commit 9742d8f
run 1780 TEST commit 9742d8f
run 1783 COVERAGE commit 8735646
run 1783 TEST commit 8735646
run 1784 COVERAGE commit cd2ba4e
run 1784 TEST commit cd2ba4e
run 1785 COVERAGE commit f8d6b51
run 1785 TEST commit f8d6b51
run 1786 COVERAGE commit 80a9cd3
run 1786 TEST commit 80a9cd3
run 1787 COVERAGE commit eeb9c89
run 1787 TEST commit eeb9c89
run 1788 COVERAGE commit 00d2cfb
run 1788 TEST commit 00d2cfb
run 1790 COVERAGE commit ee69bf7
run 1790 TEST commit ee69bf7
run 1791 COVERAGE commit 280cb02
run 1791 TEST commit 280cb02
run 1792 COVERAGE commit ac0406b
run 1792 TEST commit ac0406b
run 1793 COVERAGE commit 5b06c92
run 1793 TEST commit 5b06c92
run 1794 COVERAGE commit 39cc932
run 1794 TEST commit 39cc932
run 1795 COVERAGE commit 1ca5589
run 1795 TEST commit 1ca5589
run 1803 COVERAGE commit c31072b
run 1803 TEST commit c31072b
run 1804 COVERAGE commit 02c3b85
run 1804 TEST commit 02c3b85
run 1805 COVERAGE commit 0aa8dfe
run 1805 TEST commit 0aa8dfe
run 1806 COVERAGE commit a5b47eb
run 1806 TEST commit a5b47eb
run 1807 COVERAGE commit e24dc7b
run 1807 TEST commit e24dc7b
run 1808 COVERAGE commit ce31014
run 1808 TEST commit ce31014
run 1810 COVERAGE commit 7c2befd
run 1810 TEST commit 7c2befd
run 1813 COVERAGE commit b0a1576
run 1813 TEST commit b0a1576
run 1814 COVERAGE commit 89a30eb
run 1814 TEST commit 89a30eb
run 1816 COVERAGE commit bebf06b
run 1816 TEST commit bebf06b
run 1817 COVERAGE commit ff88c50
run 1817 TEST commit ff88c50
run 1819 COVERAGE commit 970f59a
run 1819 TEST commit 970f59a
run 1820 COVERAGE commit ff8a90e
run 1820 TEST commit ff8a90e
run 1821 COVERAGE commit cb702f3
run 1821 TEST commit cb702f3
run 1822 COVERAGE commit e643fbc
run 1822 TEST commit e643fbc
run 1823 COVERAGE commit 14265ef
run 1823 TEST commit 14265ef
run 1824 COVERAGE commit be57846
run 1824 TEST commit be57846
run 1825 COVERAGE commit b4a61a1
run 1825 TEST commit b4a61a1
run 1826 COVERAGE commit 1c5686b
run 1826 TEST commit 1c5686b
run 1827 COVERAGE commit 4706668
run 1827 TEST commit 4706668
run 1828 COVERAGE commit d1e55b2
run 1828 TEST commit d1e55b2
run 1829 COVERAGE commit b66098e
run 1829 TEST commit b66098e
run 1830 COVERAGE commit c2a5886
run 1830 TEST commit c2a5886
run 1831 COVERAGE commit 9f35c04
run 1831 TEST commit 9f35c04
run 1832 COVERAGE commit 89e570c
run 1832 TEST commit 89e570c
run 1833 COVERAGE commit 5aa52e1
run 1833 TEST commit 5aa52e1
run 1834 COVERAGE commit 6f22f0a
run 1834 TEST commit 6f22f0a
run 1835 COVERAGE commit f32327f
run 1835 TEST commit f32327f
run 1836 COVERAGE commit 61c9bad
run 1836 TEST commit 61c9bad
run 1837 COVERAGE commit 574d326
run 1837 TEST commit 574d326
run 1838 COVERAGE commit a32f96b
run 1838 TEST commit a32f96b
run 1839 COVERAGE commit 354959e
run 1839 TEST commit 354959e
run 1840 COVERAGE commit a4aad9a
run 1840 TEST commit a4aad9a
run 1841 COVERAGE commit 5f2f271
run 1841 TEST commit 5f2f271
run 1842 COVERAGE commit 9e023db
run 1842 TEST commit 9e023db
run 1843 COVERAGE commit 6764d93
run 1843 TEST commit 6764d93
run 1844 COVERAGE commit d259c03
run 1844 TEST commit d259c03
run 1845 COVERAGE commit 007eab9
run 1845 TEST commit 007eab9
run 1846 COVERAGE commit 174fb58
run 1846 TEST commit 174fb58
run 1847 COVERAGE commit 7b41c2e
run 1847 TEST commit 7b41c2e
run 1848 COVERAGE commit c88cf43
run 1848 TEST commit c88cf43
run 1849 COVERAGE commit 3461a94
run 1849 TEST commit 3461a94
run 1850 COVERAGE commit caa93fa
run 1850 TEST commit caa93fa
run 1851 COVERAGE commit 2917457
run 1851 TEST commit 2917457
run 1852 COVERAGE commit e68123e
run 1852 TEST commit e68123e
run 1853 COVERAGE commit bbd0707
run 1853 TEST commit bbd0707
run 1854 COVERAGE commit b054f42
run 1854 TEST commit b054f42
run 1855 COVERAGE commit add6d62
run 1855 TEST commit add6d62
run 1856 COVERAGE commit f138f00
run 1856 TEST commit f138f00
run 1857 COVERAGE commit c100b13
run 1857 TEST commit c100b13
run 1858 COVERAGE commit bfc9e4f
run 1858 TEST commit bfc9e4f
run 1859 COVERAGE commit 97c1024
run 1859 TEST commit 97c1024
run 1860 COVERAGE commit b748350
run 1860 TEST commit b748350
run 1861 COVERAGE commit 0bb055f
run 1861 TEST commit 0bb055f
run 1862 COVERAGE commit 80fbac1
run 1862 TEST commit 80fbac1
run 1863 COVERAGE commit e748973
run 1863 TEST commit e748973
run 1864 COVERAGE commit 0e786b9
run 1864 TEST commit 0e786b9
run 1865 COVERAGE commit 98f0e1c
run 1865 TEST commit 98f0e1c
run 1866 COVERAGE commit b9dcc93
run 1866 TEST commit b9dcc93
run 1867 COVERAGE commit 465a560
run 1867 TEST commit 465a560
run 1868 COVERAGE commit 176883e
run 1868 TEST commit 176883e
run 1869 COVERAGE commit 15e38e0
run 1869 TEST commit 15e38e0
run 1870 COVERAGE commit 95c7d07
run 1870 TEST commit 95c7d07
run 1871 COVERAGE commit 3919cd6
run 1871 TEST commit 3919cd6
run 1872 COVERAGE commit d323e99
run 1872 TEST commit d323e99
run 1873 COVERAGE commit 33b2fe1
run 1873 TEST commit 33b2fe1
run 1874 COVERAGE commit 870215e
run 1874 TEST commit 870215e
run 1875 COVERAGE commit 856b54c
run 1875 TEST commit 856b54c
run 1876 COVERAGE commit 39d001a
run 1876 TEST commit 39d001a
run 1877 COVERAGE commit c39af3c
run 1877 TEST commit c39af3c
run 1878 COVERAGE commit c55bdaf
run 1878 TEST commit c55bdaf
run 1879 COVERAGE commit 0ed9260
run 1879 TEST commit 0ed9260
run 1880 COVERAGE commit 09136c1
run 1880 TEST commit 09136c1
run 1881 COVERAGE commit c91cc91
run 1881 TEST commit c91cc91
run 1882 COVERAGE commit 00e9ee9
run 1882 TEST commit 00e9ee9
run 1883 COVERAGE commit c8d4232
run 1883 TEST commit c8d4232
run 1884 COVERAGE commit 7719b16
run 1884 TEST commit 7719b16
run 1885 COVERAGE commit 3e4c1c4
run 1885 TEST commit 3e4c1c4
run 1886 COVERAGE commit a9f30f6
run 1886 TEST commit a9f30f6
run 1887 COVERAGE commit 6a12ac6
run 1887 TEST commit 6a12ac6
run 1890 COVERAGE commit 5b48fa6
run 1890 TEST commit 5b48fa6
run 1891 COVERAGE commit 8dbb4e4
run 1891 TEST commit 8dbb4e4
run 1892 COVERAGE commit 420dfd2
run 1892 TEST commit 420dfd2
run 1893 COVERAGE commit 206adb1
run 1893 TEST commit 206adb1
run 1894 COVERAGE commit 780f2f2
run 1894 TEST commit 780f2f2
run 1895 COVERAGE commit 4abf793
run 1895 TEST commit 4abf793
run 1896 COVERAGE commit 05957cc
run 1896 TEST commit 05957cc
run 1898 COVERAGE commit 5d3279a
run 1898 TEST commit 5d3279a
run 1901 COVERAGE commit fdd3981
run 1901 TEST commit fdd3981
run 1902 COVERAGE commit caed0c7
run 1902 TEST commit caed0c7
run 1903 COVERAGE commit a2d2c6f
run 1903 TEST commit a2d2c6f
run 1904 COVERAGE commit 5a1f37e
run 1904 TEST commit 5a1f37e
run 1906 COVERAGE commit 7445110
run 1906 TEST commit 7445110
run 1908 COVERAGE commit 0b9a0ec
run 1908 TEST commit 0b9a0ec
run 1909 COVERAGE commit dce584a
run 1909 TEST commit dce584a
run 1910 COVERAGE commit 805239e
run 1910 TEST commit 805239e
run 1911 COVERAGE commit 60ca41d
run 1911 TEST commit 60ca41d
run 1912 COVERAGE commit 7032c81
run 1912 TEST commit 7032c81
run 1913 COVERAGE commit 4e63907
run 1913 TEST commit 4e63907
run 1915 COVERAGE commit c151a9f
run 1915 TEST commit c151a9f
run 1916 COVERAGE commit 8af7b50
run 1916 TEST commit 8af7b50
run 1918 COVERAGE commit 411f60f
run 1918 TEST commit 411f60f
run 1919 COVERAGE commit a7bc55f
run 1919 TEST commit a7bc55f
run 1920 COVERAGE commit 107788d
run 1920 TEST commit 107788d
run 1921 COVERAGE commit 2789548
run 1921 TEST commit 2789548
run 1922 COVERAGE commit e89ad18
run 1922 TEST commit e89ad18
run 1925 COVERAGE commit 74140f6
run 1925 TEST commit 74140f6
run 1929 COVERAGE commit 27c6981
run 1929 TEST commit 27c6981
run 1931 COVERAGE commit 668ee0a
run 1931 TEST commit 668ee0a
run 1932 COVERAGE commit d912e39
run 1932 TEST commit d912e39
run 1934 COVERAGE commit ba2aea2
run 1934 TEST commit ba2aea2
run 1936 COVERAGE commit 24d88ee
run 1936 TEST commit 24d88ee
run 1940 COVERAGE commit c9426b9
run 1940 TEST commit c9426b9
run 1941 COVERAGE commit 8bc5f3c
run 1941 TEST commit 8bc5f3c
run 1943 COVERAGE commit 5eb56c4
run 1943 TEST commit 5eb56c4
run 1944 COVERAGE commit c1be268
run 1944 TEST commit c1be268
run 1945 COVERAGE commit bf3ac9a
run 1945 TEST commit bf3ac9a
run 1946 COVERAGE commit cf2d49d
run 1946 TEST commit cf2d49d
run 1947 COVERAGE commit 28d0cc8
run 1947 TEST commit 28d0cc8
run 1949 COVERAGE commit 7032c81
run 1949 TEST commit 7032c81
run 1951 COVERAGE commit 9161bab
run 1951 TEST commit 9161bab
run 1952 COVERAGE commit a2a4c8d
run 1952 TEST commit a2a4c8d
run 1954 COVERAGE commit 7cfe7fc
run 1954 TEST commit 7cfe7fc
run 1955 COVERAGE commit 363f133
run 1955 TEST commit 363f133
run 1957 COVERAGE commit 731b895
run 1957 TEST commit 731b895
run 1959 COVERAGE commit 449040b
run 1959 TEST commit 449040b
run 1961 COVERAGE commit 2f1900d
run 1961 TEST commit 2f1900d
run 1962 COVERAGE commit 83baa27
run 1962 TEST commit 83baa27
run 1963 COVERAGE commit b9e123d
run 1963 TEST commit b9e123d
run 1964 COVERAGE commit 145e5b2
run 1964 TEST commit 145e5b2
run 1965 COVERAGE commit 02f424f
run 1965 TEST commit 02f424f
run 1966 COVERAGE commit 3396161
run 1966 TEST commit 3396161
run 1967 COVERAGE commit ee3e1fc
run 1967 TEST commit ee3e1fc
run 1968 COVERAGE commit 420a18d
run 1968 TEST commit 420a18d
run 1969 COVERAGE commit b48e6c9
run 1969 TEST commit b48e6c9
run 1970 COVERAGE commit 0013cd0
run 1970 TEST commit 0013cd0
run 1972 COVERAGE commit d405719
run 1972 TEST commit d405719
run 1973 COVERAGE commit af2032c
run 1973 TEST commit af2032c
run 1974 COVERAGE commit ac1cbb0
run 1974 TEST commit ac1cbb0
run 1975 COVERAGE commit b50ae6d
run 1975 TEST commit b50ae6d
run 1977 COVERAGE commit 312158c
run 1977 TEST commit 312158c
run 1978 COVERAGE commit 9150951
run 1978 TEST commit 9150951
run 1979 COVERAGE commit f61e976
run 1979 TEST commit f61e976
run 1980 COVERAGE commit 4e48e4c
run 1980 TEST commit 4e48e4c
run 1981 COVERAGE commit 49933e5
run 1981 TEST commit 49933e5
run 1982 COVERAGE commit 41e9d04
run 1982 TEST commit 41e9d04
run 1983 COVERAGE commit 1e20a4d
run 1983 TEST commit 1e20a4d
run 1984 COVERAGE commit e229876
run 1984 TEST commit e229876
run 1985 COVERAGE commit 530cb8b
run 1985 TEST commit 530cb8b
run 1986 COVERAGE commit 9a11edf
run 1986 TEST commit 9a11edf
run 1987 COVERAGE commit 1f7cece
run 1987 TEST commit 1f7cece
run 1989 COVERAGE commit 8ec3f7c
run 1989 TEST commit 8ec3f7c
run 1990 COVERAGE commit 75dfd36
run 1990 TEST commit 75dfd36
run 1991 COVERAGE commit a560c6c
run 1991 TEST commit a560c6c
run 1992 COVERAGE commit e495cd9
run 1992 TEST commit e495cd9
run 1993 COVERAGE commit db90b23
run 1993 TEST commit db90b23
run 1994 COVERAGE commit f1028e8
run 1994 TEST commit f1028e8
run 1995 COVERAGE commit c96aa96
run 1995 TEST commit c96aa96
run 1996 COVERAGE commit cf3c3f1
run 1996 TEST commit cf3c3f1
run 1997 COVERAGE commit 0caf9e5
run 1997 TEST commit 0caf9e5
run 1998 COVERAGE commit 8e6878f
run 1998 TEST commit 8e6878f
run 1999 COVERAGE commit 8d39c6c
run 1999 TEST commit 8d39c6c
run 2001 COVERAGE commit 21e2784
run 2001 TEST commit 21e2784
run 2002 COVERAGE commit 768b36a
run 2002 TEST commit 768b36a
run 2003 COVERAGE commit bfa581d
run 2003 TEST commit bfa581d
run 2004 COVERAGE commit 7d58072
run 2004 TEST commit 7d58072
run 2005 COVERAGE commit 43804d3
run 2005 TEST commit 43804d3
run 2006 COVERAGE commit bcef1a8
run 2006 TEST commit bcef1a8
run 2007 COVERAGE commit 7bb1fbd
run 2007 TEST commit 7bb1fbd
run 2008 COVERAGE commit 7f84f1b
run 2008 TEST commit 7f84f1b
run 2009 COVERAGE commit f6ed44d
run 2009 TEST commit f6ed44d
run 2011 COVERAGE commit 544e4b4
run 2011 TEST commit 544e4b4
run 2012 COVERAGE commit 5736222
run 2012 TEST commit 5736222
run 2019 COVERAGE commit 9224f14
run 2019 TEST commit 9224f14
run 2021 COVERAGE commit 4a3e10d
run 2021 TEST commit 4a3e10d
run 2022 COVERAGE commit 00ea01b
run 2022 TEST commit 00ea01b
run 2024 COVERAGE commit acde95b
run 2024 TEST commit acde95b
run 2025 COVERAGE commit c32f2bf
run 2025 TEST commit c32f2bf
run 2026 COVERAGE commit d45df64
run 2026 TEST commit d45df64
run 2027 COVERAGE commit 49fab58
run 2027 TEST commit 49fab58
run 2028 COVERAGE commit bdd49a9
run 2028 TEST commit bdd49a9
run 2029 COVERAGE commit 1fa4177
run 2029 TEST commit 1fa4177
run 2031 COVERAGE commit 97fa29e
run 2031 TEST commit 97fa29e
run 2032 COVERAGE commit 7289b10
run 2032 TEST commit 7289b10
run 2034 COVERAGE commit 63364a8
run 2034 TEST commit 63364a8
run 2035 COVERAGE commit c3efdae
run 2035 TEST commit c3efdae
run 2036 COVERAGE commit 4c79d82
run 2036 TEST commit 4c79d82
run 2037 COVERAGE commit ce28da4
run 2037 TEST commit ce28da4
run 2038 COVERAGE commit 43289b4
run 2038 TEST commit 43289b4
run 2039 COVERAGE commit f407b02
run 2039 TEST commit f407b02
run 2040 COVERAGE commit 794111a
run 2040 TEST commit 794111a
run 2041 COVERAGE commit 86476d2
run 2041 TEST commit 86476d2
run 2043 COVERAGE commit 6dec825
run 2043 TEST commit 6dec825
run 2045 COVERAGE commit e7136fb
run 2045 TEST commit e7136fb
run 2052 COVERAGE commit 3303216
run 2052 TEST commit 3303216
run 2053 COVERAGE commit f987418
run 2053 TEST commit f987418
run 2056 COVERAGE commit 4259403
run 2056 TEST commit 4259403
run 2057 COVERAGE commit dd4cef2
run 2057 TEST commit dd4cef2
run 2059 COVERAGE commit 1b29d97
run 2059 TEST commit 1b29d97
run 2060 COVERAGE commit 058d2ac
run 2060 TEST commit 058d2ac
run 2061 COVERAGE commit a2d1003
run 2061 TEST commit a2d1003
run 2062 COVERAGE commit 71195ac
run 2062 TEST commit 71195ac
run 2063 COVERAGE commit 9aa7911
run 2063 TEST commit 9aa7911
run 2065 COVERAGE commit a9e05fe
run 2065 TEST commit a9e05fe
run 2067 COVERAGE commit b166942
run 2067 TEST commit b166942
run 2068 COVERAGE commit 5f20624
run 2068 TEST commit 5f20624
run 2070 COVERAGE commit c46af03
run 2070 TEST commit c46af03
run 2071 COVERAGE commit e02cf07
run 2071 TEST commit e02cf07
run 2079 COVERAGE commit 0054330
run 2079 TEST commit 0054330
run 2080 COVERAGE commit 0af59e2
run 2080 TEST commit 0af59e2
run 2081 COVERAGE commit 0aee316
run 2081 TEST commit 0aee316
run 2082 COVERAGE commit 4c21a4b
run 2082 TEST commit 4c21a4b
run 2083 COVERAGE commit 44a7ecb
run 2083 TEST commit 44a7ecb
run 2084 COVERAGE commit ab3290e
run 2084 TEST commit ab3290e
run 2085 COVERAGE commit 373fcfc
run 2085 TEST commit 373fcfc
run 2086 COVERAGE commit 41dc10d
run 2086 TEST commit 41dc10d
run 2087 COVERAGE commit 7f3d77f
run 2087 TEST commit 7f3d77f
run 2088 COVERAGE commit 2420743
run 2088 TEST commit 2420743
run 2089 COVERAGE commit adefe88
run 2089 TEST commit adefe88
run 2090 COVERAGE commit ec480d5
run 2090 TEST commit ec480d5
run 2092 COVERAGE commit 20e289c
run 2092 TEST commit 20e289c
run 2093 COVERAGE commit f7bc7c3
run 2093 TEST commit f7bc7c3
run 2094 COVERAGE commit 8d02bcc
run 2094 TEST commit 8d02bcc
run 2095 COVERAGE commit bfe3a53
run 2095 TEST commit bfe3a53
run 2096 COVERAGE commit 0d84847
run 2096 TEST commit 0d84847
run 2097 COVERAGE commit ea45a1d
run 2097 TEST commit ea45a1d
run 2098 COVERAGE commit 8c44fc1
run 2098 TEST commit 8c44fc1
run 2099 COVERAGE commit 2e3c5ad
run 2099 TEST commit 2e3c5ad
run 2100 COVERAGE commit 19a40f9
run 2100 TEST commit 19a40f9
run 2105 COVERAGE commit 139a591
run 2105 TEST commit 139a591
run 2106 COVERAGE commit 8ff143f
run 2106 TEST commit 8ff143f
run 2108 COVERAGE commit ade8d55
run 2108 TEST commit ade8d55
run 2109 COVERAGE commit c2025de
run 2109 TEST commit c2025de
run 2110 COVERAGE commit 317c72f
run 2110 TEST commit 317c72f
run 2111 COVERAGE commit 96601bf
run 2111 TEST commit 96601bf
run 2112 COVERAGE commit 26b540a
run 2112 TEST commit 26b540a
run 2114 COVERAGE commit 6e7c363
run 2114 TEST commit 6e7c363
run 2115 COVERAGE commit e544c47
run 2115 TEST commit e544c47
run 2116 COVERAGE commit f5811e4
run 2116 TEST commit f5811e4
run 2117 COVERAGE commit 5efb2e6
run 2117 TEST commit 5efb2e6
run 2118 COVERAGE commit 7cb8a67
run 2118 TEST commit 7cb8a67
run 2119 COVERAGE commit ac79ff5
run 2119 TEST commit ac79ff5
run 2121 COVERAGE commit 9f35374
run 2121 TEST commit 9f35374
run 2125 COVERAGE commit 651d95e
run 2125 TEST commit 651d95e
run 2128 COVERAGE commit 9f9f127
run 2128 TEST commit 9f9f127
run 2130 COVERAGE commit 72a387f
run 2130 TEST commit 72a387f
run 2131 COVERAGE commit f1b7255
run 2131 TEST commit f1b7255
run 2132 COVERAGE commit d66af80
run 2132 TEST commit d66af80
run 2133 COVERAGE commit f672d72
run 2133 TEST commit f672d72
run 2134 COVERAGE commit 602beb1
run 2134 TEST commit 602beb1
run 2135 COVERAGE commit 2d82c1e
run 2135 TEST commit 2d82c1e
run 2136 COVERAGE commit e1d4805
run 2136 TEST commit e1d4805
run 2137 COVERAGE commit d9d58b4
run 2137 TEST commit d9d58b4
run 2138 COVERAGE commit 97eeccf
run 2138 TEST commit 97eeccf
run 2139 COVERAGE commit d8f2178
run 2139 TEST commit d8f2178
run 2140 COVERAGE commit 815b12d
run 2140 TEST commit 815b12d
run 2141 COVERAGE commit 35cc993
run 2141 TEST commit 35cc993
run 2142 COVERAGE commit 12849af
run 2142 TEST commit 12849af
run 2144 COVERAGE commit a3d438c
run 2144 TEST commit a3d438c
run 2148 COVERAGE commit a187e01
run 2148 TEST commit a187e01
run 2154 COVERAGE commit 8cf7172
run 2154 TEST commit 8cf7172
run 2155 COVERAGE commit ae70d9b
run 2155 TEST commit ae70d9b
run 2160 COVERAGE commit d8ee50b
run 2160 TEST commit d8ee50b
run 2161 COVERAGE commit 5d2fa77
run 2161 TEST commit 5d2fa77
run 2162 COVERAGE commit a48190f
run 2162 TEST commit a48190f
run 2163 COVERAGE commit ace89a5
run 2163 TEST commit ace89a5
run 2165 COVERAGE commit 18db2f7
run 2165 TEST commit 18db2f7
run 2168 COVERAGE commit e17ef9c
run 2168 TEST commit e17ef9c
run 2169 COVERAGE commit 32f6fde
run 2169 TEST commit 32f6fde
run 2170 COVERAGE commit 652ca16
run 2170 TEST commit 652ca16
run 2171 COVERAGE commit a61df3e
run 2171 TEST commit a61df3e
run 2172 COVERAGE commit c1565bb
run 2172 TEST commit c1565bb
run 2173 COVERAGE commit a9e85eb
run 2173 TEST commit a9e85eb
run 2174 COVERAGE commit 7dcf9f4
run 2174 TEST commit 7dcf9f4
run 2175 COVERAGE commit 422b908
run 2175 TEST commit 422b908
run 2176 COVERAGE commit 21c4bc9
run 2176 TEST commit 21c4bc9
run 2177 COVERAGE commit d20f260
run 2177 TEST commit d20f260
run 2180 COVERAGE commit 9c06b95
run 2180 TEST commit 9c06b95
run 2181 COVERAGE commit f592f49
run 2181 TEST commit f592f49
run 2182 COVERAGE commit 19ea2f9
run 2182 TEST commit 19ea2f9
run 2183 COVERAGE commit dcf2793
run 2183 TEST commit dcf2793
run 2184 COVERAGE commit 2cc8349
run 2184 TEST commit 2cc8349
run 2185 COVERAGE commit 0adcd9c
run 2185 TEST commit 0adcd9c
run 2190 COVERAGE commit bf1b6b9
run 2190 TEST commit bf1b6b9
run 2191 COVERAGE commit 7c2f471
run 2191 TEST commit 7c2f471
run 2192 COVERAGE commit 8326c33
run 2192 TEST commit 8326c33
run 2195 COVERAGE commit 9c62281
run 2195 TEST commit 9c62281
run 2196 COVERAGE commit a7b0ee0
run 2196 TEST commit a7b0ee0
run 2197 COVERAGE commit a98eb6f
run 2197 TEST commit a98eb6f
run 2199 COVERAGE commit 6610d1f
run 2199 TEST commit 6610d1f
run 2200 COVERAGE commit 348758b
run 2200 TEST commit 348758b
run 2201 COVERAGE commit a16c49f
run 2201 TEST commit a16c49f
run 2202 COVERAGE commit 10bbd9d
run 2202 TEST commit 10bbd9d
run 2203 COVERAGE commit 366f4f8
run 2203 TEST commit 366f4f8
run 2204 COVERAGE commit f98b83d
run 2204 TEST commit f98b83d
run 2205 COVERAGE commit ec09e72
run 2205 TEST commit ec09e72
run 2206 COVERAGE commit e2167cd
run 2206 TEST commit e2167cd
run 2207 COVERAGE commit ac83ec2
run 2207 TEST commit ac83ec2
run 2208 COVERAGE commit c02a2cf
run 2208 TEST commit c02a2cf
run 2209 COVERAGE commit 255ab18
run 2209 TEST commit 255ab18
run 2210 COVERAGE commit ec02211
run 2210 TEST commit ec02211
run 2214 COVERAGE commit fae20e8
run 2214 TEST commit fae20e8
run 2215 COVERAGE commit 73aa358
run 2215 TEST commit 73aa358
run 2216 COVERAGE commit 462fd86
run 2216 TEST commit 462fd86
run 2217 COVERAGE commit c366264
run 2217 TEST commit c366264
run 2222 COVERAGE commit 7b26ab0
run 2222 TEST commit 7b26ab0
run 2223 COVERAGE commit bb349e7
run 2223 TEST commit bb349e7
run 2224 COVERAGE commit 833d6a8
run 2224 TEST commit 833d6a8
run 2225 COVERAGE commit 905457b
run 2225 TEST commit 905457b
run 2226 COVERAGE commit f3cfcd5
run 2226 TEST commit f3cfcd5
run 2227 COVERAGE commit 5d4e6ea
run 2227 TEST commit 5d4e6ea
run 2228 COVERAGE commit 31a0860
run 2228 TEST commit 31a0860
run 2229 COVERAGE commit eb5ec06
run 2229 TEST commit eb5ec06
run 2230 COVERAGE commit 801301f
run 2230 TEST commit 801301f
run 2232 COVERAGE commit d89ddaa
run 2232 TEST commit d89ddaa
run 2233 COVERAGE commit ca57040
run 2233 TEST commit ca57040
run 2235 COVERAGE commit b1dcd56
run 2235 TEST commit b1dcd56
run 2236 COVERAGE commit a96ff9a
run 2236 TEST commit a96ff9a
run 2237 COVERAGE commit 4067f3e
run 2237 TEST commit 4067f3e
run 2238 COVERAGE commit 99de41e
run 2238 TEST commit 99de41e
run 2239 COVERAGE commit 70f092a
run 2239 TEST commit 70f092a
run 2240 COVERAGE commit 73cc322
run 2240 TEST commit 73cc322
run 2241 COVERAGE commit b05f97d
run 2241 TEST commit b05f97d
run 2242 COVERAGE commit d280cf3
run 2242 TEST commit d280cf3
run 2244 COVERAGE commit 45232d7
run 2244 TEST commit 45232d7
run 2246 COVERAGE commit dbcded1
run 2246 TEST commit dbcded1
run 2247 COVERAGE commit 73b2a08
run 2247 TEST commit 73b2a08
run 2248 COVERAGE commit 9d28f28
run 2248 TEST commit 9d28f28
run 2249 COVERAGE commit ffa0f84
run 2249 TEST commit ffa0f84
run 2251 COVERAGE commit 20bbc4d
run 2251 TEST commit 20bbc4d
run 2252 COVERAGE commit e1ba016
run 2252 TEST commit e1ba016
run 2253 COVERAGE commit 78aa31c
run 2253 TEST commit 78aa31c
run 2254 COVERAGE commit fc4c5ff
run 2254 TEST commit fc4c5ff
run 2255 COVERAGE commit 779af46
run 2255 TEST commit 779af46
run 2256 COVERAGE commit 0788648
run 2256 TEST commit 0788648
run 2257 COVERAGE commit 08b9f0d
run 2257 TEST commit 08b9f0d
run 2258 COVERAGE commit 619fcba
run 2258 TEST commit 619fcba
run 2259 COVERAGE commit 964467a
run 2259 TEST commit 964467a
run 2260 COVERAGE commit 59aa9f0
run 2260 TEST commit 59aa9f0
run 2261 COVERAGE commit 3d67e69
run 2261 TEST commit 3d67e69
run 2262 COVERAGE commit d61c9e6
run 2262 TEST commit d61c9e6
run 2264 COVERAGE commit d434e56
run 2264 TEST commit d434e56
run 2265 COVERAGE commit b108561
run 2265 TEST commit b108561
run 2266 COVERAGE commit eec7bc2
run 2266 TEST commit eec7bc2
run 2267 COVERAGE commit 47aafdd
run 2267 TEST commit 47aafdd
run 2268 COVERAGE commit 01febaf
run 2268 TEST commit 01febaf
run 2269 COVERAGE commit 1712734
run 2269 TEST commit 1712734
run 2270 COVERAGE commit eab83c7
run 2270 TEST commit eab83c7
run 2271 COVERAGE commit 9d8d5b0
run 2271 TEST commit 9d8d5b0
run 2272 COVERAGE commit f8b3bef
run 2272 TEST commit f8b3bef
run 2273 COVERAGE commit 57437cb
run 2273 TEST commit 57437cb
run 2274 COVERAGE commit aa11e02
run 2274 TEST commit aa11e02
run 2276 COVERAGE commit 6208c8a
run 2276 TEST commit 6208c8a
run 2277 COVERAGE commit 07163ce
run 2277 TEST commit 07163ce
run 2278 COVERAGE commit 6fbb605
run 2278 TEST commit 6fbb605
run 2279 COVERAGE commit b98547f
run 2279 TEST commit b98547f
run 2280 COVERAGE commit 5a1eb73
run 2280 TEST commit 5a1eb73
run 2281 COVERAGE commit 7e85aa6
run 2281 TEST commit 7e85aa6
run 2282 COVERAGE commit 418025a
run 2282 TEST commit 418025a
run 2283 COVERAGE commit 3023b3c
run 2283 TEST commit 3023b3c
run 2284 COVERAGE commit 7ecdde9
run 2284 TEST commit 7ecdde9
run 2285 COVERAGE commit ed43cfc
run 2285 TEST commit ed43cfc
run 2286 COVERAGE commit 6ec22a4
run 2286 TEST commit 6ec22a4
run 2287 COVERAGE commit 1834c9d
run 2287 TEST commit 1834c9d
run 2288 COVERAGE commit a86f480
run 2288 TEST commit a86f480
run 2289 COVERAGE commit df44d47
run 2289 TEST commit df44d47
run 2290 COVERAGE commit 0eae800
run 2290 TEST commit 0eae800
run 2291 COVERAGE commit 55fd0c0
run 2291 TEST commit 55fd0c0
run 2292 COVERAGE commit 990730d
run 2292 TEST commit 990730d
run 2293 COVERAGE commit a631872
run 2293 TEST commit a631872
run 2294 COVERAGE commit de89f06
run 2294 TEST commit de89f06
run 2295 COVERAGE commit 3eae068
run 2295 TEST commit 3eae068
run 2297 COVERAGE commit 844e721
run 2297 TEST commit 844e721
run 2299 COVERAGE commit 9e354cd
run 2299 TEST commit 9e354cd
run 2300 COVERAGE commit dcd555d
run 2300 TEST commit dcd555d
run 2301 COVERAGE commit 77918c2
run 2301 TEST commit 77918c2
run 2303 COVERAGE commit 400ab42
run 2303 TEST commit 400ab42
run 2304 COVERAGE commit bce3888
run 2304 TEST commit bce3888
run 2305 COVERAGE commit 42c8bf4
run 2305 TEST commit 42c8bf4
run 2306 COVERAGE commit a0ad7be
run 2306 TEST commit a0ad7be
run 2307 COVERAGE commit 50461fe
run 2307 TEST commit 50461fe
run 2308 COVERAGE commit 8e99cce
run 2308 TEST commit 8e99cce
run 2310 COVERAGE commit ba03519
run 2310 TEST commit ba03519
run 2312 COVERAGE commit a21b169
run 2312 TEST commit a21b169
run 2313 COVERAGE commit 15f02e9
run 2313 TEST commit 15f02e9
run 2316 COVERAGE commit c3c71f0
run 2316 TEST commit c3c71f0
run 2317 COVERAGE commit 83a61d4
run 2317 TEST commit 83a61d4
run 2318 COVERAGE commit 43aa7cb
run 2318 TEST commit 43aa7cb
run 2320 COVERAGE commit 0f6676d
run 2320 TEST commit 0f6676d
run 2328 COVERAGE commit 12a6e3c
run 2328 TEST commit 12a6e3c
run 2329 COVERAGE commit 07972ec
run 2329 TEST commit 07972ec
run 2330 COVERAGE commit eeb8b05
run 2330 TEST commit eeb8b05
run 2350 COVERAGE commit fd84440
run 2350 TEST commit fd84440
run 2351 COVERAGE commit f1eb19e
run 2351 TEST commit f1eb19e
run 2374 COVERAGE commit 9a78d33
run 2374 TEST commit 9a78d33
run 2376 COVERAGE commit 982bdfb
run 2376 TEST commit 982bdfb
run 2377 COVERAGE commit 7c58cc9
run 2377 TEST commit 7c58cc9
run 2378 COVERAGE commit fb2f134
run 2378 TEST commit fb2f134
run 2379 COVERAGE commit 75a149a
run 2379 TEST commit 75a149a
run 2380 COVERAGE commit d05d48f
run 2380 TEST commit d05d48f
run 2381 COVERAGE commit 1391f60
run 2381 TEST commit 1391f60
run 2382 COVERAGE commit 1634bd4
run 2382 TEST commit 1634bd4
run 2383 COVERAGE commit a42efd6
run 2383 TEST commit a42efd6
run 2384 COVERAGE commit 06a7404
run 2384 TEST commit 06a7404
run 2385 COVERAGE commit 9cb953b
run 2385 TEST commit 9cb953b
run 2386 COVERAGE commit 66fa503
run 2386 TEST commit 66fa503
run 2387 COVERAGE commit 62bfc06
run 2387 TEST commit 62bfc06
run 2388 COVERAGE commit aa0dab2
run 2388 TEST commit aa0dab2
run 2389 COVERAGE commit 928ace9
run 2389 TEST commit 928ace9
run 2390 COVERAGE commit ae5ccfd
run 2390 TEST commit ae5ccfd
run 2391 COVERAGE commit c1d6575
run 2391 TEST commit c1d6575
run 2392 COVERAGE commit ce3ddbf
run 2392 TEST commit ce3ddbf
run 2393 COVERAGE commit 5e7f93d
run 2393 TEST commit 5e7f93d
run 2394 COVERAGE commit 84a09ff
run 2394 TEST commit 84a09ff
run 2395 COVERAGE commit e9becfb
run 2395 TEST commit e9becfb
run 2396 COVERAGE commit 0a7b5a2
run 2396 TEST commit 0a7b5a2
run 2397 COVERAGE commit f5cefc6
run 2397 TEST commit f5cefc6
run 2398 COVERAGE commit f44449c
run 2398 TEST commit f44449c
run 2399 COVERAGE commit e4cce9e
run 2399 TEST commit e4cce9e
run 2401 COVERAGE commit 5bd6f75
run 2401 TEST commit 5bd6f75
run 2402 COVERAGE commit 78c3f82
run 2402 TEST commit 78c3f82
run 2403 COVERAGE commit 2448fbb
run 2403 TEST commit 2448fbb
run 2404 COVERAGE commit 7a5d290
run 2404 TEST commit 7a5d290
run 2405 COVERAGE commit 7dfeacb
run 2405 TEST commit 7dfeacb
run 2406 COVERAGE commit f499d7c
run 2406 TEST commit f499d7c
run 2407 COVERAGE commit cfde8ec
run 2407 TEST commit cfde8ec
run 2408 COVERAGE commit f396c08
run 2408 TEST commit f396c08
run 2409 COVERAGE commit 1e90c01
run 2409 TEST commit 1e90c01
run 2410 COVERAGE commit edda3ea
run 2410 TEST commit edda3ea
run 2413 COVERAGE commit 02dd629
run 2413 TEST commit 02dd629
run 2414 COVERAGE commit be72694
run 2414 TEST commit be72694
run 2415 COVERAGE commit bdcbb3b
run 2415 TEST commit bdcbb3b
run 2416 COVERAGE commit 274c04b
run 2416 TEST commit 274c04b
run 2417 COVERAGE commit c23676b
run 2417 TEST commit c23676b
run 2419 COVERAGE commit 7be305c
run 2419 TEST commit 7be305c
run 2422 COVERAGE commit 105e875
run 2422 TEST commit 105e875
run 2424 COVERAGE commit f737a10
run 2424 TEST commit f737a10
run 2425 COVERAGE commit 2a59f0f
run 2425 TEST commit 2a59f0f
run 2426 COVERAGE commit 121d28f
run 2426 TEST commit 121d28f
run 2427 COVERAGE commit 9410452
run 2427 TEST commit 9410452
run 2428 COVERAGE commit a0ab60b
run 2428 TEST commit a0ab60b
run 2431 COVERAGE commit 7893f0b
run 2431 TEST commit 7893f0b
run 2432 COVERAGE commit f9b4e72
run 2432 TEST commit f9b4e72
run 2530 COVERAGE commit 449f579
run 2530 TEST commit 449f579
run 2531 COVERAGE commit 9492383
run 2531 TEST commit 9492383
run 2533 COVERAGE commit 6c8bac1
run 2533 TEST commit 6c8bac1
run 2540 COVERAGE commit 10ed54e
run 2540 TEST commit 10ed54e
run 2547 COVERAGE commit b669436
run 2547 TEST commit b669436
run 2548 COVERAGE commit af087b6
run 2548 TEST commit af087b6
run 2549 COVERAGE commit e5cf677
run 2549 TEST commit e5cf677
run 2550 COVERAGE commit 0b03f2d
run 2550 TEST commit 0b03f2d
run 2551 COVERAGE commit bad6795
run 2551 TEST commit bad6795
run 2561 COVERAGE commit 1967705
run 2561 TEST commit 1967705
run 2562 COVERAGE commit 00a35f3
run 2562 TEST commit 00a35f3
run 2563 COVERAGE commit ef8d9c0
run 2563 TEST commit ef8d9c0
run 2565 COVERAGE commit 15ecf3e
run 2565 TEST commit 15ecf3e
run 2566 COVERAGE commit a8b4612
run 2566 TEST commit a8b4612
run 2583 COVERAGE commit 6da5083
run 2583 TEST commit 6da5083
run 2584 COVERAGE commit 191339a
run 2584 TEST commit 191339a
run 2585 COVERAGE commit 5afb750
run 2585 TEST commit 5afb750
run 2586 COVERAGE commit c8fd30a
run 2586 TEST commit c8fd30a
run 2599 COVERAGE commit 31ac2d7
run 2599 TEST commit 31ac2d7
run 2603 COVERAGE commit 99e3c91
run 2603 TEST commit 99e3c91
run 2604 COVERAGE commit 4c4d984
run 2604 TEST commit 4c4d984
run 2606 COVERAGE commit 0a60db8
run 2606 TEST commit 0a60db8
run 2608 COVERAGE commit 0eedc88
run 2608 TEST commit 0eedc88
run 2609 COVERAGE commit 47f02af
run 2609 TEST commit 47f02af
run 2610 COVERAGE commit cdaff41
run 2610 TEST commit cdaff41
run 2618 COVERAGE commit 6fed01f
run 2618 TEST commit 6fed01f
run 2623 COVERAGE commit e37366c
run 2623 TEST commit e37366c
run 2631 COVERAGE commit 337414c
run 2631 TEST commit 337414c
run 2636 COVERAGE commit ca4a1ca
run 2636 TEST commit ca4a1ca
run 2637 COVERAGE commit cca9488
run 2637 TEST commit cca9488
run 2638 COVERAGE commit de75e08
run 2638 TEST commit de75e08
run 2639 COVERAGE commit 0942c52
run 2639 TEST commit 0942c52
run 2640 COVERAGE commit 2224723
run 2640 TEST commit 2224723
run 2641 COVERAGE commit c70af45
run 2641 TEST commit c70af45
run 2642 COVERAGE commit 77edbd1
run 2642 TEST commit 77edbd1
run 2643 COVERAGE commit fa3a1b5
run 2643 TEST commit fa3a1b5
run 2644 COVERAGE commit cc4e398
run 2644 TEST commit cc4e398
run 2645 COVERAGE commit 1aced8c
run 2645 TEST commit 1aced8c
run 2646 COVERAGE commit 040ccb9
run 2646 TEST commit 040ccb9
run 2647 COVERAGE commit a19f190
run 2647 TEST commit a19f190
run 2648 COVERAGE commit eb56d73
run 2648 TEST commit eb56d73
run 2649 COVERAGE commit 779108b
run 2649 TEST commit 779108b
run 2650 COVERAGE commit 175a64f
run 2650 TEST commit 175a64f
run 2651 COVERAGE commit 016fa2d
run 2651 TEST commit 016fa2d
run 2652 COVERAGE commit cebda98
run 2652 TEST commit cebda98
run 2653 COVERAGE commit 416223b
run 2653 TEST commit 416223b
run 2656 COVERAGE commit b5de26d
run 2656 TEST commit b5de26d
run 2659 COVERAGE commit e0fb4d9
run 2659 TEST commit e0fb4d9
run 2664 COVERAGE commit b0c5ff6
run 2664 TEST commit b0c5ff6
run 2667 COVERAGE commit ace775f
run 2667 TEST commit ace775f
run 2668 COVERAGE commit be46659
run 2668 TEST commit be46659
run 2670 COVERAGE commit 02ea024
run 2670 TEST commit 02ea024
run 2671 COVERAGE commit 842a0d7
run 2671 TEST commit 842a0d7
run 2672 COVERAGE commit 9948258
run 2672 TEST commit 9948258
run 2673 COVERAGE commit fe41d52
run 2673 TEST commit fe41d52
run 2674 COVERAGE commit eee21a0
run 2674 TEST commit eee21a0
run 2676 COVERAGE commit 6b48a47
run 2676 TEST commit 6b48a47
run 2677 COVERAGE commit afaea23
run 2677 TEST commit afaea23
run 2678 COVERAGE commit 42f1b47
run 2678 TEST commit 42f1b47
run 2679 COVERAGE commit 596c666
run 2679 TEST commit 596c666
run 2680 COVERAGE commit ff6ec93
run 2680 TEST commit ff6ec93
run 2681 COVERAGE commit 370b2be
run 2681 TEST commit 370b2be
run 2682 COVERAGE commit 357d91d
run 2682 TEST commit 357d91d
run 2683 COVERAGE commit d783741
run 2683 TEST commit d783741
run 2684 COVERAGE commit 376af3e
run 2684 TEST commit 376af3e
run 2685 COVERAGE commit 3064d72
run 2685 TEST commit 3064d72
run 2686 COVERAGE commit e146534
run 2686 TEST commit e146534
run 2687 COVERAGE commit 132bebe
run 2687 TEST commit 132bebe
run 2688 COVERAGE commit d2db66e
run 2688 TEST commit d2db66e
run 2689 COVERAGE commit a4dc878
run 2689 TEST commit a4dc878
run 2690 COVERAGE commit dbfbad7
run 2690 TEST commit dbfbad7
run 2691 COVERAGE commit e14e285
run 2691 TEST commit e14e285
run 2692 COVERAGE commit d08664f
run 2692 TEST commit d08664f
run 2694 COVERAGE commit c0c4a39
run 2694 TEST commit c0c4a39
run 2695 COVERAGE commit 8a098c7
run 2695 TEST commit 8a098c7
run 2696 COVERAGE commit 29645ca
run 2696 TEST commit 29645ca
run 2697 COVERAGE commit a51ebec
run 2697 TEST commit a51ebec
run 2698 COVERAGE commit 04d3569
run 2698 TEST commit 04d3569
run 2699 COVERAGE commit 4677e59
run 2699 TEST commit 4677e59
run 2700 COVERAGE commit 4abb0a2
run 2700 TEST commit 4abb0a2
run 2701 COVERAGE commit 446349c
run 2701 TEST commit 446349c
run 2704 COVERAGE commit c8b8f24
run 2704 TEST commit c8b8f24
run 2709 COVERAGE commit ae680c3
run 2709 TEST commit ae680c3
run 2711 COVERAGE commit 68683ea
run 2711 TEST commit 68683ea
run 2713 COVERAGE commit 38d1098
run 2713 TEST commit 38d1098
run 2714 COVERAGE commit 7165af9
run 2714 TEST commit 7165af9
run 2715 COVERAGE commit e60a9b7
run 2715 TEST commit e60a9b7
run 2716 COVERAGE commit d63da92
run 2716 TEST commit d63da92
run 2717 COVERAGE commit e9b641e
run 2717 TEST commit e9b641e
run 2719 COVERAGE commit 3cdff13
run 2719 TEST commit 3cdff13
run 2720 COVERAGE commit 18c0d43
run 2720 TEST commit 18c0d43
run 2721 COVERAGE commit 2062a69
run 2721 TEST commit 2062a69
run 2722 COVERAGE commit 2e93b1f
run 2722 TEST commit 2e93b1f
run 2728 COVERAGE commit 54f5b70
run 2728 TEST commit 54f5b70
run 2729 COVERAGE commit 2d408e2
run 2729 TEST commit 2d408e2
run 2730 COVERAGE commit 27ac6eb
run 2730 TEST commit 27ac6eb
run 2731 COVERAGE commit 272a230
run 2731 TEST commit 272a230
run 2732 COVERAGE commit f976d80
run 2732 TEST commit f976d80
run 2733 COVERAGE commit 7cd3669
run 2733 TEST commit 7cd3669
run 2734 COVERAGE commit e7b19e3
run 2734 TEST commit e7b19e3
run 2735 COVERAGE commit 450f551
run 2735 TEST commit 450f551
run 2736 COVERAGE commit 4edf364
run 2736 TEST commit 4edf364
run 2737 COVERAGE commit ee34db3
run 2737 TEST commit ee34db3
run 2738 COVERAGE commit 205f490
run 2738 TEST commit 205f490
run 2740 COVERAGE commit 2618b38
run 2740 TEST commit 2618b38
run 2747 COVERAGE commit e5dfe83
run 2747 TEST commit e5dfe83
run 2748 COVERAGE commit 0fe3270
run 2748 TEST commit 0fe3270
run 2749 COVERAGE commit 98ee1d7
run 2749 TEST commit 98ee1d7
run 2750 COVERAGE commit 889a5cc
run 2750 TEST commit 889a5cc
run 2751 COVERAGE commit e3db6c3
run 2751 TEST commit e3db6c3
run 2752 COVERAGE commit 2cfe85e
run 2752 TEST commit 2cfe85e
run 2754 COVERAGE commit 210fb55
run 2754 TEST commit 210fb55
run 2757 COVERAGE commit 3b0519c
run 2757 TEST commit 3b0519c
run 2758 COVERAGE commit 50ab8c5
run 2758 TEST commit 50ab8c5
run 2759 COVERAGE commit 349027e
run 2759 TEST commit 349027e
run 2762 COVERAGE commit fa777d0
run 2762 TEST commit fa777d0
run 2764 COVERAGE commit 5eaec74
run 2764 TEST commit 5eaec74
run 2765 COVERAGE commit 9f639ba
run 2765 TEST commit 9f639ba
run 2769 COVERAGE commit 2c7b112
run 2769 TEST commit 2c7b112
run 2771 COVERAGE commit a90ef1b
run 2771 TEST commit a90ef1b
run 375 coverage commit 345b503
run 375 test report commit 345b503
run 376 coverage commit 3ea1ef2
run 376 test report commit 3ea1ef2
run 377 coverage commit 3f276e7
run 377 test report commit 3f276e7
run 379 coverage commit f48f764
run 379 test report commit f48f764
run 380 coverage commit 7c7c77a
run 380 test report commit 7c7c77a
run 381 coverage commit 7182dca
run 381 test report commit 7182dca
run 382 coverage 0bc49f3 Update gitea workflows testyml
run 382 test report 0bc49f3 Update gitea workflows testyml
run 383 coverage 4cd06b9 Update gitea workflows testyml
run 383 test report commit: 4cd06b9 message: Update gitea workflows testyml
run 384 coverage commit: c3742b7 with message: Update gitea workflows testyml
run 384 test report commit: c3742b7 with message: Update gitea workflows testyml
run 385 coverage commit: 2097673 with message: Update gitea workflows testyml
run 385 test report commit: 2097673 with message: Update gitea workflows testyml
run 386 coverage commit: 701a153 with message: Update jsontomdpy
run 386 test report commit: 701a153 with message: Update jsontomdpy
run 387 coverage commit: a130ae9 with message: Update gitea workflows testyml
run 387 test report commit: a130ae9 with message: Update gitea workflows testyml
run 388 coverage commit: 7d6439a with message: Update tests testutilsaskyesnopy
run 388 test report commit: 7d6439a with message: Update tests testutilsaskyesnopy
run 390 coverage commit: b4dff8d with message: Update gitea workflows testyml
run 390 test report commit: b4dff8d with message: Update gitea workflows testyml
run 391 coverage commit: 6c821d2 with message: Update gitea workflows testyml
run 391 test report commit: 6c821d2 with message: Update gitea workflows testyml
run 392 COVERAGE FILE commit: 2b2a78e with message: Update gitea workflows testyml
run 392 TEST REPORT commit: 2b2a78e with message: Update gitea workflows testyml
run 396 COVERAGE FILE commit: a83959a with message: Update gitea workflows testyml
run 396 TEST REPORT commit: a83959a with message: Update gitea workflows testyml
run 397 COVERAGE FILE commit: 19b9662 with message: Update jsontomdpy
run 397 TEST REPORT commit: 19b9662 with message: Update jsontomdpy
run 398 COVERAGE FILE commit: 4c4b3d7 with message: Update tests testutilsaskyesnopy
run 398 TEST REPORT commit: 4c4b3d7 with message: Update tests testutilsaskyesnopy
run 399 COVERAGE FILE commit: 8b2fb4a with message: Update jsontomdpy
run 399 TEST REPORT commit: 8b2fb4a with message: Update jsontomdpy
run 400 COVERAGE FILE commit: 0123bef
run 400 TEST REPORT commit: 0123bef
run 401 COVERAGE FILE commit: 19511a0
run 401 TEST REPORT commit: 19511a0
run 402 COVERAGE FILE commit: 2a484f4
run 402 TEST REPORT commit: 2a484f4
run 403 COVERAGE FILE commit: a963c56
run 403 TEST REPORT commit: a963c56
run 404 COVERAGE FILE commit: 9dbf0d4
run 404 TEST REPORT commit: 9dbf0d4
run 405 COVERAGE FILE commit: d362a9e
run 405 TEST REPORT commit: d362a9e
run 407 COVERAGE FILE commit: 78f46cc
run 407 TEST REPORT commit: 78f46cc
run 408 COVERAGE FILE commit: fac5358
run 408 TEST REPORT commit: fac5358
run 409 COVERAGE FILE commit: d0dccb3
run 409 TEST REPORT commit: d0dccb3
run 410 COVERAGE FILE commit: f835078
run 410 TEST REPORT commit: f835078
run 411 COVERAGE FILE commit: d3d4488
run 411 TEST REPORT commit: d3d4488
run 412 COVERAGE FILE commit: 38db9ab
run 412 TEST REPORT commit: 38db9ab
run 414 COVERAGE FILE commit: 71a571d
run 414 TEST REPORT commit: 71a571d
run 415 COVERAGE FILE commit: 077aaf6
run 415 TEST REPORT commit: 077aaf6
run 416 COVERAGE FILE commit: 430729c
run 416 TEST REPORT commit: 430729c
run 417 COVERAGE FILE commit: 34ac73b
run 417 TEST REPORT commit: 34ac73b
run 418 COVERAGE FILE commit: 2baba85
run 418 TEST REPORT commit: 2baba85
run 419 COVERAGE FILE commit: 00fb1df
run 419 TEST REPORT commit: 00fb1df
run 420 COVERAGE FILE commit: fcbcc1f
run 420 TEST REPORT commit: fcbcc1f
run 421 COVERAGE FILE commit: ff593ce
run 421 TEST REPORT commit: ff593ce
run 427 COVERAGE FILE commit: 97025a1
run 427 TEST REPORT commit: 97025a1
run 627 COVERAGE FILE commit: e427861
run 627 TEST REPORT commit: e427861
run 628 COVERAGE FILE commit: 2678aa7
run 628 TEST REPORT commit: 2678aa7
run 633 COVERAGE FILE commit: 718044e
run 633 TEST REPORT commit: 718044e
run 634 COVERAGE FILE commit: 2828006
run 634 TEST REPORT commit: 2828006
run 635 COVERAGE FILE commit: 86b7364
run 635 TEST REPORT commit: 86b7364
run 636 COVERAGE FILE commit: a65ad83
run 636 TEST REPORT commit: a65ad83
run 639 COVERAGE 71e49d7
run 639 TEST REPORT 71e49d7
run 640 COVERAGE 33ea523
run 640 TEST REPORT 33ea523
run 641 COVERAGE commit: 7aea322
run 641 TEST REPORT commit: 7aea322
run 643 COVERAGE commit: b80de26
run 643 TEST REPORT commit: b80de26
run 644 COVERAGE commit: c8c29ef
run 644 TEST REPORT commit: c8c29ef
run 645 COVERAGE commit: 3554406
run 645 TEST REPORT commit: 3554406
run 646 COVERAGE commit: f91a06a
run 646 TEST REPORT commit: f91a06a
run 647 COVERAGE commit: c78c01c
run 647 TEST REPORT commit: c78c01c
run 648 COVERAGE commit: ad8ba48
run 648 TEST REPORT commit: ad8ba48
run 649 commit 44bfa81 COVERAGE
run 649 commit 44bfa81 TEST
run 650 COVERAGE commit e8ccb6b
run 650 TEST commit e8ccb6b
run 651 COVERAGE commit 2e91df2
run 651 TEST commit 2e91df2
run 655 COVERAGE commit 2b89227
run 655 TEST commit 2b89227
run 658 COVERAGE commit 6054c3f
run 658 TEST commit 6054c3f
run 662 COVERAGE commit f94011a
run 662 TEST commit f94011a
run 663 COVERAGE commit 71a0dad
run 663 TEST commit 71a0dad
run 664 COVERAGE commit 528ccd7
run 664 TEST commit 528ccd7
run 665 COVERAGE commit d86224d
run 665 TEST commit d86224d
run 675 COVERAGE commit bf945b8
run 675 TEST commit bf945b8
run 676 COVERAGE commit b2fb7a4
run 676 TEST commit b2fb7a4
run 677 COVERAGE commit 9221c38
run 677 TEST commit 9221c38
Clone
1
run 2399 COVERAGE commit e4cce9e
ci-bot edited this page 2025-08-17 15:03:55 +00:00
Table of Contents
Coverage Report
View CI Run 2399 | Commit e4cce9e
| Name | Stmts | Miss | Cover |
|---|---|---|---|
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 23 | 54% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 13 | 55% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 24 | 48% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 11 | 56% |
| slic/core/task/task.py | 62 | 29 | 53% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 11 | 48% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 12 | 77% |
| slic/utils/ask_yes_no.py | 27 | 3 | 89% |
| slic/utils/channels.py | 17 | 0 | 100% |
| slic/utils/config.py | 5 | 0 | 100% |
| slic/utils/cprint.py | 41 | 1 | 98% |
| slic/utils/dbusnotify.py | 40 | 39 | 2% |
| slic/utils/debug.py | 16 | 0 | 100% |
| slic/utils/dictext.py | 30 | 1 | 97% |
| slic/utils/dotdir.py | 10 | 0 | 100% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 3 | 94% |
| slic/utils/exceptions.py | 22 | 0 | 100% |
| slic/utils/get_adj.py | 17 | 0 | 100% |
| slic/utils/hastyepics.py | 37 | 5 | 86% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 3 | 86% |
| slic/utils/jsonext.py | 24 | 1 | 96% |
| slic/utils/lazypv.py | 12 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 0 | 100% |
| slic/utils/marker.py | 48 | 1 | 98% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 0 | 100% |
| slic/utils/npy.py | 71 | 0 | 100% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 1 | 97% |
| slic/utils/picklio.py | 7 | 0 | 100% |
| slic/utils/printing.py | 77 | 7 | 91% |
| slic/utils/pv.py | 30 | 1 | 97% |
| slic/utils/pvpreload.py | 50 | 0 | 100% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 1 | 99% |
| slic/utils/readable.py | 12 | 0 | 100% |
| slic/utils/registry.py | 33 | 0 | 100% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 3 | 86% |
| slic/utils/run_later.py | 64 | 0 | 100% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 34 | 31% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 0 | 100% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 3 | 89% |
| slic/utils/trinary.py | 4 | 0 | 100% |
| slic/utils/typecast.py | 19 | 0 | 100% |
| slic/utils/utils.py | 17 | 0 | 100% |
| slic/utils/xrange.py | 33 | 15 | 55% |
| TOTAL | 9519 | 6289 | 34% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 21 | 30% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6989 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 30 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9519 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 132 | 101 | 23% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9621 | 7068 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 132 | 79 | 40% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9621 | 7046 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 132 | 85 | 36% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9621 | 7052 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 133 | 79 | 41% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9622 | 7046 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 18 | 10% |
| slic/core/__init__.py | 5 | 4 | 20% |
| slic/core/acquisition/__init__.py | 7 | 6 | 14% |
| slic/core/acquisition/acquisition.py | 56 | 53 | 5% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 6 | 40% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 73 | 3% |
| slic/gui/daqpanels/__init__.py | 6 | 5 | 17% |
| slic/gui/daqpanels/config.py | 98 | 96 | 2% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 14 | 12% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 17 | 29% |
| slic/utils/argfwd.py | 53 | 43 | 19% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 5 | 50% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 28 | 10% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 406 | 406 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 46 | 46 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 10 | 41% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9939 | 9847 | 1% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 7 | 77% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 406 | 370 | 9% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9939 | 7346 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 7 | 77% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 409 | 372 | 9% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9942 | 7348 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 409 | 258 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9942 | 7225 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 422 | 261 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9955 | 7228 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 260 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7227 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 260 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7227 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 380 | 9% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7370 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9950 | 7222 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9520 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9520 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9520 | 6967 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 33 | 28% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9520 | 6990 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 1 | 86% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 14 | 72% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 4 | 91% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9520 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 1 | 86% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 14 | 72% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 4 | 91% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9520 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 1 | 86% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 14 | 72% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 46 | 4 | 91% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9520 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 1 | 86% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 14 | 72% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 4 | 93% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 1 | 86% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 14 | 72% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 4 | 93% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 1 | 86% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 14 | 72% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 4 | 93% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 1 | 86% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 14 | 72% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 4 | 93% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 11 | 78% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6961 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 11 | 78% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6961 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 11 | 78% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6961 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 4 | 92% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6954 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 11 | 78% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6961 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 3 | 94% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6953 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 3 | 94% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6953 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 2 | 96% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6952 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 2 | 96% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6952 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 2 | 96% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6952 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 2 | 96% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6952 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 10 | 80% |
| slic/utils/sendsms.py | 5 | 0 | 100% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6955 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6998 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6998 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6998 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6998 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6998 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6997 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 1 | 97% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 14 | 85% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6932 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 1 | 97% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 14 | 85% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6932 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 1 | 97% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 14 | 85% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6932 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 24 | 35% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 0 | 100% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 0 | 100% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 24 | 35% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 0 | 100% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 0 | 100% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9529 | 9529 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9529 | 9529 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9529 | 9529 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6975 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 3 | 90% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6978 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 3 | 90% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6978 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 7 | 77% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9529 | 6984 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 18 | 10% |
| slic/core/__init__.py | 5 | 4 | 20% |
| slic/core/acquisition/__init__.py | 7 | 6 | 14% |
| slic/core/acquisition/acquisition.py | 56 | 53 | 5% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 6 | 40% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 73 | 3% |
| slic/gui/daqpanels/__init__.py | 6 | 5 | 17% |
| slic/gui/daqpanels/config.py | 98 | 96 | 2% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 14 | 12% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 17 | 29% |
| slic/utils/argfwd.py | 53 | 43 | 19% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 5 | 50% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 32 | 26 | 19% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 10 | 41% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9530 | 9426 | 1% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 18 | 10% |
| slic/core/__init__.py | 5 | 4 | 20% |
| slic/core/acquisition/__init__.py | 7 | 6 | 14% |
| slic/core/acquisition/acquisition.py | 56 | 53 | 5% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 6 | 40% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 73 | 3% |
| slic/gui/daqpanels/__init__.py | 6 | 5 | 17% |
| slic/gui/daqpanels/config.py | 98 | 96 | 2% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 14 | 12% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 17 | 29% |
| slic/utils/argfwd.py | 53 | 43 | 19% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 5 | 50% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 32 | 26 | 19% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 10 | 41% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9530 | 9426 | 1% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 18 | 10% |
| slic/core/__init__.py | 5 | 4 | 20% |
| slic/core/acquisition/__init__.py | 7 | 6 | 14% |
| slic/core/acquisition/acquisition.py | 56 | 53 | 5% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 6 | 40% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 73 | 3% |
| slic/gui/daqpanels/__init__.py | 6 | 5 | 17% |
| slic/gui/daqpanels/config.py | 98 | 96 | 2% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 14 | 12% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 17 | 29% |
| slic/utils/argfwd.py | 53 | 43 | 19% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 5 | 50% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 32 | 26 | 19% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 10 | 41% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9530 | 9426 | 1% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 417 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9960 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 7 | 78% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 381 | 9% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7365 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 258 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7233 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 258 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7233 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 255 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7230 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 258 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7233 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 261 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7236 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 261 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7236 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 261 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7236 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 261 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7236 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 261 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7236 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 259 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7234 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 259 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7234 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 264 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7239 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 266 | 36% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7241 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 266 | 36% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7241 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 266 | 36% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7241 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 266 | 36% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7241 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 418 | 266 | 36% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9961 | 7241 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 274 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7249 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 278 | 37% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7253 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 275 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7250 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 271 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7246 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 271 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7246 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 271 | 39% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7246 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 273 | 38% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7248 | 27% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 262 | 41% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7237 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 262 | 41% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7237 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 262 | 41% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7237 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 262 | 41% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7237 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 12 | 62% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 248 | 44% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7235 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 213 | 52% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7188 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 222 | 50% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7197 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 222 | 50% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7197 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 32 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 222 | 50% |
| slic/utils/logbook_exceptions.py | 13 | 0 | 100% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9985 | 7197 | 28% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7430 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 0 | 100% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 19 | 37% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7430 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 11 | 48% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 39 | 2% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7470 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 11 | 48% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 39 | 2% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7470 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 25 | 38% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7454 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 24 | 40% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7453 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 23 | 42% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7452 | 25% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | -----: |
| slic/__init__.py | 20 | 20 | 0% |
| slic/core/__init__.py | 5 | 5 | 0% |
| slic/core/acquisition/__init__.py | 7 | 7 | 0% |
| slic/core/acquisition/acquisition.py | 56 | 56 | 0% |
| slic/core/acquisition/baseacquisition.py | 5 | 5 | 0% |
| slic/core/acquisition/broker/__init__.py | 2 | 2 | 0% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 104 | 0% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 102 | 0% |
| slic/core/acquisition/broker/pedestal.py | 66 | 66 | 0% |
| slic/core/acquisition/broker/pids.py | 17 | 17 | 0% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 77 | 0% |
| slic/core/acquisition/broker/restapi.py | 147 | 147 | 0% |
| slic/core/acquisition/broker/tools.py | 52 | 52 | 0% |
| slic/core/acquisition/bsacquisition.py | 10 | 10 | 0% |
| slic/core/acquisition/bschannels.py | 30 | 30 | 0% |
| slic/core/acquisition/channels.py | 51 | 51 | 0% |
| slic/core/acquisition/dbacquisition.py | 19 | 19 | 0% |
| slic/core/acquisition/detcfg.py | 82 | 82 | 0% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 76 | 0% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 60 | 0% |
| slic/core/acquisition/pvchannels.py | 13 | 13 | 0% |
| slic/core/acquisition/sfacquisition.py | 159 | 159 | 0% |
| slic/core/acquisition/sfpaths.py | 23 | 23 | 0% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 11 | 0% |
| slic/core/adjustable/adjustable.py | 50 | 50 | 0% |
| slic/core/adjustable/baseadjustable.py | 28 | 28 | 0% |
| slic/core/adjustable/collection.py | 22 | 22 | 0% |
| slic/core/adjustable/combined.py | 15 | 15 | 0% |
| slic/core/adjustable/convenience.py | 35 | 35 | 0% |
| slic/core/adjustable/converted.py | 16 | 16 | 0% |
| slic/core/adjustable/dummyadjustable.py | 41 | 41 | 0% |
| slic/core/adjustable/error.py | 2 | 2 | 0% |
| slic/core/adjustable/genericadjustable.py | 32 | 32 | 0% |
| slic/core/adjustable/limited.py | 29 | 29 | 0% |
| slic/core/adjustable/linked.py | 22 | 22 | 0% |
| slic/core/adjustable/pvadjustable.py | 119 | 119 | 0% |
| slic/core/adjustable/pvchangemon.py | 77 | 77 | 0% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 38 | 0% |
| slic/core/adjustable/scaler.py | 22 | 22 | 0% |
| slic/core/condition/__init__.py | 2 | 2 | 0% |
| slic/core/condition/basecondition.py | 8 | 8 | 0% |
| slic/core/condition/condition.py | 107 | 107 | 0% |
| slic/core/condition/pvcondition.py | 21 | 21 | 0% |
| slic/core/condition/valuecondition.py | 22 | 22 | 0% |
| slic/core/device/__init__.py | 2 | 2 | 0% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 2 | 0% |
| slic/core/device/device.py | 46 | 46 | 0% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 6 | 0% |
| slic/core/scanner/__init__.py | 1 | 1 | 0% |
| slic/core/scanner/runname.py | 36 | 36 | 0% |
| slic/core/scanner/scanbackend.py | 232 | 232 | 0% |
| slic/core/scanner/scaninfo.py | 45 | 45 | 0% |
| slic/core/scanner/scanner.py | 136 | 136 | 0% |
| slic/core/sensor/__init__.py | 8 | 8 | 0% |
| slic/core/sensor/basesensor.py | 12 | 12 | 0% |
| slic/core/sensor/bscombined.py | 9 | 9 | 0% |
| slic/core/sensor/bsmonitor.py | 102 | 102 | 0% |
| slic/core/sensor/bsnorm.py | 12 | 12 | 0% |
| slic/core/sensor/bssensor.py | 6 | 6 | 0% |
| slic/core/sensor/combined.py | 31 | 31 | 0% |
| slic/core/sensor/monitor.py | 62 | 62 | 0% |
| slic/core/sensor/norm.py | 9 | 9 | 0% |
| slic/core/sensor/pvsensor.py | 32 | 32 | 0% |
| slic/core/sensor/remoteplot.py | 15 | 15 | 0% |
| slic/core/sensor/sensor.py | 60 | 60 | 0% |
| slic/core/task/__init__.py | 4 | 4 | 0% |
| slic/core/task/basetask.py | 11 | 11 | 0% |
| slic/core/task/daqtask.py | 23 | 23 | 0% |
| slic/core/task/loop.py | 57 | 57 | 0% |
| slic/core/task/producer.py | 25 | 25 | 0% |
| slic/core/task/task.py | 62 | 62 | 0% |
| slic/devices/__init__.py | 7 | 7 | 0% |
| slic/devices/cameras/__init__.py | 4 | 4 | 0% |
| slic/devices/cameras/basler.py | 8 | 8 | 0% |
| slic/devices/cameras/camera_bs.py | 13 | 13 | 0% |
| slic/devices/cameras/camera_ca.py | 34 | 34 | 0% |
| slic/devices/cameras/camerabase.py | 17 | 17 | 0% |
| slic/devices/cameras/screenpanel.py | 31 | 31 | 0% |
| slic/devices/endstations/__init__.py | 3 | 3 | 0% |
| slic/devices/endstations/alvra_flex.py | 10 | 10 | 0% |
| slic/devices/endstations/alvra_huber.py | 8 | 8 | 0% |
| slic/devices/endstations/alvra_prime.py | 48 | 48 | 0% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 4 | 0% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 57 | 0% |
| slic/devices/general/detectors/__init__.py | 2 | 2 | 0% |
| slic/devices/general/detectors/buffer.py | 66 | 66 | 0% |
| slic/devices/general/detectors/digitizer.py | 13 | 13 | 0% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 33 | 0% |
| slic/devices/general/detectors/timer.py | 15 | 15 | 0% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 128 | 0% |
| slic/devices/general/shutter.py | 22 | 22 | 0% |
| slic/devices/general/shutterctx.py | 18 | 18 | 0% |
| slic/devices/general/smaract.py | 169 | 169 | 0% |
| slic/devices/loptics/__init__.py | 2 | 2 | 0% |
| slic/devices/loptics/alvra_explaser.py | 29 | 29 | 0% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 22 | 0% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 253 | 0% |
| slic/devices/xdiagnostics/__init__.py | 2 | 2 | 0% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 124 | 0% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 19 | 0% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 7 | 0% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 96 | 0% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 23 | 0% |
| slic/devices/xoptics/dcm.py | 211 | 211 | 0% |
| slic/devices/xoptics/kb.py | 30 | 30 | 0% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 9 | 0% |
| slic/devices/xoptics/pulsepicker.py | 56 | 56 | 0% |
| slic/devices/xoptics/slits/__init__.py | 5 | 5 | 0% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 66 | 0% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 12 | 0% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 14 | 0% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 7 | 0% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 8 | 0% |
| slic/gui/__init__.py | 1 | 1 | 0% |
| slic/gui/daqframe.py | 75 | 75 | 0% |
| slic/gui/daqpanels/__init__.py | 6 | 6 | 0% |
| slic/gui/daqpanels/config.py | 98 | 98 | 0% |
| slic/gui/daqpanels/goto.py | 92 | 92 | 0% |
| slic/gui/daqpanels/run.py | 56 | 56 | 0% |
| slic/gui/daqpanels/scan2d.py | 77 | 77 | 0% |
| slic/gui/daqpanels/scan.py | 63 | 63 | 0% |
| slic/gui/daqpanels/sfx.py | 77 | 77 | 0% |
| slic/gui/daqpanels/special.py | 63 | 63 | 0% |
| slic/gui/daqpanels/static.py | 46 | 46 | 0% |
| slic/gui/daqpanels/tools.py | 140 | 140 | 0% |
| slic/gui/daqpanels/tweak.py | 149 | 149 | 0% |
| slic/gui/gui.py | 16 | 16 | 0% |
| slic/gui/icon.py | 8 | 8 | 0% |
| slic/gui/persist.py | 68 | 68 | 0% |
| slic/gui/widgets/__init__.py | 11 | 11 | 0% |
| slic/gui/widgets/alarm.py | 21 | 21 | 0% |
| slic/gui/widgets/alternative.py | 51 | 51 | 0% |
| slic/gui/widgets/boxes.py | 33 | 33 | 0% |
| slic/gui/widgets/checkbox.py | 8 | 8 | 0% |
| slic/gui/widgets/completers.py | 27 | 27 | 0% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 253 | 0% |
| slic/gui/widgets/exc2warn.py | 15 | 15 | 0% |
| slic/gui/widgets/fname.py | 60 | 60 | 0% |
| slic/gui/widgets/jfcfg.py | 290 | 290 | 0% |
| slic/gui/widgets/jfmodcoords.py | 88 | 88 | 0% |
| slic/gui/widgets/labeled.py | 19 | 19 | 0% |
| slic/gui/widgets/lists.py | 96 | 96 | 0% |
| slic/gui/widgets/mods.py | 25 | 25 | 0% |
| slic/gui/widgets/nope.py | 26 | 26 | 0% |
| slic/gui/widgets/plotting.py | 68 | 68 | 0% |
| slic/gui/widgets/tools.py | 11 | 11 | 0% |
| slic/gui/widgets/twobuttons.py | 43 | 43 | 0% |
| slic/gui/wxdebug.py | 15 | 15 | 0% |
| slic/utils/__init__.py | 24 | 24 | 0% |
| slic/utils/argfwd.py | 53 | 53 | 0% |
| slic/utils/ask_yes_no.py | 27 | 27 | 0% |
| slic/utils/channels.py | 17 | 17 | 0% |
| slic/utils/config.py | 5 | 5 | 0% |
| slic/utils/cprint.py | 41 | 41 | 0% |
| slic/utils/dbusnotify.py | 40 | 40 | 0% |
| slic/utils/debug.py | 16 | 16 | 0% |
| slic/utils/dictext.py | 30 | 30 | 0% |
| slic/utils/dotdir.py | 10 | 10 | 0% |
| slic/utils/duo.py | 77 | 77 | 0% |
| slic/utils/elog.py | 31 | 31 | 0% |
| slic/utils/eval.py | 49 | 49 | 0% |
| slic/utils/exceptions.py | 22 | 22 | 0% |
| slic/utils/get_adj.py | 17 | 17 | 0% |
| slic/utils/hastyepics.py | 37 | 37 | 0% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 22 | 0% |
| slic/utils/jsonext.py | 24 | 24 | 0% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 52 | 0% |
| slic/utils/logign.py | 22 | 22 | 0% |
| slic/utils/marker.py | 48 | 48 | 0% |
| slic/utils/metaclasses.py | 8 | 8 | 0% |
| slic/utils/namespace.py | 5 | 5 | 0% |
| slic/utils/npy.py | 71 | 71 | 0% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 32 | 0% |
| slic/utils/picklio.py | 7 | 7 | 0% |
| slic/utils/printing.py | 77 | 77 | 0% |
| slic/utils/pv.py | 30 | 30 | 0% |
| slic/utils/pvpreload.py | 50 | 50 | 0% |
| slic/utils/pyepics.py | 64 | 64 | 0% |
| slic/utils/rangebar.py | 92 | 92 | 0% |
| slic/utils/readable.py | 12 | 12 | 0% |
| slic/utils/registry.py | 33 | 33 | 0% |
| slic/utils/reprate.py | 55 | 55 | 0% |
| slic/utils/richcfg.py | 21 | 21 | 0% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 30 | 0% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 38 | 0% |
| slic/utils/snapshot.py | 6 | 6 | 0% |
| slic/utils/termtitle.py | 3 | 3 | 0% |
| slic/utils/tqdm_mod.py | 28 | 28 | 0% |
| slic/utils/trinary.py | 4 | 4 | 0% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 17 | 0% |
| slic/utils/xrange.py | 33 | 33 | 0% |
| TOTAL | 9984 | 9984 | 0% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 0 | 100% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7429 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 0 | 100% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7429 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 4 | 50% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 9 | 57% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 0 | 100% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7429 | 26% |
| Name | Stmts | Miss | Cover |
| ----------------------------------------------- | -------: | -------: | ------: |
| slic/__init__.py | 20 | 2 | 90% |
| slic/core/__init__.py | 5 | 0 | 100% |
| slic/core/acquisition/__init__.py | 7 | 0 | 100% |
| slic/core/acquisition/acquisition.py | 56 | 42 | 25% |
| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% |
| slic/core/acquisition/broker/__init__.py | 2 | 0 | 100% |
| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% |
| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% |
| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% |
| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% |
| slic/core/acquisition/broker/post_retrieve.py | 120 | 120 | 0% |
| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% |
| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% |
| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% |
| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% |
| slic/core/acquisition/bschannels.py | 30 | 19 | 37% |
| slic/core/acquisition/channels.py | 51 | 30 | 41% |
| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% |
| slic/core/acquisition/detcfg.py | 82 | 35 | 57% |
| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% |
| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% |
| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% |
| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% |
| slic/core/acquisition/pedestals.py | 69 | 69 | 0% |
| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% |
| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% |
| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% |
| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% |
| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% |
| slic/core/adjustable/__init__.py | 11 | 0 | 100% |
| slic/core/adjustable/adjustable.py | 50 | 30 | 40% |
| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% |
| slic/core/adjustable/collection.py | 22 | 14 | 36% |
| slic/core/adjustable/combined.py | 15 | 8 | 47% |
| slic/core/adjustable/convenience.py | 35 | 20 | 43% |
| slic/core/adjustable/converted.py | 16 | 10 | 38% |
| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% |
| slic/core/adjustable/error.py | 2 | 0 | 100% |
| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% |
| slic/core/adjustable/limited.py | 29 | 18 | 38% |
| slic/core/adjustable/linked.py | 22 | 15 | 32% |
| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% |
| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% |
| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% |
| slic/core/adjustable/scaler.py | 22 | 16 | 27% |
| slic/core/condition/__init__.py | 2 | 0 | 100% |
| slic/core/condition/basecondition.py | 8 | 2 | 75% |
| slic/core/condition/condition.py | 107 | 79 | 26% |
| slic/core/condition/pvcondition.py | 21 | 12 | 43% |
| slic/core/condition/valuecondition.py | 22 | 15 | 32% |
| slic/core/device/__init__.py | 2 | 0 | 100% |
| slic/core/device/auto.py | 12 | 12 | 0% |
| slic/core/device/basedevice.py | 2 | 0 | 100% |
| slic/core/device/device.py | 46 | 35 | 24% |
| slic/core/device/filtered.py | 23 | 23 | 0% |
| slic/core/device/simpledevice.py | 6 | 2 | 67% |
| slic/core/scanner/__init__.py | 1 | 0 | 100% |
| slic/core/scanner/runname.py | 36 | 23 | 36% |
| slic/core/scanner/scanbackend.py | 232 | 197 | 15% |
| slic/core/scanner/scaninfo.py | 45 | 35 | 22% |
| slic/core/scanner/scanner.py | 136 | 89 | 35% |
| slic/core/sensor/__init__.py | 8 | 0 | 100% |
| slic/core/sensor/basesensor.py | 12 | 3 | 75% |
| slic/core/sensor/bscombined.py | 9 | 5 | 44% |
| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% |
| slic/core/sensor/bsnorm.py | 12 | 7 | 42% |
| slic/core/sensor/bssensor.py | 6 | 2 | 67% |
| slic/core/sensor/combined.py | 31 | 20 | 35% |
| slic/core/sensor/monitor.py | 62 | 51 | 18% |
| slic/core/sensor/norm.py | 9 | 5 | 44% |
| slic/core/sensor/pvsensor.py | 32 | 20 | 38% |
| slic/core/sensor/remoteplot.py | 15 | 10 | 33% |
| slic/core/sensor/sensor.py | 60 | 42 | 30% |
| slic/core/task/__init__.py | 4 | 0 | 100% |
| slic/core/task/basetask.py | 11 | 3 | 73% |
| slic/core/task/daqtask.py | 23 | 16 | 30% |
| slic/core/task/loop.py | 57 | 40 | 30% |
| slic/core/task/producer.py | 25 | 18 | 28% |
| slic/core/task/task.py | 62 | 46 | 26% |
| slic/devices/__init__.py | 7 | 0 | 100% |
| slic/devices/cameras/__init__.py | 4 | 0 | 100% |
| slic/devices/cameras/basler.py | 8 | 4 | 50% |
| slic/devices/cameras/camera_bs.py | 13 | 8 | 38% |
| slic/devices/cameras/camera_ca.py | 34 | 19 | 44% |
| slic/devices/cameras/camerabase.py | 17 | 12 | 29% |
| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% |
| slic/devices/endstations/__init__.py | 3 | 0 | 100% |
| slic/devices/endstations/alvra_flex.py | 10 | 5 | 50% |
| slic/devices/endstations/alvra_huber.py | 8 | 4 | 50% |
| slic/devices/endstations/alvra_prime.py | 48 | 34 | 29% |
| slic/devices/endstations/alvra_xtg.py | 8 | 8 | 0% |
| slic/devices/endstations/bernina_cameras.py | 33 | 33 | 0% |
| slic/devices/endstations/bernina_platform.py | 46 | 46 | 0% |
| slic/devices/general/__init__.py | 4 | 0 | 100% |
| slic/devices/general/delay_compensation.py | 13 | 13 | 0% |
| slic/devices/general/delay_stage.py | 57 | 30 | 47% |
| slic/devices/general/detectors/__init__.py | 2 | 0 | 100% |
| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% |
| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% |
| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% |
| slic/devices/general/detectors/timer.py | 15 | 9 | 40% |
| slic/devices/general/micosstage.py | 7 | 7 | 0% |
| slic/devices/general/motor.py | 128 | 88 | 31% |
| slic/devices/general/shutter.py | 22 | 12 | 45% |
| slic/devices/general/shutterctx.py | 18 | 7 | 61% |
| slic/devices/general/smaract.py | 169 | 125 | 26% |
| slic/devices/loptics/__init__.py | 2 | 0 | 100% |
| slic/devices/loptics/alvra_explaser.py | 29 | 21 | 28% |
| slic/devices/loptics/bernina_explaser.py | 28 | 28 | 0% |
| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% |
| slic/devices/timing/__init__.py | 0 | 0 | 100% |
| slic/devices/timing/events/__init__.py | 3 | 3 | 0% |
| slic/devices/timing/events/codes.py | 5 | 5 | 0% |
| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% |
| slic/devices/timing/events/evr.py | 37 | 37 | 0% |
| slic/devices/timing/events/tma.py | 40 | 40 | 0% |
| slic/devices/timing/lasertiming.py | 253 | 184 | 27% |
| slic/devices/xdiagnostics/__init__.py | 2 | 0 | 100% |
| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% |
| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% |
| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% |
| slic/devices/xoptics/__init__.py | 7 | 0 | 100% |
| slic/devices/xoptics/aramis_attenuator.py | 96 | 66 | 31% |
| slic/devices/xoptics/aramis_reflaser.py | 23 | 15 | 35% |
| slic/devices/xoptics/dcm.py | 211 | 162 | 23% |
| slic/devices/xoptics/kb.py | 30 | 18 | 40% |
| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% |
| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% |
| slic/devices/xoptics/slits/__init__.py | 5 | 0 | 100% |
| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% |
| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% |
| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% |
| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% |
| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% |
| slic/gui/__init__.py | 1 | 0 | 100% |
| slic/gui/daqframe.py | 75 | 54 | 28% |
| slic/gui/daqpanels/__init__.py | 6 | 0 | 100% |
| slic/gui/daqpanels/config.py | 98 | 80 | 18% |
| slic/gui/daqpanels/goto.py | 92 | 76 | 17% |
| slic/gui/daqpanels/run.py | 56 | 46 | 18% |
| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% |
| slic/gui/daqpanels/scan.py | 63 | 54 | 14% |
| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% |
| slic/gui/daqpanels/special.py | 63 | 54 | 14% |
| slic/gui/daqpanels/static.py | 46 | 37 | 20% |
| slic/gui/daqpanels/tools.py | 140 | 114 | 19% |
| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% |
| slic/gui/gui.py | 16 | 10 | 38% |
| slic/gui/icon.py | 8 | 2 | 75% |
| slic/gui/persist.py | 68 | 48 | 29% |
| slic/gui/widgets/__init__.py | 11 | 0 | 100% |
| slic/gui/widgets/alarm.py | 21 | 11 | 48% |
| slic/gui/widgets/alternative.py | 51 | 40 | 22% |
| slic/gui/widgets/boxes.py | 33 | 26 | 21% |
| slic/gui/widgets/checkbox.py | 8 | 4 | 50% |
| slic/gui/widgets/completers.py | 27 | 19 | 30% |
| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% |
| slic/gui/widgets/entries.py | 253 | 195 | 23% |
| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% |
| slic/gui/widgets/fname.py | 60 | 47 | 22% |
| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% |
| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% |
| slic/gui/widgets/labeled.py | 19 | 7 | 63% |
| slic/gui/widgets/lists.py | 96 | 73 | 24% |
| slic/gui/widgets/mods.py | 25 | 17 | 32% |
| slic/gui/widgets/nope.py | 26 | 19 | 27% |
| slic/gui/widgets/plotting.py | 68 | 47 | 31% |
| slic/gui/widgets/tools.py | 11 | 7 | 36% |
| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% |
| slic/gui/wxdebug.py | 15 | 7 | 53% |
| slic/utils/__init__.py | 24 | 0 | 100% |
| slic/utils/argfwd.py | 53 | 14 | 74% |
| slic/utils/ask_yes_no.py | 27 | 20 | 26% |
| slic/utils/channels.py | 17 | 12 | 29% |
| slic/utils/config.py | 5 | 2 | 60% |
| slic/utils/cprint.py | 41 | 16 | 61% |
| slic/utils/dbusnotify.py | 40 | 0 | 100% |
| slic/utils/debug.py | 16 | 12 | 25% |
| slic/utils/dictext.py | 30 | 19 | 37% |
| slic/utils/dotdir.py | 10 | 1 | 90% |
| slic/utils/duo.py | 77 | 45 | 42% |
| slic/utils/elog.py | 31 | 21 | 32% |
| slic/utils/eval.py | 49 | 37 | 24% |
| slic/utils/exceptions.py | 22 | 14 | 36% |
| slic/utils/get_adj.py | 17 | 11 | 35% |
| slic/utils/hastyepics.py | 37 | 25 | 32% |
| slic/utils/ioc/__init__.py | 1 | 1 | 0% |
| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% |
| slic/utils/ioc/ioc.py | 63 | 63 | 0% |
| slic/utils/ipy.py | 22 | 15 | 32% |
| slic/utils/jsonext.py | 24 | 16 | 33% |
| slic/utils/lazypv.py | 12 | 12 | 0% |
| slic/utils/logbook.py | 442 | 442 | 0% |
| slic/utils/logbook_exceptions.py | 13 | 13 | 0% |
| slic/utils/logcfg.py | 52 | 2 | 96% |
| slic/utils/logign.py | 22 | 14 | 36% |
| slic/utils/marker.py | 48 | 31 | 35% |
| slic/utils/metaclasses.py | 8 | 0 | 100% |
| slic/utils/namespace.py | 5 | 1 | 80% |
| slic/utils/npy.py | 71 | 56 | 21% |
| slic/utils/opmsg.py | 122 | 122 | 0% |
| slic/utils/path.py | 32 | 24 | 25% |
| slic/utils/picklio.py | 7 | 3 | 57% |
| slic/utils/printing.py | 77 | 61 | 21% |
| slic/utils/pv.py | 30 | 20 | 33% |
| slic/utils/pvpreload.py | 50 | 19 | 62% |
| slic/utils/pyepics.py | 64 | 39 | 39% |
| slic/utils/rangebar.py | 92 | 61 | 34% |
| slic/utils/readable.py | 12 | 9 | 25% |
| slic/utils/registry.py | 33 | 19 | 42% |
| slic/utils/reprate.py | 55 | 42 | 24% |
| slic/utils/richcfg.py | 21 | 11 | 48% |
| slic/utils/run_later.py | 64 | 64 | 0% |
| slic/utils/screenshot.py | 30 | 21 | 30% |
| slic/utils/sendmail.py | 49 | 49 | 0% |
| slic/utils/sendsms.py | 5 | 5 | 0% |
| slic/utils/shortcut.py | 38 | 20 | 47% |
| slic/utils/snapshot.py | 6 | 3 | 50% |
| slic/utils/termtitle.py | 3 | 0 | 100% |
| slic/utils/tqdm_mod.py | 28 | 18 | 36% |
| slic/utils/trinary.py | 4 | 2 | 50% |
| slic/utils/typecast.py | 19 | 19 | 0% |
| slic/utils/utils.py | 17 | 8 | 53% |
| slic/utils/xrange.py | 33 | 30 | 9% |
| TOTAL | 9984 | 7429 | 26% |