예제 #1
0
def main(global_config, **settings):  # pylint: disable=W0613
    """Creates app."""
    engine = engine_from_config(settings, "sqlalchemy.")
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    config = Configurator(settings=settings, root_factory="models.Root")
    config.include("pyramid_chameleon")
    # api views
    config.add_route("home", "/")
    config.add_route("operate_record", "/records/{record_id}")
    config.add_route("records", "/records")
    # user views
    config.add_route("record_table", "/table")
    config.scan(".views")
    # add static assets
    config.add_static_view(name="static", path="bp_app:templates")
    # add openapi config
    config.include("pyramid_openapi3")
    config.pyramid_openapi3_spec(
        os.path.join(os.path.dirname(__file__), "openapi.yaml"))
    config.pyramid_openapi3_add_explorer(route="docs")
    # Pyramid requires an authorization policy to be active.
    config.set_authorization_policy(ACLAuthorizationPolicy())
    # Enable JWT authentication.
    config.include("pyramid_jwt")
    config.set_jwt_authentication_policy("secret")
    return config.make_wsgi_app()
예제 #2
0
def init_db(config_path):
    setup_logging(config_path)
    settings = get_appsettings(config_path)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    print 'Done'
예제 #3
0
파일: __init__.py 프로젝트: lseek/empdb
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    LOG.debug("settings:{}".format(settings))
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('jasny-css', 'static/jasny-bootstrap/css', cache_max_age=3600)
    config.add_static_view('jasny-js', 'static/jasny-bootstrap/js', cache_max_age=3600)
    config.add_route('login', '/')
    config.add_route('logout', '/logout')
    config.add_route('show_empl', '/employee/{emp_no}',
                     factory=EmployeeRootFactory)
    config.add_route('show_dept', '/department/{dept_no}',
                     factory=DeptRootFactory)

    auth_engine = AuthEngine()
    config.add_settings(auth_engine=auth_engine)
    authn_policy = AuthTktAuthenticationPolicy(settings['secret_key'],
                                               callback=auth_engine.get_groups,
                                               hashalg='sha512')
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(ACLAuthorizationPolicy())

    query_parser = FormQueryParser()
    config.add_settings(query_parser=query_parser)

    config.scan()

    return config.make_wsgi_app()
예제 #4
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    session_factory = UnencryptedCookieSessionFactoryConfig("lolololseekret")
    config = Configurator(settings=settings, session_factory=session_factory)
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('graphs', 'graphs')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('meal', '/meals/{date}')
    config.add_route('meal_edit', '/meals/edit/{date}')
    config.add_route('weight', '/weight')
    config.add_route('weight_add', '/weight/add/')
    config.add_route('home', '/')
    config.add_route('chat_add', '/chat/add')
    config.add_route('note_add', '/notes/add')
    config.add_route('workout', '/workouts/{date}')
    config.add_route('workout_edit', 'workouts/edit/{date}')
    config.add_route('recipe', '/recipes')
    config.add_route('recipe_view', '/recipes/{id}')
    config.add_route('recipe_add', '/recipes/add')
    config.scan()
    return config.make_wsgi_app()
예제 #5
0
def init_db(config_path):
    setup_logging(config_path)
    settings = get_appsettings(config_path)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    print 'Done'
예제 #6
0
def main(set, config):
    engine = create_engine(settings.database.get("url"))
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    """
    Lists of Endpoint and Transfer objectwith locks are shared between threads.
    The classes and objects store all locks and necessary information to
    sychronized transfers.
    """
    global endpoints
    global transfers

    endpoints = [Endpoint(e) for e in config.get("endpoints")]
    datasets = list(config.get("datasets").keys())
    params = config.get("params")
    if params:
        GlobusTransfer.deadline = params.get("deadline", 3600)
    transfers = [
        GlobusTransfer(set, s, d, t) for s in endpoints for d in endpoints
        for t in datasets
    ]

    executor = Executor(max_workers=4)
    while GlobusTransfer.transfers2do > 0:
        for t in transfers:
            if t.done:
                continue
            if t.acquire():
                executor.submit(t.run)
        sleep(10)
예제 #7
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(settings=settings)
    config.include('pyramid_mako')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('index', '/')
    config.add_route('accueil', '/accueil')
    config.add_route('map', '/map')
    config.add_route('map_stop', '/map/{stop_id}')
    config.add_route('form_stop', '/form/{stop_id}')
    config.add_route('trip', '/trip/{trip_id}')
    config.add_route('test', '/test')
    config.add_route('test_map', '/test_map')
    config.add_route('stop_stop', '/stop/{stop_id}')
    config.add_route('savoir', '/savoir')
    config.add_route('json_stop', '/json_stop')
    config.add_route('json_stops', '/json_stops')
    config.add_route('json_hor', '/json_hor')
    config.add_route('json_map', '/json_map')
    config.add_route('json_form', '/json_form')
    config.add_route('json_trip', '/json_trip')
    config.scan()
    return config.make_wsgi_app()
예제 #8
0
def main():
    # Stupid workaround to wait for mysql actually starting inside of a container
    time.sleep(15)

    # Just init the database at the start for simplicity
    db.create.init()

    p = BackgroundEventPersister(Events)
    p.start()

    DBSession.configure(bind=Engine)
    Base.metadata.bind = Engine

    with Configurator() as config:
        config.include('pyramid_tm')

        config.add_request_method(get_user, 'user', reify=True)

        config.add_route('place_order', '/orders', request_method='POST')
        config.add_route('list_orders', '/orders', request_method='GET')
        config.add_route('cancel_order', '/order/{orderId}', request_method='DELETE')
        config.scan('views')

        auth_policy = BasicAuthAuthenticationPolicy(check_credentials)
        config.set_authentication_policy(auth_policy)
        config.set_authorization_policy(ACLAuthorizationPolicy())
        config.set_root_factory(lambda request: Root())

        app = config.make_wsgi_app()
    serve(app, host='0.0.0.0', port=8888)
예제 #9
0
파일: __init__.py 프로젝트: ayesha928/fyp
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    
    load_project_settings()
    
    session_factory = UnencryptedCookieSessionFactoryConfig(settings.get('session.secret', 'hello'))
    
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(session_factory=session_factory, settings=settings)
    config.include('pyramid_handlers')
    config.add_view('pyramid.view.append_slash_notfound_view',
                context='pyramid.httpexceptions.HTTPNotFound')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.add_route('status', '/status')
    config.add_route('settings', '/settings')
    
    
    configure_app_routes(config)
    
    config.scan()
    
    return config.make_wsgi_app()
