Mocodo

Latest version: v4.2.8

Safety actively analyzes 626436 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 6

4.0.13

**Full Changelog**: https://github.com/laowantong/mocodo/compare/4.0.11...4.0.13

- Paramétrage de la visualisation des cardinalités « renforçantes » pour les entités faibles sous Mocodo online (97).
- Correction d'un crash au lancement en l'absence de la bibliothèque `requests` (98).
- Paramétrage de la visualisation des clés étrangères dans le diagramme relationnel (99).
- Meilleure gestion du double-clic sous Mocodo online.

4.0.11

- Aide-mémoire : séparation des opérations de conversion et de réécriture en deux tableaux. Les alias ne sont plus accessibles qu'au survol.
- Correction de 95 : l'inférence de rôle ne fonctionnait pas pour les associations comportant une cardinalité 01 et une 11.
- Correction de 96 : décomposition des associations n-aires comportant plus d'une cardinalité maximale 1.
- Ajout d'une conversion au format [D2](https://d2lang.com).
- L'explication de la suppression des tables est augmentée d'une instruction pour modifier ce comportement en « protégeant » l'entité avec le préfixe `+`.
- Ajout d'une localisation en chinois pour les messages d'aide des transformations.
- Correction d'un plantage si la langue du système n'est ni le français, ni l'anglais.
- Améliorations cosmétiques sur Mocodo online.
- Correction d'une régression : Mocodo online ne restituait pas un MCD partagé par URL.
- Explication de la politique de confidentialité dans le panneau d'info de Mocodo online.
- Amélioration d'un message d'erreur à l'intention des débutants qui essaient de mettre des clés étrangères au niveau conceptuel.
- Augmentation de `lorem.txt` avec environ 6000 mots latins.
- Sous Mocodo online, les entraînements au passage au relationnel utilisent des mots anglais de 4 lettres (plus courts à transcrire).

**Full Changelog**: https://github.com/laowantong/mocodo/compare/4.0.8...4.0.11

4.0.8

- Les suffixes d'attribut "?" et "!" ne sont plus interprétés comme contraintes d'optionalité dans le texte-source (ils continuent à apparaître à la demande dans les sorties). Il faut préciser `NULL` ou `NOT NULL` pour le même résultat (91).
- Mocodo peut se lancer sans la bibliothèque `urllib3`.
- Mocodo online devrait maintenant marcher correctement sous Firefox.
- La conversion en LaTeX est rétablie dans Mocodo online.
- Les notes de pattes (y compris les rôles) sont maintenant affichées au survol même si elles ne comportent aucun espace (comme avant la version 4.0).
- Les erreurs lors de l'analyse syntaxique sont maintenant correctement localisées en français.
- La visualisation des associations « protégées » est améliorée.
- Les sessions de travail sont effacées automatiquement au bout de 24 heures.
- Le symbole d'information (i) s'affiche correctement sur mobile.
- Les types sont alignés dans les sorties SQL et DBML.
- Lors de l'inférence d'entités, les identifiants des entités DATE font exception à la règle, et sont simplement « date ».
- Les noms des boîtes ne sont plus sensibles à la casse et à l'accentuation (92).
- Les noms des entités comportant des accents sont correctement triés dans les MLD, DDL, etc. (92).
- Divers changements cosmétiques et corrections dans Mocodo online.

**Full Changelog**: https://github.com/laowantong/mocodo/compare/4.0.4...4.0.8

4.0.4

**Full Changelog**: https://github.com/laowantong/mocodo/compare/3.2.1...4.0.4

Parser séparé / nouvelle API / réécritures et conversions

