{"html_url": "https://github.com/simonw/datasette/issues/185#issuecomment-412663658", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/185", "id": 412663658, "node_id": "MDEyOklzc3VlQ29tbWVudDQxMjY2MzY1OA==", "user": {"value": 222245, "label": "carlmjohnson"}, "created_at": "2018-08-13T21:04:11Z", "updated_at": "2018-08-13T21:04:11Z", "author_association": "NONE", "body": "That seems good to me.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 299760684, "label": "Metadata should be a nested arbitrary KV store"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/185#issuecomment-376614973", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/185", "id": 376614973, "node_id": "MDEyOklzc3VlQ29tbWVudDM3NjYxNDk3Mw==", "user": {"value": 222245, "label": "carlmjohnson"}, "created_at": "2018-03-27T17:49:00Z", "updated_at": "2018-03-27T17:49:00Z", "author_association": "NONE", "body": "@simonw Other than metadata, the biggest item on wishlist for the salaries project was the ability to reorder by column. Of course, that could be done with a custom SQL query, but we didn't want to have to reimplement all the nav/pagination stuff from scratch. \r\n\r\n@carolinp, feel free to add your thoughts.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 299760684, "label": "Metadata should be a nested arbitrary KV store"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/185#issuecomment-376592044", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/185", "id": 376592044, "node_id": "MDEyOklzc3VlQ29tbWVudDM3NjU5MjA0NA==", "user": {"value": 222245, "label": "carlmjohnson"}, "created_at": "2018-03-27T16:38:23Z", "updated_at": "2018-03-27T16:38:23Z", "author_association": "NONE", "body": "It would be nice to also allow arbitrary keys (maybe under a parent key called params or something to prevent conflicts). For our datasette project, we just have a bunch of dictionaries defined in the base template for things like site URL and column humanized names: https://github.com/baltimore-sun-data/salaries-datasette/blob/master/templates/base.html It would be cleaner if this were in the metadata.json.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 299760684, "label": "Metadata should be a nested arbitrary KV store"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/185#issuecomment-376590265", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/185", "id": 376590265, "node_id": "MDEyOklzc3VlQ29tbWVudDM3NjU5MDI2NQ==", "user": {"value": 222245, "label": "carlmjohnson"}, "created_at": "2018-03-27T16:32:51Z", "updated_at": "2018-03-27T16:32:51Z", "author_association": "NONE", "body": ">I think the templates themselves should be able to indicate if they want the inherited values or not. That way we could support arbitrary key/values and avoid the application code having special knowledge of license_url etc.\r\n\r\nYes, you could have `metadata` that works like `metadata` does currently and `inherited_metadata` that works with inheritance.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 299760684, "label": "Metadata should be a nested arbitrary KV store"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/185#issuecomment-370461231", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/185", "id": 370461231, "node_id": "MDEyOklzc3VlQ29tbWVudDM3MDQ2MTIzMQ==", "user": {"value": 222245, "label": "carlmjohnson"}, "created_at": "2018-03-05T15:43:56Z", "updated_at": "2018-03-05T15:44:27Z", "author_association": "NONE", "body": "Yes. I think the simplest implementation is to change lines like\r\n\r\n```python\r\n metadata = self.ds.metadata.get('databases', {}).get(name, {})\r\n```\r\n\r\nto\r\n\r\n```python\r\nmetadata = {\r\n **self.ds.metadata,\r\n **self.ds.metadata.get('databases', {}).get(name, {}),\r\n}\r\n```\r\n\r\nso that specified inner values overwrite outer values, but only if they exist.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 299760684, "label": "Metadata should be a nested arbitrary KV store"}, "performed_via_github_app": null}