예제 #10
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    load_project_settings()

    session_factory = UnencryptedCookieSessionFactoryConfig(settings.get('session.secret', 'hello'))

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(session_factory=session_factory, settings=settings)
    config.add_tween('giteverywhere.auth.authenticator')
    config.include('pyramid_handlers')
    config.add_view('pyramid.view.append_slash_notfound_view',
                context='pyramid.httpexceptions.HTTPNotFound')
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route('home', '/')
    config.add_route('contact', '/contact')
    config.add_route('pyckauth_login', '/login')
    config.add_route('pyckauth_logout', '/logout')
    config.add_route('pyckauth_manager', '/auth')
    config.add_route('pyckauth_users', '/auth/users')
    config.add_route('pyckauth_permissions', '/auth/permissions')
    config.add_route('pyckauth_routes', '/auth/routes')
   


    add_admin_handler(config, DBSession, get_models(giteverywhere), 'admin.', '/admin', AdminController)  
    configure_app_routes(config)

    config.scan()

    return config.make_wsgi_app()
예제 #11
0
파일: tests.py 프로젝트: mkprz/bakshi
 def setUp(self):
     self.config = testing.setUp()
     from sqlalchemy import create_engine
     engine = create_engine('sqlite://')
     from .models import (
         Base,
         MyModel,
         )
     DBSession.configure(bind=engine)
예제 #12
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
예제 #13
0
 def setUp(self):
     self.config = testing.setUp()
     from sqlalchemy import create_engine
     engine = create_engine('sqlite://')
     from models import Base, MyModel
     DBSession.configure(bind=engine)
     Base.metadata.create_all(engine)
     with transaction.manager:
         model = MyModel(name='one', value=55)
         DBSession.add(model)
예제 #14
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    if not 'pyramid.secretcookie' in settings:
        log.error('pyramid.secretcookie is not set. Refusing to start.')
        quit(-1)

    if not 'pyramid.auth.secret' in settings:
        log.error('pyramid.auth.secret is not set. Refusing to start.')
        quit(-1)

    if not 'defcne.upload_path' in settings:
        log.error('defcne.upload_path is not set. Refusing to start.')
        quit(-1)

    if not 'defcne.registration_open' in settings:
        log.error('defcne.registration_open is not set. Refusing to start.')
        quit(-1)
    else:
        settings['defcne.registration_open'] = asbool(settings['defcne.registration_open'])

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(settings=settings)

    _session_factory = SignedCookieSessionFactory(
            settings['pyramid.secretcookie'],
            httponly=True,
            max_age=864000
            )

    _authn_policy = AuthTktAuthenticationPolicy(
            settings['pyramid.auth.secret'],
            max_age=864000,
            http_only=True,
            debug=True,
            hashalg='sha512',
            callback=auth.user_groups,
            )

    _authz_policy = ACLAuthorizationPolicy()

    config.set_session_factory(_session_factory)
    config.set_authentication_policy(_authn_policy)
    config.set_authorization_policy(_authz_policy)
    config.include(add_routes)
    config.include(add_views)
    config.include(add_events)

    deform_bootstrap.includeme(config)

    config.set_request_property(auth.current_user, 'user', reify=True)
    config.include('pyramid_mailer')
    return config.make_wsgi_app()
예제 #15
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    init_model()

    session_factory = session_factory_from_settings(settings)
    if 'localization' not in settings:
        settings['localization'] = 'id_ID.UTF-8'
    locale.setlocale(locale.LC_ALL, settings['localization'])        
    if 'timezone' not in settings:
        settings['timezone'] = DefaultTimeZone
    config = Configurator(settings=settings,
                          root_factory='reklame.models.RootFactory',
                          session_factory=session_factory)
    config.include('pyramid_beaker')                          
    config.include('pyramid_chameleon')

    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                    callback=group_finder, hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()                          
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_request_method(get_user, 'user', reify=True)
    config.add_request_method(get_title, 'title', reify=True)
    config.add_notfound_view(RemoveSlashNotFoundViewFactory())        
                          
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('deform_static', 'deform:static')
    config.add_static_view('files', settings['static_files'])    
    ############################################################################
    config.include('pyramid_rpc.jsonrpc') # JSON RPC
    json_renderer = JSON()
    json_renderer.add_adapter(datetime.datetime, lambda v, request: v.isoformat())
    json_renderer.add_adapter(datetime.date, lambda v, request: v.isoformat())
    config.add_renderer('myjson', json_renderer)
    config.add_jsonrpc_endpoint('ws_reklame', '/ws/reklame', default_renderer="myjson")       
    ############################################################################
 
    routes = DBSession.query(Route.kode, Route.path, Route.nama).all()
    for route in routes:
        config.add_route(route.kode, route.path)
        if route.nama:
            titles[route.kode] = ' - '.join([main_title, route.nama])     
            
    
    config.scan()
    
    app = config.make_wsgi_app()
    from paste.translogger import TransLogger
    app = TransLogger(app, setup_console_handler=False)    
    return app
예제 #16
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(settings=settings)
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.scan()
    return config.make_wsgi_app()
예제 #17
0
def bind_database_session(config_file='config.yml'):
    logger.debug(f"Getting database session from {config_file}")
    config = yml_config_as_dict(config_file)

    engine = engine_from_config(config, 'sqlalchemy.')
    db_exists = database_exists(engine.url)

    logger.debug(f"Database {'' if db_exists else 'does not'} exists.")

    if db_exists:
        DBSession.configure(bind=engine)
예제 #18
0
def init_test_db():
    """Create testing database."""
    engine = create_engine("sqlite://")
    Base.metadata.create_all(engine)
    DBSession.configure(bind=engine)
    with transaction.manager:
        model = Record(timestamp=datetime.utcnow(),
                       bp_upper=120,
                       bp_lower=70,
                       notes="")
        DBSession.add(model)  # pylint: disable=E1101
    return DBSession
예제 #19
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    with transaction.manager:
        admin = Admin(name='admin', pw='admin')
        DBSession.add(admin)
예제 #20
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, "sqlalchemy.")
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine, check=True)
    with transaction.manager:
        model = Page("FrontPage", "This is the front page")
        DBSession.add(model)
예제 #21
0
    def setUp(self):
        self.config = testing.setUp()

        # @TODO change this
        from . import main
        settings = {'sqlalchemy.url': 'sqlite://', 'session.secret': 'secret'}
        app = main({}, **settings)
        self.testapp = TestApp(app)

        engine = create_engine('sqlite://')
        DBSession.configure(bind=engine)
        Base.metadata.create_all(engine)
