@foxglove/schemas 1.7.1 → 1.7.3

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 (83) hide show
  1. package/dist/internal/exportTypeScriptSchemas.d.ts.map +1 -1
  2. package/dist/internal/exportTypeScriptSchemas.js +10 -6
  3. package/dist/internal/exportTypeScriptSchemas.js.map +1 -1
  4. package/dist/internal/generateFlatbufferSchema.d.ts +6 -2
  5. package/dist/internal/generateFlatbufferSchema.d.ts.map +1 -1
  6. package/dist/internal/generateFlatbufferSchema.js +26 -15
  7. package/dist/internal/generateFlatbufferSchema.js.map +1 -1
  8. package/dist/internal/generateJsonSchema.d.ts.map +1 -1
  9. package/dist/internal/generateJsonSchema.js +36 -24
  10. package/dist/internal/generateJsonSchema.js.map +1 -1
  11. package/dist/internal/generateOmgIdl.d.ts +2 -3
  12. package/dist/internal/generateOmgIdl.d.ts.map +1 -1
  13. package/dist/internal/generateOmgIdl.js +16 -35
  14. package/dist/internal/generateOmgIdl.js.map +1 -1
  15. package/dist/internal/generateOmgIdl.test.js +4 -6
  16. package/dist/internal/generateOmgIdl.test.js.map +1 -1
  17. package/dist/internal/generateProto.d.ts.map +1 -1
  18. package/dist/internal/generateProto.js +23 -13
  19. package/dist/internal/generateProto.js.map +1 -1
  20. package/dist/internal/generatePyclass.d.ts +1 -1
  21. package/dist/internal/generatePyclass.d.ts.map +1 -1
  22. package/dist/internal/generatePyclass.js +174 -62
  23. package/dist/internal/generatePyclass.js.map +1 -1
  24. package/dist/internal/generatePyclass.test.js +152 -140
  25. package/dist/internal/generatePyclass.test.js.map +1 -1
  26. package/dist/internal/generateRos.d.ts.map +1 -1
  27. package/dist/internal/generateRos.js +20 -9
  28. package/dist/internal/generateRos.js.map +1 -1
  29. package/dist/internal/generateSdkCpp.d.ts +4 -0
  30. package/dist/internal/generateSdkCpp.d.ts.map +1 -0
  31. package/dist/internal/generateSdkCpp.js +362 -0
  32. package/dist/internal/generateSdkCpp.js.map +1 -0
  33. package/dist/internal/generateSdkRustCTypes.d.ts +8 -0
  34. package/dist/internal/generateSdkRustCTypes.d.ts.map +1 -0
  35. package/dist/internal/generateSdkRustCTypes.js +315 -0
  36. package/dist/internal/generateSdkRustCTypes.js.map +1 -0
  37. package/dist/internal/generateTypeScript.d.ts +0 -1
  38. package/dist/internal/generateTypeScript.d.ts.map +1 -1
  39. package/dist/internal/generateTypeScript.js +10 -18
  40. package/dist/internal/generateTypeScript.js.map +1 -1
  41. package/dist/internal/schemas.d.ts +2 -0
  42. package/dist/internal/schemas.d.ts.map +1 -1
  43. package/dist/internal/schemas.js +149 -46
  44. package/dist/internal/schemas.js.map +1 -1
  45. package/dist/internal/testFixtures.d.ts.map +1 -1
  46. package/dist/internal/testFixtures.js +37 -9
  47. package/dist/internal/testFixtures.js.map +1 -1
  48. package/dist/internal/types.d.ts +3 -1
  49. package/dist/internal/types.d.ts.map +1 -1
  50. package/dist/jsonschema/index.d.ts +62 -12
  51. package/dist/jsonschema/index.d.ts.map +1 -1
  52. package/dist/jsonschema/index.js +122 -47
  53. package/dist/jsonschema/index.js.map +1 -1
  54. package/dist/types/CameraCalibration.d.ts +1 -1
  55. package/dist/types/Duration.d.ts +3 -0
  56. package/dist/types/Duration.d.ts.map +1 -1
  57. package/dist/types/Duration.js +2 -0
  58. package/dist/types/Duration.js.map +1 -1
  59. package/dist/types/Grid.d.ts +1 -1
  60. package/dist/types/Grid.d.ts.map +1 -1
  61. package/dist/types/LogLevel.d.ts +6 -0
  62. package/dist/types/LogLevel.d.ts.map +1 -1
  63. package/dist/types/LogLevel.js +6 -0
  64. package/dist/types/LogLevel.js.map +1 -1
  65. package/dist/types/NumericType.d.ts +9 -0
  66. package/dist/types/NumericType.d.ts.map +1 -1
  67. package/dist/types/NumericType.js +9 -0
  68. package/dist/types/NumericType.js.map +1 -1
  69. package/dist/types/PointsAnnotationType.d.ts +1 -0
  70. package/dist/types/PointsAnnotationType.d.ts.map +1 -1
  71. package/dist/types/PointsAnnotationType.js +1 -0
  72. package/dist/types/PointsAnnotationType.js.map +1 -1
  73. package/dist/types/PositionCovarianceType.d.ts +4 -0
  74. package/dist/types/PositionCovarianceType.d.ts.map +1 -1
  75. package/dist/types/PositionCovarianceType.js +4 -0
  76. package/dist/types/PositionCovarianceType.js.map +1 -1
  77. package/dist/types/RawImage.d.ts +58 -8
  78. package/dist/types/RawImage.d.ts.map +1 -1
  79. package/dist/types/index.d.ts +2 -0
  80. package/dist/types/index.d.ts.map +1 -1
  81. package/dist/types/index.js +2 -0
  82. package/dist/types/index.js.map +1 -1
  83. package/package.json +2 -2
