micromegas 0.11.0__py3-none-any.whl → 0.12.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. micromegas/flightsql/FlightSql_pb2.py +148 -140
  2. micromegas/flightsql/__init__.py +1 -0
  3. micromegas/flightsql/client.py +473 -3
  4. micromegas/flightsql/time.py +1 -0
  5. micromegas/perfetto.py +100 -187
  6. micromegas/time.py +97 -1
  7. micromegas-0.12.0.dist-info/METADATA +120 -0
  8. micromegas-0.12.0.dist-info/RECORD +10 -0
  9. micromegas/thirdparty/perfetto/protos/perfetto/common/android_energy_consumer_descriptor_pb2.py +0 -38
  10. micromegas/thirdparty/perfetto/protos/perfetto/common/android_log_constants_pb2.py +0 -38
  11. micromegas/thirdparty/perfetto/protos/perfetto/common/builtin_clock_pb2.py +0 -36
  12. micromegas/thirdparty/perfetto/protos/perfetto/common/descriptor_pb2.py +0 -62
  13. micromegas/thirdparty/perfetto/protos/perfetto/common/gpu_counter_descriptor_pb2.py +0 -44
  14. micromegas/thirdparty/perfetto/protos/perfetto/common/perf_events_pb2.py +0 -46
  15. micromegas/thirdparty/perfetto/protos/perfetto/common/protolog_common_pb2.py +0 -36
  16. micromegas/thirdparty/perfetto/protos/perfetto/common/sys_stats_counters_pb2.py +0 -38
  17. micromegas/thirdparty/perfetto/protos/perfetto/common/trace_stats_pb2.py +0 -48
  18. micromegas/thirdparty/perfetto/protos/perfetto/config/android/android_game_intervention_list_config_pb2.py +0 -36
  19. micromegas/thirdparty/perfetto/protos/perfetto/config/android/android_input_event_config_pb2.py +0 -42
  20. micromegas/thirdparty/perfetto/protos/perfetto/config/android/android_log_config_pb2.py +0 -37
  21. micromegas/thirdparty/perfetto/protos/perfetto/config/android/android_polled_state_config_pb2.py +0 -36
  22. micromegas/thirdparty/perfetto/protos/perfetto/config/android/android_sdk_sysprop_guard_config_pb2.py +0 -36
  23. micromegas/thirdparty/perfetto/protos/perfetto/config/android/android_system_property_config_pb2.py +0 -36
  24. micromegas/thirdparty/perfetto/protos/perfetto/config/android/network_trace_config_pb2.py +0 -36
  25. micromegas/thirdparty/perfetto/protos/perfetto/config/android/packages_list_config_pb2.py +0 -36
  26. micromegas/thirdparty/perfetto/protos/perfetto/config/android/pixel_modem_config_pb2.py +0 -38
  27. micromegas/thirdparty/perfetto/protos/perfetto/config/android/protolog_config_pb2.py +0 -41
  28. micromegas/thirdparty/perfetto/protos/perfetto/config/android/surfaceflinger_layers_config_pb2.py +0 -40
  29. micromegas/thirdparty/perfetto/protos/perfetto/config/android/surfaceflinger_transactions_config_pb2.py +0 -38
  30. micromegas/thirdparty/perfetto/protos/perfetto/config/chrome/chrome_config_pb2.py +0 -38
  31. micromegas/thirdparty/perfetto/protos/perfetto/config/chrome/v8_config_pb2.py +0 -36
  32. micromegas/thirdparty/perfetto/protos/perfetto/config/data_source_config_pb2.py +0 -120
  33. micromegas/thirdparty/perfetto/protos/perfetto/config/etw/etw_config_pb2.py +0 -38
  34. micromegas/thirdparty/perfetto/protos/perfetto/config/ftrace/ftrace_config_pb2.py +0 -48
  35. micromegas/thirdparty/perfetto/protos/perfetto/config/gpu/gpu_counter_config_pb2.py +0 -36
  36. micromegas/thirdparty/perfetto/protos/perfetto/config/gpu/vulkan_memory_config_pb2.py +0 -36
  37. micromegas/thirdparty/perfetto/protos/perfetto/config/inode_file/inode_file_config_pb2.py +0 -38
  38. micromegas/thirdparty/perfetto/protos/perfetto/config/interceptor_config_pb2.py +0 -37
  39. micromegas/thirdparty/perfetto/protos/perfetto/config/interceptors/console_config_pb2.py +0 -38
  40. micromegas/thirdparty/perfetto/protos/perfetto/config/power/android_power_config_pb2.py +0 -38
  41. micromegas/thirdparty/perfetto/protos/perfetto/config/process_stats/process_stats_config_pb2.py +0 -40
  42. micromegas/thirdparty/perfetto/protos/perfetto/config/profiling/heapprofd_config_pb2.py +0 -38
  43. micromegas/thirdparty/perfetto/protos/perfetto/config/profiling/java_hprof_config_pb2.py +0 -38
  44. micromegas/thirdparty/perfetto/protos/perfetto/config/profiling/perf_event_config_pb2.py +0 -43
  45. micromegas/thirdparty/perfetto/protos/perfetto/config/statsd/atom_ids_pb2.py +0 -36
  46. micromegas/thirdparty/perfetto/protos/perfetto/config/statsd/statsd_tracing_config_pb2.py +0 -39
  47. micromegas/thirdparty/perfetto/protos/perfetto/config/sys_stats/sys_stats_config_pb2.py +0 -39
  48. micromegas/thirdparty/perfetto/protos/perfetto/config/system_info/system_info_pb2.py +0 -36
  49. micromegas/thirdparty/perfetto/protos/perfetto/config/test_config_pb2.py +0 -38
  50. micromegas/thirdparty/perfetto/protos/perfetto/config/trace_config_pb2.py +0 -90
  51. micromegas/thirdparty/perfetto/protos/perfetto/config/track_event/track_event_config_pb2.py +0 -36
  52. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/android_game_intervention_list_pb2.py +0 -40
  53. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/android_log_pb2.py +0 -43
  54. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/android_system_property_pb2.py +0 -38
  55. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/camera_event_pb2.py +0 -48
  56. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/frame_timeline_event_pb2.py +0 -54
  57. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/gpu_mem_event_pb2.py +0 -36
  58. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/graphics/rect_pb2.py +0 -36
  59. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/graphics_frame_event_pb2.py +0 -40
  60. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/initial_display_state_pb2.py +0 -36
  61. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/network_trace_pb2.py +0 -46
  62. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/packages_list_pb2.py +0 -38
  63. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/pixel_modem_events_pb2.py +0 -38
  64. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/protolog_pb2.py +0 -43
  65. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/shell_transition_pb2.py +0 -42
  66. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/surfaceflinger_common_pb2.py +0 -59
  67. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/surfaceflinger_layers_pb2.py +0 -72
  68. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/surfaceflinger_transactions_pb2.py +0 -76
  69. micromegas/thirdparty/perfetto/protos/perfetto/trace/android/winscope_extensions_pb2.py +0 -36
  70. micromegas/thirdparty/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata_pb2.py +0 -36
  71. micromegas/thirdparty/perfetto/protos/perfetto/trace/chrome/chrome_metadata_pb2.py +0 -50
  72. micromegas/thirdparty/perfetto/protos/perfetto/trace/chrome/chrome_trace_event_pb2.py +0 -56
  73. micromegas/thirdparty/perfetto/protos/perfetto/trace/chrome/chrome_trigger_pb2.py +0 -36
  74. micromegas/thirdparty/perfetto/protos/perfetto/trace/chrome/v8_pb2.py +0 -70
  75. micromegas/thirdparty/perfetto/protos/perfetto/trace/clock_snapshot_pb2.py +0 -41
  76. micromegas/thirdparty/perfetto/protos/perfetto/trace/etw/etw_event_bundle_pb2.py +0 -37
  77. micromegas/thirdparty/perfetto/protos/perfetto/trace/etw/etw_event_pb2.py +0 -37
  78. micromegas/thirdparty/perfetto/protos/perfetto/trace/etw/etw_pb2.py +0 -48
  79. micromegas/thirdparty/perfetto/protos/perfetto/trace/extension_descriptor_pb2.py +0 -37
  80. micromegas/thirdparty/perfetto/protos/perfetto/trace/filesystem/inode_file_map_pb2.py +0 -40
  81. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/android_fs_pb2.py +0 -46
  82. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/binder_pb2.py +0 -52
  83. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/block_pb2.py +0 -72
  84. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/cgroup_pb2.py +0 -52
  85. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/clk_pb2.py +0 -40
  86. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/cma_pb2.py +0 -38
  87. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/compaction_pb2.py +0 -62
  88. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/cpuhp_pb2.py +0 -44
  89. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/cros_ec_pb2.py +0 -36
  90. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/dcvsh_pb2.py +0 -36
  91. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/dma_fence_pb2.py +0 -44
  92. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap_pb2.py +0 -36
  93. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/dpu_pb2.py +0 -42
  94. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/drm_pb2.py +0 -38
  95. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ext4_pb2.py +0 -224
  96. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/f2fs_pb2.py +0 -106
  97. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/fastrpc_pb2.py +0 -44
  98. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/fence_pb2.py +0 -42
  99. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/filemap_pb2.py +0 -38
  100. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle_pb2.py +0 -66
  101. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ftrace_event_pb2.py +0 -105
  102. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ftrace_pb2.py +0 -40
  103. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ftrace_stats_pb2.py +0 -42
  104. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/g2d_pb2.py +0 -36
  105. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/generic_pb2.py +0 -38
  106. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/google_icc_trace_pb2.py +0 -36
  107. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/google_irm_trace_pb2.py +0 -36
  108. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/gpu_mem_pb2.py +0 -36
  109. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/gpu_scheduler_pb2.py +0 -40
  110. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/hyp_pb2.py +0 -44
  111. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/i2c_pb2.py +0 -50
  112. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ion_pb2.py +0 -36
  113. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ipi_pb2.py +0 -40
  114. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/irq_pb2.py +0 -44
  115. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/kgsl_pb2.py +0 -36
  116. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/kmem_pb2.py +0 -122
  117. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/kvm_pb2.py +0 -106
  118. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller_pb2.py +0 -36
  119. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/lwis_pb2.py +0 -36
  120. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/mali_pb2.py +0 -98
  121. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/mdss_pb2.py +0 -76
  122. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/mm_event_pb2.py +0 -36
  123. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/net_pb2.py +0 -42
  124. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/oom_pb2.py +0 -38
  125. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/panel_pb2.py +0 -42
  126. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/perf_trace_counters_pb2.py +0 -36
  127. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/power_pb2.py +0 -60
  128. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/printk_pb2.py +0 -36
  129. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/raw_syscalls_pb2.py +0 -38
  130. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/regulator_pb2.py +0 -48
  131. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/rpm_pb2.py +0 -36
  132. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/samsung_pb2.py +0 -36
  133. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/sched_pb2.py +0 -64
  134. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/scm_pb2.py +0 -38
  135. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/sde_pb2.py +0 -46
  136. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/signal_pb2.py +0 -38
  137. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/skb_pb2.py +0 -36
  138. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/sock_pb2.py +0 -36
  139. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/sync_pb2.py +0 -40
  140. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/synthetic_pb2.py +0 -38
  141. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/systrace_pb2.py +0 -36
  142. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/task_pb2.py +0 -38
  143. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/tcp_pb2.py +0 -36
  144. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/thermal_exynos_pb2.py +0 -38
  145. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/thermal_pb2.py +0 -38
  146. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/trusty_pb2.py +0 -70
  147. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/ufs_pb2.py +0 -38
  148. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/v4l2_pb2.py +0 -46
  149. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/virtio_gpu_pb2.py +0 -38
  150. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/virtio_video_pb2.py +0 -42
  151. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/vmscan_pb2.py +0 -46
  152. micromegas/thirdparty/perfetto/protos/perfetto/trace/ftrace/workqueue_pb2.py +0 -42
  153. micromegas/thirdparty/perfetto/protos/perfetto/trace/gpu/gpu_counter_event_pb2.py +0 -39
  154. micromegas/thirdparty/perfetto/protos/perfetto/trace/gpu/gpu_log_pb2.py +0 -38
  155. micromegas/thirdparty/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event_pb2.py +0 -58
  156. micromegas/thirdparty/perfetto/protos/perfetto/trace/gpu/vulkan_api_event_pb2.py +0 -40
  157. micromegas/thirdparty/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event_pb2.py +0 -44
  158. micromegas/thirdparty/perfetto/protos/perfetto/trace/interned_data/interned_data_pb2.py +0 -45
  159. micromegas/thirdparty/perfetto/protos/perfetto/trace/memory_graph_pb2.py +0 -48
  160. micromegas/thirdparty/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace_pb2.py +0 -40
  161. micromegas/thirdparty/perfetto/protos/perfetto/trace/perfetto/tracing_service_event_pb2.py +0 -36
  162. micromegas/thirdparty/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown_pb2.py +0 -39
  163. micromegas/thirdparty/perfetto/protos/perfetto/trace/power/android_entity_state_residency_pb2.py +0 -40
  164. micromegas/thirdparty/perfetto/protos/perfetto/trace/power/battery_counters_pb2.py +0 -36
  165. micromegas/thirdparty/perfetto/protos/perfetto/trace/power/power_rails_pb2.py +0 -40
  166. micromegas/thirdparty/perfetto/protos/perfetto/trace/profiling/deobfuscation_pb2.py +0 -40
  167. micromegas/thirdparty/perfetto/protos/perfetto/trace/profiling/heap_graph_pb2.py +0 -57
  168. micromegas/thirdparty/perfetto/protos/perfetto/trace/profiling/profile_common_pb2.py +0 -50
  169. micromegas/thirdparty/perfetto/protos/perfetto/trace/profiling/profile_packet_pb2.py +0 -72
  170. micromegas/thirdparty/perfetto/protos/perfetto/trace/profiling/smaps_pb2.py +0 -38
  171. micromegas/thirdparty/perfetto/protos/perfetto/trace/ps/process_stats_pb2.py +0 -42
  172. micromegas/thirdparty/perfetto/protos/perfetto/trace/ps/process_tree_pb2.py +0 -40
  173. micromegas/thirdparty/perfetto/protos/perfetto/trace/remote_clock_sync_pb2.py +0 -39
  174. micromegas/thirdparty/perfetto/protos/perfetto/trace/statsd/statsd_atom_pb2.py +0 -38
  175. micromegas/thirdparty/perfetto/protos/perfetto/trace/sys_stats/sys_stats_pb2.py +0 -55
  176. micromegas/thirdparty/perfetto/protos/perfetto/trace/system_info/cpu_info_pb2.py +0 -38
  177. micromegas/thirdparty/perfetto/protos/perfetto/trace/system_info_pb2.py +0 -38
  178. micromegas/thirdparty/perfetto/protos/perfetto/trace/test_event_pb2.py +0 -39
  179. micromegas/thirdparty/perfetto/protos/perfetto/trace/trace_packet_defaults_pb2.py +0 -39
  180. micromegas/thirdparty/perfetto/protos/perfetto/trace/trace_packet_pb2.py +0 -107
  181. micromegas/thirdparty/perfetto/protos/perfetto/trace/trace_pb2.py +0 -37
  182. micromegas/thirdparty/perfetto/protos/perfetto/trace/trace_uuid_pb2.py +0 -36
  183. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_active_processes_pb2.py +0 -36
  184. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info_pb2.py +0 -38
  185. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state_pb2.py +0 -75
  186. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info_pb2.py +0 -36
  187. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter_pb2.py +0 -44
  188. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample_pb2.py +0 -38
  189. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service_pb2.py +0 -36
  190. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_latency_info_pb2.py +0 -42
  191. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc_pb2.py +0 -38
  192. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_message_pump_pb2.py +0 -36
  193. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info_pb2.py +0 -36
  194. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor_pb2.py +0 -38
  195. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state_pb2.py +0 -38
  196. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor_pb2.py +0 -38
  197. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_user_event_pb2.py +0 -36
  198. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info_pb2.py +0 -36
  199. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/counter_descriptor_pb2.py +0 -40
  200. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/debug_annotation_pb2.py +0 -44
  201. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/log_message_pb2.py +0 -40
  202. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/pixel_modem_pb2.py +0 -36
  203. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/process_descriptor_pb2.py +0 -38
  204. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/range_of_interest_pb2.py +0 -36
  205. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/screenshot_pb2.py +0 -36
  206. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/source_location_pb2.py +0 -38
  207. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/task_execution_pb2.py +0 -36
  208. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/thread_descriptor_pb2.py +0 -38
  209. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/track_descriptor_pb2.py +0 -41
  210. micromegas/thirdparty/perfetto/protos/perfetto/trace/track_event/track_event_pb2.py +0 -74
  211. micromegas/thirdparty/perfetto/protos/perfetto/trace/translation/translation_table_pb2.py +0 -70
  212. micromegas/thirdparty/perfetto/protos/perfetto/trace/trigger_pb2.py +0 -36
  213. micromegas/thirdparty/perfetto/protos/perfetto/trace/ui_state_pb2.py +0 -38
  214. micromegas-0.11.0.dist-info/METADATA +0 -251
  215. micromegas-0.11.0.dist-info/RECORD +0 -215
  216. {micromegas-0.11.0.dist-info → micromegas-0.12.0.dist-info}/WHEEL +0 -0