예제 #22
0
파일: tests.py 프로젝트: bentterp/nordcloud
    def setUp(self):
        self.config = testing.setUp()

        # @TODO change this
        from . import main
        settings = {'sqlalchemy.url': 'sqlite://', 'session.secret': 'secret'}
        app = main({}, **settings)
        self.testapp = TestApp(app)

        engine = create_engine('sqlite://')
        DBSession.configure(bind=engine)
        Base.metadata.create_all(engine)
예제 #23
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    with transaction.manager:
        model = BadCase(url='one')
        DBSession.add(model)
예제 #24
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    authn_policy = AuthTktAuthenticationPolicy('rklain', callback=groupfinder)
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings, root_factory='myblog.models.RootFactory')
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.set_request_property(get_user, 'user', reify=True)
    # routes/views
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('files', 'files', cache_max_age=3600)
    config.add_route('home', '/')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    #User
    #config.add_route('user_add', 'user/add')
    config.add_route('user_edit', 'user/{id}/edit')
    #config.add_route('user_delete', 'user/{id}/delete')

    # Page
    config.add_route('page_add', '/page/add')
    config.add_route('page_view', '/page/{route}')
    config.add_route('page_edit', '/page/{route}/edit')
    config.add_route('page_delete', '/page/{route}/delete')

    # Blog
    config.add_route('post_add', '/blog/add')
    config.add_route('post_view_y', '/blog/{year}')
    config.add_route('post_view_ym', '/blog/{year}/{month}')
    config.add_route('post_view_ymd', '/blog/{year}/{month}/{day}')
    config.add_route('post_view', '/blog/{year}/{month}/{day}/{route}')
    config.add_route('post_edit', '/blog/{year}/{month}/{day}/{route}/edit')
    config.add_route('post_delete', '/blog/{year}/{month}/{day}/{route}/delete')
    config.add_route('post_comment_delete', '/blog/{year}/{month}/{day}/{route}/comment/{id}/delete')

    # Image
    config.add_route('image_add', '/image/add')
    config.add_route('image_view', '/image/{id}')
#    config.add_route('image_edit', '/image/{route}/edit')
#    config.add_route('image_delete', '/image/{route}/delete')

    config.scan()

    #jinja2
    config.include('pyramid_jinja2')
    #config.get_jinja2_environment().filters['rst2htmlbody'] = rst2htmlbody
    config.get_jinja2_environment().filters['markdown'] = markup

    return config.make_wsgi_app()
예제 #25
0
파일: __init__.py 프로젝트: subuk/xtnews
def main(global_config, **settings):
    config = Configurator(settings=settings)

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

    config.include('pyramid_jinja2')

    config.add_route('item', '/{id}')
    config.add_route('list', '/')

    config.scan('xtnews.views')
    return config.make_wsgi_app()
예제 #26
0
파일: __init__.py 프로젝트: subuk/xtnews
def main(global_config, **settings):
    config = Configurator(settings=settings)

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

    config.include('pyramid_jinja2')

    config.add_route('item', '/{id}')
    config.add_route('list', '/')

    config.scan('xtnews.views')
    return config.make_wsgi_app()
예제 #27
0
def main(argv=sys.argv):
    print 'called'
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    with transaction.manager:
        model = Users(first_name='Julien', last_name='waddle')
        DBSession.add(model)
예제 #28
0
파일: __init__.py 프로젝트: kashifpk/smpp5
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    load_project_settings()

    session_factory = UnencryptedCookieSessionFactoryConfig(settings.get('session.secret', 'hello'))

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(session_factory=session_factory, settings=settings)
    config.add_tween('smpp5web.auth.authenticator')
    config.include('pyramid_handlers')
    config.add_view('pyramid.view.append_slash_notfound_view',
                context='pyramid.httpexceptions.HTTPNotFound')
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route('home', '/')
    config.add_route('contact', '/contact')
    config.add_route('sms_in', '/sms_in')
    config.add_route('main_page', '/main_page')
    config.add_route('admin_page', '/admin_page')
    config.add_route('sms_history', '/sms_history')
    config.add_route('billing', '/billing')
    config.add_route('weeklygraphs', '/weeklygraphs')
    config.add_route('dailygraphs', '/dailygraphs')
    config.add_route('monthlygraphs', '/monthlygraphs')
    config.add_route('usermonthlygraphs', '/usermonthlygraphs')
    config.add_route('useryearlygraphs', '/useryearlygraphs')
    config.add_route('packages', '/packages')
    config.add_route('select_packages', '/select_packages')
    config.add_route('reset_password', '/reset_password')
    config.add_route('display_users', '/display_users')
    config.add_route('sms_history_admin', '/sms_history_admin')
    config.add_route('user_graphs', '/user_graphs')

    config.add_route('pyckauth_login', '/login')
    config.add_route('pyckauth_logout', '/logout')
    config.add_route('pyckauth_manager', '/auth')
    config.add_route('pyckauth_users', '/auth/users')
    config.add_route('pyckauth_permissions', '/auth/permissions')
    config.add_route('pyckauth_routes', '/auth/routes')

    add_admin_handler(config, DBSession, get_models(smpp5web), 'admin.', '/admin', AdminController)


    configure_app_routes(config)

    config.scan()

    return config.make_wsgi_app()
예제 #29
0
def main(argv=sys.argv):
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    with transaction.manager:
        DBSession.add(JobOffers())
        DBSession.add(JobCategories())
        DBSession.add(Companies())
예제 #30
0
def main(**settings):
    engine = create_engine('sqlite:///dev.db')
    Base.metadata.create_all(engine)
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.add_route('server', '/api/server/{uid}')
    config.add_route('servers', '/api/server')
    config.scan("views")
    config.add_static_view('www', '../www/', cache_max_age=86400)
    app = config.make_wsgi_app()
    return app
예제 #31
0
파일: tests.py 프로젝트: daymien/pymyblog
 def setUp(self):
     self.config = testing.setUp()
     from sqlalchemy import create_engine
     engine = create_engine('sqlite://')
     from models import (
         Base,
         Node,
         Post,
         Comment,
         Tag,
         NodeTag,
         )
     DBSession.configure(bind=engine)
     Base.metadata.create_all(engine)
예제 #32
0
def main(**settings):
    engine = create_engine('sqlite:///dev.db')
    Base.metadata.create_all(engine)
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.add_route('server', '/api/server/{uid}')
    config.add_route('servers', '/api/server')
    config.scan("views")
    config.add_static_view('www', '../www/',
                          cache_max_age=86400)
    app = config.make_wsgi_app()
    return app
예제 #33
0
파일: __init__.py 프로젝트: aagusti/extOS
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    
    my_session_factory = UnencryptedCookieSessionFactoryConfig('itsaseekreet')
    config = Configurator(settings=settings, session_factory=my_session_factory)
