<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def com_google_fonts_check_canonical_filename(font):
 """Checking file is named canonically. A font's filename must be composed in the following manner: <familyname>-<stylename>.ttf e.g. Nunito-Regular.ttf, Oswald-BoldItalic.ttf Variable fonts must use the "-VF" suffix: e.g. Roboto-VF.ttf, Barlow-VF.ttf, Example-Roman-VF.ttf, Familyname-Italic-VF.ttf """

  from fontTools.ttLib import TTFont
  from fontbakery.profiles.shared_conditions import is_variable_font
  from fontbakery.constants import (STATIC_STYLE_NAMES,
                                    VARFONT_SUFFIXES)
  if canonical_stylename(font):
    yield PASS, f"{font} is named canonically."
  else:
    if os.path.exists(font) and is_variable_font(TTFont(font)):
      if suffix(font) in STATIC_STYLE_NAMES:
        yield FAIL, (f'This is a variable font, but it is using'
                      ' a naming scheme typical of a static font.')
      yield FAIL, ('Please change the font filename to use one'
                   ' of the following valid suffixes for variable fonts:'
                  f' {", ".join(VARFONT_SUFFIXES)}')
    else:
      style_names = '", "'.join(STATIC_STYLE_NAMES)
      yield FAIL, (f'Style name used in "{font}" is not canonical.'
                    ' You should rebuild the font using'
                    ' any of the following'
                   f' style names: "{style_names}".')