Minimalize dependencies and define scope #298
Replies: 2 comments 7 replies
-
@bunny-therapist thank you for the feedback, I really appreciate it and find it very useful. AboutHere you can read a bit of history/scope of the library: RequirementsAlong the time many features have been added (some requested by users, other for personal needs) and consequently also many requirements have been added. Recently I moved many requirements to EncryptionIn the past I made an encryption utility for a project I worked on and I thought it would have been useful to other users, so I created that issue as "reminder", but I don't know if it will ever see the light. Anyway... if some encryption utility will be added in the future, it will be surely an I hope to have clarified all your doubts. |
Beta Was this translation helpful? Give feedback.
-
@bunny-therapist there is also another discussion I started some time ago but nobody partecipated: #116 |
Beta Was this translation helpful? Give feedback.
-
Recently, several dependencies were extracted into "extras", which I think was a great move. I only wish it would go further.
We are currently using benedict exclusively for the keypath functionality and some general dict-utility functionality like "flatten". Because we are using benedict, we get an additional 6 dependencies (benedict has 7, but we already have requests as a dependency). As far as I can tell, most of these dependencies are only used in special utility functions like "get_string" and similar.
To me, the scope of python-benedict is unclear. The dict functionality is very useful (and, I suspect, the main thing people use from benedict?), but there is a plethora of functions like "get_string", "get_slug", "get_phonenumber", "get_datetime", etc, that all seem extremely specific and niche, and add further dependencies. It is not clear to me what the imagined scope of benedict is; theoretically, you could add a "get_" method for any conceivable object defined in some other library ("get_social_security_number", "get_timestamp", "get_monetary_sum", etc), and it is not clear to me where benedict draws the line. For example, I see issue #249 mentioning support for encrypted data, and I wonder if this will mean that benedict will get additional methods which add more dependencies in the future. Supporting, e.g., parsing of phone numbers in what is to a large extent an extended-dict-handling library already seems to suggest feature creep. As a user, I would have loved it if benedict was just keypath/keyattr/keylist dict with no further dependencies, or if that basic functionality was one library, and then another library with the rest of the functionality was built on top of it.
We are at the point where we are considering developing some alternative to python-benedict simply because of the extra dependencies and us being unsure about the future direction/scope of benedict. Will more dependencies be shifted to extras? Will more dependencies be added to benedict? Is there any limit to the scope of things benedict will support?
Beta Was this translation helpful? Give feedback.
All reactions