beetbox/confuse

[Package Structure] Break core into submodules

beasteers opened this issue · 1 comments

I just took a look back at confuse.py and I'm thinking that it would make life easier if we break it up into submodules. i.e.

  • confuse/config.py - Configuration, LazyConfig
  • confuse/views.py - ConfigView, RootView, SubView
  • confuse/templates.py - Template, ...
  • confuse/sources.py - ConfigSource, ...
  • confuse/util.py - xdg_config_dirs, ...
  • confuse/yaml.py - Loader, Dumper, ...
  • confuse/exceptions.py - ConfigValueError, ...

I was looking at #83 and I would need to move classes to the top to fix a merge conflict, so instead of doing that and making annoying diffs, I'll just leave this here.

Yeah, I think it might be about time to break up the monolith. This specific structure sounds good overall—the only things that might make sense to keep together would be some combination of the config classes, the views, and the sources, which don't always have a perfect separation from one another.