glean-parser 18.0.2__tar.gz → 18.0.3__tar.gz

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 (145) hide show
  1. {glean_parser-18.0.2 → glean_parser-18.0.3}/PKG-INFO +1 -1
  2. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/kotlin.jinja2 +32 -0
  3. {glean_parser-18.0.2 → glean_parser-18.0.3}/.gitignore +0 -0
  4. {glean_parser-18.0.2 → glean_parser-18.0.3}/AUTHORS.md +0 -0
  5. {glean_parser-18.0.2 → glean_parser-18.0.3}/LICENSE +0 -0
  6. {glean_parser-18.0.2 → glean_parser-18.0.3}/README.md +0 -0
  7. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/__init__.py +0 -0
  8. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/__main__.py +0 -0
  9. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/coverage.py +0 -0
  10. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/data_review.py +0 -0
  11. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/go_server.py +0 -0
  12. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/javascript.py +0 -0
  13. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/javascript_server.py +0 -0
  14. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/kotlin.py +0 -0
  15. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/lint.py +0 -0
  16. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/markdown.py +0 -0
  17. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/metrics.py +0 -0
  18. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/parser.py +0 -0
  19. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/pings.py +0 -0
  20. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/python_server.py +0 -0
  21. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/ruby_server.py +0 -0
  22. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/rust.py +0 -0
  23. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/rust_server.py +0 -0
  24. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/schemas/metrics.1-0-0.schema.yaml +0 -0
  25. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/schemas/metrics.2-0-0.schema.yaml +0 -0
  26. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/schemas/pings.1-0-0.schema.yaml +0 -0
  27. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/schemas/pings.2-0-0.schema.yaml +0 -0
  28. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/schemas/tags.1-0-0.schema.yaml +0 -0
  29. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/swift.py +0 -0
  30. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/tags.py +0 -0
  31. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/data_review.jinja2 +0 -0
  32. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/go_server.jinja2 +0 -0
  33. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/javascript.buildinfo.jinja2 +0 -0
  34. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/javascript.jinja2 +0 -0
  35. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/javascript_server.jinja2 +0 -0
  36. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/kotlin.buildinfo.jinja2 +0 -0
  37. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/markdown.jinja2 +0 -0
  38. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/python_server.jinja2 +0 -0
  39. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/qmldir.jinja2 +0 -0
  40. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/ruby_server.jinja2 +0 -0
  41. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/rust.jinja2 +0 -0
  42. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/rust_server.jinja2 +0 -0
  43. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/templates/swift.jinja2 +0 -0
  44. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/translate.py +0 -0
  45. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/translation_options.py +0 -0
  46. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/util.py +0 -0
  47. {glean_parser-18.0.2 → glean_parser-18.0.3}/glean_parser/validate_ping.py +0 -0
  48. {glean_parser-18.0.2 → glean_parser-18.0.3}/pyproject.toml +0 -0
  49. {glean_parser-18.0.2 → glean_parser-18.0.3}/server_telemetry/sdk-metrics-compat.yaml +0 -0
  50. {glean_parser-18.0.2 → glean_parser-18.0.3}/server_telemetry/server-side-pings.yaml +0 -0
  51. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/conftest.py +0 -0
  52. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/all_metrics.yaml +0 -0
  53. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/all_pings.yaml +0 -0
  54. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/attribution.yaml +0 -0
  55. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/bad_attribution.yamlx +0 -0
  56. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/bad_ping.yamlx +0 -0
  57. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/core.yaml +0 -0
  58. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/dual_labeled.yaml +0 -0
  59. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/dual_labeled_invalid.yaml +0 -0
  60. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/duplicate_labeled.yaml +0 -0
  61. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/duplicate_send_in_ping.yaml +0 -0
  62. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/empty.yaml +0 -0
  63. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/event_key_ordering.yaml +0 -0
  64. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/events_data_sensitivity.yaml +0 -0
  65. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/events_with_types.yaml +0 -0
  66. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/fxa-server-metrics.yaml +0 -0
  67. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/fxa-server-pings.yaml +0 -0
  68. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/go_server_custom_ping_only_metrics.yaml +0 -0
  69. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/go_server_custom_ping_only_pings.yaml +0 -0
  70. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/go_server_events_and_custom_ping_metrics.yaml +0 -0
  71. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/go_server_events_and_custom_ping_pings.yaml +0 -0
  72. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/go_server_events_only_metrics.yaml +0 -0
  73. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/go_server_metrics_unsupported.yaml +0 -0
  74. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/invalid-ping-names.yaml +0 -0
  75. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/invalid.yamlx +0 -0
  76. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/jwe.yaml +0 -0
  77. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/metric-with-tags.yaml +0 -0
  78. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/mixed-expirations.yaml +0 -0
  79. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/name_too_similar.yaml +0 -0
  80. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/object.yaml +0 -0
  81. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/old_event_api.yamlx +0 -0
  82. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/ordering.yaml +0 -0
  83. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/pings.yaml +0 -0
  84. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/rate.yaml +0 -0
  85. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/redefined_category.yamlx +0 -0
  86. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/redefined_metric.yamlx +0 -0
  87. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/redefined_ping.yamlx +0 -0
  88. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/reserved_categories.yamlx +0 -0
  89. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/ruby_server_metrics_unsupported.yaml +0 -0
  90. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/ruby_server_pings_unsupported.yaml +0 -0
  91. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/rust_server_custom_ping_only_metrics.yaml +0 -0
  92. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/rust_server_custom_ping_only_pings.yaml +0 -0
  93. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/rust_server_events_and_custom_ping_metrics.yaml +0 -0
  94. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/rust_server_events_and_custom_ping_pings.yaml +0 -0
  95. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/rust_server_events_only_metrics.yaml +0 -0
  96. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/rust_server_metrics_unsupported.yaml +0 -0
  97. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/same_name_different_category.yaml +0 -0
  98. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/schema-violation.yaml +0 -0
  99. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/send_if_empty_with_metrics.yaml +0 -0
  100. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_custom_ping_only_compare.go +0 -0
  101. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_custom_ping_only_compare.rs +0 -0
  102. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_events_and_custom_ping_compare.go +0 -0
  103. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_events_and_custom_ping_compare.rs +0 -0
  104. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_events_compare.rb +0 -0
  105. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_events_only_compare.go +0 -0
  106. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_events_only_compare.rs +0 -0
  107. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_metrics_no_events_no_pings.yaml +0 -0
  108. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_metrics_with_event.yaml +0 -0
  109. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/server_pings.yaml +0 -0
  110. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/single_labeled.yaml +0 -0
  111. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/smaller.yaml +0 -0
  112. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/tags.yaml +0 -0
  113. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/telemetry_mirror.yaml +0 -0
  114. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/text.yaml +0 -0
  115. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/text_invalid.yaml +0 -0
  116. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/unknown_ping_used.yaml +0 -0
  117. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/wrong_key.yamlx +0 -0
  118. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/data/yaml_nits.yamlx +0 -0
  119. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/detekt.yml +0 -0
  120. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test-go/test.go.tmpl +0 -0
  121. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test-js/package.json +0 -0
  122. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test-js/test.js.tmpl +0 -0
  123. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test-py/test.py +0 -0
  124. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test-rb/test.rb.tmpl +0 -0
  125. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test-rs/test.rs.tmpl +0 -0
  126. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_cli.py +0 -0
  127. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_go_server.py +0 -0
  128. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_javascript.py +0 -0
  129. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_javascript_server.py +0 -0
  130. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_kotlin.py +0 -0
  131. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_lint.py +0 -0
  132. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_markdown.py +0 -0
  133. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_metrics.py +0 -0
  134. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_parser.py +0 -0
  135. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_pings.py +0 -0
  136. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_python_server.py +0 -0
  137. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_ruby_server.py +0 -0
  138. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_rust.py +0 -0
  139. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_rust_server.py +0 -0
  140. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_swift.py +0 -0
  141. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_tags.py +0 -0
  142. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_translate.py +0 -0
  143. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_utils.py +0 -0
  144. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/test_validate_ping.py +0 -0
  145. {glean_parser-18.0.2 → glean_parser-18.0.3}/tests/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: glean-parser