micromegas/perfetto.py CHANGED
@@ -1,198 +1,111 @@
1
- import crc
2
- import pyarrow
3
- from tqdm import tqdm
1
+ def write_process_trace_from_chunks(
2
+ client, process_id, begin, end, span_types, trace_filepath
3
+ ):
4
+ """
5
+ Generate Perfetto trace using server-side perfetto_trace_chunks table function.
6
+ This replaces the old duplicate Python implementation with server-side generation.
7
+
8
+ Args:
9
+ client: FlightSQL client
10
+ process_id: Process UUID
11
+ begin: Start time (datetime)
12
+ end: End time (datetime)
13
+ span_types: 'thread', 'async', or 'both'
14
+ trace_filepath: Output file path
15
+ """
16
+ # Convert datetime objects to ISO format strings for SQL
17
+ begin_str = begin.isoformat()
18
+ end_str = end.isoformat()
19
+
20
+ # Query chunks using the server-side table function
21
+ # Note: ORDER BY not needed since chunks are naturally produced in order (0, 1, 2, ...)
22
+ sql = f"""
23
+ SELECT chunk_id, chunk_data
24
+ FROM perfetto_trace_chunks(
25
+ '{process_id}',
26
+ '{span_types}',
27
+ TIMESTAMP '{begin_str}',
28
+ TIMESTAMP '{end_str}'
29
+ )
30
+ """
4
31
 
