Functions | |
def | grep (args=None, **kwargs) |
def | init (args=None, **kwargs) |
def | sink (args=None, **kwargs) |
def | source (args=None, **kwargs) |
Variables | |
list | __all__ |
bool | _inited = False |
def grepros.library.grep | ( | args = None , |
|
** | kwargs | ||
) |
Yields matching messages from specified source. Initializes grepros if not already initialized. Read from bagfiles: `grep(file="2022-10-*.bag", pattern="cpu")`. Read from live topics: `grep(live=True, pattern="cpu")`. @param args arguments as namespace or dictionary, case-insensitive; or a single path as the ROS bagfile to read, or one or more {@link grepros.api.Bag Bag} instances @param kwargs any and all arguments as keyword overrides, case-insensitive <!--sep--> Bag source: @param args.file names of ROS bagfiles to read if not all in directory @param args.path paths to scan if not current directory @param args.recurse recurse into subdirectories when looking for bagfiles @param args.decompress decompress archived bags to file directory @param args.reindex make a copy of unindexed bags and reindex them (ROS1 only) @param args.orderby "topic" or "type" if any to group results by @param args.bag one or more {@link grepros.api.Bag Bag} instances <!--sep--> Live source: @param args.live whether reading messages from live ROS topics @param args.queue_size_in subscriber queue size (default 10) @param args.ros_time_in stamp messages with ROS time instead of wall time <!--sep--> App source: @param args.app whether reading messages from iterable or pushed data; may contain the iterable itself @param args.iterable iterable yielding (topic, msg, stamp) or (topic, msg); yielding `None` signals end of content Any source: @param args.topic ROS topics to read if not all @param args.type ROS message types to read if not all @param args.skip_topic ROS topics to skip @param args.skip_type ROS message types to skip @param args.start_time earliest timestamp of messages to read @param args.end_time latest timestamp of messages to read @param args.start_index message index within topic to start from @param args.end_index message index within topic to stop at @param args.nth_message read every Nth message in topic @param args.nth_interval minimum time interval between messages in topic @param args.select_field message fields to use in matching if not all @param args.noselect_field message fields to skip in matching @param args.unique emit messages that are unique in topic (select_field and noselect_field apply if specified) @param args.condition Python expressions that must evaluate as true for message to be processable, see ConditionMixin <!--sep--> Search‍: @param args.pattern pattern(s) to find in message field values @param args.fixed_string pattern contains ordinary strings, not regular expressions @param args.case use case-sensitive matching in pattern @param args.invert select messages not matching pattern @param args.nth_match emit every Nth match in topic @param args.max_count number of matched messages to emit (per file if bag input) @param args.max_per_topic number of matched messages to emit from each topic @param args.max_topics number of topics to print matches from @param args.before number of messages of leading context to emit before match @param args.after number of messages of trailing context to emit after match @param args.context number of messages of leading and trailing context to emit around match @param args.highlight highlight matched values @param args.match_wrapper string to wrap around matched values, both sides if one value, start and end if more than one, or no wrapping if zero values @return {@link grepros.Scanner.GrepMessage GrepMessage} namedtuples of (topic, message, timestamp, match, index)
Definition at line 71 of file library.py.
def grepros.library.init | ( | args = None , |
|
** | kwargs | ||
) |
Initializes ROS version bindings, loads all built-in plugins if dependencies available. @param args @param args.plugin one or more extra plugins to load, as full names or instances of Python module/class @param kwargs any and all arguments as keyword overrides, case-insensitive
Definition at line 337 of file library.py.
def grepros.library.sink | ( | args = None , |
|
** | kwargs | ||
) |
Convenience for creating a {@link grepros.outputs.Sink Sink} instance from arguments, {@link grepros.outputs.MultiSink MultiSink} if several outputs. Initializes grepros if not already initialized. @param args arguments as namespace or dictionary, case-insensitive; or a single item as sink target like bag filename @param kwargs any and all arguments as keyword overrides, case-insensitive @param args.app provide messages to given callback function @param args.console print matches to console @param args.publish publish matches to live topics @param args.write file or other target like Postgres database to write, as "target", or ["target", dict(format="format", ..)] or [[..target1..], [..target2..], ..] @param args.write_options format-specific options like {"overwrite": whether to overwrite existing file (default false)} <!--sep--> Console sink: @param args.line_prefix print source prefix like bag filename on each message line @param args.max_field_lines maximum number of lines to print per field @param args.start_line message line number to start output from @param args.end_line message line number to stop output at @param args.max_message_lines maximum number of lines to output per message @param args.lines_around_match number of message lines around matched fields to output @param args.matched_fields_only output only the fields where match was found @param args.wrap_width character width to wrap message YAML output at @param args.match_wrapper string to wrap around matched values, both sides if one value, start and end if more than one, or no wrapping if zero values <!--sep--> Console / HTML sink: @param args.color False or "never" for not using colors in replacements @param args.highlight highlight matched values (default true) @param args.emit_field message fields to emit if not all @param args.noemit_field message fields to skip in output @param args.max_field_lines maximum number of lines to output per field @param args.start_line message line number to start output from @param args.end_line message line number to stop output at @param args.max_message_lines maximum number of lines to output per message @param args.lines_around_match number of message lines around matched fields to output @param args.matched_fields_only output only the fields where match was found @param args.wrap_width character width to wrap message YAML output at @param args.match_wrapper string to wrap around matched values, both sides if one value, start and end if more than one, or no wrapping if zero values <!--sep--> Topic sink: @param args.queue_size_out publisher queue size (default 10) @param args.publish_prefix output topic prefix, prepended to input topic @param args.publish_suffix output topic suffix, appended to output topic @param args.publish_fixname single output topic name to publish to, overrides prefix and suffix if given <!--sep--> App sink: @param args.emit callback(topic, msg, stamp, highlighted msg, index in topic) if any @param args.metaemit callback(metadata dict) if any, invoked before first emit from source batch <!--sep--> Any sink: @param args.meta whether to print metainfo @param args.verbose whether to print debug information
Definition at line 246 of file library.py.
def grepros.library.source | ( | args = None , |
|
** | kwargs | ||
) |
Convenience for creating a {@link grepros.inputs.Source Source} instance from arguments. Initializes grepros if not already initialized. @param args arguments as namespace or dictionary, case-insensitive; or a single path as the ROS bagfile to read @param kwargs any and all arguments as keyword overrides, case-insensitive @param args.file one or more names of ROS bagfiles to read from @param args.live read messages from live ROS topics instead @param args.app read messages from iterable or pushed data instead; may contain the iterable itself <!--sep--> Bag source: @param args.file names of ROS bagfiles to read if not all in directory @param args.path paths to scan if not current directory @param args.recurse recurse into subdirectories when looking for bagfiles @param args.orderby "topic" or "type" if any to group results by @param args.decompress decompress archived bags to file directory @param args.reindex make a copy of unindexed bags and reindex them (ROS1 only) @param args.progress whether to print progress bar <!--sep--> Live source: @param args.queue_size_in subscriber queue size (default 10) @param args.ros_time_in stamp messages with ROS time instead of wall time @param args.progress whether to print progress bar <!--sep--> App source: @param args.iterable iterable yielding (topic, msg, stamp) or (topic, msg); yielding `None` signals end of content <!--sep--> Any source: @param args.topic ROS topics to read if not all @param args.type ROS message types to read if not all @param args.skip_topic ROS topics to skip @param args.skip_type ROS message types to skip @param args.start_time earliest timestamp of messages to read @param args.end_time latest timestamp of messages to read @param args.start_index message index within topic to start from @param args.end_index message index within topic to stop at @param args.unique emit messages that are unique in topic @param args.select_field message fields to use for uniqueness if not all @param args.noselect_field message fields to skip for uniqueness @param args.nth_message read every Nth message in topic @param args.nth_interval minimum time interval between messages in topic @param args.condition Python expressions that must evaluate as true for message to be processable, see ConditionMixin
Definition at line 181 of file library.py.
|
private |
Definition at line 367 of file library.py.
|
private |
Definition at line 68 of file library.py.