3
- Version: 18.0.2
3
+ Version: 18.0.3
4
4
  Summary: Parser tools for Mozilla's Glean telemetry
5
5
  Project-URL: Homepage, https://mozilla.github.io/glean
6
6
  Project-URL: Repository, https://github.com/mozilla/glean_parser
@@ -78,11 +78,14 @@ data class {{ obj.name|Camelize }}{{ suffix }}(
78
78
  {% endfor %}
79
79
  }
80
80
  {%- elif struct.type == "array" -%}
81
+ @Serializable(with = {{name}}.Serializer::class)
81
82
  data class {{ name }}(var items: MutableList<{{ name }}Item> = mutableListOf()) : ObjectSerialize {
82
83
  fun add(elem: {{ name }}Item) = items.add(elem)
83
84
 
84
85
  fun addAll(elements: Collection<{{ name }}Item>) = items.addAll(elements)
85
86
 
87
+ val size get() = items.size
88
+
86
89
  fun clear() = items.clear()
87
90
 
88
91
  fun remove(element: {{ name }}Item) = items.remove(element)
@@ -106,11 +109,26 @@ data class {{ obj.name|Camelize }}{{ suffix }}(
106
109
  }
107
110
  return json
108
111
  }
112
+
113
+ internal object Serializer : KSerializer<{{name}}> {
114
+ @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
115
+ override val descriptor = listSerialDescriptor<String>()
116
+
117
+ override fun deserialize(decoder: Decoder): {{ name }} {
118
+ val list = decoder.decodeSerializableValue(ListSerializer(serializer<{{name}}Item>()))
119
+ return {{name}}(items = list.toMutableList())
120
+ }
121
+
122
+ override fun serialize(encoder: Encoder, value: {{name}}) {
123
+ encoder.encodeSerializableValue(ListSerializer(serializer<{{name}}Item>()), value.items)
124
+ }
125
+ }
109
126
  }
