Skip to content

clean up python-wasm script#889

Merged
hatemhosny merged 3 commits intodevelopfrom
cleanup-python-wasm
Oct 3, 2025
Merged

clean up python-wasm script#889
hatemhosny merged 3 commits intodevelopfrom
cleanup-python-wasm

Conversation

@hatemhosny
Copy link
Copy Markdown
Collaborator

@hatemhosny hatemhosny commented Oct 3, 2025

  • matplotlib no longer requires fontAwesome icons
  • remove un-necessary comments

Summary by CodeRabbit

  • Refactor

    • Stopped automatically injecting the FontAwesome stylesheet into the embedded Python WASM environment to avoid unnecessary asset injection.
    • Simplified environment preparation and removed redundant stylesheet injection logic.
    • Streamlined runtime error paths to consistently log installation and execution failures.
  • Chores

    • Removed outdated guidance and historical comments about runtime timing and alternative execution paths.
    • Standardized logging for failure paths to improve diagnostics without changing behavior.

@netlify
Copy link
Copy Markdown

netlify Bot commented Oct 3, 2025

Deploy Preview for livecodes ready!

Name Link
🔨 Latest commit c8dec77
🔍 Latest deploy log https://app.netlify.com/projects/livecodes/deploys/68dfe3409721420008936603
😎 Deploy Preview https://deploy-preview-889--livecodes.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Oct 3, 2025

Walkthrough

Removed FontAwesome vendor import and DOM stylesheet injection; simplified micropip and runtime error handling to console logging and removed historical Pyodide diagnostic comments. No exported APIs or control-flow behavior were changed.

Changes

Cohort / File(s) Summary
Stylesheet & vendor import
src/livecodes/languages/python-wasm/lang-python-wasm-script.ts
Removed fontAwesomeUrl import and code that injected the FontAwesome stylesheet into the document head.
Error handling normalization
src/livecodes/languages/python-wasm/lang-python-wasm-script.ts
Replaced prior guidance/comments in micropip install and evaluation catch paths with simple console.error logging (no behavioral changes).
Comment cleanup
src/livecodes/languages/python-wasm/lang-python-wasm-script.ts
Deleted historical diagnostic comments related to Pyodide v0.26.x timing and alternative runPython/runPythonAsync guidance.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I nibbled old links from the stylesheet vine,
Console crumbs now show each error line.
Pyodide hums with quieter cheer,
Fewer notes, soft paws drawing near.
Hop—small trims, tidy code, and clear. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly describes the main action of removing unused code and comments from the python-wasm script, accurately reflecting the primary change in the changeset.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch cleanup-python-wasm

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bdaed67 and c8dec77.

📒 Files selected for processing (1)
  • src/livecodes/languages/python-wasm/lang-python-wasm-script.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/livecodes/languages/python-wasm/lang-python-wasm-script.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (12)
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Redirect rules - livecodes
  • GitHub Check: Header rules - livecodes
  • GitHub Check: Pages changed - livecodes
  • GitHub Check: tests (18.x, 3)
  • GitHub Check: tests (18.x, 1)
  • GitHub Check: tests (18.x, 5)
  • GitHub Check: tests (18.x, 4)
  • GitHub Check: tests (18.x, 2)
  • GitHub Check: build
  • GitHub Check: build (18.x)
  • GitHub Check: build (18.x)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Oct 3, 2025

Size Change: -31 B (0%)

Total Size: 956 kB

