Files
office_translator/pyproject.toml
sepehr f22f645fab
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m37s
feat(rtl): rendu droite-a-gauche complet pour Word, PowerPoint, Excel et PDF
- source unique RTL_LANGUAGES/is_rtl dans core/languages.py (fin des 3 copies)
- Word: bidi partout (corps, tableaux bidiVisual, notes/fin/commentaires,
  zones de texte, 6 zones d'en-tetes/pieds), insertion OOXML ordonnee,
  polices cs elargies aux 11 langues
- PowerPoint: alignements explicites preserves, notes du presentateur,
  indice de police <a:cs> insert a sa place
- Excel: feuilles affichees de droite a gauche, feuilles graphiques ignorees
- PDF: faconnage bidi (arabic-reshaper + python-bidi), polices par ecriture
  (arabe/hebreu), TTF enregistree pour le PDF recompose
- 46 tests nouveaux (tests/test_translators/test_rtl_layout.py), 253 au total
2026-09-01 20:22:46 +02:00

69 lines
1.4 KiB
TOML

[project]
name = "translate"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"aiofiles==23.2.1",
"aiosmtplib>=3.0.0",
"aiosqlite>=0.19.0",
"alembic==1.13.1",
"arabic-reshaper==3.0.0",
"asyncpg>=0.29.0",
"bcrypt<4.1",
"deep-translator==1.11.4",
"fastapi==0.109.0",
"greenlet>=3.0.0",
"httpx>=0.27.0,<0.28",
"ipykernel==6.27.1",
"lxml>=4.9.0",
"matplotlib==3.8.2",
"openai>=1.0.0",
"openpyxl==3.1.2",
"pandas==2.1.4",
"passlib[bcrypt]==1.7.4",
"pdf2docx>=0.5.6",
"pillow==10.2.0",
"pip>=25.3",
"prometheus-client==0.20.0",
"psutil==5.9.8",
"psycopg2-binary>=2.9.0",
"pydantic[email]==2.5.3",
"pyjwt==2.8.0",
"pymupdf>=1.24.0",
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"python-bidi==0.4.2",
"python-docx==1.1.0",
"python-dotenv==1.0.0",
"python-magic>=0.4.27",
"python-multipart==0.0.9",
"python-pptx==0.6.23",
"redis==5.0.1",
"reportlab>=4.0.0",
"requests==2.31.0",
"sqlalchemy==2.0.25",
"stripe==7.0.0",
"structlog>=24.1.0",
"uvicorn[standard]==0.27.0",
]
[dependency-groups]
dev = [
"ruff>=0.6.0",
"pytest-cov>=5.0.0",
]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "W", "UP", "B", "C4", "SIM"]
ignore = ["E501"]
[tool.ruff.lint.pydocstyle]
convention = "google"