pytries / marisa-trie

Static memory-efficient Trie-like structures for Python based on marisa-trie C++ library.
https://marisa-trie.readthedocs.io/en/latest/
MIT License
1.02k stars 91 forks source link

Missing wheels? #57

Closed goodmami closed 3 years ago

goodmami commented 4 years ago

On PyPI I see there are many wheels available for 0.7.4, but the latest version only has a wheel for macOS, thus requiring other platforms to build from source, which means they need to have the Python development headers installed, etc. For casual users who are installing some package that depends on marisa-trie, this can be quite a burden.

Is it possible to setup some CD workflow that generates the wheels for various platforms?

goodmami commented 3 years ago

This repo hasn't been touched in 2.5 years. Is it still active? Should users move to datrie instead?

goodmami commented 3 years ago

(these are just notes for anyone stumbling upon this issue)

After some further digging, it looks like libdatrie doesn't work well with unicode, which is important for my use case. DAWG looks promising, but it also has a lack of prebuilt wheels except for macOS. I guess the options are to distribute the DAWG-built tries DAFSAs and use the pure-Python DAWG reader, or a pure-Python solution like pygtrie (or require users to build the extension modules from source).

BoboTiG commented 3 years ago

FTR I forked the repos (https://github.com/BoboTiG/marisa-trie) and there are now wheels for all platforms.

goodmami commented 3 years ago

There is also https://github.com/rushter/marisa-trie (marisa-trie-m on PyPI), which is what https://github.com/LuminosoInsight/language_data switched to. The language_data repo, or rather langcodes before the data was split out, is why I created this issue in the first place. It looks like your repo has more work done after the fork than this other one, but is there a reason to use one over the other?

BoboTiG commented 3 years ago

If it works for you, I do not think you should change something. I wanted to have wheels and did not had a look at that repos first, my repos simply ships wheels for all platforms and it seems the most up-to-date version out there.

I'll keep it updated if someone wants to open PRs, so it may be a good fit for the future. I do not try to sell it, just a reminder for those looking for alternatives :)

FTR here are latest version changes: 0.7.6