Migrate to Jupyter fork with AI features#76
Conversation
|
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
| newScript.onload = resolve; | ||
| newScript.async = true; | ||
| document.head.appendChild(newScript); | ||
| newScript.src = url; |
Check warning
Code scanning / CodeQL
DOM text reinterpreted as HTML
| if (!quiet) { | ||
| console.debug('>', cmd); | ||
| } | ||
| const value = childProcess.execSync(cmd, options); |
Check warning
Code scanning / CodeQL
Shell command built from environment values
| // try to match the indentation level of the {{var}} in the input template. | ||
| templ = templ.split(`{{${key}}}`).reduce((acc, cur) => { | ||
| // Regex: 0 or more non-newline whitespaces followed by end of string | ||
| const indentRe = acc.match(/([^\S\r\n]*).*$/); |
Check failure
Code scanning / CodeQL
Polynomial regular expression used on uncontrolled data
| if (!quiet) { | ||
| console.debug('>', cmd); | ||
| } | ||
| const value = childProcess.execSync(cmd, options); |
Check warning
Code scanning / CodeQL
Indirect uncontrolled command line
| } | ||
|
|
||
| // Assign as `any`` for compatibility with spawn `OpenMode`` options | ||
| const out: any = fs.openSync(log_file, 'a'); |
Check failure
Code scanning / CodeQL
Potential file system race condition
| } | ||
| if (prev !== formatted) { | ||
| // Write out changes and notify | ||
| fs.writeFileSync(fpath, formatted); |
Check failure
Code scanning / CodeQL
Potential file system race condition
| publish: $authenticated | ||
| unpublish: $authenticated | ||
| proxy: npmjs`; | ||
| fs.writeFileSync(config, config_text, { encoding: 'utf-8' }); |
Check failure
Code scanning / CodeQL
Insecure temporary file
| } | ||
|
|
||
| // Assign as `any`` for compatibility with spawn `OpenMode`` options | ||
| const out: any = fs.openSync(log_file, 'a'); |
Check failure
Code scanning / CodeQL
Insecure temporary file
|
|
||
| // Assign as `any`` for compatibility with spawn `OpenMode`` options | ||
| const out: any = fs.openSync(log_file, 'a'); | ||
| const err: any = fs.openSync(log_file, 'a'); |
Check failure
Code scanning / CodeQL
Insecure temporary file
| assert.deepStrictEqual(data, orig); | ||
| return false; | ||
| } catch (error) { | ||
| fs.writeFileSync(filePath, text, 'utf8'); |
Check failure
Code scanning / CodeQL
Insecure temporary file
a2a767e to
cd9e244
Compare
Co-authored-by: Ramon Garate <[email protected]>
…to fix-error-with-ai
…to fix-error-with-ai
…to fix-error-with-ai
Our goal with Pretzel AI is to make the best tool for all data use-cases. This means many things: a great visual/AI enabled data exploration, a great SQL IDE, a great collaborative data workspace, an visually amazing dashboard and many more things.
We needed some place to start. We tried to make a visual and AI enabled data exploration tool that runs completely in the browser. We soon realized the challenge with this - it's very hard to get data professionals to switch with this approach. Why does that matter? In our opinion, to create change in an established space, you need to convert people who are the most passionate first. These users drive the change.
For us, that means targeting data scientists, analysts, research, ML engineers and people who work with data every single day and find their existing tools lacking. This means focusing on improving the tool that these power users use - Jupyter.
We could've made a new notebook tool from the ground up but we decided not to - switching costs are a thing and we want to make it extremely easy to switch. So, we chose to fork Jupyter and add features to it.
I'll cover more details in a blogpost at some point on each of these points but for now, here's the PR that merges our first major change - adding native AI code gen features in Jupyter