Podchaser Logo
Home
Python in Excel

Python in Excel

Released Friday, 26th January 2024
Good episode? Give it some love!
Python in Excel

Python in Excel

Python in Excel

Python in Excel

Friday, 26th January 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:00

Why is Python so popular? There's plenty of

0:02

room for debate on this, but one solid

0:04

reason is it's easy to adopt, easy to

0:06

use, and caters to people who are not

0:08

quite developers, data scientists, but need

0:10

to get some computing done. Do

0:13

you know where the largest untapped set of

0:15

those people hang out? Excel.

0:17

That's why it's super exciting that Python is

0:20

now going to be built directly into

0:22

Excel. Just go into a

0:24

cell and type equals pi, and you're

0:26

off writing full Python 3 code that

0:28

is backed by a lightweight anaconda distribution

0:30

of Python. We have

0:32

Dr. Sarah Kaiser here to give us the

0:35

rundown on Python and Excel. This

0:37

is Talk Python to Me, episode 445, recorded live and

0:41

on location at Microsoft Ignite in Seattle,

0:43

November 16th, 2023. Welcome

1:00

to Talk Python to Me, a weekly

1:03

podcast on Python. This is your host,

1:05

Michael Kennedy. Follow me on Mastodon, where

1:07

I'm at M Kennedy and follow the

1:10

podcast using at Talk Python, both on

1:12

bostodon.org. Keep up with the show

1:14

and listen to over seven years of

1:16

past episodes at talkpython.fm. We've started

1:19

streaming most of our episodes live

1:21

on YouTube. Subscribe to our YouTube

1:23

channel over at talkpython.fm slash YouTube

1:25

to get notified about upcoming shows

1:27

and be part of that episode.

1:30

This episode is sponsored by POSIT

1:32

Connect from the makers of Shiny.

1:34

Publish, share and deploy all of

1:37

your data projects that you're creating

1:39

using Python. Streamlit dash Shiny bokeh

1:41

fast API, flask, quarto, reports, dashboards

1:44

and APIs. POSIT Connect

1:46

supports all of them. Try POSIT

1:48

Connect for free by going to

1:51

talkpython.fm slash POSIT. POSIT. And

1:54

it's brought to you by the PyBytes developer

1:56

mindset program. PyBytes core mission is to help

1:58

you break the vicious cycle. of tutorial

2:01

paralysis through developing real-world applications.

2:04

The PyPipes Developer Mindset program will help you

2:06

build the confidence you need to become a

2:08

highly effective developer. The link is in your

2:10

podcast player show notes. Sarah,

2:13

welcome to Talk Python to me. Hey, how's

2:15

it going? Hey, it's going super well, super

2:18

well here at Ignite for one more

2:20

time to talk about cool stuff with

2:22

Python and things going on. This time

2:24

it's going to be Excel

2:26

and Python. It's like Reese's Pieces,

2:28

you got your chocolate and my

2:30

peanut butter, like what's going on

2:33

here? I mean, the cats and

2:35

dogs, are they living together or what's happening? The

2:37

old school and the new school. That's

2:39

right. The open source and

2:41

the not. Yeah, yeah. My background

2:44

is I've been a data scientist for a

2:46

long time. I did my PhD in quantum

2:48

computing in like experimental physics stuff. So trying,

2:50

I actually, my first programming

2:52

language was Mathematica and that was actually

2:54

what got me hooked on kind of

2:56

the notebook sort of interface. Yeah, okay.

2:58

Well, normally people say their first programming

3:01

language when that's the background is Matlab.

3:03

Yeah, yeah, yeah. But I would say

3:05

Mathematica is like the proper mathematicians

3:08

programming space because it does

3:11

symbolic math, right? Which is so

3:13

remarkable when you see it go.

3:15

Yeah, like that was basically like

3:17

I could visualize. The thing was

3:19

being able to do easy visualizations.

3:21

So actually after undergrad, I

3:23

worked at Mathematica for a while on their

3:25

visualization team. Really? Yeah.

3:28

What technologies was that in? Thankfully,

3:31

I didn't have to touch any

3:33

of the optimization stuff underneath but

3:35

designing new gauges and plotting filters

3:38

and stuff like that. I really

3:40

enjoy visualizing and understanding data that

3:42

way. And so when I got

3:44

to grad school, realized that none

3:47

of our instruments talked together, like everything

3:49

was an entirely separate archaic,

3:52

non-documented protocol. And we were having

3:54

to somehow like either

3:56

sit By hand and match up all

3:58

of these CSV dumps. from the different

4:00

tools and stuff like that. So basically I

4:02

started learning. Python to make our lab

4:04

work if it's know. Initially it was

4:07

like using a serial and see types

4:09

libraries actually interface with these A P

4:11

eyes but I realized that someone once

4:13

showed me a Jupiter notebooks and are

4:16

like this is our it's of this

4:18

is the way and with his Seven

4:20

Mathematica for by month exactly. So I

4:22

have been using Jupiter notebooks almost since

4:25

they came out with the fits and

4:27

really enjoy that both as a learning.

4:29

Tool A teaching tool and.

4:32

A and of reproducible science To or

4:34

brad says taking the World by Storm

4:36

Roy they were here myself ignite the

4:38

keynote. They were having basically one code

4:41

oriented demo in the two and a

4:43

half hour a keynote and it was.

4:45

Now we have a Jupiter notebook with

4:47

some Python code that's gonna do some

4:50

machine learning and you know that. Back

4:52

to cats and dogs. See, I. Was

4:55

so every course these a sweaty

4:57

doing I'm. A developer advocate at

4:59

Microsoft. On the a Python

5:02

team focusing on data science and machine

5:04

learning a sorts of Python tools. So

5:06

I get it. I get to do

5:08

all the fun stuff with Pandas, Numb

5:10

P, side Pie, and on all of

5:12

those things. And that's kind of why

5:15

when I heard about the Python an

5:17

Excel preview as like. The

5:20

men's I have done many of pandas

5:22

import from thinks that know the third

5:24

of things and was kind of curious

5:26

as to see is initially I was

5:28

like who I'm pretty cool with my.

5:30

Python and not sneer why I want to

5:32

go that way But I said to say

5:34

i think I I'm convinced them are you

5:37

have Yeah yeah because it's kind of had

5:39

a different way than a Jupiter notebook. It's

5:41

hopeless as a my as will talk about

5:44

some fun of of those as we go.

5:46

Who are you have vandalizing Python on the

5:48

behalf of my Sos to? So are you

5:50

talking to like companies that do.net in haste

5:53

do Python are talking to. Companies.

5:55

That love python and same like

5:57

a you should consider Azure or

5:59

are. offering? What does your world

6:01

look like? What do you do today? A

6:03

lot of it is doing testing. I work

6:05

a lot with the VS code team and

6:07

the Jupiter specifically like the Jupiter features

6:09

in VS code to make sure

6:12

all the notebooks work to make

6:14

sure you know packages with kind

6:16

of weird output visualizations you know

6:18

are they rendering properly? Generally I

6:20

think I work with a lot

6:22

of the actual Python open source maintainer

6:24

communities in the kind of scientific Python

6:27

space so like with the non focus

6:29

supported projects. And really just try to

6:31

kind of understand what are they running

6:33

into and as we're definitely

6:35

seeing both with all of the

6:37

LLM and machine learning stuff like data

6:39

is getting so big that I definitely

6:41

can't open it in one Excel sheet.

6:45

And so the data is you know

6:47

basically word to the it's all

6:49

native on the cloud and so there's I think

6:51

a lot of kind of the academic space that

6:53

I'm I come from of like

6:55

that isn't really part of the curriculum or what's

6:57

taught or you know people kind of have to

6:59

learn it ad hoc and so

7:02

basically I kind of like

7:04

to think of myself as someone gets

7:06

to go do all that learning about kind of

7:08

how does science and data interact with

7:10

the cloud in this case specifically Azure

7:12

and. Just trying

7:14

to help build out scenarios like build

7:17

sample apps things like that that can

7:19

make it so they don't have to

7:21

waste their PhD time trying to understand

7:23

cloud DevOps stuff. It

7:26

sounds a little bit like you know a lot of

7:28

people who are just brought into a lab and said

7:30

here you're going to learn Python and then you can

7:32

go do your your actual research. They

7:35

often sort of skim out on

7:37

like some of the very basic software

7:40

like what is get what is how

7:43

do I run this like yeah kind

7:45

of things right so maybe you run

7:47

a lot of workshops like have you

7:49

basically in my postdocs I got really

7:51

tired of my teams and groups that

7:53

I was working with not knowing so

7:55

I basically made a standard two day

7:57

workshop that was like. all

8:00

of the computer science skills you missed in

8:02

your physics degree. We

8:05

did have at one point data that just existed

8:07

only on a jump drive and that jump

8:09

drive walked away and that does not feel

8:11

super good from a research standpoint.

8:15

Yeah let's just say we had

8:17

a review of that and instituted

8:19

new policies. We decided

8:21

backups are good. It's a bit

8:23

of a diversion but I worked

8:25

on some math research before

8:28

I graduated and got

8:30

my bachelor's and it was just in C++

8:33

but we had these large

8:35

silicon graphics computers like big mainframe thing

8:37

and we had onyx workstations that

8:39

went into it. We came in one morning and nobody

8:43

could log in. The computers wouldn't respond or

8:45

turn on us. It's like a quarter million

8:47

dollar computer they got used and it won't

8:49

turn on. We're like oh boy. What

8:52

had happened is one of the grad students

8:55

non-developer types just doing their

8:57

research had

8:59

a problem with their program so they

9:01

started logging to see what was going

9:03

on and they left it running overnight.

9:05

It filled the disk to the very

9:07

last byte and apparently once the last

9:09

byte was gone the whole mainframe couldn't

9:11

operate and just nobody could

9:13

even figure out what was wrong with

9:15

it forever and eventually yeah so you

9:18

know practices. Yeah we also

9:20

had a five million dollar microscope

9:22

get bricked because a younger grad

9:24

student didn't understand that Windows XP

9:27

service pack zero should never be

9:29

plugged into the internet. So

9:33

no firewall none of that. They were

9:35

just like well it has an ethernet

9:38

port and the company said they can

9:40

you know do support over TeamViewer or

9:42

something like that so they were like

9:44

yeah. So we walked in and we had

9:46

to yank it out of the wall and we

9:49

had the police there the next day because it

9:51

had already been doing a legal financial transaction in

9:54

about 30 seconds. You're

9:57

here to arrest a microscope. Yeah I was like it's

9:59

over there. That's not a computer. It

10:01

sort of is. Another

10:04

interesting thing before we dive into our main

10:06

topic here is I'm not sure if this

10:08

is real or not. Is it

10:11

happened or did it not? This quantum work

10:13

that you're doing? Yeah. So

10:15

my PhD was on

10:17

quantum cryptography hardware. So

10:19

both there exist commercial

10:21

devices. So part of it was

10:23

finding side channels and the physical

10:25

devices that you could buy off

10:27

the shelf and then the other

10:29

part was designing satellite optics for

10:31

doing ground to satellite-based

10:34

key exchange. So yeah, that

10:36

was a lot of what I was doing in the

10:38

like prototyping things in the lab that would look like

10:41

a satellite and we'd, you know, satellite on one table

10:43

and around the other. We slowly worked

10:45

out to, we did a bunch of tests in

10:47

an airplane because turns out like putting things on

10:49

a satellite is kind of expensive and. It

10:52

just blew really high at 747. Yeah.

10:57

And weather balloons turn out to be not

10:59

super predictable in the past once you launch

11:01

them. And so if you're trying to like

11:03

aim telescopes, yeah, it kind of

11:05

ended up being messy. But it was pretty

11:07

cool. We got to go. I got to

11:09

help with the design process for these single

11:11

photon kind of collection systems that went from

11:14

literally I'm just putting a couple lenses on

11:16

the table and running python stepper

11:18

motor things in my Jupiter notebook to

11:20

something that was actually automatically tracking and

11:23

working from the ground to an

11:25

airplane. Hopefully eventually a satellite but

11:27

that's kind of out of my hands at this point. Yeah,

11:30

space takes a long time to get to. A lot

11:32

of planning, a lot of, we worked on it for

11:34

eight years and then we had our launch window missed

11:37

by a week. You know, or something like that, right?

11:39

Yeah, that's right. And as a grad student, you got

11:41

to get out of there. Yeah, you're like, I got

11:43

to get a degree. I need to eat. Yeah. So

11:46

let's get going. Cool. Well, that

11:48

sounds like a really fun project. You've learned

11:50

a lot. Whenever you're talking to

11:52

hardware, I think that's a special kind of programming.

11:55

It's not just I run the program and then

11:57

it just goes a little bit like there's stuff it touches.

12:00

Yeah, like you don't get to necessarily do your

12:02

own architectural design that you have

12:04

to kind of first observe and

12:07

usually reverse engineer what the original

12:09

device engineers came up with and

12:11

then figure out how is this,

12:13

you know, this device is streaming

12:16

base, this place, how am

12:18

I going to like, these are entirely different

12:20

like application models. You really chose the serial

12:22

part. Okay. All right, then let's

12:25

go with that. Cool. All right. Now

12:27

before we get into Excel in Python,

12:30

let's maybe talk about working

12:32

with Excel from Python,

12:34

like the reverse, right? So you talked a lot

12:36

about notebooks. And many people

12:38

go from kind of notebook into CSV into

12:41

Excel. And there's some common tools for

12:43

doing that, like even built into pandas, for

12:45

example, to be well, since of what they

12:47

can do there before they have to

12:49

necessarily decide like I need to run it

12:51

in inside of Excel. I think there's still

12:54

a special value to having structured code. Oh,

12:56

yeah, for sure. That you could

12:58

have, I mean, notebooks is like kind of

13:00

a fuzzy structured code. It's not like it's

13:02

not like a proper py file,

13:05

because you can run the stuff still out

13:07

of order. But at least within the cell

13:09

it runs within order, you know, like one

13:11

dimensional out of order, rather than like Excel,

13:13

which is two dimensional potentially, three if you're

13:15

taken to other workbooks. But anyway, what can

13:17

people do if they're not just to talk

13:19

to Excel now? Right.

13:21

I think you kind of alluded to

13:23

it. But the main way there are

13:26

a couple of packages, one is actually

13:28

built into pandas. But I think it's

13:30

a dependency on open py Excel. But

13:32

yeah, that basically, I've

13:34

been playing around with that recently to

13:36

try and see if I can get

13:38

support for the new Python based cells

13:41

in that parser. Turns out parsing XML

13:43

is not fun and not something I

13:45

like doing. But basically,

13:47

the last two days parsing Excel

13:49

are XML. Oh, my gosh, it's

13:51

not funny. And in particular, you

13:53

know, standardized document specs, because that's

13:56

basically so there are wonderful packages

13:58

out there already that do. this

14:00

for you. And so what you would

14:02

do is you basically just hand your

14:04

excel file CSV whatever to these packages

14:07

and they would return them as basically

14:09

whatever you like. Usually I go to

14:11

pandas tables because there are data frames

14:14

because why not? But yeah, so there's

14:16

basically any format that you could pretty

14:18

much want. There's probably already really nice

14:21

to import that and you can just

14:23

go right on your merry way using

14:25

your python. Yeah, you can use the

14:27

xlsxwriter if you want to like create

14:30

excel. Yeah, yeah, yeah. Right? Like yeah,

14:32

it's really cool. You can even like

14:34

make plots but you can from Python

14:37

make a plot in the excel worksheet

14:39

so that when somebody opens it they

14:41

see the plot made in excel. Kind of

14:43

crazy. This

14:45

portion of talk python is brought to

14:47

you by posit the makers of shiny

14:49

formerly our studio and especially

14:52

shiny for python. Let

14:54

me ask you a question. Are you building awesome

14:56

things? Of course you are. You're

14:58

a developer or data scientist. That's what we

15:00

do and you should check out posit connect.

15:03

Posit connect is a way for you

15:05

to publish share and deploy all the

15:07

data products that you're building using python.

15:10

People ask me the same question all the time.

15:12

Michael, I have some cool data science project or

15:14

notebook that I built. How do

15:16

I share it with my users, stakeholders,

15:19

teammates? I need to learn fast API

15:21

or flask or maybe view or react.js.

15:24

Hold on now. Those are cool technologies and I'm

15:26

sure you benefit from them but maybe stay focused

15:28

on the data project. Let posit connect

15:31

handle that side of things. With posit

15:33

connect you can rapidly and securely

15:35

deploy the things you build in

15:37

python. Streamlet, dash, shiny, bokeh, fast

15:39

API, flask, quarto, ports,

15:42

dashboards, and APIs. Posit

15:44

connect supports all of them and posit

15:46

connect comes with all the bells and

15:48

whistles to satisfy IT and other enterprise

15:51

requirements. Make deployment the easiest

15:53

step in your workflow with posit

15:55

connect. For a limited time you

15:57

can try posit connect for free

15:59

for three months by going to

16:01

to talkbython.fm slash posit. That's talkbython.fm

16:03

slash posit. The link is in

16:05

your podcast player show notes. Thank

16:08

you to the team at posit for supporting

16:10

TalkByThon. That's

16:13

been around for a long time. That's not like an

16:15

announcement. Right, people have been, there's been

16:17

different ways and they've come in and

16:20

out of support for different Python

16:22

versions and stuff. But

16:24

there are ways to kind of do that. And

16:26

I see that a lot of people are

16:28

like, I'm working in notebooks, but the final

16:30

consumer of this information is not

16:32

a data scientist or a Python person. They

16:35

live in Excel and they live in Outlook.

16:37

The only thing that can give them is

16:39

Excel spreadsheets or a PDF. Yep, that is

16:41

pretty much always the output of my

16:43

notebooks is I either export it like

16:46

the whole notebook as a PDF or

16:48

yeah, basically organizing things such that I

16:50

can use pandas or something to export

16:53

it to an Excel workbook. But it's

16:55

kind of a pain then because you

16:57

have your, there's that translation step

17:00

that you kind of have to keep going back

17:02

and forth. If you're dialoguing, somebody says, oh, but

17:04

what happens if you do this? And it's like,

17:06

okay, I gotta go rerun and remake a new PDF

17:08

for you. Could you just like do it? I just

17:10

need a quick change. Like, could you just incorporate that

17:13

like, yeah. It's not

17:15

the same change, we gotta read. Ideally, we

17:17

all have nice DevOps pipelines where you just

17:19

commit a change to source and it re-renders

17:22

all the notebooks. That's in a perfect

17:24

world. Of course, that's how it works. Obviously, that's how I always

17:26

work. It is. So

17:28

I guess, before we get into the details

17:31

of how this works, like why? Right,

17:34

because we just laid out, it is possible to like

17:36

go to notebooks, have Excel kind

17:38

of as an output and a save as

17:41

in a sense. The biggest thing for me

17:43

is like, well, it's not intended, of course,

17:45

as any sort of replacement. It really is,

17:47

as you were kind of mentioning before,

17:49

it's like a different front end sort of

17:52

thing. Like we view, there's Python scripts,

17:54

there's Jupyter notebooks, which is kind of like

17:56

an alternative front end. Before writing that Python

17:58

code, I kind of think of... using Excel

18:00

and Python like this as kind

18:02

of using a different kind of

18:04

data first. Like whenever we're thinking about

18:06

data, it's usually in some form of

18:09

grid or table or something like that.

18:11

So like being able to work with

18:14

the data kind of visually in that

18:16

sort of UI is really, really interesting

18:18

and kind of to the point that

18:20

you just made about like the end

18:23

consumer might only know how to use

18:25

Excel and doesn't know anything about Python

18:27

or doesn't know anything about running DevOps

18:29

pipeline. I didn't mean that comment either

18:31

to be disparaging because there are

18:34

people that do incredible stuff with Excel. Maybe

18:36

they shouldn't, but they can and they do.

18:39

I have in kind of delving trying to

18:41

understand what are like the weirdest things Excel

18:43

can do as I've been trying to make

18:45

demos. Like people do some weird like competitions

18:47

with Excel, like there's the painting in Excel.

18:50

Is there a flight simulator in

18:52

there? A flight simulator like you

18:54

can you know with macros, it's

18:57

very scary. So I yeah, absolutely

18:59

like I am not an Excel

19:01

pro. I am a Python developer

19:03

who uses Excel when prompted basically.

19:05

Yeah. Well, there's no

19:08

question, absolutely no debate

19:10

about it that the upper bound of what you

19:12

can do with Python is greater than the upper

19:14

bound of what you can do with Excel. But

19:16

so many people just have they have tabular data

19:18

and they need reports and understanding and change

19:20

this what happens there. Yeah. And

19:23

I think the biggest value like kind

19:25

of having played with this now for

19:27

a little over half a year is

19:29

collaboration. You don't have that kind of you don't

19:31

have to have that iteration loop between okay here

19:34

we talked about it or you know you came

19:36

and sat at my computer while I showed you

19:38

you know my Jupyter Notebook so we can make

19:40

changes like that. All of the things like having

19:43

multiple people in the Excel doc at once you know

19:45

you can just send the share link and they

19:47

can join and they can run things in the notebook

19:49

they don't have to install or set up Python

19:51

and you can just you can leave comments

19:53

like you would in Word docs so like

19:55

basically that whole kind of review

19:58

and collaboration workflow. just

20:00

turns into something that people are already pretty

20:02

familiar with with like Word docs and stuff

20:05

like that Which is a thing that Jupiter

20:07

notebooks generally don't have so I think that's

20:09

kind of the one of the most interesting

20:11

Differentiators between them. Yeah, I just

20:14

like an hour and a half

20:16

ago released the episode on Notebook

20:19

7 and Jupiter lab 4 which comes

20:21

with the real-time collaboration. Yeah, which is

20:24

really exciting So it's

20:26

on the horizon Yeah If it hasn't

20:28

been like a common thing But even

20:30

so again a lot of these people are not

20:32

gonna be in the notebooks to collaborate with you

20:35

Right, right. It's fine and you played with this

20:37

for a while how much of this is going

20:39

to be a gateway Experience to

20:41

doing more like I

20:43

couldn't remember that Excel formula But I asked

20:45

co-pilot and told me to do this Python

20:47

thing and I it totally made more sense

20:49

to me Maybe I should just

20:51

learn a little more Python and and kind of grow

20:54

beyond Excel Like what do you think of this as

20:56

a first step for many people would go? I'm

20:58

not a programmer No way if not

21:00

a geek no, but then they are

21:02

yeah They totally are like if you're playing around

21:04

with a bunch of numbers and making fancy spreadsheets

21:06

and stuff. I'm sorry You're you're nerdy

21:09

about data. And so yeah, I

21:11

think it's a really because there are lots of

21:13

really cool things You can do with Excel But

21:15

as you say like some of the plotting features

21:17

and stuff You can't do like

21:19

you can maybe do but it'd be really hard

21:21

and some it might just be straight up Impossible

21:24

to make you know, like some of the map

21:26

plot lib multi-paneled Aligned plots

21:28

with like interesting statistical plotting

21:31

things that aren't just your standard bar

21:33

and chart sorts of stuff So like if

21:35

you're trying to do some of those statistical

21:37

modeling things or the other big thing is

21:39

like the Python and Excel One of

21:41

the it has Pytorch and stuff like that

21:44

So if you want to do just kind of like

21:46

entry-level machine learning sorts of stuff and you don't want

21:48

to have to like Set up your

21:50

big data source and SQL servers, you know,

21:52

whatever what have you to work with it?

21:54

If you just got your spreadsheet of like

21:57

your home sensor data or something like that

21:59

you can actually just have it make a

22:01

regression model and you don't have to like spin

22:03

up a whole thing you know in environments and

22:05

stuff like that. When you predict the battery in

22:07

your gate will be dead next week. I'm going

22:10

to need to take an action on this. Which

22:12

would be great when then I dismiss the notification

22:14

and still don't remember to do it. Why

22:17

can't we leave the house? Well remember that notification said you're not going

22:19

to be able to open the gate in a week? That

22:21

was a week ago. Mm-hmm sounds familiar. I know

22:24

we were talking earlier that you have some cool

22:26

home assistant automation and stuff. Yeah, yeah, yeah. Awesome.

22:30

So let's just jump

22:32

into it. I mean let's talk about what is Python

22:34

in Excel? Like how do people use it? What

22:36

can it do? What can it do? In

22:39

short, basically having the Python in Excel feature

22:41

means that you can when you're in a

22:43

cell if you type the equal sign which

22:45

is usually how you start a function in Excel.

22:47

Right, you might type equal some parenthesis and then

22:49

off you go something like that. Exactly. You

22:52

drag it around. So you type equals and

22:54

then you type py open parenthesis and that

22:57

basically turns the cell now into a

22:59

Python cell. So it'll have a

23:01

little visual change. It'll turn green

23:03

on the left and there's also

23:05

a keyboard shortcut to do this. It should put the

23:07

Python logo. It should be like a blue, yellow, or

23:09

a cloud. Yeah, green

23:12

is kind of the cell color. I don't know. It

23:15

is green. Anyway, we can file feedback

23:17

on every file. Community

23:19

feedback for the Python people. We need the Python

23:21

logo in there. Let's make it happen. The

23:23

idea is that basically you can change

23:25

a cell in the Excel notebook into

23:27

one that basically is kind of like

23:29

a Jupiter cell. You can type

23:31

Python code. You can import modules.

23:34

You can write functions. You can

23:36

print things like basically anything

23:39

that would be valid in a Jupiter notebook cell. Maybe

23:41

not necessarily the magic commands but

23:44

like it's fair game. Sure. You can get to

23:46

the shell as a hacker I just do. I

23:48

did actually try a lot of that. I

23:51

should say, once you've typed in your code

23:53

there and you run the cell with control

23:56

enter, it's not shift enter because that's a

23:58

very established keyboard shortcut in Excel. Excel

24:01

which moves you around in the grid. So,

24:03

pro tip, remember it's control, enter. But

24:06

what happens then is basically Excel

24:08

connects to a container instance in

24:11

Azure which has a

24:13

standardized Anaconda provided environment. So

24:15

it's an Anaconda environment that

24:18

has a fixed

24:20

declarative set of packages which is

24:22

basically kind of what 80 to

24:24

90% of projects use. We

24:27

can talk about like which ones that are, which

24:29

ones are in that environment in a second. But

24:32

your code then runs in this, you know,

24:34

it referred to as like an iron box

24:37

in this container instance. So it does not,

24:39

there's- I don't know who you are. It

24:41

doesn't know you, well, I mean,

24:43

you are, and it's basically running a

24:46

Jupyter kernel in that box. So like

24:48

the kind of communication, if

24:51

you have multiple cells in your sheet that have

24:53

Python code in it, every time you make a

24:55

change, you know, just like an Excel would normally

24:57

kind of like recalculate everything in the sheet, it

25:00

will basically ping that iron box as

25:02

if it was kind of like a

25:04

Jupyter notebook. That's the thing that surprised

25:07

me most is that it doesn't just

25:09

run locally because you could embed the

25:11

Python runtime into Excel without any trouble.

25:13

Yes. And- In terms of making

25:16

the good path work. Yes. But

25:19

I think part of the, you know, part of the

25:21

design philosophy with this as a feature to Excel

25:24

is this is an enterprise

25:26

product that enterprises want to use and

25:28

IT admins want to feel good about,

25:31

you know, what security permissions, things, you know,

25:33

where data can come from, like

25:36

all the permissioning, you

25:38

don't want the- compliance good stuff. to go, it does

25:40

what? Yeah, no. No, we're not doing

25:42

that. And we just recovered from the ransomware thing. So

25:44

we're definitely not, we're done. So

25:46

what are the restrictions? It has no network

25:49

access. Yeah, so that iron box does not

25:51

talk to, the only thing it can talk

25:53

to is your, you know, instance of Excel.

25:55

It can receive commands, but it doesn't. It

25:57

does not touch the internet otherwise. Interesting. So,

26:00

that automatically changes maybe what some people

26:02

think like for example, Pandas

26:05

read CSV, give it a URL and

26:07

say I want the third table. Like

26:09

it's not gonna do those types of

26:11

things or you can't do request.get against

26:13

some external data. Mm-hmm. Which

26:15

initially I was like really sad about. I

26:18

understand the security things but was a bit

26:20

sad. But then some of my Excel friends

26:22

showed me because this is also kind of

26:25

a challenge in Excel too like you know

26:27

how do you get data, people have things

26:29

in SQL servers, people are databases more

26:31

generally. Every minute I want to have

26:33

it refresh. Yeah, like that kind of

26:35

it's not concurrency but like keeping everything

26:37

up to date is a really big

26:40

headache and the thing is Excel is

26:42

already very good at addressing this. So

26:44

there's something called Power Query which is

26:46

another feature of Excel and that's basically

26:48

so the scenarios like you described like

26:50

if there's a CSV somewhere in a

26:52

GitHub repo that I want to pull

26:54

in, you can use the

26:56

Power Query feature can go fetch that

26:58

and bring that into your Excel file

27:00

that then you can use with Python and

27:03

Excel. So it kind of separates that task

27:05

of getting the data to work

27:07

with kind of prize that out of

27:09

the Python piece but puts it in

27:11

much safer hands. Sure. Secure

27:14

hands I guess if that makes sense.

27:16

Yeah, restricted hands. Okay, it

27:18

doesn't have access to your account, it doesn't

27:20

have a token to your account like your

27:22

Office 365 or whatever. Yeah, it's pretty locked

27:25

down. You can't pip install things, it comes

27:27

free, free can. Yeah. It

27:29

does what it says on the tin and like okay, these are the things

27:31

I can do. Yeah, and

27:33

that again sounds kind of sad

27:35

but honestly like I've been trying to make

27:37

a bunch of samples and stuff and I

27:40

haven't run into too

27:42

many like it's got

27:44

Numpy, Panda, Sci-Fi, Seaborn,

27:46

Astro-Pi. Yeah, Astro-Pi

27:48

is pretty awesome. It's got Matplotlib.

27:51

Yeah. PiTorch and he

27:53

said pi wavelets, how's that for a

27:55

throwback to my mathematical days? That's like

27:57

fast 4a transform, don't work more complicated.

28:00

Scikit-learn, SciPy, SimPy. There's

28:03

your Matlab or your Mathematica right

28:05

there. Yeah, and others, I'll

28:08

link to the options. This

28:12

portion of TalkPython to me is brought to you

28:14

by the PyBites Python Developer

28:16

Mindset Program. It's

28:19

run by my two friends and frequent

28:21

guests, Bob Deldebose and Julian Sequira. And

28:23

instead of me telling you about it, let's hear

28:25

them describe their program. 2024

28:29

is unfolding and with it comes a

28:31

world of opportunities in the Python landscape.

28:34

Opportunities for your Python career and journey

28:36

can come from anywhere and at any

28:38

time. Are you ready to seize them when

28:40

they do? Don't let this

28:42

be the year when opportunities pass you by.

28:45

Our Python coaching is designed to

28:47

prepare you for the unexpected, to

28:49

equip you with the skills and

28:51

confidence needed to tackle any

28:53

Python challenge. Whether it's a

28:55

dream job, a complex project, or

28:58

a new venture, you need to be ready

29:00

for it. With PyBites coaching, 2024

29:02

won't just be another year. Check

29:06

out our PDM program and take the first

29:08

step towards a year filled with Python success.

29:11

Don't just dream about being a developer,

29:14

achieve it with PyBites. Apply

29:16

for the Python Developer Mindset today. It's

29:19

quick and free to apply. The

29:21

link is in your podcast player show notes. Thanks

29:24

to PyBites for sponsoring the show. It

29:28

really does cover most of, obviously

29:31

there are still plenty of cases where you

29:33

will just want to use Python and that's

29:35

okay. This is in

29:37

no way, shape, or form is

29:39

this supposed to take over your

29:41

entire Python workflow. It's really, I

29:43

still am doing my Python development,

29:45

but basically if there are people

29:48

who I know I want to

29:50

especially communicate what I'm doing to, who

29:52

that is their language, I now have a

29:54

tool that I can kind of put the

29:56

things that I would normally have in my

29:59

development environment. in a tool that

30:01

they can access and interact with too that also

30:03

doesn't feel super bad to me. Well,

30:07

what's the alternative? It's the right Excel

30:09

functions and VBA macro. Yeah, I know.

30:11

I'm not doing that. Yeah, it's

30:13

a pretty massive upgrade and I do think it's

30:15

gonna be a bit of a gateway like, you

30:17

know what? This Python stuff is not that complicated.

30:19

It's kind of cool maybe. What do you do

30:21

with those notebooks again? I think

30:23

that'll be cool. Yeah, yeah. I think

30:26

that'll happen. When I think about writing Python, I'll

30:28

use something like PyCharm, like really cool code like

30:30

analysis and then think about it like with

30:33

rough maybe running that's like an integration and

30:35

autocomplete and there might even be like an

30:37

AI magic or maybe this is happening in

30:39

VS code in a real similar way. Then

30:41

when I think about writing Excel formulas, it's

30:43

like one line across. These are not the

30:46

same. So what is it like to write

30:48

Python in Excel? Yeah,

30:50

it definitely I do generally

30:53

try to keep like when I write note

30:55

like in Jupyter notebooks I try to keep

30:57

myself small and not just have giant things

31:00

but yeah, you're totally right like even just

31:02

from the view you can't really

31:04

drag it much bigger than a couple lines.

31:06

You can expand it so it's at least

31:08

multi-line. Yeah, you can see multi-line and that's

31:10

fine and it has syntax highlighting and it does

31:13

have like tab completes. It got like the...

31:15

Does it do like the language server? Language server,

31:17

yep, yep, yep. So yeah, that's actually pretty good.

31:20

As I think was in the keynote

31:22

stuff today, there's co-pilot in Excel and

31:24

so like we'll see I think some

31:26

of these AI features also kind of

31:29

help speed up some of those things. So

31:31

like if you're like I just I want

31:33

a pandas table here and you know to

31:35

convert this part of you know the diction

31:37

the column that's all dictionaries to like their

31:39

own columns and stuff like that it'll just

31:41

write it for you and you don't have

31:43

to that editor editing experience

31:46

is definitely not the same as

31:48

you know working in my beloved vs code

31:50

but well if the keynote here at this

31:52

conference was a drinking game and AI was

31:55

a word you wouldn't have lasted 15 minutes

31:57

and it was two and a half hour.

32:00

There was so much AI this and AI that

32:02

and the AI talking to the AI and here's

32:04

and it's it's quite something But they did show

32:06

a really cool thing of like I've got some

32:08

Python code in here and I've got some Some

32:11

related data and just asking like alright help me

32:14

graph this in Python It would show you like

32:16

a seaborne graph or a matplotlib or something like

32:18

that, which is pretty excellent Honestly, yeah And then

32:20

in this case here then it would be in

32:22

a format that you could share with somebody that

32:25

they could then Excel has what

32:27

if scenario features where it makes it really

32:29

easy to be like well, you know Here's

32:31

the forecast or whatever, but what if this

32:33

change what if interest rates go up? And

32:37

you have like these little drop downs like all

32:39

of those actually work And so like I can

32:41

use cells that are like drop down data validated

32:44

drop down cells and that just feeds as

32:47

Feeds into my Python code and changes,

32:49

you know, like the theme I'm using for

32:51

my matplotlib plots or something like that Go

32:54

a little meta for a moment. Could I

32:56

use? pandas are Excel

32:59

Xls Xsl X writer whatever

33:02

the extension is to

33:04

write an Excel workbook Reggie

33:06

that itself does it has Python in it

33:08

in principle. Yes Are there just formulas or

33:11

just strings that go into formulas? Yes And

33:13

that's precisely what I've been working on recently

33:15

is to try and figure out how to

33:17

integrate into some of those The existing Python

33:20

packages because basically what you need to do

33:22

is make sure all of that data is

33:24

Inserted into the XML document model

33:27

in the right way and stuff

33:29

like it's pretty cool Like you

33:31

can take it you can take an Excel You know an

33:33

Excel notebook if you just change extension to zip then

33:36

you get to see all the XML that's inside

33:38

of it And you can just read hill you

33:40

can just see the sheets that are like here's

33:42

the the Python functions And you can just see

33:44

the strings and stuff like that So you don't

33:47

think there's anything blocking that and that's something that

33:49

I want to be able to help contribute if

33:51

I can to the community So that you could

33:53

actually programmatically write your Excel Sheet

33:56

with Python from right and so things that are

33:58

not allowed like screen scrapers or

34:00

talking to a database, you could kind of

34:02

burn that into Excel as like fix data

34:05

because then keep rebuilding that workbook or something

34:07

like that. All right integration

34:09

between Excel and Python. In Excel, I can say

34:11

I want to take the sum and I select

34:13

the big section and it's like a

34:15

1 colon a 20 and it

34:18

sums those up. But in Python, data

34:20

science land, I don't even know what

34:22

that is. So how do I make,

34:24

obviously the point having Python there is

34:26

to access chunks of data, process it,

34:28

do other things to it, turn it into graphs. What's

34:31

the interop story? Part of the Python

34:33

and Excel feature is that in that

34:35

con environment, there is a module called

34:38

Excel. The abbreviation as

34:40

it's loaded is the letter

34:42

X and then the letter L.

34:44

Basically, that allows you to access

34:47

all kinds of data and properties

34:49

of the worksheet in Python. So

34:51

that's basically whether anything from like

34:54

the cell styling to you can

34:56

literally just put Excel parentheses and

34:58

then in the string, the Excel

35:00

selection, you know, a 1 colon whatever

35:03

selections and it will just then

35:05

is already available in Python. So

35:07

there's kind of this interop package

35:09

that allows you to transition data

35:11

models between what Excel thinks

35:13

of as data and what Python thinks of

35:15

as data. Yeah and basically that comes

35:17

out as a pandas data frame, right?

35:20

Yeah in general, once you run a Python

35:23

or a Python an Excel

35:25

cell that has Python code in it, you run

35:27

it. There's a

35:29

lot of cells, sheets, code. After you

35:31

run it, you have the option of

35:34

two different output formats actually. So you

35:36

can by default, I think it outputs

35:38

as a Python object. Yeah. If it

35:41

recognizes that it's a string or

35:43

a list, it might just display that.

35:45

Or you can kind of intentionally cast

35:47

it to an Excel data type. And

35:50

again, if it can automatically understand that,

35:52

oh, this dictionary should just be in

35:55

a list or something like that. And a lot

35:57

of that functionality is Kind of provided

35:59

by... It a collaboration with anaconda. You'll

36:01

see like if you hover over if you

36:03

have it return like a a python object.

36:05

If you hover over it it'll show you

36:07

like in of the class at might have

36:09

some so you the properties and then you

36:11

could drill and and say turn know turn

36:14

the output into the slaying this property but

36:16

it shows the a little pop up with

36:18

the anaconda logue of sports stuff yeah that

36:20

that's him in or same brand in there

36:22

are no I did notice that as well

36:24

that in Jupiter I can have a cell

36:26

like say like eggs equal something and then

36:28

some other point in time who. I can

36:30

say X squared. Whatever that assumes

36:33

I'm running them. Top.

36:35

To bottom or at least those to sell.

36:37

The one that finds the axis run before

36:39

the one that uses the acts which makes

36:41

notebooks little bit non deterministic. in if you

36:43

don't just go run ourselves but it excels

36:45

exit a whole nother level ride this refers

36:48

to that was points over there and then

36:50

I goes up and then he goes back

36:52

to visit all over. how do we make

36:54

sense of like the connections? Yeah it is

36:56

something that I like always is very impressive

36:58

about Excel because. I like copy and paste.

37:00

tons of things and some all the references

37:03

stay correct. In. A logic that's not what would

37:05

happen if I respected my Python code. By.

37:07

Default the execution order those left

37:09

to right and then down. South.

37:11

That's something I got Earth I

37:13

generally. Just kind of my invention. Use

37:16

single. Columns assessed that's going down and left

37:18

to right on the number of work seat.

37:20

So to evaluate everything in the first like

37:22

the up tabs at the bottom for separate

37:24

seats dat you and go cross see as

37:26

well. Oh yeah yeah and so like honestly

37:28

one of the things that have habits I've

37:30

developed working with this is the first seat

37:32

in like the top left corner I put

37:34

any sort of like in nets are things

37:36

that blink, things I want to have defined

37:38

everywhere. just put in literally the first sell

37:41

that it could ever possibly evaluate and then

37:43

everything else from there I will be what

37:45

it's going to be. Systems for and

37:47

it's that's I make sure those things.

37:49

And actually when it spins up, there

37:51

is a pre defined kind of start

37:54

ups definition block, so it will automatically

37:56

import pandas as be deemed numb. peers

37:58

and p like so you know have to

38:00

like a lot of that kind of standard boilerplate you

38:02

don't have to but if I'm doing

38:04

a notebook where I'm doing a lot of like

38:06

second learn yeah yeah I just always want to

38:08

have that there I just got a copy pasta

38:11

for that make a incredibly thin column

38:14

that that's the view word expanded right that's

38:16

actually I've done that yeah awesome but just

38:18

like in a Jupiter notebook though that kernel

38:20

like if you can define variables like that

38:22

X and you can use that anywhere else

38:24

and then you can also just put it

38:26

in a cell and you can have Excel

38:28

refer to it and it will also know

38:30

what data is there right you might have

38:32

to do the pi or the

38:34

XL to like transform yeah otherwise then you

38:37

just use it yeah yeah awesome so you

38:39

said this runs in Azure and

38:41

it's some lockdown container but

38:44

what version of Python like

38:47

what OS is the container running what's the story

38:49

what do you know about where this actually runs

38:51

are like the to the extent that

38:53

people will care yeah yeah so

38:55

I don't know the specific version

38:58

I'm guessing it's probably 311 but the idea

39:00

is that it is a well-known

39:03

and highly descriptive

39:06

and fixed container descriptive it's it's

39:08

running I believe it's just kind of

39:10

running on a standard boon to like

39:13

Docker it's an Azure container somebody could

39:15

do a sys stop platform and yeah

39:17

get that and get it out right

39:19

interestingly yeah you can try some of

39:22

that but how they've kind of helped

39:24

lock down some of that is there's

39:26

actually hooks because I was actually trying

39:28

to do this I was trying to exfiltrate

39:30

and or escape escape the box but

39:32

they actually seen me they

39:35

have hooks in the Python interpreter that

39:37

basically can catch anything before it touches

39:39

or anything outside of Python and so

39:41

it's I mean I am not a

39:43

security expert I am not a security

39:46

expert but any like naive sort of

39:48

like ha ha I'm gonna import system

39:50

like manipulate permissions OS run open Pippen

39:52

so all of that is pretty safe

39:58

Yeah, it's gonna be. You know, a modern. There's

40:00

no Python is gonna have everything up

40:02

to date and from a supply chain

40:04

standpoint, it's all provided by in a

40:07

which they have assertions about code origin

40:09

and stuff like that. So really it

40:11

should be a reproduce the most best

40:13

definition of a reproducible environment that will

40:16

literally it. So I even in perpetuity

40:18

like of you hand the worksheet to

40:20

somebody else and you ten years later

40:23

come back to it assuming you know

40:25

thera thousand blown up presumably a run

40:27

in a container of exactly the same

40:29

description. Seat on, have to worry about

40:31

owes. Shoot I wrote this and of

40:33

her son of place on that. Now

40:35

the package was built with Python. destroyed

40:38

our allies i'm sorry ass eye for

40:40

an Opportunism weren't so many things that

40:42

soul into that seventy I know it's

40:44

wrong. Yeah like so that the statement

40:46

that I saw and sort of us

40:48

abilities as exists in work both will

40:50

still calculate against the version of environment

40:52

the worth brick was created on and

40:54

users can be prompted to upgrade if

40:56

they want like new mirror and times

40:58

in Python versions or whatever. So. Basically

41:00

there's no requirements such his to

41:02

your project that Tom opinion your

41:04

versions but at the time increase

41:07

in their kind of snapshots effectively

41:09

penned virtual moment. He and as

41:11

I mentioned there is. Kind of like

41:13

a a sixty start up script for it

41:15

that does those and have suggested imports and

41:17

you know settings for things which isn't actually

41:19

view in Excel. It shows you and it's

41:21

read only right now but we eat that

41:23

might be a thing that you might be

41:25

able to edit at the beginning so if

41:27

you know there are the same things in

41:29

that one sell that I always put at

41:31

the beginning maybe I can change that for

41:34

my notebooks sorts of things ya so it's

41:36

still and preview it's not yeah you if

41:38

I go to my Excel that I've got

41:40

and sauna my mac and just try to

41:42

type this. Is the As Nine a

41:44

like not gonna words of estimate? How do

41:46

you get it suggests? So right now you

41:48

ads in the Windows Insider program. So

41:51

you have to have a

41:53

answer sixty five certain subscription for

41:55

itself. You have to enroll

41:57

in the. insiders program which is

41:59

