{"html_url": "https://github.com/simonw/datasette/pull/1664#issuecomment-1072890205", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1664", "id": 1072890205, "node_id": "IC_kwDOBm6k_c4_8wFd", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-18T23:43:15Z", "updated_at": "2022-03-18T23:43:15Z", "author_association": "OWNER", "body": "Now almost everything is working except for foreign key expansion:\r\n\r\n![CleanShot 2022-03-18 at 16 41 39@2x](https://user-images.githubusercontent.com/9599/159097349-6f41dfdf-5bab-449b-a148-5cda3df6534c.png)\r\n\r\nUsing the debugger I tracked it down to this code:\r\n\r\nhttps://github.com/simonw/datasette/blob/30e5f0e67c38054a8087a2a4eae3fc4d1779af90/datasette/views/table.py#L708-L715\r\n\r\nTurns out `default_labels` there is `None` - and it's a parameter to that `data()` method: https://github.com/simonw/datasette/blob/30e5f0e67c38054a8087a2a4eae3fc4d1779af90/datasette/views/table.py#L325-L334\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1173017980, "label": "Remove hashed URL mode"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/416#issuecomment-1072833174", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/416", "id": 1072833174, "node_id": "IC_kwDOCGYnMM4_8iKW", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-18T21:34:06Z", "updated_at": "2022-03-18T21:34:06Z", "author_association": "OWNER", "body": "Good call-out: right now the `parsedate()` and `parsedatetime()` functions both terminate with an exception if they hit something invalid: https://sqlite-utils.datasette.io/en/stable/cli.html#sqlite-utils-convert-recipes\r\n\r\nIt would be better if this was configurable by the user (and properly documented) - options could include \"set null if date is invalid\" and \"leave the value as it is if invalid\" in addition to throwing an error.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1173023272, "label": "Options for how `r.parsedate()` should handle invalid dates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/416#issuecomment-1072834273", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/416", "id": 1072834273, "node_id": "IC_kwDOCGYnMM4_8ibh", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-18T21:36:05Z", "updated_at": "2022-03-18T21:36:05Z", "author_association": "OWNER", "body": "Python's `str.encode()` method has a `errors=` parameter that does something along these lines: https://docs.python.org/3/library/stdtypes.html#str.encode\r\n\r\n> *errors* may be given to set a different error handling scheme. The default for *errors* is `'strict'`, meaning that encoding errors raise a [`UnicodeError`](https://docs.python.org/3/library/exceptions.html#UnicodeError \"UnicodeError\"). Other possible values are `'ignore'`, `'replace'`, `'xmlcharrefreplace'`, `'backslashreplace'` and any other name registered via [`codecs.register_error()`](https://docs.python.org/3/library/codecs.html#codecs.register_error \"codecs.register_error\"),\r\n\r\nImitating this might be the way to go.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1173023272, "label": "Options for how `r.parsedate()` should handle invalid dates"}, "performed_via_github_app": null}