Documentation de ascii-films

Classe Film

class film.film.Film(titre='', dict_sous_titres={})[source]

Cette classe fournit des outils pour afficher des petits films à partir de frames en ascii.

Les frames peuvent être dans un seul fichier, avec un séparateur ou dans plusieurs fichiers qui seront lus d’un répertoire à préciser, et dans l’ordre alphanumérique croissant.

Pour démarrer, essayez ceci, ci dessous ?

from film.film import Film
Film.demo()
affiche_ctrl_c

Retourne ou décide si il faut afficher une mention CTRL + C (booléen) Défaut = False

affiche_no_frame

Retourne ou décide si il faut afficher le n° de la frame en cours (booléen) Défaut = False

Note

Pratique en conjonction avec un long délai dans la méthode projection, pour régler finement la projection d’un ou de film(s), de sous-titres, …

Exemple:

obj.affiche_no_frame = True
obj.projection(delai = 0.5)
affiche_titre

Retourne ou décide si il faut afficher le titre (booléen) Défaut = True

classmethod clearsc()[source]

Efface l’écran.

ctrl_c_xy

Retourne ou fixe les coordonnées de l’affichage du CTRL + C, si affiche_ctrl_c = True. Défaut = (0, 15)

classmethod delay(secondes)[source]

Evite l’importation de la méthode sleep du module time

classmethod demo()[source]

Lance une demo amusante de la classe

deplacement

Retourne ou fixe la valeur du déplacement entre 2 frames successives Défaut = 1

dessine_ecran(x0, y0, x1, y1, g='j', h='+', d='l', b='=', c1='\\', c2='/')[source]

Dessine un écran, coin haut gauche = x0, y0, bas droit = x1, y1. g = bord gauche, h = haut, d = droit, b = bas, c1 = coin 1, c2 =coin 2

(x0,y0) ->  c1hhhhhhc2 <- (x1,y0)  obj.dessine-ecran(1, 1, 10, 5)
            g        d             retournera   \++++++++/
            g        d             par défaut   j        l
            g        d                          j        l
            g        d                          j        l
(x0,y1) ->  c2bbbbbbc1 <- (x1,y1)               /========\
dict_sous_titres

Retourne, modifie ou crée le dictionnaire des sous-titres

Ce dictionnaire est de la forme: {(a, b): « sous-titre »} ou a = n° de la frame où l’affichage de « sous-titre » démarre et b = n° - 1 de la frame où s’arrête l’affichage de « sous-titre »

frame

Lit ou ajoute des frames à partir d’un seul fichier. Ces frames sont séparées par un séparateur, par défaut #

del frame détruit toutes les frames du film

frames

Lit ou ajoute des frames à partir de fichiers dans un répertoire. Chaque frame est dans un fichier propre. Les fichiers sont lus dans le répertoire dans le sens alphnumérique croissant de leurs noms. »)

del frames détruit toutes les frames du film

goto(x, y)[source]

Amène le curseur en x, y pour impression (print)

nb_frames

Retourne

  • 0 si aucune frame n’est définie

  • le nombre de frames du film

Note

sera egal à nb_frames_per_file dans le cas d’un fichier unique

nb_frames_per_file

Retourne

  • 0 si aucune frame n’est définie

  • 1 si les dernières frames chargées le sont à partir d’1 fichier par frame (cas de frames)

  • le nombre de frames dans le dernier fichier chargé si il s’agit d’un fichier unique

no_frame_xy

Retourne ou fixe les coordonnées de l’affichage n° de frame en cours, si affiche_no_frame = True. Défaut = (0, 0)

print_message(x, y, message, delai=2, rev=True)[source]

Affiche un message en reverse à x,y pour delai seconde (2 par défaut)

print_reverse(message)[source]

Inverse couleur et background pour l’impression d’un message

projection(nb_frames2run=0, x=2, y=4, trace=0, delai=0.1)[source]

Lance l’instance film en lisant les frames.

  • nb_frames2run: nombre de frames à exécuter. 0 = infini

  • x, y: les coordonnées haut gauche de départ du film

  • trace nombre de blancs à ajouter à la frame suivant le sens du film. A gauche si self.reverse = False, à droite si self.reverse = True. Ce paramètre sert à effacer d’éventuelles traces laissées par une frame pas trop bien :) formatée.

  • delai: la durée en seconde de chaque frame

Note

Le nombre de frames réellement exécutées sera le premier multiple de nb_frames au dessus de nb_frames2run - 1. nb_frames est égal au nombre de frames du film. Ainsi, pour un nb_frames2run = 17 et un nb_frames = 4, le nombre de frames exécutées sera 20 - 1 = 20 (puisque le numérotage démarre à 0). Utilisez affiche_no_frame = True pour mieux visualiser cela.

Avertissement

Si self.reverse = True, le film peut avoir des effets de bord non désiré quand x < 0. Vous pouvez régler cela via l’appel de la méthode.

reverse

Retourne ou fixe le sens du film en avant ou en arrière (booléen) Défaut = False

sous_titre_xy

Retourne ou fixe les coordonnées (x, y) de la zone de sous-titres Defaut=(20,15)

obj.sous_titre_xy = (x, y) # tuple

La zone de sous-titres débute à la coordonnée x de la largeur fixée (par défaut 40) par l’attribut sous_titres_largeur. Les sous-titres sont centrés dans cette zone.

Note

Pour mieux voir et comprendre ceci, mettez le paramètre sous_titres_reverse à True, le temps éventuellement de tester la projection de votre film.

largeur zone sous-titre:  -> +-------- 20 --------+
            sous_titre_xy -> |     Sous-titre     |
le sous-titre est centré dans la zone de sous-titres
sous_titres_largeur

Retourne ou fixe la largeur de la zone des sous-titres. Défaut = 40

sous_titres_reverse

Retourne ou fixe l’affichage des sous-titres à reverse ou non. (booléen) Défaut = False

titre

Retourne, modifie ou crée le titre du film. Défaut = “”

titre_x

Retourne ou fixe la coordonnée x d’affichage du titre. Defaut=(4)

Déprécié: utilisez titre_xy = (x, y) à la place

Note

Si vous utilisez titre_x, la valeur x de titre_xy sera automatiquement adaptée

titre_xy

Retourne ou fixe les coordonnées x, y d’affichage du titre. Defaut=(4,2)

obj.titre_xy = (x, y) # tuple

Note

obj.titre_x sera adapté à la valeur x de obj.titre_xy

classmethod version()[source]

Retourne la version de la classe