Skip to content

Releases: AnthonyPrst/ourocode

Release v2.0.0

16 Apr 15:05

Choose a tag to compare

Added

  • ourocode/eurocode/core/renderer.py : nouveau module de rendu LaTeX maison, remplaçant handcalcs — compatible Python 3.12+.
    • Décorateur @handcalc basé sur l'AST (ast + inspect), sans dépendance à innerscope.
    • Rendu symbolique (noms → symboles LaTeX, grecs, indices), numérique (substitution des valeurs) et résultat final sur une même ligne (override="short") ou sur trois lignes alignées (override="long").
    • Extraction correcte des unités forallpeople via str(x).rsplit()\,\mathrm{...}.
    • Support des fonctions sqrt, sin, cos, tan, log, log10, exp, floor, ceil, abs, min, max, radians.
    • Capture des variables de fermeture (closures), du scope module (globals) et des arguments positionnels.

Changed

  • Suppression de la dépendance handcalcs dans pyproject.toml — incompatible avec Python 3.13+ (bug FrameLocalsProxy dans innerscope).
  • requires-python élargi à >=3.12 (sans borne supérieure).
  • Classifiers Python mis à jour : ajout 3.13, 3.14.
  • Tous les imports from handcalcs.decorator import handcalc remplacés par from ourocode.eurocode.core.renderer import handcalc dans les modules EC1, EC5.
  • ourocode/eurocode/ec1/exploitation.py : correction des séquences d'échappement invalides "\[" / "\]""\\[" / "\\]" dans le décorateur @handcalc de alpha_A (SyntaxWarning Python 3.14+).

Changed (CI/CD)

  • Migration du déploiement de la documentation vers l'action officielle GitHub Pages (actions/deploy-pages@v4).

Release v1.11.3

14 Apr 13:02
e2fb8a0

Choose a tag to compare