#    config.add_request_method(get_user, 'user', reify=True)

    config.add_renderer('json', JSON(indent=0))    
    
    config.add_static_view('static', 'static', cache_max_age=3600)
    
    config.add_route('home', '/')
    config.add_route('main', '/main')
    config.add_route('home1', '/home1')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('admin', '/admin')
    config.add_route('admin_apps', '/admin/apps')
    config.add_route('admin_apps_grid', '/admin/apps/grid')
    config.add_route('admin_apps_update_stat', '/admin/apps/update_stat/{id}/{value}')
    config.add_route('hello', '/hello')
    config.add_route('get_pesan', '/get_pesan')
    
    from admin_route import admin_route
    add_route(config, admin_route)
    
    from pbb_route import pbb_route
    add_route(config, pbb_route)
    
    from pbbm_route import pbbm_route
    add_route(config, pbbm_route)
    

    from apbd_route import apbd_route
    add_route(config, apbd_route)
    
    from aset_route import aset_route
    print aset_route
    add_route(config, aset_route)

    config.scan()
    return config.make_wsgi_app()
예제 #34
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    init_model()

    session_factory = session_factory_from_settings(settings)
    if 'localization' not in settings:
        settings['localization'] = 'id_ID.UTF-8'
    locale.setlocale(locale.LC_ALL, settings['localization'])
    if 'timezone' not in settings:
        settings['timezone'] = DefaultTimeZone
    config = Configurator(settings=settings,
                          root_factory='inventory.models.RootFactory',
                          session_factory=session_factory)
    config.include('pyramid_beaker')
    config.include('pyramid_chameleon')

    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                                               callback=group_finder,
                                               hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_request_method(get_user, 'user', reify=True)
    config.add_request_method(get_title, 'title', reify=True)
    config.add_notfound_view(RemoveSlashNotFoundViewFactory())

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('deform_static', 'deform:static')
    config.add_static_view('files', settings['static_files'])

    routes = DBSession.query(Route.kode, Route.path, Route.nama).all()
    for route in routes:
        config.add_route(route.kode, route.path)
        if route.nama:
            titles[route.kode] = ' - '.join([main_title, route.nama])

    config.scan()

    app = config.make_wsgi_app()
    from paste.translogger import TransLogger
    app = TransLogger(app, setup_console_handler=False)
    return app
예제 #35
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    config = Configurator(settings=settings)
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    # pyramid_jinja2 configuration
    config.include('pyramid_jinja2')
    config.include('sacrud.pyramid_ext')
    settings = config.registry.settings
    settings['sacrud_models'] = (User, Profile)
    config.scan()
    
    return config.make_wsgi_app()
예제 #36
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('tweets', '/tweets')
    config.add_view(root_view, 'tweets')
    config.add_route('topic', '/topic')
    config.add_view(enqueue_topic, 'topic')
    config.add_route('raw_topic', '/raw_topic')
    config.add_view(raw_topic_enqueue, 'raw_topic')
    # config.scan() significantly improves the runtime
    return config.make_wsgi_app()
예제 #37
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('tweets', '/tweets')
    config.add_view(root_view, 'tweets')
    config.add_route('topic', '/topic')
    config.add_view(enqueue_topic, 'topic')
    config.add_route('raw_topic', '/raw_topic')
    config.add_view(raw_topic_enqueue, 'raw_topic')
    # config.scan() significantly improves the runtime
    return config.make_wsgi_app()
예제 #38
0
def main(argv=sys.argv):
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    with transaction.manager:

        manager = Manager()
        password = manager.encode('admin')

        DBSession.add(Entry(title=u'title', body=u'body'))
        DBSession.add(User(username=u'admin', password=password))
예제 #39
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, "sqlalchemy.")
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    init_model()

    session_factory = session_factory_from_settings(settings)
    if "localization" not in settings:
        settings["localization"] = "id_ID.UTF-8"
    locale.setlocale(locale.LC_ALL, settings["localization"])
    if "timezone" not in settings:
        settings["timezone"] = DefaultTimeZone
    config = Configurator(
        settings=settings, root_factory="inventory.models.RootFactory", session_factory=session_factory
    )
    config.include("pyramid_beaker")
    config.include("pyramid_chameleon")

    authn_policy = AuthTktAuthenticationPolicy("sosecret", callback=group_finder, hashalg="sha512")
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_request_method(get_user, "user", reify=True)
    config.add_request_method(get_title, "title", reify=True)
    config.add_notfound_view(RemoveSlashNotFoundViewFactory())

    config.add_static_view("static", "static", cache_max_age=3600)
    config.add_static_view("deform_static", "deform:static")
    config.add_static_view("files", settings["static_files"])

    routes = DBSession.query(Route.kode, Route.path, Route.nama).all()
    for route in routes:
        config.add_route(route.kode, route.path)
        if route.nama:
            titles[route.kode] = " - ".join([main_title, route.nama])

    config.scan()

    app = config.make_wsgi_app()
    from paste.translogger import TransLogger

    app = TransLogger(app, setup_console_handler=False)
    return app
예제 #40
0
def main(argv=sys.argv):  # pylint: disable=W0102
    """Initial database setup."""
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, "sqlalchemy.")
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    with transaction.manager:
        current_time = datetime.utcnow()
        for i in range(14):
            record = Record()
            record.timestamp = current_time - timedelta(days=i)
            record.bp_upper = random.randint(100, 160)
            record.bp_lower = random.randint(50, 80)
            DBSession.add(record)  # pylint: disable=E1101
예제 #41
0
def main(global_config, **settings):
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    authentication_policy = AuthTktAuthenticationPolicy('somesecret')
    authorization_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          authentication_policy=authentication_policy,
                          authorization_policy=authorization_policy)
    config.include('pyramid_mako')
    config.include('.models')
    config.add_route('index', '/')
    config.add_route('admin','/admin')
    config.add_route('blog_action', '/blog/{action}',
                     factory='.models.Root')
    config.add_route('blog_view','/blogview')
    config.scan()
    return config.make_wsgi_app()
예제 #42
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    load_project_settings()

    session_factory = UnencryptedCookieSessionFactoryConfig(
        settings.get('session.secret', 'hello'))

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(session_factory=session_factory, settings=settings)
    config.add_tween('giteverywhere.auth.authenticator')
    config.include('pyramid_handlers')
    config.add_view('pyramid.view.append_slash_notfound_view',
                    context='pyramid.httpexceptions.HTTPNotFound')
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route('home', '/')
    config.add_route('contact', '/contact')

    config.add_route('pyckauth_login', '/login')
    config.add_route('pyckauth_logout', '/logout')
    config.add_route('pyckauth_manager', '/auth')
    config.add_route('pyckauth_users', '/auth/users')
    config.add_route('pyckauth_permissions', '/auth/permissions')
    config.add_route('pyckauth_routes', '/auth/routes')
    #config.add_route('add_repo_names', '/add_repo_names')
    #config.add_route('display', '/display')
    config.add_route('view_repo_names', '/view_repo_names')
    #config.add_route('delete_product', '/delete/{repo_id}')

    add_admin_handler(config, DBSession, get_models(giteverywhere), 'admin.',
                      '/admin', AdminController)
    configure_app_routes(config)

    config.scan()

    return config.make_wsgi_app()
