We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Python, Visual Studio Code, Copilot - Revolutionizing the way you do data science

00:00

Formal Metadata

Title
Python, Visual Studio Code, Copilot - Revolutionizing the way you do data science
Title of Series
Number of Parts
141
Author
Contributors
License
CC Attribution - NonCommercial - ShareAlike 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Come join this session to check out how Visual Studio Code along with GitHub, Codespaces, and Copilot can significantly improve the data science workflow and take your productivity to the next level. In this talk we will walk through several common Python data science scenarios, showcasing all the productive tooling VS Code has to offer along the way. As a sneak peek, we will be demoing a best-in-class Jupyter Notebooks experience with VS Code Notebooks, a revolutionary new data cleaning / preparation experience with Data Wrangler in VS Code, Copilot that helps you write code and fix issues faster, and more!
114
131
Lattice (order)Product (business)1 (number)Moment (mathematics)Software developerHoaxLeakMultiplication signBasis <Mathematik>Computing platformMachine codeOffice suiteVisualization (computer graphics)Local ringRight angleContext awarenessAudiovisualisierungComputer animationLecture/ConferenceMeeting/Interview
Machine codePredicate (grammar)Group actionInformation securityLaptopInterface (computing)Process (computing)Uniform resource locatorCloningCategory of beingNumberInformationFeedbackComputing platformOpen sourceSoftware developerDemo (music)Set (mathematics)Row (database)Visualization (computer graphics)LaptopCross-platformProduct (business)Complete metric spaceMachine codeCore dumpMultiplication signIntegrated development environmentFood energyTerm (mathematics)Focus (optics)Open setExpandierender GraphSource code
Visual systemMachine codeContext awarenessElectronic mailing listBitTransformation (genetics)Functional (mathematics)Sampling (statistics)outputMenu (computing)InformationType theoryRepository (publishing)ResultantOperator (mathematics)Search engine (computing)Keyboard shortcutView (database)Greatest elementOnline chatMachine codeSet (mathematics)Row (database)Different (Kate Ryan album)Right angleCellular automatonReal numberMathematicsLaptopRange (statistics)Line (geometry)Codierung <Programmierung>Complete metric spaceSound effectComputer fileBookmark (World Wide Web)Text editorShift operatorInteractive televisionHydraulic jumpBoolean algebraExtension (kinesiology)Morley's categoricity theoremMathematical analysisFrame problemMultiplication signRegular graph1 (number)Integrated development environmentField (computer science)Front and back endsWindowVariable (mathematics)Analytic setDisk read-and-write headNormal (geometry)Video gamePoint (geometry)Virtual machineInferenceFigurate numberEntire functionControl flowFunction (mathematics)CloningEmailProcess (computing)Descriptive statisticsDebugger
File formatGEDCOMTerm (mathematics)Electronic mailing listMachine codeElectric generatorKeyboard shortcutView (database)Descriptive statisticsMetadataDefault (computer science)Computer fileTemplate (C++)Pairwise comparisonRevision controlRepository (publishing)SoftwareLaptopReal numberBitNatural languageSoftware testingSlide ruleServer (computing)Multiplication signPoint (geometry)Remote procedure callResultantRange (statistics)Transformation (genetics)Differenz <Mathematik>Cellular automatonDemo (music)Different (Kate Ryan album)Frame problemFunctional (mathematics)Wave packetDot productFunction (mathematics)Extension (kinesiology)Endliche ModelltheorieFormal languageAxiom of choiceInteractive televisionRight anglePerturbation theoryCore dumpMathematicsSource code
Information securityGroup actionLaptopConservation of energyMachine codeSpacetimeLaptopIntegrated development environment
Machine codeWeb browserExtension (kinesiology)SpacetimeIntegrated development environmentPhysical systemLeakLatent heatRepository (publishing)Projective planeFinite differenceDifferent (Kate Ryan album)Remote procedure callComputer fileSet (mathematics)BitInstallation artComputer animationLecture/Conference
Level (video gaming)Demo (music)Type theoryOnline chatOnline helpTerm (mathematics)InformationRight angleFormal languageSoftware developerSet (mathematics)WordElectronic mailing listArithmetic meanInternetworkingTwitterPredictabilityMachine codePlotterEndliche ModelltheorieProcess (computing)Frame problemAverageSeries (mathematics)Semiconductor memoryBitSampling (statistics)PlanningSearch engine (computing)CASE <Informatik>Link (knot theory)Linear regressionMoment (mathematics)ResultantLaptopDescriptive statisticsBookmark (World Wide Web)Dot productCellular automatonSlide ruleDifferent (Kate Ryan album)Computer animationLecture/Conference
Machine codeWeb browserLaptopRight angleKeyboard shortcutWave packetEndliche Modelltheorie1 (number)SoftwareMachine codeResultantConnected spaceDemo (music)Multiplication signEmailINTEGRALMereologyWindowCASE <Informatik>Text editorNeuroinformatikRemote procedure callFunction (mathematics)Process (computing)Web pageBoss CorporationCellular automatonEvoluteWeightFrame problemEntire functionFAQAddress spaceWebsiteBitNatural numberPresentation of a groupInformation privacyLatent heatRegulator geneFlash memoryGroup actionHybrid computerPlanningComputer virusWeb 2.0Electric generatorKey (cryptography)Performance appraisalLocal ringLecture/ConferenceMeeting/Interview
Roundness (object)Game controllerWordText editorGastropod shellMachine codeKeyboard shortcutLecture/ConferenceMeeting/Interview
Computer animation
Transcript: English(auto-generated)
Thanks, everyone, for joining. And just before I get into the content, I do want to say, on behalf of Microsoft, we're real happy to be able to sponsor EuroPython. We try and do this every year. We can. I think we're on quite a few years running at the moment. This is a sponsored session. This is one of the benefits that we get in exchange for that.
So thank you for coming along, regardless. Hopefully you've learned some stuff and you'll see some exciting stuff anyway. So don't take that sponsored session as, like, it's just a sales pitch. I'm gonna show you our cool stuff, right? But I hope you're excited by that. We're excited to be here. We do have a booth set up.
If you go and chat with them, you may notice, especially if you've chatted with us before, that our usual kind of team of product people and marketing people have not made it over this year. We've got locals. Prague actually has quite a big office for us here, with a lot of developers there. And so we rounded up the ones who are most excited to come to EuroPython, largely for the first time. And that's who we've got at our booth.
So if you want to head over there and say hi to them, they're just as keen to meet you and learn what you're doing as they will be to tell you about what we're doing. So go and say hi. They would love to meet you. Some of the new features that are available now or coming for Visual Studio Code...
I'm gonna be honest. This is not my personal work. I don't work on the team that's been doing this. And just in learning about what they've been doing, my mind gets blown. So first warning. As far as I'm aware, and everyone keeps insisting to me, none of this is fake. My first reaction when I saw some of it was...
Why are you sending me fake stuff? I'm gonna get in trouble for this. It's genuinely not. This is all real. It's not all released yet. There's a couple of leaks. But it is some cool stuff. So the basis of the kind of Microsoft platform for Python developers these days is Visual Studio Code. Now, if you're not currently looking at it on your own laptop in front of you, chances
are the person next to you is. So give me a few minutes and look up from VS Code. But it is our open source, cross platform, lightweight IDE. And of course it has full Python support. And it's where we're putting kind of a large portion of our energy in trying to make sure Python developers are well supported, have a great development experience.
Not just across all of Microsoft's products, but anywhere. At our core, we're a developer tool company, and largely always have been. So this is what we do. We find developers where we can, and enable... We like to use the term empower, but enable, encourage, support developers everywhere.
So this is what VS Code is for. And the numbers of users and the feedback that we get show that, hey, we're doing a pretty good job. This session is mostly gonna be demos of new things. And they're largely data science focused.
I still think they're pretty cool, even if you're not a full time data scientist, because there's just some really cool stuff in there. But because it's demo and we're doing data science, we need data. Here's the dataset we'll be using, because I need to show you this for completeness. It's the Department of Transport airline dataset. You may have come across it before.
It's available on Kaggle. And it's basically a whole lot of rows of... It's 200,000 rows, in fact. I believe it's been cut short. Flights in the US. Whether they were on time, whether they were delayed. One of those categories is bigger than the other. And a whole lot of information about where they were going. Some interesting stuff to analyze.
And yeah, you'll see. This is what we're working with. Okay. Put on the hat of your new data scientist, just arrived at a new job. And you're gonna start analyzing some airline data. Currently the data's stored on GitHub. So we're gonna clone this. And this is just from the GitHub interface.
I'm not sure if that's playing or not. I don't think it is. There we go. And we're gonna go and clone it. So we go to this code button and expand that. There's going to be an SSH URL in there for our Git clone. We're running our Mac here, so that's just fine. The HTTP would also work. Jump over to VS Code and clone that Git repository, paste it in, and that's our starting
point. The clone time happens. If you've used VS Code, you've probably done this already. This is core functionality. But it gets us a repository with the code, and you'll see a couple of files show up there on the left. There's our CSVs. Now we don't just want CSVs, we want a notebook. And so we're gonna make a new file and just call it .ipynb.
And that has opened up a Jupyter notebook. Chances are the first time you do this, you'll get a little prompt saying you need to install an extension. But once you've done that, you have a Jupyter notebook. And you have that analytics workspace that you're probably used to. I'll talk more about it later on, but this is real Jupyter.
This is a frontend over Jupyter. We haven't built some different thing. We're exposing the tools that you're used to already. Okay. So it's time to start coding. Except we're too lazy. So I'm gonna go to the context menu and start a code chat with Copilot. That pops up a little thing right inside the cell where I can say, hey, give me the code
to load the flights.csv dataset. And that's gonna run off and just generate the code for me. I can accept that. And immediately I've written my first cell. Correctly use read CSV without actually having to think too hard about it at all. Can hit run on that cell. And I believe that's just a shift enter, so the usual keyboard shortcut right there.
And we can now see the live dataset and inspect that. Couple of things you will have noticed there, hopefully. Right now you can see the big tool tip telling us all about that function. While we were typing, syntax highlighting was taking effect immediately. There were pop-up completions, there were suggestions before it even popped up.
Because this is the full VS Code editing experience inside of Jupyter. We haven't just kind of passed text back and forth. We've got the full editor there. So all the things you're used to having in the regular Python editor in VS Code, you also have inside Python cells inside a notebook inside VS Code.
Now that's done. Let's more closely inspect what's actually going on. We can see the data frame printed there with the head. But if we want to see what's live, there's this variables button up here, which is gonna open up a window at the bottom. That shows all the active variables. Normally you'd be scrolling up and down to see which things you've set up and what
they are. Now we just have a live list here, and every cell you run is gonna update that. We also have debugging support. If you need to see how that came about, you can go to any cell, any line of code, set a breakpoint, and then step through that cell line by line, or that will run up until the breakpoint. And have the debugging experience of VS Code, but inside a cell for your notebook.
So you need to track down how something happened or why something is not happening correctly. You've got the tools built in, integrated directly into it to do that. Okay. Let's start on some actual analysis. But we're gonna come over here to copilot chat, which is one of the new features.
Because I don't remember how to merge two data frames. So I'm just gonna ask it. And I'll tell it that it's in pandas. And there we go. It's run off and grabbed a bit of information, description, everything that I might have found from maybe a minute or two or three of regular search engine searching.
But it's found it's so much quicker, and it's in context. It's right there. I can ask a follow-up question to adjust that slightly. And it's got the history. It's got the awareness of what documents I have in my workspace. It's got the awareness of what code I've been working on. And it's able to factor that in to find relevant results. Chances are, I didn't even have to tell it to use pandas there, because it knows
that pandas is in the environment. And it knows that I'm working in Python. It can figure those out for itself. However, you'll see here that the code that it's generated isn't actually aware of the variables that we're using or any of the actual data.
So it's not really gonna be that helpful for specific cleaning up in our context. I still need to do all the work and have all the understanding of what needs to be done to make this data ready for use. So to make my life easier for that, we're gonna go to data wrangler. The dataset here, we'll just look at the head again.
We've got kind of the basic pandas output, headers, a few rows of data. And this button at the top that says launch data wrangler. So data wrangler is a tool built into VSCode, or one of the extensions, that is interactive data cleaning. So we open this up. We now have 200,000 rows, which is the entire dataset, but it's a sample.
Some summary information at the top of each column. We can see everything. We can scroll across and have an overview of all the data. Cleverly selected information at the top of each column. There's a bit of a summary to the right. So that was the list of columns' missing values.
And over to the left, we've got all of these operations that we can perform on the data to change things. So we're gonna infer a column by example here. We're gonna take this date column and add another column that's going to be the day of the month. And we're gonna do that using this infer by example. So we create the column, it adds it there immediately, and we type an example.
So in this one, the day of the month is 9, so we type 9 in as the example. And data wrangler goes off and figures out how to do that for the entire dataset. And so it can fill in the entire column, calculate the entire column. We haven't had to write the code to do that. It's been able to infer from our examples, this is the code that's needed to do that
transform. You'll see down the bottom that we have a list of cleaning steps. Each step is remembered. It's not applied and then forgotten about. The transform is remembered. We can go back and edit it later. We can remove steps. We can reorder steps and see the changes as they are applied.
We can add a filter to that. You can see it's real click-around interactive. You can see all the things that you might do. So rather than kind of in the complete absence of anything, you have to go, you know, column equals to would be no, you can see it there. And you can see, oh, maybe begins with would be better. So we can add a filter and say only where this column is this value.
And it shows which ones are gonna be removed. The highlighted. And as soon as we apply that step, they actually disappear from the view that we have here. But now if we go back to edit that step, they all come back. And we can actually see the code that was created for that and even change it. Now it becomes a custom operation. And you can see that a different set of rows are gonna be removed because they're
applied to a different value. And our step now removes everything that is not the 31st of the month. There's a really wide range of operations here. A lot of inspiration. If you're unsure what you need to be doing to your data, then even just browsing through
is a great way to find what's available. One of my favorites is one-hot encoding. Which is where you can take a categorical value column and convert it into Boolean columns. And so we've just done that for one of the airline information fields here. And we have a set of columns where only one is true at any one point.
This is often far more useful for machine learning input than a categorical value. And we can just do that. And now we scroll down here and we see the code. Data Wrangler is code first. As I said, it doesn't apply the transforms. It generates the code to apply the transforms.
Which means at the end of the day, you can export it to CSV, or you can click this back to notebook button, which is going to jump us back to where we started, copy in that code that was just generated, and actually provide us a function that will apply that cleaning transform repeatedly to any data that starts with the same schema. And you can take that code and do whatever you want.
It's your code. It's readable Python code. It's idiomatic pandas, as much as we possibly can. If you do something that's not idiomatic, you'll get what you get. And you run that, and we can see that the result here is the filtered code. It has the additional columns. And that's your code. So if you need to productionize that transform, you can.
You've got the code for it. If you need to modify it, you've got the code right there for it. It's not just a cleaning step. It's a preparing to clean forever step. It's actually setting up your pipeline. Okay. So now we've done... Let's assume this was our first job, and we now need to save it back to the repository.
If we come over to the source control panel, again, this is core VS code functionality. We know that we've added a notebook. But you'll see that the diff here... It's not super interesting, because it wasn't there before. But normally if you diff a notebook, you get some JSON unreadable thing. We do a rich diff.
We'll actually extract each cell, show the difference between the cell before and the cell after. The metadata and the output are also compared. They collapse by default. But the full comparison is available. And then you can commit that and synchronize it back to that Git repository.
The metadata there has changed. That's the red... I think that's just formatting. Okay. That was quite a lot. I know a lot of us prefer slides with dot points to demos. I do myself. So let's see slides with dot points, rather than demo. So VS code notebooks.
We create a notebook just by creating a file with the right extension. This works in VS code. You don't have to choose from a huge list of templates. If you know the file you want, you just make it, and it will generate what needs to be there. And then you can view, edit, and run. Of course, you can open existing notebooks. That's not a problem at all. Debugging is in there. Viewing and filtering values.
All the things that would happen. As I said, it's real Jupyter. You can connect to a remote Jupyter server. You don't have to run it locally. The key bindings are all the same. And as we saw, integrated with copilot. And we'll see that again in a little bit. Data Wrangler. It's one of my favorite things that we've done. Code-centric data cleaning and preparation tool.
It's interactive. You don't just have to imagine what the data will look like and then write some code. You can see it. You can click the buttons to see what the result will be. And then get the code from that. Do whatever you need to with that code. It's built directly into notebooks. One click to get into Data Wrangler from a data frame.
One click to get back. Really quick insights shown across the top of the columns. Just to give you that sense of what the data looks like and a whole range of built-in transformations to make coming up with the right choice a lot easier for you. And of course, GitHub copilot. The big hot thing right now, all the large language models, fundamentally changing how
we interact with software. Very exciting. Natural language to describe what you want to do. The first thing you're going to think of when you decide to do something is probably a natural language. Most of us don't solve a problem directly into code. We solve it into a description of what the code will do and then translate that into
code. You can skip that second step now. Or you can at least start from that first thought of what you'd like and get some more inspiration for it. And copilot does a whole lot more than we showed just here. It can convert comments to code. It can generate comments for code. It can explain code to you. It can fix code. Maybe you trust it to do that.
It can automatically write tests. And it is getting better over time. It does keep getting more training, more tuning to produce better results as more people use it. And as we get a better sense of what code generates well and what doesn't. So that's some of the big revolutionary things.
But I have two more cool things that I want to show. Because I can't just leave it there. So we're back in GitHub. And the pop-up is still up from where we left off. We haven't gone anywhere, really. But we're going to refresh the page and we'll see that that notebook is there now. And let's imagine we're someone else on the team.
Someone who doesn't have VS Code installed, but still wants to see this notebook. If we come to this code button, instead of looking under local, we can go to code spaces. Code spaces is a hosted development environment attached to your GitHub. If we start one of these, what you'll see happen is we get back into VS Code. But we haven't actually left the browser.
This is entirely hosted in the browser, running locally, and connecting to a remote code space hosted in GitHub that has whatever definition your project specifies, actually. It's based on dev containers, which means you can put specification in your repository to say, hey, when you start a code space, put these files in it.
Install these extensions, pre-run these commands, and we have in the browser a live Python environment that we can interact with and execute code without having to install anything locally at all. It can be a different operating system, it can be a different set of packages, whatever you need for that project, really, really neat way to quickly start interacting with
a project. Incidentally, the CPython repository recently got support for this. And so for those contributing to CPython, that github.com slash Python slash CPython is enabled for code spaces. You get in there and it's already cloned the code, it's already built the code once,
which means incremental updates as you change anything. It's a really, really great way to get started quickly. And the last thing I want to show is a bit of a leak. This is not released yet, it may change before it actually comes out. But it was too cool to not show you all. We're going back to copilot, and we're going to ask for just some general help.
Because I've got this dataset, I'm not� I kind of know what I want to do. But we're just going to say, hey, copilot, if I want� if I want to predict flight delays, because� it will probably just say one.
But if I want to predict flight delays, which scikit-learn model would you recommend? And you can ask a general question like this and it will go off and come back with recommendations and it's going to suggest linear regression is the easiest way to do it. You can say, show me code to do that. And it will go off and find us, here's some sample code, tells us what to import, gives
us a bit of an overview how to start it. And we can go click this button and it will insert it directly into our notebook as a new cell. Now, as I pointed out before, it's not actually aware of any of the other code that we have in here. So we don't have a variable X or a variable Y.
And it's not going to predict anything because it just doesn't� it's just not aware. It doesn't know our data. So what's new and exciting is at the moment� at the moment, it's shaped like this. It may change. We have this copilot button up the top that pops up a little list of our live data and we can pass that into copilot.
That tells copilot, here's our actual dataset. We can say something like, tell me about my dataset. And it looks at all the column names and it finds the information and it's able to describe it back to me in human terms, in English, in prose. It can suggest some questions. What's the average departure delay for each airline?
That's the thought. Then you go through the processing to write the code. Or now that copilot knows about the data, it's able to know to group the data frame by the airline column, calculate the mean of departure delay. Can show you the code to do that in pandas using the right variable names and the right column names and then it can just go off and calculate it and show you the results.
I'll be honest. I saw this and I was like, you can't get me to do a fake demo. It's not. Which airline is F9? We're just diving deeper into it with the kind of question you might ask the senior developer who hasn't written any documentation. But copilot's going off.
I know who F9 is. Here's all the details. And yeah, the airline is actually Frontier Airlines. It's got access to the information. It's got the ability to search the internet. It's even told you that it's searched online for it. And we can even ask it to plot. It has enough information to say plot the average arrival delay. We'll go off and think.
It'll plan out how to do that. And in this case, it's going to actually immediately insert the code into the notebook and run it and give us the plot of the average delay by airline, as well as around the description and the code snippet of how to do it.
You know, I've been working here a day and I quit. It's like, I'm not needed anymore. AI looks like such hype, really, doesn't it? All the chat GPT and everything.
And we've all seen the pointless kind of Twitter posts and discussions like, oh, I made it remember this thing, I made it say this thing. This is operating at such a different level from that, because it's taking your written language and converting it into a plan and then executing that plan. It's not looking at its memory. It's not looking at something that it found on the internet ten years ago and got trained
into the model. It's looking at the meaning of your words, turning that into something that it can do and then bringing it back. This is such... This is the way forward. This is the way that large language models don't free us from knowledge. They don't free us from writing stuff and putting it out there.
They don't free us from actually thinking about stuff, but they free us from having to type it. They free us from having to search for it. They free us from having to break down a high-level concept into a series of steps and execute on those steps. So this, for me, I think is where it gets really, really exciting. Okay. What next?
Where do you get it? As I said, chances are you're looking at VS Code in front of you right now. Thank you. We appreciate you. You can find more information at any of these links. They're all aka.ms slash VS Code dash Jupyter slash Data Wrangler or VS Code dash Copilot. Easy enough to search online for these things or choose your favorite AI search
engine and type it into there, and I'm sure I can tell you all about it. And with that, I'm gonna leave this slide up. Thank you very much for coming. I hope you're enjoying EuroPython, and feel free to come and speak to us at the booth whenever you like, or if you find me floating around, I'm happy to chat with you about anything at all. Thank you.
Thank you very much. That was an impressive demo. We have time for questions. I want to remind you that in the back there's a microphone, so if you have a question here in the room, please go to the microphone. If you're a remote participant or you just don't want to go to the microphone, you
can also ask questions in the Discord channel of this room. So please, start. Hi. So first, any ideas for a new career for a data scientist? But more seriously, in the copilot output, there was these evaluation results of this
code. It was just plain text. So is there any way to know for sure that like this data we see in the copilot chat, it is actually executed our code and not hallucinating some answers?
I don't know that I can give kind of a definite answer to make you feel confident about that, because I can't show you how it's implemented. I can tell you that when it gives you the plan of what it's going to do and shows you the code that it's going to execute, that is actually part of the integration
side of things. So those final results, those calculated results, are not because the entire data frame has been sent to copilot and it's sent back the results. It's sent back the code and the code's been executed. So the actual results that it's showing there, if you took that code and stuck it into
the notebook and ran it, you'd see the same results as what it was printing out in the copilot chat. We're just saving that step, because maybe you want to see the results of it and not necessarily keep it in the entire notebook history. So those ones towards the end are being executed locally and they are going to be the right data, because it's running the code that you see there.
It's not hallucinating those results. Maybe hallucinating the code, in which case, you know, you get what you get. But you can see the code. And you won't be out of a job as a data scientist. You'll simply have more time to relax while your code is generating, since data scientists
have never had to wait for it to compile, right? We wait for it to install. And for model training. And training. Yeah. So your job becomes waiting for model training, waiting for the AI to generate code for you, and plenty of time to relax and then check the results. But that one's never going to go away. We're always going to have to be checking the results that come back.
Yeah. As long as the bosses don't know about how much waiting I do. Thank you. Thank you. Hello. Hello. Thank you for a nice presentation and demo. We at our company are very enthusiastic about going to use Copilot, but we have some concerns about how can we use it at our customers. So can you tell us a little bit more about what happens to the data that we send to
Copilot? The data or the code in specific? I can only really tell you what's publicly available on the site, because I don't work directly on Copilot. So I don't really know anything more besides what's discussed publicly. There's a really good FAQ on the GitHub documentation about what happens with the data,
but fundamentally it gets encrypted in transit, processed, and stored in accordance with whatever data privacy regulations apply. It's definitely very restricted. I have absolutely no way to get to that data at all, and I probably get fired three times if I try before I get anywhere near it, because it's just so far cut off from
anyone who's not directly needed to touch it. So it's as restricted and safe as we can possibly make it. That's about as much as I can tell you, because I honestly don't know. So it's a food for our lawyers. I will say that there is an email address in that FAQ, which...
Feel free to email them and ask specific questions if they're not answered there. So... Yeah. Thank you. I'll squeeze in a remote question. Thank you for the talk. Are Data Wrangler and Copilot tightly coupled, or would I be able to use Data Wrangler without Copilot? You can absolutely use Data Wrangler without Copilot.
The inferring by example is slightly older technology that we've had for a while. If you've used Flash Fill in Excel, it's based on the same thing as that, which all kind of predates Copilot. Doesn't require a network connection, doesn't send anything out of your computer at all. It's all running locally.
Here is a rudimentary question from the beginning of the talk. You opened up the Jupyter notebook inside of VS Code, and you said this is an editor window. My question is, when you're editing text inside of those little windows inside of the cells of your Jupyter notebook, whose key bindings do you see? Are you seeing VS Code's key bindings, or Jupyter's key bindings, or the web browser's
key bindings? Inside the ISO, if you're inside the web browser, then all of those key bindings get overridden. So it's a hosted web page inside of the studio, and it's not an actual editor window, per se. It's going to be a sensible hybrid of which shortcuts you get.
The ones for manipulating notebooks are going to operate in much the same way. When you're inside the editor actually editing, the shortcuts that Jupyter uses are not the same as the VS Code ones, and I believe, again, I didn't personally do the work on
this to figure it out, but the team will have gone, okay, this shortcut from VS Code, it's better for this one to be consistent with the normal editor versus better for this one to be consistent with the Jupyter experience. If I set control-W to delete word backwards like the Unix shell, that does work or that
doesn't work? Every single shortcut is over-writeable, and if you over-write it, it can do exactly what you want. Okay, great. Thank you. Thank you. Please give another round of applause for Steve.