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 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 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 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.
13 comments
[ 364 ms ] story [ 587 ms ] threadActually it doesn't.
It is simple.
It is not simplistic. It is not an API.
Would you do the same if you were about to make changes in a code base with only dictionaries and lists in it? :)
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 usually would prefer having everything behind the endpoint (such as Pydantic schemas & FastAPI) as simple dicts and lists.
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.