32
+ print(f"Generating {span_types} spans for process {process_id}...")
5
33
 
6
- # hack to allow perfetto proto imports
7
- # you can then import the protos like this: from protos.perfetto.trace import trace_pb2
8
- def load_perfetto_protos():
9
- import sys
10
- import pathlib
34
+ # Use streaming interface to process chunks as they arrive
35
+ from tqdm import tqdm
11
36
 
12
- perfetto_folder = pathlib.Path(__file__).parent.absolute() / "thirdparty/perfetto"
13
- sys.path.append(str(perfetto_folder))
37
+ trace_chunks = []
38
+ expected_chunk_id = 0
39
+ chunk_count = 0
14
40
 
41
+ # We don't know the total number of chunks upfront, so use indeterminate progress
42
+ pbar = tqdm(desc="Processing chunks", unit=" chunks")
15
43
 
16
- def crc64_str(s):
17
- calculator = crc.Calculator(crc.Crc64.CRC64)
18
- return calculator.checksum(str.encode(s))
44
+ try:
45
+ for record_batch in client.query_stream(sql, begin, end):
46
+ # Convert to pandas for easier access
47
+ df = record_batch.to_pandas()
19
48
 
49
+ # Process each row in the batch
50
+ for _, row in df.iterrows():
51
+ chunk_id = row["chunk_id"]
52
+ chunk_data = row["chunk_data"]
20
53
 
