elrahpy 0.1.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
elrahpy-0.1.5/PKG-INFO ADDED
@@ -0,0 +1,647 @@
1
+ Metadata-Version: 2.4
2
+ Name: elrahpy
3
+ Version: 0.1.5
4
+ Summary: Package pour renforcer mes compétences, améliorer ma productivité et partager mon expertise avec la communauté
5
+ Home-page: https://github.com/Harlequelrah/Library-ElrahPy
6
+ Author: Harlequelrah
7
+ Author-email: maximeatsoudegbovi@example.com
8
+ License: LGPL-3.0-only
9
+ Requires-Python: >=3.10
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: numpy>=1.18.0
12
+ Requires-Dist: turtle
13
+ Requires-Dist: python-dateutil
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: description
17
+ Dynamic: description-content-type
18
+ Dynamic: home-page
19
+ Dynamic: license
20
+ Dynamic: requires-dist
21
+ Dynamic: requires-python
22
+ Dynamic: summary
23
+
24
+ # Description
25
+
26
+ Passionné par la programmation et le développement en Python, je crée une bibliothèque personnalisée pour renforcer mes compétences, améliorer ma productivité et partager mon expertise avec la communauté.
27
+
28
+ # Installation
29
+
30
+ - **Avec GitHub :**
31
+
32
+ ```bash
33
+ git clone https://github.com/Harlequelrah/Library-harlequelrah_py
34
+ ```
35
+
36
+ - **Avec pip :**
37
+
38
+ ```bash
39
+ pip install harlequelrah_py
40
+ ```
41
+
42
+ # Documentation
43
+
44
+ Ce package contient plusieurs modules utiles pour divers calculs et manipulations de données. Voici un aperçu de leurs fonctionnalités.
45
+
46
+ ## Module integer
47
+
48
+ ### 1. Sous Module `base_converter`
49
+
50
+ Le module `base_converter` contient des fonctions pour effectuer des conversions de base numérique.
51
+
52
+ - **`binary(x)`** : Convertit un nombre entier en une chaîne de caractères représentant sa valeur en binaire sans le préfixe `0b`.
53
+
54
+ ```python
55
+ from harlequelrah_py.base_converter import binary
56
+
57
+ result = binary(10) # Résultat : 1010
58
+ ```
59
+
60
+ - **Paramètre :**
61
+ - `x` (int) : Le nombre entier à convertir en binaire.
62
+ - **Retourne :**
63
+ - `int` : La représentation binaire sans le préfixe `0b`.
64
+
65
+ - **`base_format(n, f)`** : Convertit un nombre entier `n` en fonction de la base spécifiée par `f`.
66
+
67
+ ```python
68
+ from harlequelrah_py.base_converter import base_format
69
+
70
+ result_bin = base_format(10, "b") # Résultat : "1010"
71
+ result_hex = base_format(10, "h") # Résultat : "a"
72
+ result_dec = base_format(10, "d") # Résultat : "10"
73
+ ```
74
+
75
+ - **Paramètres :**
76
+ - `n` (int) : Le nombre entier à convertir.
77
+ - `f` (str) : Le format de base à utiliser pour la conversion. Peut prendre les valeurs suivantes :
78
+ - `"b"` : Convertit `n` en binaire.
79
+ - `"h"` : Convertit `n` en hexadécimal.
80
+ - `"d"` : Convertit `n` en décimal.
81
+
82
+ ### 2. Sous Module `math_primes`
83
+
84
+ Le module `math_primes` contient des fonctions pour effectuer des opérations liées aux nombres premiers et aux diviseurs.
85
+
86
+ - **`prem(nbr)`** : Vérifie si un nombre est premier.
87
+
88
+ ```python
89
+ from harlequelrah_py.math_primes import prem
90
+
91
+ result = prem(7) # Résultat : True
92
+ ```
93
+
94
+ - **Paramètre :**
95
+ - `nbr` (int) : Le nombre entier à vérifier.
96
+ - **Retourne :**
97
+ - `bool` : `True` si `nbr` est premier, sinon `False`.
98
+
99
+ - **`prd_fct(nbr)`** : Retourne un dictionnaire des facteurs premiers d'un nombre.
100
+
101
+ ```python
102
+ from harlequelrah_py.math_primes import prd_fct
103
+
104
+ result = prd_fct(18) # Résultat : {2: 1, 3: 2}
105
+ ```
106
+
107
+ - **Paramètre :**
108
+ - `nbr` (int) : Le nombre entier à factoriser.
109
+ - **Retourne :**
110
+ - `dict` : Dictionnaire où les clés sont les facteurs premiers et les valeurs sont leurs puissances.
111
+
112
+ - **`nbr_div(nbr)`** : Calcule le nombre de diviseurs d'un nombre.
113
+
114
+ ```python
115
+ from harlequelrah_py.math_primes import nbr_div
116
+
117
+ result = nbr_div(36) # Résultat : 9
118
+ ```
119
+
120
+ - **Paramètre :**
121
+ - `nbr` (int) : Le nombre entier à analyser.
122
+ - **Retourne :**
123
+ - `int` : Nombre total de diviseurs.
124
+
125
+ - **`list_div(nbr)`** : Retourne la liste des diviseurs d'un nombre.
126
+
127
+ ```python
128
+ from harlequelrah_py.math_primes import list_div
129
+
130
+ result = list_div(36) # Résultat : [1, 2, 3, 4, 6, 9, 12, 18, 36]
131
+ ```
132
+
133
+ - **Paramètre :**
134
+ - `nbr` (int) : Le nombre entier dont on veut la liste des diviseurs.
135
+ - **Retourne :**
136
+ - `list` : Liste des diviseurs triée en ordre croissant.
137
+
138
+ ### 3. Sous Module `math_utils`
139
+
140
+ Le module `math_utils` contient des fonctions utilitaires mathématiques.
141
+
142
+ - **`fibonacci(n)`** : Génère la séquence de Fibonacci jusqu'à une limite donnée.
143
+
144
+ ```python
145
+ from harlequelrah_py.math_utils import fibonacci
146
+
147
+ result = fibonacci(10) # Résultat : [0, 1, 1, 2, 3, 5, 8]
148
+ ```
149
+
150
+ - **Paramètre :**
151
+ - `n` (int) : La limite supérieure pour générer la séquence de Fibonacci.
152
+ - **Retourne :**
153
+ - `list` : Liste contenant la séquence de Fibonacci jusqu'à `n`.
154
+
155
+ - **`fct(n)`** : Calcule le factoriel d'un nombre.
156
+
157
+ ```python
158
+ from harlequelrah_py.math_utils import fct
159
+
160
+ result = fct(5) # Résultat : 120
161
+ ```
162
+
163
+ - **Paramètre :**
164
+ - `n` (int) : Le nombre entier pour lequel on veut calculer le factoriel.
165
+ - **Retourne :**
166
+ - `int` : Le factoriel de `n`.
167
+
168
+ ## Module date
169
+
170
+ ### 1. Sous-module `clock`
171
+
172
+ Le sous-module `clock` contient des fonctions pour la gestion des dates et des heures.
173
+
174
+ - **is_bisectile(year)** : Renvoie `True` si c'est une année bissextile et `False` sinon.
175
+
176
+ ```python
177
+ from harlequelrah_py.date.clock import is_bisectile
178
+
179
+ result = is_bisectile(2020) # Résultat : True
180
+ ```
181
+
182
+ - **Paramètre :**
183
+ - `year` (int) : L année pour laquelle on veut vérifier si elle est bisectile
184
+ -**Retourne:**
185
+ - `bool` : True si l'année est bissextile, sinon False.
186
+
187
+ - **interval(birthday_year, birthday_month, birthday_day, type=None) :** Renvoie un intervalle de temps d'une date à aujourd'hui.
188
+
189
+ ```python
190
+ from harlequelrah_py.date.clock import interval
191
+
192
+ result_years = interval(1990, 5, 15, "year") # Résultat : (nombre d'années depuis 1990-05-15)
193
+ result_months = interval(1990, 5, 15, "month") # Résultat : (nombre de mois depuis 1990-05-15)
194
+ result_days = interval(1990, 5, 15, "day") # Résultat : (nombre de jours depuis 1990-05-15)
195
+ ```
196
+
197
+ - **Paramètres :**
198
+ - `birthday_year` (int) : L'année de naissance.
199
+ - `birthday_month` (int) : Le mois de naissance.
200
+ - `birthday_day` (int) : Le jour de naissance.
201
+ - `type` (str, optionnel) : Le type d'intervalle à renvoyer. Peut prendre les valeurs suivantes :
202
+ - "year" ou "y" : Renvoie l'intervalle en années.
203
+ - "month" ou "m" : Renvoie l'intervalle en mois.
204
+ - "day" ou "d" : Renvoie l'intervalle en jours.
205
+ - **Retourne :**
206
+ - `int` ou `None` : Le nombre d'années, de mois ou de jours selon le type spécifié, ou None si le type n'est pas reconnu.
207
+
208
+ ## Module files
209
+
210
+ ### Sous-module myfiles
211
+
212
+ Le sous-module `myfiles` contient des fonctions pour gérer les opérations sur les fichiers.
213
+
214
+ - **recopie(ficher_source, ficher_destination, debit)** : Recopie le contenu d'un fichier source vers un fichier de destination en plusieurs blocs.
215
+
216
+ ```python
217
+ from harlequelrah_py.files.myfiles import recopie
218
+
219
+ recopie("source.txt", "destination.txt", 1024) # Copie le contenu de source.txt à destination.txt
220
+ ```
221
+
222
+ - **Paramètres :**
223
+ - `ficher_source` (str) : Le chemin du fichier source à recopier.
224
+ - `ficher_destination` (str) : Le chemin du fichier de destination.
225
+ - `debit` (int) : Le nombre de caractère à recopier à chaque fois.
226
+ - **Retourne :**
227
+ - `None` : La fonction ne retourne rien.
228
+
229
+ - **filereset(file)** : Efface le contenu d'un fichier.
230
+
231
+ ```python
232
+ from harlequelrah_py.files.myfiles import filereset
233
+ filereset("file.txt") # Efface le contenu de file.txt
234
+ ```
235
+
236
+ - **Paramètre :**
237
+ - `file` (str) : Le chemin du fichier dont le contenu doit être effacé.
238
+ - **Retourne :**
239
+ - `None` : La fonction ne retourne rien.
240
+
241
+ - **rline(file, line)** : Lit une ligne spécifique d'un fichier (le premier indice est 1).
242
+
243
+ ```python
244
+ from harlequelrah_py.files.myfiles import rline
245
+ rline("file.txt", 3) # Lit la 3ème ligne de file.txt
246
+ ```
247
+
248
+ - **Paramètre :**
249
+ - `file` (str) : Le chemin du fichier à lire.
250
+ - `line` (int) : Le numéro de la ligne à lire.
251
+ - **Retourne :**
252
+ - `None` : La fonction ne retourne rien.
253
+
254
+ -**delfile(file, element)** : Efface toutes les lignes d'un fichier commençant par un élément en particulier.
255
+
256
+ ```python
257
+ from harlequelrah_py.files.myfiles import delfile
258
+ delfile("file.txt", "#") # Efface toutes les lignes de file.txt qui commencent par "#"
259
+ ```
260
+
261
+ - **Paramètre :**
262
+ - `file` (str) : Le chemin du fichier à lire.
263
+ - `element` (str) : L'élément par lequel les lignes à effacer commencent.
264
+ - **Retourne :**
265
+ - `None` : La fonction ne retourne rien.
266
+
267
+ - **repline(file, line, line_content)** : Remplace le contenu d'une ligne à une position précise.
268
+
269
+ ```python
270
+ from harlequelrah_py.files.myfiles import repline
271
+ repline("file.txt", 1, "Nouvelle ligne 1") # Remplace la 1ère ligne de file.txt par "Nouvelle ligne 1"
272
+ ```
273
+
274
+ - **Paramètre :**
275
+ - `file` (str) : Le chemin du fichier à lire.
276
+ - `line` (int) : Le numéro de la ligne à remplacer.
277
+ - `line_content` (str) : Le nouveau contenu de la ligne.
278
+ - **Retourne :**
279
+ - `None` : La fonction ne retourne rien.
280
+
281
+ - **insline(file, line, line_content)** : Insère une ligne à une position précise.
282
+
283
+ ```python
284
+ from harlequelrah_py.files.myfiles import insline
285
+ insline("file.txt", 2, "Ligne insérée") # Insère "Ligne insérée" à la 2ème position de file.txt
286
+ ```
287
+
288
+ - **Paramètre :**
289
+ - `file` (str) : Le chemin du fichier à lire.
290
+ - `line` (int) : Le numéro de la ligne à inserer.
291
+ - `line_content` (str) : Le nouveau contenu de la ligne.
292
+ - **Retourne :**
293
+ - `None` : La fonction ne retourne rien.
294
+
295
+ ## Module `turtle`
296
+
297
+ #### Sous-module `geometric_shape`
298
+
299
+ Le sous-module `geometric_shape` permet de dessiner des formes géométrique
300
+
301
+ **figure** : Tracer une forme géométrique avec des couleurs différentes.
302
+
303
+ Fonction : `figure(nbr_figure, rayon, nbr_cote=None, position=[], couleur=[], orientation=0)`
304
+
305
+ Exemple d'utilisation :
306
+
307
+ ```python
308
+ from harlequelrah_py.geometric_shape import figure
309
+
310
+ figure(
311
+ nbr_figure=3,
312
+ rayon=50,
313
+ nbr_cote=4,
314
+ position=[(0, 0), (100, 100), (200, 0)],
315
+ couleur=["red", "blue", "green"],
316
+ orientation=0
317
+ )
318
+ ```
319
+
320
+ - **Paramètres** :
321
+ - `nbr_figure` : `int` - Nombre de figures à tracer
322
+ - `rayon` : `int` - Rayon de chaque figure
323
+ - `nbr_cote` : `Optional[int]` - Nombre de côtés (None pour un cercle)
324
+ - `position` : `List[Tuple[int, int]]` - Liste des positions de chaque figure
325
+ - `couleur` : `List[str]` - Liste des couleurs pour chaque figure
326
+ - `orientation` : `int` - Orientation initiale des figures
327
+ - **Retour** : `None`
328
+
329
+ **rectangle** : Dessiner un rectangle.
330
+
331
+ Fonction : `rectangle(L, l, inside_color="white", line_color="black")`
332
+
333
+ Exemple d'utilisation :
334
+
335
+ ```python
336
+ from harlequelrah_py.geometric_shape import rectangle
337
+
338
+ rectangle(
339
+ L=100,
340
+ l=50,
341
+ inside_color="yellow",
342
+ line_color="black"
343
+ )
344
+ ```
345
+
346
+ - **Paramètres** :
347
+ - `L` : `int` - Longueur du rectangle
348
+ - `l` : `int` - Largeur du rectangle
349
+ - `inside_color` : `str` - Couleur de remplissage
350
+ - `line_color` : `str` - Couleur du contour
351
+ - **Retour** : `None`
352
+
353
+
354
+ #### Sous-module `particular_shape`
355
+ Le sous-module `particular_shape` permet de dessiner des formes particulières
356
+
357
+ **heart** : Dessiner un coeur
358
+
359
+ Fonction : `heart(inside_color="white", line_color="black", background_color="white")`
360
+
361
+ Exemple d'utilisation :
362
+
363
+ ```python
364
+ from harlequelrah_py.particular_shape import heart
365
+
366
+ heart(
367
+ inside_color="red",
368
+ line_color="black",
369
+ background_color="pink"
370
+ )
371
+ ```
372
+
373
+ - **Paramètres** :
374
+ - `inside_color` : `str` - Couleur de remplissage du cœur
375
+ - `line_color` : `str` - Couleur du contour
376
+ - `background_color` : `str` - Couleur de fond
377
+ - **Retour** : `None`
378
+
379
+ ## Module `string`
380
+ #### Sous-Module `mychar`
381
+ Le sous-module `mychar` permet de faire des opérations spécifiques sur les chaines de caractère
382
+
383
+ **voy** : verifie si le caractère est une voyelle et en renvoie un boolean
384
+
385
+ ```python
386
+ from harlequelrah_py.string.mychar import voy
387
+ voy('a') # Renvoie True
388
+ voy('b') # Renvoie False
389
+ ```
390
+ - **Paramètre** :
391
+ - `x` (`string`) : le caractère à verifier.
392
+ - **Retourne** :
393
+ - `boolean` : `True` si x est une voyelle et `False` sinon.
394
+
395
+ **nbr_voy** :Renvoie le nombre de voyelles dans une chaîne de caractères.
396
+
397
+ ```python
398
+ from harlequelrah_py.string.mychar import nbr_voy
399
+ nbr_voy("example") # Renvoie 3 (pour 'e', 'a' et 'e')
400
+ ```
401
+ - **Paramètre** :
402
+ - `y` (`string`) : La chaîne de caractères à analyser.
403
+ - **Retourne** :
404
+ - `int` : Le nombre de voyelles présentes dans y.
405
+
406
+ **inter_char** : Vérifie si un caractère donné est compris entre deux autres caractères (selon l'ordre ASCII).
407
+
408
+ ```python
409
+ from harlequelrah_py.string.mychar import inter_char
410
+ inter_char('m', 'a', 'z') # Renvoie True
411
+ inter_char('A', 'a', 'z') # Renvoie False
412
+ ```
413
+ - **Paramètre** :
414
+ - `char` (`string`) : Le caractère à verifier.
415
+ - `char_1` (`string`) : La borne inférieure.
416
+ - `char_2` (`string`) : La borne supérieure.
417
+ - **Retourne** :
418
+ - `boolean` : `True` si `char` est entre `char_1` et `char_2`, `False` sinon.
419
+
420
+ **minusmaj** : Détecte si un caractère est en minuscule, en majuscule, ou aucun des deux.
421
+
422
+ ```python
423
+ from harlequelrah_py.string.mychar import minusmaj
424
+ minusmaj('a') # Renvoie True
425
+ minusmaj('A') # Renvoie False
426
+ minusmaj('1') # Renvoie None
427
+ ```
428
+ - **Paramètre** :
429
+ - `char` (`string`) : Le caractère à verifier.
430
+ - **Retourne** :
431
+ - `boolean` : `True` si `char` est entre minuscule , `False` si char est en majuscule et `None` sinon aucun des deux.
432
+
433
+ #### Sous-Module `mysequence`
434
+ Le sous-module `mysequence` permet de faire des opérations spécifiques sur les chaines de caractère
435
+
436
+ **all_index** : Renvoie une liste contenant les indices de toutes les occurrences d’un élément dans une chaîne de caractères ou une liste.
437
+
438
+ ```python
439
+ from harlequelrah_py.string.mysequence import all_index
440
+ all_index("banana", "a") # Renvoie [1, 3, 5]
441
+ ```
442
+ - **Paramètre** :
443
+ - `char` (`string` ou `list`) : La chaîne de caractères ou la liste dans laquelle chercher.
444
+ - `element` (`string` ou `int`) : L' élément à rechercher .
445
+ - **Retourne** :
446
+ - `list` : Une liste d’indices où element apparaît dans phrase_1.
447
+
448
+ **supp_all** : Supprime toutes les occurrences d’un élément donné dans une liste ou une chaîne de caractères.
449
+
450
+ ```python
451
+ from harlequelrah_py.string.mysequence import supp_all
452
+ supp_all([1, 2, 3, 2, 4], 2) # Renvoie [1, 3, 4]
453
+ ```
454
+ - **Paramètre** :
455
+ - `char` (`string` ou `list`) : La liste ou chaîne à modifier.
456
+ - `element` (`string` ou `int`) : L' élément à rechercher .
457
+ - **Retourne** :
458
+ - `list` : La liste ou chaîne de caractères sans les occurrences de element.
459
+
460
+ **ispalindrome**: Vérifie si une chaîne ou une liste est un palindrome.
461
+
462
+ ```python
463
+ from harlequelrah_py.string.mysequence import pal
464
+ pal("radar") # Renvoie True
465
+ pal("hello") # Renvoie False
466
+ ```
467
+ - **Paramètre** :
468
+ - `seq` (`string` ou `list`) : La liste ou chaîne à verifier.
469
+ - **Retourne** :
470
+ - `boolean` : `True` si `seq` est un palindrome, `False` sinon.
471
+
472
+ **nbr_element** :Renvoie le nombre de chaque occurrences de chaque element dans une chaîne de caractères ou une liste.
473
+
474
+ ```python
475
+ from harlequelrah_py.string.mysequence import nbr_let
476
+ nbr_element("hello") # Renvoie {'h': 1, 'e': 1, 'l': 2, 'o': 1}
477
+ nbr_element("hello", "l") # Renvoie 2
478
+ nbr_element([1, 2, 1, 4, 5, 6, 7, 6, 9, 2, 7]) # Renvoie {1: 2, 2: 2, 4: 1, 5: 1, 6: 2, 7: 2, 9: 1}
479
+
480
+ ```
481
+ - **Paramètre** :
482
+ - `seq` (`string` ou `list`) : La chaîne à analyser.
483
+ - **Retourne** :
484
+ - `dict` `int` : Un dictionnaire avec chaque element et son nombre d’occurrences, ou un entier représentant le nombre d’occurrences de x.
485
+
486
+ **show_casse** :Analyse les caractères en majuscule et minuscule dans une chaîne ou une liste et retourne des listes spécifiques en fonction du paramètre casse.
487
+
488
+ ```python
489
+ from harlequelrah_py.string.mysequence import casse
490
+ casse("Hello World") # Renvoie (['e', 'l', 'o'], ['H', 'W'])
491
+ casse("Hello World", 0) # Renvoie ['e', 'l', 'o']
492
+ casse("Hello World", 1) # Renvoie ['H', 'W']
493
+ casse("Hello World", -1) # Renvoie [3, 2]
494
+ ```
495
+ - **Paramètre** :
496
+ - char_liste (string ou list) : La chaîne ou liste de caractères à analyser.
497
+ - show_casse (int, optionnel) :
498
+ - Si None, renvoie une liste des minuscules et une liste des majuscules.
499
+ - Si 0, renvoie uniquement les minuscules.
500
+ - Si 1, renvoie uniquement les majuscules.
501
+ - Si -1, renvoie le nombre de minuscules et de majuscules.
502
+ - **Retourne** :
503
+ - `tuple` ou `list` : Les listes de minuscules et de majuscules, ou des décomptes en fonction du paramètre casse.
504
+
505
+ #### Sous-Module `mycryptography`
506
+ Le sous-module `mycryptography` permet de faire des opérations spécifiques sur le codage par cryptographie.
507
+
508
+ **cesar** : Encode ou décode un mot en utilisant le chiffrement de César avec une clé de décalage spécifiée.
509
+ ```python
510
+ from harlequelrah_py.string.mycryptography import cesar
511
+ cesar("Bonjour", operation=1, k=3) # Encode le mot et renvoie Erqmrxu
512
+ cesar("Erqmrxu", operation=-1, k=3) # Decode le mot et renvoie Bonjour
513
+ ```
514
+ - **Paramètres** :
515
+ - mot (`string`) : Le mot à coder ou décoder.
516
+ - operation (`int`) : 1 pour coder, -1 pour décoder.
517
+ - k (`int`) : La clé de décalage pour le chiffrement (par défaut 3).
518
+ - **Retourne** :
519
+ - `string` : Le mot codé ou décodé selon le chiffrement de César.
520
+
521
+ **verif_cesar** : Décrypte un mot codé en utilisant le chiffrement de César et renvoie un dictionnaire des possibilités en fonction de chaque décalage possible.
522
+ ```python
523
+ from harlequelrah_py.string.mycryptography import verif_cesar
524
+ verif_cesar("Erqmrxu") # Renvoie toutes les possibilités de décodage ex : {'Erqmrxu': 0, 'Dqplqwt': 1, 'Cpokpvs': 2, 'Bonjour': 3,...}
525
+ ```
526
+ - **Paramètres** :
527
+ - mot (`string`) : Le mot à déchiffrer.
528
+ - **Retourne** :
529
+ - `dict` : Un dictionnaire où chaque clé est une possibilité de mot clair et la valeur correspond au décalage.
530
+
531
+ **z_cesar** : Décrypte une phrase ou une chaîne codée en utilisant le chiffrement de César, en renvoyant un dictionnaire des décryptages possibles pour chaque mot de la chaîne.
532
+ ```python
533
+ from harlequelrah_py.string.mycryptography import z_cesar
534
+ z_cesar("Erqmrxu Phz") # Renvoie un dictionnaire des possibilités de mots clairs pour chaque mot de la chaîne ex :{0: 'Erqmrxu Phz', 1: 'Dqplqwt Ogy', 2: 'Cpokpvs Nfx', 3: 'Bonjour Mew'....}
535
+ ```
536
+ - **Paramètres** :
537
+ - chaine (`string`) : La chaîne de caractères codée à analyser
538
+ - **Retourne** :
539
+ - `dict` : Un dictionnaire où chaque clé est un décalage et chaque valeur est la chaîne possible pour ce décalage.
540
+
541
+ ## Module `types`
542
+
543
+ Ce module comporte des classes utilisées comme types ou structure de données
544
+
545
+ ### Sous Module `landmark`
546
+ Ce sous module comporte les classes LandMark et Point
547
+
548
+ **`Point`**
549
+
550
+ - `__init__`:
551
+
552
+ - **paramètres** :
553
+
554
+ - x : **int** représente l'abscisse
555
+
556
+ - y : **int** représente l'ordonnée
557
+
558
+
559
+ **`LandMark`** :
560
+
561
+ - `__init__` :
562
+
563
+ - **paramètres** :
564
+
565
+ - type_land_mark: **type** , default Any
566
+
567
+ - land_marks: **dict[Point,type_land_mark:type]**
568
+
569
+ - `get_point` : retourne le point dans le repere à partir de ces coordonnées
570
+
571
+ - **paramètres** :
572
+
573
+ - point : **Point**
574
+
575
+ - `set_point` : change un point et sa valeur
576
+
577
+ - **paramètres** :
578
+
579
+ - point : **Point**
580
+
581
+ - obj : **type_land_mark**
582
+
583
+
584
+ - `add_point` : ajoute un point et sa valeur
585
+
586
+ - **paramètres** :
587
+
588
+ - point : **Point**
589
+
590
+ - obj : **type_land_mark**
591
+
592
+ - `is_valid_obj` : verifie si un objet est valide du type **type_land_mark**
593
+
594
+ - **paramètres** :
595
+
596
+ - obj : **type_land_mark**
597
+
598
+ - **sortie** : **bool** -
599
+
600
+ - `exist_point` : verifie si un point existe
601
+
602
+ - **paramètres** :
603
+
604
+ - point : **Point**
605
+
606
+ - **sortie** : **bool**
607
+
608
+
609
+ - `remove_point` : retire un point du repère
610
+
611
+ - **paramètres** :
612
+
613
+ - point : **Point**
614
+
615
+ - `list_marks` : liste les coordonnées et leurs valeurs
616
+
617
+ - `land_marks` **@property**
618
+
619
+ `ex` :
620
+
621
+ ```python
622
+ my_land = LandMark()
623
+ my_land.add_point(Point(2,5),55)
624
+ my_land.list_marks()
625
+ my_land.set_point(Point(2,5),"mdr")
626
+ my_land.list_marks()
627
+ my_land.remove_point(Point(2,5))
628
+ my_land.list_marks()
629
+
630
+
631
+ new_land = LandMark(type_land_mark=int)
632
+ new_land.add_point(Point(1,2),2)
633
+ new_land.add_point(Point(2,3),3)
634
+ new_land.list_marks()
635
+ new_land.add_point(Point(1,2),"hi") # Provoque une erreur
636
+ ```
637
+
638
+
639
+
640
+ ## Contact ou Support
641
+ Pour des questions ou du support, contactez-moi à maximeatsoudegbovi@gmail.com ou au (+228) 91 36 10 29.
642
+
643
+
644
+
645
+
646
+
647
+