ℹ️ View Unchanged
Filename Size Change
./build/404.html 1 kB 0 B
./build/app.html 250 B 0 B
./build/index.html 2.46 kB +1 B (+0.04%)
./build/livecodes/app.js 111 kB -62 B (-0.06%)
./build/livecodes/app.css 22.4 kB 0 B
./build/livecodes/assets.js 8.62 kB +1 B (+0.01%)
./build/livecodes/assets/noop.js 18 B 0 B
./build/livecodes/assets/templates/diagrams-starter.html 2.19 kB 0 B
./build/livecodes/backup.js 3.73 kB 0 B
./build/livecodes/blockly.js 13.3 kB 0 B
./build/livecodes/broadcast.js 1.19 kB -1 B (-0.08%)
./build/livecodes/bundle-types.js 4.37 kB 0 B
./build/livecodes/code-to-image.js 9.12 kB +29 B (+0.32%)
./build/livecodes/codejar.js 17.6 kB 0 B
./build/livecodes/codemirror.js 6.33 kB 0 B
./build/livecodes/compile.page.js 2.39 kB 0 B
./build/livecodes/compile.worker.js 14.2 kB -15 B (-0.11%)
./build/livecodes/compiler-utils.js 3.16 kB +3 B (+0.1%)
./build/livecodes/custom-editor-utils.js 198 B 0 B
./build/livecodes/deploy.js 6.88 kB +4 B (+0.06%)
./build/livecodes/editor-settings.js 17.7 kB +24 B (+0.14%)
./build/livecodes/embed-ui.js 5.54 kB 0 B
./build/livecodes/embed.js 89.4 kB -94 B (-0.11%)
./build/livecodes/export.js 3.89 kB 0 B
./build/livecodes/firebase.js 22.7 kB 0 B
./build/livecodes/format.worker.js 13.4 kB -15 B (-0.11%)
./build/livecodes/google-fonts.js 7.12 kB 0 B
./build/livecodes/headless.js 78.3 kB +103 B (+0.13%)
./build/livecodes/i18n-ar-language-info.json 5.23 kB 0 B
./build/livecodes/i18n-ar-translation.json 9.33 kB 0 B
./build/livecodes/i18n-de-language-info.json 5.25 kB 0 B
./build/livecodes/i18n-de-translation.json 9.44 kB 0 B
./build/livecodes/i18n-en-language-info.json 4.53 kB 0 B
./build/livecodes/i18n-en-translation.json 8.03 kB 0 B
./build/livecodes/i18n-es-language-info.json 5 kB 0 B
./build/livecodes/i18n-es-translation.json 9.17 kB 0 B
./build/livecodes/i18n-fa-language-info.json 5.35 kB 0 B
./build/livecodes/i18n-fa-translation.json 9.48 kB 0 B
./build/livecodes/i18n-fr-language-info.json 5.17 kB 0 B
./build/livecodes/i18n-fr-translation.json 9.42 kB 0 B
./build/livecodes/i18n-hi-language-info.json 5.78 kB 0 B
./build/livecodes/i18n-hi-translation.json 9.95 kB 0 B
./build/livecodes/i18n-it-language-info.json 5.04 kB 0 B
./build/livecodes/i18n-it-translation.json 9.26 kB 0 B
./build/livecodes/i18n-ja-language-info.json 5.57 kB 0 B
./build/livecodes/i18n-ja-translation.json 9.61 kB 0 B
./build/livecodes/i18n-pt-language-info.json 5.05 kB 0 B
./build/livecodes/i18n-pt-translation.json 9.35 kB 0 B
./build/livecodes/i18n-ru-language-info.json 5.56 kB 0 B
./build/livecodes/i18n-ru-translation.json 10.3 kB 0 B
./build/livecodes/i18n-ur-language-info.json 5.81 kB 0 B
./build/livecodes/i18n-ur-translation.json 9.78 kB 0 B
./build/livecodes/i18n-zh-CN-language-info.json 4.9 kB 0 B
./build/livecodes/i18n-zh-CN-translation.json 8.64 kB 0 B
./build/livecodes/i18n.js 20.2 kB +74 B (+0.37%)
./build/livecodes/import-src.js 16 kB 0 B
./build/livecodes/import.js 14.5 kB -29 B (-0.2%)
./build/livecodes/index.js 5.35 kB -3 B (-0.06%)
./build/livecodes/lang-art-template-compiler.js 1.65 kB 0 B
./build/livecodes/lang-assemblyscript-compiler.js 290 B 0 B
./build/livecodes/lang-assemblyscript-script.js 386 B 0 B
./build/livecodes/lang-astro-compiler.js 2.34 kB 0 B
./build/livecodes/lang-clio-compiler.js 1.55 kB 0 B
./build/livecodes/lang-commonlisp-script.js 123 B 0 B
./build/livecodes/lang-cpp-script.js 1.75 kB 0 B
./build/livecodes/lang-cpp-wasm-script.js 2.84 kB 0 B
./build/livecodes/lang-csharp-wasm-script.js 2.18 kB 0 B
./build/livecodes/lang-diagrams-compiler-esm.js 5.09 kB 0 B
./build/livecodes/lang-dot-compiler.js 1.66 kB 0 B
./build/livecodes/lang-ejs-compiler.js 1.63 kB 0 B
./build/livecodes/lang-eta-compiler.js 1.65 kB 0 B
./build/livecodes/lang-fennel-compiler.js 1.61 kB 0 B
./build/livecodes/lang-gleam-compiler.js 3.09 kB 0 B
./build/livecodes/lang-go-wasm-script.js 3.26 kB 0 B
./build/livecodes/lang-haml-compiler.js 1.65 kB 0 B
./build/livecodes/lang-handlebars-compiler.js 1.92 kB 0 B
./build/livecodes/lang-imba-compiler.js 147 B 0 B
./build/livecodes/lang-java-script.js 4.05 kB 0 B
./build/livecodes/lang-jinja-compiler.js 1.65 kB 0 B
./build/livecodes/lang-julia-script.js 3.3 kB 0 B
./build/livecodes/lang-liquid-compiler.js 1.68 kB 0 B
./build/livecodes/lang-lua-wasm-script.js 205 B 0 B
./build/livecodes/lang-malina-compiler.js 2.96 kB 0 B
./build/livecodes/lang-mustache-compiler.js 1.65 kB 0 B
./build/livecodes/lang-nunjucks-compiler.js 1.93 kB 0 B
./build/livecodes/lang-perl-script.js 268 B 0 B
./build/livecodes/lang-php-wasm-script.js 347 B 0 B
./build/livecodes/lang-postgresql-compiler-esm.js 1.73 kB 0 B
./build/livecodes/lang-prolog-script.js 204 B 0 B
./build/livecodes/lang-pug-compiler.js 371 B 0 B
./build/livecodes/lang-python-wasm-script.js 1.86 kB -56 B (-2.92%)
./build/livecodes/lang-r-script-esm.js 2.44 kB 0 B
./build/livecodes/lang-rescript-compiler-esm.js 2.16 kB 0 B
./build/livecodes/lang-rescript-formatter.js 1.52 kB 0 B
./build/livecodes/lang-riot-compiler.js 2.81 kB 0 B
./build/livecodes/lang-ruby-wasm-script.js 1.71 kB 0 B
./build/livecodes/lang-scss-compiler.js 1.71 kB 0 B
./build/livecodes/lang-solid-compiler.js 263 B 0 B
./build/livecodes/lang-sql-compiler.js 1.64 kB 0 B
./build/livecodes/lang-sql-script.js 1.95 kB 0 B
./build/livecodes/lang-svelte-compiler.js 4.69 kB 0 B
./build/livecodes/lang-tcl-script.js 1.82 kB 0 B
./build/livecodes/lang-teal-compiler.js 1.72 kB 0 B
./build/livecodes/lang-twig-compiler.js 1.64 kB 0 B
./build/livecodes/lang-vento-compiler.js 1.68 kB 0 B
./build/livecodes/lang-vue-compiler.js 6.09 kB 0 B
./build/livecodes/lang-vue2-compiler.js 3.47 kB 0 B
./build/livecodes/lang-wat-compiler.js 348 B 0 B
./build/livecodes/lang-wat-script.js 1.58 kB 0 B
./build/livecodes/language-info.js 7.71 kB -5 B (-0.06%)
./build/livecodes/monaco-lang-astro.js 947 B 0 B
./build/livecodes/monaco-lang-clio.js 639 B 0 B
./build/livecodes/monaco-lang-imba.js 7.35 kB 0 B
./build/livecodes/monaco-lang-wat.js 2.46 kB 0 B
./build/livecodes/monaco.js 10.1 kB 0 B
./build/livecodes/open.js 6.2 kB 0 B
./build/livecodes/processor-lightningcss-compiler.js 1.88 kB 0 B
./build/livecodes/processor-postcss-compiler.js 2.02 kB 0 B
./build/livecodes/processor-tailwindcss-compiler.js 5.19 kB 0 B
./build/livecodes/processor-unocss-compiler.js 355 B 0 B
./build/livecodes/processor-windicss-compiler.js 450 B 0 B
./build/livecodes/quill.css 697 B 0 B
./build/livecodes/quill.js 5.76 kB 0 B
./build/livecodes/resources.js 3.43 kB +3 B (+0.09%)
./build/livecodes/result-utils.js 1.17 kB 0 B
./build/livecodes/share.js 3.81 kB -4 B (-0.1%)
./build/livecodes/snippets.js 6.06 kB +9 B (+0.15%)
./build/livecodes/sync-ui.js 3.25 kB +2 B (+0.06%)
./build/livecodes/sync.js 3.52 kB 0 B
./build/livecodes/sync.worker.js 29.7 kB 0 B
./build/livecodes/templates.js 25.4 kB 0 B
./build/sdk/livecodes.js 3.96 kB 0 B
./build/sdk/livecodes.umd.js 4.02 kB 0 B
./build/sdk/package.json 293 B 0 B
./build/sdk/react.js 4.24 kB 0 B
./build/sdk/vue.js 4.36 kB 0 B

