Skip to content

Broken on Python 3.12 due to unmaintained OSlash dep #273

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
voice-of-texnoforge opened this issue Feb 29, 2024 · 5 comments
Closed

Broken on Python 3.12 due to unmaintained OSlash dep #273

voice-of-texnoforge opened this issue Feb 29, 2024 · 5 comments

Comments

@voice-of-texnoforge
Copy link
Contributor

Hello, I'm getting problems on jsonrpcserver imports on Python 3.12:

    from jsonrpcserver import dispatch
/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/jsonrpcserver/__init__.py:19: in <module>
    from .async_main import (
/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/jsonrpcserver/async_main.py:5: in <module>
    from .async_dispatcher import dispatch_to_response_pure
/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/jsonrpcserver/async_dispatcher.py:9: in <module>
    from oslash.either import Left  # type: ignore
/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/oslash/__init__.py:11: in <module>
    from .state import State
/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages/oslash/state.py:78: in <module>
    assert issubclass(State, Functor)
/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/typing.py:1841: in __subclasscheck__
    cls.__non_callable_proto_members__
E   AttributeError: type object 'Functor' has no attribute '__non_callable_proto_members__'

Is there any hope for a fix and new release?

@voice-of-texnoforge
Copy link
Contributor Author

It seems to be a problem in OSlash which had last release in 2020 so it's safe to assume it's dead.

However, jsonrpcserver seems to only use Either, Left, Right:

from oslash.either import Either, Left, Right

This should be reasonably easy to fix by switching to PyMonad or even providing custom implementation.

@voice-of-texnoforge voice-of-texnoforge changed the title Broken on Python 3.12 Broken on Python 3.12 due to unmaintained OSlash dep Feb 29, 2024
@briceparmentier
Copy link

Hello !

It seems to be a problem in OSlash which had last release in 2020 so it's safe to assume it's dead.

However, jsonrpcserver seems to only use Either, Left, Right:

from oslash.either import Either, Left, Right

This should be reasonably easy to fix by switching to PyMonad or even providing custom implementation.

Is it possible to get some help on the proposed solution? I'm not comfortable enough to get this done.

I create a sample project on PyCharm importing only jsonrpcserver package, no version specified (grabbing 5.0.9), ran the main proposed on the jsonrpcserver documentation, and got the same error mentioned at the beginning.

@voice-of-texnoforge
Copy link
Contributor Author

So the author said he's hoping to release 6.0 version "soon" in #275 (comment)

Looking at 6.0.0 PR #255 , you can see 0f1fd29 Replace Oslash with Returns

If you don't want to wait for the release, you can try the
release/6.0.0 branch I guess.

@briceparmentier
Copy link

Thanks !
I hope then that the next release will come soon.
Meanwhile I've managed to make it work by creating a virtual environment for this project using version 3.11.x of Python.

@bcb
Copy link
Member

bcb commented Jul 30, 2024

As @voice-of-texnoforge said, this is fixed in version 6.

@bcb bcb closed this as completed Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants