glean-parser 18.0.3__tar.gz → 18.0.4__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.3 → glean_parser-18.0.4}/PKG-INFO +1 -1
  2. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/kotlin.jinja2 +68 -1
  3. {glean_parser-18.0.3 → glean_parser-18.0.4}/.gitignore +0 -0
  4. {glean_parser-18.0.3 → glean_parser-18.0.4}/AUTHORS.md +0 -0
  5. {glean_parser-18.0.3 → glean_parser-18.0.4}/LICENSE +0 -0
  6. {glean_parser-18.0.3 → glean_parser-18.0.4}/README.md +0 -0
  7. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/__init__.py +0 -0
  8. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/__main__.py +0 -0
  9. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/coverage.py +0 -0
  10. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/data_review.py +0 -0
  11. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/go_server.py +0 -0
  12. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/javascript.py +0 -0
  13. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/javascript_server.py +0 -0
  14. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/kotlin.py +0 -0
  15. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/lint.py +0 -0
  16. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/markdown.py +0 -0
  17. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/metrics.py +0 -0
  18. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/parser.py +0 -0
  19. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/pings.py +0 -0
  20. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/python_server.py +0 -0
  21. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/ruby_server.py +0 -0
  22. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/rust.py +0 -0
  23. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/rust_server.py +0 -0
  24. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/schemas/metrics.1-0-0.schema.yaml +0 -0
  25. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/schemas/metrics.2-0-0.schema.yaml +0 -0
  26. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/schemas/pings.1-0-0.schema.yaml +0 -0
  27. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/schemas/pings.2-0-0.schema.yaml +0 -0
  28. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/schemas/tags.1-0-0.schema.yaml +0 -0
  29. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/swift.py +0 -0
  30. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/tags.py +0 -0
  31. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/data_review.jinja2 +0 -0
  32. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/go_server.jinja2 +0 -0
  33. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/javascript.buildinfo.jinja2 +0 -0
  34. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/javascript.jinja2 +0 -0
  35. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/javascript_server.jinja2 +0 -0
  36. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/kotlin.buildinfo.jinja2 +0 -0
  37. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/markdown.jinja2 +0 -0
  38. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/python_server.jinja2 +0 -0
  39. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/qmldir.jinja2 +0 -0
  40. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/ruby_server.jinja2 +0 -0
  41. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/rust.jinja2 +0 -0
  42. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/rust_server.jinja2 +0 -0
  43. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/templates/swift.jinja2 +0 -0
  44. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/translate.py +0 -0
  45. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/translation_options.py +0 -0
  46. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/util.py +0 -0
  47. {glean_parser-18.0.3 → glean_parser-18.0.4}/glean_parser/validate_ping.py +0 -0
  48. {glean_parser-18.0.3 → glean_parser-18.0.4}/pyproject.toml +0 -0
  49. {glean_parser-18.0.3 → glean_parser-18.0.4}/server_telemetry/sdk-metrics-compat.yaml +0 -0
  50. {glean_parser-18.0.3 → glean_parser-18.0.4}/server_telemetry/server-side-pings.yaml +0 -0
  51. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/conftest.py +0 -0
  52. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/all_metrics.yaml +0 -0
  53. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/all_pings.yaml +0 -0
  54. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/attribution.yaml +0 -0
  55. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/bad_attribution.yamlx +0 -0
  56. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/bad_ping.yamlx +0 -0
  57. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/core.yaml +0 -0
  58. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/dual_labeled.yaml +0 -0
  59. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/dual_labeled_invalid.yaml +0 -0
  60. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/duplicate_labeled.yaml +0 -0
  61. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/duplicate_send_in_ping.yaml +0 -0
  62. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/empty.yaml +0 -0
  63. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/event_key_ordering.yaml +0 -0
  64. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/events_data_sensitivity.yaml +0 -0
  65. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/events_with_types.yaml +0 -0
  66. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/fxa-server-metrics.yaml +0 -0
  67. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/fxa-server-pings.yaml +0 -0
  68. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/go_server_custom_ping_only_metrics.yaml +0 -0
  69. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/go_server_custom_ping_only_pings.yaml +0 -0
  70. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/go_server_events_and_custom_ping_metrics.yaml +0 -0
  71. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/go_server_events_and_custom_ping_pings.yaml +0 -0
  72. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/go_server_events_only_metrics.yaml +0 -0
  73. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/go_server_metrics_unsupported.yaml +0 -0
  74. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/invalid-ping-names.yaml +0 -0
  75. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/invalid.yamlx +0 -0
  76. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/jwe.yaml +0 -0
  77. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/metric-with-tags.yaml +0 -0
  78. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/mixed-expirations.yaml +0 -0
  79. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/name_too_similar.yaml +0 -0
  80. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/object.yaml +0 -0
  81. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/old_event_api.yamlx +0 -0
  82. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/ordering.yaml +0 -0
  83. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/pings.yaml +0 -0
  84. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/rate.yaml +0 -0
  85. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/redefined_category.yamlx +0 -0
  86. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/redefined_metric.yamlx +0 -0
  87. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/redefined_ping.yamlx +0 -0
  88. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/reserved_categories.yamlx +0 -0
  89. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/ruby_server_metrics_unsupported.yaml +0 -0
  90. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/ruby_server_pings_unsupported.yaml +0 -0
  91. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/rust_server_custom_ping_only_metrics.yaml +0 -0
  92. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/rust_server_custom_ping_only_pings.yaml +0 -0
  93. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/rust_server_events_and_custom_ping_metrics.yaml +0 -0
  94. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/rust_server_events_and_custom_ping_pings.yaml +0 -0
  95. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/rust_server_events_only_metrics.yaml +0 -0
  96. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/rust_server_metrics_unsupported.yaml +0 -0
  97. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/same_name_different_category.yaml +0 -0
  98. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/schema-violation.yaml +0 -0
  99. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/send_if_empty_with_metrics.yaml +0 -0
  100. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_custom_ping_only_compare.go +0 -0
  101. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_custom_ping_only_compare.rs +0 -0
  102. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_events_and_custom_ping_compare.go +0 -0
  103. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_events_and_custom_ping_compare.rs +0 -0
  104. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_events_compare.rb +0 -0
  105. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_events_only_compare.go +0 -0
  106. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_events_only_compare.rs +0 -0
  107. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_metrics_no_events_no_pings.yaml +0 -0
  108. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_metrics_with_event.yaml +0 -0
  109. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/server_pings.yaml +0 -0
  110. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/single_labeled.yaml +0 -0
  111. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/smaller.yaml +0 -0
  112. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/tags.yaml +0 -0
  113. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/telemetry_mirror.yaml +0 -0
  114. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/text.yaml +0 -0
  115. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/text_invalid.yaml +0 -0
  116. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/unknown_ping_used.yaml +0 -0
  117. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/wrong_key.yamlx +0 -0
  118. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/data/yaml_nits.yamlx +0 -0
  119. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/detekt.yml +0 -0
  120. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test-go/test.go.tmpl +0 -0
  121. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test-js/package.json +0 -0
  122. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test-js/test.js.tmpl +0 -0
  123. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test-py/test.py +0 -0
  124. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test-rb/test.rb.tmpl +0 -0
  125. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test-rs/test.rs.tmpl +0 -0
  126. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_cli.py +0 -0
  127. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_go_server.py +0 -0
  128. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_javascript.py +0 -0
  129. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_javascript_server.py +0 -0
  130. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_kotlin.py +0 -0
  131. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_lint.py +0 -0
  132. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_markdown.py +0 -0
  133. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_metrics.py +0 -0
  134. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_parser.py +0 -0
  135. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_pings.py +0 -0
  136. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_python_server.py +0 -0
  137. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_ruby_server.py +0 -0
  138. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_rust.py +0 -0
  139. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_rust_server.py +0 -0
  140. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_swift.py +0 -0
  141. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_tags.py +0 -0
  142. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_translate.py +0 -0
  143. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_utils.py +0 -0
  144. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/test_validate_ping.py +0 -0
  145. {glean_parser-18.0.3 → glean_parser-18.0.4}/tests/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: glean-parser
