One of the things I'm planning on doing this year is making most of the stuff in constants.py instead go into config files.  So like we'll have stuff that looks like

```
[constants]
[[badge_type_opts]]
attendee_badge = "Attendee"
staff_badge = "Staff"
```

which will end up just being the same as what we have now, and puppet can put the correct config files into place.  That will make ``siteconfig.constants`` and friends no longer necessary.

In the meantime, ``exec`` is fine, but a better approach would be to use the ``__import__`` function along with the ``globals`` function.  So you could say

```python
_siteconfig = __import__('siteconfig.constants', fromlist='*')
globals().update({k: v for k, v in _siteconfig.__dict__.items() if not k.startswith('_')})
```