I’m hoping to gather some additional data about the use-cases and potential use-cases for farmOS Python APIs.
farmOS.py seems to have existed for almost a year now.
- What are you using farmOS.py for today?
- What do you imagine using farmOS.py or similar libraries for in the future?
More generally, what characteristics are most important to you in a farmOS Python library?
- High abstraction - “Provide a more ‘Pythonic API’ which favors a common abstraction which can work against past/current/future versions of farmOS over direct data parity.”
- Low abstraction - “Provide a Python API provides some conveniences, but otherwise favors parity with the data directly surfaced the data from the rest API over abstraction or following Python conventions.”
- Favor completeness - “I just want to have this one dependency, put everything in the main API.”
- Favor minimalism - “Just support the core stuff, I can build on top of that or take dependencies that do.”
- More concrete dependencies - “The API should declare all the things it might depend on and everything should work without needing me to declare extra dependencies - at the risk that I might need to resolve dependency conflicts between the API’s dependencies and my other dependencies.”
- Fewer concrete dependencies - “The API should only declare the bare minimum dependencies, if I use optional features, I’ll bring in the dependencies to support those as long as they are documented.”
- Python version agnosticism;
- “The API should work with everything >= Python 2.4.”
- “The API should only require that I’m using Python 3 or so.”
- “Give me the best stuff, even if it means the API only really works with >= Python 3.8.”
- “The API just needs to support synchronous use-cases.”
- “I have both synchronous and asynchronous use-cases for the API.”
- “I’ll probably only use asynchronous part of an API.”
- “Give me an opinionated configuration strategy for the API, I don’t want to evaluate/choose my own.”
- “I already have a configuration framework in the code I use or want to use the API with, just make sure it works with configuration framework X.”
- “I don’t care about config, just make sure I can use the Python part of the API without interacting with the ‘config’ part.”
The main motivation for these questions is some discussion we’ve been having in farmOS.py issue #31, but don’t feel obligated to read/follow that issue to chime in here!