3
- Version: 18.0.3
3
+ Version: 18.0.4
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
@@ -68,12 +68,77 @@ data class {{ obj.name|Camelize }}{{ suffix }}(
68
68
 
69
69
  {%- macro generate_structure(name, struct) %}
70
70
  {%- if struct.type == "oneof" -%}
71
+ @Serializable(with = {{name}}.Serializer::class)
71
72
  sealed class {{ name }}(): ObjectSerialize {
73
+ internal object Serializer : KSerializer<{{name}}> {
74
+ @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
75
+ override val descriptor = SerialKind.CONTEXTUAL
76
+
77
+ override fun deserialize(decoder: Decoder): {{name}} {
78
+ throw NullPointerException()
79
+ {{ struct.subtypes[0]|Camelize }}()
80
+ }
81
+
82
+ override fun serialize(encoder: Encoder, value: {{name}}) {
83
+ when (value) {
84
+ {% for ty in struct.subtypes %}
85
+ is {{ty|Camelize}} -> {{ty|Camelize}}.Serializer.seralize(encoder, it)
86
+ {% endfor %}
87
+ }
88
+ }
89
+ }
90
+
72
91
  {% for ty in struct.subtypes %}
73
- class {{ty|Camelize}}(val inner: kotlin.{{ty|structure_type_name}}? = null) : {{ name }}() {
92
+ {% set inner_ty = ty|Camelize %}
93
+ @Serializable(with = {{inner_ty}}.Serializer::class)
94
+ class {{inner_ty}}(val inner: kotlin.{{ty|structure_type_name}}? = null) : {{ name }}() {
74
95
  override fun intoSerializedObject(): kotlin.String {
75
96
  return this.inner?.intoSerializedObject() ?: "null"
76
97
  }
98
+
99
+ internal object Serializer : KSerializer<{{inner_ty}}> {
100
+ @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
101
+ {% if ty == "string" %}
102
+ override val descriptor = kotlin.String.Companion.serializer().descriptor
103
+
104
+ override fun deserialize(decoder: Decoder): {{inner_ty}} {
105
+ val inner = decoder.decodeInline(descriptor).decodeString()
106
+ return {{inner_ty}}(inner = inner)
107
+ }
108
+
109
+ override fun serialize(encoder: Encoder, value: {{inner_ty}}) {
110
+ value.inner?.let {
111
+ encoder.encodeInline(descriptor).encodeString(it)
112
+ }
113
+ }
114
+ {% elif ty == "number" %}
115
+ override val descriptor = kotlin.Int.Companion.serializer().descriptor
116
+
117
+ override fun deserialize(decoder: Decoder): {{inner_ty}} {
118
+ val inner = decoder.decodeInline(descriptor).decodeInt()
119
+ return {{inner_ty}}(inner = inner)
120
+ }
121
+
122
+ override fun serialize(encoder: Encoder, value: {{inner_ty}}) {
123
+ value.inner?.let {
124
+ encoder.encodeInline(descriptor).encodeInt(it)
125
+ }
126
+ }
127
+ {% elif ty == "boolean" %}
128
+ override val descriptor = kotlin.Boolean.Companion.serializer().descriptor
129
+
130
+ override fun deserialize(decoder: Decoder): {{inner_ty}} {
131
+ val inner = decoder.decodeInline(descriptor).decodeBoolean()
132
+ return {{inner_ty}}(inner = inner)
133
+ }
134
+
135
+ override fun serialize(encoder: Encoder, value: {{inner_ty}}) {
136
+ value.inner?.let {
137
+ encoder.encodeInline(descriptor).encodeBoolean(it)
138
+ }
139
+ }
140
+ {% endif %}
141
+ }
77
142
  }
78
143
  {% endfor %}
79
144
  }
@@ -226,7 +291,9 @@ import {{ glean_namespace }}.private.intoSerializedObject
226
291
  import kotlinx.serialization.KSerializer
227
292
  import kotlinx.serialization.Serializable
228
293
  import kotlinx.serialization.builtins.ListSerializer
294
+ import kotlinx.serialization.builtins.serializer
229
295
  import kotlinx.serialization.descriptors.listSerialDescriptor
296
+ import kotlinx.serialization.descriptors.SerialKind
230
297
  import kotlinx.serialization.encodeToString
231
298
  import kotlinx.serialization.encoding.Decoder
232
299
  import kotlinx.serialization.encoding.Encoder
File without changes
File without changes
File without changes
File without changes