21
- class Writer:
22
- """
23
- Fetches thread events from the analytics server and formats them in the perfetto format.
24
- Traces can be viewed using https://ui.perfetto.dev/
25
- """
54
+ # Verify chunk ID is the expected sequential value
55
+ if chunk_id != expected_chunk_id:
56
+ pbar.close()
57
+ print(
58
+ f"ERROR: Chunk {chunk_id} received, expected {expected_chunk_id}"
59
+ )
60
+ print(f"Chunks may be out of order or missing!")
61
+ return
26
62
 
27
- def __init__(self, client, process_id, begin, end, exe):
28
- load_perfetto_protos()
29
- from protos.perfetto.trace import trace_pb2, trace_packet_pb2
30
-
31
- self.names = {}
32
- self.categories = {}
33
- self.source_locations = {}
34
- self.first = True
35
- self.client = client
36
- self.trace = trace_pb2.Trace()
37
- self.packets = self.trace.packet
38
- self.process_uuid = crc64_str(process_id)
39
- self.begin = begin
40
- self.end = end
41
-
42
- packet = trace_packet_pb2.TracePacket()
43
- packet.track_descriptor.uuid = self.process_uuid
44
- packet.track_descriptor.process.pid = 1
45
- packet.track_descriptor.process.process_name = exe
46
- self.packets.append(packet)
47
-
48
- def get_name_iid(self, name):
49
- iid = self.names.get(name)
50
- is_new = False
51
- if iid is None:
52
- is_new = True
53
- iid = len(self.names) + 1
54
- self.names[name] = iid
55
- return iid, is_new
56
-
57
- def get_category_iid(self, cat):
58
- iid = self.categories.get(cat)
59
- is_new = False
60
- if iid is None:
61
- is_new = True
62
- iid = len(self.categories) + 1
63
- self.categories[cat] = iid
64
- return iid, is_new
65
-
66
- def get_location_iid(self, loc):
67
- iid = self.source_locations.get(loc)
68
- is_new = False
69
- if iid is None:
70
- is_new = True
71
- iid = len(self.source_locations) + 1
72
- self.source_locations[loc] = iid
73
- return iid, is_new
74
-
75
- def append_thread(self, stream_id, thread_name, thread_id):
76
- from protos.perfetto.trace import trace_pb2, trace_packet_pb2, track_event
77
-
78
- packet = trace_packet_pb2.TracePacket()
79
- thread_uuid = crc64_str(stream_id)
80
- packet.track_descriptor.uuid = thread_uuid
81
- packet.track_descriptor.parent_uuid = self.process_uuid
82
- packet.track_descriptor.thread.pid = 1
83
- packet.track_descriptor.thread.tid = thread_id
84
- packet.track_descriptor.thread.thread_name = thread_name
85
- self.packets.append(packet)
86
- trusted_packet_sequence_id = 1
87
-
88
- sql = """
89
- SELECT *
90
- FROM view_instance('thread_spans', '{stream_id}');
91
- """.format(
92
- stream_id=stream_id
93
- )
94
-
95
- for rb_spans in self.client.query_stream(sql, self.begin, self.end):
96
- df_spans = pyarrow.Table.from_batches([rb_spans]).to_pandas()
97
- begin_ns = df_spans["begin"].astype("int64")
98
- end_ns = df_spans["end"].astype("int64")
99
- for index, span in df_spans.iterrows():
100
- packet = trace_packet_pb2.TracePacket()
101
- packet.timestamp = begin_ns[index]
102
- packet.track_event.type = (
103
- track_event.track_event_pb2.TrackEvent.Type.TYPE_SLICE_BEGIN
104
- )
105
- packet.track_event.track_uuid = thread_uuid
106
- span_name = span["name"]
107
- name_iid, new_name = self.get_name_iid(span_name)
108
- packet.track_event.name_iid = name_iid
109
- category_iid, new_category = self.get_category_iid(span["target"])
110
- packet.track_event.category_iids.append(category_iid)
111
-
112
- source_location = (span["filename"], span["line"])
113
- source_location_iid, new_source_location = self.get_location_iid(
114
- source_location
115
- )
116
- packet.track_event.source_location_iid = source_location_iid
117
- if self.first:
118
- # this is necessary for interning to work
119
- self.first = False
120
- packet.first_packet_on_sequence = True
121
- packet.sequence_flags = 3
122
- else:
123
- packet.sequence_flags = 2
124
-
125
- if new_name:
126
- event_name = packet.interned_data.event_names.add()
127
- event_name.iid = name_iid
128
- event_name.name = span_name
129
- if new_category:
130
- cat_name = packet.interned_data.event_categories.add()
131
- cat_name.iid = category_iid
132
- cat_name.name = span["target"]
133
- if new_source_location:
134
- loc = packet.interned_data.source_locations.add()
135
- loc.iid = source_location_iid
136
- loc.file_name = source_location[0]
137
- loc.line_number = source_location[1]
138
-
139
- packet.trusted_packet_sequence_id = trusted_packet_sequence_id
140
- self.packets.append(packet)
141
-
142
- packet = trace_packet_pb2.TracePacket()
143
- packet.timestamp = end_ns[index]
144
- packet.track_event.type = (
145
- track_event.track_event_pb2.TrackEvent.Type.TYPE_SLICE_END
146
- )
147
- packet.track_event.track_uuid = thread_uuid
148
- packet.track_event.name_iid = name_iid
149
- packet.track_event.category_iids.append(category_iid)
150
- packet.track_event.source_location_iid = source_location_iid
151
- packet.sequence_flags = 2
152
- packet.trusted_packet_sequence_id = trusted_packet_sequence_id
153
-
154
- self.packets.append(packet)
155
-
156
- def write_file(self, filename):
157
- with open(filename, "wb") as f:
158
- f.write(self.trace.SerializeToString())
159
-
160
-
161
- def get_process_cpu_streams(client, process_id, begin, end):
162
- sql = """
163
- SELECT stream_id,
164
- property_get("streams.properties", 'thread-name') as thread_name,
165
- property_get("streams.properties", 'thread-id') as thread_id
166
- FROM blocks
167
- WHERE process_id = '{process_id}'
168
- AND array_has("streams.tags", 'cpu')
169
- GROUP BY stream_id, thread_name, thread_id
170
- """.format(
171
- process_id=process_id
172
- )
173
- df_streams = client.query(sql)
174
- return df_streams
63
+ trace_chunks.append(chunk_data)
64
+ expected_chunk_id += 1
65
+ chunk_count += 1
66
+ pbar.update(1)
67
+
68
+ pbar.close()
175
69
 
