lebedov/msgpack-numpy

0.4.4.1 breaks spacy

anneschuth opened this issue ยท 4 comments

Since 0.4.4.1 we have breaking builds of projects that use spacy, with the following error:

    ents_model_nl.to_disk(model_path_nl)
../../../virtualenv/python3.6.3/lib/python3.6/site-packages/spacy/language.py:621: in to_disk
    util.to_disk(path, serializers, {p: False for p in disable})
../../../virtualenv/python3.6.3/lib/python3.6/site-packages/spacy/util.py:503: in to_disk
    writer(path / key)
../../../virtualenv/python3.6.3/lib/python3.6/site-packages/spacy/language.py:609: in <lambda>
    ('tokenizer', lambda p: self.tokenizer.to_disk(p, vocab=False)),
tokenizer.pyx:354: in spacy.tokenizer.Tokenizer.to_disk
    ???
tokenizer.pyx:355: in spacy.tokenizer.Tokenizer.to_disk
    ???
tokenizer.pyx:384: in spacy.tokenizer.Tokenizer.to_bytes
    ???
../../../virtualenv/python3.6.3/lib/python3.6/site-packages/spacy/util.py:486: in to_bytes
    return msgpack.dumps(serialized, use_bin_type=True, encoding='utf8')
../../../virtualenv/python3.6.3/lib/python3.6/site-packages/msgpack_numpy.py:196: in packb
    return Packer(**kwargs).pack(o)
E   TypeError: __init__() got an unexpected keyword argument 'encoding'

(spaCy author here.)

Happy to fix our version pin, or update our code? I think that function was written with reference to a previous version of msgpack (when it was named msgpack-python). It looks like I need to simply remove that encoding argument?

Ah, thanks @honnibal, thats great!

At the same time, this may have broken other packages too, I guess this (backwards incompatible) changes should maybe be part of a major release?

@honnibal - yes, the encoding argument is deprecated in msgpack-python 0.5.2+; removing it should fix the problem.

Since msgpack-numpy is now bundled in srsly, I assume this is no longer an issue. Feel free to reopen if needed.