I used to be a strong proponent of this, but I tend to use dataclasses more and more with time. Still use a lot of dicts, lists, and sets, but mostly as collections, rarely to hold one single element data.
It came naturally, not out of some design, but I guess having better and better typing support everywhere makes it more and more convenient.
I like the simplicity but there are some social problems with this. Let's say that I work on a team which has codebases with classes/dataclasses and I add a new codebase that doesn't use them, or one that doesn't _underscore just about everything - the first thing that will come up in the code review is questions about why I'm doing things differently, and I wouldn't have a good reason apart from the fact that I find it more aesthetically pleasing.
I was referring to the simplistic and well-known way of accessing data from a dictionary, such getting the value for a specific key or even iterating the keys & values of a dictionary. There's also quite simple to merge several dictionaries, or even pick/omit to only work with the data that is actually needed in the actual context. What's your thoughts about that?
I haven’t used those tools, but I guess you would use the data types already defined in them and what is returned from the functions in there?
If you were about to pass on the result from a calculation to somewhere else, a dictionary or list would probably be a good idea. You probably wouldn’t want the entire system be aware of a Pandas specific data type.
[+] [-] sametmax|2 years ago|reply
It came naturally, not out of some design, but I guess having better and better typing support everywhere makes it more and more convenient.
[+] [-] david-j-vujic|2 years ago|reply
I usually would prefer having everything behind the endpoint (such as Pydantic schemas & FastAPI) as simple dicts and lists.
[+] [-] jstx1|2 years ago|reply
[+] [-] david-j-vujic|2 years ago|reply
Would you do the same if you were about to make changes in a code base with only dictionaries and lists in it? :)
[+] [-] chrisjj|2 years ago|reply
Actually it doesn't.
[+] [-] david-j-vujic|2 years ago|reply
[+] [-] JoeyBananas|2 years ago|reply
[+] [-] david-j-vujic|2 years ago|reply
If you were about to pass on the result from a calculation to somewhere else, a dictionary or list would probably be a good idea. You probably wouldn’t want the entire system be aware of a Pandas specific data type.