import os block_cipher = None app_dir = 'C:\\Users\\dom\\ai\\anonymisation' datas = [ (os.path.join(app_dir, 'config'), 'config'), (os.path.join(app_dir, 'data', 'bdpm'), os.path.join('data', 'bdpm')), (os.path.join(app_dir, 'data', 'finess'), os.path.join('data', 'finess')), (os.path.join(app_dir, 'data', 'insee'), os.path.join('data', 'insee')), (os.path.join(app_dir, 'models', 'camembert-bio-deid', 'onnx'), os.path.join('models', 'camembert-bio-deid', 'onnx')), (os.path.join(app_dir, 'detectors'), 'detectors'), (os.path.join(app_dir, 'scripts'), 'scripts'), ] # Fichiers directs dans data/ — IMPÉRATIF pour fonctionnement correct du core. # Sans eux : stop-words/villes/DPI labels/companion blacklist sont des sets vides, # ce qui dégrade la qualité d'anonymisation et peut masquer/laisser passer des faux-positifs. for data_file in [ 'stopwords_manuels.txt', 'villes_blacklist.txt', 'dpi_labels_blacklist.txt', 'companion_blacklist.txt', ]: src = os.path.join(app_dir, 'data', data_file) if os.path.exists(src): datas.append((src, 'data')) for pyfile in ['anonymizer_core_refactored_onnx.py', 'eds_pseudo_manager.py', 'gliner_manager.py', 'camembert_ner_manager.py', 'Pseudonymisation_Gui_V5.py']: datas.append((os.path.join(app_dir, pyfile), '.')) a = Analysis( [os.path.join(app_dir, 'launcher.py')], pathex=[app_dir], datas=datas, hiddenimports=[ 'anonymizer_core_refactored_onnx', 'eds_pseudo_manager', 'gliner_manager', 'camembert_ner_manager', 'Pseudonymisation_Gui_V5', 'edsnlp', 'edsnlp.pipes', 'edsnlp.pipes.ner', 'edsnlp.pipes.ner.pseudo', 'spacy', 'spacy.lang.fr', 'gliner', 'onnxruntime', 'transformers', 'tokenizers', 'torch', 'pdfplumber', 'ahocorasick', 'sklearn', 'scipy', 'pydantic', 'yaml', 'PIL', 'loguru', 'regex', ], cipher=block_cipher, noarchive=False, ) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='Anonymisation', debug=False, strip=False, upx=False, console=False, icon=None, )