I have a package that can use two different spell checkers. Unfortunately one of them (pyenchant) is not available from conda-forge on windows.
I therefore changed the upstream pypi package to have dynamic dependencies and to require both spell checkers on all systems except windows. In addition, I left the dependency on pyenchant out of my conda-forge meta.yaml file.
My tests run fine under windows, but linux I get the message
requires pyenchant, which is not installed.
It seems that grayskull does not pick up dynamic dependencies. How do I specify, in meta.yaml, that a package is not required on windows ?
Hi Brad, I this is not yet easily possible in the conda ecosystem. You can build two variants (for windows and unix) with different sets of dependencies. This works by adding special “virtual” packages as dependencies (__unix and __win).
You could use the Github code search to find some examples.
In the future we hopefully will have a similar mechanism as PyPI for optional and conditional dependencies.
I decided to avoid the problem (in the upstream source) by only making the default spell checker required. If one trys to use pyenchant and it is not installed, they get a message suggesting that they install it.