1. Exemple de préparation de projet

1.1. Fichiers de configurations et formats

1.1.1. information sur le bassin versant

  • ☐ Décrire le format, ce qui est optionel et ce qui est nécéssaire, à quoi correspondent les valeurs et les unités ### meteo_file.csv Ce fichier se trouve référencer dans le fichier d’information sur le bassin versant

  • ☐ Décrire le format, ce qui est optionel et ce qui est nécéssaire, à quoi correspondent les valeurs et les unités ### parametres.txt Ce fichier contient les valeurs par défaut et les bornes pour la calibration

  • ☐ Je crois que pour l’instant, les bornes ne sont pas utilisées. Valider l’utilisation de ce fichier. Ce devra potentillement être modifié pour être compatible avec spotpy…

[2]:
import hsamiplus
import os
[3]:
# Dossier où se trouvent les fichiers
data_dir = os.path.join('..','..', 'data')
# Fichier informations
basin_file = os.path.join(data_dir, 'bassin_versant_info.txt')

#Fichier paramètres
param_file = os.path.join(data_dir, 'parametres.txt')

# Données météos
projet_file = os.path.join(data_dir, '5_ans.json')

1.2. Création d’un fichier de projet

Hsami+ a besoin d’un dictionnaire contenant les données pour effectuer une simulations.

La fonction ‘make_project’ permet de créer un fichier json à partir des différents fichiers de configurations.

[4]:
hsamiplus.make_project(data_dir, basin_file, param_file, projet_file)
/home/tjs/git/hsamiplus/src/hsamiplus/hsami_input.py:204: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
  df_param = pd.read_csv(param_file, header=0, delim_whitespace=True)
Le fichier de projet HSAMI ../../data/5_ans.json a été créé !

2. Utilisaion d’un fichier de projet

Lorsqu’un fichier ‘json’ de projet est disponbile, on peut utiliser la fonction ‘hsamibin’ pour effectuer une simulation. Cette fonction retourne …

[5]:
simulation, etats, deltas = hsamiplus.hsamibin(data_dir, '5_ans.json')

3. Simulation avec les données en mémoire

La simulation avec le fichier de projet implique la lecture du fichier de projet et l’écriture des résultats. Dans le cas de la calibration, l’on veut éviter ces étapes de lectures / écriture. Lorsque les données sont chargées en mémoire dans un dictionaire, on peut donc utiliser ‘hsami2’ pour effectuer la simulation.

[6]:
import json
from pathlib import Path

filename = '5_ans.json'
with Path.open(Path(data_dir) / filename) as file:
    projet = json.load(file)
[7]:
simulation, etats, deltas = hsamiplus.hsami2(projet)
[8]:
import cProfile
import pstats

