#459: Inverted dependency trees
About the show
Sponsored by us! Support our work through:
Connect with the hosts
- Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)
- Brian: @brianokken@fosstodon.org / @brianokken.bsky.social
- Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky)
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #0: Black Friday is on at Talk Python
- What’s on offer:
- An AI course mini bundle (22% off)
- 20% off our entire library via the Everything Bundle (what's that? ;) )
- The new Talk Python in Production book (25% off)
Brian: This is peer pressure in action
- 20% off The Complete pytest Course bundle (use code BLACKFRIDAY) through November
- or use save50 for 50% off, your choice.
- Python Testing with pytest, 2nd edition, eBook (50% off with code save50) also through November
- I would have picked 20%, but it’s a PragProg wide thing
Michael #1: PEP 814 – Add frozendict built-in type
- by Victor Stinner & Donghee Na
- A new public immutable type
frozendictis added to thebuiltinsmodule. - We expect
frozendictto be safe by design, as it prevents any unintended modifications. This addition benefits not only CPython’s standard library, but also third-party maintainers who can take advantage of a reliable, immutable dictionary type. - To add to existing frozen types in Python.
Brian #2: From Material for MkDocs to Zensical
- Suggested by John Hagen
- A lot of people, me included, use Material for MkDocs as our MkDocs theme for both personal and professional projects, and in-house docs.
- This plugin for MkDocs is now in maintenance mode
- The development team is switching to working on Zensical, a static site generator to overcome some technical limitations with MkDocs. There’s a series of posts about the transition and reasoning
- Material for MkDocs
- still around, but in maintenance mode
- all insider features now available to everyone
- Zensical is / will be
- compatible with Material for Mkdocs, can natively read mkdocs.yml, to assist with the transition
- Open Source, MIT license
- funded by an offering for professional users: Zensical Spark
Michael #3: Tach
- Keep the streak: pip deps with uv + tach
- From Gerben Decker
- We needed some more control over linting our dependency structure, both internal and external.
- We use
tach(which you covered before IIRC), but also some home built linting rules for our specific structure. These are extremely easy to build using an underused feature ofruff: "uv run ruff analyze graph --python python_exe_path .". - Example from an app I’m working on (shhhhh not yet announced!)
Brian #4: Some Python Speedups in 3.15 and 3.16
- A Plan for 5-10%* Faster Free-Threaded JIT by Python 3.16
- 5% faster by 3.15 and 10% faster by 3.16
- Decompression is up to 30% faster in CPython 3.15
Extras
Brian:
Michael:
- No. 4 for dependencies: Inverted dep trees from Bob Belderbos
Joke: git pull inception
Episode Transcript
Collapse transcript
00:00
00:05
00:10
00:11
00:12
00:19
00:24
00:26
00:31
00:35
00:37
00:38
00:48
00:50
00:54
01:03
01:12
01:16
01:18
01:22
01:24
01:31
01:33
01:35
01:36
01:39
01:42
01:43
01:43
01:44
01:46
01:53
01:57
02:02
02:05
02:06
02:10
02:12
02:16
02:17
02:19
02:21
02:27
02:34
02:41
02:48
02:53
02:58
03:03
03:08
03:14
03:19
03:24
03:31
03:34
03:40
03:46
03:51
03:57
04:04
04:11
04:18
04:25
04:28
04:39
04:43
04:45
04:48
04:53
04:55
04:56
05:09
05:16
05:20
05:24
05:28
05:36
05:41
05:45
05:52
05:57
06:02
06:06
06:07
06:10
06:13
06:19
06:22
06:27
06:28
06:34
06:40
06:43
06:47
06:51
06:55
06:58
07:03
07:08
07:13
07:18
07:23
07:26
07:30
07:32
07:36
07:37
07:43
07:46
07:46
07:47
07:51
07:53
07:54
07:56
07:57
08:01
08:04
08:08
08:13
08:17
08:20
08:23
08:25
08:28
08:30
08:32
08:35
08:37
08:39
08:44
08:45
08:47
08:50
08:51
08:54
08:58
09:05
09:09
09:17
09:22
09:26
09:28
09:31
09:33
09:34
09:35
09:38
09:39
09:40
09:41
09:42
09:46
09:47
09:48
09:49
09:55
09:56
09:57
10:01
10:07
10:11
10:20
10:22
10:32
10:40
10:46
10:49
10:53
10:53
10:56
10:58
11:00
11:02
11:09
11:10
11:12
11:15
11:17
11:27
11:41
11:49
11:55
12:00
12:03
12:07
12:20
12:26
12:29
12:33
12:48
12:52
12:56
12:58
13:00
13:01
13:09
13:12
13:15
13:17
13:20
13:21
13:25
13:26
13:28
13:36
13:45
13:50
13:52
13:54
13:59
14:00
14:01
14:04
14:06
14:11
14:17
14:22
14:24
14:29
14:33
14:39
14:46
14:47
14:52
14:55
14:57
15:02
15:08
15:09
15:13
15:15
15:19
15:25
15:29
15:35
15:43
15:49
15:52
15:53
15:59
16:01
16:07
16:08
16:09
16:09
16:11
16:11
16:18
16:21
16:26
16:29
16:33
16:35
16:36
16:39
16:40
16:42
16:47
16:53
16:59
17:03
17:09
17:14
17:20
17:21
17:28
17:30
17:33
17:40
17:43
17:50
17:56
17:57
17:59
18:03
18:04
18:08
18:15
18:20
18:24
18:30
18:36
18:42
18:48
18:53
18:59
19:04
19:09
19:10
19:14
19:17
19:20
19:22
19:25
19:27
19:30
19:33
19:37
19:38
19:39
19:46
19:51
19:52
19:56
20:07
20:08
20:11
20:14
20:16
20:17
20:22
20:25
20:26
20:30
20:34
20:38
20:41
20:42
20:46
20:49
20:52
20:52
20:57
21:00
21:08
21:15
21:22
21:30
21:37
21:42
21:48
21:50
22:07
22:12
22:15
22:18
22:22
22:26
22:32
22:37
22:43
22:44
22:48
22:50
22:54
22:58
23:00
23:05
23:07
23:12
23:16
23:20
23:22
23:26
23:35
23:36
23:37
23:39
23:44
23:45
23:47
23:48
23:50
23:50
23:54
23:55
24:00
24:05
24:11
24:12
24:22
24:27
24:31
24:37
24:52
24:55
25:07
25:08
25:09
25:12
25:13
25:17
25:18
25:23
25:24
25:30
25:32
25:35
25:36
25:40
25:42
25:45
25:47
25:51
25:54
25:57
26:00
26:00
26:05
26:06
26:06
26:10
26:12
26:15
26:16
26:17
26:22
26:26
26:30
26:32
26:35
26:37
26:40
26:45
26:46
26:47
26:49
26:51
27:01
27:04
27:08
27:10
27:13
27:17
27:23
27:29
27:33
27:34
27:36
27:43
27:43
27:49
27:53
27:58
28:00
28:04
28:08
28:14
28:23
28:24
28:26
28:35
28:39
28:41
28:42
28:47
28:47
28:51
28:52
28:52
29:09
29:21
29:28
29:29
29:32
29:38
29:40
29:45
29:47
29:48
29:50
29:57
29:59
30:00
30:04
30:10
30:11
30:11
30:16
30:21
30:22
30:26
30:26
30:29
30:32
30:34
30:35
30:37
30:43
30:46
30:54
30:59
31:04
31:08
31:13
31:19
31:25
31:32
31:38
31:43
31:48
31:56
32:01
32:08
32:14
32:21
32:26
32:34
32:38
32:45
32:50