@@ -23,8 +23,10 @@ function generateSchemaPrelude() {
23
23
  `#![allow(non_snake_case)]`,
24
24
  ];
25
25
  const imports = [
26
+ "use crate::PySchema;",
26
27
  "use crate::schemas_wkt::{Duration, Timestamp};",
27
28
  "use bytes::Bytes;",
29
+ "use foxglove::Encode;",
28
30
  "use pyo3::prelude::*;",
29
31
  "use pyo3::types::PyBytes;",
30
32
  ];
@@ -35,6 +37,9 @@ function generateSchemaPrelude() {
35
37
  * Generate a `pyclass`-annotated struct or enum definition for the given schema.
36
38
  */
37
39
  function generatePyclass(schema) {
40
+ if (!shouldGenerateSchemaClass(schema)) {
41
+ return "";
42
+ }
38
43
  return isMessageSchema(schema) ? generateMessageClass(schema) : generateEnumClass(schema);
39
44
  }
40
45
  /**
@@ -46,12 +51,14 @@ function generatePySchemaStub(schemas) {
46
51
  "from enum import Enum",
47
52
  "from typing import List, Optional, Union",
48
53
  "",
54
+ "from . import Schema",
49
55
  // Use "from mod import X as X" syntax to explicitly re-export.
50
56
  "from .schemas_wkt import Duration as Duration",
51
57
  "from .schemas_wkt import Timestamp as Timestamp",
52
58
  ].join("\n") + "\n";
53
59
  const enums = schemas
54
60
  .filter((schema) => schema.type === "enum")
61
+ .filter(shouldGenerateSchemaClass)
55
62
  .map((schema) => {
56
63
  const name = enumName(schema);
57
64
  const doc = [' """', ` ${schema.description}`, ' """'];
@@ -64,7 +71,10 @@ function generatePySchemaStub(schemas) {
64
71
  };
65
72
  });
66
73
  const allSchemas = [];
67
- const classes = schemas.filter(isMessageSchema).map((schema) => {
74
+ const classes = schemas
75
+ .filter(isMessageSchema)
76
+ .filter(shouldGenerateSchemaClass)
77
+ .map((schema) => {
68
78
  const name = structName(schema.name);
69
79
  allSchemas.push(name);
70
80
  const doc = [' """', ` ${schema.description}`, ' """'];
@@ -83,6 +93,10 @@ function generatePySchemaStub(schemas) {
83
93
  " *,",
84
94
  params,
85
95
  ` ) -> "${name}": ...`,
96
+ ` @staticmethod`,
97
+ ` def get_schema() -> Schema:`,
98
+ ` """Returns the ${name} schema"""`,
99
+ ` ...`,
86
100
  ].join("\n") + "\n\n",
87
101
  };
88
102
  });
@@ -106,15 +120,15 @@ function generatePySchemaModule(schemas) {
106
120
  .filter(isMessageSchema)
107
121
  .map((schema) => pyClassName(schema))
108
122
  .sort();
109
- const classNames = schemas
110
- .map((schema) => pyClassName(schema))
111
- .concat(["Timestamp", "Duration"])
112
- .sort();
123
+ const classNames = schemas.map((schema) => pyClassName(schema)).sort();
113
124
  const headers = [
114
125
  `"""`,
115
126
  `This module contains the definitions of the well-known Foxglove schemas for logging.`,
116
- ``,
127
+ "",
117
128
  "Log messages to a corresponding channel type from :py:mod:`foxglove.channels`.",
129
+ "",
130
+ "Note that the schema classes are currently immutable and do not expose",
131
+ "getters and setters for their fields. This is a limitation we plan to address in the future.",
118
132
  `"""`,
119
133
  "# Generated by https://github.com/foxglove/foxglove-sdk",
120
134
  "",
@@ -130,28 +144,61 @@ function generatePySchemaModule(schemas) {
130
144
  const alias = `FoxgloveSchema = Union[${allSchemas.join(", ")}];\n`;
131
145
  return [...headers, ...imports, alias, ...exports, ""].join("\n");
132
146
  }
133
- function rustDoc(str, opts = {}) {
134
- const ws = " ".repeat(opts.indent ?? 0);
147
+ /**
148
+ * Format a string as a Rust doc comment, splitting on newlines and prefixing each line with `///`.
149
+ */
150
+ function rustDoc(str) {
135
151
  return str
136
152
  .split("\n")
137
- .map((line) => `${ws}/// ${line}`)
153
+ .map((line) => `/// ${line}`)
138
154
  .join("\n");
139
155
  }
140
- function firstLine(str) {
141
- return str.split("\n")[0]?.trim() ?? str;
156
+ /**
157
+ * Convert markdown links to RST format: [text](url) becomes `text <url>`__
158
+ */
159
+ function convertMarkdownLinksToRst(text) {
160
+ return text.replace(/\[(?<text>[^\]]+)\]\((?<url>[^)]+)\)/g, "`$<text> <$<url>>`__");
161
+ }
162
+ /**
163
+ * Generate a :param doc comment for a field.
164
+ *
165
+ * The returned string may be multi-line. This converts markdown code blocks and links to RST inside
166
+ * extended descriptions.
167
+ */
168
+ function pythonParamDoc(field) {
169
+ const lines = field.description.split("\n");
170
+ const [firstLine, ...rest] = lines;
171
+ const output = [];
172
+ if (firstLine == undefined) {
173
+ return "";
174
+ }
175
+ output.push(`:param ${field.name}: ${firstLine}`);
176
+ if (rest.length === 0) {
177
+ return output.join("\n");
178
+ }
179
+ let inCodeBlock = false;
180
+ for (const line of rest) {
181
+ if (line.startsWith("```")) {
182
+ if (!inCodeBlock) {
183
+ // Start an RST code block, which requires a following blank line
184
+ output.push(" ::");
185
+ output.push("");
186
+ }
187
+ inCodeBlock = !inCodeBlock;
188
+ continue;
189
+ }
190
+ const indent = " ".repeat(inCodeBlock ? 8 : 4);
191
+ const rst = inCodeBlock ? line : convertMarkdownLinksToRst(line);
192
+ output.push(indent + rst);
193
+ }
194
+ return output.join("\n");
142
195
  }