cProfile.run('hsamiplus.hsami2(projet)', 'profile_results')
stats = pstats.Stats('profile_results')
stats.sort_stats('tottime').print_stats()
Fri Dec 20 16:37:26 2024    profile_results

         20000414 function calls (20000399 primitive calls) in 43.316 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    23741    9.426    0.000    9.466    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_interception.py:180(dj_hsami)
    23741    3.440    0.000    7.152    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_ecoulement_vertical.py:217(ecoulement_3couches)
   973016    3.150    0.000    3.150    0.000 {method 'reduce' of 'numpy.ufunc' objects}
   474455    3.032    0.000    4.129    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_nanfunctions_impl.py:70(_replace_nan)
     7527    2.202    0.000    2.782    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/scipy/optimize/_optimize.py:2226(_minimize_scalar_bounded)
   973016    1.700    0.000    5.470    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:69(_wrapreduction)
   191831    1.302    0.000    1.302    0.000 {method 'round' of 'numpy.generic' objects}
    23741    1.290    0.000   18.210    0.001 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2_noyau.py:560(ruissellement_ecoulement)
    47482    1.208    0.000    3.382    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_hydrogramme.py:8(hsami_hydrogramme)
   973016    1.205    0.000    6.894    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:2338(sum)
        1    0.933    0.933   42.271   42.271 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2.py:342(hsami_simulation)
   640643    0.922    0.000    0.922    0.000 {built-in method numpy.array}
   474455    0.830    0.000    8.178    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_nanfunctions_impl.py:635(nansum)
    23741    0.800    0.000    4.073    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2_noyau.py:819(bilan_sorties)
    94964    0.761    0.000    1.340    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_shape_base_impl.py:1204(tile)
    23741    0.747    0.000   16.792    0.001 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2_noyau.py:392(etp_glace_interception)
    47482    0.726    0.000    0.726    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:741(etp_rayonnement_et)
    47482    0.640    0.000    2.838    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:8(hsami_etp)
  2324962    0.624    0.000    0.624    0.000 {built-in method builtins.min}
    23741    0.567    0.000    1.421    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_mhumide.py:8(hsami_mhumide)
    23741    0.500    0.000   41.172    0.002 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2_noyau.py:20(hsami2_noyau)
   174967    0.399    0.000    0.465    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_ecoulement_vertical.py:574(fctobj)
    23741    0.397    0.000    0.523    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_ecoulement_horizontal.py:8(hsami_ecoulement_horizontal)
  1699944    0.352    0.000    0.352    0.000 {built-in method builtins.isinstance}
   569419    0.332    0.000    0.332    0.000 {built-in method numpy.asanyarray}
   472917    0.303    0.000    0.303    0.000 {built-in method builtins.getattr}
   261151    0.266    0.000    1.923    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:51(_wrapfunc)
    23741    0.266    0.000    0.266    0.000 {method 'strftime' of 'datetime.date' objects}
  1192910    0.241    0.000    0.241    0.000 {method 'append' of 'list' objects}
   973023    0.230    0.000    0.230    0.000 {method 'items' of 'dict' objects}
    47482    0.228    0.000    0.313    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:909(etp_rayonnement_net)
   621994    0.210    0.000    0.210    0.000 {built-in method builtins.max}
   142446    0.206    0.000    0.206    0.000 {method 'repeat' of 'numpy.ndarray' objects}
    47482    0.195    0.000    0.286    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:674(etp_duree_jour)
   237410    0.187    0.000    0.187    0.000 {method 'reshape' of 'numpy.ndarray' objects}
    23741    0.169    0.000    0.280    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_function_base_impl.py:5644(append)
   213669    0.166    0.000    1.944    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:3618(round)
    23741    0.152    0.000    0.264    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/shape_base.py:220(vstack)
    94964    0.148    0.000    0.148    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:860(etp_e)
   973016    0.143    0.000    0.143    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:2333(_sum_dispatcher)
    23741    0.141    0.000    9.648    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_interception.py:8(hsami_interception)
    47482    0.138    0.000    0.138    0.000 {built-in method numpy.arange}
    47482    0.131    0.000    0.301    0.000 {method 'sum' of 'numpy.generic' objects}
    47482    0.108    0.000    0.394    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:784(etp_rayonnement_g)
    21838    0.103    0.000    0.103    0.000 {method 'round' of 'numpy.ndarray' objects}
    38795    0.092    0.000    0.133    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:3566(size)
    47482    0.091    0.000    0.091    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:698(etp_declinaison)
   474455    0.085    0.000    0.085    0.000 {built-in method builtins.issubclass}
   474455    0.078    0.000    0.078    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/multiarray.py:1098(copyto)
   316053    0.075    0.000    0.075    0.000 {built-in method builtins.len}
   474455    0.074    0.000    0.074    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_nanfunctions_impl.py:630(_nansum_dispatcher)
   284892    0.072    0.000    0.072    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_shape_base_impl.py:1287(<genexpr>)
      2/1    0.068    0.034   43.315   43.315 <string>:1(<module>)
   189928    0.067    0.000    0.067    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_shape_base_impl.py:1277(<genexpr>)
   524901    0.066    0.000    0.066    0.000 {built-in method builtins.abs}
    23741    0.066    0.000    0.100    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/shape_base.py:80(atleast_2d)
    21838    0.065    0.000    0.207    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:41(_wrapit)
    23741    0.062    0.000    7.215    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_ecoulement_vertical.py:9(hsami_ecoulement_vertical)
    15054    0.060    0.000    0.105    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/scipy/optimize/_optimize.py:181(is_finite_scalar)
    23741    0.057    0.000    0.064    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_glace.py:8(hsami_glace)
    71225    0.056    0.000    0.056    0.000 {built-in method numpy.zeros}
    94964    0.056    0.000    0.056    0.000 {method 'transpose' of 'numpy.ndarray' objects}
    47482    0.055    0.000    0.119    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:832(etp_m_courbe_pression)
    47482    0.045    0.000    0.045    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:609(etp_priestley_taylor)
    23376    0.045    0.000    0.045    0.000 {method 'tolist' of 'numpy.generic' objects}
    47482    0.044    0.000    0.188    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:462(repeat)
    94964    0.042    0.000    0.066    0.000 {built-in method builtins.all}
    31268    0.041    0.000    0.041    0.000 {built-in method numpy.asarray}
     7527    0.040    0.000    2.864    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_ecoulement_vertical.py:517(green_ampt)
     7527    0.039    0.000    2.821    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/scipy/optimize/_optimize.py:2135(fminbound)
    23741    0.038    0.000    0.095    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:1904(ravel)
   119219    0.036    0.000    0.036    0.000 {method 'keys' of 'dict' objects}
    23376    0.036    0.000    0.036    0.000 {method 'tolist' of 'numpy.ndarray' objects}
    23741    0.035    0.000    0.065    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/copy.py:61(copy)
   213669    0.034    0.000    0.034    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:3614(_round_dispatcher)
    23741    0.029    0.000    0.029    0.000 {method 'ravel' of 'numpy.ndarray' objects}
    47482    0.028    0.000    0.170    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/_methods.py:50(_sum)
    55013    0.028    0.000    0.028    0.000 {method 'get' of 'dict' objects}
    23741    0.024    0.000    0.024    0.000 {method 'copy' of 'numpy.ndarray' objects}
    23746    0.020    0.000    0.020    0.000 {built-in method builtins.hasattr}
    23741    0.020    0.000    0.020    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_ruissellement_surface.py:6(hsami_ruissellement_surface)
    47482    0.020    0.000    0.020    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:882(etp_chaleur_lat_vaporisation)
    47482    0.019    0.000    0.019    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_etp.py:958(etp_rayonnement_temps_clair)
    23741    0.019    0.000    0.055    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/shape_base.py:216(_vhstack_dispatcher)
    21838    0.019    0.000    0.019    0.000 {method 'as_arrays' of 'numpy._core._multiarray_umath._array_converter' objects}
    94964    0.018    0.000    0.018    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_shape_base_impl.py:1200(_tile_dispatcher)
    23741    0.016    0.000    0.036    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/shape_base.py:208(_arrays_for_stack_dispatcher)
    23741    0.015    0.000    0.015    0.000 {method 'copy' of 'dict' objects}
    21838    0.015    0.000    0.015    0.000 {method 'wrap' of 'numpy._core._multiarray_umath._array_converter' objects}
     6571    0.011    0.000    0.011    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_interception.py:1662(gel_sol)
    47482    0.010    0.000    0.010    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/multiarray.py:180(concatenate)
    47482    0.008    0.000    0.008    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:458(_repeat_dispatcher)
    38795    0.007    0.000    0.007    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:3562(_size_dispatcher)
      804    0.006    0.000    0.012    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/ipykernel/ipkernel.py:775(_clean_thread_parent_frames)
     5046    0.006    0.000    0.006    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_interception.py:1790(percolation_eau_fonte)
    23741    0.005    0.000    0.005    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/lib/_function_base_impl.py:5640(_append_dispatcher)
     6495    0.005    0.000    0.005    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_interception.py:1752(gel_neige)
    23741    0.004    0.000    0.004    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/fromnumeric.py:1900(_ravel_dispatcher)
    23741    0.004    0.000    0.004    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/numpy/_core/shape_base.py:76(_atleast_2d_dispatcher)
      2/1    0.004    0.002   43.099   43.099 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2.py:12(hsami2)
     7527    0.003    0.000    0.003    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/scipy/optimize/_optimize.py:3579(_endprint)
     7527    0.003    0.000    0.003    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/scipy/optimize/_optimize.py:172(_check_unknown_options)
      402    0.003    0.000    0.003    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:1535(enumerate)
      954    0.002    0.000    0.002    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami_interception.py:1705(degel_sol)
     3216    0.002    0.000    0.002    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:1198(ident)
        1    0.001    0.001    0.001    0.001 {method 'execute' of 'sqlite3.Connection' objects}
        1    0.001    0.001    0.164    0.164 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2.py:277(hsami_etat_initial)
       42    0.001    0.000    0.001    0.000 {built-in method time.sleep}
      404    0.000    0.000    0.000    0.000 {method '__exit__' of '_thread.RLock' objects}
      804    0.000    0.000    0.000    0.000 {method 'values' of 'dict' objects}
        8    0.000    0.000    0.002    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:1915(_run_once)
       43    0.000    0.000    0.000    0.000 {built-in method posix.getppid}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        8    0.000    0.000    0.000    0.000 {method 'poll' of 'select.epoll' objects}
        8    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/selectors.py:451(select)
      2/1    0.000    0.000   43.315   43.315 {built-in method builtins.exec}
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/ipykernel/iostream.py:127(_event_pipe_gc)
       10    0.000    0.000    0.000    0.000 {method 'run' of '_contextvars.Context' objects}
        8    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/tasks.py:653(sleep)
       10    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/events.py:86(_run)
        1    0.000    0.000    0.005    0.005 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/decorator.py:229(fun)
        8    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/events.py:36(__init__)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/ipykernel/iostream.py:118(_run_event_pipe_gc)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:3133(_bind)
       12    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:1222(is_alive)
       18    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:733(time)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/IPython/core/history.py:833(_writeout_input_cache)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/IPython/core/history.py:55(only_when_enabled)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:742(call_later)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/events.py:155(cancel)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:813(_call_soon)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:766(call_at)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/IPython/core/history.py:845(writeout_cache)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:784(call_soon)
        6    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:676(__get__)
        4    0.000    0.000    0.000    0.000 {method 'set_result' of '_asyncio.Future' objects}
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:3631(set)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/ipykernel/iostream.py:718(_rotate_buffers)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:446(create_future)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:1527(_notify_observers)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/futures.py:313(_set_result_unless_cancelled)
     15/3    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/decorator.py:199(fix)
        1    0.000    0.000    0.000    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2.py:251(modules_par_defaut)
        6    0.000    0.000    0.000    0.000 {built-in method _heapq.heappop}
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:718(_validate)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:3474(validate)
        2    0.000    0.000    0.000    0.000 {method '__exit__' of 'sqlite3.Connection' objects}
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:689(set)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/events.py:111(__init__)
       18    0.000    0.000    0.000    0.000 {built-in method time.monotonic}
        6    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:629(get)
       12    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:1155(_wait_for_tstate_lock)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/ipykernel/iostream.py:616(_flush)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:3272(bind)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:3624(validate_elements)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/tornado/ioloop.py:742(_run_callback)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:2949(apply_defaults)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:727(_cross_validate)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:1512(_notify_trait)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:708(__set__)
        5    0.000    0.000    0.000    0.000 {built-in method math.ceil}
       11    0.000    0.000    0.000    0.000 {method 'append' of 'collections.deque' objects}
       10    0.000    0.000    0.000    0.000 {method 'popleft' of 'collections.deque' objects}
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/ipykernel/iostream.py:710(_flush_buffers)
        8    0.000    0.000    0.000    0.000 {method '__exit__' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:2896(args)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:1523(notify_change)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:2304(validate)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:311(_acquire_restore)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/events.py:72(cancel)
        9    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/selector_events.py:750(_process_events)
        6    0.000    0.000    0.000    0.000 {built-in method builtins.next}
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/IPython/core/history.py:839(_writeout_output_cache)
        4    0.000    0.000    0.000    0.000 {built-in method _contextvars.copy_context}
       10    0.000    0.000    0.000    0.000 /home/tjs/git/hsamiplus/src/hsamiplus/hsami2.py:234(set_default_module)
        4    0.000    0.000    0.000    0.000 {built-in method _asyncio.get_running_loop}
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:302(__exit__)
       12    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:601(is_set)
       16    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:2010(get_debug)
        8    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:538(_check_closed)
       22    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/typing.py:2183(cast)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:627(clear)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:2919(kwargs)
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:299(__enter__)
        4    0.000    0.000    0.000    0.000 {method 'cancelled' of '_asyncio.Future' objects}
        2    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/site-packages/traitlets/traitlets.py:3486(validate_elements)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:308(_release_save)
        3    0.000    0.000    0.000    0.000 {method 'items' of 'mappingproxy' objects}
        4    0.000    0.000    0.000    0.000 {built-in method _heapq.heappush}
        1    0.000    0.000    0.000    0.000 {method 'values' of 'mappingproxy' objects}
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/events.py:127(__lt__)
       10    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:2808(kind)
        2    0.000    0.000    0.000    0.000 {method '__enter__' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 {built-in method _thread.allocate_lock}
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/asyncio/base_events.py:1910(_timer_handle_cancelled)
        2    0.000    0.000    0.000    0.000 {built-in method builtins.iter}
        2    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:3089(parameters)
        4    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:2796(name)
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/threading.py:314(_is_owned)
        1    0.000    0.000    0.000    0.000 {method 'release' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 /home/tjs/miniforge3/envs/hsamiplus/lib/python3.12/inspect.py:2888(__init__)


[8]:
<pstats.Stats at 0x7fb84f493920>