Feature request: only one function for loading files
thmsklngr opened this issue · 3 comments
Hi,
another idea which came into my mind is to provide just one function for loading data into an instance. Currently there are a number of class methods for creating a new instance with a type of file, i.e. from_json
, from_yaml
, etc.
This could be simplified with one function and parse the file according the extension or an optional keyword parameter:
>>> config = Box.from_file('/this/is/my/datafile.yml')
# or
>>> config = Box.from_file('/this/is/my/datafile.txt', file_type='yaml')
Just an idea, I had a similar implementation in my own config parser, but not as sophisticated like your package python-box
. It's really, really great, thanks for the efforts.
Regards, Thomas
Sorry for delay, This is actually already / still in discussion #195 . Feel free to add thoughts there!
I am also an IDIOT and forgot about my own code. There is box_from_file
already!
https://github.com/cdgriffith/Box/blob/master/box/from_file.py#L94-#L96
from box import box_from_file
box_from_file(".black.toml")
# Box({'tool': {'black': {'line-length': 120, 'target-version': ['py36', 'py37', 'py38'])
To clarify why it isn't a class function of, it's meant to be more powerful that it can return either a Box
or BoxList
as needed.
I am re-opening this becausse I need to add better docs for this in the wiki