Metadata-Version: 2.1
Name: InclusionMap
Version: 1.5.2
Summary: A tool for generating the inclusion map of a programming project. Several programming languages are supported.
Home-page: https://github.com/VictorLaugt/InclusionMap
Author: Victor Laügt
Author-email: victorlaugtdev@gmail.com
License: GPLv3
Keywords: dependency graph map programming project tool
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: distinctipy==1.3.4
Requires-Dist: matplotlib>=3.8.2
Requires-Dist: netgraph>=4.13.2
Requires-Dist: networkx>=3.2.1
Requires-Dist: numpy>=2.0.1
Requires-Dist: ijson>=3.3.0

# InclusionMap

![Tests](https://github.com/VictorLaugt/InclusionMap/actions/workflows/python-app.yml/badge.svg)
![Tests](https://github.com/VictorLaugt/InclusionMap/actions/workflows/pip-install.yml/badge.svg)


## Installation
`pip install InclusionMap`

## Utilisation
`inclusionmap LIST_OF_DIRECTORIES ... -l PROGRAMMING_LANGUAGE [OPTIONS]`
ou
`python3 -m inclusion_map LIST_OF_DIRECTORIES ... -l PROGRAMMING_LANGUAGE [OPTIONS]`

### Options générales
`LIST_OF_DIRECTORIES ...`
Répertoires racines du projet.

`[{-I|--include-dirs}]`
Répertoires dans lesquels commence la recherche des fichiers inclus.
Par défaut, cherche dans tous les répertoires racines.


`{-l|--language} {c|c++|python}`
Langage dans lequel sont écrits les fichiers du projet.

`[{-e|--extensions} LIST_OF_EXTENSIONS ...]`
Extensions des fichiers à afficher dans le graphe.
Par défaut, détermine automatiquement les extensions selon le langage utilisé.

`[{-i|--ignore-dirs} LIST_OF_STRINGS ...]`
Répertoires à ignorer.
Par défaut, détermine automatiquement les répertoires à ignorer selon le langage
utilisé (par exemple `__pycache__` pour python).


`[{-s|--simplify}]`
Simplifie le graphe en exploitant la transitivité de la relation d'inclusion.
Si x inclut y, y inclut z et x inclut z, alors n'affiche pas le fait que x inclut z.


### Options graphiques
`[--display-algorithm {patchwork|circo|osage|sfdp|dot|twopi|neato|fdp}]`
Nom d'un algorithme d'affichage de graphe.
Pour utiliser un autre algorithme d'affichage que `default`, il est nécessaire d'installer le paquet [pygraphviz](https://pygraphviz.github.io/documentation/stable/install.html).

`[--font-size INTEGER]`
Taille de la police utilisée pour écrire les noms des nœuds.


### TODO: Commande `inverted`
Construit le graphe des dépendances inverses d'un ensemble donné de fichiers.
I.e part d'un ensemble donné de fichiers et affiche sur le graphe les fichiers
qui incluent au moins l'un d'eux.

`LIST_OF_FILES ...`
Fichiers de départ à partir desquels on parcourt les dépendances inverses.

`[--max-depth INTEGER]`
Profondeur maximale des nœuds apparaissant sur le graphe (Infinie par défaut).
