use.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. __package__ = 'abx.django'
  2. import itertools
  3. # from benedict import benedict
  4. from .. import pm
  5. def get_INSTALLED_APPS():
  6. return itertools.chain(*reversed(pm.hook.get_INSTALLED_APPS()))
  7. # def register_INSTALLLED_APPS(INSTALLED_APPS):
  8. # pm.hook.register_INSTALLED_APPS(INSTALLED_APPS=INSTALLED_APPS)
  9. def get_MIDDLEWARES():
  10. return itertools.chain(*reversed(pm.hook.get_MIDDLEWARE()))
  11. # def register_MIDDLEWARES(MIDDLEWARE):
  12. # pm.hook.register_MIDDLEWARE(MIDDLEWARE=MIDDLEWARE)
  13. def get_AUTHENTICATION_BACKENDS():
  14. return itertools.chain(*reversed(pm.hook.get_AUTHENTICATION_BACKENDS()))
  15. # def register_AUTHENTICATION_BACKENDS(AUTHENTICATION_BACKENDS):
  16. # pm.hook.register_AUTHENTICATION_BACKENDS(AUTHENTICATION_BACKENDS=AUTHENTICATION_BACKENDS)
  17. def get_STATICFILES_DIRS():
  18. return itertools.chain(*reversed(pm.hook.get_STATICFILES_DIRS()))
  19. # def register_STATICFILES_DIRS(STATICFILES_DIRS):
  20. # pm.hook.register_STATICFILES_DIRS(STATICFILES_DIRS=STATICFILES_DIRS)
  21. def get_TEMPLATE_DIRS():
  22. return itertools.chain(*reversed(pm.hook.get_TEMPLATE_DIRS()))
  23. # def register_TEMPLATE_DIRS(TEMPLATE_DIRS):
  24. # pm.hook.register_TEMPLATE_DIRS(TEMPLATE_DIRS=TEMPLATE_DIRS)
  25. def get_DJANGO_HUEY_QUEUES(QUEUE_DATABASE_NAME='queue.sqlite3'):
  26. HUEY_QUEUES = {}
  27. for plugin_result in pm.hook.get_DJANGO_HUEY_QUEUES(QUEUE_DATABASE_NAME=QUEUE_DATABASE_NAME):
  28. HUEY_QUEUES.update(plugin_result)
  29. return HUEY_QUEUES
  30. # def register_DJANGO_HUEY(DJANGO_HUEY):
  31. # pm.hook.register_DJANGO_HUEY(DJANGO_HUEY=DJANGO_HUEY)
  32. def get_ADMIN_DATA_VIEWS_URLS():
  33. return itertools.chain(*reversed(pm.hook.get_ADMIN_DATA_VIEWS_URLS()))
  34. # def register_ADMIN_DATA_VIEWS(ADMIN_DATA_VIEWS):
  35. # pm.hook.register_ADMIN_DATA_VIEWS(ADMIN_DATA_VIEWS=ADMIN_DATA_VIEWS)
  36. # def register_settings(settings):
  37. # # convert settings dict to an benedict so we can set values using settings.attr = xyz notation
  38. # settings_as_obj = benedict(settings, keypath_separator=None)
  39. # # set default values for settings that are used by plugins
  40. # # settings_as_obj.INSTALLED_APPS = settings_as_obj.get('INSTALLED_APPS', [])
  41. # # settings_as_obj.MIDDLEWARE = settings_as_obj.get('MIDDLEWARE', [])
  42. # # settings_as_obj.AUTHENTICATION_BACKENDS = settings_as_obj.get('AUTHENTICATION_BACKENDS', [])
  43. # # settings_as_obj.STATICFILES_DIRS = settings_as_obj.get('STATICFILES_DIRS', [])
  44. # # settings_as_obj.TEMPLATE_DIRS = settings_as_obj.get('TEMPLATE_DIRS', [])
  45. # # settings_as_obj.DJANGO_HUEY = settings_as_obj.get('DJANGO_HUEY', {'queues': {}})
  46. # # settings_as_obj.ADMIN_DATA_VIEWS = settings_as_obj.get('ADMIN_DATA_VIEWS', {'URLS': []})
  47. # # # call all the hook functions to mutate the settings values in-place
  48. # # register_INSTALLLED_APPS(settings_as_obj.INSTALLED_APPS)
  49. # # register_MIDDLEWARES(settings_as_obj.MIDDLEWARE)
  50. # # register_AUTHENTICATION_BACKENDS(settings_as_obj.AUTHENTICATION_BACKENDS)
  51. # # register_STATICFILES_DIRS(settings_as_obj.STATICFILES_DIRS)
  52. # # register_TEMPLATE_DIRS(settings_as_obj.TEMPLATE_DIRS)
  53. # # register_DJANGO_HUEY(settings_as_obj.DJANGO_HUEY)
  54. # # register_ADMIN_DATA_VIEWS(settings_as_obj.ADMIN_DATA_VIEWS)
  55. # # calls Plugin.settings(settings) on each registered plugin
  56. # pm.hook.register_settings(settings=settings_as_obj)
  57. # # then finally update the settings globals() object will all the new settings
  58. # # settings.update(settings_as_obj)
  59. def get_urlpatterns():
  60. return list(itertools.chain(*pm.hook.urlpatterns()))
  61. def register_urlpatterns(urlpatterns):
  62. pm.hook.register_urlpatterns(urlpatterns=urlpatterns)
  63. def register_checks():
  64. """register any django system checks"""
  65. pm.hook.register_checks()
  66. def register_admin(admin_site):
  67. """register any django admin models/views with the main django admin site instance"""
  68. pm.hook.register_admin(admin_site=admin_site)