A pure Python implementation of NetworkTables, used for robot communications in the FIRST Robotics Competition.
75
{
"context": "Evaluates how well the solution uses pynetworktables listener APIs to capture entry updates, new subtables, and connection state, and how thoroughly it manages listener lifecycles. Scoring focuses solely on the correct use of pynetworktables functions, flags, and callback data to satisfy the spec requirements.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Connection listener",
"description": "Registers connection monitoring with NetworkTables.addConnectionListener (or the instance equivalent) to emit connected/disconnected events with the provided info payload, and unregisters via removeConnectionListener during shutdown.",
"max_score": 20
},
{
"name": "Entry listeners",
"description": "Uses NetworkTable.addEntryListener/addEntryListenerEx or NetworkTableEntry.addListener with NotifyFlags.NEW and NotifyFlags.UPDATE (optionally IMMEDIATE/LOCAL) so callbacks receive full paths, values, and an accurate isNew flag for both creation and update events.",
"max_score": 25
},
{
"name": "Subtable discovery",
"description": "Detects creation of subtables on watched roots via addSubTableListener and records each new subtable once, removing the listener handle when monitoring stops.",
"max_score": 15
},
{
"name": "Listener cleanup",
"description": "Tracks listener handles from addEntryListener/addEntryListenerEx, addConnectionListener, and NetworkTableEntry.addListener (and any subtable listeners) and removes them with removeEntryListener, removeConnectionListener, or entry.removeListener so callbacks cease after stop().",
"max_score": 20
},
{
"name": "Callback-driven data",
"description": "Builds event payloads from the parameters provided by pynetworktables callbacks (key/full path, value, isNew, connection info) rather than polling tables, ensuring recorded data comes directly from listener invocations.",
"max_score": 20
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-pynetworktablesdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10