L'analyse syntaxique du texte-source décrivant un MCD est désormais complètement séparée de son traitement (77). Une conséquence immédiate est l'introduction de la coloration syntaxique dans [Mocodo online](https://www.mocodo.net), ainsi que la création du plugin [Mocodo syntax highlighter]( https://marketplace.visualstudio.com/items?itemName=laowantong.vscode-mocodo) pour VS-Code. Ce travail a également permis d'améliorer certaines fonctionnalités et de faciliter la création de nouvelles.

Transformations

Réécritures

4.0

- la mise en miroir, le réarrangement et l'obfuscation d'un MCD, qui existaient déjà ;
- l'effacement des attributs ou des cardinalités pour créer des « exercices à trous » ;
- la rectification des cardinalités mal formées (qui se fait maintenant à la demande) ;
- l'homogénéisation de la mise en forme (capitalisation, séparateurs, diacritiques, ...) ;
- la décomposition d'un MCD donné pour n'employer que des DF sans attributs ;
- la génération de MCD aléatoires, soit _from scratch_, soit par croissance stochastique sur un MCD existant.

Dans les versions précédentes, les quelques opérations de réécriture existantes étaient toutes terminales. Elles peuvent désormais être enchaînées en pipeline. Par exemple, vous pouvez décomposer les associations n-aires, convertir les libellés des attributs en minuscules et calculer un nouveau plongement d'un seul coup, sans avoir besoin de copier-coller le résultat d'une réécriture pour le fournir à la suivante.

Conversions

Mocodo désigne sous ce nom les transformations d'un MCD qui produisent autre chose qu'un MCD : un dictionnaire des données, un schéma relationnel, un DDL en SQL, une URL, etc. Une même commande peut inclure plusieurs conversions. Si elle comporte également des réécritures, celles-ci sont exécutées en pré-traitement, et les conversions s'appliquent au dernier état du texte-source réécrit. Un post-traitement est possible pour les formats de conversion que Mocodo ne sait pas visualiser directement (par exemple, le QR Code correspondant une URL) : leur rendu peut alors être automatiquement délégué (`--defer`) au service tiers approprié.

---

Nouveautés de Mocodo online

- Un véritable **éditeur de texte** (ACE) : curseurs multiples, annulations, etc.
- **Coloration syntaxique**.
- Six boutons couvrant plus de trente **opérations de réécriture**.
- Possibilité d'ouvrir un **MCD codé dans l'URL**.
- Possibilité d'adapter les fonctionnalités au niveau de connaissances et aux besoins de l'utilisateur.
- **Tutoriel plus complet**, en deux parties : élémentaire, plus avancé.
- Suppression de l'outil de mesure d'audience (Google Analytics).
- Remplacement des icônes Font Awesome par des créations maison.
- Améliorations cosmétiques.
- Mode nuit.

Nouveautés de la commande magique Jupyter Notebook

- Visualisation directe du **diagramme relationnel**.
- Visualisation des sorties graphiques dans certains **formats tiers** (Graphviz, Mermaid, PlantUML).
- Affichage du nom des fichiers de sortie.
- L'appel de la commande magique peut être suivi d'un commentaire à la Python (``).
- L'option `-T` permet de remplacer le contenu d'une cellule par le résultat d'une réécriture et/ou de copier dans le presse-papiers le résultat d'une conversion (remplace et étend l'ancienne option `--replace`).
- L'option `--select` permet de passer outre la sélection par défaut des différentes sorties à afficher (diagramme conceptuel, texte-source réécrit, conversions).

Nouveautés de la commande `mocodo`

Syntaxe

- Triage automatique des notes de pattes en rôles ou en messages à afficher au survol en fonction de la présence d'espaces. Possibilité de forcer l'interprétation en tant que rôle.
- Si un nom de boîte se termine par un tiret (auparavant, seulement un chiffre), celui-ci n'apparaît pas dans la sortie graphique.
- Possibilité d'avoir plusieurs DF sans devoir les suffixer par un numéro.
- Positionnement d'une contrainte par alignement avec des boîtes (80).
- Possibilité d'utiliser n'importe quels caractères dans le nom d'une contrainte.
- Possibilité de créer explicitement des boîtes invisibles en préfixant leur nom par un `-`. À la différence des fantômes (`:`), Mocodo ne peut pas les détruire lors du réarrangement. De plus, elles peuvent être référencées dans des associations ou des contraintes, ce qui permet de les utiliser pour fixer une position relative.
- Messages d'erreurs de syntaxe beaucoup plus précis.

Réécritures

- Nombreuses **opérations de réécriture** paramétrables.
- **Inférence des types de données SQL** à partir des noms d'attributs ; des clauses de définition d'entités à partir des clauses de définition d'associations ; des CIFs à partir des agrégats; des DFs.
- **Génération de MCD aléatoires** par croissance stochastique autour d'un MCD originel (éventuellement vide).
- Révision et augmentation de la base de faux textes : mots français de 4 lettres, mots français de 5 lettres.
- L'obfuscation d'un MCD peut maintenant porter sur certains éléments seulement.
- Transposition automatique des MCD réarrangés plus hauts que larges.
- Ajout du **réarrangement des MCD sur des grilles sensiblement plus larges que hautes**. Adapté aux graphes-chemins et aux exemples destinés à un document paginé.

Conversions

- Conversions en _crow's foot_, dans la notation de Chen, en **diagramme de classes UML**, en arbre syntaxique abstrait, en **URL encodant le MCD**.
- Visualisation et traitement des **clés candidates** (79).
- Génération des **contraintes d'unicité** (`UNIQUE`) **et d'optionnalité** (`NULL` et `NOT NUL`) aux niveaux relationnel et physique. Visualisation sur demande au niveau relationnel.
- Ajout de trois options indépendantes : `c` (**avec contraintes**), `e` (**avec explications**) et `b` (**avec boilerplate** de document _standalone_) pour tous les gabarits produisant des schémas relationnels textuels (`html`, `markdown`, `latex` et `text`).
- Nouveaux gabarits : DBML, **Microsoft SQL Server**, debug.
- Nombreux aliases pour les gabarits.
- Paramétrage fin de l'extraction du dictionnaire des données.

Autres

- **Plugin VS-Code** pour la coloration syntaxique.
- **Réécriture complète de la documentation**.

Corrections

- Les positions des contraintes sont recalculées lors de l'inversion d'un MCD.
- Les clés étrangères dans l'identification relative perdent leur caractère étranger lorsque l'entité d'origine ne donne pas lieu à une création de table (86).
- Le graphe des dépendances prend en charge les associations n-aires (89).
- Les DF qui ne sont pas des dépendances fonctionnelles lèvent une erreur.
- Les attributs vides sont correctement ignorés lors du passage au relationnel.
- Les **agrégats multiples** ne sont plus gérés par réduction de clé, mais par création de contraintes d'unicité (88).
- Remplacement de `VARCHAR` par `VARCHAR2` dans la sortie Oracle.
- `--scale` est maintenant compatible avec `--input` (61).
- Suppression des accents dans le nom des archives (58).
- Possibilité de passer des espaces dans la commande magique (81).
- L'obfuscation fonctionne en présence de tout type d'élément (78).
- Interdiction des agrégats sur les associations binaires et, de manière équivalente, de la configuration [E1] -- *N -- (DF) -- _11 -- [E2] lorsque l'entité faible E2 n'a pas de discriminateur.

Principaux changements internes

- **Parser dédié** (Lark) et **grammaire LALR** (77).
- **Réécriture des gabarits** de passage au relationnel dans un sous-ensemble sain de YAML (et non plus en JSON).
- Minimisation des duplications de code dans les gabarits par **recours systématique à la dérivation** des gabarits ancêtres. Ainsi, les gabarits HTML sont l'unique source de vérité pour les autres gabarits textuels, et tous les gabarits des dialectes de SQL dérivent du gabarit SQL (ANSI).
- Ajout d'une **option de transformation**, dont les sous-options couvrent aussi bien les opérations de conversion (comme celles définies par les gabarits, et de façon générale toutes celles qui convertissent un MCD dans un autre format) que les opérations de réécriture d'un MCD en un autre (comme le réarrangement des clauses, la normalisation de la casse, la décomposition des associations, etc.).
- La conversion en dictionnaire des données n'est plus spécifiée par un gabarit.
- Remplacement de `snapshot.md` par un **grand zoo de MCD** avec toutes leurs transformations et réécritures, de façon à mieux prévenir les régressions.
- L'initialisation du germe du générateur aléatoire est faite en un seul endroit.

Changements non rétro-compatibles

- **Permutation de la sémantique des rôles dans les associations réflexives**.
- Conversion forcée d'une association en table dénotée par un préfixe `+` et non plus par des crochets autour du nom de l'association.
- **Réécriture complète de l'API en ligne de commande**.
- Renommage de `four_letter_words.txt` en `en4.txt`.
- Options `--pdf` et `--png` remplacées par des sous-options `pdf` et `png` d'une nouvelle option `--svg_to`.
- Désactivation de l'embellissement des pattes d'un héritage : `-->` et `==>` au lieu de `->>` et `=>>`.

Fonctionnalités retirées

- Options `--disambiguation` et `--hide_notes` rendues obsolètes par une meilleure gestion des notes de pattes. La désambiguïsation des clés étrangères par numérotation est devenue un _fallback_.
- Le reformatage du MCD pour le faire entrer dans une grille minimale n'avait de sens que s'il était suivi d'un réarrangement du MCD. Il y est désormais intégré comme pré-traitement. L'option `--fit` est donc retirée.
- Mocodo online n'essaie plus de donner un titre à votre MCD.
- Gabarit `json`.
- Gabarit `txt2tags`.
- Gabarit `html` : le survol d'un champ n'affiche plus d'informations de déboggage. Utilisez le gabarit dédié `debug`.

3.2.1

**Full Changelog**: https://github.com/laowantong/mocodo/compare/3.2.0...3.2.1

Page 2 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.