Source code for osxphotos.queryoptions

""" QueryOptions class for PhotosDB.query """

import datetime
from dataclasses import asdict, dataclass
from typing import Iterable, List, Optional, Tuple

import bitmath

__all__ = ["QueryOptions"]


[docs]@dataclass class QueryOptions: """QueryOptions class for PhotosDB.query Attributes: keyword: list of keywords to search for person: list of person names to search for album: list of album names to search for folder: list of folder names to search for uuid: list of uuids to search for title: list of titles to search for no_title: search for photos with no title description: list of descriptions to search for no_description: search for photos with no description ignore_case: ignore case when searching edited: search for edited photos external_edit: search for photos edited in external apps favorite: search for favorite photos not_favorite: search for non-favorite photos hidden: search for hidden photos not_hidden: search for non-hidden photos missing: search for missing photos not_missing: search for non-missing photos shared: search for shared photos not_shared: search for non-shared photos photos: search for photos movies: search for movies uti: list of UTIs to search for burst: search for burst photos not_burst: search for non-burst photos live: search for live photos not_live: search for non-live photos cloudasset: search for photos that are managed by iCloud not_cloudasset: search for photos that are not managed by iCloud incloud: search for cloud assets that are synched to iCloud not_incloud: search for cloud asset photos that are not yet synched to iCloud from_date: search for photos taken on or after this date to_date: search for photos taken on or before this date portrait: search for portrait photos not_portrait: search for non-portrait photos screenshot: search for screenshot photos not_screenshot: search for non-screenshot photos slow_mo: search for slow-mo photos not_slow_mo: search for non-slow-mo photos time_lapse: search for time-lapse photos not_time_lapse: search for non-time-lapse photos hdr: search for HDR photos not_hdr: search for non-HDR photos selfie: search for selfie photos not_selfie: search for non-selfie photos panorama: search for panorama photos not_panorama: search for non-panorama photos has_raw: search for photos with associated raw files place: list of place names to search for no_place: search for photos with no place label: list of labels to search for deleted: also include deleted photos deleted_only: search only for deleted photos has_comment: search for photos with comments no_comment: search for photos with no comments has_likes: search for shared photos with likes no_likes: search for shared photos with no likes is_reference: search for photos stored by reference (that is, they are not managed by Photos) in_album: search for photos in an album not_in_album: search for photos not in an album burst_photos: search for burst photos missing_bursts: for burst photos, also include burst photos that are missing name: list of names to search for min_size: minimum size of photos to search for max_size: maximum size of photos to search for regex: list of regular expressions to search for query_eval: list of query expressions to evaluate duplicate: search for duplicate photos location: search for photos with a location no_location: search for photos with no location function: list of query functions to evaluate selected: search for selected photos exif: search for photos with EXIF tags that matches the given data year: search for photos taken in a given year """ keyword: Optional[Iterable[str]] = None person: Optional[Iterable[str]] = None album: Optional[Iterable[str]] = None folder: Optional[Iterable[str]] = None uuid: Optional[Iterable[str]] = None title: Optional[Iterable[str]] = None no_title: Optional[bool] = None description: Optional[Iterable[str]] = None no_description: Optional[bool] = None ignore_case: Optional[bool] = None edited: Optional[bool] = None external_edit: Optional[bool] = None favorite: Optional[bool] = None not_favorite: Optional[bool] = None hidden: Optional[bool] = None not_hidden: Optional[bool] = None missing: Optional[bool] = None not_missing: Optional[bool] = None shared: Optional[bool] = None not_shared: Optional[bool] = None photos: Optional[bool] = True movies: Optional[bool] = True uti: Optional[Iterable[str]] = None burst: Optional[bool] = None not_burst: Optional[bool] = None live: Optional[bool] = None not_live: Optional[bool] = None cloudasset: Optional[bool] = None not_cloudasset: Optional[bool] = None incloud: Optional[bool] = None not_incloud: Optional[bool] = None from_date: Optional[datetime.datetime] = None to_date: Optional[datetime.datetime] = None from_time: Optional[datetime.time] = None to_time: Optional[datetime.time] = None portrait: Optional[bool] = None not_portrait: Optional[bool] = None screenshot: Optional[bool] = None not_screenshot: Optional[bool] = None slow_mo: Optional[bool] = None not_slow_mo: Optional[bool] = None time_lapse: Optional[bool] = None not_time_lapse: Optional[bool] = None hdr: Optional[bool] = None not_hdr: Optional[bool] = None selfie: Optional[bool] = None not_selfie: Optional[bool] = None panorama: Optional[bool] = None not_panorama: Optional[bool] = None has_raw: Optional[bool] = None place: Optional[Iterable[str]] = None no_place: Optional[bool] = None label: Optional[Iterable[str]] = None deleted: Optional[bool] = None deleted_only: Optional[bool] = None has_comment: Optional[bool] = None no_comment: Optional[bool] = None has_likes: Optional[bool] = None no_likes: Optional[bool] = None is_reference: Optional[bool] = None in_album: Optional[bool] = None not_in_album: Optional[bool] = None burst_photos: Optional[bool] = None missing_bursts: Optional[bool] = None name: Optional[Iterable[str]] = None min_size: Optional[bitmath.Byte] = None max_size: Optional[bitmath.Byte] = None regex: Optional[Iterable[Tuple[str, str]]] = None query_eval: Optional[Iterable[str]] = None duplicate: Optional[bool] = None location: Optional[bool] = None no_location: Optional[bool] = None function: Optional[List[Tuple[callable, str]]] = None selected: Optional[bool] = None exif: Optional[Iterable[Tuple[str, str]]] = None year: Optional[Iterable[int]] = None def asdict(self): return asdict(self)