René's URL Explorer Experiment


Title: OOP in Python, part 13: Serialization and ABCs

Open Graph Title: OOP in Python, part 13: Serialization and ABCs

X Title: OOP in Python, part 13: Serialization and ABCs

Description: MP 55: - What it takes to save an object, and a real-world use of abstract base classes.

Open Graph Description: MP 55: - What it takes to save an object, and a real-world use of abstract base classes.

X Description: MP 55: - What it takes to save an object, and a real-world use of abstract base classes.

Opengraph URL: https://www.mostlypython.com/oop-in-python-part-13-serialization/

X: @ghost

Generator: Ghost 6.52

direct link

Domain: www.mostlypython.com


Hey, it has json ld scripts:
{
    "@context": "https://schema.org",
    "@type": "Article",
    "publisher": {
        "@type": "Organization",
        "name": "Mostly Python",
        "url": "https://www.mostlypython.com/",
        "logo": {
            "@type": "ImageObject",
            "url": "https://storage.ghost.io/c/b0/88/b088fa59-ac78-44d9-9662-4c7568d7cb9a/content/images/size/w256h256/2024/02/logo_200px.png",
            "width": 60,
            "height": 60
        }
    },
    "author": {
        "@type": "Person",
        "name": "Eric Matthes",
        "url": "https://www.mostlypython.com/author/eric-matthes/",
        "sameAs": []
    },
    "headline": "OOP in Python, part 13: Serialization and ABCs",
    "url": "https://www.mostlypython.com/oop-in-python-part-13-serialization/",
    "datePublished": "2023-09-28T16:30:26.000Z",
    "dateModified": "2024-03-25T20:12:30.000Z",
    "image": {
        "@type": "ImageObject",
        "url": "https://storage.ghost.io/c/b0/88/b088fa59-ac78-44d9-9662-4c7568d7cb9a/content/images/image/fetch/w_2000,h_2000,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https-3a-2f-2fsubstack-post-media.s3.amazonaws.com-2fpublic-2fimages-2f7e9c4220-a237-4e12-9410-3b5ca86f1279_532x730.jpg",
        "width": 532,
        "height": 730
    },
    "keywords": "Newsletter, OOP",
    "description": "MP 55: - What it takes to save an object, and a real-world use of abstract base classes.",
    "mainEntityOfPage": "https://www.mostlypython.com/oop-in-python-part-13-serialization/"
}
    

referrerno-referrer-when-downgrade
og:site_nameMostly Python
og:typearticle
og:imagehttps://storage.ghost.io/c/b0/88/b088fa59-ac78-44d9-9662-4c7568d7cb9a/content/images/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https-3a-2f-2fsubstack-post-media.s3.amazonaws.com-2fpublic-2fimages-2f7e9c4220-a237-4e12-9410-3b5ca86f1279_532x730.jpg
article:published_time2023-09-28T16:30:26.000Z
article:modified_time2024-03-25T20:12:30.000Z
article:tagOOP
article:publisherhttps://www.facebook.com/ghost
twitter:cardsummary_large_image
twitter:urlhttps://www.mostlypython.com/oop-in-python-part-13-serialization/
twitter:imagehttps://storage.ghost.io/c/b0/88/b088fa59-ac78-44d9-9662-4c7568d7cb9a/content/images/size/w1200/image/fetch/f_auto,q_auto:best,fl_progressive:steep/https-3a-2f-2fmostlypython.substack.com-2fapi-2fv1-2fpost_preview-2f137014297-2ftwitter.jpg
twitter:label1Written by
twitter:data1Eric Matthes
twitter:label2Filed under
twitter:data2Newsletter, OOP
og:image:width532
og:image:height600

Links:

