issues with brython --make_package

79 views
Skip to first unread message

dgront

unread,
Aug 19, 2021, 1:48:22 PM8/19/21
to bry...@googlegroups.com
Hi,

 I try to make a .js package for my VL library.  Brython 3.9.0 produces 200KB file, while Brython 3.9.5 - over 6MB! The reason is that the 3.9.5 includes also .js files. Most notably, it includes also the previous version of the visualife.brython.js file that is located in the working directory.

Is there any chance to have a command line switch in bryhon-cli command to skip all .js files?

Also, in my opinion the output file should never be included as input.

Best,
Dominik

Ray Luo

unread,
Aug 26, 2021, 4:08:46 AM8/26/21
to brython
Hey Dominik,

How did you build your .js package? If you were using brython-cli, AFAIK it does not maintain a clear boundary of your project, so it could unwittingly include all Python files inside current work directory, which would become huge if your current work directory happens to contain a big virtual environment. I used to encounter similar issue like this: https://github.com/brython-dev/brython/issues/1603

But I found a better solution for it. Nowadays, I use the Brip to convert my pure Python package into a Brython-ready js file. https://github.com/rayluo/brip#recipe-for-brython-friendly-packages-maintainers

I clone VirtualLife just now, and pack it into js by brip. The output file I got is 272KB. Getting close to your "200KB file". Give it a shot.

P.S.: Now, I do have an off-topic question for you. Where can I find the more complete code for your Live Demo at https://visualife.readthedocs.io/en/latest/doc/live_demo.html ?  I found its immediate source code, which uses a VLScriptWidget helper, but that helper does not seem to be mentioned/available in VisuaLife document and code base. If possible, I would like to reuse that work to convert my old Python tutorial markdown files into a live tutorial powered by Brython. Thanks in advance.

Regards,
Ray Luo

dgront

unread,
Aug 26, 2021, 4:35:51 AM8/26/21
to bry...@googlegroups.com
Hi Ray,

I want to keep VisuaLife distribution small and include only files that might be useful for general users. VLScriptWidget was originally created to display, edit and run scripts for my online Python course. If you think it makes sense, I can publish it somehow.

Let me know if it works for you.

Best,
Dominik Gront


--
You received this message because you are subscribed to the Google Groups "brython" group.
To unsubscribe from this group and stop receiving emails from it, send an email to brython+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/brython/62d96941-d89b-49c1-af78-6c0dec2c690fn%40googlegroups.com.

Pierre Quentel

unread,
Aug 26, 2021, 1:34:20 PM8/26/21
to bry...@googlegroups.com
Hello Dominik,

I can't reproduce this behaviour, the generated file size is 277 kB:

Microsoft Windows [version 10.0.19043.1165]
(c) Microsoft Corporation. Tous droits réservés.

C:\Users\PC>e:

E:\>cd brython/visualife

E:\brython\visualife>cd visualife

E:\brython\visualife\visualife>brython-cli --make_package visualife
Generating package visualife
adding visualife package True
adding visualife.calc.DataBins2D package False
adding visualife.calc.Histogram package False
adding visualife.calc.Histogram2D package False
adding visualife.calc.math_utils package False
adding visualife.calc package True
adding visualife.core.axes package False
adding visualife.core.CanvasViewport package False
adding visualife.core.DraggablePlot package False
adding visualife.core.Feature2D package False
adding visualife.core.HtmlViewport package False
adding visualife.core.Plot package False
adding visualife.core.shapes package False
adding visualife.core.styles package False
adding visualife.core.SvgViewport package False
adding visualife.core package True
adding visualife.core.three_d.MoleculePanel package False
adding visualife.core.three_d.Svg3DPanel package False
adding visualife.core.three_d package True
adding visualife.data.Atom package False
adding visualife.data.Bond package False
adding visualife.data.Chain package False
adding visualife.data.HSSP package False
adding visualife.data.Molecule package False
adding visualife.data.pdb_utils package False
adding visualife.data.read_mol package False
adding visualife.data.read_pdb package False
adding visualife.data.read_sequences package False
adding visualife.data.read_trees package False
adding visualife.data.Residue package False
adding visualife.data.ScoreFile package False
adding visualife.data.Structure package False
adding visualife.data package True
adding visualife.diagrams.CircularDendrogram package False
adding visualife.diagrams.DendrogramLayout package False
adding visualife.diagrams.Diagram package False
adding visualife.diagrams.InteractiveDiagram package False
adding visualife.diagrams.TreeLayout package False
adding visualife.diagrams.TreeNode package False
adding visualife.diagrams.tree_utils package False
adding visualife.diagrams.TriangularLayout package False
adding visualife.diagrams package True
adding visualife.serverside.utils package False
adding visualife.serverside package True
adding visualife.utils.html_utils package False
adding visualife.utils.text_utils package False
adding visualife.utils package True
adding visualife.widget.AbstractWidget package False
adding visualife.widget.FileReaderWidget package False
adding visualife.widget.GLViewerWidget package False
adding visualife.widget.MSAViewer package False
adding visualife.widget.SecondaryStructureViewer package False
adding visualife.widget.SequenceFeaturesBar package False
adding visualife.widget.SequenceViewer package False
adding visualife.widget.StructureViewer package False
adding visualife.widget.TableWidget package False
adding visualife.widget.TooltipWidget package False
adding visualife.widget package True
58 files
done

E:\brython\visualife\visualife>dir
 Le volume dans le lecteur E s’appelle Acer
 Le numéro de série du volume est 263B-C1F0

 Répertoire de E:\brython\visualife\visualife

26/08/2021  19:24    <DIR>          .
26/08/2021  19:24    <DIR>          ..
26/08/2021  19:24    <DIR>          calc
26/08/2021  19:24    <DIR>          core
26/08/2021  19:24    <DIR>          data
26/08/2021  19:24    <DIR>          diagrams
26/08/2021  19:24    <DIR>          external_libs
26/08/2021  19:24                47 make_vl_js.sh
26/08/2021  19:24    <DIR>          serverside
26/08/2021  19:24    <DIR>          utils
26/08/2021  19:28           277 536 visualife.brython.js
26/08/2021  19:24    <DIR>          widget
26/08/2021  19:24               147 __init__.py
               3 fichier(s)          277 730 octets
              10 Rép(s)  353 122 738 176 octets libres

E:\brython\visualife\visualife>

 
I suppose that there are many other files logged when you execute brython-cli --make_package visualife ?

Best,
Pierre

Ray Luo

unread,
Aug 26, 2021, 10:01:43 PM8/26/21
to brython
I want to clarify that, the visualife.js file that I got, had 278050 bytes, which was very close to what Pierre got at 277536 bytes. (They are both 272KB, while 1KB=1024 bytes.) Under the hood, brip still uses brython-cli to generate the .js file, so the output would be effectively the same.

The potential issue when directly using brython-cli, is that it makes an assumption that "every python file in current directory and its sub-directory belong to this project". That was the reason for https://github.com/brython-dev/brython/issues/1603

Brip bypasses such an issue, by always creating a new, empty, temporary directory, and setup a clean environment there with only the specified packages, then brip will call brython-cli to finish the actual .py->.js conversion.

Regards,
Ray

dgront

unread,
Sep 13, 2021, 6:55:29 AM9/13/21
to bry...@googlegroups.com
I'm still experiencing the problem on Brython. I have a folder with .js external libraries and they are include in the distribution package as shown below

BTW it would be great to have "brython-cli -v" and "brython-cli --version" option to quickly check what version of Brython do I have ...

Best,
Dominik

mbp:~/src.git/visualife/visualife $brython-cli --make_package visualife
Generating package visualife
adding visualife.visualife.brython package False
adding visualife package True
adding visualife.serverside package True
adding visualife.serverside.utils package False

adding visualife.core.Plot package False
adding visualife.core.shapes package False
adding visualife.core.HtmlViewport package False
adding visualife.core.Feature2D package False
adding visualife.core.CanvasViewport package False

adding visualife.core.SvgViewport package False
adding visualife.core package True
adding visualife.core.DraggablePlot package False
adding visualife.core.styles package False
adding visualife.core.axes package False
adding visualife.core.three_d package True
adding visualife.core.three_d.Svg3DPanel package False
adding visualife.core.three_d.MoleculePanel package False
adding visualife.widget.FileReaderWidget package False
adding visualife.widget.SecondaryStructureViewer package False
adding visualife.widget.AbstractWidget package False
adding visualife.widget.SequenceFeaturesBar package False
adding visualife.widget package True
adding visualife.widget.StructureViewer package False
adding visualife.widget.GLViewerWidget package False

adding visualife.widget.TableWidget package False
adding visualife.widget.TooltipWidget package False
adding visualife.widget.SequenceViewer package False
adding visualife.widget.MSAViewer package False
adding visualife.diagrams.TreeLayout package False
adding visualife.diagrams.CircularDendrogram package False
adding visualife.diagrams.Diagram package False
adding visualife.diagrams package True

adding visualife.diagrams.TreeNode package False
adding visualife.diagrams.tree_utils package False
adding visualife.diagrams.DendrogramLayout package False
adding visualife.diagrams.InteractiveDiagram package False
adding visualife.diagrams.TriangularLayout package False
adding visualife.utils.text_utils package False
adding visualife.utils.html_utils package False
adding visualife.utils package True

adding visualife.calc.Histogram2D package False
adding visualife.calc.math_utils package False
adding visualife.calc.DataBins2D package False
adding visualife.calc.Histogram package False
adding visualife.calc package True
adding visualife.external_libs.three.min package False
adding visualife.external_libs.brython_stdlib package False
adding visualife.external_libs.3Dmol-min package False
adding visualife.external_libs.brython package False
adding visualife.external_libs.OrbitControls package False
adding visualife.data.Molecule package False
adding visualife.data.Chain package False
adding visualife.data.read_sequences package False
adding visualife.data package True

adding visualife.data.Residue package False
adding visualife.data.ScoreFile package False
adding visualife.data.read_trees package False
adding visualife.data.Structure package False
adding visualife.data.Bond package False
adding visualife.data.read_mol package False
adding visualife.data.Atom package False
adding visualife.data.HSSP package False
adding visualife.data.pdb_utils package False
adding visualife.data.read_pdb package False
64 files
done
mbp:~/src.git/visualife/visualife $

--
You received this message because you are subscribed to the Google Groups "brython" group.
To unsubscribe from this group and stop receiving emails from it, send an email to brython+u...@googlegroups.com.

Pierre Quentel

unread,
Sep 22, 2021, 3:38:30 PM9/22/21
to brython
This time I could reproduce the issue. In commit https://github.com/brython-dev/brython/commit/db2f2a50d834bb63c34662be3fc8e80145d87dc9 I have changed the program to only include scripts with extension .py, and the option --version.
This will be available in the next release, due in a few days
- Pierre
Reply all
Reply to author
Forward
0 new messages