docs: def contrast(colour1, colour2):
      r"""Determines the contrast between two colours.
  
      Args:
          colour1 (colourettu.Colour): a colour
          colour2 (colourettu.Colour): a second colour
  
      Contrast the difference in (perceived) brightness between colours.
      Values vary between 1:1 (a given colour on itself) and 21:1 (white on
      black).
  
      To compute contrast, two colours are required.
  
      .. code:: pycon
  
          >>> colourettu.contrast("#FFF", "#FFF") # white on white
          1.0
          >>> colourettu.contrast(c1, "#000") # black on white
          20.999999999999996
          >>> colourettu.contrast(c4, c5)
          4.363552233203198
  
      ``contrast`` can also be called on an already existing colour, but a
      second colour needs to be provided:
  
      .. code:: pycon
  
          >>> c4.contrast(c5)
          4.363552233203198
  
      .. note::
  
          Uses the formula:
  
          \\[ contrast = \\frac{lum_1 + 0.05}{lum_2 + 0.05} \\]
  
      **Use of Contrast**
  
      For Basic readability, the ANSI standard is a contrast of 3:1 between
      the text and it's background. The W3C proposes this as a minimum
      accessibility standard for regular text under 18pt and bold text under
      14pt. This is referred to as the *A* standard. The W3C defines a higher
      *AA* standard with a minimum contrast of 4.5:1. This is approximately
      equivalent to 20/40 vision, and is common for those over 80. The W3C
      define an even higher *AAA* standard with a 7:1 minimum contrast. This
      would be equivalent to 20/80 vision. Generally, it is assumed that those
      with vision beyond this would access the web with the use of assistive
      technologies.
  
      If needed, these constants are stored in the library.
  
      .. code:: pycon
  
          >>> colourettu.A_contrast
          3.0
          >>> colourettu.AA_contrast
          4.5
          >>> colourettu.AAA_contrast
          7.0
  
      I've also found mention that if the contrast is *too* great, this can
      also cause readability problems when reading longer passages. This is
      confirmed by personal experience, but I have been (yet) unable to find
      any quantitative research to this effect.
      """
  
      colour_for_type = Colour()
      if type(colour1) is type(colour_for_type):
          mycolour1 = colour1
      else:
          try:
              mycolour1 = Colour(colour1)
          except:
              raise TypeError("colour1 must be a colourettu.colour")
  
      if type(colour2) is type(colour_for_type):
          mycolour2 = colour2
      else:
          try:
              mycolour2 = Colour(colour2)
          except:
              raise TypeError("colour2 must be a colourettu.colour")
  
      lum1 = mycolour1.luminance()
      lum2 = mycolour2.luminance()
  
      minlum = min(lum1, lum2)
      maxlum = max(lum1, lum2)
  
      return (maxlum + 0.05) / (minlum + 0.05)