143
196
  function generateMessageClass(schema) {
144
197
  const className = structName(schema.name);
145
- const schemaFields = Array.from(schema.fields).map((field) => ({
146
- fieldName: safeName(field.name),
147
- argName: safeName(field.name),
148
- // description: rustDoc(field.description, { indent: 4 }),
149
- field,
150
- }));
151
198
  const struct = [
152
199
  rustDoc(schema.description),
153
200
  `///`,
154
- ...schemaFields.map(({ fieldName, field }) => rustDoc(`:param ${fieldName}: ${firstLine(field.description)}`)),
201
+ ...schema.fields.map((field) => rustDoc(pythonParamDoc(field))),
155
202
  `///`,
156
203
  `/// See https://docs.foxglove.dev/docs/visualization/message-schemas/${constantToKebabCase(className)}`,
157
204
  `#[pyclass(module = "foxglove.schemas")]`,
@@ -165,17 +212,14 @@ function generateMessageClass(schema) {
165
212
  }
166
213
  switch (field.type.type) {
167
214
  case "primitive":
168
- if (field.type.name === "time" || field.type.name === "duration") {
169
- return `${safeName(field.name)}.map(Into::into)`;
170
- }
171
- return safeName(field.name);
215
+ return safeRustName(field.name);
172
216
  case "nested":
173
217
  if (field.array != undefined) {
174
- return `${safeName(field.name)}.into_iter().map(|x| x.into()).collect()`;
218
+ return `${safeRustName(field.name)}.into_iter().map(|x| x.into()).collect()`;
175
219
  }
176
- return `${safeName(field.name)}.map(Into::into)`;
220
+ return `${safeRustName(field.name)}.map(Into::into)`;
177
221
  case "enum":
178
- return `${safeName(field.name)} as i32`;
222
+ return `${safeRustName(field.name)} as i32`;
179
223
  }
180
224
  }
181
225
  function fieldAssignment(field) {
@@ -186,6 +230,11 @@ function generateMessageClass(schema) {
186
230
  }
187
231
  return `${name}: ${value}`;
188
232
  }
233
+ const schemaFields = Array.from(schema.fields).map((field) => ({
234
+ fieldName: safeRustName(field.name),
235
+ argName: safeRustName(field.name),
236
+ field,
237
+ }));
189
238
  const signature = schemaFields
190
239
  .map(({ argName, field }) => `${argName}=${rustDefaultValue(field)}`)
191
240
  .join(", ");
@@ -207,6 +256,11 @@ function generateMessageClass(schema) {
207
256
  schemaFields.map(({ fieldName }) => ` self.0.${protoName(fieldName)},`).join("\n"),
208
257
  ` )`,
209
258
  ` }`,
259
+ ` /// Returns the ${className} schema.`,
260
+ ` #[staticmethod]`,
261
+ ` fn get_schema() -> PySchema {`,
262
+ ` foxglove::schemas::${className}::get_schema().unwrap().into()`,
263
+ ` }`,
210
264
  `}\n\n`,
211
265
  ];
212
266
  const fromTrait = [
@@ -240,7 +294,7 @@ function enumName(schema) {
240
294
  /**
241
295
  * Deal with reserved keywords in identifiers
242
296
  */
243
- function safeName(name) {
297
+ function safeRustName(name) {
244
298
  if (name === "type") {
245
299
  return "r#type";
246
300
  }
@@ -269,6 +323,9 @@ function rustOutputType(field) {
269
323
  case "float64":
270
324
  type = "f64";
271
325
  break;
326
+ case "int32":
327
+ type = "i32";
328
+ break;
272
329
  case "uint32":
273
330
  type = "u32";
274
331
  break;
@@ -279,11 +336,6 @@ function rustOutputType(field) {
279
336
  // Special case: we don't take a Vec<u8> directly because pyo3 will iterate the vec and
280
337
  // copy each element https://github.com/PyO3/pyo3/issues/2888
281
338
  return "Option<Bound<'_, PyBytes>>";
282
- case "time":
283
- type = "Option<Timestamp>";
284
- break;
285
- case "duration":
286
- type = "Option<Duration>";
287
339
  break;
288
340
  }
289
341
  break;
@@ -330,15 +382,13 @@ function pythonDefaultValue(field) {
330
382
  return `""`;
331
383
  case "float64":
332
384
  return "0.0";
385
+ case "int32":
333
386
  case "uint32":
334
387
  return "0";
335
388
  case "boolean":
336
389
  return "False";
337
390
  case "bytes":
338
391
  return 'b""';
339
- case "time":
340
- case "duration":
341
- return "None";
342
392
  }
343
393
  // exhaustive check above
344
394
  // eslint-disable-next-line no-fallthrough
@@ -368,15 +418,13 @@ function rustDefaultValue(field) {
368
418
  return `"".to_string()`;
369
419
  case "float64":
370
420
  return "0.0";
421
+ case "int32":
371
422
  case "uint32":
372
423
  return "0";
373
424
  case "boolean":
374
425
  return "false";
375
426
  case "bytes":
376
427
  return "vec![]";
377
- case "time":
378
- case "duration":
379
- return "None";
380
428
  }
381
429
  // exhaustive check above
382
430
  // eslint-disable-next-line no-fallthrough
@@ -397,16 +445,13 @@ function pythonType(foxglovePrimitive) {
397
445
  return "str";
398
446
  case "float64":
399
447
  return "float";
448
+ case "int32":
400
449
  case "uint32":
401
450
  return "int";
402
451
  case "boolean":
403
452
  return "bool";
404
453
  case "bytes":
405
454
  return "bytes";
406
- case "time":
407
- return "Timestamp";
408
- case "duration":
409
- return "Duration";
410
455
  }
411
456
  }
412
457
  function protoName(name) {
@@ -414,7 +459,7 @@ function protoName(name) {
414
459
  // Schemas may include single-letter capitals; generated proto structs use lowercase
415
460
  return name.toLowerCase();
416
461
  }
417
- return safeName(name);
462
+ return safeRustName(name);
418
463
  }
419
464
  function capitalize(str) {
420
465
  return str.charAt(0).toUpperCase() + str.slice(1);
@@ -447,8 +492,6 @@ function generateSchemaModuleRegistration(schemas) {
447
492
  pub fn register_submodule(parent_module: &Bound<'_, PyModule>) -> PyResult<()> {
448
493
  let module = PyModule::new(parent_module.py(), "schemas")?;
449
494
 
450
- module.add_class::<Duration>()?;
451
- module.add_class::<Timestamp>()?;
452
495
  ${schemas.map((schema) => `module.add_class::<${pyClassName(schema)}>()?;`).join("\n ")}
453
496
 
454
497
  // Define as a package
@@ -462,15 +505,25 @@ pub fn register_submodule(parent_module: &Bound<'_, PyModule>) -> PyResult<()> {
462
505
  }
463
506
  `;
464
507
  }
508
+ /**
509
+ * Python SDK uses custom implementations for Time and Duration via schemas_wkt, so we don't
510
+ * auto-generate implementations or stubs. These match the `{ sec, nsec }` schema definition but
511
+ * provide additional conversions and factory methods.
512
+ */
513
+ function shouldGenerateSchemaClass(schema) {
514
+ return schema.name !== "Timestamp" && schema.name !== "Duration";
515
+ }
516
+ /**
517
+ * Because the SDK uses custom schema implementations, we don't yet generate channels for them.
518
+ */
465
519
  function shouldGenerateChannelClass(schema) {
466
- return !schema.name.endsWith("Primitive");
520
+ return schema.name !== "Timestamp" && schema.name !== "Duration";
467
521
  }
468
522
  /**
469
523
  * Generate a rust function to register the channels in a submodule.
470
524
  * https://pyo3.rs/v0.23.4/module.html
471
525
  */
472
- function generateChannelModuleRegistration(messageSchemas) {
473
- const schemas = messageSchemas.filter(shouldGenerateChannelClass);
526
+ function generateChannelModuleRegistration(schemas) {
474
527
  return `
475
528
  pub fn register_submodule(parent_module: &Bound<'_, PyModule>) -> PyResult<()> {
476
529
  let module = PyModule::new(parent_module.py(), "channels")?;
@@ -496,16 +549,18 @@ function pyClassName(schema) {
496
549
  * can't be exported directly to Python.
497
550
  */
498
551
  function generateChannelClasses(messageSchemas) {
499
- const schemas = messageSchemas.filter((schema) => !schema.name.endsWith("Primitive"));
552
+ const schemas = messageSchemas.filter(shouldGenerateChannelClass);
500
553
  const header = [
501
554
  `//! Typed channels for logging Foxglove schemas`,
502
555
  `//! Generated by https://github.com/foxglove/foxglove-sdk`,
503
556
  ].join("\n");
504
557
  const imports = [
505
- `use crate::PyContext;`,
558
+ `use crate::{PyContext, PySchema};`,
506
559
  `use foxglove::{Channel, ChannelBuilder, PartialMetadata};`,
507
560
  `use pyo3::prelude::*;`,
561
+ `use pyo3::types::PyDict;`,
508
562
  `use super::schemas;`,
563
+ `use std::collections::BTreeMap;`,
509
564
  ].join("\n");
510
565
  const channelModuleRegistration = generateChannelModuleRegistration(schemas);
511
566
  const classes = schemas.map((schema) => {
@@ -521,16 +576,18 @@ impl ${channelClass} {
521
576
  /// Create a new channel.
522
577
  ///
523
578
  /// :param topic: The topic to log messages to. You should choose a unique topic name per channel.
579
+ /// :param metadata: A dictionary of key/value strings to add to the channel.
580
+ /// A type error is raised if any key or value is not a string.
524
581
  #[new]
525
- #[pyo3(signature = (topic, *, context=None))]
526
- fn new(topic: &str, context: Option<&PyContext>) -> Self {
527
- let base = if let Some(context) = context {
528
- ChannelBuilder::new(topic)
529
- .context(&context.0.clone())
530
- .build()
582
+ #[pyo3(signature = (topic, *, metadata=None, context=None))]
583
+ fn new(topic: &str, metadata: Option<BTreeMap<String, String>>, context: Option<&PyContext>) -> Self {
584
+ let builder = ChannelBuilder::new(topic).metadata(metadata.unwrap_or_default());
585
+ let builder = if let Some(context) = context {
586
+ builder.context(&context.0.clone())
531
587
  } else {
532
- Channel::new(topic)
588
+ builder
533
589
  };
590
+ let base = builder.build();
534
591
  Self(base)
535
592
  }
536
593
 
@@ -544,11 +601,42 @@ impl ${channelClass} {
544
601
  self.0.topic()
545
602
  }
546
603
 
604
+ /// The message encoding for the channel.
605
+ #[getter]
606
+ fn message_encoding(&self) -> &str {
607
+ self.0.message_encoding()
608
+ }
609
+
610
+ /// Returns a copy of the channel's metadata.
611
+ ///
612
+ /// Note that changes made to the returned dictionary will not be applied to
613
+ /// the channel's metadata.
614
+ fn metadata(&self, py: Python<'_>) -> PyResult<PyObject> {
615
+ let dict = PyDict::new(py);
616
+ for (key, value) in self.0.metadata() {
617
+ dict.set_item(key, value)?;
618
+ }
619
+ Ok(dict.into())
620
+ }
621
+
622
+ /// Returns a copy of the channel's schema.
623
+ ///
624
+ /// Note that changes made to the returned object will not be applied to
625
+ /// the channel's schema.
626
+ fn schema(&self) -> Option<PySchema> {
627
+ self.0.schema().cloned().map(PySchema::from)
628
+ }
629
+
547
630
  /// The name of the schema for the channel.
548
631
  fn schema_name(&self) -> Option<&str> {
549
632
  Some(self.0.schema()?.name.as_str())
550
633
  }
551
634
 
635
+ /// Returns true if at least one sink is subscribed to this channel.
636
+ fn has_sinks(&self) -> bool {
637
+ self.0.has_sinks()
638
+ }
639
+
552
640
  /// Close the channel.
553
641
  ///
554
642
  /// You can use this to explicitly unadvertise the channel to sinks that subscribe to
@@ -584,14 +672,14 @@ impl ${channelClass} {
584
672
  return [header, imports, channelModuleRegistration, ...classes].join("\n\n");
585
673
  }
586
674
  /**
587
- * Generate a .pyi stub for the given schemas.
675
+ * Generate a .pyi stub for the given schema channels.
588
676
  */
589
677
  function generatePyChannelStub(messageSchemas) {
590
678
  const header = "# Generated by https://github.com/foxglove/foxglove-sdk";
591
- const schemas = messageSchemas.filter((schema) => !schema.name.endsWith("Primitive"));
679
+ const schemas = messageSchemas.filter(shouldGenerateChannelClass);
592
680
  const imports = [
593
- "from typing import Optional",
594
- "from . import Context",
681
+ "from typing import Dict, Optional",
682
+ "from . import Context, Schema",
595
683
  ...schemas.map((schema) => `from .schemas import ${structName(schema.name)}`),
596
684
  ];
597
685
  const classes = schemas.map((schema) => {
@@ -613,6 +701,7 @@ function generatePyChannelStub(messageSchemas) {
613
701
  ` cls,`,
614
702
  ` topic: str,`,
615
703
  ` *,`,
704
+ ` metadata: Optional[Dict[str, str]] = None,`,
616
705
  ` context: Optional["Context"] = None,`,
617
706
  ` ) -> "${channelClass}": ...\n`,
618
707
  ` def id(self) -> int:`,
@@ -621,9 +710,32 @@ function generatePyChannelStub(messageSchemas) {
621
710
  ` def topic(self) -> str:`,
622
711
  ` """The topic name of the channel."""`,
623
712
  ` ...`,
624
- ` def schema_name(self) -> str | None:`,
713
+ ` @property`,
714
+ ` def message_encoding(self) -> str:`,
715
+ ` """The message encoding for the channel"""`,
716
+ ` ...`,
717
+ ` def metadata(self) -> Dict[str, str]:`,
718
+ ` """`,
719
+ ` Returns a copy of the channel's metadata.`,
720
+ ``,
721
+ ` Note that changes made to the returned dictionary will not be applied to`,
722
+ ` the channel's metadata.`,
723
+ ` """`,
724
+ ` ...`,
725
+ ` def schema(self) -> Optional[Schema]:`,
726
+ ` """`,
727
+ ` Returns a copy of the channel's schema.`,
728
+ ``,
729
+ ` Note that changes made to the returned object will not be applied to`,
730
+ ` the channel's schema.`,
731
+ ` """`,
732
+ ` ...`,
733
+ ` def schema_name(self) -> Optional[str]:`,
625
734
  ` """The name of the schema for the channel."""`,
626
735
  ` ...`,
736
+ ` def has_sinks(self) -> bool:`,
737
+ ` """Returns true if at least one sink is subscribed to this channel"""`,
738
+ ` ...`,
627
739
  ` def close(self) -> None:`,
628
740
  ` """Close the channel."""`,
629
741
  ` ...`,
@@ -649,7 +761,7 @@ function generatePyChannelStub(messageSchemas) {
649
761
  function generatePyChannelModule(schemas) {
650
762
  const headers = [
651
763
  `"""`,
652
- `This defines channels to easily log messages conforming to well-known Foxglove schemas.`,
764
+ `This module defines channels to easily log messages conforming to well-known Foxglove schemas.`,
653
765
  ``,
654
766
  "See the :py:mod:`foxglove.schemas` module for available definitions.",
655
767
  `"""`,
@@ -1 +1 @@
1
- {"version":3,"file":"generatePyclass.js","sourceRoot":"","sources":["../../src/internal/generatePyclass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generatePyclass.js","sourceRoot":"","sources":["../../src/internal/generatePyclass.ts"],"names":[],"mappings":"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"}