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

FileDownload does not work with fast-design #6473

Closed
hoxbro opened this issue Mar 11, 2024 · 3 comments · Fixed by #6474
Closed

FileDownload does not work with fast-design #6473

hoxbro opened this issue Mar 11, 2024 · 3 comments · Fixed by #6474
Milestone

Comments

@hoxbro
Copy link
Member

hoxbro commented Mar 11, 2024

import panel as pn

pn.extension(design="fast")  # Works without this
pn.widgets.FileDownload().servable()

Traceback:

AttributeError: 'FileDownload.param' object has no attribute 'value'

Traceback (most recent call last):
  File "/home/shh/miniconda3/envs/holoviz/lib/python3.12/site-packages/bokeh/application/handlers/code_runner.py", line 229, in run
    exec(self._code, module.__dict__)
  File "/home/shh/Development/holoviz/example_download_widgets.py", line 4, in <module>
    pn.widgets.FileDownload().servable()
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 399, in servable
    self.server_doc(title=title, location=location) # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 1038, in server_doc
    wrapper = self._design._wrapper(self)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/panel/panel/theme/fast.py", line 261, in _wrapper
    return FastWrapper(design=None, object=model, style=self.theme.style)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/panel/panel/reactive.py", line 1610, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/reactive.py", line 555, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/reactive.py", line 117, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 704, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 543, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 304, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 4177, in __init__
    refs, deps = self.param._setup_params(**params)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 1683, in override_initialization
    ret = fn(self_, *args, **kw)
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 1967, in _setup_params
    ref, ref_deps, resolved, is_async = self_._resolve_ref(pobj, val)
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 2033, in _resolve_ref
    deps = resolve_ref(value, recursive=pobj.nested_refs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 202, in resolve_ref
    reference = transform_reference(reference)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 148, in transform_reference
    arg = transform(arg)
          ^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/panel/panel/widgets/base.py", line 255, in _widget_transform
    return obj.param.value if isinstance(obj, Widget) else obj
           ^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 1890, in __getattr__
    raise AttributeError(f"'{self_.cls.__name__}.param' object has no attribute {attr!r}")
AttributeError: 'FileDownload.param' object has no attribute 'value'. Did you mean: 'values'?
@hoxbro hoxbro added the TRIAGE Default label for untriaged issues label Mar 11, 2024
@philippjfr philippjfr added this to the v1.4.0 milestone Mar 11, 2024
@philippjfr philippjfr added type: bug and removed TRIAGE Default label for untriaged issues labels Mar 11, 2024
@hoxbro
Copy link
Member Author

hoxbro commented Mar 11, 2024

Button also break it: pn.widgets.Button(name="Button").servable()

ValueError: ClassSelector parameter 'ReactiveHTMLMetaclass.object' value must be an instance of Viewable, not False.

Traceback (most recent call last):
  File "/home/shh/miniconda3/envs/holoviz/lib/python3.12/site-packages/bokeh/application/handlers/code_runner.py", line 229, in run
    exec(self._code, module.__dict__)
  File "/home/shh/Development/holoviz/example_download_widgets.py", line 16, in <module>
    pn.widgets.Button(name="Button").servable()
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 399, in servable
    self.server_doc(title=title, location=location) # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 1038, in server_doc
    wrapper = self._design._wrapper(self)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/panel/panel/theme/fast.py", line 261, in _wrapper
    return FastWrapper(design=None, object=model, style=self.theme.style)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/panel/panel/reactive.py", line 1610, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/reactive.py", line 555, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/reactive.py", line 117, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 704, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 543, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/panel/panel/viewable.py", line 304, in __init__
    super().__init__(**params)
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 4177, in __init__
    refs, deps = self.param._setup_params(**params)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 1683, in override_initialization
    ret = fn(self_, *args, **kw)
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 1972, in _setup_params
    setattr(self, name, resolved)
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 528, in _f
    return f(self, obj, val)
           ^^^^^^^^^^^^^^^^^
  File "/home/shh/projects/holoviz/repos/param/param/parameterized.py", line 1495, in __set__
    self._validate(val)
  File "/home/shh/projects/holoviz/repos/param/param/parameters.py", line 2182, in _validate
    self._validate_class_(val, self.class_, self.is_instance)
  File "/home/shh/projects/holoviz/repos/param/param/parameters.py", line 2193, in _validate_class_
    raise ValueError(
ValueError: ClassSelector parameter 'ReactiveHTMLMetaclass.object' value must be an instance of Viewable, not False.

@hoxbro
Copy link
Member Author

hoxbro commented Mar 11, 2024

Did you also test the second case?

@philippjfr
Copy link
Member

No, but it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants