theislab / scvelo

RNA Velocity generalized through dynamical modeling
https://scvelo.org
BSD 3-Clause "New" or "Revised" License
412 stars 102 forks source link

Fix/get df with default args #1231

Closed Oisin-M closed 5 months ago

Oisin-M commented 6 months ago

Previous error was due to attempting to index on the default argument of keys=None.

Changes

Changed

keys = [keys] if isinstance(keys, str) else keys
key = keys[0]

...

if keys is None:
   df = data.to_df()
elif key in data.var_names:
   df = obs_df(data, keys, layer=layer)
elif key in data.obs_names:
   df = var_df(data, keys, layer=layer)
else:
   ...

to

if keys is None:
   df = data.to_df()
else:
   keys = [keys] if isinstance(keys, str) else keys
   key = keys[0]
   if key in data.var_names:
      df = obs_df(data, keys, layer=layer)
   elif key in data.obs_names:
      df = var_df(data, keys, layer=layer)
   else:
      ...

and added accompanying test.

Closes #649

WeilerP commented 5 months ago

Thanks, @Oisin-M!