docs: def get_unique_filename(filename, new_filename=None, new_extension=None):
      """
      Génère un nouveau nom pour un fichier en gardant son extension
      
      Soit le nouveau nom est généré à partir de la date 
      (heures+minutes+secondes+microsecondes) soit un nouveau nom est spécifié et on 
      l'utilise tel quel.
      
      :type filename: string
      :param filename: Nom du fichier original
      
      :type new_filename: string
      :param new_filename: (optional) Nouveau nom de fichier personnalisé, ceci implique que 
                           la date ne sera pas insérée dans le nouveau nom
      
      :type new_extension: string
      :param new_extension: (optional) Force une nouvelle extension de fichier au lieu de 
                            celle de l'original. À spécifier sans le "point" de début d'une 
                            extension.
      
      :rtype: string
      :return: Nouveau nom de fichier
      """
      if new_extension:
          extension = new_extension
      else:
          extension = splitext(filename)[1][1:]
      if not new_filename:
          now = real_datetime.now()
          return '%s%s%s%s.%s' % (unicode(now.hour).zfill(2), unicode(now.minute).zfill(2), unicode(now.second).zfill(2), unicode(now.microsecond).zfill(6), extension)
      else:
          return '%s.%s' % (new_filename, extension)