예제 #43
0
파일: __init__.py 프로젝트: lseek/empdb
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    LOG.debug("settings:{}".format(settings))
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('jasny-css',
                           'static/jasny-bootstrap/css',
                           cache_max_age=3600)
    config.add_static_view('jasny-js',
                           'static/jasny-bootstrap/js',
                           cache_max_age=3600)
    config.add_route('login', '/')
    config.add_route('logout', '/logout')
    config.add_route('show_empl',
                     '/employee/{emp_no}',
                     factory=EmployeeRootFactory)
    config.add_route('show_dept',
                     '/department/{dept_no}',
                     factory=DeptRootFactory)

    auth_engine = AuthEngine()
    config.add_settings(auth_engine=auth_engine)
    authn_policy = AuthTktAuthenticationPolicy(settings['secret_key'],
                                               callback=auth_engine.get_groups,
                                               hashalg='sha512')
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(ACLAuthorizationPolicy())

    query_parser = FormQueryParser()
    config.add_settings(query_parser=query_parser)

    config.scan()

    return config.make_wsgi_app()
예제 #44
0
파일: __init__.py 프로젝트: mkprz/bakshi
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    config = Configurator(settings=settings)
    config.include('pyramid_mako')
    config.include('pyramid_tm')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.add_route('wizconfig', '/wizconfig')
    config.add_route('wizconfig_start', '/wizconfig/start')
    # config.add_route('kbhook_setprompt', '/kbhook/setprompt')
    config.add_route('wizconfig_next', '/wizconfig/next/{id}')
    config.add_route('wizconfig_prev', '/wizconfig/prev/{id}')
    config.add_route('wizconfig_exit', '/wizconfig/exit/{id}')
    config.add_route('wizconfig_review', '/wizconfig/review/{id}')
    config.add_route('wizconfig_apply', '/wizconfig/apply/{id}')
    config.scan()
    config.set_session_factory(my_session_factory)
    return config.make_wsgi_app()
예제 #45
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    session_factory = session_factory_from_settings(settings)
    authn_policy = AuthTktAuthenticationPolicy( 'sosecret', callback=groupfinder, hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings, root_factory='geogallery.models.models.RootFactory')
    config.set_request_property(get_user, str('user'), reify=True)
    config.include('bag.web.pyramid.flash_msg')
    config.set_session_factory(session_factory)
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_static_view('static', 'static', cache_max_age=3600)
    # Adding the static resources from Deform
    config.add_static_view('deform_static', 'deform:static', cache_max_age=3600)
    config.add_static_view('deform_bootstrap_static', 'deform_bootstrap:static', cache_max_age=3600)
    
    config.add_route('home', '/')
    config.add_route('login', '/login')
    config.scan()
    return config.make_wsgi_app()
예제 #46
0
def init_databases(config_file='config.yml', drop_old=False):
    logger.debug(
        f"Initializing database from {config_file}, drop_old={drop_old}")
    # Set up a DB from config file
    config = yml_config_as_dict(config_file)

    engine = engine_from_config(config, 'sqlalchemy.')  # TODO DRY or overkill?

    db_preexists = database_exists(engine.url)
    logger.debug(f"Database {'already' if db_preexists else 'does not'} exist")

    if not db_preexists:
        create_database(engine.url)

    if drop_old and db_preexists:  # Drop database?
        logger.debug("Dropping databases...")
        try:
            drop_all_tables(engine)
        except sqlalchemy.exc.DatabaseError as e:
            logger.warning(
                f"Intialize DB Error:\n{type(e).__name__}: {str(e)}")
            logger.warning("Attempting to drop entire database.")
            drop_database(engine.url)
    elif not db_preexists:
        logger.warning(
            f"Not attempting to drop tables since it the database didn't exist beforehand."
        )

    DBSession.configure(bind=engine)

    try:
        logger.debug("Generating tables from Base.")
        Base.metadata.create_all(engine)
        logger.debug("Tables generated.")
    except sqlalchemy.exc.InternalError as e:
        usage(message=f"Intialize DB Error:\n{type(e).__name__}: {str(e)}")
예제 #47
0
파일: cron.py 프로젝트: mdargan/weather
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
 
#Import sqlalchemy objects
from models import DBSession as db, City, WeatherRecord
 
#import the session manager. This way commits will be handled automatically by the Zope Transaction Manager
import transaction

 
# Load Application Configuration and Return as Dictionary
conf = appconfig('config:' + '../development.ini', 
       name="main", relative_to=os.getcwd())
 
#configure SQLAlchemy engine 
engine = engine_from_config(conf, 'sqlalchemy.')
db.configure(bind=engine)
 

def update_weather_data(city_id, start_dt):
    
    timestamp = time.mktime(start_dt.timetuple()) 
    api_url = 'http://api.openweathermap.org/data/2.5/history/city?id=%d&type=day&start=%d' % (city_id, timestamp)
    response = urlopen(api_url)
    data = json.loads(response.read().decode())

    conditions = { }
 
    for d in data['list']:
        dt = datetime.datetime.fromtimestamp(int(d['dt'])).date()
        cond = d['weather'][0]['main']
        conditions.setdefault(dt, []).append(cond)
