Ejemplo n.º 1
0
def create_session(login, password, path):
    global session
    if session == None:
        session = ThreadLocalODMSession(
            bind=create_datastore('mongodb://%s:%s@%s' %
                                  (login, password, path)))
    return session
Ejemplo n.º 2
0
    def get_session(self):
        if 'session_uri' not in self.config_values:
            self.set_session_uri("mongodb://localhost:27017/mldatahub")

        if self.session is None:
            self.session = ThreadLocalODMSession(bind=create_datastore(self.config_values['session_uri']))
        return self.session
Ejemplo n.º 3
0
def connection_session():
    from ming import create_datastore
    from ming.odm import ThreadLocalODMSession

    session = ThreadLocalODMSession(
        bind=create_datastore('mongodb://localhost:27017/tutorial')
    )
    session
    # The database and datastore are still available
    # through the session as .db and .bind
    session.db
    session.bind
Ejemplo n.º 4
0
    def setUp(self):
        self.datastore = create_datastore('mim:///test_db')
        self.session = ThreadLocalODMSession(Session(bind=self.datastore))

        class Parent(MappedClass):
            class __mongometa__:
                name = 'parent'
                session = self.session

            _id = FieldProperty(S.ObjectId)

        Mapper.compile_all()
        self.Parent = Parent
        self.create_app = TestApp(MingMiddleware(self._wsgi_create_object))
        self.remove_app = TestApp(MingMiddleware(self._wsgi_remove_object))
        self.remove_exc = TestApp(MingMiddleware(self._wsgi_remove_object_exc))
Ejemplo n.º 5
0
    def __init__(self):
        self.ming_session = Session()
        self.DBSession = ThreadLocalODMSession(self.ming_session)

        class User(MappedClass):
            class __mongometa__:
                session = self.DBSession
                name = 'tg_user'
                unique_indexes = [('user_name',), ('email_address',)]

            _id = FieldProperty(s.ObjectId)
            user_name = FieldProperty(s.String)
            email_address = FieldProperty(s.String)
            display_name = FieldProperty(s.String)
            password = FieldProperty(s.String)

        self.User = User
Ejemplo n.º 6
0
    def setUp(self):
        self.datastore = create_datastore('mim:///test_db')
        self.session = ThreadLocalODMSession(Session(bind=self.datastore))

        class TestRelationParent(MappedClass):
            """This class _must_ have a unique class name or it will conflict
                with other tests."""
            class __mongometa__:
                name = 'parent'
                session = self.session

            _id = FieldProperty(S.ObjectId)

        Mapper.compile_all()
        self.Parent = TestRelationParent
        self.create_app = TestApp(MingMiddleware(self._wsgi_create_object))
        self.remove_app = TestApp(MingMiddleware(self._wsgi_remove_object))
        self.remove_exc = TestApp(MingMiddleware(self._wsgi_remove_object_exc))
Ejemplo n.º 7
0
    def __init__(self):
        self.ming_session = Session()
        self.DBSession = ThreadLocalODMSession(self.ming_session)

        class User(MappedClass):
            class __mongometa__:
                session = self.DBSession
                name = 'tg_user'
                unique_indexes = [('user_name', ), ('email_address', )]

            _id = FieldProperty(s.ObjectId)
            user_name = FieldProperty(s.String)
            email_address = FieldProperty(s.String)
            display_name = FieldProperty(s.String)
            password = FieldProperty(s.String)

            @classmethod
            def by_user_name(cls, user_name):
                return cls.query.find({'user_name': user_name}).one()

        self.User = User
Ejemplo n.º 8
0
#{initial-imports
from ming import Session
from ming.datastore import DataStore
from ming.odm import ThreadLocalODMSession

bind = DataStore('mongodb://localhost:27017/', database='odm_tutorial')
doc_session = Session(bind)
session = ThreadLocalODMSession(doc_session=doc_session)
#}

#{odm-imports
from ming import schema
from ming.odm import FieldProperty, ForeignIdProperty, RelationProperty
from ming.odm import Mapper
from ming.odm.declarative import MappedClass
#}

class WikiPage(MappedClass):
    
    class __mongometa__:
        session = session
        name = 'wiki_page'

    _id = FieldProperty(schema.ObjectId)
    title = FieldProperty(str)
    text = FieldProperty(str)

    comments=RelationProperty('WikiComment')

