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'
When you launch something from celery task, stdout and stderr are proxyfied with
LoggingProxyobject (See doc). This object doesn't haveencodingnorbufferproperties so when Mondrian is initialized in that context, an exception is raised (here as bonobo dependency):If think this issue is relate to #16
This code is problematic
mondrian/mondrian/__init__.py
Line 21 in 15ea7b9