예제 #48
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    init_model()

    ###Engine Tambahan
    if settings['pbb.url']:
        from models.pbb import (PbbDBSession, PbbBase)
        os.environ["NLS_LANG"] = ".AL32UTF8"
        pbb_engine = engine_from_config(
            settings, 'pbb.')  #, encoding='.AL32UTF8', convert_unicode=True)
        PbbDBSession.configure(bind=pbb_engine)
        PbbBase.metadata.bind = pbb_engine
        pbb_schema = settings['pbb_schema']

    if settings['pospbb.url']:
        from models.pospbb import (
            PosPbbDBSession,
            PosPbbBase,
        )
        pospbb_engine = engine_from_config(settings, 'pospbb.')
        PosPbbDBSession.configure(bind=pospbb_engine)
        PosPbbBase.metadata.bind = pospbb_engine
        pospbb_schema = settings['pospbb_schema']

    session_factory = session_factory_from_settings(settings)
    if 'localization' not in settings:
        settings['localization'] = 'id_ID.UTF-8'
    locale.setlocale(locale.LC_ALL, settings['localization'])
    if 'timezone' not in settings:
        settings['timezone'] = DefaultTimeZone
    config = Configurator(settings=settings,
                          root_factory='pbbrekon.models.RootFactory',
                          session_factory=session_factory)
    config.include('pyramid_beaker')
    config.include('pyramid_chameleon')

    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                                               callback=group_finder,
                                               hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_request_method(get_user, 'user', reify=True)
    config.add_request_method(get_title, 'title', reify=True)
    config.add_notfound_view(RemoveSlashNotFoundViewFactory())

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('deform_static', 'deform:static')
    config.add_static_view('files', settings['static_files'])

    config.add_renderer('csv', '.tools.CSVRenderer')

    for name, path, title in routes:
        config.add_route(name, path)
    config.scan()
    app = config.make_wsgi_app()
    from paste.translogger import TransLogger
    app = TransLogger(app, setup_console_handler=False)
    return app
예제 #49
0
파일: send_email.py 프로젝트: tinawen/menu
    Menu,
    MenuItem,
    Allergen,
    Cafe,
    )

MAIL_SECRETS = '/home/tina/mail_secrets.json'
HEALTH_COLORS = ['green', 'orange', 'red']
BREAKFAST_LUNCH_CUTOFF_HOUR = 10
LUNCH_DINNER_CUTOFF_HOUR = 14

if __name__ == '__main__':
    config_uri = "/home/tina/MenuProject/production.ini"
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

now = datetime.datetime.now()
today = now.strftime('%Y-%m-%d') 

#figure out which meal this is for
meal_filter = 1
if now.hour < BREAKFAST_LUNCH_CUTOFF_HOUR:
    meal_filter = 1
elif BREAKFAST_LUNCH_CUTOFF_HOUR <= now.hour < LUNCH_DINNER_CUTOFF_HOUR:
    meal_filter = 2
else:
    meal_filter = 3

menu_query = DBSession.query(Menu).filter(Menu.date==today).filter(Menu.time_sort_key==meal_filter)
if len(menu_query.all()) > 0:
예제 #50
0
def tournament(args):
    # Configuration
    engine = create_engine('sqlite:///' + args.bdd, echo=False)
    DBSession.configure(bind=engine)

    # On récupere les donnes de la BDD
    students = DBSession.query(Etudiant).filter(Etudiant.enseignant.is_(None))
    nb_students = DBSession.query(Etudiant).filter(
        Etudiant.enseignant.is_(None)).count()
    nb_parcours = DBSession.query(Parcours).count()

    # Capacité des groupes
    capa_min_pec = 14
    capa_max_pec = 16
    capa_min_pel = 14
    capa_max_pel = 16

    # On construit le modèle
    barre_min = args.b
    model = CyClpSimplex()
    x = []
    s_list = {}
    for s in students.all():
        v = model.addVariable('etu' + str(s.id), nb_parcours, isInt=True)
        x.append(v)

    z = 0.0
    i = 0
    for s in students.all():
        reorder = False
        s_list[str(i)] = s.id
        voeux = DBSession.query(Voeu).filter(Voeu.idEtudiant == s.id).order_by(
            Voeu.idParcours).all()
        s_voeux = []
        rang_q = voeux[nb_parcours - 1].rang
        if rang_q != nb_parcours and rang_q != -1:
            if s.nom not in special or 'quebec' not in special[s.nom]:
                reorder = True
            else:
                reorder = not special[s.nom]['quebec']
        for v in voeux:
            if v.rang == -1:
                score = 0
            else:
                if reorder and v.rang > rang_q:
                    rang = v.rang - 1
                elif reorder and v.rang == rang_q:
                    rang = 9
                else:
                    rang = v.rang
                malus = 0.0
                if s.malus > 0:
                    malus += s.malus
                if s.absences is not None:
                    malus += float(s.absences) / 15
                score = 2.0**(rang - malus)
            s_voeux.append(score)
        a = CyLPArray(s_voeux)
        b = CyLPArray([1.0 for j in range(nb_parcours)])
        z += a * x[i]
        model += b * x[i] >= 1
        model += b * x[i] <= 1
        model += x[i] >= 0
        model += x[i] <= 1
        i += 1
    model.objective = z

    # Taille des groupes MpInge (PEL)
    for j in [
            0, 3, 6
    ]:  # Attention, dans la BDD, le parcours vont de 1 à 8 -> décalage de 1
        c = 0
        for i in range(nb_students):
            c += x[i][j]
        model += c <= capa_max_pel
        model += c >= capa_min_pel

    # Taille des groupes PEC
    for j in [1, 2, 4, 5, 7]:
        c = 0
        for i in range(nb_students):
            c += x[i][j]
        model += c <= capa_max_pec
        model += c >= capa_min_pec

    # Etudiants trop bas en maths
    i = 0
    for s in students.all():
        if s.moyenneMaths is not None and s.moyenneMaths < barre_min:
            model += x[i][0] + x[i][3] + x[i][6] == 0
        i += 1

    # Québec
    i = 0
    for s in students.all():
        if s.nom not in special or 'quebec' not in special[s.nom]:
            model += x[i][nb_parcours - 1] == 0
        i += 1

    # Cas particuliers (cf special.py)
    i = 0
    for s in students.all():
        if s.nom in special and 'force' in special[s.nom]:
            for cas in special[s.nom]['force']:
                if not special[s.nom]['force'][cas]:
                    model += x[i][int(cas) - 1] == 0
        i += 1

    cbc_model = model.getCbcModel()
    cbc_model.logLevel = 0
    cbc_model.branchAndBound()

    if cbc_model.isRelaxationOptimal() and args.v:
        for s in students.all():
            r = cbc_model.primalVariableSolution['etu' + str(s.id)]
            print s.nom + '|',
            j = 1
            reorder = False
            for res in r:
                if res == 1:
                    if j == 1 or j == 4 or j == 7:
                        print "!",
                    par = DBSession.query(Parcours).filter(
                        Parcours.id == j).one()
                    print par.nom,
                    voeux = DBSession.query(Voeu).filter(
                        Voeu.idEtudiant == s.id).order_by(
                            Voeu.idParcours).all()
                    rang_q = voeux[nb_parcours - 1].rang
                    if rang_q != nb_parcours and rang_q != -1:
                        if s.nom not in special or 'quebec' not in special[
                                s.nom]:
                            reorder = True
                        else:
                            reorder = not special[s.nom]['quebec']
                    son_voeu = DBSession.query(Voeu).filter(
                        Voeu.idEtudiant == s.id).filter(
                            Voeu.idParcours == j).one()
                    if reorder and son_voeu.rang == rang_q:
                        rang = 9
                    elif reorder and son_voeu.rang > rang_q:
                        rang = son_voeu.rang - 1
                    else:
                        rang = son_voeu.rang
                    print '|' + str(rang) + '',
                    print '|' + str(s.moyenneMaths),
                    print '|' + str(s.absences),
                    if reorder:
                        print '|*'
                    else:
                        print '|'
                j += 1

    nb_stu_grp = [0 for n in range(nb_parcours)]
    rangs_stu = [0 for n in range(nb_parcours)]
    indecis = 0
    pec2pel = 0
    pel2pec = 0

    if cbc_model.isRelaxationOptimal() and (args.s or args.csv):
        for s in students.all():
            r = cbc_model.primalVariableSolution['etu' + str(s.id)]
            j = 1
            reorder = False
            for res in r:
                if res == 1:
                    nb_stu_grp[j - 1] += 1
                    voeux = DBSession.query(Voeu).filter(
                        Voeu.idEtudiant == s.id).order_by(
                            Voeu.idParcours).all()
                    rang_q = voeux[nb_parcours - 1].rang
                    if rang_q != nb_parcours and rang_q != -1:
                        if s.nom not in special or 'quebec' not in special[
                                s.nom]:
                            reorder = True
                        else:
                            reorder = not special[s.nom]['quebec']
                    son_voeu = DBSession.query(Voeu).filter(
                        Voeu.idEtudiant == s.id).filter(
                            Voeu.idParcours == j).one()
                    if reorder and son_voeu.rang == rang_q:
                        rang = 9
                    elif reorder and son_voeu.rang > rang_q:
                        rang = son_voeu.rang - 1
                    else:
                        rang = son_voeu.rang
                    if rang != -1:
                        rangs_stu[rang - 1] += 1
                        son_voeu_un = DBSession.query(Voeu).filter(
                            Voeu.idEtudiant == s.id).filter(
                                Voeu.rang == 1).one()
                        if son_voeu_un.idParcours in [
                                1, 4, 7
                        ] and son_voeu.idParcours not in [1, 4, 7]:
                            pel2pec += 1
                        elif son_voeu_un.idParcours not in [
                                1, 4, 7
                        ] and son_voeu.idParcours in [1, 4, 7]:
                            pec2pel += 1
                    else:
                        indecis += 1
                j += 1

        if args.s:
            print "Etudiants par groupe : ", nb_stu_grp
            print "Etudiants par rang de voeu : ", rangs_stu
            print "Passages PEC->PEL", pec2pel
            print "Passage PEL->PEC", pel2pec
            print "Indécis : ", indecis

        if args.csv:
            print barre_min, ",",
            for item in nb_stu_grp:
                print item, ",",
            for item in rangs_stu:
                print item, ",",
            print pec2pel, ",", pel2pec

    if cbc_model.isRelaxationInfeasible():
        print "Pas de solution possible"