class WikiComment(MappedClass):
Ejemplo n.º 9
0
from ming import create_datastore
from ming.odm import ThreadLocalODMSession

DB_PATH = 'mongodb://localhost:27017/library'
SESSION = ThreadLocalODMSession(bind=create_datastore(DB_PATH))
Ejemplo n.º 10
0
from ming import schema
from ming.odm import FieldProperty
from ming.odm import ForeignIdProperty
from ming.odm import RelationProperty
from ming.odm.declarative import MappedClass
import ming
from ming.odm.mapper import MapperExtension

from ming.schema import ObjectId

config = configparser.ConfigParser()
config.read('C://Users//Zerbs//accounts.sec')

session = ThreadLocalODMSession(
    bind=create_datastore('mongodb://%s:%s@%s' % (config["mongo"]["login"], 
                                                   config["mongo"]["password"],
                                                   config["mongo"]["path"]))
)
    
    
class MyExtension(MapperExtension):
    def before_insert(self, obj, st, sess):
        print("--"*20)
        #print(str(obj.worker_id))
        print(obj)
        if (TWorker.query.find().all()[0].get_by_id(str(obj.worker_id)) == None):
            raise ValueError("Worker id must match an id in table with workers")
        premium_size = TPremiumSize.query.find().all()[0].get_by_id(str(obj.premium_id))
        if (premium_size == None):
            raise ValueError("Premium id must match an id in table with premium sizes")
        
Ejemplo n.º 11
0
from ming import create_datastore
from ming.odm import ThreadLocalODMSession
from ming import schema
from ming.odm import MappedClass
from ming.odm import FieldProperty

from database import datastore

session = ThreadLocalODMSession(bind=create_datastore(datastore))


class Group(MappedClass):
    class __mongometa__:
        session = session
        name = 'groups'
        # indexes = ['author.name', 'comments.author.name']

    _id = FieldProperty(schema.ObjectId)
    name = FieldProperty(schema.String, unique=True)
    item_order = FieldProperty([schema.String])


class Item(MappedClass):
    class __mongometa__:
        session = session
        name = 'items'

    _id = FieldProperty(schema.ObjectId)
    name = FieldProperty(schema.String, unique=True)
    values = FieldProperty([])
    groups = FieldProperty([schema.String])
Ejemplo n.º 12
0
from __future__ import absolute_import
import os
import ming
from ming import Session
from ming.odm import ThreadLocalODMSession
from ming import create_datastore
from depot.fields.ming import DepotExtension

mainsession = Session()
DBSession = ThreadLocalODMSession(mainsession, extensions=(DepotExtension, ))

database_setup = False
datastore = None


def setup_database():
    global datastore, database_setup
    if not database_setup:
        datastore = create_datastore(os.environ.get('MONGOURL', 'mim:///'))
        mainsession.bind = datastore
        ming.odm.Mapper.compile_all()


def clear_database():
    global datastore, database_setup
    if not database_setup:
        setup_database()

    try:
        # On MIM drop all data
        datastore.conn.drop_all()
Ejemplo n.º 13
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Clear the class names in case MappedClasses are declared in another example
from ming.odm import Mapper
Mapper._mapper_by_classname.clear()

from ming import create_datastore
from ming.odm import ThreadLocalODMSession
session = ThreadLocalODMSession(bind=create_datastore('odm_tutorial'))

from ming import schema
from ming.odm import MappedClass
from ming.odm import FieldProperty, ForeignIdProperty, RelationProperty


class Transport(MappedClass):
    class __mongometa__:
        session = session
        name = 'transport'
        polymorphic_on = '_type'
        polymorphic_identity = 'base'

    _id = FieldProperty(schema.ObjectId)
    origin = FieldProperty(schema.String(required=True))
    destination = FieldProperty(schema.String(if_missing=''))
    _type = FieldProperty(schema.String(if_missing='base'))

    def move(self):
        return 'moving from {} to {}'.format(self.origin, self.destination)

Ejemplo n.º 14
0
import os

from ming.odm import MappedClass, ThreadLocalODMSession
from ming import schema as s, create_datastore