compressed-size-action

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Oct 3, 2025

Deploying livecodes with  Cloudflare Pages  Cloudflare Pages

Latest commit: c8dec77
Status: ✅  Deploy successful!
Preview URL: https://d159f02a.livecodes.pages.dev
Branch Preview URL: https://cleanup-python-wasm.livecodes.pages.dev

View logs

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/livecodes/languages/python-wasm/lang-python-wasm-script.ts (1)

88-94: Propagate Python execution errors to the UI

In src/livecodes/languages/python-wasm/lang-python-wasm-script.ts (lines 91–94), replace the console.log(err) in the catch block with a postMessage call (e.g. postMessage({ error: err.message || String(err) })) so Python exceptions are surfaced to the user interface.

🧹 Nitpick comments (1)
src/livecodes/languages/python-wasm/lang-python-wasm-script.ts (1)

77-78: Consider improving error handling for failed package installations.

While logging to the console is better than silently ignoring errors, users may not notice when a required package fails to install. This could lead to confusing runtime errors when the code tries to use the missing package.

Consider one of these improvements:

  1. Add the failed package to excludedPackages to avoid retry attempts:
      } catch (err) {
        // eslint-disable-next-line no-console
        console.log(err);
+       livecodes.excludedPackages.push(p);
      }
  1. Or collect and report installation failures to the user:
