Skip to content
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

[BUG]: Issue with ZenML ModelDeployer creation #3293

Open
1 task done
frznprograms opened this issue Jan 19, 2025 · 0 comments
Open
1 task done

[BUG]: Issue with ZenML ModelDeployer creation #3293

frznprograms opened this issue Jan 19, 2025 · 0 comments
Labels
bug Something isn't working

Comments

@frznprograms
Copy link

Contact Details [Optional]

No response

System Information

ZENML_LOCAL_VERSION: 0.72.0
ZENML_SERVER_VERSION: 0.72.0
ZENML_SERVER_DATABASE: sqlite
ZENML_SERVER_DEPLOYMENT_TYPE: local
ZENML_CONFIG_DIR: /Users/shaneryan_1/Library/Application Support/zenml
ZENML_LOCAL_STORE_DIR: /Users/shaneryan_1/Library/Application Support/zenml/local_stores
ZENML_SERVER_URL: http://127.0.0.1:8237
ZENML_ACTIVE_REPOSITORY_ROOT: None
PYTHON_VERSION: 3.12.2
ENVIRONMENT: native
SYSTEM_INFO: {'os': 'mac', 'mac_version': '15.2'}
ACTIVE_WORKSPACE: default
ACTIVE_STACK: my_stack
ACTIVE_USER: default
TELEMETRY_STATUS: enabled
ANALYTICS_CLIENT_ID: de4f8212-62a0-4ece-ac7f-e6b92866783e
ANALYTICS_USER_ID: 997e9f9e-c4da-4cd6-8e2a-8f42a611bc73
ANALYTICS_SERVER_ID: de4f8212-62a0-4ece-ac7f-e6b92866783e
INTEGRATIONS: ['airflow', 'bitbucket', 'numpy', 'pandas', 'kaniko', 'mlflow', 'pillow',
'scipy', 'sklearn']
PACKAGES: {'automat': '20.2.0', 'babel': '2.11.0', 'bottleneck': '1.3.7', 'brotli': '1.0.9',
'deprecated': '1.2.15', 'gitpython': '3.1.37', 'heapdict': '1.0.1', 'mako': '1.3.8',
'markdown': '3.4.1', 'markupsafe': '2.1.3', 'protego': '0.1.16', 'pydispatcher': '2.0.5',
'pyjwt': '2.7.0', 'pymysql': '1.1.1', 'pyqt5': '5.15.10', 'pyqt5-sip': '12.13.0',
'pyqtwebengine': '5.15.6', 'pysocks': '1.7.1', 'pyyaml': '6.0.1', 'pygments': '2.15.1',
'qdarkstyle': '3.2.3', 'qtawesome': '1.2.2', 'qtpy': '2.4.1', 'rtree': '1.0.1',
'sqlalchemy': '2.0.30', 'sqlalchemy-utils': '0.41.2', 'scrapy': '2.11.1', 'send2trash':
'1.8.2', 'unidecode': '1.2.0', 'aiobotocore': '2.12.3', 'aiohttp': '3.9.5', 'aioitertools':
'0.7.1', 'aiosignal': '1.2.0', 'alabaster': '0.7.16', 'alembic': '1.8.1', 'altair': '5.0.1',
'anaconda-anon-usage': '0.4.4', 'anaconda-catalogs': '0.2.0', 'anaconda-client': '1.12.3',
'anaconda-cloud-auth': '0.5.1', 'anaconda-navigator': '2.6.0', 'anaconda-project': '0.11.1',
'annotated-types': '0.6.0', 'anyio': '4.2.0', 'appdirs': '1.4.4', 'applaunchservices':
'0.3.0', 'appnope': '0.1.3', 'appscript': '1.1.2', 'archspec': '0.2.3', 'argon2-cffi':
'21.3.0', 'argon2-cffi-bindings': '21.2.0', 'arrow': '1.2.3', 'astroid': '2.14.2',
'astropy': '6.1.0', 'astropy-iers-data': '0.2024.6.3.0.31.14', 'asttokens': '2.0.5',
'async-lru': '2.0.4', 'atomicwrites': '1.4.0', 'attrs': '23.1.0', 'autopep8': '2.0.4',
'bcrypt': '4.0.1', 'beautifulsoup4': '4.12.3', 'binaryornot': '0.4.4', 'black': '24.4.2',
'bleach': '4.1.0', 'blinker': '1.6.2', 'bokeh': '3.4.1', 'boltons': '23.0.0', 'botocore':
'1.34.69', 'cachetools': '5.3.3', 'certifi': '2024.8.30', 'cffi': '1.16.0', 'chardet':
'4.0.0', 'charset-normalizer': '2.0.4', 'click': '8.1.3', 'cloudpickle': '2.2.1',
'colorama': '0.4.6', 'colorcet': '3.1.0', 'comm': '0.2.1', 'conda': '24.9.1', 'conda-build':
'24.5.1', 'conda-content-trust': '0.2.0', 'conda-index': '0.5.0', 'conda-libmamba-solver':
'24.1.0', 'conda-pack': '0.7.1', 'conda-package-handling': '2.3.0',
'conda-package-streaming': '0.10.0', 'conda-repo-cli': '1.0.88', 'conda-token':
'0.5.0+1.g2209e04', 'constantly': '23.10.4', 'contourpy': '1.2.0', 'cookiecutter': '2.6.0',
'cryptography': '42.0.5', 'cssselect': '1.2.0', 'cycler': '0.11.0', 'cytoolz': '0.12.2',
'dask': '2024.5.0', 'dask-expr': '1.1.0', 'databricks-sdk': '0.40.0', 'datashader':
'0.16.2', 'debugpy': '1.6.7', 'decorator': '5.1.1', 'defusedxml': '0.7.1',
'diff-match-patch': '20200713', 'dill': '0.3.8', 'distributed': '2024.5.0', 'distro':
'1.9.0', 'docker': '7.1.0', 'docstring-to-markdown': '0.11', 'docutils': '0.18.1',
'entrypoints': '0.4', 'et-xmlfile': '1.1.0', 'executing': '0.8.3', 'fastapi': '0.110.0',
'fastjsonschema': '2.16.2', 'filelock': '3.13.1', 'flake8': '7.0.0', 'flask': '3.0.3',
'fonttools': '4.51.0', 'fqdn': '1.5.1', 'frozendict': '2.4.2', 'frozenlist': '1.4.0',
'fsspec': '2024.3.1', 'gensim': '4.3.2', 'gitdb': '4.0.7', 'google-auth': '2.37.0',
'graphene': '3.4.3', 'graphql-core': '3.2.5', 'graphql-relay': '3.2.0', 'greenlet': '3.0.1',
'gunicorn': '23.0.0', 'h11': '0.14.0', 'h5py': '3.11.0', 'holoviews': '1.19.0', 'httptools':
'0.6.4', 'hvplot': '0.10.0', 'hyperlink': '21.0.0', 'idna': '3.7', 'imagecodecs':
'2023.1.23', 'imageio': '2.33.1', 'imagesize': '1.4.1', 'imbalanced-learn': '0.12.3',
'importlib-metadata': '7.0.1', 'incremental': '22.10.0', 'inflection': '0.5.1', 'iniconfig':
'1.1.1', 'intake': '0.7.0', 'intervaltree': '3.1.0', 'ipinfo': '5.1.1', 'ipykernel':
'6.28.0', 'ipython': '8.25.0', 'ipython-genutils': '0.2.0', 'ipywidgets': '7.8.1',
'isoduration': '20.11.0', 'isort': '5.13.2', 'itemadapter': '0.3.0', 'itemloaders': '1.1.0',
'itsdangerous': '2.2.0', 'jaraco.classes': '3.2.1', 'jedi': '0.18.1', 'jellyfish': '1.0.1',
'jinja2': '3.1.4', 'jmespath': '1.0.1', 'joblib': '1.4.2', 'json5': '0.9.6', 'jsonpatch':
'1.33', 'jsonpointer': '2.1', 'jsonschema': '4.19.2', 'jsonschema-specifications':
'2023.7.1', 'jupyter': '1.0.0', 'jupyter-client': '8.6.0', 'jupyter-console': '6.6.3',
'jupyter-core': '5.7.2', 'jupyter-events': '0.10.0', 'jupyter-lsp': '2.2.0',
'jupyter-server': '2.14.1', 'jupyter-server-terminals': '0.4.4', 'jupyterlab': '4.0.11',
'jupyterlab-pygments': '0.1.2', 'jupyterlab-server': '2.25.1', 'jupyterlab-widgets':
'1.0.0', 'keyring': '24.3.1', 'kiwisolver': '1.4.4', 'lazy-loader': '0.4',
'lazy-object-proxy': '1.10.0', 'lckr-jupyterlab-variableinspector': '3.1.0', 'libarchive-c':
'2.9', 'libmambapy': '1.5.8', 'linkify-it-py': '2.0.0', 'llvmlite': '0.42.0', 'lmdb':
'1.4.1', 'locket': '1.0.0', 'lxml': '5.2.1', 'lz4': '4.3.2', 'markdown-it-py': '2.2.0',
'matplotlib': '3.8.4', 'matplotlib-inline': '0.1.6', 'mccabe': '0.7.0', 'mdit-py-plugins':
'0.3.0', 'mdurl': '0.1.0', 'menuinst': '2.1.1', 'mistune': '2.0.4', 'mlflow': '2.19.0',
'mlflow-skinny': '2.19.0', 'more-itertools': '10.1.0', 'mpmath': '1.3.0', 'msgpack':
'1.0.3', 'multidict': '6.0.4', 'multipledispatch': '0.6.0', 'mypy': '1.10.0',
'mypy-extensions': '1.0.0', 'navigator-updater': '0.5.1', 'nbclient': '0.8.0', 'nbconvert':
'7.10.0', 'nbformat': '5.9.2', 'nest-asyncio': '1.6.0', 'networkx': '3.2.1', 'nltk':
'3.8.1', 'notebook': '7.0.8', 'notebook-shim': '0.2.3', 'numba': '0.59.1', 'numexpr':
'2.8.7', 'numpy': '1.26.4', 'numpydoc': '1.7.0', 'openpyxl': '3.1.2', 'opentelemetry-api':
'1.29.0', 'opentelemetry-sdk': '1.29.0', 'opentelemetry-semantic-conventions': '0.50b0',
'orjson': '3.10.15', 'overrides': '7.4.0', 'packaging': '24.2', 'pandas': '2.2.2',
'pandocfilters': '1.5.0', 'panel': '1.4.4', 'param': '2.1.0', 'parsel': '1.8.1', 'parso':
'0.8.3', 'partd': '1.4.1', 'passlib': '1.7.4', 'pathspec': '0.10.3', 'patsy': '0.5.6',
'pexpect': '4.8.0', 'pickleshare': '0.7.5', 'pillow': '10.3.0', 'pip': '24.0', 'pkce':
'1.0.3', 'pkginfo': '1.10.0', 'platformdirs': '3.10.0', 'plotly': '5.22.0', 'pluggy':
'1.0.0', 'ply': '3.11', 'prometheus-client': '0.14.1', 'prompt-toolkit': '3.0.43',
'protobuf': '3.20.3', 'psutil': '5.9.0', 'ptyprocess': '0.7.0', 'pure-eval': '0.2.2',
'pyopenssl': '24.0.0', 'py-cpuinfo': '9.0.0', 'pyarrow': '14.0.2', 'pyasn1': '0.4.8',
'pyasn1-modules': '0.2.8', 'pycodestyle': '2.11.1', 'pycosat': '0.6.6', 'pycparser': '2.21',
'pyct': '0.5.0', 'pycurl': '7.45.2', 'pydantic': '2.8.2', 'pydantic-core': '2.20.1',
'pydantic-settings': '2.7.1', 'pydeck': '0.8.0', 'pydocstyle': '6.3.0', 'pyerfa': '2.0.1.4',
'pyflakes': '3.2.0', 'pylint': '2.16.2', 'pylint-venv': '3.0.3', 'pyls-spyder': '0.4.0',
'pyobjc-core': '10.1', 'pyobjc-framework-cocoa': '10.1', 'pyobjc-framework-coreservices':
'10.1', 'pyobjc-framework-fsevents': '10.1', 'pyodbc': '5.0.1', 'pyparsing': '3.0.9',
'pytest': '7.4.4', 'python-dateutil': '2.9.0.post0', 'python-dotenv': '0.21.0',
'python-json-logger': '2.0.7', 'python-lsp-black': '2.0.0', 'python-lsp-jsonrpc': '1.1.2',
'python-lsp-server': '1.10.0', 'python-multipart': '0.0.20', 'python-rapidjson': '1.14',
'python-slugify': '5.0.2', 'python-snappy': '0.6.1', 'pytoolconfig': '1.2.6', 'pytz':
'2024.1', 'pyviz-comms': '3.0.2', 'pywavelets': '1.5.0', 'pyzmq': '25.1.2', 'qstylizer':
'0.2.2', 'qtconsole': '5.5.1', 'queuelib': '1.6.2', 'referencing': '0.30.2', 'regex':
'2023.10.3', 'requests': '2.32.2', 'requests-file': '1.5.1', 'requests-toolbelt': '1.0.0',
'rfc3339-validator': '0.1.4', 'rfc3986-validator': '0.1.1', 'rich': '13.3.5', 'rope':
'1.12.0', 'rpds-py': '0.10.6', 'rsa': '4.9', 'ruamel.yaml': '0.17.21', 'ruamel-yaml-conda':
'0.17.21', 's3fs': '2024.3.1', 'scikit-image': '0.23.2', 'scikit-learn': '1.4.2', 'scipy':
'1.13.1', 'seaborn': '0.13.2', 'secure': '0.3.0', 'semver': '3.0.2', 'service-identity':
'18.1.0', 'setuptools': '69.5.1', 'sip': '6.7.12', 'six': '1.16.0', 'smart-open': '5.2.1',
'smmap': '4.0.0', 'sniffio': '1.3.0', 'snowballstemmer': '2.2.0', 'sortedcontainers':
'2.4.0', 'soupsieve': '2.5', 'sphinx': '7.3.7', 'sphinxcontrib-applehelp': '1.0.2',
'sphinxcontrib-devhelp': '1.0.2', 'sphinxcontrib-htmlhelp': '2.0.0', 'sphinxcontrib-jsmath':
'1.0.1', 'sphinxcontrib-qthelp': '1.0.3', 'sphinxcontrib-serializinghtml': '1.1.10',
'spyder': '5.5.1', 'spyder-kernels': '2.5.0', 'sqlmodel': '0.0.18', 'sqlparse': '0.5.3',
'stack-data': '0.2.0', 'starlette': '0.36.3', 'statsmodels': '0.14.2', 'streamlit':
'1.32.0', 'sympy': '1.12', 'tables': '3.9.2', 'tabulate': '0.9.0', 'tblib': '1.7.0',
'tenacity': '8.2.2', 'terminado': '0.17.1', 'text-unidecode': '1.3', 'textdistance':
'4.2.1', 'threadpoolctl': '2.2.0', 'three-merge': '0.1.1', 'tifffile': '2023.4.12',
'tinycss2': '1.2.1', 'tldextract': '3.2.0', 'toml': '0.10.2', 'tomli': '2.0.1', 'tomlkit':
'0.11.1', 'toolz': '0.12.0', 'tornado': '6.4.1', 'tqdm': '4.66.4', 'traitlets': '5.14.3',
'truststore': '0.8.0', 'twisted': '23.10.0', 'typing-extensions': '4.11.0', 'tzdata':
'2023.3', 'uc-micro-py': '1.0.1', 'ujson': '5.10.0', 'unicodedata2': '15.1.0',
'uri-template': '1.3.0', 'urllib3': '2.2.2', 'uvicorn': '0.34.0', 'uvloop': '0.21.0',
'w3lib': '2.1.2', 'watchdog': '4.0.1', 'watchfiles': '1.0.4', 'wcwidth': '0.2.5',
'webcolors': '24.11.1', 'webencodings': '0.5.1', 'websocket-client': '1.8.0', 'websockets':
'14.1', 'werkzeug': '3.0.3', 'whatthepatch': '1.0.2', 'wheel': '0.43.0',
'widgetsnbextension': '3.6.6', 'wrapt': '1.14.1', 'wurlitzer': '3.0.2', 'xarray':
'2023.6.0', 'xlwings': '0.31.4', 'xyzservices': '2022.9.0', 'yapf': '0.40.2', 'yarl':
'1.9.3', 'zenml': '0.72.0', 'zict': '3.0.0', 'zipp': '3.17.0', 'zope.interface': '5.4.0',
'zstandard': '0.22.0'}
Note: NumExpr detected 12 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8.
NumExpr defaulting to 8 threads.

CURRENT STACK

Name: my_stack
ID: ff747f2d-390a-44c8-ab59-872b88158b18
User: default / 997e9f9e-c4da-4cd6-8e2a-8f42a611bc73
Workspace: default / f8462b31-60d9-4d3f-b599-3684739e8c66

ORCHESTRATOR: default

Name: default
ID: 8d1f9dcb-eaf2-4fac-a1bc-244e3c22abf7
Type: orchestrator
Flavor: local
Configuration: {}
Workspace: default / f8462b31-60d9-4d3f-b599-3684739e8c66

ARTIFACT_STORE: default

Name: default
ID: e9c74452-2a56-4d9f-97f3-aad675f0e385
Type: artifact_store
Flavor: local
Configuration: {'path': ''}
Workspace: default / f8462b31-60d9-4d3f-b599-3684739e8c66

EXPERIMENT_TRACKER: mlflow_tracker

Name: mlflow_tracker
ID: 6b03adbd-2462-4b10-b6fc-47e1a7cf9ff2
Type: experiment_tracker
Flavor: mlflow
Configuration: {'experiment_name': None, 'nested': False, 'tags': {}, 'tracking_uri': None,
'tracking_username': '', 'tracking_password': '', 'tracking_token':
'********', 'tracking_insecure_tls': False, 'databricks_host': None, 'enable_unity_catalog':
False}
User: default / 997e9f9e-c4da-4cd6-8e2a-8f42a611bc73
Workspace: default / f8462b31-60d9-4d3f-b599-3684739e8c66

