================================================
  NLOC    CCN   token  PARAM  length  location
------------------------------------------------
      14      1     67      6      14 __init__@37-50@src/vigia_eew/pipeline/filter.py
       6      4     53      2       7 accepts@52-58@src/vigia_eew/pipeline/filter.py
       9      5     60      2      10 _passes_country@60-69@src/vigia_eew/pipeline/filter.py
       8      3     59      2      13 _passes_freshness@71-83@src/vigia_eew/pipeline/filter.py
      10      2     50      4      10 __init__@34-43@src/vigia_eew/pipeline/dedup.py
       8      5     75      2      10 classify@45-54@src/vigia_eew/pipeline/dedup.py
       7      1     65      2      13 register@56-68@src/vigia_eew/pipeline/dedup.py
       9      3     92      3      10 _matches@70-79@src/vigia_eew/pipeline/dedup.py
      10      2     50      4      10 __init__@41-50@src/vigia_eew/pipeline/normalize.py
      22      6    140      2      23 normalize@52-74@src/vigia_eew/pipeline/normalize.py
      15      1    131      2      15 _map_emsc@76-90@src/vigia_eew/pipeline/normalize.py
      16      1    139      2      16 _map_usgs@92-107@src/vigia_eew/pipeline/normalize.py
      16      1    138      2      21 _map_funvisis@109-129@src/vigia_eew/pipeline/normalize.py
      15      1    118      2      18 _map_geofon@131-148@src/vigia_eew/pipeline/normalize.py
      14      2     97      3      14 _build@150-163@src/vigia_eew/pipeline/normalize.py
      10      4     85      1      11 _parse_iso@166-176@src/vigia_eew/pipeline/normalize.py
       2      2     23      1       2 _parse_iso_optional@179-180@src/vigia_eew/pipeline/normalize.py
       4      2     43      1       5 _epoch_ms_to_utc@183-187@src/vigia_eew/pipeline/normalize.py
       2      2     23      1       2 _epoch_ms_optional@190-191@src/vigia_eew/pipeline/normalize.py
       5      3     79      2      10 _funvisis_time@197-206@src/vigia_eew/pipeline/normalize.py
       7      3     56      1       8 _parse_km@209-216@src/vigia_eew/pipeline/normalize.py
       4      3     36      1       5 _clean_text@219-223@src/vigia_eew/pipeline/normalize.py
      18      2     95      8      18 __init__@35-52@src/vigia_eew/pipeline/processor.py
      14      6    104      2      15 process_one@54-68@src/vigia_eew/pipeline/processor.py
       9      4     58      1      10 run@71-80@src/vigia_eew/pipeline/processor.py
      20      3    130     10      20 __init__@40-59@src/vigia_eew/ingest/ws_emsc.py
      12      3    100      2      13 _parse@61-73@src/vigia_eew/ingest/ws_emsc.py
      29      8    193      1      35 run@75-109@src/vigia_eew/ingest/ws_emsc.py
       8      2     63      2       8 _backoff@111-118@src/vigia_eew/ingest/ws_emsc.py
      24      2    132     11      24 __init__@55-78@src/vigia_eew/ingest/rest_geofon.py
      14      2    119      2      15 _build_params@80-94@src/vigia_eew/ingest/rest_geofon.py
      30      8    218      1      36 poll_once@96-131@src/vigia_eew/ingest/rest_geofon.py
      32     13    239      2      36 _process_text@133-168@src/vigia_eew/ingest/rest_geofon.py
       6      3     42      1       7 run@170-176@src/vigia_eew/ingest/rest_geofon.py
       3      1     41      1       9 _is_earthquake@179-187@src/vigia_eew/ingest/rest_geofon.py
      11      4     74      1      12 _time_ms@190-201@src/vigia_eew/ingest/rest_geofon.py
       8      3     52      2       9 _retry_after_seconds@204-212@src/vigia_eew/ingest/rest_geofon.py
      15      2     95      6      16 __init__@43-58@src/vigia_eew/ingest/rest_funvisis.py
      19      5    146      1      24 poll_once@60-83@src/vigia_eew/ingest/rest_funvisis.py
      20      8    167      2      25 _process_features@85-109@src/vigia_eew/ingest/rest_funvisis.py
       6      3     42      1       7 run@111-117@src/vigia_eew/ingest/rest_funvisis.py
       8      2     93      1      14 _funvisis_id@120-133@src/vigia_eew/ingest/rest_funvisis.py
      24      2    132     11      24 __init__@45-68@src/vigia_eew/ingest/rest_usgs.py
      15      2    121      2      16 _build_params@70-85@src/vigia_eew/ingest/rest_usgs.py
      34      8    245      1      45 poll_once@87-131@src/vigia_eew/ingest/rest_usgs.py
      13      7    104      2      14 _process_features@133-146@src/vigia_eew/ingest/rest_usgs.py
       6      3     42      1       7 run@148-154@src/vigia_eew/ingest/rest_usgs.py
       8      3     52      2       9 _retry_after_seconds@157-165@src/vigia_eew/ingest/rest_usgs.py
       6      3     55      1       7 _time_ms@168-174@src/vigia_eew/ingest/rest_usgs.py
      15      1     39      2      16 systemd_unit@26-41@src/vigia_eew/autostart/linux_systemd.py
       4      2     39      0       5 _user_systemd_dir@44-48@src/vigia_eew/autostart/linux_systemd.py
       2      1     31      1       4 _subprocess_runner@51-54@src/vigia_eew/autostart/linux_systemd.py
      14      4     84      6      14 __init__@60-73@src/vigia_eew/autostart/linux_systemd.py
       2      1     13      1       2 path@76-77@src/vigia_eew/autostart/linux_systemd.py
       2      1     15      1       2 is_installed@79-80@src/vigia_eew/autostart/linux_systemd.py
       8      1     85      1       9 install@82-90@src/vigia_eew/autostart/linux_systemd.py
       6      2     60      1       7 uninstall@92-98@src/vigia_eew/autostart/linux_systemd.py
       8      4     73      0      16 agent_command@36-51@src/vigia_eew/autostart/__init__.py
      17      7    117      3      29 create_installer@54-82@src/vigia_eew/autostart/__init__.py
      14      1     42      2      15 create_command@22-36@src/vigia_eew/autostart/windows_task.py
       2      1     25      1       3 delete_command@39-41@src/vigia_eew/autostart/windows_task.py
       2      1     23      1       3 query_command@44-46@src/vigia_eew/autostart/windows_task.py
       2      1     31      1       4 _subprocess_runner@49-52@src/vigia_eew/autostart/windows_task.py
      12      3     67      5      12 __init__@58-69@src/vigia_eew/autostart/windows_task.py
       2      1     21      1       2 is_installed@71-72@src/vigia_eew/autostart/windows_task.py
       3      1     35      1       4 install@74-77@src/vigia_eew/autostart/windows_task.py
       3      1     31      1       4 uninstall@79-82@src/vigia_eew/autostart/windows_task.py
       8      1     56      2       9 launchagent_plist@24-32@src/vigia_eew/autostart/macos_launchagent.py
       2      1     16      0       2 _launchagents_dir@35-36@src/vigia_eew/autostart/macos_launchagent.py
       2      1     31      1       4 _subprocess_runner@39-42@src/vigia_eew/autostart/macos_launchagent.py
      14      4     87      6      14 __init__@48-61@src/vigia_eew/autostart/macos_launchagent.py
       2      1     17      1       2 path@64-65@src/vigia_eew/autostart/macos_launchagent.py
       2      1     15      1       2 is_installed@67-68@src/vigia_eew/autostart/macos_launchagent.py
       7      1     76      1       8 install@70-77@src/vigia_eew/autostart/macos_launchagent.py
       5      2     51      1       6 uninstall@79-84@src/vigia_eew/autostart/macos_launchagent.py
       3      1     20      1       4 take_focus@32-35@src/vigia_eew/notify/alert_window.py
       6      1     69      2       7 configure_undismissable@38-44@src/vigia_eew/notify/alert_window.py
      20      4    121      8      20 __init__@50-69@src/vigia_eew/notify/alert_window.py
       2      1     11      1       2 root@72-73@src/vigia_eew/notify/alert_window.py
       2      1     16      1       3 _close_attempt@75-77@src/vigia_eew/notify/alert_window.py
       6      2     31      1       7 acknowledge@79-85@src/vigia_eew/notify/alert_window.py
       4      2     28      2       5 refresh@87-91@src/vigia_eew/notify/alert_window.py
      55      4    392      1      70 _build@95-164@src/vigia_eew/notify/alert_window.py
       7      1     63      3       7 _center@166-172@src/vigia_eew/notify/alert_window.py
      28      2    158     10      28 __init__@35-62@src/vigia_eew/notify/controller.py
       2      1     11      1       2 alert_queue@65-66@src/vigia_eew/notify/controller.py
       2      1     14      1       3 paused@69-71@src/vigia_eew/notify/controller.py
       2      1     15      1       3 pause@73-75@src/vigia_eew/notify/controller.py
       2      1     15      1       3 resume@77-79@src/vigia_eew/notify/controller.py
       2      1     20      2       3 enqueue@81-83@src/vigia_eew/notify/controller.py
       4      1     34      2       4 _data@85-88@src/vigia_eew/notify/controller.py
      11      4     96      2      11 _show@90-100@src/vigia_eew/notify/controller.py
       3      2     32      2       3 _update@102-104@src/vigia_eew/notify/controller.py
       4      2     30      2       4 _acknowledged@106-109@src/vigia_eew/notify/controller.py
      15      2     93      5      15 __init__@28-42@src/vigia_eew/notify/queue.py
       2      1     14      1       3 current@45-47@src/vigia_eew/notify/queue.py
       2      1     15      1       3 pending@50-52@src/vigia_eew/notify/queue.py
       2      1     12      1       3 paused@55-57@src/vigia_eew/notify/queue.py
       2      1     13      1       3 pause@59-61@src/vigia_eew/notify/queue.py
       3      1     18      1       4 resume@63-66@src/vigia_eew/notify/queue.py
      13      5     83      2      14 enqueue@68-81@src/vigia_eew/notify/queue.py
       9      3     57      1      10 acknowledge@83-92@src/vigia_eew/notify/queue.py
       6      4     58      1       6 _show_next_if_free@94-99@src/vigia_eew/notify/queue.py
       4      2     56      3       4 __init__@105-108@src/vigia_eew/notify/queue.py
       2      1     20      2       3 publish@110-112@src/vigia_eew/notify/queue.py
       7      3     34      1       8 drain@114-121@src/vigia_eew/notify/queue.py
       3      1     19      0       3 start_polling.tick@126-128@src/vigia_eew/notify/queue.py
       3      1     28      3       8 start_polling@123-130@src/vigia_eew/notify/queue.py
       2      1     14      1       2 _urgency@36-37@src/vigia_eew/notify/toast.py
      16      2     89      7      16 __init__@43-58@src/vigia_eew/notify/toast.py
       7      2     43      1       9 _get_notifier@60-68@src/vigia_eew/notify/toast.py
      10      2     81      2      11 notify@70-80@src/vigia_eew/notify/toast.py
       2      1     22      0       3 assets_path@48-50@src/vigia_eew/notify/sound.py
      15      6     95      3      20 player_command@53-72@src/vigia_eew/notify/sound.py
       2      3     30      0       2 _available@75-76@src/vigia_eew/notify/sound.py
      16      3     94      1      18 _default_player@79-96@src/vigia_eew/notify/sound.py
      14      4     88      6      14 __init__@102-115@src/vigia_eew/notify/sound.py
      12      5     84      2      13 play@117-129@src/vigia_eew/notify/sound.py
       2      1     15      1       3 severity_color@41-43@src/vigia_eew/notify/presentation.py
       3      1     34      2       4 _local_time@46-49@src/vigia_eew/notify/presentation.py
       2      3     28      2       2 _place@52-53@src/vigia_eew/notify/presentation.py
      16      1     99      4      17 format_event@56-72@src/vigia_eew/notify/presentation.py
      11      1     86      4      12 toast_text@75-86@src/vigia_eew/notify/presentation.py
      24      2    123      3      25 simulated_event@24-48@src/vigia_eew/simulation.py
      14      6    108      0      15 detect_os_locale@37-51@src/vigia_eew/i18n.py
       3      3     29      1       8 resolve_locale@54-61@src/vigia_eew/i18n.py
       6      3     61      3       7 t@64-70@src/vigia_eew/i18n.py
      11      5     90      1      13 _parse_response@24-36@src/vigia_eew/geoloc.py
      26      9    163      2      30 detect_ip_location@39-68@src/vigia_eew/geoloc.py
       7      1    119      4      20 haversine_km@16-35@src/vigia_eew/geo.py
       3      2     25      2       3 model_post_init@117-119@src/vigia_eew/config.py
       2      1     17      0       3 default_config_path@157-159@src/vigia_eew/config.py
       6      1     30      0      12 bundled_example@162-173@src/vigia_eew/config.py
      16      5    110      2      33 seed_config_if_missing@176-208@src/vigia_eew/config.py
      13      6    102      1      19 _map_toml_keys@211-229@src/vigia_eew/config.py
       8      4     60      1      17 _resolve_config_path@232-248@src/vigia_eew/config.py
       7      2     58      1      23 load_config@251-273@src/vigia_eew/config.py
       7      2     51      1      12 has_manual_reference@276-287@src/vigia_eew/config.py
       6      3     40      1      11 _require_utc@25-35@src/vigia_eew/models.py
       6      3     34      3      11 classify_severity@38-48@src/vigia_eew/models.py
       2      1     20      2       2 _validate_utc@71-72@src/vigia_eew/models.py
       2      1     21      2       3 _normalize_magtype@76-78@src/vigia_eew/models.py
       4      1     35      1       5 signature@80-84@src/vigia_eew/models.py
       4      1     24      2       4 _validate_utc@97-100@src/vigia_eew/models.py
       2      1     20      2       2 _validate_utc@113-114@src/vigia_eew/models.py
       4      1     24      2       4 _validate_utc@127-130@src/vigia_eew/models.py
      25      4    187      8      25 __init__@57-81@src/vigia_eew/app.py
      42      5    237      3      43 _build_supervisor@85-127@src/vigia_eew/app.py
       5      2     51      1       7 _resolve_user_country@129-135@src/vigia_eew/app.py
      15      3    107      1      20 _build_geo_filter@137-156@src/vigia_eew/app.py
      18      1     97      6      19 _build_controller@158-176@src/vigia_eew/app.py
      16      4    113      1      17 _build_tray@178-194@src/vigia_eew/app.py
       7      3     37      0       7 _toggle_pause.do_toggle@206-212@src/vigia_eew/app.py
       5      3     34      1      19 _toggle_pause@196-214@src/vigia_eew/app.py
       3      2     30      1       4 _exit_from_tray@216-219@src/vigia_eew/app.py
       7      2     35      1       8 _edit_config@221-228@src/vigia_eew/app.py
       9      6     67      2      12 _after_acknowledge@230-241@src/vigia_eew/app.py
       5      3     43      2       5 _prepare@245-249@src/vigia_eew/app.py
      14      3     98      1      15 _resolve_automatic_reference@251-265@src/vigia_eew/app.py
       6      1     30      1       7 _new_root@267-273@src/vigia_eew/app.py
      10      1     58      3      10 _controller_for_gui.create_window@283-292@src/vigia_eew/app.py
       2      1     34      1       2 _controller_for_gui.play_sound@294-295@src/vigia_eew/app.py
       7      3     64      1       7 _controller_for_gui.publish_toast@297-303@src/vigia_eew/app.py
      12      2     97      3      34 _controller_for_gui@275-308@src/vigia_eew/app.py
       4      1     34      3       4 _controller_for_tui.create_window@320-323@src/vigia_eew/app.py
       2      1     34      1       2 _controller_for_tui.play_sound@325-326@src/vigia_eew/app.py
      10      2     67      2      22 _controller_for_tui@312-333@src/vigia_eew/app.py
      15      1    110      2      21 _wire_tui@335-355@src/vigia_eew/app.py
       8      1     69      1       9 simulate@359-367@src/vigia_eew/app.py
      15      3    114      2      22 run_tui@369-390@src/vigia_eew/app.py
       3      2     37      1       4 _inject_simulated_alert@392-395@src/vigia_eew/app.py
      18      4    141      1      19 execute@397-415@src/vigia_eew/app.py
      21      3    152      2      21 _run_loop@417-437@src/vigia_eew/app.py
      11      6     87      2      12 _stop@439-450@src/vigia_eew/app.py
       2      1     18      0       3 default_icon_path@38-40@src/vigia_eew/tray.py
       6      3     49      1       7 _open_command@43-49@src/vigia_eew/tray.py
      12      4     92      2      18 open_config@52-69@src/vigia_eew/tray.py
       3      2     25      1       3 build_icon._status_text@87-89@src/vigia_eew/tray.py
       2      2     20      1       2 build_icon._last_alert_text@91-92@src/vigia_eew/tray.py
       3      2     25      1       3 build_icon._pause_text@94-96@src/vigia_eew/tray.py
      25      2    207      7      36 build_icon@72-107@src/vigia_eew/tray.py
       4      2     51      3       4 __init__@113-116@src/vigia_eew/tray.py
       3      1     33      1       4 start@118-121@src/vigia_eew/tray.py
       5      2     38      1       8 _run@123-130@src/vigia_eew/tray.py
       7      3     59      1       8 stop@132-139@src/vigia_eew/tray.py
       4      1     35      1       5 default_log_path@29-33@src/vigia_eew/logging_conf.py
      20      3    159      2      34 configure_logging@36-69@src/vigia_eew/logging_conf.py
       2      1     17      0       2 _asset_path@32-33@src/vigia_eew/geocode.py
      10      5     88      1      11 _polygons@36-46@src/vigia_eew/geocode.py
       4      3     62      1       4 _bbox@49-52@src/vigia_eew/geocode.py
       7      3     69      1       8 load_index@55-62@src/vigia_eew/geocode.py
       6      2     40      0       6 _default_index@65-70@src/vigia_eew/geocode.py
      13      4    104      3      14 _point_in_ring@73-86@src/vigia_eew/geocode.py
       4      3     55      3       5 _point_in_polygon@89-93@src/vigia_eew/geocode.py
       7      6     82      3       8 country_of@96-103@src/vigia_eew/geocode.py
       4      1     30      1       4 __init__@17-20@src/vigia_eew/agent_state.py
       3      1     16      1       3 ws_connected@23-25@src/vigia_eew/agent_state.py
       3      1     18      1       3 last_alert@28-30@src/vigia_eew/agent_state.py
       3      1     17      1       3 mark_connected@32-34@src/vigia_eew/agent_state.py
       3      1     17      1       3 mark_reconnecting@36-38@src/vigia_eew/agent_state.py
       3      1     21      2       3 mark_last_alert@40-42@src/vigia_eew/agent_state.py
       2      1     14      0       3 default_clock@18-20@src/vigia_eew/timeutil.py
       6      2     46      2      10 local_date@23-32@src/vigia_eew/timeutil.py
       8      2     83      2      13 local_midnight_ms@35-47@src/vigia_eew/timeutil.py
       7      4     50      3      15 floor_starttime_ms@50-64@src/vigia_eew/timeutil.py
      18      2    124      8      18 __init__@30-47@src/vigia_eew/supervisor.py
       2      1     28      3       3 add@49-51@src/vigia_eew/supervisor.py
       2      2     23      1       3 names@54-56@src/vigia_eew/supervisor.py
       2      1     15      1       3 request_stop@58-60@src/vigia_eew/supervisor.py
      15      4     96      1      16 run@62-77@src/vigia_eew/supervisor.py
      21      5    119      3      22 _guard@79-100@src/vigia_eew/supervisor.py
       5      2     57      2       5 _backoff@102-106@src/vigia_eew/supervisor.py
      12      5     72      1      14 _install_signal_handlers@108-121@src/vigia_eew/supervisor.py
      12      5     58      1      12 _remove_signal_handlers@123-134@src/vigia_eew/supervisor.py
       2      1     17      0       3 default_state_path@28-30@src/vigia_eew/state.py
       3      2     43      2       3 __init__@36-38@src/vigia_eew/state.py
       2      1     11      1       2 state@41-42@src/vigia_eew/state.py
      10      3     80      1      16 load@44-59@src/vigia_eew/state.py
      12      3    110      1      16 save@61-76@src/vigia_eew/state.py
       2      2     29      2       3 already_alerted@80-82@src/vigia_eew/state.py
       3      2     33      2       4 register_alerted@84-87@src/vigia_eew/state.py
       6      4     52      3       7 mark_acknowledged@89-95@src/vigia_eew/state.py
       2      1     22      2       3 add_signature@97-99@src/vigia_eew/state.py
       4      3     35      2       5 update_usgs_cursor@101-105@src/vigia_eew/state.py
       4      3     35      2       5 update_geofon_cursor@107-111@src/vigia_eew/state.py
       5      2     45      1       6 cached_location@113-118@src/vigia_eew/state.py
       7      2     60      3       8 cache_location@120-127@src/vigia_eew/state.py
       7      6     77      2       8 prune@129-136@src/vigia_eew/state.py
      11      4     76      0      16 system_env@25-40@src/vigia_eew/subprocess_env.py
      11      1     52      4      11 __init__@37-47@src/vigia_eew/tui.py
       2      1     14      1       2 compose@49-50@src/vigia_eew/tui.py
       2      1     12      1       2 on_mount@52-53@src/vigia_eew/tui.py
       3      1     22      2      11 update_data@55-65@src/vigia_eew/tui.py
      15      1    122      1      15 _paint@67-81@src/vigia_eew/tui.py
       3      1     17      1       3 action_acknowledge@83-85@src/vigia_eew/tui.py
       1      1      8      1       2 action_noop@87-88@src/vigia_eew/tui.py
       2      1     16      2       2 __init__@94-95@src/vigia_eew/tui.py
       2      1     19      2       2 refresh@97-98@src/vigia_eew/tui.py
      13      1     70      5      13 __init__@109-121@src/vigia_eew/tui.py
       2      1     17      2       3 bind_controller@123-125@src/vigia_eew/tui.py
       2      1     17      2       3 bind_supervisor@127-129@src/vigia_eew/tui.py
       5      1     29      1       5 compose@131-135@src/vigia_eew/tui.py
       7      3     61      1       7 on_mount@137-143@src/vigia_eew/tui.py
       4      2     41      1       4 _refresh_status@145-148@src/vigia_eew/tui.py
       7      3     38      1       7 action_toggle_pause@150-156@src/vigia_eew/tui.py
       4      2     27      1       4 action_quit_agent@158-161@src/vigia_eew/tui.py
      11      1     81      4      12 push_alert@163-174@src/vigia_eew/tui.py
      33      1    130      0      33 _build_parser@21-53@src/vigia_eew/cli.py
      44     10    260      4      56 main@56-111@src/vigia_eew/cli.py
      15      3     94      6      32 exponential_backoff@18-49@src/vigia_eew/backoff.py
       6      4     45      1       7 _iso_code@28-34@packaging/build_countries_geojson.py
       6      4     46      1       7 _round_coords@37-43@packaging/build_countries_geojson.py
      18      2    162      0      20 main@46-65@packaging/build_countries_geojson.py
42 file analyzed.
==============================================================
NLOC    Avg.NLOC  AvgCCN  Avg.token  function_cnt    file
--------------------------------------------------------------
     44       9.2     3.2       59.8         4     src/vigia_eew/pipeline/filter.py
     43       8.5     2.8       70.5         4     src/vigia_eew/pipeline/dedup.py
    154      10.1     2.4       82.7        14     src/vigia_eew/pipeline/normalize.py
     52      13.7     4.0       85.7         3     src/vigia_eew/pipeline/processor.py
      1       0.0     0.0        0.0         0     src/vigia_eew/pipeline/__init__.py
     83      17.2     4.0      121.5         4     src/vigia_eew/ingest/ws_emsc.py
    142      16.0     4.5      114.6         8     src/vigia_eew/ingest/rest_geofon.py
     78      13.6     4.0      108.6         5     src/vigia_eew/ingest/rest_funvisis.py
    119      15.1     4.0      107.3         7     src/vigia_eew/ingest/rest_usgs.py
     10       0.0     0.0        0.0         0     src/vigia_eew/ingest/__init__.py
     65       6.6     1.6       45.8         8     src/vigia_eew/autostart/linux_systemd.py
     39      12.5     5.5       95.0         2     src/vigia_eew/autostart/__init__.py
     48       5.0     1.2       34.4         8     src/vigia_eew/autostart/windows_task.py
     53       5.2     1.5       43.6         8     src/vigia_eew/autostart/macos_launchagent.py
    115      11.7     1.9       83.4         9     src/vigia_eew/notify/alert_window.py
     76       6.0     1.6       42.5        10     src/vigia_eew/notify/controller.py
     84       5.2     1.9       37.1        14     src/vigia_eew/notify/queue.py
     50       8.8     1.8       56.8         4     src/vigia_eew/notify/toast.py
     85      10.2     3.7       68.8         6     src/vigia_eew/notify/sound.py
     54       6.8     1.4       52.4         5     src/vigia_eew/notify/presentation.py
      1       0.0     0.0        0.0         0     src/vigia_eew/notify/__init__.py
     32      24.0     2.0      123.0         1     src/vigia_eew/simulation.py
     45       7.7     4.0       66.0         3     src/vigia_eew/i18n.py
     44      18.5     7.0      126.5         2     src/vigia_eew/geoloc.py
     10       7.0     1.0      119.0         1     src/vigia_eew/geo.py
    133       7.8     2.9       56.6         8     src/vigia_eew/config.py
     84       3.8     1.5       27.2         8     src/vigia_eew/models.py
    341      11.2     2.6       80.9        28     src/vigia_eew/app.py
     86       6.5     2.2       56.1        11     src/vigia_eew/tray.py
     35      12.0     2.0       97.0         2     src/vigia_eew/logging_conf.py
     63       6.6     3.4       64.6         8     src/vigia_eew/geocode.py
     24       3.2     1.0       19.8         6     src/vigia_eew/agent_state.py
     28       5.8     2.2       48.2         4     src/vigia_eew/timeutil.py
    100       9.9     3.0       65.8         9     src/vigia_eew/supervisor.py
     82       4.9     2.5       46.4        14     src/vigia_eew/state.py
     15      11.0     4.0       76.0         1     src/vigia_eew/subprocess_env.py
    119       5.3     1.3       36.8        18     src/vigia_eew/tui.py
     85      38.5     5.5      195.0         2     src/vigia_eew/cli.py
      6       0.0     0.0        0.0         0     src/vigia_eew/__init__.py
     19      15.0     3.0       94.0         1     src/vigia_eew/backoff.py
      5       0.0     0.0        0.0         0     packaging/entrypoint.py
     44      10.0     3.3       84.3         3     packaging/build_countries_geojson.py

===============================================================================================================
No thresholds exceeded (cyclomatic_complexity > 15 or length > 1000 or nloc > 1000000 or parameter_count > 100)
==========================================================================================
Total nloc   Avg.NLOC  AvgCCN  Avg.token   Fun Cnt  Warning cnt   Fun Rt   nloc Rt
------------------------------------------------------------------------------------------
      2796       8.8     2.5       64.8      253            0      0.00    0.00
