tractor icon indicating copy to clipboard operation
tractor copied to clipboard

Readme: Cluster example fails without msgspec on OS X

Open trifle opened this issue 3 years ago • 5 comments

Hi, as someone who's been looking for a clean async actor-like approach in python, tractor looks amazing!

I just started looking at the docs and code, but noticed the actor cluster / process pool example in the readme fails when tractor is installed via poetry. This is on a M1 mac, python 3.9.9 from homebrew, tractor installed from git via poetry.

Poetry complains about a malformed dependency declaration for msgspec. There is a single quote that's not quite right, but removing it doesn't seem to be the issue.

Resolving dependencies... (1.2s)PackageInfo: Invalid constraint (msgspec >= 0.3.2'; python_version >= '3.9' ; extra == "msgspec") found in tractor-0.1.0a3 dependencies, skipping

trifle avatar Dec 07 '21 11:12 trifle

Hey @trifle thanks for the report 😎

tractor looks amazing!

Thanks friend. It's been a WIP for some time but I think we're getting close to prime time finally 😂

the actor cluster / process pool example in the readme fails when tractor is installed via poetry.

Poetry complains about a malformed dependency declaration for msgspec. There is a single quote that's not quite right, but removing it doesn't seem to be the issue.

Never tried an install via poetry so not sure what that entails but also we don't have OS X support yet afaik. I'm not totally after using poetry (or one of the other dep management juggernaut tools) any time soon since pip for a library style project seems to be working.

This is on a M1 mac, python 3.9.9 from homebrew, tractor installed from git via poetry.

There's a PR up to get CI going ~#228~ #255 but it's hanging iirc. I think @guilledk mentioned in chat that an app built on tractor worked on a mac they tried but I have no access to one myself.

If you'd like to help work through getting this example and the test suite going it'd sure be chido 🏄🏼

Let us know!

goodboy avatar Dec 07 '21 13:12 goodboy

Hey @goodboy,

thanks for the awesome reply! I'll try to set aside some time to see how it runs on mac and report back, but that's probably going to have to wait until around christmas.

My overall experience with mac multiprocessing, python, executors etc. has been relatively solid, nothing particular I'd fear about being very broken.

As for poetry, I guess it's becoming more popular and seems slightly less cumbersome than all the other package managers I've tried. It seems to follow the PEPs pretty strictly for parsing setup.py. But it might also have a separate dependency resolver from the new-generation pip? I'll try and see if I can find out anything.

trifle avatar Dec 07 '21 13:12 trifle

@trifle feel free to jump in our chat on matrix/gitter if you'd like as well.

It might be handy to have some interaction if you do end up working through trying to get OS X support going 😄

It seems to follow the PEPs pretty strictly for parsing setup.py.

I've got no quiffs trying out new stuff if that's where the tide is flowing and honestly I've never seen anything of issue with poetry (it was i think the other one that gave me headaches on a larger project).

My overall experience with mac multiprocessing, python, executors etc. has been relatively solid, nothing particular I'd fear about being very broken.

Cool, yeah and if there's alt spawning backends to be tried on OS X we're all for it as well. That's kind of the point of this design 😏

Cheers and hope to hear from you on this front!

goodboy avatar Dec 07 '21 13:12 goodboy

@overclockworked64 oh, pinging you since I think this was from your PR.

Also, @trifle I'm going to change the title to be OS X specific because I'm pretty sure this example does to work on msgpack (not msgspec) otherwise both our cluster test and the docs example test subset would be failing.

goodboy avatar Dec 07 '21 14:12 goodboy

Sure, makes sense!

trifle avatar Dec 07 '21 15:12 trifle