예제 #51
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    init_model()

    #if 'pbb.url' in settings and settings['pbb.url']:

    pbb_engine = engine_from_config(settings, 'pbb.')
    pbb_DBSession.configure(bind=pbb_engine)
    pbb_Base.metadata.bind = pbb_engine
    pbb_Base.pbb_schema = settings['pbb_schema'] or None
    #pbb = {'kd_kanwil':settings['pbb_kd_kanwil'] or '01',
    #       'kd_kantor':settings['pbb_kd_kantor'] or '01',}
    session_factory = session_factory_from_settings(settings)
    if 'localization' not in settings:
        settings['localization'] = 'id_ID.UTF-8'
    locale.setlocale(locale.LC_ALL, settings['localization'])
    if 'timezone' not in settings:
        settings['timezone'] = DefaultTimeZone
    config = Configurator(settings=settings,
                          root_factory='opensipkdrpc.models.RootFactory',
                          session_factory=session_factory)
    config.include('pyramid_beaker')
    config.include('pyramid_chameleon')

    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                                               callback=group_finder,
                                               hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_request_method(get_user, 'user', reify=True)
    config.add_request_method(get_title, 'title', reify=True)
    config.add_notfound_view(RemoveSlashNotFoundViewFactory())

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('deform_static', 'deform:static')
    config.add_static_view('files', settings['static_files'])
    ############################################################################
    config.include('pyramid_rpc.jsonrpc')  # JSON RPC
    json_renderer = JSON()
    json_renderer.add_adapter(datetime.datetime,
                              lambda v, request: v.isoformat())
    json_renderer.add_adapter(datetime.date, lambda v, request: v.isoformat())
    config.add_renderer('myjson', json_renderer)
    config.add_jsonrpc_endpoint('ws_user',
                                '/ws/user',
                                default_renderer="myjson")
    config.add_jsonrpc_endpoint('ws_pbb', '/ws/pbb', default_renderer="myjson")

    ############################################################################

    routes = DBSession.query(Route.kode, Route.path, Route.nama).all()
    for route in routes:
        config.add_route(route.kode, route.path)
        if route.nama:
            titles[route.kode] = ' - '.join([main_title, route.nama])

    config.scan()

    app = config.make_wsgi_app()
    from paste.translogger import TransLogger
    app = TransLogger(app, setup_console_handler=False)
    return app
