iziproxy 0.4.0__tar.gz → 0.4.2__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.
- iziproxy-0.4.2/PKG-INFO +398 -0
- iziproxy-0.4.2/README.md +341 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/pyproject.toml +1 -1
- iziproxy-0.4.2/src/iziproxy.egg-info/PKG-INFO +398 -0
- iziproxy-0.4.0/PKG-INFO +0 -204
- iziproxy-0.4.0/README.md +0 -147
- iziproxy-0.4.0/src/iziproxy.egg-info/PKG-INFO +0 -204
- {iziproxy-0.4.0 → iziproxy-0.4.2}/LICENSE +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/setup.cfg +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/setup.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/__init__.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/config_manager.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/env_detector.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/logger.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/ntlm_auth.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/proxy_detector.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/proxy_manager.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy/secure_config.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy.egg-info/SOURCES.txt +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy.egg-info/dependency_links.txt +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy.egg-info/requires.txt +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/src/iziproxy.egg-info/top_level.txt +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_config_manager.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_config_manager_extended.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_edge_cases.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_env_detector.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_integration.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_logger.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_ntlm_auth.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_proxy_detector.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_proxy_manager.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_public_api.py +0 -0
- {iziproxy-0.4.0 → iziproxy-0.4.2}/tests/test_secure_config.py +0 -0
iziproxy-0.4.2/PKG-INFO
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iziproxy
|
|
3
|
+
Version: 0.4.2
|
|
4
|
+
Summary: Une bibliothèque Python pour la gestion simplifiée des proxys d'entreprise
|
|
5
|
+
Author: sanjuant
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2025 IziProxy Contributors
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Homepage, https://github.com/sanjuant/iziproxy
|
|
29
|
+
Project-URL: Bug Tracker, https://github.com/sanjuant/iziproxy/issues
|
|
30
|
+
Keywords: proxy,enterprise,authentication,ntlm,requests,configuration,development,pac
|
|
31
|
+
Classifier: Programming Language :: Python :: 3
|
|
32
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
33
|
+
Classifier: Operating System :: OS Independent
|
|
34
|
+
Classifier: Development Status :: 4 - Beta
|
|
35
|
+
Classifier: Intended Audience :: Developers
|
|
36
|
+
Classifier: Topic :: Internet :: Proxy Servers
|
|
37
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
38
|
+
Requires-Python: >=3.7
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
License-File: LICENSE
|
|
41
|
+
Requires-Dist: requests>=2.25.0
|
|
42
|
+
Requires-Dist: PyYAML>=6.0
|
|
43
|
+
Requires-Dist: keyring>=23.0.0
|
|
44
|
+
Requires-Dist: cryptography>=36.0.0
|
|
45
|
+
Requires-Dist: importlib_metadata>=4.0.0; python_version < "3.8"
|
|
46
|
+
Provides-Extra: ntlm
|
|
47
|
+
Requires-Dist: ntlm-auth>=1.5.0; extra == "ntlm"
|
|
48
|
+
Requires-Dist: pycryptodomex>=3.14.1; extra == "ntlm"
|
|
49
|
+
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: pytest>=6.0.0; extra == "dev"
|
|
51
|
+
Requires-Dist: pytest-cov>=2.12.0; extra == "dev"
|
|
52
|
+
Requires-Dist: black>=22.0.0; extra == "dev"
|
|
53
|
+
Requires-Dist: flake8>=4.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: sphinx>=4.0.0; extra == "dev"
|
|
55
|
+
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "dev"
|
|
56
|
+
Dynamic: license-file
|
|
57
|
+
|
|
58
|
+
# IziProxy
|
|
59
|
+
|
|
60
|
+
Une bibliothèque Python pour la gestion simplifiée des proxys d'entreprise.
|
|
61
|
+
|
|
62
|
+
[](https://pypi.org/project/iziproxy/)
|
|
63
|
+
[](https://pypi.org/project/iziproxy/)
|
|
64
|
+
[](https://github.com/sanjuant/iziproxy/blob/main/LICENSE)
|
|
65
|
+
|
|
66
|
+
## 🚀 Fonctionnalités
|
|
67
|
+
|
|
68
|
+
- 🔍 **Détection intelligente** - Reconnaissance automatique de l'environnement (local, dev, prod)
|
|
69
|
+
- 🌐 **Proxy système** - Détection automatique des configurations de proxy système et support des fichiers PAC
|
|
70
|
+
- 🔐 **Gestion sécurisée** - Stockage des identifiants via keyring, variables d'environnement et fichiers .env
|
|
71
|
+
- 🔄 **Support complet** - Compatible avec l'authentification basique et NTLM pour les proxys d'entreprise
|
|
72
|
+
- 🛠️ **API flexible** - Multiples façons d'intégrer le proxy dans vos applications Python
|
|
73
|
+
- 🔌 **Intégration transparente** - Patching dynamique du module requests pour les applications existantes
|
|
74
|
+
|
|
75
|
+
## 📦 Installation
|
|
76
|
+
|
|
77
|
+
Installation standard :
|
|
78
|
+
```bash
|
|
79
|
+
pip install iziproxy
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Avec support NTLM (recommandé pour les environnements Windows d'entreprise) :
|
|
83
|
+
```bash
|
|
84
|
+
pip install iziproxy[ntlm]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Avec outils de développement :
|
|
88
|
+
```bash
|
|
89
|
+
pip install iziproxy[dev]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 🚦 Utilisation rapide
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
from iziproxy import IziProxy
|
|
96
|
+
|
|
97
|
+
# Création avec détection automatique
|
|
98
|
+
proxy = IziProxy()
|
|
99
|
+
|
|
100
|
+
# Méthode 1: Obtenir une session requests préconfigurée
|
|
101
|
+
session = proxy.create_session()
|
|
102
|
+
response = session.get('https://example.com')
|
|
103
|
+
|
|
104
|
+
# Méthode 2: Utiliser comme dictionnaire de proxy standard
|
|
105
|
+
proxies = proxy.get_proxy_dict()
|
|
106
|
+
response = requests.get('https://example.com', proxies=proxies)
|
|
107
|
+
|
|
108
|
+
# Méthode 3: Configurer les variables d'environnement
|
|
109
|
+
proxy.set_environment_variables()
|
|
110
|
+
# Les bibliothèques qui respectent les variables d'environnement utiliseront le proxy
|
|
111
|
+
# N'oubliez pas de nettoyer après utilisation avec proxy.clear_environment_variables()
|
|
112
|
+
|
|
113
|
+
# Méthode 4: Patcher le module requests (monkey patching)
|
|
114
|
+
proxy.patch_requests()
|
|
115
|
+
# Désormais, toutes les requêtes requests utiliseront le proxy
|
|
116
|
+
import requests
|
|
117
|
+
response = requests.get('https://example.com')
|
|
118
|
+
# Pour restaurer le comportement d'origine: proxy.unpatch_requests()
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## ⚙️ Configuration
|
|
122
|
+
|
|
123
|
+
IziProxy fonctionne sans configuration, mais vous pouvez personnaliser son comportement :
|
|
124
|
+
|
|
125
|
+
### Configuration par code
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
from iziproxy import IziProxy
|
|
129
|
+
|
|
130
|
+
proxy = IziProxy(
|
|
131
|
+
proxy_url="http://proxy.example.com:8080", # URL spécifique du proxy
|
|
132
|
+
pac_url="http://pac.example.com/proxy.pac", # URL d'un fichier PAC
|
|
133
|
+
username="user", # Nom d'utilisateur
|
|
134
|
+
password="pass", # Mot de passe
|
|
135
|
+
domain="DOMAIN", # Domaine (pour NTLM)
|
|
136
|
+
environment="prod", # Forcer l'environnement
|
|
137
|
+
debug=True # Activer les logs détaillés
|
|
138
|
+
)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Configuration par fichier YAML
|
|
142
|
+
|
|
143
|
+
Créez un fichier `iziproxy.yml` dans votre répertoire courant ou dans `~/.config/` :
|
|
144
|
+
|
|
145
|
+
```yaml
|
|
146
|
+
environments:
|
|
147
|
+
local:
|
|
148
|
+
proxy_url: "http://proxy.example.com:8080"
|
|
149
|
+
requires_auth: true
|
|
150
|
+
auth_type: "ntlm" # Authentification NTLM en local (poste Windows)
|
|
151
|
+
dev:
|
|
152
|
+
proxy_url: "http://dev-proxy.example.com:8080"
|
|
153
|
+
requires_auth: true
|
|
154
|
+
auth_type: "basic" # Authentification basique
|
|
155
|
+
prod:
|
|
156
|
+
proxy_url: "http://prod-proxy.example.com:8080"
|
|
157
|
+
requires_auth: false # Souvent pas d'authentification en prod (réseau sécurisé)
|
|
158
|
+
|
|
159
|
+
environment_detection:
|
|
160
|
+
method: "auto" # Méthodes: auto, env_var, hostname, ip, ask
|
|
161
|
+
hostname_patterns: # Patterns pour la détection par hostname
|
|
162
|
+
dev: ["dev-", "-dev", "development"]
|
|
163
|
+
prod: ["prod-", "-prod", "production"]
|
|
164
|
+
hostname_regex: # Expressions régulières pour la détection par nom d'hôte
|
|
165
|
+
local: ["^laptop-\\w+$", "^pc-\\w+$", "^desktop-\\w+$"]
|
|
166
|
+
dev: ["^dev\\d*-", "^staging\\d*-", "^test\\d*-"]
|
|
167
|
+
prod: ["^prod\\d*-", "^production\\d*-"]
|
|
168
|
+
ip_ranges: # Plages IP pour la détection
|
|
169
|
+
dev: ["10.0.0.0/8"]
|
|
170
|
+
prod: ["192.168.0.0/16"]
|
|
171
|
+
env_var_name: "APP_ENV" # Variable d'environnement pour la détection
|
|
172
|
+
|
|
173
|
+
system_proxy:
|
|
174
|
+
detect_pac: true # Détecter les fichiers PAC
|
|
175
|
+
detect_env_vars: true # Détecter les variables d'environnement
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Configuration des identifiants
|
|
179
|
+
|
|
180
|
+
Pour la sécurité, les identifiants (nom d'utilisateur, mot de passe, domaine) ne doivent pas être stockés dans le fichier de configuration. Utilisez plutôt :
|
|
181
|
+
|
|
182
|
+
#### Variables d'environnement
|
|
183
|
+
|
|
184
|
+
IziProxy recherche les variables d'environnement suivantes :
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# Format recommandé
|
|
188
|
+
IZI_USERNAME=mon_utilisateur
|
|
189
|
+
IZI_PASSWORD=mon_mot_de_passe
|
|
190
|
+
IZI_DOMAIN=mon_domaine
|
|
191
|
+
|
|
192
|
+
# Format alternatif (rétrocompatibilité)
|
|
193
|
+
PROXY_USERNAME=mon_utilisateur
|
|
194
|
+
PROXY_PASSWORD=mon_mot_de_passe
|
|
195
|
+
PROXY_DOMAIN=mon_domaine
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
#### Fichier .env
|
|
199
|
+
|
|
200
|
+
Vous pouvez également définir ces variables dans un fichier `.env` :
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# Identifiants pour l'authentification proxy
|
|
204
|
+
IZI_USERNAME=mon_utilisateur
|
|
205
|
+
IZI_PASSWORD=mon_mot_de_passe
|
|
206
|
+
IZI_DOMAIN=mon_domaine
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Le fichier `.env` peut être placé :
|
|
210
|
+
- Dans le répertoire courant (`./.env`)
|
|
211
|
+
- Dans le répertoire de configuration utilisateur (`~/.config/.env`)
|
|
212
|
+
- Dans le répertoire personnel de l'utilisateur (`~/.env`)
|
|
213
|
+
|
|
214
|
+
#### Stockage sécurisé avec keyring
|
|
215
|
+
|
|
216
|
+
Si un nom d'utilisateur est défini mais que le mot de passe est manquant, IziProxy tentera de récupérer le mot de passe depuis le trousseau de clés du système (via `keyring`).
|
|
217
|
+
|
|
218
|
+
Lorsque vous fournissez un mot de passe la première fois, il sera automatiquement enregistré dans le trousseau de clés pour les utilisations futures.
|
|
219
|
+
|
|
220
|
+
## 🧠 Fonctionnalités avancées
|
|
221
|
+
|
|
222
|
+
### Authentification NTLM
|
|
223
|
+
|
|
224
|
+
L'authentification NTLM est souvent utilisée dans les environnements Windows d'entreprise et nécessite une configuration spécifique :
|
|
225
|
+
|
|
226
|
+
```python
|
|
227
|
+
# Installation avec le support NTLM
|
|
228
|
+
# pip install iziproxy[ntlm]
|
|
229
|
+
|
|
230
|
+
from iziproxy import IziProxy
|
|
231
|
+
|
|
232
|
+
# Configuration explicite pour NTLM
|
|
233
|
+
proxy = IziProxy(
|
|
234
|
+
proxy_url="http://proxy.example.com:8080",
|
|
235
|
+
username="utilisateur",
|
|
236
|
+
password="mot_de_passe",
|
|
237
|
+
domain="DOMAIN" # Domaine Windows requis pour NTLM
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
# Le type d'authentification est détecté automatiquement depuis la configuration
|
|
241
|
+
session = proxy.create_session()
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Détection d'environnement
|
|
245
|
+
|
|
246
|
+
IziProxy peut automatiquement détecter l'environnement d'exécution :
|
|
247
|
+
|
|
248
|
+
```python
|
|
249
|
+
from iziproxy import IziProxy
|
|
250
|
+
|
|
251
|
+
proxy = IziProxy()
|
|
252
|
+
env = proxy.get_current_environment() # 'local', 'dev', 'prod'
|
|
253
|
+
print(f"Environnement détecté : {env}")
|
|
254
|
+
|
|
255
|
+
# Forcer un rafraîchissement de toutes les détections
|
|
256
|
+
proxy.refresh()
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Récupération des informations de proxy
|
|
260
|
+
|
|
261
|
+
```python
|
|
262
|
+
from iziproxy import IziProxy
|
|
263
|
+
|
|
264
|
+
proxy = IziProxy()
|
|
265
|
+
|
|
266
|
+
# Obtenir l'hôte et le port du proxy
|
|
267
|
+
host = proxy.get_proxy_host()
|
|
268
|
+
port = proxy.get_proxy_port()
|
|
269
|
+
print(f"Proxy : {host}:{port}")
|
|
270
|
+
|
|
271
|
+
# Obtenir le dictionnaire complet
|
|
272
|
+
proxy_dict = proxy.get_proxy_dict()
|
|
273
|
+
print(f"Configuration complète : {proxy_dict}")
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Intégration avec des bibliothèques tierces
|
|
277
|
+
|
|
278
|
+
L'une des fonctionnalités les plus puissantes d'IziProxy est sa capacité à s'intégrer avec des bibliothèques tierces via le monkey patching :
|
|
279
|
+
|
|
280
|
+
```python
|
|
281
|
+
from iziproxy import IziProxy
|
|
282
|
+
|
|
283
|
+
# Patch global du module requests
|
|
284
|
+
IziProxy().patch_requests()
|
|
285
|
+
|
|
286
|
+
# À partir de maintenant, toutes les bibliothèques utilisant requests bénéficieront
|
|
287
|
+
# automatiquement de la configuration proxy, sans modification du code source
|
|
288
|
+
import requests
|
|
289
|
+
import pandas as pd
|
|
290
|
+
import boto3
|
|
291
|
+
import any_library_using_requests
|
|
292
|
+
|
|
293
|
+
# Pour restaurer le comportement d'origine
|
|
294
|
+
IziProxy().unpatch_requests()
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Gestion du cache
|
|
298
|
+
|
|
299
|
+
IziProxy met en cache les détections pour optimiser les performances. Vous pouvez contrôler ce comportement :
|
|
300
|
+
|
|
301
|
+
```python
|
|
302
|
+
from iziproxy import IziProxy
|
|
303
|
+
|
|
304
|
+
proxy = IziProxy()
|
|
305
|
+
|
|
306
|
+
# Obtenir une configuration spécifique pour une URL donnée (peut utiliser le cache)
|
|
307
|
+
config = proxy.get_proxy_config(url="https://api.example.com")
|
|
308
|
+
|
|
309
|
+
# Forcer un rafraîchissement du cache
|
|
310
|
+
fresh_config = proxy.get_proxy_config(url="https://api.example.com", force_refresh=True)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Mode débogage
|
|
314
|
+
|
|
315
|
+
Pour diagnostiquer les problèmes, activez le mode débogage :
|
|
316
|
+
|
|
317
|
+
```python
|
|
318
|
+
from iziproxy import IziProxy
|
|
319
|
+
|
|
320
|
+
# À l'initialisation
|
|
321
|
+
proxy = IziProxy(debug=True)
|
|
322
|
+
|
|
323
|
+
# Ou plus tard
|
|
324
|
+
proxy.set_debug(enabled=True) # Désactiver avec False
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## 🛠️ Compatibilité
|
|
328
|
+
|
|
329
|
+
IziProxy fonctionne avec Python 3.7 et versions ultérieures, et est compatible avec :
|
|
330
|
+
|
|
331
|
+
- Windows, Linux et macOS
|
|
332
|
+
- Proxys standards HTTP/HTTPS
|
|
333
|
+
- Authentification Basic et NTLM
|
|
334
|
+
- Fichiers de configuration automatique de proxy (PAC)
|
|
335
|
+
- Proxys avec ou sans authentification
|
|
336
|
+
|
|
337
|
+
## 📚 Exemples
|
|
338
|
+
|
|
339
|
+
### Utilisation avec une API wrapper
|
|
340
|
+
|
|
341
|
+
```python
|
|
342
|
+
from some_api_library import ApiClient
|
|
343
|
+
from iziproxy import IziProxy
|
|
344
|
+
|
|
345
|
+
# Créer une session configurée
|
|
346
|
+
session = IziProxy().create_session()
|
|
347
|
+
|
|
348
|
+
# Utiliser cette session avec l'API
|
|
349
|
+
client = ApiClient(session=session)
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Utilisation avec un fichier PAC
|
|
353
|
+
|
|
354
|
+
```python
|
|
355
|
+
from iziproxy import IziProxy
|
|
356
|
+
|
|
357
|
+
# Configurer avec un fichier PAC explicite
|
|
358
|
+
proxy = IziProxy(pac_url="http://intranet.example.com/proxy.pac")
|
|
359
|
+
|
|
360
|
+
# Ou laisser IziProxy détecter automatiquement le fichier PAC système
|
|
361
|
+
proxy = IziProxy() # Détection automatique si disponible
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
## 🔄 Migration depuis CNTLM
|
|
365
|
+
|
|
366
|
+
Si vous utilisez actuellement CNTLM, IziProxy offre une alternative 100% Python :
|
|
367
|
+
|
|
368
|
+
1. Installez IziProxy avec support NTLM: `pip install iziproxy[ntlm]`
|
|
369
|
+
2. Sur Windows, IziProxy détecte automatiquement votre domaine et nom d'utilisateur Windows
|
|
370
|
+
3. Pour les autres systèmes, configurez vos identifiants via les variables d'environnement
|
|
371
|
+
4. Utilisez IziProxy directement dans votre code Python sans avoir à configurer un proxy local
|
|
372
|
+
|
|
373
|
+
La détection automatique sur Windows simplifie considérablement la transition depuis CNTLM, puisque vous n'avez généralement pas besoin de configuration supplémentaire pour l'authentification.
|
|
374
|
+
|
|
375
|
+
## 🤝 Contribuer
|
|
376
|
+
|
|
377
|
+
Les contributions sont les bienvenues ! Consultez notre [guide de contribution](CONTRIBUTING.md) pour plus d'informations.
|
|
378
|
+
|
|
379
|
+
## 📚 Documentation
|
|
380
|
+
|
|
381
|
+
Une documentation complète est disponible sur Read the Docs :
|
|
382
|
+
|
|
383
|
+
[](https://iziproxy.readthedocs.io/fr/latest/?badge=latest)
|
|
384
|
+
|
|
385
|
+
Visitez [iziproxy.readthedocs.io](https://iziproxy.readthedocs.io/) pour accéder à :
|
|
386
|
+
- Guide de démarrage rapide
|
|
387
|
+
- Exemples détaillés
|
|
388
|
+
- Documentation complète de l'API
|
|
389
|
+
- Guides de migration
|
|
390
|
+
- Tutoriels et cas d'usage
|
|
391
|
+
|
|
392
|
+
## 📄 Licence
|
|
393
|
+
|
|
394
|
+
Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de détails.
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
Développé avec ❤️ pour simplifier la vie des développeurs dans les environnements d'entreprise.
|