{"id":21836,"library":"pyulog","title":"pyulog","description":"Python ULog parser and analysis library for PX4/ArduPilot logs. Current version 1.2.2, maintained by the PX4 project. Releases are irregular, roughly a few times a year.","status":"active","version":"1.2.2","language":"python","source_language":"en","source_url":"https://github.com/PX4/pyulog","tags":["log-parser","px4","ardupilot","drone"],"install":[{"cmd":"pip install pyulog","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"ULog is re-exported in pyulog.__init__.py. Direct submodule import breaks in v1.0+.","wrong":"from pyulog.ulog import ULog","symbol":"ULog","correct":"from pyulog import ULog"},{"note":"messages is accessed via ULog instance, not a separate import.","wrong":"from pyulog.messages import messages","symbol":"messages","correct":"from pyulog import ULog"}],"quickstart":{"code":"from pyulog import ULog\n\n# Parse a ULog file\nlog = ULog('sample.ulg')\n# Access data\nfor topic, msg_list in log.data_list:\n    print(f\"Topic: {topic.name}, {len(msg_list)} messages\")","lang":"python","description":"Basic usage: read a .ulg file and iterate over topics."},"warnings":[{"fix":"Use the iterative API (e.g., `log.chunks` or `log.message_iterator`) to process data in chunks.","message":"The ULog constructor does not read the entire file until you access data. Large files may cause high memory usage.","severity":"gotcha","affected_versions":"all"},{"fix":"Update imports to `from pyulog import ULog`.","message":"In v1.0, the public API changed: `ULog` is no longer importable from `pyulog.ulog`. Use `from pyulog import ULog`.","severity":"breaking","affected_versions":"<1.0 to >=1.0"},{"fix":"Replace `messages` imports with iteration over `ULog.data_list`.","message":"`pyulog.messages` submodule is deprecated since v1.2.0. Use `log.data_list` to access messages.","severity":"deprecated","affected_versions":">=1.2.0, <2.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use `from pyulog import ULog` instead.","cause":"Direct import of submodule when using pyulog >=1.0.","error":"ModuleNotFoundError: No module named 'pyulog.ulog'"},{"fix":"Access messages via `log.data_list`; each element is a (topic, messages_list) tuple.","cause":"`messages` was a class attribute in older versions, removed in v1.2.0.","error":"AttributeError: 'ULog' object has no attribute 'messages'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}