Skip to content

Commit

Permalink
Error on random kwargs in setup_anndata (#1439)
Browse files Browse the repository at this point in the history
* error on random kwargs in setup_anndata

* release note

* remove labels for totalvi

* change message to be consistent w python

Co-authored-by: Adam Gayoso <[email protected]>
  • Loading branch information
justjhong and adamgayoso authored Mar 15, 2022
1 parent 6bbdeec commit b213388
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 1 deletion.
20 changes: 20 additions & 0 deletions docs/release_notes/v0.15.2.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
New in 0.15.2 (2022-MM-DD)
--------------------------


Changes
~~~~~~~

Bug fixes
~~~~~~~~~~
- Errors when arbitrary kwargs are passed into ``setup_anndata()`` (`#1439`_).

Contributors
~~~~~~~~~~~~
- `@jjhong922`_
- `@adamgayoso`_

.. _`@jjhong922`: https://github.com/jjhong922
.. _`@adamgayoso`: https://github.com/adamgayoso

.. _`#1439`: https://github.com/YosefLab/scvi-tools/pull/1439
5 changes: 5 additions & 0 deletions scvi/data/_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,11 @@ def register_fields(
"Existing AnnData object registered with this Manager instance."
)

if source_registry is None and transfer_kwargs:
raise TypeError(
f"register_fields() got unexpected keyword arguments {transfer_kwargs} passed without a source_registry."
)

self._validate_anndata_object(adata)
field_registries = self._registry[_constants._FIELD_REGISTRIES_KEY]

Expand Down
5 changes: 5 additions & 0 deletions tests/dataset/test_anndata.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ def test_transfer_fields():
m.get_latent_representation(a2)
assert a2.obs["_scvi_batch"].all() == 1

# test that error is thrown if an arbitrary kwarg is passed into setup_anndata
a = scvi.data.synthetic_iid()
with pytest.raises(TypeError):
scvi.model.SCVI.setup_anndata(a, batch="batch")


def test_clobber_same_model():
adata = scvi.data.synthetic_iid()
Expand Down
1 change: 0 additions & 1 deletion tests/models/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,6 @@ def test_save_load_model(cls, adata, save_path, prefix=None, legacy=False):
cls.setup_anndata(
adata,
batch_key="batch",
labels_key="labels",
protein_expression_obsm_key="protein_expression",
protein_names_uns_key="protein_names",
)
Expand Down

0 comments on commit b213388

Please sign in to comment.