def test_set_obsm_key(adata):
    init_hash = joblib.hash(adata)

    orig_obsm_val = adata.obsm["o"].copy()
    subset_obsm = adata[:50]
    assert subset_obsm.is_view
    subset_obsm.obsm["o"] = np.ones((50, 20))
    assert not subset_obsm.is_view
    assert np.all(adata.obsm["o"] == orig_obsm_val)

    assert init_hash == joblib.hash(adata)
def from_json(self, filename: str, silent: bool = False) -> bool:
        """Update the values in the config from a JSON file. The loaded
        data is passed to the :meth:`from_mapping` method.

        :param filename: The path to the JSON file. This can be an
            absolute path or relative to the config root path.
        :param silent: Ignore the file if it doesn't exist.

        .. deprecated:: 2.0.0
            Will be removed in Flask 2.1. Use :meth:`from_file` instead.
            This was removed early in 2.0.0, was added back in 2.0.1.

        .. versionadded:: 0.11
        """
        import warnings
        from . import json

        warnings.warn(
            "'from_json' is deprecated and will be removed in Flask"
            " 2.1. Use 'from_file(path, json.load)' instead.",
            DeprecationWarning,
            stacklevel=2,
        )
        return self.from_file(filename, json.load, silent=silent)