__init__.py 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 RequestWithCFG
  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. configurator = Configurator(settings=settings, autocommit=True)
  14. # Pyramids "plugin" include.
  15. configurator.include('pyramid_jinja2')
  16. # Add SqlAlchemy DB
  17. configurator.include('.models')
  18. # Override default request
  19. configurator.set_request_factory(RequestWithCFG)
  20. # set Hapic
  21. hapic.set_context(PyramidContext(configurator))
  22. # Add controllers
  23. default_controllers = DefaultController()
  24. default_controllers.bind(configurator)
  25. example_api_controllers = ExampleApiController()
  26. example_api_controllers.bind(configurator)
  27. time.sleep(1)
  28. s = json.dumps(
  29. hapic.generate_doc(
  30. title='Fake API',
  31. description='just an example of hapic API'
  32. )
  33. )
  34. time.sleep(1)
  35. # print swagger doc
  36. print(s)
  37. time.sleep(1)
  38. return configurator.make_wsgi_app()