Pydantic is OP, here's why

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 64

  • @DuncanBooth
    @DuncanBooth 4 หลายเดือนก่อน +27

    The newer version of Pydantic encourages you to write validators using Annotated. For example:
    from pydantic import BaseModel, AfterValidator
    from typing import Annotated
    def validate_positive(value: int) -> int:
    assert value > 0, "must be > 0"
    PositiveInt = Annotated[int, AfterValidator(validate_positive)]
    class Order(BaseModel):
    id: int
    item_name: str
    quantity: PositiveInt
    and now you have a reusable type annotation for positive integers.

    • @Carberra
      @Carberra  4 หลายเดือนก่อน

      I've never much liked Annotated, just looks really messy and ugly. That looks neat though -- where in the docs did you find that? Pretty sure it's not in the Validators section.

    • @VictorOliveira-lg2qg
      @VictorOliveira-lg2qg 4 หลายเดือนก่อน +4

      Even better, Pydantic already provides types like that for convenience, which uses annotations. In this case, you can import PositiveInt like this:
      from pydantic import PositiveInt

    • @DuncanBooth
      @DuncanBooth 4 หลายเดือนก่อน +1

      @@Carberra I replied with the link but can't see my reply so perhaps youtube cut out the link. It's under concepts/validators, literally the first thing under the Validators heading.

    • @ndamu-soft
      @ndamu-soft 2 หลายเดือนก่อน

      This is a great tip, thanks for sharing!

  • @ButchCassidyAndSundanceKid
    @ButchCassidyAndSundanceKid 4 หลายเดือนก่อน +39

    The new version of Pydantic is re-written in Rust, should be a lot faster than before.

    • @Carberra
      @Carberra  4 หลายเดือนก่อน +6

      I've seen benchmarks claiming it's about 7x as fast as V1, didn't know that was the reason though!

    • @ButchCassidyAndSundanceKid
      @ButchCassidyAndSundanceKid 4 หลายเดือนก่อน +1

      @@Carberra Holy crap ! I thought it was fast, I didn't know it'd be that fast. I suppose the only other framework it can beat that is the gPRC and protobuf.
      v1 was written in Python, but v2 was written in Rust which is in the same league as C++, that probably explains about the superior performance.

    • @irlshrek
      @irlshrek 4 หลายเดือนก่อน

      i think if people have the time they should learn Rust!

    • @ButchCassidyAndSundanceKid
      @ButchCassidyAndSundanceKid 4 หลายเดือนก่อน +1

      @@irlshrek The question is "IF people have the time".

    • @gabriellevesque2185
      @gabriellevesque2185 4 หลายเดือนก่อน

      ​@@ButchCassidyAndSundanceKid Same League as C 😅

  • @ayehavgunne
    @ayehavgunne 4 หลายเดือนก่อน +1

    I like the library called apischema which lets you use dataclasses to achieve the same thing.

  • @HerozTech
    @HerozTech 4 หลายเดือนก่อน +1

    I was recently learning golang and coming back to python i missed struct but pydantic more than makes up for that
    Great video👍

  • @HerozTech
    @HerozTech 4 หลายเดือนก่อน +1

    one more thing
    What color scheme are you using, it looks awesome

  • @illiasukonnik9966
    @illiasukonnik9966 4 หลายเดือนก่อน

    Excellent video, thanks!
    Please use caching when playing with external APIs, be polite ))

  • @JohnMitchellCalif
    @JohnMitchellCalif 4 หลายเดือนก่อน

    super useful! Subscribed

    • @Carberra
      @Carberra  4 หลายเดือนก่อน

      Thank you!

  • @mjackstewart
    @mjackstewart 4 หลายเดือนก่อน

    Does it include Michaelmas?

  • @santiagohal6747
    @santiagohal6747 4 หลายเดือนก่อน

    I love this. This is brilliant.

  • @konstantinub
    @konstantinub 4 หลายเดือนก่อน

    What's the difference between Pydantic and Marshmallow? Can they be used to accomplish the same things?

    • @Carberra
      @Carberra  4 หลายเดือนก่อน +1

      I'm not sure how functionally different they are, but Marshmallow is certainly designed to used to define ORM-agnostic schemas for databases and convert to and from JSON data. I believe you can do the same with Pydantic, but I haven't used enough of Marshmallow to delve into the differences.

  • @davidmurphy563
    @davidmurphy563 4 หลายเดือนก่อน +1

    3:33 It took you a month to release this video? Are they better when they age? ;)

    • @Carberra
      @Carberra  4 หลายเดือนก่อน +6

      Like a fine wine 🍷

  • @pythonwithjames
    @pythonwithjames 4 หลายเดือนก่อน

    Really nice!

  • @ruslanoid
    @ruslanoid 4 หลายเดือนก่อน +1

    TIL about `kebab-case` (until now just called it dashes or hyphens)

  • @basb3603
    @basb3603 4 หลายเดือนก่อน

    What theme is that?

    • @Carberra
      @Carberra  4 หลายเดือนก่อน

      Link to setup is in the description (:

  • @greob
    @greob 4 หลายเดือนก่อน +1

    Pydantic is very interesting, and this makes me want to try using it more. Thanks for sharing!

    • @Carberra
      @Carberra  4 หลายเดือนก่อน

      You're very welcome!

  • @Mywifeleftme3
    @Mywifeleftme3 4 หลายเดือนก่อน +2

    My wife left me

  • @aeggeska1
    @aeggeska1 2 หลายเดือนก่อน

    What is bunting

    • @nibblrrr7124
      @nibblrrr7124 20 วันที่ผ่านมา

      Putting up national flags as decoration. (Had to look it up too.)

  • @gownerjones
    @gownerjones 4 หลายเดือนก่อน +2

    Isn't the whole point of it being spelled "pydantic" that you pronounce it "pie-dantic"? :D

    • @Carberra
      @Carberra  4 หลายเดือนก่อน

      It may well be, I actually don't know, never heard anyone else say it 😅

    • @gownerjones
      @gownerjones 4 หลายเดือนก่อน +3

      @@Carberra Well I'll be pedantic and pronounce it pie-dantic just for the irony lol

  • @NatalieMorgan-q9r
    @NatalieMorgan-q9r 2 หลายเดือนก่อน

    Harris Shirley Garcia Karen Perez Frank

  • @ChrisAdaline
    @ChrisAdaline 4 หลายเดือนก่อน +10

    Who else had to look up what bunting is?

    • @murphygreen8484
      @murphygreen8484 4 หลายเดือนก่อน

      This guy

    • @Carberra
      @Carberra  4 หลายเดือนก่อน +1

      How very unpatriotic of you! /j

  • @MoniRina
    @MoniRina 3 หลายเดือนก่อน

    Jones Lisa Williams Jose Lewis Gary

  • @CooperArmstrong-y4m
    @CooperArmstrong-y4m 2 หลายเดือนก่อน

    Brown Nancy Lewis Jason Miller Kenneth

  • @christianlinux8283
    @christianlinux8283 4 หลายเดือนก่อน +1

    I thought subclass config was deprecated

    • @Carberra
      @Carberra  4 หลายเดือนก่อน

      Huh, so it is. Why did they not remove that in 2.0? I just went with it cos it worked so I thought it hadn't changed.

    • @LSHDackel
      @LSHDackel 4 หลายเดือนก่อน

      @@Carberra The folks from pydantic put a lot of effort into making the v1 -> v2 migration as painless as possible, so many old things still work but normally give a DeprecationWarning. But DeprecationWarning's in python are by default silenced in user code and only raised in library code. There also is the bump-pydantic project (same github orga as pydantic) to make migrating even easier.

  • @damonguzman
    @damonguzman 4 หลายเดือนก่อน

    Explainer is better than code along.

  • @BealleMoriniE
    @BealleMoriniE 2 หลายเดือนก่อน

    Wilson Ruth Wilson Jeffrey Walker Timothy

  • @SusiePerez-d7o
    @SusiePerez-d7o 3 หลายเดือนก่อน

    Harris Scott Williams Donna Lopez Karen

  • @JoeyojHolmsop
    @JoeyojHolmsop 2 หลายเดือนก่อน

    Hall Jeffrey Jones Frank Rodriguez Susan

  • @shadmansudipto7287
    @shadmansudipto7287 4 หลายเดือนก่อน

    Lol. Use a non scripting language.