Fixed

  • Correction des docstrings griffe-incompatibles causant l'échec du job docs en CI (mkdocs build --strict) :
    • ec5/feu/feu.py : paramètre Attention : (non présent en signature) déplacé en section Note.
    • ec5/feu/compression_feu.py : noms lo et type_appuis (avec espace) → lo_y, lo_z, type_appuis.
    • ec5/feu/flexion_feu.py : noms lo_rel_y/z et coeflef_y/z (caractère / invalide) → noms réels de la signature.
    • ec5/assemblage/pointe.py : suppression des Args erronés dans la docstring de la property pince (pas de paramètres).
  • Retrait du flag --strict de mkdocs build dans .github/workflows/ci.yml — les warnings griffe sur *args/**kwargs non annotés ne sont pas bloquants.

Changed

  • Amélioration des docstringsec1/vent.py :
    • Murs_verticaux.__init__ : zones A/B/C/D/E, calcul de e, interpolation C_pe.
    • Toiture_terrasse_acrotere.__init__ : zones F/G/H/I, rapport hp/h, direction 0° uniquement.
    • Toiture_1_pant.__init__ : zones F/G/H (0°/180°) et F_up/F_low/G/H/I (90°), Note sur alpha_toit unique.
    • Toiture_2_pants.__init__ : zones F/G/H/I/J (0°) et F/G/H/I (90°), Note hypothèses (pentes égales, faîtage centré).
    • Toiture_isolee_1_pant.__init__ : zones A/B/C, C_p nets, degré d'obstruction phi.
    • Toiture_isolee_2_pants.__init__ : zones A/B/C/D, C_p nets.
    • get_geo / get_Cpe / get_Cp / show_zonage de toutes les classes ci-dessus : Returns documentés, référence §EN ajoutée.
  • Amélioration des docstringsec3/assemblage/soudure.py :
    • verif_soudure, beta_Lw1, cordon_frontal, cordon_lateral, cordon_oblique, cordon_pieces_obliques, critere_generale, soudure_discontinue.
  • Amélioration des docstringsec3/assemblage/platine.py :
    • f_jd, c, taux_compression (béton et bois), taux_traction.
  • Amélioration des docstringsec3/assemblage/tige.py :
    • FvRd, FtRd, pince_metal_boulon, Bp_Rd, taux_FvEd_FtEd.

Release v1.11.0

13 Apr 16:56

Choose a tag to compare

Added

  • Suite de tests unitaires complète (59% → 63% de couverture, 41 → 337 tests) :
    • test_A0_Projet.py réécrit : couverture de Projet, Objet et des 4 mixins (SerializationMixin, MathUtilsMixin, SyntheseMixin, DataLoaderMixin).
    • test_EC1_Exploitation.py créé : qk, Qk, alpha_A, alpha_n pour toutes les catégories.
    • test_EC3_Feu.py créé : _TemperatureGaz (courbe ISO 834), _CoeffFeu (ky/kb/kp/kE/kw θ), Feu_acier (fire_data, c_a branches).
    • test_EC3_Platine.py créé : Platine_assise_compression_beton et Platine_assise_compression_bois.
    • test_EC3_Element_droit.py complété : Nb_Rd (toutes courbes a0/a/b/c/d), Flexion classe 3, Mc_V_Rd cisaillement élevé/faible, Traction Nt_Rd.
    • test_EC5_BLC.py créé : Poutre_simple_decroissance (init, héritage, résistances).
    • test_EC5_Embrevement.py créé : Embrevement init, profondeur auto/manuel, types (Bissectrice, Équerre p1/p2).
    • test_EC5_Feu.py complété : branches de protection (plâtre joints comblés/vides, pas d'exposition), faible élancement compression feu.
    • test_EC0_Combinaison.py : fixtures corrigées pour correspondre à l'API réelle de Projet et Model_generator.
    • test_EC5_CVT.py : suppression du return dans test_K_panel, extraction du helper _setup_wall_with_panels.

Fixed

  • Import conditionnel de IPython dans core/objet.py pour éviter une erreur si le module n'est pas installé.
  • Correction du paramètre section manquant dans les tests CVT.

Changed

  • Refactoring Phase 4 — Réexports & API courte :

    • Création d'une API courte via ourocode/__init__.py : from ourocode import Barre, Projet, Flexion, ...
    • Réexports intermédiaires via ourocode/eurocode/__init__.py : from ourocode.eurocode import Barre, Projet, ...
    • Toutes les classes principales sont accessibles directement depuis le namespace racine.
    • Centralisation de si.environment("structural") dans ourocode/__init__.py.
  • Refactoring Phase 2 — Ajout des annotations de type retour :

    • Ajout des return type hints (-> tuple, -> dict, -> float, -> str, -> None, -> 'pd.Series', -> 'pd.DataFrame') sur toutes les méthodes publiques.
    • Fichiers concernés :
      • ec5/element_droit/ : barre.py, compression.py, cisaillement.py, traction.py, flexion.py
      • ec5/assemblage/ : assemblage.py, pointe.py, agrafe.py, boulon.py, broche.py, tirefond.py, embrevement.py
      • ec5/feu/ : feu.py, cisaillement_feu.py, compression_feu.py, flexion_feu.py, traction_feu.py
      • ec5/cvt.py
      • ec8/sismique.py
  • Refactoring Phase 1 — Restructuration complète du package :

    • Création des sous-packages core/, ec1/, ec3/, ec5/, ec8/ sous ourocode/eurocode/.
    • A0_Projet.py éclaté en core/projet.py, core/batiment.py, core/model_generator.py, core/model_result.py.
    • EC0_Combinaison.pycore/combinaison.py.
    • objet.pycore/objet.py.
    • EC1_Neige.py, EC1_Vent.py, EC1_Exploitation.pyec1/neige.py, ec1/vent.py, ec1/exploitation.py.
    • EC3_Element_droit.py éclaté en ec3/element_droit/plat.py, traction.py, compression.py, cisaillement.py, flexion.py.
    • EC3_Assemblage.py éclaté en ec3/assemblage/tige.py, soudure.py, platine.py.
    • EC3_Feu.pyec3/feu.py.
    • EC5_Element_droit.py éclaté en ec5/element_droit/barre.py, flexion.py, traction.py, compression.py, cisaillement.py.
    • EC5_Assemblage.py éclaté en ec5/assemblage/assemblage.py, embrevement.py, pointe.py, agrafe.py, boulon.py, broche.py, tirefond.py.
    • EC5_Feu.py éclaté en ec5/feu/feu.py, flexion_feu.py, traction_feu.py, compression_feu.py, cisaillement_feu.py.
    • EC5_BLC.pyec5/blc.py, EC5_CVT.pyec5/cvt.py.
    • EC8_Sismique.pyec8/sismique.py.
    • Suppression de tous les anciens fichiers monolithiques.
    • Mise à jour de tous les imports dans les tests et la documentation mkdocs.

Added (suite refactoring)

  • Documentation API complète avec MkDocs-Material + mkdocstrings (déploiement GitHub Pages automatique).
  • Job docs dans le workflow CI : déploiement automatique sur gh-pages après passage des tests.
  • Badge "Documentation" dans le README avec lien vers GitHub Pages.
  • Section "Documentation" dans le README avec liens vers le guide, la référence API et les normes.
  • Module EC5_BLC.py : paramètres spécifiques au bois lamellé-collé (EN 1995-1-1).
  • Dépendances optionnelles [docs] dans pyproject.toml (mkdocs-material, mkdocstrings[python], mkdocs-include-markdown-plugin, mike).

Release v1.10.0

11 Apr 22:56
5e575a9

Choose a tag to compare

What's Changed

Full Changelog: v1.9.0...v1.10.0

Release v1.9.0

07 Apr 09:29
8dfb169

Choose a tag to compare

What's Changed

  • Correction du module A0_projet.py pour la nouvelle version 2.4.1 du module PyniteFEA.

Full Changelog: v1.8.1...v1.9.0

Release v1.8.1

04 Mar 14:51
747fa7a

Choose a tag to compare

What's Changed

Correction mineur sur les modules A0_Projet.py et EC5_Assemblage

Full Changelog: v1.8.0...v1.8.1

Release v1.8.0

10 Dec 15:26
d701b48

Choose a tag to compare

🆕 Version 1.8.0 – Ajout de la classe Feu_acier

🛠 Améliorations

  • Intégration de la nouvelle classe Feu_acier dans le module EC3_Feu.py dans le cadre d’un comportement au feu d’un élément acier non protégé, conformément à l’Eurocode 1993-1-2 – Partie feu.

Cette classe permet de déterminer les coefficients de réduction à appliquer sur :

  1. les profils métalliques
  2. les assemblages boulonnés
  3. les soudures

Full Changelog: v1.7.7...v1.8.0

What's Changed

Full Changelog: v1.7.7...v1.8.0

Release v1.7.7

08 Dec 16:51
38d7e7b

Choose a tag to compare

🆕 Version 1.7.7 – Ajouts platine d'assise acier, préscellement, corrections & améliorations diverses

🛠 Améliorations

  • Ajout des tiges d’ancrage de préscellement (par crochet ou par plaque) dans le module EC3_Assemblage.py.
  • Ajout des platines d’assise avec tronçon en T, vérifiées en traction et en compression (module EC3_Assemblage.py).
    → Cette classe permet de vérifier les appuis sur fondation béton comme sur support bois.
  • Ajout d’une fonction permettant d’afficher le taux de travail en rupture de bloc dans un assemblage bois (module EC5_Assemblage.py).
  • Ajout d’une fonction de synthèse des taux de travail : synthese_taux_travail, permettant de récupérer l’ensemble des taux de travail d’une même branche (instances partagées) et de les présenter sous forme de tableau synthétique.
  • Reprise et amélioration de l’affichage des formules dans les modules EC3_Element_droit.py et EC3_Assemblage.py.
  • Ajout de tests unitaires pour les modules EC3_Element_droit.py et EC3_Assemblage.py.
  • Mise à jour du mindmap du projet.

Full Changelog: v1.7.6...v1.7.7

Release v1.7.6

13 Nov 08:57
2e3723d

Choose a tag to compare

🆕 Version 1.7.6 – corrections mineure

  • Mise à jour du fichier toml
  • Mise à jour du fichier test unitaire test_EC5_CVT.py
  • Correction du coefficient mu2 pour les toitures 2 versants supérieur à 60° (pas de neige sur la toiture)

Full Changelog: v1.7.5...v1.7.6

Release v1.7.5

06 Nov 15:06
3cedb36

Choose a tag to compare

🆕 Version 1.7.5 – Ajout embrèvement, correction & améliorations diverses

🛠 Améliorations

  • Optimisation de l’algorithme de calcul des assemblages bois/métal avec plaque d’épaisseur intermédiaire (classe Assemblage, module EC5_Assemblage.py).

  • Ajout de la nouvelle classe Embrèvement dans le module EC5_Assemblage.py, permettant la vérification complète d’un embrèvement avec :

  1. le cisaillement longitudinal du talon,
  2. la compression transversale,
  3. et la compression inclinée de l’about.

⚠️ Remarques importantes :

  1. La section résiduelle au droit de l’assemblage n’est pas vérifiée automatiquement. Elle doit être contrôlée séparément via le module EC5_Element_droit.py.
  2. Cette classe repose sur plusieurs hypothèses fortes (notamment concernant le coefficient Kc90) ; il est recommandé de les vérifier avant toute utilisation.
  • Mise à jour de la classe Compression_inclinees dans le module EC5_Element_droit.py :
  1. Elle n’hérite plus de la classe Compression, mais uniquement de la classe Compression_perpendiculaire, pour une meilleure cohérence du modèle de calcul.

Full Changelog: v1.7.4...v1.7.5