Skip to content

Run-time failure on FreeBSD: NotImplementedError: unsupported platform #3087

Closed
@yurivict

Description

@yurivict

When both wandb and eventlet packages are installed 'import wandb' fails in the trio code:

$ python3.11
Python 3.11.9 (main, Jul 11 2024, 01:05:32) [Clang 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a on freebsd14
Type "help", "copyright", "credits" or "license" for more information.
>>> import wandb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.11/site-packages/wandb/__init__.py", line 20, in <module>
    from wandb import sdk as wandb_sdk
  File "/usr/local/lib/python3.11/site-packages/wandb/sdk/__init__.py", line 28, in <module>
    from .wandb_init import _attach, init
  File "/usr/local/lib/python3.11/site-packages/wandb/sdk/wandb_init.py", line 32, in <module>
    from . import wandb_login, wandb_setup
  File "/usr/local/lib/python3.11/site-packages/wandb/sdk/wandb_login.py", line 25, in <module>
    from .wandb_settings import Settings
  File "/usr/local/lib/python3.11/site-packages/wandb/sdk/wandb_settings.py", line 45, in <module>
    from wandb.sdk.internal.system.env_probe_helpers import is_aws_lambda
  File "/usr/local/lib/python3.11/site-packages/wandb/sdk/internal/system/env_probe_helpers.py", line 3, in <module>
    from sentry_sdk.integrations.aws_lambda import get_lambda_bootstrap  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/__init__.py", line 1, in <module>
    from sentry_sdk.hub import Hub, init
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/hub.py", line 9, in <module>
    from sentry_sdk.scope import Scope
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/scope.py", line 7, in <module>
    from sentry_sdk.utils import logger, capture_internal_exceptions
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1048, in <module>
    HAS_REAL_CONTEXTVARS, ContextVar = _get_contextvars()
                                       ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1018, in _get_contextvars
    if not _is_contextvars_broken():
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 979, in _is_contextvars_broken
    from eventlet.patcher import is_monkey_patched  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/eventlet/__init__.py", line 6, in <module>
    from eventlet import convenience
  File "/usr/local/lib/python3.11/site-packages/eventlet/convenience.py", line 7, in <module>
    from eventlet.green import socket
  File "/usr/local/lib/python3.11/site-packages/eventlet/green/socket.py", line 21, in <module>
    from eventlet.support import greendns
  File "/usr/local/lib/python3.11/site-packages/eventlet/support/greendns.py", line 78, in <module>
    setattr(dns, pkg, import_patched('dns.' + pkg))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/eventlet/support/greendns.py", line 60, in import_patched
    return patcher.import_patched(module_name, **modules)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/eventlet/patcher.py", line 132, in import_patched
    return inject(
           ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/eventlet/patcher.py", line 109, in inject
    module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dns/asyncquery.py", line 32, in <module>
    import dns.quic
  File "/usr/local/lib/python3.11/site-packages/dns/quic/__init__.py", line 37, in <module>
    import trio
  File "/usr/local/lib/python3.11/site-packages/trio/__init__.py", line 23, in <module>
    from ._core import TASK_STATUS_IGNORED as TASK_STATUS_IGNORED  # isort: split
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/trio/_core/__init__.py", line 21, in <module>
    from ._local import RunVar, RunVarToken
  File "/usr/local/lib/python3.11/site-packages/trio/_core/_local.py", line 9, in <module>
    from . import _run
  File "/usr/local/lib/python3.11/site-packages/trio/_core/_run.py", line 2844, in <module>
    raise NotImplementedError("unsupported platform")
NotImplementedError: unsupported platform

The conditional in this line:

elif TYPE_CHECKING or hasattr(select, "kqueue"):

always evaluates to False because TYPE_CHECKING is always False at run-time.
Otherwise hasattr(select, "kqueue") evaluates to True.

Version: 0.26.2
Python-3.11
FreeBSD 14.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions