<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://pd.mjplab.uk/</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/explore</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary/stdlib</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary/stdlib/typing</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary/stdlib/typing/Generic</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary/stdlib/typing/ParamSpec</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary/stdlib/typing/Protocol</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary/stdlib/typing/TypeVar</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/glossary/stdlib/typing/TypeVarTuple</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/handbook</loc>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/allocation-object-churn-memory-locality</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/asyncio-cancellation-is-api</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/attribute-lookup-from-dot-to-descriptor</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/benchmark-python-without-lying</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/callable-objects-function-like-behavior</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/circular-imports-partially-initialized-modules</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/closures-capture-cells-not-frozen-values</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/containers-bundles-of-protocols</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/context-managers-encode-cleanup</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/cpython-specializing-interpreter</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/crossing-python-boundary</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/deque-heap-bisect-choosing-container</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/dictionaries-under-the-hood</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/escape-the-nested-if</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/exceptions-control-flow-with-machinery</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/fastest-operation-algorithm-avoids</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/finalization-is-where-simple-models-fail</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/finders-loaders-module-specs-import-hooks</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/fixtures-dependency-graph</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/frames-locals-globals-builtins</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/function-calls-and-vectorcall</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/how-classes-are-built</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/import-state-module-caches-test-isolation</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/inside-cpython-allocator</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/iterators-change-the-question</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/lists-are-dynamic-arrays</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/names-are-part-of-design</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/names-are-references-but-not-enough</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/patch-where-name-looked-up</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/plugin-discovery-without-directory-scanning</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/processes-serialization-design</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/profile-first-find-where-time-went</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/protocols-beat-inheritance</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/reading-bytecode-without-cargo-culting</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/reference-counting-and-cyclic-garbage-collection</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/sets-dictionaries-different-tradeoffs</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/strings-unicode-storage-strategies</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/structural-typing-runtime-protocols</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/super-cooperative-mro-machine</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/sys-modules-import-cache</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/task-groups-failure-propagation</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/testing-concurrency-cancellation-without-timing-roulette</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/the-gil-without-folklore</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/threads-tasks-processes-different-waits</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/transformations-over-loops</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/tuples-records-cost-of-shape</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/weak-references-and-caches-that-can-let-go</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/what-compile-actually-produces</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/posts/what-slots-really-changes</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/concurrency</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/data-structures</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/faster-python-measured</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/identity-memory-lifetime</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/import-system-api</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/object-model</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/object-model-protocols</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/source-to-frame</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/testing-mechanism</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://pd.mjplab.uk/series/zero-to-pythonic</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
</urlset>