Skip to content

Allow to import Python files from cube.py #8443

@drummerwolli

Description

@drummerwolli

Describe the bug
I would like to move some code out of the cube.py file as it becomes very large and hard to maintain. But I fail to make it work in the cube docker container to import the outsourced files. also, unit testing my functions becomes impossible, because if i try to import the functions from cube.py the imports fail (there is no possibility to import this line: from cube import config).

To Reproduce

  1. create the following files in one repo:

cube.py

from cube import config
from cube_utils import test_function

@config('query_rewrite')
def query_rewrite(query: dict, ctx: dict) -> dict:
    query = test_function(query)
    return query

cube_utils.py

def test_function(query: dict) -> dict:
    # do something
    return query

Dockerfile

FROM cubejs/cube:v0.35.57

COPY cube.py /cube/conf/
COPY cube_utils.py /cube/conf/
  1. build the docker file:

docker build -f test.Dockerfile -t cube .

  1. run the docker container:
docker run -it cube                                         

Cube Error ---------------------------------------

Error: Python error: ModuleNotFoundError: No module named 'cube_utils'
Traceback (most recent call last):
  File "cube.py", line 2, in <module>
    from cube_utils import test_function

Expected behavior
Cube API should start without a problem with the above setup.

Screenshots
n/a, see above

Minimally reproducible Cube Schema

not needed, see above.

Version:
v0.35.57

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions