Motor-ODM icon indicating copy to clipboard operation
Motor-ODM copied to clipboard

ValueError: list.remove(x): x not in list

Open JosXa opened this issue 4 years ago • 1 comments

Hey there, finally starting to get my feet wet with this library.

I'm trying to use your wrapper for updating indices in the database, but the static method IndexManager.equal fails when attempting to delete ns from dbi:

https://github.com/codello/Motor-ODM/blob/15fdad8e2acf088b807dc4f69da6730590aecbd4/motor_odm/indexes.py#L91-L101

I don't think I'm doing anything special, just following the example from your tests. Sounds to me like the values just shouldn't be used for comparison and we can add an if "ns" in dbi: ... check beforehand?

Stack Trace

Traceback (most recent call last):
  File "C:/projects/josxabot/app/modules/symbose/models/item.py", line 59, in <module>
    asyncio.get_event_loop().run_until_complete(main())
  File "c:\program files\python38\lib\asyncio\base_events.py", line 616, in run_until_complete
    return future.result()
  File "C:/projects/josxabot/app/modules/symbose/models/item.py", line 49, in main
    await User.init_indexes(drop=True)
  File "c:\users\int002327\appdata\local\pypoetry\cache\virtualenvs\josxabot-c3bmtbt9-py3.8\src\motor-odm\motor_odm\document.py", line 272, in init_indexes
    await im.ensure_indexes(cls.__mongo__.indexes, drop=drop)
  File "c:\users\int002327\appdata\local\pypoetry\cache\virtualenvs\josxabot-c3bmtbt9-py3.8\src\motor-odm\motor_odm\indexes.py", line 49, in ensure_indexes
    elif self.equal(index, db_index):
  File "c:\users\int002327\appdata\local\pypoetry\cache\virtualenvs\josxabot-c3bmtbt9-py3.8\src\motor-odm\motor_odm\indexes.py", line 100, in equal
    del dbi["ns"]
  File "C:\Users\INT002327\AppData\Local\pypoetry\Cache\virtualenvs\josxabot-c3BmTbt9-py3.8\lib\site-packages\bson\son.py", line 63, in __delitem__
    self.__keys.remove(key)
ValueError: list.remove(x): x not in list

Kudos, I love the idea of combining Pydantic with... well... anything ;D

JosXa avatar Sep 27 '20 02:09 JosXa

MongoDB has stopped generating ns fields in indexes. (ref)

sabbyX avatar Oct 10 '20 09:10 sabbyX