Mostly Python https://www.mostlypython.com
Homehttps://www.mostlypython.com/
Topicshttps://www.mostlypython.com/topics/
Serieshttps://www.mostlypython.com/series/
Abouthttps://www.mostlypython.com/about/
Contacthttps://www.mostlypython.com/contact/
Just readhttps://www.mostlypython.com/just-read/
Sign inhttps://www.mostlypython.com/oop-in-python-part-13-serialization#/portal/signin
Subscribehttps://www.mostlypython.com/oop-in-python-part-13-serialization#/portal/signup
Newsletterhttps://www.mostlypython.com/tag/newsletter/
https://www.mostlypython.com/author/eric-matthes/
Eric Mattheshttps://www.mostlypython.com/author/eric-matthes/
serieshttps://www.mostlypython.com/oop-in-python
previous posthttps://www.mostlypython.com/oop-in-python-part-12-enforcing-constraints/
next posthttps://www.mostlypython.com/oop-in-python-part-14-the-exception/
last posthttps://www.mostlypython.com/oop-in-python-part-12-enforcing-constraints/
marshmallowhttps://marshmallow.readthedocs.io/en/stable/index.html?ref=mostlypython.com
1https://www.mostlypython.com/oop-in-python-part-13-serialization#footnote-1
Here’shttps://github.com/ehmatthes/mostly_python/blob/main/mp55_oop13_serialization_abc/robot_class_write.py?ref=mostlypython.com
programhttps://github.com/ehmatthes/mostly_python/blob/main/mp55_oop13_serialization_abc/robot_class_read.py?ref=mostlypython.com
documentation for fieldshttps://marshmallow.readthedocs.io/en/stable/marshmallow.fields.html?ref=mostlypython.com
most relevant codehttps://github.com/marshmallow-code/marshmallow/blob/1822700684ddd6d46f56e6041f6eba2291bf1166/src/marshmallow/fields.py?ref=mostlypython.com#L880
source codehttps://github.com/marshmallow-code/marshmallow/blob/1822700684ddd6d46f56e6041f6eba2291bf1166/src/marshmallow/fields.py?ref=mostlypython.com#L76
full listinghttps://github.com/marshmallow-code/marshmallow/blob/1822700684ddd6d46f56e6041f6eba2291bf1166/src/marshmallow/base.py?ref=mostlypython.com#L14
classhttps://github.com/marshmallow-code/marshmallow/blob/1822700684ddd6d46f56e6041f6eba2291bf1166/src/marshmallow/fields.py?ref=mostlypython.com#L1723
documentationhttps://marshmallow.readthedocs.io/en/stable/custom_fields.html?ref=mostlypython.com#creating-a-field-class
Pydantichttps://docs.pydantic.dev/latest/?ref=mostlypython.com
mostly_pythonhttps://github.com/ehmatthes/mostly_python/tree/main/mp55_oop13_serialization_abc?ref=mostlypython.com
https://www.mostlypython.com/oop-in-python-part-13-serialization#footnote-anchor-1
Exploring chess games MP 171: A first foray into the massive Lichess database. I've been getting back into chess since moving to North Carolina, and as part of that journey I've been wanting to analyze games in ways that weren't really possible when I was last playing By Eric Matthes Jul 9, 2026 https://www.mostlypython.com/exploring-chess-games/
I keep being be impressed by uv MP 170: It understands my old projects! A few years ago I made a small project that automatically adds borders to screenshots, because macOS doesn't have a built-in tool to easily do that. For a couple years I installed it globally on every system I used, so By Eric Matthes Jun 25, 2026 https://www.mostlypython.com/i-keep-being-be-impressed-by-uv/
An LLM can't go for a walk in the woods MP 169: But we still can, and we should keep doing so. Regular readers of Mostly Python are probably aware that I'm currently working on gh-profiler. It helps open source maintainers make better-informed decisions about how much time to invest with users who open new PRs By Eric Matthes Jun 11, 2026 https://www.mostlypython.com/an-llm-cant-go-for-a-walk-in-the-woods/
Batching API calls MP 168: An obvious speedup, with a surprising side benefit. I've been working steadily on gh-profiler, while attending PyCon US and working on other projects as well. The project makes a number of calls to GitHub's API, and then analyzes the results to generate some By Eric Matthes May 28, 2026 https://www.mostlypython.com/batching-api-calls/
Sign uphttps://www.mostlypython.com/oop-in-python-part-13-serialization#/portal/
Ghosthttps://ghost.org/

Viewport: width=device-width, initial-scale=1.0


URLs of crawlers that visited me.