in If you go to your

42:01

account settings in the app right now like because

42:04

it is a gradual rollout I think the initial

42:06

public preview was only in September. Yeah, it's pretty

42:08

new. Yeah, it's it's quite new Like pretty much

42:10

every week when I start working on this, I'm

42:12

like, all right What you know does

42:15

this look the same as it did last week? So

42:18

but right now it's only available for

42:20

Windows machines It is fully intended to

42:22

be available on all platforms including the

42:25

web-based version, which will be super cool

42:27

Yeah, but yeah right now windows initially

42:30

and the feature itself is

42:32

will have some sort of cost

42:34

but that is and how much

42:37

and when is TBD

42:41

Yeah, exactly. Yeah, awesome

42:43

Well really cool to get a look at

42:45

this I think for me personally I think the

42:47

coolest thing about it is that it's gonna expose more

42:50

people to Python Give them a little bit of confidence

42:52

and then they can go only 20 libraries Oh

42:56

over on my PI that org we're just under

43:00

500,000 maybe I could expand the world of it,

43:02

right? That's awesome Yeah, and you don't have to

43:04

like all right download a version of Python

43:06

now or download a version of anaconda now

43:09

Make sure you have all the things installed make sure

43:11

your permissions things on pass like all of that

43:13

just goes away We need a virtual environment activated

43:17

It's just already handled for you and get right

43:19

to the fun stuff. Yeah, that's super cool. All

43:22

right Well, I always ask at the end of

43:24

the show for some pie pi package that you

43:26

think is cool You've come across like anything you're

43:28

like, oh that's interesting people should know about it

43:30

doesn't have to be popular When

43:34

I can't think of the name Generates

43:37

a bunch of fake data for you

43:39

to use. Okay, there's I said makaru

43:41

and makaru is the website. Yeah, Baker Baker

43:44

is good, but this it's like hypothesis. Okay, come

43:46

up with a different one though Well

43:50

one that I is near and dear to

43:52

my heart is actually called PI QIR So

43:55

one of the mentioned the quantum computing stuff

43:57

before one of the open source communities. I'm

43:59

sorry really engaged with is

44:02

actually an open source consortium

44:04

to basically create a LLVM

44:06

style machine agnostic language

44:09

agnostic representation for quantum programs. Wow.

44:11

Okay. Which is really cool and

44:13

like coming most of programming right

44:15

now has kind of was born

44:17

in Python like Python was the

44:20

host for all of this but as it's

44:22

growing up and you know kind of leaving

44:24

the nest as it were from Python basically

44:26

we need ways to interrupt like this huge

44:29

existing tool ecosystem with actual hardware

44:31

and hardware that supports things that

44:33

basically the Python like mental model

44:35

doesn't really match up like and

44:37

that's why you kind of need

44:40

domain specific languages for quantum computing

44:42

but this PyQIR package gives you

44:44

kind of an easy way to

44:46

connect and like bootstrap that interrupt

44:49

from your quantum programs that you've

44:51

written in Python to

44:53

this intermediate representation QIR quantum

44:56

intermediate representation which

44:59

is actually LLVM so you can

45:01

you don't have to figure out

45:03

how to write an export LLVM

45:05

file. Yeah. Awesome. Which is both

45:07

very fun and informative and you can do it

45:09

through Python and Rust. The

45:12

PyO3 Rust crate is my favorite. Yeah.

45:14

Yeah. So that's if you're at all

45:16

interested in quantum computing stuff and

45:19

you have a Python skill

45:21

set or interest that would definitely be a

45:23

package I'd say go check out. Excellent. All

45:25

right. Well final call action people want to

45:27

get started with stuff what do they do?

45:29

Yeah definitely. There is a great blog post

45:32

with the original announcement that's got all of

45:34

the detailed steps for how you find and

45:36

enroll in the insiders programs but other

45:38

than that there is a GitHub repo if you

45:40

do get a chance to play with this and

45:42

find all the things that you hate about it

45:44

and want to come yell at me. I

45:48

field a lot of those questions and enjoy it.

45:50

So yeah you can just come file

45:53

issues on the GitHub repo and you know like

45:55

if something isn't working the way you thought or

45:57

you find a bug that's kind of the best

45:59

way. the team is very active

46:01

here. And so that's a great

46:03

way to kind of get some good

46:06

interaction with the folks who are building this in real

46:08

time. Very cool. Well,

46:10

Sarah, thanks for being here. Yeah, absolutely. Thanks so much for

46:12

having me. Yeah, you bet. Cheers. This

46:15

has been another episode of Talk Python to Me.

46:18

Thank you to our sponsors. Be sure to check out

46:20

what they're offering. It really helps support the show. This

46:23

episode is sponsored by Posit Connect from

46:25

the makers of Shiny. Publish,

46:27

share and deploy all of your data

46:29

projects that you're creating using Python. Streamlet,

46:32

Dash, Shiny, Bokeh, FastAPI,

46:34

Flas, Quattro, Reports, Dashboards

46:36

and APIs. Posit

46:39

Connect supports all of them. Try Posit

46:41

Connect for free by going to talkpython.fm

46:43

slash posit. P-O-S-I-T.

46:47

Are you ready to level up your

46:49

Python career? And could you use a

46:51

little bit of personal and individualized guidance

46:53

to do so? Check out

46:55

the PyBytes Python Developer Mindset Program.

46:58

Want to level up your Python? We have one

47:01

of the largest catalogs of Python video courses over

47:03

at Talk Python. Our content ranges

47:05

from true beginners to deeply advanced topics

47:07

like memory and async. And best of

47:09

all, there's not a subscription in sight.

47:12

Check it out for yourself at training.talkpython.fm.

47:16

Be sure to subscribe to the show, open your favorite

47:18

podcast app, and search for Python. We should be

47:20

right at the top. You can also

47:22

find the iTunes feed at slash iTunes,

47:24

the Google Play feed at slash Play,

47:26

and the Direct RSS feed at

47:28

slash RSS on talkpython.fm. We're

47:31

live streaming most of our recordings these days.

47:33

If you want to be part of the

47:35

show and have your comments featured on the

47:37

air, be sure to subscribe to our YouTube

47:39

channel at talkpython.fm slash YouTube. This

47:42

is your host, Michael Kennedy. Thanks so much for

47:44

listening. I really appreciate it. Now get out there

47:46

and write some Python code. This

47:48

is Matlab sonata, where I'm

47:50

descriptive at home. I use the

47:52

easy method on Fuck Filming to

47:54

play a game Steam run on

47:57

the Internet mobile native practices. I

47:59

have an old computer that says,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features