+     const failedPackages: string[] = [];
      for (const p of newPackages) {
        const pkg = (pkgMap as any)[p] ?? p;
        try {
          await livecodes.micropip.install(pkg);
        } catch (err) {
          // eslint-disable-next-line no-console
          console.log(err);
+         failedPackages.push(pkg);
        }
      }
+     if (failedPackages.length > 0) {
+       parent.postMessage({ 
+         type: 'console', 
+         method: 'warn',
+         args: [`Failed to install packages: ${failedPackages.join(', ')}`] 
+       }, '*');
+     }
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9295076 and 4573b33.

📒 Files selected for processing (1)
  • src/livecodes/languages/python-wasm/lang-python-wasm-script.ts (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (12)
  • GitHub Check: Redirect rules - livecodes
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Header rules - livecodes
  • GitHub Check: Pages changed - livecodes
  • GitHub Check: tests (18.x, 1)
  • GitHub Check: tests (18.x, 3)
  • GitHub Check: tests (18.x, 4)
  • GitHub Check: tests (18.x, 2)
  • GitHub Check: tests (18.x, 5)
  • GitHub Check: build
  • GitHub Check: build (18.x)
  • GitHub Check: build (18.x)
🔇 Additional comments (1)
src/livecodes/languages/python-wasm/lang-python-wasm-script.ts (1)

2-2: LGTM! Clean removal of FontAwesome dependency.

The FontAwesome import has been successfully removed, aligning with the PR objectives stating that matplotlib no longer requires FontAwesome icons.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Oct 3, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
C Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@hatemhosny hatemhosny merged commit b94bd82 into develop Oct 3, 2025
19 of 20 checks passed
@hatemhosny hatemhosny deleted the cleanup-python-wasm branch October 4, 2025 05:11
@coderabbitai coderabbitai Bot mentioned this pull request Nov 5, 2025
19 tasks
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 this pull request may close these issues.

1 participant