예제 #52
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings,
                                'sqlalchemy.',
                                pool_size=settings['pool_size'],
                                max_overflow=settings['max_overflow'])
    #engine.pool_size = settings['pool_size']
    #engine.

    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    init_model()

    if 'sipkd.url' in settings and settings['sipkd.url']:
        from sipkd.models import sipkdDBSession, sipkdBase
        engineSipkd = engine_from_config(settings, 'sipkd.')
        sipkdDBSession.configure(bind=engineSipkd,
                                 pool_size=settings['pool_size'],
                                 max_overflow=settings['max_overflow'])
        sipkdBase.metadata.bind = engineSipkd

    #added 09-08-2016
    if 'pdl.url' in settings and settings['pdl.url']:
        from pdl.models import pdlDBSession, pdlBase
        enginePdl = engine_from_config(settings,
                                       'pdl.',
                                       pool_size=settings['pool_size'],
                                       max_overflow=settings['max_overflow'])

        pdlDBSession.configure(bind=enginePdl)
        pdlBase.metadata.bind = enginePdl
        pdl_schema = 'schema.pdl' in settings and settings[
            'schema.pdl'] or 'public'

    if 'pbb.url' in settings and settings['pbb.url']:
        from pbb.models import pbbDBSession, pbbBase, pbb_schema
        enginePbb = engine_from_config(settings,
                                       'pbb.',
                                       pool_size=settings['pool_size'],
                                       max_overflow=settings['max_overflow'])
        pbbDBSession.configure(bind=enginePbb)
        pbbBase.metadata.bind = enginePbb
        pbb_schema = 'schema.pbb' in settings and settings[
            'schema.pbb'] or 'pbb'

    if 'bphtb.url' in settings and settings['bphtb.url']:
        from bphtb.models import bphtbDBSession, bphtbBase, bphtb_schema
        engineBphtb = engine_from_config(settings,
                                         'bphtb.',
                                         pool_size=settings['pool_size'],
                                         max_overflow=settings['max_overflow'])
        bphtbDBSession.configure(bind=engineBphtb)
        bphtbBase.metadata.bind = engineBphtb
        bphtb_schema = 'schema.bphtb' in settings and settings[
            'schema.bphtb'] or 'bphtb'
    if 'esppt.url' in settings and settings['esppt.url']:
        from esppt.models import EsDBSession, EsBase, es_schema
        engineEsppt = engine_from_config(settings,
                                         'esppt.',
                                         pool_size=settings['pool_size'],
                                         max_overflow=settings['max_overflow'])
        EsDBSession.configure(bind=engineEsppt)
        EsBase.metadata.bind = engineEsppt
        es_schema = 'schema.esppt' in settings and settings[
            'schema.esppt'] or 'esppt'

    if 'im.url' in settings and settings['im.url']:
        from im.models import ImDBSession, ImBase, im_schema
        engineIm = engine_from_config(settings,
                                      'im.',
                                      pool_size=settings['pool_size'],
                                      max_overflow=settings['max_overflow'])
        ImDBSession.configure(bind=engineIm)
        ImBase.metadata.bind = engineIm
        im_schema = 'schema.im' in settings and settings['schema.im'] or 'im'

    if 'pospbb.url' in settings and settings['pospbb.url']:
        from pbb_tools.models import PosPbbDBSession, PosPbbBase, pospbb_schema
        enginePosPbb = engine_from_config(
            settings,
            'pospbb.',
            pool_size=settings['pool_size'],
            max_overflow=settings['max_overflow'])
        PosPbbDBSession.configure(bind=enginePosPbb)
        PosPbbBase.metadata.bind = enginePosPbb
        im_schema = 'schema.pospbb' in settings and settings[
            'schema.pospbb'] or 'pbb'

    session_factory = session_factory_from_settings(settings)
    #session_factory.pool_size=settings['pool_size']
    #session_factory.max_overflow = settings['max_overflow']

    #if 'localization' not in settings:
    #    settings['localization'] = 'id_ID.UTF-8'
    #locale.setlocale(locale.LC_ALL, settings['localization'])

    #handling bug di locale.setlocale
    localID = locale.normalize('id')
    if 'localization' not in settings:
        settings['localization'] = localID
    if settings['localization'] != localID:
        settings['localization'] = localID
    #locale.setlocale(locale.LC_ALL, settings['localization'])
    #bug : unsupported locale setting
    locale.setlocale(locale.LC_ALL, '')

    if 'timezone' not in settings:
        settings['timezone'] = DefaultTimeZone
    config = Configurator(settings=settings,
                          root_factory='piutang.models.RootFactory',
                          session_factory=session_factory)
    config.include('pyramid_beaker')
    config.include('pyramid_chameleon')

    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                                               callback=group_finder,
                                               hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_request_method(get_user, 'user', reify=True)
    config.add_request_method(get_title, 'title', reify=True)
    config.add_request_method(get_company, 'company', reify=True)
    config.add_request_method(get_departement, 'departement', reify=True)
    config.add_request_method(get_address, 'address', reify=True)
    config.add_notfound_view(RemoveSlashNotFoundViewFactory())

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('deform_static', 'deform:static')
    config.add_static_view('files', settings['static_files'])

    config.add_renderer('csv', '.tools.CSVRenderer')

    routes = DBSession.query(Route.kode, Route.path, Route.nama).all()
    for route in routes:
        #if route.factory and route.factory != 'None':
        #    config.add_route(route.kode, route.path) #(route.factory).encode("utf8"))
        #else:
        config.add_route(route.kode, route.path)

        if route.nama:
            titles[route.kode] = route.nama

    ############################################################################
    config.include('pyramid_rpc.jsonrpc')  # JSON RPC
    json_renderer = JSON()
    json_renderer.add_adapter(datetime.datetime,
                              lambda v, request: v.isoformat())
    json_renderer.add_adapter(datetime.date, lambda v, request: v.isoformat())
    config.add_renderer('myjson', json_renderer)
    config.add_jsonrpc_endpoint('ws_pbb',
                                '/pbb/ws/api',
                                default_renderer="myjson")
    config.add_jsonrpc_endpoint('ws_keuangan',
                                '/ws/keuangan',
                                default_renderer="myjson")
    config.add_jsonrpc_endpoint('ws_simral',
                                '/simral/ws/api',
                                default_renderer="myjson")
    config.add_jsonrpc_endpoint('ws_user',
                                '/ws/user',
                                default_renderer="myjson")

    ############################################################################

    config.scan()
    app = config.make_wsgi_app()
    from paste.translogger import TransLogger
    app = TransLogger(app, setup_console_handler=False)
    return app
예제 #53
0
from models import DBSession, Base, Colleague, ColleagueLocus, Dbentity, Eco, Locusdbentity, LocusUrl, LocusAlias, Dnasequenceannotation, So, Locussummary, Phenotypeannotation, PhenotypeannotationCond, Phenotype, Goannotation, Go, Goslimannotation, Goslim, Apo, Straindbentity, Strainsummary, Reservedname, GoAlias, Goannotation, Referencedbentity, Referencedocument, Referenceauthor, ReferenceAlias, Chebi
from sqlalchemy import create_engine, and_, inspect
import os
import json
import re
import time
import sys
from random import randint
from datetime import datetime
from threading import Thread
import concurrent.futures

engine = create_engine(os.getenv('SQLALCHEMY_PROD_DB_URI'), pool_recycle=3600)
SUBMISSION_VERSION = os.getenv('SUBMISSION_VERSION', '_1.0.0.0_')
DBSession.configure(bind=engine)
Base.metadata.bind = engine
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))


# populate text file with sgdis to be used to retrieve panther data
def get_sgdids_for_panther():
    new_data = Locusdbentity.get_s288c_genes()
    temp = []
    for loc in new_data:
        temp.append(loc.sgdid)

    txt_file = os.path.join(THIS_FOLDER,
                            'data_assets/panther_search_input.txt')
    result = json.dumps(temp, ensure_ascii=False)
    with open(txt_file, 'w+') as res_file:
        res_file.write(