code: def get_notes(key='C'):
      
      if _key_cache.has_key(key):
          return _key_cache[key]
      if not is_valid_key(key):
          raise NoteFormatError("unrecognized format for key '%s'" % key)
      result = []
  
      # Calculate notes
      altered_notes = map(operator.itemgetter(0),
              get_key_signature_accidentals(key))
  
      if get_key_signature(key) < 0:
          symbol = 'b'
      elif get_key_signature(key) > 0:
          symbol = '#'
  
      raw_tonic_index = base_scale.index(key.upper()[0])
  
      for note in islice(cycle(base_scale), raw_tonic_index, raw_tonic_index+7):
          if note in altered_notes:
              result.append('%s%s' % (note, symbol))
          else:
              result.append(note)
      
      # Save result to cache
      _key_cache[key] = result
      return result
docs: Return an ordered list of the notes in this natural key.
  
      Examples:
      >>> get_notes('F')
      ['F', 'G', 'A', 'Bb', 'C', 'D', 'E']
      >>> get_notes('c')
      ['C', 'D', 'Eb', 'F', 'G', 'Ab', 'Bb']