update deps (#6973)

* update web deps

* update python deps
This commit is contained in:
Blake Blackshear 2023-07-01 07:47:16 -05:00 committed by GitHub
parent f3f9b36e07
commit 2f401bd8da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 530 additions and 559 deletions

View File

@ -107,33 +107,64 @@ class FrigateApp:
for camera_name in self.config.cameras.keys(): for camera_name in self.config.cameras.keys():
# create camera_metrics # create camera_metrics
self.camera_metrics[camera_name] = { self.camera_metrics[camera_name] = {
"camera_fps": mp.Value("d", 0.0), "camera_fps": mp.Value("d", 0.0), # type: ignore[typeddict-item]
"skipped_fps": mp.Value("d", 0.0), # issue https://github.com/python/typeshed/issues/8799
"process_fps": mp.Value("d", 0.0), # from mypy 0.981 onwards
"detection_enabled": mp.Value( "skipped_fps": mp.Value("d", 0.0), # type: ignore[typeddict-item]
"i", self.config.cameras[camera_name].detect.enabled # issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"process_fps": mp.Value("d", 0.0), # type: ignore[typeddict-item]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"detection_enabled": mp.Value( # type: ignore[typeddict-item]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"i",
self.config.cameras[camera_name].detect.enabled,
), ),
"motion_enabled": mp.Value("i", True), "motion_enabled": mp.Value("i", True), # type: ignore[typeddict-item]
"improve_contrast_enabled": mp.Value( # issue https://github.com/python/typeshed/issues/8799
"i", self.config.cameras[camera_name].motion.improve_contrast # from mypy 0.981 onwards
"improve_contrast_enabled": mp.Value( # type: ignore[typeddict-item]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"i",
self.config.cameras[camera_name].motion.improve_contrast,
), ),
"motion_threshold": mp.Value( "motion_threshold": mp.Value( # type: ignore[typeddict-item]
"i", self.config.cameras[camera_name].motion.threshold # issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"i",
self.config.cameras[camera_name].motion.threshold,
), ),
"motion_contour_area": mp.Value( "motion_contour_area": mp.Value( # type: ignore[typeddict-item]
"i", self.config.cameras[camera_name].motion.contour_area # issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"i",
self.config.cameras[camera_name].motion.contour_area,
), ),
"detection_fps": mp.Value("d", 0.0), "detection_fps": mp.Value("d", 0.0), # type: ignore[typeddict-item]
"detection_frame": mp.Value("d", 0.0), # issue https://github.com/python/typeshed/issues/8799
"read_start": mp.Value("d", 0.0), # from mypy 0.981 onwards
"ffmpeg_pid": mp.Value("i", 0), "detection_frame": mp.Value("d", 0.0), # type: ignore[typeddict-item]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"read_start": mp.Value("d", 0.0), # type: ignore[typeddict-item]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"ffmpeg_pid": mp.Value("i", 0), # type: ignore[typeddict-item]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"frame_queue": mp.Queue(maxsize=2), "frame_queue": mp.Queue(maxsize=2),
"capture_process": None, "capture_process": None,
"process": None, "process": None,
} }
self.record_metrics[camera_name] = { self.record_metrics[camera_name] = {
"record_enabled": mp.Value( "record_enabled": mp.Value( # type: ignore[typeddict-item]
"i", self.config.cameras[camera_name].record.enabled # issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"i",
self.config.cameras[camera_name].record.enabled,
) )
} }

View File

@ -262,8 +262,12 @@ def stats_snapshot(
for name, detector in stats_tracking["detectors"].items(): for name, detector in stats_tracking["detectors"].items():
pid = detector.detect_process.pid if detector.detect_process else None pid = detector.detect_process.pid if detector.detect_process else None
stats["detectors"][name] = { stats["detectors"][name] = {
"inference_speed": round(detector.avg_inference_speed.value * 1000, 2), "inference_speed": round(detector.avg_inference_speed.value * 1000, 2), # type: ignore[attr-defined]
"detection_start": detector.detection_start.value, # issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"detection_start": detector.detection_start.value, # type: ignore[attr-defined]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
"pid": pid, "pid": pid,
} }
stats["detection_fps"] = round(total_detection_fps, 2) stats["detection_fps"] = round(total_detection_fps, 2)

View File

@ -24,7 +24,9 @@ class FrigateWatchdog(threading.Thread):
# check the detection processes # check the detection processes
for detector in self.detectors.values(): for detector in self.detectors.values():
detection_start = detector.detection_start.value detection_start = detector.detection_start.value # type: ignore[attr-defined]
# issue https://github.com/python/typeshed/issues/8799
# from mypy 0.981 onwards
if detection_start > 0.0 and now - detection_start > 10: if detection_start > 0.0 and now - detection_start > 10:
logger.info( logger.info(
"Detection appears to be stuck. Restarting detection process..." "Detection appears to be stuck. Restarting detection process..."

View File

@ -3,13 +3,13 @@ Flask == 2.3.*
faster-fifo == 1.4.* faster-fifo == 1.4.*
imutils == 0.5.* imutils == 0.5.*
matplotlib == 3.7.* matplotlib == 3.7.*
mypy == 0.942 mypy == 1.4.1
numpy == 1.23.* numpy == 1.23.*
onvif_zeep == 0.2.12 onvif_zeep == 0.2.12
opencv-python-headless == 4.7.0.* opencv-python-headless == 4.7.0.*
paho-mqtt == 1.6.* paho-mqtt == 1.6.*
peewee == 3.16.* peewee == 3.16.*
peewee_migrate == 1.10.* peewee_migrate == 1.11.*
psutil == 5.9.* psutil == 5.9.*
pydantic == 1.10.* pydantic == 1.10.*
git+https://github.com/fbcotter/py3nvml#egg=py3nvml git+https://github.com/fbcotter/py3nvml#egg=py3nvml

View File

@ -8,7 +8,7 @@
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png" /> <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png" /> <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png" /> <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png" />
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/images/favicon.svg" />
<link rel="manifest" href="/site.webmanifest" /> <link rel="manifest" href="/site.webmanifest" />
<link rel="mask-icon" href="/images/favicon.svg" color="#3b82f7" /> <link rel="mask-icon" href="/images/favicon.svg" color="#3b82f7" />
<meta name="msapplication-TileColor" content="#3b82f7" /> <meta name="msapplication-TileColor" content="#3b82f7" />

955
web/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -38,8 +38,8 @@
"@testing-library/user-event": "^14.4.3", "@testing-library/user-event": "^14.4.3",
"@typescript-eslint/eslint-plugin": "^5.59.1", "@typescript-eslint/eslint-plugin": "^5.59.1",
"@typescript-eslint/parser": "^5.59.1", "@typescript-eslint/parser": "^5.59.1",
"@vitest/coverage-c8": "^0.31.0", "@vitest/coverage-v8": "^0.32.2",
"@vitest/ui": "^0.31.0", "@vitest/ui": "^0.32.2",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"eslint": "^8.39.0", "eslint": "^8.39.0",
"eslint-config-preact": "^1.3.0", "eslint-config-preact": "^1.3.0",
@ -53,6 +53,6 @@
"tailwindcss": "^3.3.2", "tailwindcss": "^3.3.2",
"typescript": "^5.0.4", "typescript": "^5.0.4",
"vite": "^4.3.5", "vite": "^4.3.5",
"vitest": "^0.31.0" "vitest": "^0.32.2"
} }
} }

View File

@ -18,9 +18,9 @@ export default function Export() {
const localISODate = localDate.toISOString().split('T')[0]; const localISODate = localDate.toISOString().split('T')[0];
const [startDate, setStartDate] = useState(localISODate); const [startDate, setStartDate] = useState(localISODate);
const [startTime, setStartTime] = useState("00:00"); const [startTime, setStartTime] = useState('00:00');
const [endDate, setEndDate] = useState(localISODate); const [endDate, setEndDate] = useState(localISODate);
const [endTime, setEndTime] = useState("23:59"); const [endTime, setEndTime] = useState('23:59');
const onHandleExport = () => { const onHandleExport = () => {
if (camera == 'select') { if (camera == 'select') {
@ -33,8 +33,6 @@ export default function Export() {
return; return;
} }
if (!startDate || !startTime || !endDate || !endTime) { if (!startDate || !startTime || !endDate || !endTime) {
setMessage({ text: 'A start and end time needs to be selected', error: true }); setMessage({ text: 'A start and end time needs to be selected', error: true });
return; return;
@ -48,12 +46,13 @@ export default function Export() {
return; return;
} }
axios.post(`export/${camera}/start/${start}/end/${end}`, { playback }) axios
.post(`export/${camera}/start/${start}/end/${end}`, { playback })
.then(() => { .then(() => {
setMessage({ text: 'Successfully started export. View the file in the /exports folder.', error: false }); setMessage({ text: 'Successfully started export. View the file in the /exports folder.', error: false });
}) })
.catch((error) => { .catch((error) => {
setMessage({ text: 'Failed to start export: '+error.response.data.message, error: true }); setMessage({ text: `Failed to start export: ${error.response.data.message}`, error: true });
}); });
}; };
@ -93,13 +92,37 @@ export default function Export() {
<Heading className="py-2" size="sm"> <Heading className="py-2" size="sm">
From: From:
</Heading> </Heading>
<input className="dark:bg-slate-800" id="startDate" type="date" value={startDate} onChange={(e) => setStartDate(e.target.value)}/> <input
<input className="dark:bg-slate-800" id="startTime" type="time" value={startTime} onChange={(e) => setStartTime(e.target.value)}/> className="dark:bg-slate-800"
id="startDate"
type="date"
value={startDate}
onChange={(e) => setStartDate(e.target.value)}
/>
<input
className="dark:bg-slate-800"
id="startTime"
type="time"
value={startTime}
onChange={(e) => setStartTime(e.target.value)}
/>
<Heading className="py-2" size="sm"> <Heading className="py-2" size="sm">
To: To:
</Heading> </Heading>
<input className="dark:bg-slate-800" id="endDate" type="date" value={endDate} onChange={(e) => setEndDate(e.target.value)}/> <input
<input className="dark:bg-slate-800" id="endTime" type="time" value={endTime} onChange={(e) => setEndTime(e.target.value)}/> className="dark:bg-slate-800"
id="endDate"
type="date"
value={endDate}
onChange={(e) => setEndDate(e.target.value)}
/>
<input
className="dark:bg-slate-800"
id="endTime"
type="time"
value={endTime}
onChange={(e) => setEndTime(e.target.value)}
/>
</div> </div>
<Button onClick={() => onHandleExport()}>Submit</Button> <Button onClick={() => onHandleExport()}>Submit</Button>
</div> </div>