{"action":"created","issue":{"url":"https://api.github.com/repos/PSU-OIT-ARC/django-arcutils/issues/2","labels_url":"https://api.github.com/repos/PSU-OIT-ARC/django-arcutils/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/PSU-OIT-ARC/django-arcutils/issues/2/comments","events_url":"https://api.github.com/repos/PSU-OIT-ARC/django-arcutils/issues/2/events","html_url":"https://github.com/PSU-OIT-ARC/django-arcutils/pull/2","id":58150952,"number":2,"title":"Refactors top-level module definitions.","user":{"login":"yorkedork","id":1628,"avatar_url":"https://avatars.githubusercontent.com/u/1628?v=3","gravatar_id":"","url":"https://api.github.com/users/yorkedork","html_url":"https://github.com/yorkedork","followers_url":"https://api.github.com/users/yorkedork/followers","following_url":"https://api.github.com/users/yorkedork/following{/other_user}","gists_url":"https://api.github.com/users/yorkedork/gists{/gist_id}","starred_url":"https://api.github.com/users/yorkedork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yorkedork/subscriptions","organizations_url":"https://api.github.com/users/yorkedork/orgs","repos_url":"https://api.github.com/users/yorkedork/repos","events_url":"https://api.github.com/users/yorkedork/events{/privacy}","received_events_url":"https://api.github.com/users/yorkedork/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-02-19T00:22:15Z","updated_at":"2015-02-19T23:13:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/PSU-OIT-ARC/django-arcutils/pulls/2","html_url":"https://github.com/PSU-OIT-ARC/django-arcutils/pull/2","diff_url":"https://github.com/PSU-OIT-ARC/django-arcutils/pull/2.diff","patch_url":"https://github.com/PSU-OIT-ARC/django-arcutils/pull/2.patch"},"body":"In addition to allowing feature selection, this change will help avoid some\r\npotential (possible, not necessarily likely) import cycles."},"comment":{"url":"https://api.github.com/repos/PSU-OIT-ARC/django-arcutils/issues/comments/75159284","html_url":"https://github.com/PSU-OIT-ARC/django-arcutils/pull/2#issuecomment-75159284","issue_url":"https://api.github.com/repos/PSU-OIT-ARC/django-arcutils/issues/2","id":75159284,"user":{"login":"yorkedork","id":1628,"avatar_url":"https://avatars.githubusercontent.com/u/1628?v=3","gravatar_id":"","url":"https://api.github.com/users/yorkedork","html_url":"https://github.com/yorkedork","followers_url":"https://api.github.com/users/yorkedork/followers","following_url":"https://api.github.com/users/yorkedork/following{/other_user}","gists_url":"https://api.github.com/users/yorkedork/gists{/gist_id}","starred_url":"https://api.github.com/users/yorkedork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yorkedork/subscriptions","organizations_url":"https://api.github.com/users/yorkedork/orgs","repos_url":"https://api.github.com/users/yorkedork/repos","events_url":"https://api.github.com/users/yorkedork/events{/privacy}","received_events_url":"https://api.github.com/users/yorkedork/received_events","type":"User","site_admin":false},"created_at":"2015-02-19T23:13:38Z","updated_at":"2015-02-19T23:13:38Z","body":"TLDR;\r\n\r\nI initially had it \"opt-in\"; however, in the interests of maintaining backwards compatibility, it's an \"opt-out\" policy. I'm confused, though, @mdj2. I'm interpreting your statement to be \"I'm +0 if ... otherwise a -1\" which is considerably different from \"I'm +0 if ... otherwise a +1\" because context.\r\n\r\nIf you want to opt-out, you set a new attribute 'ARCUTILS_FEATURES', which is a dict that describes what you want or don't want.\r\n\r\nFor my cases (ORO), we either already perform some of the same run-time patching or don't want it. In order to avoid chaos and a-probably-too-unwieldy and large __init__ module, I decided to allow conditional feature flipping.\r\n\r\nThe initial observation was that all these bits shouldn't be all crammed into the __init__ module: all a consumer would need to do would be to import 'arcutils' or add it to installed apps and suddenly things are redefined. I consider this \"Ruby behavior\" and undesirable.\r\n\r\nAdditionally, I encountered import cycles, so the other motivation was to protect a bit more from that (as dependencies were imported at module scope in the __init__ module.)"}}