MingSession = ThreadLocalODMSession(
    bind=create_datastore(os.getenv("MONGODB_URL")))


class Login(MappedClass):
    class __mongometa__:
        session = MingSession
        name = "logins"

    _id = s.ObjectId()
    id = s.Int()
    device_id = s.Int()
    datetime = s.DateTime()

    def __str__(self):
        return f"<Login(mongo) device_id={self.device_id} datetime={self.datetime}>"
Ejemplo n.º 15
0
# Clear the class names in case MappedClasses are declared in another example
from ming.odm import Mapper
Mapper._mapper_by_classname.clear()

#{connect-imports
from ming import create_datastore
from ming.odm import ThreadLocalODMSession

session = ThreadLocalODMSession(bind=create_datastore('odm_welcome'))
#}

#{odm-model
from ming import schema
from ming.odm import FieldProperty
from ming.odm.declarative import MappedClass


class WikiPage(MappedClass):
    class __mongometa__:
        session = session
        name = 'wiki_page'

    _id = FieldProperty(schema.ObjectId)
    title = FieldProperty(schema.String(required=True))
    text = FieldProperty(schema.String(if_missing=''))


#}

#{compileall
from ming.odm import Mapper
Ejemplo n.º 16
0
from ming import create_datastore
from ming.odm import ThreadLocalODMSession

from api import DATABASE

session = ThreadLocalODMSession(bind=create_datastore(
    f'mongodb://{DATABASE.user}:{DATABASE.password}@'
    f'{DATABASE.host}:{DATABASE.port}/{DATABASE.dbname}?authSource=admin'))
Ejemplo n.º 17
0
# --- --- -- --- --- --- #
# --- Import Modules --- #
# --- --- -- --- --- --- #

import pymongo
from pymongo import MongoClient
from bson.objectid import ObjectId

from ming import create_datastore
from ming.odm import ThreadLocalODMSession
from ming import schema
from ming.odm import MappedClass
from ming.odm import FieldProperty, ForeignIdProperty

session = ThreadLocalODMSession(
    bind=create_datastore('mongodb://localhost:27017'))

db = session.db

collections = {'users': db.users, 'people': db.people}
Ejemplo n.º 18
0
from ming.odm import ThreadLocalODMSession, Mapper
from ming.odm import ForeignIdProperty, RelationProperty

from lesson_2_0 import model as M

sess = ThreadLocalODMSession(M.sess)


class Forum(object):
    pass


class Thread(object):
    pass


class Post(object):
    pass


sess.mapper(Forum,
            M.Forum,
            properties=dict(threads=RelationProperty('Thread')))
sess.mapper(Thread,
            M.Thread,
            properties=dict(forum_id=ForeignIdProperty('Forum'),
                            forum=RelationProperty('Forum'),
                            posts=RelationProperty('Post')))
sess.mapper(Post,
            M.Post,
            properties=dict(forum_id=ForeignIdProperty('Forum'),
Ejemplo n.º 19
0
from ming import Session
from ming.odm import ThreadLocalODMSession

mainsession = Session()
DBSession = ThreadLocalODMSession(mainsession)
""":type :ming.odm.ODMSession """
Ejemplo n.º 20
0
def ming_session():
    return ThreadLocalODMSession(
        bind=create_datastore(os.getenv("MONGODB_URL")),
    )
    if os.path.isfile(app.config['UPLOAD_FOLDER'] + file) == False:
        # Download file to local storage
        s3_resource.Bucket(app.config['S3_BUCKET']).download_file(
            file, app.config['UPLOAD_FOLDER'] + file)


# Download recipe images from S3 into local folder on server start
for key in image_bucket.objects.all():
    # Define image name variable
    image_name = key.key
    # Download S3 file
    download_s3_file(image_name)
""" DATABASE CONNECTION """

# Create database session
session = ThreadLocalODMSession(bind=create_datastore(app.config['MONGO_URI']))

# Create recipe variable
recipes_collection = session.db.recipes

# Create user variable
users_collection = session.db.users

# Ensure all indexes
index_mapper = Mapper.ensure_all_indexes()

# Drop search index
drop_index = recipes_collection.drop_index('$**_text')

# Create search index
create_index = recipes_collection.create_index([('$**', 'text')])