"""Hooks to production tracking (Libreflow / Kitsu). These functions are the single place where checks ask the outside world for expected values. Return None when the information is unavailable: the related checks are then skipped instead of failing. """ def get_shot_frame_range(ctx): """Return the expected (frame_start, frame_end) of the shot, or None. ``ctx`` is a ``core.CheckContext``: ``ctx.filepath``, ``ctx.filename_match`` (groups "sequence" and "shot" of config.FILENAME_PATTERNS["LAYOUT"]) and ``ctx.scene`` help identify the shot. TODO: query Libreflow or Kitsu (gazu), e.g.:: import gazu shot = gazu.shot.get_shot_by_name(sequence, shot_name) start = shot["data"]["frame_in"]; end = shot["data"]["frame_out"] """ return None