.. raw:: html .. |v| unicode:: U+2713 .. module:: hdir :mod:`hdir` --- Highlight dir ============================= ``hdir()`` est une version colorée de la fonction ``dir()`` Dépendances ----------- * `Python `_ 3.6+ * Console avec `couleurs ANSI `_ Utilisation ----------- :: pip install hdir Invoquer ``hdir()`` sans argument affiche la légende : .. raw:: html :file: ../hdir/legend.html ``hdir()`` ne coupe pas les mots et les trie par ordre alphabétique en respectant la casse. Comparons la fonction ``dir()`` classique avec ``hdir()`` sur le module ``builtins`` : .. raw:: html :file: ../hdir/builtins.html ``type.__dict__`` est un *proxy* ``<>`` vers un *dict* ``{}`` dont le premier élément est un *descripteur* ``<>`` vers une *fonction* (cyan) : .. raw:: html :file: ../hdir/recursive.html Couleur ------- .. table:: :widths: auto ======= ========================= Couleur Type ======= ========================= Bleu int, float, bool, complex Cyan fonction ou méthode Vert chaîne Magenta module Rouge exception Jaune classe autre qu'exception ======= ========================= .. table:: :widths: auto ======== ============= ============ ======= =========== ============ Style Signification Windows [1]_ Mintty_ `Linux FB`_ GNOME_, KDE_ ======== ============= ============ ======= =========== ============ Couleur type [2]_ |v| |v| |v| |v| Gras est réel [3]_ |v| |v| |v| |v| Italique est abstrait |v| |v| Souligné d'instance |v| |v| |v| ======== ============= ============ ======= =========== ============ .. _Mintty: http://mintty.github.io .. _Linux FB: https://en.wikipedia.org/wiki/Linux_framebuffer .. _GNOME: https://wiki.gnome.org/Apps/Terminal .. _KDE: https://konsole.kde.org .. [1] ``HKCU\Console\VirtualTerminalLevel = 1`` active les couleurs ANSI sauf le jaune foncé .. [2] Si c'est un conteneur, couleur du premier élément .. [3] Ni abstrait ni caché par un *descripteur* ou *proxy* Décorateurs ----------- .. table:: :widths: auto =========== ========================= ======== Decorateurs Type Récursif =========== ========================= ======== ``'...'`` chaîne ``[...]`` liste |v| ``(...)`` tuple |v| ``{...}`` dict ou ensemble |v| ``<...>`` descripteur ou proxy |v| ``...()`` fonction utilisateur [4]_ =========== ========================= ======== .. [4] Écrite en langage Python, ni intégrée ni fonction de librairie du langage C Variable d'instance ------------------- ``hdir()`` souligne les variables d'instance. Dans cet exemple, la variable d'instance ``msg`` recouvre la variable de classe du même nom : .. raw:: html :file: ../hdir/instance.html Drapeaux -------- ``hdir()`` cache les attributs ``__double`` ``__magic__`` ``_private`` à moins que les drapeaux ``'d'`` ``'m'`` ``'p'`` soient présents : .. raw:: html :file: ../hdir/magic.html Le drapeau ``'a'`` *"all"* équivaut à ``'dmp'``, bien que les éléments abstraits soient toujours visibles : .. raw:: html :file: ../hdir/abstract.html Le drapeau ``'n'`` *"no-color"* désactive les codes ANSI mais conserve les décorateurs : .. raw:: html :file: ../hdir/no-color.html Le drapeau ``'r'`` *"raw"* retourne un *dict* dans le style de ``vars()`` pour profiter du filtrage d'attributs : .. raw:: html :file: ../hdir/raw.html Aucun faux positif ------------------ Alors que ``dir()``, ``vars()`` et ``inspect.getmembers()`` retournent certains attributs qui n'existent pas, ``hdir()`` teste chaque attribut avec ``hasattr()`` pour éliminer les faux positifs : .. raw:: html :file: ../hdir/false-positive.html Versions -------- :0.5: 16 février 2019 --- *Première version bêta* :0.4: 8 février 2019 --- ``import *`` *importe seulement hdir()* :0.3: 7 février 2019 --- *Ajout de la légende, du drapeau* ``'r'``, *support des wrappers* :0.2: 5 février 2019 --- *Élimination des faux positifs* :0.1: 5 février 2019 --- *Première version alpha*