Skip to content

Error when launching something with mondrian from celery task #17

@jrmi

Description

@jrmi

When you launch something from celery task, stdout and stderr are proxyfied with LoggingProxy object (See doc). This object doesn't have encoding nor buffer properties so when Mondrian is initialized in that context, an exception is raised (here as bonobo dependency):

[...]
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/__init__.py", line 10, in <module>
celery_1          |     from bonobo._api import *
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/_api.py", line 10, in <module>
celery_1          |     from bonobo.execution.strategies import create_strategy
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/execution/strategies/__init__.py", line 9, in <module>
celery_1          |     from bonobo.execution.strategies.executor import ProcessPoolExecutorStrategy, ThreadPoolExecutorStrategy
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/execution/strategies/executor.py", line 7, in <module>
celery_1          |     from bonobo.execution.strategies.base import Strategy
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/execution/strategies/base.py", line 1, in <module>
celery_1          |     from bonobo.execution.contexts.graph import GraphExecutionContext
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/execution/contexts/__init__.py", line 8, in <module>
celery_1          |     from bonobo.execution.contexts.graph import GraphExecutionContext
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/execution/contexts/graph.py", line 9, in <module>
celery_1          |     from bonobo.execution.contexts.node import NodeExecutionContext
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/execution/contexts/node.py", line 12, in <module>
celery_1          |     from bonobo.execution.contexts.base import BaseContext
celery_1          |   File "/code/venv/lib/python3.6/site-packages/bonobo/execution/contexts/base.py", line 6, in <module>
celery_1          |     from mondrian import term
celery_1          |   File "/code/venv/lib/python3.6/site-packages/mondrian/__init__.py", line 23, in <module>
celery_1          |     if sys.stdout.encoding is None or sys.stdout.encoding == "ANSI_X3.4-1968":
celery_1          | AttributeError: 'LoggingProxy' object has no attribute 'encoding'

If think this issue is relate to #16

This code is problematic

# Patch standard output/error if it's not supporting unicode

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