Try out Panel Sharing

Hi HoloViz Community

It is now possible to share your code and data apps with the world in less than a minute via Awesome Panel Sharing. For me this is a dream come True. I hope it is for you as well.

Please try it out at awesome-panel.org/sharing. It is now functional. I hope you like it.

If I’ve ever helped you, I hope you will consider giving a little bit back. Please try it out and provide feedback at github/awesome-panel/panel-sharing. It will help me and our community so much. Thanks.

You can create and share apps like @sophiamyang NLP App. But your apps does not have to be this advanced. Just something a little bit unique and useful.

App: https://sharing.awesome-panel.org/sophiamyang/NLP/app.html
Code: https://awesome-panel.org/sharing?app=sophiamyang%2FNLP

image

I hope we can build a cool community gallery of code and apps there.

image.

Please share your feedback here.

If you don’t want to share your app with the world and add it to the gallery. It is also possible to just convert your app and get a long base64 encoded url back. This link is great for sharing on Stackoverflow or Discourse. Your code will only live on the awesome-panel.org server temporarily but will be useful as long as Awesome Panel Sharing is alive.

Example base64 url

image

For more info check out the user guide

@philippjfr @jbednar @Hoxbro @maximlt @droumis @jstevens @sophiamyang @xavArtley @nghenzi @carl @Arifin @ahuang11 @CongTang @CrashLandonB @dwr-psandhu @ea42gh @greg_nordin @govinda18 @hyamanieu @ingebert @ianthomas23 @Khalilsqu @khannaum @madeline-scyphers @ncvangilse @rsignell @StuckDuckF @tomascsantos @Vivek @zartarr88

7 Likes

Thanks, Marc for sharing. I am just beginning I just got Panel working last week with Carl’s help. I hope to contribute in near future.

1 Like

Hi Marc, great initiative. Are custom requirements supported yet?

1 Like

Yes. Custom requirements are supported. But unfortunately, any requirement need to be installed on the server in order for Panel to be able to convert them. @philippjfr knows the technical reasons why.

Please note that panel convert will try by itself to determine the requirements. So often it’s not needed to specify them.

Could you share a list of the requirements you need? Then I will get them installed. Thanks.

My guess is though that some of your requirements like cartopy and cython would not be supported by Pyodide.

1 Like

Thank you. I was thinking of sharing some examples using ogd-at-lab/environment.yml at main · anitagraser/ogd-at-lab · GitHub

1 Like

This is cool! My initial feedback is that there’s a lot of text, and I was confused about how to get started with it (although now I see the user guide: panel-sharing/user-guide.md at main · awesome-panel/panel-sharing · GitHub)

Excited to do something with this later!

2 Likes

I am trying to get this published, but missing a few requirements (httpx + prefect + maybe bs4?)

I tried replacing httpx with requests and removing Prefect decorators, but I encounter another error; after refreshing a few times, I think the server crashed.

1 Like

Hi @anitagraser

I’ve tried importing packages in the pyodide repl via micropip.

>>> import micropip
>>> await micropip.install('name-of-package')

The packages below don’t install

Maybe @raybellwaves would know how to get Moving Pandas running on pyodide?

1 Like

Hi @ahuang11

Thanks for trying it out and reporting back. I will look at it now.

Hi @ahuang11

I think the main challenge will be prefects dependency on for example orjson. It seems not installable in pyodide yet.

https://pyodide.org/en/stable/console.html

If you remove the prefect stuff (?) and use the workaround in Document how to request data from urls when using panel convert · Issue #4111 · holoviz/panel · GitHub for http requests, I think it should be possible to get working.

I’ve added prefect and beautifulsoup4 to the requirements of awesome-panel.org. I will release in ~15minutes. At least that should make experimentation possible.

1 Like

Okay, I tried sharing again, but I encounter: “Failed to convert:”.

The code is here: panel-prefect-stats/main.py at main · ahuang11/panel-prefect-stats · GitHub

I’m curious if you know how straightforward it is to build pure Python 3 wheels for packages? It’s really impressive that the entire HoloViz ecosystem can be hosted through pyodide / pyscript, and I wonder if each package was updated to have a wheel built? Is there a guide I can follow?

1 Like

If you have structured your python project as a python package then using python -m build will build you a nice wheel file for distribution on pypi.

1 Like