grepros 1.3.0
grep for ROS bag files and live topics
Loading...
Searching...
No Matches
SqlSink Class Reference
Inheritance diagram for SqlSink:
Inheritance graph

Public Member Functions

 __init__ (self, args=None, **kwargs)
 
 close (self)
 
 emit (self, topic, msg, stamp=None, match=None, index=None)
 
 validate (self)
 
- Public Member Functions inherited from Sink
 __enter__ (self)
 
 __exit__ (self, exc_type, exc_value, traceback)
 
 autodetect (cls, target)
 
 bind (self, source)
 
 configure (self, args=None, **kwargs)
 
 emit_meta (self)
 
 flush (self)
 
 is_highlighting (self)
 
 thread_excepthook (self, text, exc)
 

Public Attributes

 close
 
 valid
 
- Public Attributes inherited from Sink
 args
 
 source
 inputs.Source instance bound to this sink
 
 valid
 Result of validate()
 
- Public Attributes inherited from SqlMixin
 DIALECTS
 

Static Public Attributes

 DEFAULT_ARGS = dict(WRITE_OPTIONS={}, VERBOSE=False)
 Constructor argument defaults.
 
tuple FILE_EXTENSIONS = (".sql", )
 Auto-detection file extensions.
 
list MESSAGE_TYPE_BASECOLS
 Default columns for message type tables, as [(column name, ROS type)].
 
- Static Public Attributes inherited from Sink
 DEFAULT_ARGS = dict(META=False)
 Constructor argument defaults.
 
tuple FILE_EXTENSIONS = ()
 Auto-detection file extensions for subclasses, as (".ext", )
 
- Static Public Attributes inherited from SqlMixin
 DEFAULT_ARGS = dict(WRITE_OPTIONS={})
 Constructor argument defaults.
 
str DEFAULT_DIALECT = "sqlite"
 Default SQL dialect used if dialect not specified.
 
dict DIALECTS
 Supported SQL dialects and options.
 
list KEYWORDS
 Words that need quoting if in name context, like table name.
 

Detailed Description

Writes SQL schema file for message type tables and topic views.

Output will have:
- table "pkg/MsgType" for each topic message type, with ordinary columns for
  scalar fields, and structured columns for list fields;
  plus underscore-prefixed fields for metadata, like `_topic` as the topic name.

  If launched with nesting-option, tables will also be created for each
  nested message type.

- view "/full/topic/name" for each topic, selecting from the message type table

Definition at line 30 of file sql.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ (   self,
  args = None,
**  kwargs 
)
@param   args                 arguments as namespace or dictionary, case-insensitive;
                              or a single path as the file to write
@param   args.write           output file path
@param   args.write_options   ```
                              {"dialect": SQL dialect if not default,
                               "nesting": true|false to created nested type tables,
                               "overwrite": whether to overwrite existing file
                                            (default false)}
                              ```
@param   args.meta            whether to emit metainfo
@param   args.verbose         whether to emit debug information
@param   kwargs               any and all arguments as keyword overrides, case-insensitive

Reimplemented from Sink.

Definition at line 56 of file sql.py.

Member Function Documentation

◆ close()

close (   self)
Rewrites out everything to SQL schema file, ensuring all source metas.

Reimplemented from Sink.

Definition at line 130 of file sql.py.

◆ emit()

emit (   self,
  topic,
  msg,
  stamp = None,
  match = None,
  index = None 
)
Writes out message type CREATE TABLE statements to SQL schema file.

Reimplemented from Sink.

Definition at line 118 of file sql.py.

◆ validate()

validate (   self)
Returns whether "dialect" and "nesting" and "overwrite" parameters contain supported values
and file is writable.

Reimplemented from Sink.

Definition at line 92 of file sql.py.

Member Data Documentation

◆ close

close

Definition at line 89 of file sql.py.

◆ DEFAULT_ARGS

DEFAULT_ARGS = dict(WRITE_OPTIONS={}, VERBOSE=False)
static

Constructor argument defaults.

Definition at line 53 of file sql.py.

◆ FILE_EXTENSIONS

tuple FILE_EXTENSIONS = (".sql", )
static

Auto-detection file extensions.

Definition at line 46 of file sql.py.

◆ MESSAGE_TYPE_BASECOLS

list MESSAGE_TYPE_BASECOLS
static
Initial value:
= [("_topic", "string"),
("_timestamp", "time"), ]

Default columns for message type tables, as [(column name, ROS type)].

Definition at line 49 of file sql.py.

◆ valid

valid

Definition at line 111 of file sql.py.


The documentation for this class was generated from the following file: