simonw / datasette

An open source multi-tool for exploring and publishing data
https://datasette.io
Apache License 2.0
9.56k stars 691 forks source link

Rename datasette.config() method to datasette.setting() #1107

Closed simonw closed 3 years ago

simonw commented 3 years ago

Part of #1105. Thankfully this isn't yet part of the documented public API on https://docs.datasette.io/en/stable/internals.html

simonw commented 3 years ago

Are there any plugins that use this API even though it isn't documented?

simonw commented 3 years ago

I ran rg '.config\(' datasette-*/ in my top-level directory:

datasette-sentry/test_datasette_sentry.py:    def plugin_config(self, name):
datasette-sentry/datasette_sentry.py:    config = datasette.plugin_config("datasette-sentry") or {}
datasette-render-markdown/datasette_render_markdown/__init__.py:        datasette.plugin_config(
datasette-render-images/datasette_render_images.py:        plugin_config = datasette.plugin_config("datasette-render-images") or {}
datasette-render-html/datasette_render_html.py:    config = datasette.plugin_config(
datasette-render-timestamps/datasette_render_timestamps/__init__.py:        datasette.plugin_config(
datasette-permissions-sql/datasette_permissions_sql/__init__.py:        for rule in datasette.plugin_config("datasette-permissions-sql") or []:
datasette-mask-columns/datasette_mask_columns/__init__.py:            datasette.plugin_config("datasette-mask-columns", database=database) or {}
datasette-mask-columns/datasette_mask_columns/__init__.py:    masks = datasette.plugin_config("datasette-mask-columns", database=database) or {}
datasette-media/datasette_media/__init__.py:    plugin_config = datasette.plugin_config("datasette-media") or {}
datasette-insert/datasette_insert/__init__.py:    plugin_config = datasette.plugin_config("datasette-insert") or {}
datasette-indieauth/datasette_indieauth/__init__.py:    plugin_config = datasette.plugin_config("datasette-indieauth") or {}
datasette-graphql/datasette_graphql/__init__.py:    config = datasette.plugin_config("datasette-graphql") or {}
datasette-graphql/datasette_graphql/__init__.py:    config = datasette.plugin_config("datasette-graphql") or {}
datasette-graphql/datasette_graphql/utils.py:            auto_camelcase=(datasette.plugin_config("datasette-graphql") or {}).get(
datasette-graphql/datasette_graphql/utils.py:    table_plugin_config = datasette.plugin_config(
datasette-graphql/datasette_graphql/utils.py:    def config(self, key):
datasette-graphql/datasette_graphql/utils.py:        return self.__wrapped__.config(key)
datasette-init/datasette_init/__init__.py:        config = datasette.plugin_config("datasette-init")
datasette-edit-templates/datasette_edit_templates/__init__.py:    plugin_config = datasette.plugin_config("datasette-edit-templates") or {}
datasette-cors/datasette_cors.py:    config = datasette.plugin_config("datasette-cors") or {}
datasette-cluster-map-old/build/lib/datasette_cluster_map/__init__.py:        datasette.plugin_config("datasette-cluster-map", database=database, table=table)
datasette-cluster-map/datasette_cluster_map/__init__.py:        datasette.plugin_config("datasette-cluster-map", database=database, table=table)
datasette-cluster-map/datasette_cluster_map/__init__.py:        datasette.plugin_config("datasette-cluster-map", database=database, table=table)
datasette-cluster-map/tests/test_cluster_map.py:async def test_plugin_config(db_path, config, table, expected_fragments):
datasette-configure-asgi/datasette_configure_asgi.py:        configs = datasette.plugin_config("datasette-configure-asgi") or []
datasette-configure-asgi/test_datasette_configure_asgi.py:    def plugin_config(self, name):
datasette-cluster-map-old/datasette_cluster_map/__init__.py:        datasette.plugin_config("datasette-cluster-map", database=database, table=table)
datasette-auth-passwords/datasette_auth_passwords/__init__.py:    config = datasette.plugin_config("datasette-auth-passwords") or {}
datasette-auth-github/datasette_auth_github/views.py:def verify_config(config):
datasette-auth-github/datasette_auth_github/views.py:    config = datasette.plugin_config("datasette-auth-github")
datasette-auth-github/datasette_auth_github/views.py:    verify_config(config)
datasette-auth-github/datasette_auth_github/views.py:    config = datasette.plugin_config("datasette-auth-github")
datasette-auth-github/datasette_auth_github/views.py:    verify_config(config)
datasette-atom/datasette_atom/__init__.py:        plugin_config = datasette.plugin_config("datasette-atom")
datasette-auth-google/datasette_auth_google/__init__.py:    config = datasette.plugin_config("datasette-auth-github") or {}
datasette-auth-existing-cookies/test_datasette_auth_existing_cookies.py:    def plugin_config(self, name):
datasette-auth-passwords/build/lib/datasette_auth_passwords/__init__.py:    config = datasette.plugin_config("datasette-auth-passwords") or {}
datasette-annotate/datasette_annotate/utils.py:    plugin_config = datasette.plugin_config("datasette-annotate") or {}
datasette-auth-existing-cookies/datasette_auth_existing_cookies/__init__.py:    config = datasette.plugin_config("datasette-auth-existing-cookies") or {}
datasette-auth-simple/datasette_auth_simple/__init__.py:datasette.plugin_config("datasette-auth-simple")
datasette-auth-tokens/datasette_auth_tokens/__init__.py:        config = datasette.plugin_config("datasette-auth-tokens") or {}
datasette-block-robots/datasette_block_robots/__init__.py:    config = datasette.plugin_config("datasette-block-robots") or {}
datasette-block-robots/datasette_block_robots/__init__.py:    config = datasette.plugin_config("datasette-block-robots") or {}
simonw commented 3 years ago

Most of these use plugin_config which is unaffected. It looks like the only code I need to worry about is this trick in datasette-graphl: https://github.com/simonw/datasette-graphql/blob/483c9a9e203bb90365def3df8b8f01dda1e75865/datasette_graphql/utils.py#L456-L460

class DatasetteSpecialConfig(wrapt.ObjectProxy):
    def config(self, key):
        if key == "suggest_facets":
            return False
        return self.__wrapped__.config(key)
simonw commented 3 years ago

I'm going to make this a documented method in https://docs.datasette.io/en/latest/internals.html#datasette-class

simonw commented 3 years ago

Documentation: https://docs.datasette.io/en/latest/internals.html#setting-key