Skip to content

Commit

Permalink
First commit.
Browse files Browse the repository at this point in the history
Co-authored-by: Anthony Kim <[email protected]>
Co-authored-by: Don Jayamanne <[email protected]>
  • Loading branch information
3 people committed Oct 28, 2024
1 parent 21c846f commit 3ef6a01
Show file tree
Hide file tree
Showing 42 changed files with 27,488 additions and 10 deletions.
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Tab indentation
[*]
indent_style = tab
trim_trailing_whitespace = true
insert_final_newline = true

# The indent size used in the `package.json` file cannot be changed
# https://github.com/npm/npm/pull/3180#issuecomment-16336516
[{.travis.yml,npm-shrinkwrap.json,package.json}]
indent_style = space
indent_size = 4
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,7 @@ FodyWeavers.xsd
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/code.code-snippets
*.code-workspace

# Local History for Visual Studio Code
Expand All @@ -396,3 +397,17 @@ FodyWeavers.xsd

# JetBrains Rider
*.sln.iml


.vscode-test/
*.d.ts
*.vsix
out/
dist/
**/.DS_Store
temp/
pyodide/
# This is from the `pyodide` branch, we do not want to commit this folder.
resources/
# This is auto generated by the build scripts
ThirdPartyPackageNotices.txt
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20.17.0
16 changes: 16 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Test
module.exports = {
singleQuote: true,
printWidth: 120,
tabWidth: 4,
endOfLine: 'auto',
trailingComma: 'none',
overrides: [
{
files: ['*.yml', '*.yaml'],
options: {
tabWidth: 2
}
}
]
};
14 changes: 14 additions & 0 deletions .vscode-test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { defineConfig } from '@vscode/test-cli';

