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

Unable to create a new nbdev project, concurrency issues? [Mac, 3.12.2] #1443

Open
steckoverflow opened this issue Sep 10, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@steckoverflow
Copy link

steckoverflow commented Sep 10, 2024

macOS: 14.6.1
Python: 3.12.2

Tried both with global install and fresh clean virtual environment.

First pip install nbdev (successfull)
Then when I run nbdev_new

`repo = nbdev_test # Automatically inferred from git
branch = main # Automatically inferred from git
user = steckoverflow # Automatically inferred from git
author = # Automatically inferred from git
author_email = # Automatically inferred from git
description = nbdev test # Automatically inferred from git
settings.ini created.
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/IPython/core/formatters.py", line 226, in catch_format_error
r = method(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/IPython/core/formatters.py", line 347, in call
return method()
^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/showdoc.py", line 170, in repr_markdown
src = NbdevLookup().code(self.fn)
^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/doclinks.py", line 212, in init
self.entries = {o.name: _qual_syms(o.resolve()) for o in list(pkg_resources.iter_entry_points(group='nbdev'))
^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/pkg_resources/init.py", line 2752, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fasthtml/init.py", line 2, in
from .core import *
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fasthtml/core.py", line 14, in
from .xtend import *
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fasthtml/xtend.py", line 22, in
picolink = (Link(rel="stylesheet", href=picocss),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fasthtml/components.py", line 53, in ft_hx
return ft_html(tag, *c, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fasthtml/components.py", line 45, in ft_html
tag,c,kw = ft(tag, *c, **kwargs)
^^^^^^^^
ValueError: not enough values to unpack (expected 3, got 0)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/concurrent/futures/process.py", line 263, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/concurrent/futures/process.py", line 212, in _process_chunk
return [fn(*args) for args in chunk]
^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fastcore/parallel.py", line 63, in _call
return g(item)
^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/serve_drv.py", line 22, in main
if src.suffix=='.ipynb': exec_nb(src, dst, x)
^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/serve_drv.py", line 16, in exec_nb
cb()(nb)
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/processors.py", line 291, in call
def call(self, nb): return self.nb_proc(nb).process()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/process.py", line 129, in process
for proc in self.procs: self._proc(proc)
^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/process.py", line 122, in _proc
for cell in self.nb.cells: self._process_cell(proc, cell)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/process.py", line 113, in _process_cell
if callable(proc) and not is_direc(proc): cell = opt_set(cell, proc(cell))
^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/processors.py", line 252, in call
raise Exception(f"Error{' in notebook: '+title if title else ''} in cell {cell.idx
} :\n{cell.source}") from self.k.exc[1]
Exception: Error in notebook: core in cell 5 :
#| echo: false
#| output: asis
show_doc(foo)
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/ts/.pyenv/versions/3.12.2/bin/nbdev_new", line 8, in
sys.exit(nbdev_new())
^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fastcore/script.py", line 121, in _f
return tfunc(**merge(args, args_from_prog(func, xtra)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/cli.py", line 119, in nbdev_new
nbdev_readme.wrapped()
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/quarto.py", line 265, in nbdev_readme
cache = proc_nbs(path)
^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/nbdev/serve.py", line 79, in proc_nbs
parallel(nbdev.serve_drv.main, files, n_workers=n_workers, pause=0.01, **kw)
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fastcore/parallel.py", line 134, in parallel
return L(r)
^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fastcore/foundation.py", line 100, in call
return super().call(x, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fastcore/foundation.py", line 108, in init
items = listify(items, *rest, use_list=use_list, match=match)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/site-packages/fastcore/basics.py", line 70, in listify
elif is_iter(o): res = list(o)
^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/concurrent/futures/process.py", line 642, in _chain_from_iterable_of_lists
for element in iterable:
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/concurrent/futures/_base.py", line 619, in result_iterator
yield _result_or_cancel(fs.pop())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/concurrent/futures/_base.py", line 317, in _result_or_cancel
return fut.result(timeout)
^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/Users/ts/.pyenv/versions/3.12.2/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
Exception: Error in notebook: core in cell 5 :
#| echo: false
#| output: asis
show_doc(foo)`

I have exported a GITHUB_TOKEN with generous permissions. Any pointers?

@steckoverflow steckoverflow added the bug Something isn't working label Sep 10, 2024
@steckoverflow steckoverflow changed the title Unable to create a new nbdev project. Unable to create a new nbdev project, concurrency issues? [Mac, 3.12.2] Sep 10, 2024
@Rahuketu86
Copy link

Have the same issue on MAC /opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/nbdev/processors.py:233: UserWarning: Found cells containing imports and other code. See FAQ.

import streamlit_jupyter
streamlit_jupyter.version

warn(f'Found cells containing imports and other code. See FAQ.\n---\n{cell.source}\n---\n')
concurrent.futures.process.RemoteTraceback:
"""
Traceback (most recent call last):
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/process.py", line 261, in process_worker
r = call_item.fn(*call_item.args, call_item.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/process.py", line 210, in _process_chunk
return [fn(*args) for args in chunk]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/process.py", line 210, in
return [fn(*args) for args in chunk]
^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/fastcore/parallel.py", line 63, in _call
return g(item)
^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/nbdev/serve_drv.py", line 22, in main
if src.suffix=='.ipynb': exec_nb(src, dst, x)
^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/nbdev/serve_drv.py", line 17, in exec_nb
write_nb(nb, dst)
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 95, in write_nb
new = nb2str(nb)
^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 89, in nb2str
if isinstance(nb, (AttrDict,list)): nb = nb2dict(nb)
^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in nb2dict
return dict(
{k:nb2dict(v,k) for k,v in d.items() if k[-1] != '
'})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in
return dict(**{k:nb2dict(v,k) for k,v in d.items() if k[-1] != '
'})
^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 82, in nb2dict
if isinstance(d, list): return list(map(nb2dict,d))
^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in nb2dict
return dict({k:nb2dict(v,k) for k,v in d.items() if k[-1] != '_'})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in
return dict(
{k:nb2dict(v,k) for k,v in d.items() if k[-1] != ''})
^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 82, in nb2dict
if isinstance(d, list): return list(map(nb2dict,d))
^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in nb2dict
return dict(**{k:nb2dict(v,k) for k,v in d.items() if k[-1] != '
'})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in
return dict({k:nb2dict(v,k) for k,v in d.items() if k[-1] != '_'})
^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in nb2dict
return dict(
{k:nb2dict(v,k) for k,v in d.items() if k[-1] != ''})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in
return dict(**{k:nb2dict(v,k) for k,v in d.items() if k[-1] != '
'})
^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in nb2dict
return dict({k:nb2dict(v,k) for k,v in d.items() if k[-1] != '_'})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in
return dict(
{k:nb2dict(v,k) for k,v in d.items() if k[-1] != ''})
^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 82, in nb2dict
if isinstance(d, list): return list(map(nb2dict,d))
^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in nb2dict
return dict(**{k:nb2dict(v,k) for k,v in d.items() if k[-1] != '
'})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in
return dict({k:nb2dict(v,k) for k,v in d.items() if k[-1] != '_'})
^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in nb2dict
return dict(
{k:nb2dict(v,k) for k,v in d.items() if k[-1] != ''})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 84, in
return dict(**{k:nb2dict(v,k) for k,v in d.items() if k[-1] != '
'})
^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/execnb/nbio.py", line 81, in nb2dict
if k=='source': return d.splitlines(keepends=True)
^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'splitlines'
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/opt/homebrew/Caskroom/miniforge/base/envs/AutoMLOps/bin/nbdev_proc_nbs", line 8, in
sys.exit(nbdev_proc_nbs())
^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/fastcore/script.py", line 121, in _f
return tfunc(**merge(args, args_from_prog(func, xtra)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/nbdev/quarto.py", line 214, in nbdev_proc_nbs
_pre_docs(**kwargs)[0]
^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/nbdev/quarto.py", line 206, in _pre_docs
cache = proc_nbs(path, n_workers=n_workers, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/nbdev/serve.py", line 79, in proc_nbs
parallel(nbdev.serve_drv.main, files, n_workers=n_workers, pause=0.01, **kw)
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/fastcore/parallel.py", line 134, in parallel
return L(r)
^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/fastcore/foundation.py", line 100, in call
return super().call(x, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/fastcore/foundation.py", line 108, in init
items = listify(items, *rest, use_list=use_list, match=match)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/site-packages/fastcore/basics.py", line 70, in listify
elif is_iter(o): res = list(o)
^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/process.py", line 620, in _chain_from_iterable_of_lists
for element in iterable:
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/_base.py", line 619, in result_iterator
yield _result_or_cancel(fs.pop())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/_base.py", line 317, in _result_or_cancel
return fut.result(timeout)
^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/miniforge/base/envs/automlops/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
AttributeError: 'list' object has no attribute 'splitlines'

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

2 participants