Source code for CAM2CameraDatabaseAPIClient.camera

"""
Represents a camera.
"""

[docs]class Camera(dict): """Class representing a general camera. Attributes ---------- cameraID : str Id of the camera. legacy_cameraID : int, optional Id of the camera in previous CAM2 camera database. camera_type: str Type of the camera. source : str, optional frame_rate : int, optional country : str, optional state : str, optional city : str, optional longitude : float, optional latitude : float, optional is_active_image : bool, optional is_active_video : bool, optional resolution_width : int, optional resolution_height : int, optional utc_offset : int, optional timezone_id : str, optional timezone_name : str, optional reference_logo : str, optional reference_url : str, optional """ @staticmethod def process_json(**dict_entries): dict_entries['camera_type'] = dict_entries['type'] dict_entries.pop('type', None) dict_entries.update(dict_entries['retrieval']) dict_entries.pop('retrieval', None) if dict_entries['camera_type'] == 'ip': return IPCamera(**dict_entries) if dict_entries['camera_type'] == 'non_ip': return NonIPCamera(**dict_entries) if dict_entries['camera_type'] == 'stream': return StreamCamera(**dict_entries) return None
[docs]class IPCamera(Camera): """Represent a single ip camera. This is a subclass of Camera. Attributes ---------- ip : str port : str brand : str, optional model : str, optional image_path : str, optional video_path : str, optional """
[docs]class NonIPCamera(Camera): """Represent a single non-ip camera. This is a subclass of Camera. Attributes ---------- snapshot_url : str """
[docs]class StreamCamera(Camera): """Represent a single stream camera. This is a subclass of Camera. Attributes ---------- m3u8_url : str """