Aller au contenu

objet — Classe de base

Module contenant la classe Objet, classe racine dont héritent toutes les classes du package.

objet

SerializationMixin

Mixin fournissant la sérialisation/désérialisation avec gestion des unités physiques.

Méthodes : - _physical_to_dict / _dict_to_physical : conversion Physical ↔ dict - _resolve_unit_expr : parsing sécurisé d'expressions d'unité - save_data / load_data : sauvegarde/chargement JSON/CSV - save_object / _save_muliple_objects : pickle .oco - _open_object / _open_multiple_objects : lecture pickle .oco

save_data

save_data(data: dict, type_data: str = ('JSON', 'CSV'), path: str = None)

Sauvegarde les données dans un fichier JSON ou CSV via boîte de dialogue.

Convertit automatiquement les unités physiques (Physical) en valeurs sérialisables avant la sauvegarde.

Parameters:

Name Type Description Default
data dict

Données à sauvegarder sous forme de dictionnaire. Les valeurs Physical sont automatiquement converties.

required
type_data str

Format de sauvegarde : "JSON" ou "CSV".

('JSON', 'CSV')
path str

Chemin du fichier à créer. Si None, une boîte de dialogue Qt s'ouvre pour choisir l'emplacement.

None
Note

Pour JSON : sauvegarde indentée avec encodage UTF-8. Pour CSV : format simple avec une ligne d'en-tête.

load_data

load_data(type_data: str = ('JSON', 'CSV'), path: str = None)

Charge les données depuis un fichier JSON ou CSV via boîte de dialogue.

Reconstruit automatiquement les unités physiques (Physical) à partir des données sérialisées.

Parameters:

Name Type Description Default
type_data str

Format du fichier : "JSON" ou "CSV".

('JSON', 'CSV')
path str

Chemin du fichier à charger. Si None, une boîte de dialogue Qt s'ouvre pour sélectionner le fichier.

None

Returns:

Name Type Description
dict

Dictionnaire contenant les données chargées avec les unités physiques restaurées.

DataLoaderMixin

Mixin fournissant le chargement des données normatives (CSV, JSON).

Attributs de classe : - PATH_CATALOG : chemin racine du package ourocode - _csv_cache / _json_cache : caches partagés

Méthodes : - _data_from_csv : charge un CSV avec cache - _data_from_json : charge un JSON en DataFrame - _load_json : charge un JSON en dict avec cache

MathUtilsMixin

Mixin fournissant les utilitaires mathématiques et de conversion d'unités.

Méthodes : - abs_value, max, min : wrappers arithmétiques - _extract_numbers, max_list, min_list : extraction récursive de valeurs numériques - get_trigonometric_value : fonctions trigonométriques en degrés - _convert_unit_physical : conversion entre unités SI - _reset_physical_dictionnary / _reset_physical_object : réinitialisation des Physical

abs_value

abs_value(value: float)

Retourne la valeur absolue (module) d'un nombre.

Parameters:

Name Type Description Default
value float

Valeur dont on veut la valeur absolue.

required

Returns:

Name Type Description
float

Valeur absolue (toujours positive ou nulle).

max

max(value1: float, value2: float)

Retourne la valeur maximale entre deux nombres.

Parameters:

Name Type Description Default
value1 float

Première valeur à comparer.

required
value2 float

Deuxième valeur à comparer.

required

Returns:

Name Type Description
float

La plus grande des deux valeurs.

min

min(value1: float, value2: float)

Retourne la valeur minimale entre deux nombres.

Parameters:

Name Type Description Default
value1 float

Première valeur à comparer.

required
value2 float

Deuxième valeur à comparer.

required

Returns:

Name Type Description
float

La plus petite des deux valeurs.

max_list

max_list(iterable: dict | list | tuple, absolute: bool = ('False', 'True'))

Retourne la valeur maximale d'une liste ou d'un dictionnaire.

Cette méthode parcourt récursivement la structure pour extraire toutes les valeurs numériques et retourne la maximum.

Parameters:

Name Type Description Default
iterable dict | list | tuple

Structure de données contenant des valeurs numériques.

required
absolute bool

Si True, compare les valeurs absolues. Defaults to False.

('False', 'True')

Returns:

Name Type Description
float

La valeur maximale trouvée.

Exemple

obj.max_list([1, -5, 3], absolute=True) 5 obj.max_list({"a": 10, "b": [20, 5]}) 20

min_list

min_list(iterable: dict | list | tuple | str, absolute: bool = ('False', 'True'))

Retourne la valeur minimale d'une liste ou d'un dictionnaire.

Cette méthode parcourt récursivement la structure pour extraire toutes les valeurs numériques et retourne le minimum.

Parameters:

Name Type Description Default
iterable dict | list | tuple | str

Structure de données contenant des valeurs numériques.

required
absolute bool

Si True, compare les valeurs absolues. Defaults to False.

('False', 'True')

Returns:

Name Type Description
float

La valeur minimale trouvée.

Exemple

obj.min_list([1, -5, 3], absolute=True) 1 obj.min_list({"a": 10, "b": [20, 5]}) 5