110
127
 
111
128
  {{ generate_structure(name ~ "Item", struct["items"]) }}
112
129
 
113
130
  {%- elif struct.type == "object" -%}
131
+ @Serializable
114
132
  data class {{ name }}(
115
133
  {% for itemname, val in struct.properties.items() %}
116
134
  {% if val.type == "array" %}
@@ -127,7 +145,12 @@ data class {{ obj.name|Camelize }}{{ suffix }}(
127
145
  override fun intoSerializedObject(): String {
128
146
  var __obj: MutableList<String> = mutableListOf()
129
147
  {% for itemname, val in struct.properties.items() %}
148
+ {% if val.type == "array" %}
149
+ if (this.{{itemname|camelize}}.size > 0) {
150
+ val {{itemname|camelize}} = this.{{itemname|camelize}}
151
+ {% else %}
130
152
  this.{{itemname|camelize}}?.let { {{itemname|camelize}} ->
153
+ {% endif %}
131
154
  val __elem = buildString {
132
155
  append("\"{{itemname}}\":")
133
156
  append({{itemname|camelize}}.intoSerializedObject())
@@ -200,6 +223,15 @@ import {{ glean_namespace }}.private.LabeledMetricType // ktlint-disable import-
200
223
  {% endif %}
201
224
  {% if has_object_metrics %}
202
225
  import {{ glean_namespace }}.private.intoSerializedObject
226
+ import kotlinx.serialization.KSerializer
227
+ import kotlinx.serialization.Serializable
228
+ import kotlinx.serialization.builtins.ListSerializer
229
+ import kotlinx.serialization.descriptors.listSerialDescriptor
230
+ import kotlinx.serialization.encodeToString
231
+ import kotlinx.serialization.encoding.Decoder
232
+ import kotlinx.serialization.encoding.Encoder
233
+ import kotlinx.serialization.json.Json
234
+ import kotlinx.serialization.serializer
203
235
  {% endif %}
204
236
 
205
237
  {# HACK HACK HACK -- typealiases MUST BE top-level #}
File without changes
File without changes
File without changes
File without changes