export default defineConfig({
files: 'out/test/**/*.test.js',
version: 'insiders',
mocha: {
timeout: 600_000
},
workspaceFolder: 'scenarios',
platform:'desktop',
useInstallation:{
fromMachine: true
}
});
30 changes: 30 additions & 0 deletions .vscode/code.code-snippets
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
// Place your Advanced-Data-Analysis-for-Copilot workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
// Example:
// "Print to console": {
// "scope": "javascript,typescript",
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"License": {
"scope": "javascript,typescript",
"prefix": "lic",
"body": [
"/*---------------------------------------------------------------------------------------------",
"* Copyright (c) Microsoft Corporation and GitHub. All rights reserved.",
"*--------------------------------------------------------------------------------------------*/",
"",
"$1"
],
"description": "Microsoft License header"
}
}
7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"recommendations": [
"dbaeumer.vscode-eslint",
"connor4312.esbuild-problem-matchers",
"ms-vscode.extension-test-runner"
]
}
38 changes: 38 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// A launch configuration that compiles the extension and then opens it inside a new window
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"${workspaceFolder}/scenarios"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"preLaunchTask": "watch",
},
{
"name": "Extension Tests",
"type": "extensionHost",
"request": "launch",
"args": [
"--enable-proposed-api",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test/index.node",
"${workspaceFolder}/scenarios"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js",
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "watch-tests"
}
]
}
33 changes: 33 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"editor.insertSpaces": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.fixAll.tslint": "explicit"
},
"files.trimTrailingWhitespace": true,
"[typescript]": {
"editor.insertSpaces": false,
"editor.tabSize": 4,
"editor.defaultFormatter": "vscode.typescript-language-features",
// "editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
},
"[typescriptreact]": {
"editor.insertSpaces": false,
"editor.tabSize": 4,
"editor.defaultFormatter": "vscode.typescript-language-features",
// "editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
},
"javascript.preferences.quoteStyle": "single",
"typescript.preferences.importModuleSpecifier": "relative",
"git.branchProtection": [
"main",
"release*"
],
"git.branchProtectionPrompt": "alwaysCommitToNewBranch"
}
73 changes: 73 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
{
"version": "2.0.0",
"tasks": [
{
"label": "watch",
"dependsOn": [
"npm: watch-extension",
"npm: watch-types"
],
"presentation": {
"reveal": "never",
},
"group": {
"kind": "build",
"isDefault": true
},
"runOptions": {
"runOn": "folderOpen"
}
},
{
"type": "npm",
"script": "watch-extension",
"group": "build",
"problemMatcher": "$esbuild-watch",
"isBackground": true,
"label": "npm: watch-extension",
"presentation": {
"group": "watch",
"reveal": "never"
}
},
{
"type": "npm",
"script": "watch-types",
"group": "build",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"label": "npm: watch-types",
"presentation": {
"group": "watch",
"reveal": "never"
}
},
{
"label": "watch-tests",
"dependsOn": [
"npm: watch-tests"
],
"presentation": {
"reveal": "never",
},
"group": {
"kind": "build",
"isDefault": false
}
},
{
"type": "npm",
"script": "watch-tests",
"group": "build",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"label": "npm: watch-tests",
"presentation": {
"group": "watch",
"reveal": "never"
}
}
]
}
25 changes: 25 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.vscode/**
.vscode-test/**
node_modules/**
src/**
.gitignore
.nvmrc
.yarnrc
*.vsix
eslint.config.mjs
webpack.config.js
vsc-extension-quickstart.md
**/tsconfig.json
**/.eslintrc.json
**/*.map
**/*.ts
**/*.d.ts
build/**
pyodide/node/*.js.map
pyodide/node/*.d.ts
pyodide/common/*.js.map
pyodide/common/*.d.ts
pyodide/*.map
pyodide.zip
temp/**
scenarios/**
40 changes: 40 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Contributing to this extension

---

### Prerequisites

1. [Node.js](https://nodejs.org/) (see `.nvmrc`)
4. Windows, macOS, or Linux
5. [Visual Studio Code](https://code.visualstudio.com/)
6. VS Code extensions defined in `.vscode/extensions.json`

### Setup

```shell
npm i # This can be a little slow the first time (downloading and extracting of a 300Mb file).
```

You can also compile from the command-line. For a full compile you can use:

```shell
npm run watch
```

For incremental builds you can use the following commands depending on your needs:

```shell
npm run watch
```

Sometimes you will need to run `npm run clean` and even `rm -r out dist temp pyodide`.
This is especially true if you have added or removed files.

### Errors and Warnings

TypeScript errors and warnings will be displayed in the `Problems` window of Visual Studio Code.


#### Building Pyodide Scripts

See details in the `README.md` of the `pyodide` branch.
34 changes: 24 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
# Project
# Data Analysis for Copilot

> This repo has been populated by an initial template to help get you started. Please
> make sure to update the content to build a great experience for community-building.
Data Analysis for Copilot empowers people in data science field. From cleaning up user's .csv file to performing higher level of data analysis by leveraging different statistics measures, graphs, and predictive models, the @data agent helps user make more advanced and informed decisions by offering tailored insights and interactivity for data tasks. The extension contributes a tool where the LLM can ask it to execute Python code via using [Pyodide](https://pyodide.org/en/stable/) and get the result of the relevant Python code execution. It is also able to smartly re-try for better or more appropriate execution results in case of error or failure. You can also export the code used to perform the analysis (or generate visualizations) into a Jupyter Notebook or a Python file.

As the maintainer of this project, please make a few updates:
#### Data analysis and visualizations

* Given a csv file enter the prompt such as `Analyze the file #<file name>` or write a more specific prompt (see below recording).
* Provide follow up prompts requesting the generation of visualizations (charts, plots or the like).

![Data Analysis of CSV file with visualizations](https://raw.githubusercontent.com/microsoft/vscode-jupyter/refs/heads/dataanalysis/images/data-analysis-chat.gif)

#### Exporting the code used to perform the data analysis and generate the visualizations

* Python code used to perform the analysis and generate visualizations can be viewed.
* Code can be exported in Jupyter Notebooks or a plain Python file

![Exporting the code used to perform the analysis](https://raw.githubusercontent.com/microsoft/vscode-jupyter/refs/heads/dataanalysis/images/data-analysis-export-chat-participant.gif)

#### Editor and explorer integrations for *.csv files

* Right click on a csv file to analyze it.
* Open a csv file and use the icon to analyze the file.

![Editor and explorer integration to analyze csv files](https://raw.githubusercontent.com/microsoft/vscode-jupyter/refs/heads/dataanalysis/images/data-analysis-csv.gif)

- Improving this README.MD file to provide a great experience
- Updating SUPPORT.MD with content about this project's support experience
- Understanding the security reporting process in SECURITY.MD
- Remove this section from the README

## Contributing

Expand All @@ -26,8 +40,8 @@ contact [[email protected]](mailto:[email protected]) with any additio

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
Loading

0 comments on commit 3ef6a01

Please sign in to comment.