{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":68737600,"defaultBranch":"master","name":"canopen","ownerLogin":"christiansandberg","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-09-20T17:42:18.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3647996?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1718310927.0","currentOid":""},"activityList":{"items":[{"before":"55d870e2d4fd1f36141712ebad318e6b611ea50c","after":"a196e1e3b62bddcfd62cea9fc5293efe8a8cc0a4","ref":"refs/heads/master","pushedAt":"2024-07-10T14:47:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sveinse","name":"Svein Seldal","path":"/sveinse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13770135?s=80&v=4"},"commit":{"message":"Purge import hack from network.py (#510)\n\nAlways require dependencies to be installed.\r\n\r\nResolved #509","shortMessageHtmlLink":"Purge import hack from network.py (#510)"}},{"before":"3aa509db9fea8094516e5eb717be3df182f0751a","after":"55d870e2d4fd1f36141712ebad318e6b611ea50c","ref":"refs/heads/master","pushedAt":"2024-07-10T14:44:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sveinse","name":"Svein Seldal","path":"/sveinse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13770135?s=80&v=4"},"commit":{"message":"Tests: make sure temporary files are pre-closed (#507)\n\nWindows fails with a permission error if the temporary file is already\r\nopened.\r\n\r\nFixes #501","shortMessageHtmlLink":"Tests: make sure temporary files are pre-closed (#507)"}},{"before":"5207b322907b9d3fa2a4343ed17dc4d89fe26109","after":"3aa509db9fea8094516e5eb717be3df182f0751a","ref":"refs/heads/master","pushedAt":"2024-07-09T11:06:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Tests: harden TestNetwork (#505)\n\n- make tests deterministic\r\n- use cleanup hooks\r\n- check the periodicity of heartbeats, by number of triggers\r\n- roughly check the interval","shortMessageHtmlLink":"Tests: harden TestNetwork (#505)"}},{"before":"fa74236b3f3312c03d09e72de3fa6d3cf077fbec","after":"5207b322907b9d3fa2a4343ed17dc4d89fe26109","ref":"refs/heads/master","pushedAt":"2024-07-09T10:58:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Ensure NmtBase.state always returns a string (#506)\n\nFixes #500","shortMessageHtmlLink":"Ensure NmtBase.state always returns a string (#506)"}},{"before":"c4560daa37bec67a663046834a42b8058b5ceedc","after":"fa74236b3f3312c03d09e72de3fa6d3cf077fbec","ref":"refs/heads/master","pushedAt":"2024-07-09T10:15:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Add tests for NMT base and NMT master (#504)","shortMessageHtmlLink":"Add tests for NMT base and NMT master (#504)"}},{"before":"6bd39ba8f1fef7e32732fcc61ae548aa2392b7e0","after":"c4560daa37bec67a663046834a42b8058b5ceedc","ref":"refs/heads/master","pushedAt":"2024-07-09T06:54:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Build docs in CI (fixes #497) (#498)","shortMessageHtmlLink":"Build docs in CI (fixes #497) (#498)"}},{"before":"08eba81f519e637e0c20d58560ca9d6637e0adfe","after":"6bd39ba8f1fef7e32732fcc61ae548aa2392b7e0","ref":"refs/heads/master","pushedAt":"2024-07-09T06:51:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Add back PdoBase.export() dependency (canmatrix) (#493)\n\nThe canmatrix optional dependency was removed on Oct 10, 2021 with commit\r\nc46228f. It is now added back as an optional dependency, using the same\r\nname as previously: db_export.\r\n\r\nTo install the dependency:\r\n\r\n$ python3 -m pip install 'canopen[db_export]'\r\n\r\nResolves #488","shortMessageHtmlLink":"Add back PdoBase.export() dependency (canmatrix) (#493)"}},{"before":"c413eaffd0e13389512cfdf43dd51694842a427b","after":"08eba81f519e637e0c20d58560ca9d6637e0adfe","ref":"refs/heads/master","pushedAt":"2024-07-08T13:42:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Tests: establish test/util.py and test/test_nmt.py (#503)\n\nGive NMT tests their own file, and establish a util.py for the test\r\nsuite for common stuff like the location of sample EDS files.\r\n\r\nConsistently use SAMPLE_EDS instead of EDS_PATH.","shortMessageHtmlLink":"Tests: establish test/util.py and test/test_nmt.py (#503)"}},{"before":"62e9c1f851cb8721355d22c8571f2b41599c1b36","after":"c413eaffd0e13389512cfdf43dd51694842a427b","ref":"refs/heads/master","pushedAt":"2024-07-08T10:41:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Git: correctly ignore docs build directory (#499)","shortMessageHtmlLink":"Git: correctly ignore docs build directory (#499)"}},{"before":"36c8488febc20e1d351135c90dd8966ab1d07dfb","after":"62e9c1f851cb8721355d22c8571f2b41599c1b36","ref":"refs/heads/master","pushedAt":"2024-07-06T17:44:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"README: Add formatting and amend doc build instructions (#494)\n\n- add formatting to Git branch names\r\n- add formatting to Python module names\r\n- spell out Python version support","shortMessageHtmlLink":"README: Add formatting and amend doc build instructions (#494)"}},{"before":"02ebc0c44fac791ca44f232c6d6ac1950617bfab","after":"36c8488febc20e1d351135c90dd8966ab1d07dfb","ref":"refs/heads/master","pushedAt":"2024-07-04T20:45:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Add support for loading DCF configuration to remote node (#427)\n\nHandle PDO-related objects through the associated methods in the PdoBase class when initializing a RemoteNode from an ObjectDictionary with provided values (DCF file usually). This avoids the locally cached mapping information to get out of sync with the PDO configuration parameters, and thus eliminates the need to read back those same objects.\r\n\r\nThe PdoBase.read() method must honor DCF-provided values for this purpose. It previously only respected the OD default values when called with from_od=True.\r\n\r\nCo-authored-by: André Colomb ","shortMessageHtmlLink":"Add support for loading DCF configuration to remote node (#427)"}},{"before":"f1315d3df4354cf02ac2acc70b53b91761c2f242","after":"02ebc0c44fac791ca44f232c6d6ac1950617bfab","ref":"refs/heads/master","pushedAt":"2024-07-04T10:40:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Add tests for bitrate parsing in import_eds() (#495)","shortMessageHtmlLink":"Add tests for bitrate parsing in import_eds() (#495)"}},{"before":"6a4ca1184e219c64768fbb0eb8434b04320d4803","after":"f1315d3df4354cf02ac2acc70b53b91761c2f242","ref":"refs/heads/master","pushedAt":"2024-07-03T22:28:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Gracefully handle missing Baudrate setting in DCF (#492)\n\nThe CiA306 spec is not quite clear on which fields are mandatory\r\nwithin the DeviceComissioning section. Thus it should be assumed that\r\nthe two options handled here could be missing. Instead of raising an\r\nexception, ignore the absence of the Baudrate setting.","shortMessageHtmlLink":"Gracefully handle missing Baudrate setting in DCF (#492)"}},{"before":"2938a908fb3cb93a65db5d30a7d889a08f66c956","after":"6a4ca1184e219c64768fbb0eb8434b04320d4803","ref":"refs/heads/master","pushedAt":"2024-07-03T22:08:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Save the passed node ID to the resulting OD in import_od() (#484)\n\nOnly for DCF-files (which include a DeviceComissioning section), the Node-ID from the file is stored in the ObjectDictionary instance. When given an override value via the `import_od(..., node_id=...)` argument, that was however not applied to the OD attribute, but only used for $NODEID interpolation.\r\n\r\nMake sure the interpolated values match the stored node_id in this case.\r\n\r\nAlso handle a missing NodeID option within the DeviceComissioning section gracefully, instead of raising an exception.","shortMessageHtmlLink":"Save the passed node ID to the resulting OD in import_od() (#484)"}},{"before":"cc37aee4e172a5a83f9f9dc956cc66d82bd1a8b7","after":"2938a908fb3cb93a65db5d30a7d889a08f66c956","ref":"refs/heads/master","pushedAt":"2024-07-03T21:20:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Adapt to renamed \"bustype\" parameter on can.Bus (#489)\n\nThe bustype keyword has long been replaced by \"interface\" and the\r\nformer is deprecated in python-can. The Network class passes it\r\nthrough without caring for the name, but documentation and tests\r\nreferred to the older name regularly.","shortMessageHtmlLink":"Adapt to renamed \"bustype\" parameter on can.Bus (#489)"}},{"before":"92a6e11168f5072403a8ec03a7de0195854674cb","after":"cc37aee4e172a5a83f9f9dc956cc66d82bd1a8b7","ref":"refs/heads/master","pushedAt":"2024-07-03T09:40:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sveinse","name":"Svein Seldal","path":"/sveinse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13770135?s=80&v=4"},"commit":{"message":"Bail early if an unsupported doctype is passed to export_od() (#486)\n\nFixes #485","shortMessageHtmlLink":"Bail early if an unsupported doctype is passed to export_od() (#486)"}},{"before":"e3af0eb31bdfde2203d56f1dd953dbd23b4b6609","after":"92a6e11168f5072403a8ec03a7de0195854674cb","ref":"refs/heads/master","pushedAt":"2024-07-02T15:25:11.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"sveinse","name":"Svein Seldal","path":"/sveinse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13770135?s=80&v=4"},"commit":{"message":"Remove temporary files created in EDS tests (#482)","shortMessageHtmlLink":"Remove temporary files created in EDS tests (#482)"}},{"before":"028a57f49510803eeef4965b95f3aa76ce18e648","after":"e3af0eb31bdfde2203d56f1dd953dbd23b4b6609","ref":"refs/heads/master","pushedAt":"2024-07-02T11:26:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Increase export_eds() test coverage (#474)\n\n* Test export_eds() to stdout\r\n* Use StringIO as a context manager iso. addCleanup\r\n* Expand the test to cover most paths\r\n* Expand test for unknown doctypes\r\n* Use subTest for better debugging","shortMessageHtmlLink":"Increase export_eds() test coverage (#474)"}},{"before":"d141e13970ce5bb5e696a97b92131356d34092bc","after":"028a57f49510803eeef4965b95f3aa76ce18e648","ref":"refs/heads/master","pushedAt":"2024-07-02T11:21:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Expose and improve the docstrings of `export_od` and `import_id` (#473)\n\nResolves #472\r\n\r\n* Expose and improve the docstrings of export_od and import_id\r\n* export_od(od, None, doctype) does not return a string; it writes to stdout\r\n* Clarify 'doc_type' details\r\n* Add exception info","shortMessageHtmlLink":"Expose and improve the docstrings of export_od and import_id (#473)"}},{"before":"503918c9bd9ff0499a604c7805e7627ca38fb332","after":"d141e13970ce5bb5e696a97b92131356d34092bc","ref":"refs/heads/master","pushedAt":"2024-07-02T11:19:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Improve the RemoteNode.load_configuration() docs (#477)\n\nSpell out how it works and link to PdoBase.read()\r\n\r\nMoreover, add return annotation to make sure that's included in the\r\nrendered docs.","shortMessageHtmlLink":"Improve the RemoteNode.load_configuration() docs (#477)"}},{"before":"5734f37ee758e1d025701b4d40e0b89a57db2317","after":"503918c9bd9ff0499a604c7805e7627ca38fb332","ref":"refs/heads/master","pushedAt":"2024-07-02T10:32:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Raise ValueError for unknown formats in the import/export OD APIs (#476)\n\nFixes #475\r\n\r\n* Test the offending suffix is part of the error message\r\n* Make the exception message more helpful","shortMessageHtmlLink":"Raise ValueError for unknown formats in the import/export OD APIs (#476)"}},{"before":"5db59130423948e1e8034a67983ca00afd0269d8","after":"5734f37ee758e1d025701b4d40e0b89a57db2317","ref":"refs/heads/master","pushedAt":"2024-07-02T10:04:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Export PdoMap and PdoVariable classes in pdo module (#464)\n\n* Reintroduce PdoMap and PdoVariable to public API of sub-package pdo.\r\n\r\nWith commit 0285f582beb344de708ce8308274a99bc04988a1, the Map class\r\nwas inadvertently removed from the imports directly available within\r\nthe canopen.pdo package. However, it is referenced as\r\ncanopen.pdo.PdoMap in the p402 module and documentation.\r\n\r\nRestore that import using the new names PdoMap and PdoVariable. Move\r\nthe compatibility define to the very bottom, just like in other\r\nmodules. Provide an __all__ listing to clarify what constitutes the\r\npublic API.\r\n\r\n* Use type hints for PdoMap in BaseNode402.\r\n\r\nReplace the sphinx parameter type documentation with a proper type\r\nhint annotation. Same for the tpdo_pointers and rpdo_pointers\r\nattributes.","shortMessageHtmlLink":"Export PdoMap and PdoVariable classes in pdo module (#464)"}},{"before":"1fc63b5f4835eba80462c7892a2cd00f786ec9ce","after":"5db59130423948e1e8034a67983ca00afd0269d8","ref":"refs/heads/master","pushedAt":"2024-06-30T16:47:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Ensure proper close after open in export_od (#469)\n\nCo-authored-by: Erlend E. Aasland ","shortMessageHtmlLink":"Ensure proper close after open in export_od (#469)"}},{"before":"e40d8627de2b5740a3201a040085064015644e72","after":"1fc63b5f4835eba80462c7892a2cd00f786ec9ce","ref":"refs/heads/master","pushedAt":"2024-06-24T21:52:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"build: Explicitly specify packages to install (fixes #467) (#468)\n\nHint setuptools to only the canopen package.","shortMessageHtmlLink":"build: Explicitly specify packages to install (fixes #467) (#468)"}},{"before":"11ba262335904f5ba3d51e0f9457781afc4f3018","after":"e40d8627de2b5740a3201a040085064015644e72","ref":"refs/heads/master","pushedAt":"2024-06-18T18:43:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Test explicit import of Struct-derived classes.","shortMessageHtmlLink":"Test explicit import of Struct-derived classes."}},{"before":"509aaeab493a3ae9e1c668fc02caaaac4f73ea94","after":"11ba262335904f5ba3d51e0f9457781afc4f3018","ref":"refs/heads/master","pushedAt":"2024-06-18T08:21:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Switch to more modern \"furo\" Sphinx theme.","shortMessageHtmlLink":"Switch to more modern \"furo\" Sphinx theme."}},{"before":"8f89d4286c1ade657508b1880c56da69a6b40928","after":"509aaeab493a3ae9e1c668fc02caaaac4f73ea94","ref":"refs/heads/master","pushedAt":"2024-06-18T08:11:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Switch back to \"classic\" Sphinx theme.","shortMessageHtmlLink":"Switch back to \"classic\" Sphinx theme."}},{"before":"3600880f1b45d90a2cef4851fe301df8b5538f79","after":"8f89d4286c1ade657508b1880c56da69a6b40928","ref":"refs/heads/master","pushedAt":"2024-06-18T08:02:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"doc: Clean up and modernize Sphinx configuration (fixes #463) (#465)\n\n* Switch from setuptools' pkg_resources to importlib.metadata.\r\n\r\nThe remaining changes are based on a fresh invocation of sphinx-quickstart (version 7.2.6), trying to format our existing modifications in the same style.\r\n\r\n* Update string literals to assume UTF-8 default.\r\n* Remove commented Sphinx configuration options.\r\n* Remove Sphinx options which are at their default.\r\n* Reorder, project settings first.\r\n* Remove explanatory comments on configuration options.\r\n* Include section headers as generated via sphinx-quickstart.\r\n* Remove default HTML theme option.\r\n* Reorder (sort) extensions.\r\n* Fix undefined default language.\r\n* Rename modernized Sphinx options.\r\n* Clean up section headings and move autodoc option down.\r\n* Import Makefile generated by sphinx-quickstart.","shortMessageHtmlLink":"doc: Clean up and modernize Sphinx configuration (fixes #463) (#465)"}},{"before":"11b540adc6b3848d4bd8a2bb7278a35568b8216d","after":"3600880f1b45d90a2cef4851fe301df8b5538f79","ref":"refs/heads/master","pushedAt":"2024-06-17T09:52:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Add all public API parts to __all__ (#462)\n\nCo-authored-by: Frieder Schüler ","shortMessageHtmlLink":"Add all public API parts to __all__ (#462)"}},{"before":"6de7f1f963e7496afaa0e3ff19cdee0f9979fa2d","after":"11b540adc6b3848d4bd8a2bb7278a35568b8216d","ref":"refs/heads/master","pushedAt":"2024-06-13T20:37:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"acolomb","name":"André Colomb","path":"/acolomb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6996887?s=80&v=4"},"commit":{"message":"Fixup another Python 3.6 reference.","shortMessageHtmlLink":"Fixup another Python 3.6 reference."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEe-Bx4AA","startCursor":null,"endCursor":null}},"title":"Activity · christiansandberg/canopen"}