__init__.py 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. import json
  3. import time
  4. from pyramid.config import Configurator
  5. from hapic.ext.pyramid import PyramidContext
  6. from tracim.extensions import hapic
  7. from tracim.config import CFG
  8. from tracim.views.example_api.example_api_controller import ExampleApiController
  9. from tracim.views.default.default_controller import DefaultController
  10. def main(global_config, **settings):
  11. """ This function returns a Pyramid WSGI application.
  12. """
  13. # set CFG object
  14. app_config = CFG(settings)
  15. app_config.configure_filedepot()
  16. settings['CFG'] = app_config
  17. configurator = Configurator(settings=settings, autocommit=True)
  18. # Pyramids "plugin" include.
  19. configurator.include('pyramid_jinja2')
  20. # Add SqlAlchemy DB
  21. configurator.include('.models')
  22. # set Hapic
  23. hapic.set_context(PyramidContext(configurator))
  24. # Add controllers
  25. default_controllers = DefaultController()
  26. default_controllers.bind(configurator)
  27. example_api_controllers = ExampleApiController()
  28. example_api_controllers.bind(configurator)
  29. time.sleep(1)
  30. s = json.dumps(
  31. hapic.generate_doc(
  32. title='Fake API',
  33. description='just an example of hapic API'
  34. )
  35. )
  36. time.sleep(1)
  37. # print swagger doc
  38. print(s)
  39. time.sleep(1)
  40. return configurator.make_wsgi_app()