What happened?

zenml version: 0.72.0

I was trying to create a new model deployer and add it to my active stack, but I keep getting the same runtime error.

(I do apologise if this is some silly mistake on my end, I'm new to zenml and MLOps)

Thank you in advance!!

Reproduction steps

  1. First I verified that the module zenml.stack.utils exists in my version of zenml:
    Command:
    python -c "import zenml; print(zenml.path)"

Output:
['/opt/anaconda3/lib/python3.12/site-packages/zenml']

Command:
cd /opt/anaconda3/lib/python3.12/site-packages/zenml
ls stack

Output:
init.py flavor.py stack_component.py
pycache flavor_registry.py stack_validator.py
authentication_mixin.py stack.py utils.py
2. Now that I know the module exists, I tried to create the model deployer:
zenml model-deployer register mlflow_deployer --flavor=mlflow

Relevant log output

zenml model-deployer register mlflow_deployer --flavor=mlflow

╭─────────────────────────── Traceback (most recent call last) ────────────────────────────╮
│ /opt/anaconda3/bin/zenml:8 in <module>                                                   │
│                                                                                          │
│   5 from zenml.cli.cli import cli                                                        │
│   6 if __name__ == '__main__':                                                           │
│   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])                 │
│ ❱ 8 │   sys.exit(cli())                                                                  │
│   9                                                                                      │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/click/core.py:1130 in __call__               │
│                                                                                          │
│   1127 │                                                                                 │
│   1128 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                   │
│   1129 │   │   """Alias for :meth:`main`."""                                             │
│ ❱ 1130 │   │   return self.main(*args, **kwargs)                                         │
│   1131                                                                                   │
│   1132                                                                                   │
│   1133 class Command(BaseCommand):                                                       │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/click/core.py:1055 in main                   │
│                                                                                          │
│   1052 │   │   try:                                                                      │
│   1053 │   │   │   try:                                                                  │
│   1054 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:          │
│ ❱ 1055 │   │   │   │   │   rv = self.invoke(ctx)                                         │
│   1056 │   │   │   │   │   if not standalone_mode:                                       │
│   1057 │   │   │   │   │   │   return rv                                                 │
│   1058 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                       │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/click/core.py:1657 in invoke                 │
│                                                                                          │
│   1654 │   │   │   │   super().invoke(ctx)                                               │
│   1655 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)            │
│   1656 │   │   │   │   with sub_ctx:                                                     │
│ ❱ 1657 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))       │
│   1658 │   │                                                                             │
│   1659 │   │   # In chain mode we create the contexts step by step, but after the        │
│   1660 │   │   # base command has been invoked.  Because at that point we do not         │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/click/core.py:1657 in invoke                 │
│                                                                                          │
│   1654 │   │   │   │   super().invoke(ctx)                                               │
│   1655 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)            │
│   1656 │   │   │   │   with sub_ctx:                                                     │
│ ❱ 1657 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))       │
│   1658 │   │                                                                             │
│   1659 │   │   # In chain mode we create the contexts step by step, but after the        │
│   1660 │   │   # base command has been invoked.  Because at that point we do not         │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/click/core.py:1404 in invoke                 │
│                                                                                          │
│   1401 │   │   │   echo(style(message, fg="red"), err=True)                              │
│   1402 │   │                                                                             │
│   1403 │   │   if self.callback is not None:                                             │
│ ❱ 1404 │   │   │   return ctx.invoke(self.callback, **ctx.params)                        │
│   1405 │                                                                                 │
│   1406 │   def shell_complete(self, ctx: Context, incomplete: str) -> t.List["Completion │
│   1407 │   │   """Return a list of completions for the incomplete value. Looks           │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/click/core.py:760 in invoke                  │
│                                                                                          │
│    757 │   │                                                                             │
│    758 │   │   with augment_usage_errors(__self):                                        │
│    759 │   │   │   with ctx:                                                             │
│ ❱  760 │   │   │   │   return __callback(*args, **kwargs)                                │
│    761 │                                                                                 │
│    762 │   def forward(                                                                  │
│    763 │   │   __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any  # noqa: B902     │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/cli/stack_components.py:274 in         │
│ register_stack_component_command                                                         │
│                                                                                          │
│    271 │   │                                                                             │
│    272 │   │   with console.status(f"Registering {display_name} '{name}'...\n"):         │
│    273 │   │   │   # Create a new stack component model                                  │
│ ❱  274 │   │   │   component = client.create_stack_component(                            │
│    275 │   │   │   │   name=name,                                                        │
│    276 │   │   │   │   flavor=flavor,                                                    │
│    277 │   │   │   │   component_type=component_type,                                    │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/client_lazy_loader.py:211 in _inner    │
│                                                                                          │
│   208 │   │   │   │   │   with contextlib.suppress(ValueError):                          │
│   209 │   │   │   │   │   │   kwargs[k] = ClientLazyLoader(**v).evaluate()               │
│   210 │   │   │                                                                          │
│ ❱ 211 │   │   │   return func(*args_, **kwargs)                                          │
│   212 │   │                                                                              │
│   213 │   │   return _inner                                                              │
│   214                                                                                    │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/client.py:2026 in                      │
│ create_stack_component                                                                   │
│                                                                                          │
│   2023 │   │   )                                                                         │
│   2024 │   │                                                                             │
│   2025 │   │   # Register the new model                                                  │
│ ❱ 2026 │   │   return self.zen_store.create_stack_component(                             │
│   2027 │   │   │   component=create_component_model                                      │
│   2028 │   │   )                                                                         │
│   2029                                                                                   │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/zen_stores/rest_zen_store.py:1249 in   │
│ create_stack_component                                                                   │
│                                                                                          │
│   1246 │   │   Returns:                                                                  │
│   1247 │   │   │   The created stack component.                                          │
│   1248 │   │   """
│ ❱ 1249 │   │   return self._create_workspace_scoped_resource(                            │
│   1250 │   │   │   resource=component,                                                   │
│   1251 │   │   │   route=STACK_COMPONENTS,                                               │
│   1252 │   │   │   response_model=ComponentResponse,                                     │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/zen_stores/rest_zen_store.py:4624 in   │
│ _create_workspace_scoped_resource                                                        │
│                                                                                          │
│   4621 │   │   Returns:                                                                  │
│   4622 │   │   │   The created resource.                                                 │
│   4623 │   │   """                                                                       │
│ ❱ 4624 │   │   return self._create_resource(                                             │
│   4625 │   │   │   resource=resource,                                                    │
│   4626 │   │   │   response_model=response_model,                                        │
│   4627 │   │   │   route=f"{WORKSPACES}/{str(resource.workspace)}{route}",               │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/zen_stores/rest_zen_store.py:4567 in   │
│ _create_resource                                                                         │
│                                                                                          │
│   4564 │   │   Returns:                                                                  │
│   4565 │   │   │   The created resource.                                                 │
│   4566 │   │   """
│ ❱ 4567 │   │   response_body = self.post(f"{route}", body=resource, params=params)       │
│   4568 │   │                                                                             │
│   4569 │   │   return response_model.model_validate(response_body)                       │
│   4570                                                                                   │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/zen_stores/rest_zen_store.py:4506 in   │
│ post                                                                                     │
│                                                                                          │
│   4503 │   │   │   The response body.                                                    │
│   4504 │   │   """                                                                       │
│   4505 │   │   logger.debug(f"Sending POST request to {path}...")                        │
│ ❱ 4506 │   │   return self._request(                                                     │
│   4507 │   │   │   "POST",                                                               │
│   4508 │   │   │   self.url + API + VERSION_1 + path,                                    │
│   4509 │   │   │   json=body.model_dump(mode="json"),                                    │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/zen_stores/rest_zen_store.py:4379 in   │
│ _request                                                                                 │
│                                                                                          │
│   4376 │   │   re_authenticated = False                                                  │
│   4377 │   │   while True:                                                               │
│   4378 │   │   │   try:                                                                  │
│ ❱ 4379 │   │   │   │   return self._handle_response(                                     │
│   4380 │   │   │   │   │   self.session.request(                                         │
│   4381 │   │   │   │   │   │   method,                                                   │
│   4382 │   │   │   │   │   │   url,                                                      │
│                                                                                          │
│ /opt/anaconda3/lib/python3.12/site-packages/zenml/zen_stores/rest_zen_store.py:4320 in   │
│ _handle_response                                                                         │
│                                                                                          │
│   4317 │   │   elif response.status_code >= 400:                                         │
│   4318 │   │   │   exc = exception_from_response(response)                               │
│   4319 │   │   │   if exc is not None:                                                   │
│ ❱ 4320 │   │   │   │   raise exc                                                         │
│   4321 │   │   │   else:                                                                 │
│   4322 │   │   │   │   raise RuntimeError(                                               │
│   4323 │   │   │   │   │   f"{response.status_code} HTTP Error received from server: "   │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
RuntimeError: No module named 'zenml.stack.utils'

Code of Conduct

  • I agree to follow this project's Code of Conduct
@frznprograms frznprograms added the bug Something isn't working label Jan 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant