๐Ÿโฉ๐ŸŽ SFPPylite๐ŸŒ - directly in your browser
GitHub SFPPy
v1.40 ๐Ÿ“ฉ

๐Ÿ SFPPy-Lite ๐ŸŒ

SFPPy: A Python Framework for Food Contact Compliance & Risk Assessment
๐Ÿโฉ๐ŸŽ SFPPy-Lite runs entirely in your browser โ€” no server, no install, fully operational!

 

๐Ÿงช Try it online!

 


ู€ู€ู€ู€ู€ู€ู€ู€ู€ู€ู€ู€ู€ู€ู€๏ฎฉูจู€Status: moved from ๐Ÿšง Demo to ๐ŸŸข Ready for Production

Warning

๐Ÿ’ก Start Here: Launch the notebook demo.ipynb to begin (or watch the video walkthrough).

โœ… All components are now operational, including notebooks under ๐Ÿ“‚Notebooks/, as well as graphical interfaces, simulation, plotting, curve fitting, and export to PDF/XLSX.

โฑ๏ธ SFPPyLite runs at approximately half the speed ๐ŸŒ— of the desktop version. However, all notebooks execute in under one minute. This performance is sufficient for practical use, with the caveat that native in-browser execution (via Pyodide/WebAssembly) imposes some limitations.

๐Ÿชง๐ŸŒ The full ๐Ÿ‡ช๐Ÿ‡บ Annex I of Regulation (EU) 10/2011 is included and searchable.

๐Ÿšฉ PubChem substance retrieval is partially functional: the module private.pubchemspy has been adapted for JupyterLite, but write operations may fail due to incompatibilities between Pyodide and IndexedDB, the browserโ€™s internal filesystem.

โŒ ToxTree is not supported, as it cannot currently be compiled to WebAssembly.

 


๐Ÿ’พ Storage in SFPPylite

Note

๐Ÿ—ƒ๏ธ Files (notebooks, scripts, data, etc.) are persistently stored across sessions in your browser. Your data is safe, unless you're working in incognito/private mode. You can also drop your own files into the left panel or download existing ones.
โš™๏ธPress CTRL+J to access development tools in your browser and select Application to see the the JupyterLite Storage. ๐Ÿ—‘๏ธ It can be reinitialized there if needed.

Screenshot-20250327002643-1448x1062

๐Ÿ””SFPPylite files included in the distribution (Python files, Json databases, notebooks) are not saved in the IndexDB database. They are stored in the static app bundle (๐Ÿ“‚content/ folder ) and mounted as ๐Ÿ“‚/ in JupyterLite, backed by Emscripten's MEMFS or IDBFS (via pyodide).

  1. The prebuilt version is not protected โ€” it is treated as just another file once the app is loaded.

  2. The original content is lost in the current session, and on refresh, the user version persists (persistent storage is enabled by default).

  3. Even built-in notebooks can be permanently replaced, unless the user clears their browser storage.

  4. Even if the app was updated with a new version of the file, the old user version takes precedence.

โ—โš ๏ธ Remove the files you modified from the SFPPylite bundle (i.e., the overrides you did) if you want the benefit of regular updates.

 

๐Ÿโฉ๐ŸŽ Access the Full SFPPy Framework

SFPPy ๐Ÿโฉ๐ŸŽ

 


๐Ÿโฉ๐ŸŽ SFPPy for Food Contact Compliance and Risk Assessment
Contact Olivier Vitrac for questions | Website | Documentation