operation_between_values

operation_between_values(value1: float, value2: float, operator: str = OPERATOR)

Effectue une opération arithmétique entre deux valeurs. Opérateurs supportés : "+" (addition), "-" (soustraction), "x" (multiplication), "/" (division). Args: value1 (float): Première opérande. value2 (float): Deuxième opérande. operator (str): Opérateur à appliquer. Defaults to "+". Returns: float: Résultat de l'opération. Raises: ValueError: Si l'opérateur n'est pas reconnu.

get_trigonometric_value

get_trigonometric_value(value: float, operator: str = ('COS', 'SIN', 'TAN', 'ACOS', 'ASIN', 'ATAN'))

Calcule une fonction trigonométrique avec un angle exprimé en degrés.

Convertit automatiquement l'angle de degrés en radians avant le calcul.

Parameters:

Name Type Description Default
value float

Angle en degrés.

required
operator str

Fonction trigonométrique à appliquer. Choix possibles : "COS", "SIN", "TAN", "ACOS", "ASIN", "ATAN"

('COS', 'SIN', 'TAN', 'ACOS', 'ASIN', 'ATAN')

Returns:

Name Type Description
float

Résultat de la fonction trigonométrique.

Raises:

Type Description
ValueError

Si la fonction trigonométrique n'est pas reconnue.

Exemple

obj.get_trigonometric_value(90, "SIN") 1.0 obj.get_trigonometric_value(0, "COS") 1.0

SyntheseMixin

Mixin fournissant la synthèse des taux de travail.

Méthodes : - _add_synthese_taux_travail : agrège les taux dans un DataFrame cumulatif - synthese_taux_travail : finalise le tableau avec la ligne des maximums

synthese_taux_travail

synthese_taux_travail()

Construit un tableau pandas de synthèse des taux de travail.

Cette méthode agrège les résultats de vérification (taux de travail) pour la situation normale et la situation d'incendie dans un DataFrame partagé entre toutes les méthodes de vérification.

Returns:

Type Description

pd.DataFrame: Tableau de synthèse final avec la ligne des maximums.

Note

Le DataFrame est partagé entre toutes les méthodes de vérification d'une même instance via l'attribut _synthese_taux_df.

Objet

Bases: SerializationMixin, DataLoaderMixin, MathUtilsMixin, SyntheseMixin

Classe de base du package ourocode.

Cette classe fournit les fonctionnalités essentielles pour : - La sérialisation/désérialisation des objets avec gestion des unités physiques (via SerializationMixin) - L'accès aux données normatives CSV/JSON (via DataLoaderMixin) - Les opérations mathématiques et de conversion d'unités (via MathUtilsMixin) - La synthèse des taux de travail (via SyntheseMixin)

Toutes les classes du package ourocode héritent de cette classe.

objet property

objet

Retourne l'objet lui même.

set_value

set_value(value: float | int | str = None, unit: str = MathUtilsMixin._SET_VALUE_UNITS)

Retourne une valeur typee avec une unite physique optionnelle.

Equivalent inverse de get_value : permet a l'utilisateur de saisir une valeur numerique brute et de l'encapsuler dans un objet Physical (forallpeople) avec l'unite choisie parmi la liste definie dans _PHYSICAL_UNITS (m, mm, cm, km, m2, N, kN, daN, N.m, kN/m, Pa, MPa, etc.).

Parameters:

Name Type Description Default
value float | int | str

la valeur numerique a encapsuler. Les chaines numeriques ("5", "5,3") sont converties.

None
unit str

unite cible. La valeur speciale "Aucune" (par defaut) retourne la valeur brute sans conversion.

_SET_VALUE_UNITS

Returns:

Type Description
  • Physical si une unite valide est specifiee (ex: 5 * si.m)
  • valeur brute (int/float/str) si unit == "Aucune" ou unite inconnue
Exemple

obj.set_value(5, unit="m") 5.000 m obj.set_value("5,3", unit="kN") 5.300 kN obj.set_value(42, unit="Aucune") 42

get_value

get_value(value: dict | list | str, index: int = None, key: str = None, get_keys: bool = ('False', 'True'))

Extrait et retourne une valeur depuis une structure de données complexe.

Cette méthode utilitaire permet de naviguer dans les dictionnaires, listes, ou chaînes JSON pour extraire des valeurs spécifiques.

Parameters:

Name Type Description Default
value dict | list | str

La structure de données source.

required
index int

Index à extraire dans une liste Python. Note : sous Python, le premier élément est à l'index 0.

None
key str

Clé à extraire d'un dictionnaire Python, ou clé JSON à extraire d'une chaîne.

None
get_keys bool

Si True, retourne la liste des clés d'un dictionnaire au lieu d'une valeur.

('False', 'True')

Returns:

Type Description

La valeur extraite selon les critères spécifiés.

Exemple

obj.get_value({"a": 1, "b": 2}, key="a") 1 obj.get_value([10, 20, 30], index=1) 20 obj.get_value({"x": 1, "y": 2}, get_keys=True) ["x", "y"]