70
+ if chunk_count == 0:
71
+ print(f"No trace data found for process {process_id}")
72
+ return
73
+ except KeyboardInterrupt:
74
+ pbar.close()
75
+ print(f"\nTrace generation interrupted by user after {chunk_count} chunks")
76
+ return
77
+ except Exception as e:
78
+ pbar.close()
79
+ raise
176
80
 
177
- def get_exe(client, process_id, begin, end):
178
- sql = """
179
- SELECT "processes.exe" as exe
180
- FROM blocks
181
- WHERE process_id='{process_id}'
182
- LIMIT 1;""".format(
183
- process_id=process_id
81
+ # Reassemble binary chunks into complete trace
82
+ print(f"Assembling {chunk_count} chunks into trace...")
83
+ trace_bytes = b"".join(trace_chunks)
84
+
85
+ print(f"Generated trace with {chunk_count} chunks ({len(trace_bytes)} bytes)")
86
+
87
+ # Write to file
88
+ with open(trace_filepath, "wb") as f:
89
+ f.write(trace_bytes)
90
+
91
+ print(f"Trace written to {trace_filepath}")
92
+
93
+
94
+ # Main API function with span type selection
95
+ def write_process_trace(
96
+ client, process_id, begin, end, trace_filepath, span_types="both"
97
+ ):
98
+ """
99
+ Generate Perfetto trace with configurable span types.
100
+
101
+ Args:
102
+ client: FlightSQL client
103
+ process_id: Process UUID
104
+ begin: Start time (datetime)
105
+ end: End time (datetime)
106
+ trace_filepath: Output file path
107
+ span_types: 'thread', 'async', or 'both' (default: 'both')
108
+ """
109
+ write_process_trace_from_chunks(
110
+ client, process_id, begin, end, span_types, trace_filepath
184
111
  )
185
- return client.query(sql, begin, end).iloc[0]["exe"]
186
-
187
-
188
- def write_process_trace(client, process_id, begin, end, trace_filepath):
189
- exe = get_exe(client, process_id, begin, end)
190
- print(exe)
191
- streams = get_process_cpu_streams(client, process_id, begin, end)
192
- writer = Writer(client, process_id, begin, end, exe)
193
- progress_bar = tqdm(list(streams.iterrows()), unit="threads")
194
- for index, stream in progress_bar:
195
- progress_bar.set_description(stream["thread_name"])
196
- stream_id = int(stream["thread_id"])
197
- writer.append_thread(stream["stream_id"], stream["thread_name"], stream_id)
198
- writer.write_file(trace_filepath)
micromegas/time.py CHANGED
@@ -1,8 +1,58 @@
1
+ """Time utility functions for Micromegas Python client.
2
+
3
+ This module provides utilities for formatting and parsing time values
4
+ used in queries and API calls.
5
+ """
6
+
1
7
  import datetime
2
8
  import pandas
3
9
  import re
4
10
 
11
+
5
12
  def format_datetime(value):
13
+ """Format various datetime types into RFC3339/ISO8601 strings for queries.
14
+
15
+ Converts Python datetime objects, pandas Timestamps, or datetime strings
16
+ into a standardized RFC3339 format that the Micromegas server expects.
17
+ Ensures all datetime values have timezone information.
18
+
19
+ Args:
20
+ value: The datetime value to format. Can be:
21
+ - datetime.datetime: Must be timezone-aware
22
+ - pandas.Timestamp: Will use its timezone information
23
+ - str: ISO format string that will be parsed and reformatted
24
+ - None: Returns None without modification
25
+
26
+ Returns:
27
+ str: RFC3339/ISO8601 formatted datetime string (e.g., "2024-01-01T12:00:00+00:00")
28
+ None: If input value is None
29
+
30
+ Raises:
31
+ RuntimeError: If datetime is missing timezone information or value type is unsupported.
32
+
33
+ Example:
34
+ >>> import datetime
35
+ >>> from datetime import timezone
36
+ >>>
37
+ >>> # Format timezone-aware datetime
38
+ >>> dt = datetime.datetime(2024, 1, 1, 12, 0, 0, tzinfo=timezone.utc)
39
+ >>> format_datetime(dt)
40
+ '2024-01-01T12:00:00+00:00'
41
+ >>>
42
+ >>> # Format pandas Timestamp
43
+ >>> import pandas as pd
44
+ >>> ts = pd.Timestamp('2024-01-01 12:00:00', tz='UTC')
45
+ >>> format_datetime(ts)
46
+ '2024-01-01T12:00:00+00:00'
47
+ >>>
48
+ >>> # Parse and format string
49
+ >>> format_datetime('2024-01-01T12:00:00Z')
50
+ '2024-01-01T12:00:00+00:00'
51
+
52
+ Note:
53
+ Always use timezone-aware datetime objects to avoid ambiguity.
54
+ The server requires RFC3339 format for all time-based queries.
55
+ """
6
56
  nonetype = type(None)
7
57
  value_type = type(value)
8
58
  if value_type == datetime.datetime:
@@ -17,9 +67,55 @@ def format_datetime(value):
17
67
  return None
18
68
  raise RuntimeError("value of unknown type in format_datetime")
19
69
 
70
+
20
71
  def parse_time_delta(user_string):
21
- parser = re.compile("(\\d+)([mhd])")
72
+ """Parse human-readable time delta strings into timedelta objects.
73
+
74
+ Converts simple time duration strings like "1h", "30m", or "7d" into
75
+ Python timedelta objects for use in time calculations.
76
+
77
+ Args:
78
+ user_string (str): Time delta string with format "<number><unit>" where:
79
+ - number: Positive integer
80
+ - unit: 'm' for minutes, 'h' for hours, 'd' for days
81
+
82
+ Returns:
83
+ datetime.timedelta: The parsed time duration.
84
+
85
+ Raises:
86
+ RuntimeError: If the string format is invalid or uses unsupported units.
87
+
88
+ Example:
89
+ >>> # Parse various time deltas
90
+ >>> parse_time_delta('30m') # 30 minutes
91
+ datetime.timedelta(seconds=1800)
92
+ >>>
93
+ >>> parse_time_delta('2h') # 2 hours
94
+ datetime.timedelta(seconds=7200)
95
+ >>>
96
+ >>> parse_time_delta('7d') # 7 days
97
+ datetime.timedelta(days=7)
98
+ >>>
99
+ >>> # Use in time calculations
100
+ >>> import datetime
101
+ >>> now = datetime.datetime.now(datetime.timezone.utc)
102
+ >>> one_hour_ago = now - parse_time_delta('1h')
103
+
104
+ Supported Units:
105
+ - 'm': minutes
106
+ - 'h': hours
107
+ - 'd': days
108
+
109
+ Note:
110
+ For more complex time expressions, use datetime.timedelta directly.
111
+ This function is designed for simple, common time durations.
112
+ """
113
+ parser = re.compile(r"(\d+)([mhd])")
22
114
  m = parser.match(user_string)
115
+ if not m:
116
+ raise RuntimeError(
117
+ f"invalid time delta format: '{user_string}'. Expected format: '<number><unit>' where unit is m/h/d"
118
+ )
23
119
  nbr = int(m.group(1))
24
120
  unit = m.group(2)
25
121
  if unit == "m":
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.3
2
+ Name: micromegas
3
+ Version: 0.12.0
4
+ Summary: Python analytics client for https://github.com/madesroches/micromegas/
5
+ Author: Marc-Antoine Desroches
6
+ Author-email: madesroches@gmail.com
7
+ Requires-Python: >=3.10,<4.0
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Requires-Dist: certifi (>=2025.4.26,<2026.0.0)
14
+ Requires-Dist: grpcio (>=1.69.0,<2.0.0)
15
+ Requires-Dist: numpy (>=2.2.6,<3.0.0)
16
+ Requires-Dist: pandas (>=2.2.2,<3.0.0)
17
+ Requires-Dist: protobuf (>=5.29.0,<6.0.0)
18
+ Requires-Dist: pyarrow (>=20.0.0,<21.0.0)
19
+ Requires-Dist: tabulate (>=0.9.0,<0.10.0)
20
+ Requires-Dist: tqdm (>=4.66.0,<5.0.0)
21
+ Description-Content-Type: text/markdown
22
+
23
+ # Micromegas
24
+
25
+ Python analytics client for https://github.com/madesroches/micromegas/
26
+
27
+ 📖 **[Complete Python API Documentation](https://madesroches.github.io/micromegas/docs/query-guide/python-api/)** - Comprehensive guide with all methods, examples, and advanced patterns
28
+
29
+ ## Example usage
30
+
31
+ Query the 2 most recent log entries from the flightsql service
32
+
33
+ ```python
34
+ import datetime
35
+ import micromegas
36
+
37
+ # Connect to local server
38
+ client = micromegas.connect()
39
+ sql = """
40
+ SELECT time, process_id, level, target, msg
41
+ FROM log_entries
42
+ WHERE level <= 4
43
+ AND exe LIKE '%flight%'
44
+ ORDER BY time DESC
45
+ LIMIT 2
46
+ """
47
+
48
+ now = datetime.datetime.now(datetime.timezone.utc)
49
+ begin = now - datetime.timedelta(minutes=2)
50
+ end = now
51
+ df = client.query(sql, begin, end)
52
+ print(df)
53
+ ```
54
+
55
+ | | time | process_id | level | target | msg |
56
+ |---:|:------------------------------------|:-------------------------------------|--------:|:---------------------------------------|:--------------------------------------------|
57
+ | 0 | 2024-10-03 18:17:56.087543714+00:00 | 1db06afc-1c88-47d1-81b3-f398c5f93616 | 4 | acme_telemetry::trace_middleware | response status=200 OK uri=/analytics/query |
58
+ | 1 | 2024-10-03 18:17:53.924037729+00:00 | 1db06afc-1c88-47d1-81b3-f398c5f93616 | 4 | micromegas_analytics::lakehouse::query | query sql= |
59
+ | | | | | | SELECT time, process_id, level, target, msg |
60
+ | | | | | | FROM log_entries |
61
+ | | | | | | WHERE level <= 4 |
62
+ | | | | | | AND exe LIKE '%analytics%' |
63
+ | | | | | | ORDER BY time DESC |
64
+ | | | | | | LIMIT 2 |
65
+
66
+
67
+ Query the 10 slowest top level spans in a trace within a specified time window
68
+
69
+ ```python
70
+ import datetime
71
+ import micromegas
72
+
73
+ client = micromegas.connect()
74
+
75
+ # First find a stream ID
76
+ end = datetime.datetime.now(datetime.timezone.utc)
77
+ begin = end - datetime.timedelta(hours=1)
78
+ streams = client.query_streams(begin, end, limit=1)
79
+
80
+ if not streams.empty:
81
+ stream_id = streams['stream_id'].iloc[0]
82
+
83
+ sql = """
84
+ SELECT begin, end, duration, name
85
+ FROM view_instance('thread_spans', '{}')
86
+ WHERE depth=1
87
+ ORDER BY duration DESC
88
+ LIMIT 10
89
+ """.format(stream_id)
90
+
91
+ spans = client.query(sql, begin, end)
92
+ print(spans)
93
+ ```
94
+
95
+ | | begin | end | duration | name |
96
+ |---:|:------------------------------------|:------------------------------------|-----------:|:------------------|
97
+ | 0 | 2024-10-03 18:00:59.308952900+00:00 | 2024-10-03 18:00:59.371890+00:00 | 62937100 | FEngineLoop::Tick |
98
+ | 1 | 2024-10-03 18:00:58.752476800+00:00 | 2024-10-03 18:00:58.784389+00:00 | 31912200 | FEngineLoop::Tick |
99
+ | 2 | 2024-10-03 18:00:58.701507300+00:00 | 2024-10-03 18:00:58.731479500+00:00 | 29972200 | FEngineLoop::Tick |
100
+ | 3 | 2024-10-03 18:00:59.766343100+00:00 | 2024-10-03 18:00:59.792513700+00:00 | 26170600 | FEngineLoop::Tick |
101
+ | 4 | 2024-10-03 18:00:59.282902100+00:00 | 2024-10-03 18:00:59.308952500+00:00 | 26050400 | FEngineLoop::Tick |
102
+ | 5 | 2024-10-03 18:00:59.816034500+00:00 | 2024-10-03 18:00:59.841376900+00:00 | 25342400 | FEngineLoop::Tick |
103
+ | 6 | 2024-10-03 18:00:58.897813100+00:00 | 2024-10-03 18:00:58.922769700+00:00 | 24956600 | FEngineLoop::Tick |
104
+ | 7 | 2024-10-03 18:00:59.860637+00:00 | 2024-10-03 18:00:59.885523700+00:00 | 24886700 | FEngineLoop::Tick |
105
+ | 8 | 2024-10-03 18:00:58.630051300+00:00 | 2024-10-03 18:00:58.654871500+00:00 | 24820200 | FEngineLoop::Tick |
106
+ | 9 | 2024-10-03 18:00:57.952279800+00:00 | 2024-10-03 18:00:57.977024+00:00 | 24744200 | FEngineLoop::Tick |
107
+
108
+ ## Quick Start
109
+
110
+ For a complete getting started guide, see the [Python API Documentation](https://madesroches.github.io/micromegas/docs/query-guide/python-api/).
111
+
112
+ ## Schema Reference
113
+
114
+ For complete schema information including all available tables, columns, and data types, see the [Schema Reference](https://madesroches.github.io/micromegas/docs/query-guide/schema-reference/).
115
+
116
+ ## SQL Reference
117
+
118
+ The Micromegas analytics service is built on Apache DataFusion. For SQL syntax and functions, see the [Apache DataFusion SQL Reference](https://datafusion.apache.org/user-guide/sql/index.html).
119
+
120
+
@@ -0,0 +1,10 @@
1
+ micromegas/__init__.py,sha256=oh0BAfNUVpHtFgufYWxvPwRfnqBTXY_nTPrNW1cwn-s,225
2
+ micromegas/flightsql/FlightSql_pb2.py,sha256=3L_CtRVjjNppQE5gfXKF2AxgST7_kDc6dQEnA7fr_9A,28725
3
+ micromegas/flightsql/__init__.py,sha256=So1GnY60k8QQPDOqocXbvr5KxWWn4KqJrXr2Q8zYOow,75
4
+ micromegas/flightsql/client.py,sha256=SET-NVGzUkF9jmB72-sMH5cwr0B0HBlTBqi-ifPLhig,28590
5
+ micromegas/flightsql/time.py,sha256=k2jYOT3Vab7l6A8hxBmwZP69olKjELNw9xBjALYde0I,583
6
+ micromegas/perfetto.py,sha256=-IwcZ3PB4Dm6odHYW2w2ZUzxr9gtE9SCPHxzA3I7csg,3576
7
+ micromegas/time.py,sha256=h4xv180XQh7z7LIYGmHjIp5vqC1tNw87fFE8kbeDixg,4358
8
+ micromegas-0.12.0.dist-info/METADATA,sha256=LhnS-XplCTAxcGDpQv3PI_S3drN8EW-ojwf7hk7A5mM,6055
9
+ micromegas-0.12.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
10
+ micromegas-0.12.0.dist-info/RECORD,,
@@ -1,38 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # NO CHECKED-IN PROTOBUF GENCODE
4
- # source: protos/perfetto/common/android_energy_consumer_descriptor.proto
5
- # Protobuf Python Version: 5.27.1
6
- """Generated protocol buffer code."""
7
- from google.protobuf import descriptor as _descriptor
8
- from google.protobuf import descriptor_pool as _descriptor_pool
9
- from google.protobuf import runtime_version as _runtime_version
10
- from google.protobuf import symbol_database as _symbol_database
11
- from google.protobuf.internal import builder as _builder
12
- _runtime_version.ValidateProtobufRuntimeVersion(
13
- _runtime_version.Domain.PUBLIC,
14
- 5,
15
- 27,
16
- 1,
17
- '',
18
- 'protos/perfetto/common/android_energy_consumer_descriptor.proto'
19
- )
20
- # @@protoc_insertion_point(imports)
21
-
22
- _sym_db = _symbol_database.Default()
23
-
24
-
25
-
26
-
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n?protos/perfetto/common/android_energy_consumer_descriptor.proto\x12\x0fperfetto.protos\"`\n\x15\x41ndroidEnergyConsumer\x12\x1a\n\x12\x65nergy_consumer_id\x18\x01 \x01(\x05\x12\x0f\n\x07ordinal\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\"c\n\x1f\x41ndroidEnergyConsumerDescriptor\x12@\n\x10\x65nergy_consumers\x18\x01 \x03(\x0b\x32&.perfetto.protos.AndroidEnergyConsumer')
28
-
29
- _globals = globals()
30
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protos.perfetto.common.android_energy_consumer_descriptor_pb2', _globals)
32
- if not _descriptor._USE_C_DESCRIPTORS:
33
- DESCRIPTOR._loaded_options = None
34
- _globals['_ANDROIDENERGYCONSUMER']._serialized_start=84
35
- _globals['_ANDROIDENERGYCONSUMER']._serialized_end=180
36
- _globals['_ANDROIDENERGYCONSUMERDESCRIPTOR']._serialized_start=182
37
- _globals['_ANDROIDENERGYCONSUMERDESCRIPTOR']._serialized_end=281
38
- # @@protoc_insertion_point(module_scope)
@@ -1,38 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # NO CHECKED-IN PROTOBUF GENCODE
4
- # source: protos/perfetto/common/android_log_constants.proto
5
- # Protobuf Python Version: 5.27.1
6
- """Generated protocol buffer code."""
7
- from google.protobuf import descriptor as _descriptor
8
- from google.protobuf import descriptor_pool as _descriptor_pool
9
- from google.protobuf import runtime_version as _runtime_version
10
- from google.protobuf import symbol_database as _symbol_database
11
- from google.protobuf.internal import builder as _builder
12
- _runtime_version.ValidateProtobufRuntimeVersion(
13
- _runtime_version.Domain.PUBLIC,
14
- 5,
15
- 27,
16
- 1,
17
- '',
18
- 'protos/perfetto/common/android_log_constants.proto'
19
- )
20
- # @@protoc_insertion_point(imports)
21
-
22
- _sym_db = _symbol_database.Default()
23
-
24
-
25
-
26
-
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2protos/perfetto/common/android_log_constants.proto\x12\x0fperfetto.protos*\x8e\x01\n\x0c\x41ndroidLogId\x12\x0f\n\x0bLID_DEFAULT\x10\x00\x12\r\n\tLID_RADIO\x10\x01\x12\x0e\n\nLID_EVENTS\x10\x02\x12\x0e\n\nLID_SYSTEM\x10\x03\x12\r\n\tLID_CRASH\x10\x04\x12\r\n\tLID_STATS\x10\x05\x12\x10\n\x0cLID_SECURITY\x10\x06\x12\x0e\n\nLID_KERNEL\x10\x07*\x9b\x01\n\x12\x41ndroidLogPriority\x12\x14\n\x10PRIO_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPRIO_UNUSED\x10\x01\x12\x10\n\x0cPRIO_VERBOSE\x10\x02\x12\x0e\n\nPRIO_DEBUG\x10\x03\x12\r\n\tPRIO_INFO\x10\x04\x12\r\n\tPRIO_WARN\x10\x05\x12\x0e\n\nPRIO_ERROR\x10\x06\x12\x0e\n\nPRIO_FATAL\x10\x07')
28
-
29
- _globals = globals()
30
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protos.perfetto.common.android_log_constants_pb2', _globals)
32
- if not _descriptor._USE_C_DESCRIPTORS:
33
- DESCRIPTOR._loaded_options = None
34
- _globals['_ANDROIDLOGID']._serialized_start=72
35
- _globals['_ANDROIDLOGID']._serialized_end=214
36
- _globals['_ANDROIDLOGPRIORITY']._serialized_start=217
37
- _globals['_ANDROIDLOGPRIORITY']._serialized_end=372
38
- # @@protoc_insertion_point(module_scope)
@@ -1,36 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # NO CHECKED-IN PROTOBUF GENCODE
4
- # source: protos/perfetto/common/builtin_clock.proto
5
- # Protobuf Python Version: 5.27.1
6
- """Generated protocol buffer code."""
7
- from google.protobuf import descriptor as _descriptor
8
- from google.protobuf import descriptor_pool as _descriptor_pool
9
- from google.protobuf import runtime_version as _runtime_version
10
- from google.protobuf import symbol_database as _symbol_database
11
- from google.protobuf.internal import builder as _builder
12
- _runtime_version.ValidateProtobufRuntimeVersion(
13
- _runtime_version.Domain.PUBLIC,
14
- 5,
15
- 27,
16
- 1,
17
- '',
18
- 'protos/perfetto/common/builtin_clock.proto'
19
- )
20
- # @@protoc_insertion_point(imports)
21
-
22
- _sym_db = _symbol_database.Default()
23
-
24
-
25
-
26
-
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*protos/perfetto/common/builtin_clock.proto\x12\x0fperfetto.protos*\xa3\x02\n\x0c\x42uiltinClock\x12\x19\n\x15\x42UILTIN_CLOCK_UNKNOWN\x10\x00\x12\x1a\n\x16\x42UILTIN_CLOCK_REALTIME\x10\x01\x12!\n\x1d\x42UILTIN_CLOCK_REALTIME_COARSE\x10\x02\x12\x1b\n\x17\x42UILTIN_CLOCK_MONOTONIC\x10\x03\x12\"\n\x1e\x42UILTIN_CLOCK_MONOTONIC_COARSE\x10\x04\x12\x1f\n\x1b\x42UILTIN_CLOCK_MONOTONIC_RAW\x10\x05\x12\x1a\n\x16\x42UILTIN_CLOCK_BOOTTIME\x10\x06\x12\x15\n\x11\x42UILTIN_CLOCK_TSC\x10\t\x12\x18\n\x14\x42UILTIN_CLOCK_MAX_ID\x10?\"\x04\x08\x07\x10\x07\"\x04\x08\x08\x10\x08')
28
-
29
- _globals = globals()
30
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protos.perfetto.common.builtin_clock_pb2', _globals)
32
- if not _descriptor._USE_C_DESCRIPTORS:
33
- DESCRIPTOR._loaded_options = None
34
- _globals['_BUILTINCLOCK']._serialized_start=64
35
- _globals['_BUILTINCLOCK']._serialized_end=355
36
- # @@protoc_insertion_point(module_scope)