📐 Ourocode - Bibliothèque Python pour le calcul de structure selon les Eurocodes
🔍 Description
Ourocode est une bibliothèque Python regroupant les formules normalisées issues des différentes parties des Eurocodes aux Annexes Nationales Française :
- EN 1990 : Bases de calcul
- EN 1991 : Actions sur les structures
- EN 1993 : Calcul des structures en acier
- EN 1995 : Calcul des structures en bois
- EN 1998 : Calcul des actions sismiques
Elle permet de construire un catalogue de fonctions réutilisables pour générer rapidement des notes de calcul personnalisées, intégrables dans des applications de vérification ou de génération de rapports.
🚀 Objectifs
- Offrir une implémentation fiable et vérifiée des formules Eurocode.
- Permettre une utilisation modulaire dans des interfaces No-Code, des scripts ou des applications.
- Fournir une base open source transparente, adaptée aux ingénieurs, bureaux d’études, enseignants ou développeurs.
📦 Installation
Note : Python 3.12 requis. Les dépendances tierces ne sont pas encore compatibles avec Python 3.13+.
pip install ourocode
Installez directement depuis le dépôt :
pip install git+https://github.com/AnthonyPrst/ourocode.git
Avec les dépendances optionnelles :
pip install "ourocode[full]" # GUI (PySide6) + MEF (PyNiteFEA + pyvista)
pip install "ourocode[gui]" # PySide6 uniquement
pip install "ourocode[mef]" # PyNiteFEA + pyvista uniquement
pip install "ourocode[docs]" # Génération de la documentation
pip install "ourocode[test]" # Outils de test (pytest)
✨ Fonctionnalités
- Calculs normalisés : flexion, traction, cisaillement, flambement, assemblage EC5 et EC3, flèche…
- Support des classes de résistance bois massif (C14→C40), lamellé-collé (GL20h→GL32h) et acier (S235, S355…)
- Prise en compte des effets de feu (EN 1993-1-2, EN 1995-1-2)
- Calcul des actions sismiques et spectre de réponse (EN 1998-1)
- Vérification des murs à ossature bois — MOB/CVT (EN 1995-1-1 §9)
- Intégration avec
handcalcspour génération LaTeX des formules - Compatible avec le logiciel OUREA-NoCode
- Organisé en modules clairs par norme et fonction (EN 1990, EN 1991, EN 1993, EN 1995, EN 1998)
🛠 Exemple d'utilisation dans Jupyter
from IPython.display import display, Latex
from ourocode.eurocode.ec5.element_droit import Barre, Flexion
panne = Barre(b=100, h=200, section="Rectangulaire", classe="C24", cs=2, Hi=12, Hf=12)
panne_flexion = Flexion._from_parent_class(panne, lo_rel_y=5000, lo_rel_z=5000, coeflef=0.9, pos="Charge sur fibre comprimée")
latex_fmd, fmd = panne_flexion.f_m_d("Moyen terme", "Fondamentales")
latex_sigmamd, sigmamd = panne_flexion.sigma_m_d(20, 0)
latex_taux, taux = panne_flexion.taux_m_d()
display(Latex(latex_taux))
✅ Tests & couverture
pytest tests/ -v --tb=short
pytest --cov=ourocode --cov-report html
Les tests couvrent les modules principaux.
📚 Documentation
La documentation complète est disponible sur GitHub Pages :
- Guide de démarrage — Premiers pas et exemples
- Référence API — Classes et méthodes de chaque module
- Référence des normes — EN 1990, EN 1991, EN 1993, EN 1995, EN 1998
Générer la documentation localement :
pip install "ourocode[docs]"
mkdocs serve
🤝 Contribuer
Les contributions sont les bienvenues ! Pour proposer une amélioration ou corriger un bug n'hésité pas à fork le dépôt !
📄 Licence
Distribué sous licence Apache License 2.0.
👷 Auteur
Développé par Anthony PARISOT, ingénieur structure bois & développeur, dans le cadre du projet open source OUREA STRUCTURE.
⭐ Si vous trouvez ce projet utile...
N'hésitez pas à ⭐️ le repo GitHub pour le soutenir !
Metadata
Release files for ourocode 2.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ourocode-2.1.7.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ourocode-2.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.0 MB
Release files / ourocode-2.1.7.tar.gz
| Download URL | ourocode-2.1.7.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36fb79fecdfd5f13cef71f64c2851b9f69d98209431be423d2fa979d9ad23aac
|
|
BLAKE2b-256 checksum How to use checksums |
cfae0a09da7708db86ff06ab17d6ced37626c92244c98d1988ea28759ea42739
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / ourocode-2.1.7-py3-none-any.whl
| Download URL | ourocode-2.1.7-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c4c14face78b244483b11fb6767ff73eb6d4ff763b4b63786bae764958d70085
|
|
BLAKE2b-256 checksum How to use checksums |
3b5af022c2533db6e452c888f9c348a8cacdbad34d9d28fa306f5095711a597b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency log