Esempio n. 1
0
    def loop(self):
        sql = (
            'INSERT INTO TempHumidity (datetime,Humidity,Temperature) VALUES (%(datetime)s,%(humidity)s,%(temperature)s)'
        )

        db = None
        cursor = None
        while True:
            if not db:
                db = getDB()

            date_time = datetime.now()

            try:
                cursor = db.cursor()
                humidity, temperature = self.readValue()
                if humidity and temperature:
                    data = {
                        'datetime': date_time,
                        'humidity': humidity,
                        'temperature': temperature
                    }

                    cursor.execute(sql, data)
                    db.commit()
            except:
                pass

            sleep(30)

        db.close()
Esempio n. 2
0
def thdatatable():
    db = getDB()
    list = []
    if db:
        try:
            cursor = db.cursor()

            sql = 'SELECT * FROM TempHumidity'
            cursor.execute(sql)
            results = cursor.fetchall()

            for i, r in enumerate(results):
                d = {
                    'count': (i + 1),
                    'datetime': str(r[1]),
                    'temperature': r[2],
                    'humidity': r[3]
                }
                list.append(d)
        except:
            pass

        db.close()

    return json.dumps(list)
Esempio n. 3
0
    def loop(self):
        sql = (
            'INSERT INTO Light (datetime,value) VALUES (%(datetime)s,%(value)s)'
        )

        db = None
        cursor = None
        while True:
            if not db:
                db = getDB()

            date_time = datetime.now()

            try:
                cursor = db.cursor()
                ldr_value = self.readValue()
                if ldr_value:
                    data = {'datetime': date_time, 'value': ldr_value}
                    cursor.execute(sql, data)
                    db.commit()
            except:
                pass

            sleep(30)

        db.close()
Esempio n. 4
0
def thdata():
    db = getDB()
    dict = {}
    if db:
        cursor = db.cursor()

        try:
            sql = 'SELECT * FROM TempHumidity'
            cursor.execute(sql)
            lightresults = cursor.fetchall()

            dict['cols'] = [{
                'id': 'timestamp',
                'label': 'Timestamp',
                'type': 'datetime'
            }, {
                'id': 'humidity',
                'label': 'Humidity',
                'type': 'number'
            }, {
                'id': 'temperature',
                'label': 'Temperature',
                'type': 'number'
            }]

            list = []
            for r in lightresults:
                datetime = r[1]
                d = {
                    'c': [{
                        'v':
                        'Date({},{},{},{},{},{})'.format(
                            datetime.year, datetime.month, datetime.day,
                            datetime.hour, datetime.minute, datetime.second)
                    }, {
                        'v': r[2]
                    }, {
                        'v': r[3]
                    }]
                }
                list.append(d)

            dict['rows'] = list
        except:
            pass

        db.close()

    return json.dumps(dict)
Esempio n. 5
0
    def __new__(cls, name, bases, attrs):
        super_new = super(MetaMode, cls).__new__
        parents = [b for b in bases if isinstance(b, MetaMode)]
        if not parents:
           return super_new(cls, name, bases, attrs)
 
        o = super_new(cls, name, bases, attrs) 
        
        # 附加属性, 这些属性是静态的属性 
        database =  attrs.get("database", "test")
        o.db = getDB(database)
        
        assert attrs.get("_cName") is not None, "Mode;类需要定义_cName"
        o.collection = o.db[attrs.get("_cName")]
        return o
Esempio n. 6
0
def create_lookdev_hda(sel):
    db = common.getDB()

    parent_parms = {
        'name': 'parent_asset_name',
        'stage': 'parent_asset_stage',
        'entity': 'parent_asset_entity',
    }

    # Test if there is something selected
    if sel is None:
        hou.ui.displayMessage('No node selected')
        exit

    # Filter parms to what is defined in parent_parms
    f_parms = {
        x.name(): x.eval()
        for x in sel.parms() if x.name() in parent_parms.values()
    }

    # Check if all required parms are present
    if not all(x in f_parms.keys() for x in parent_parms.values()):
        hou.ui.displayMessage('Not all parent asset details detected!')
        exit

    # See if asset exists in db
    query = db.assets_curr.find_one({
        "name": f_parms['parent_asset_name'],
        "stage": f_parms['parent_asset_stage'],
        "entity": f_parms['parent_asset_entity'],
        "type": 'shader'
    })

    # Default to version 1
    version = 1

    # If we find a matching asset, grab its version
    if query:
        version = query['version'] + 1

    create_hda('tba::{}_model_lookdev::{}'.format(f_parms['parent_asset_name'],
                                                  version),
               '{}_model_lookdev'.format(f_parms['parent_asset_name']),
               major=version)

    hou.ui.displayMessage("Asset created")
Esempio n. 7
0
def lightdatatable():
    db = getDB()
    list = []
    if db:
        try:
            cursor = db.cursor()

            sql = 'SELECT * FROM Light'
            cursor.execute(sql)
            results = cursor.fetchall()

            for i, r in enumerate(results):
                d = {'count': (i + 1), 'datetime': str(r[1]), 'value': r[2]}
                list.append(d)
        except:
            pass

        db.close()

    return json.dumps(list)
Esempio n. 8
0
#-*- coding: utf-8 -*-
from flask import Blueprint, render_template
from mode.content import contentMap, ContentMode
from flask import request, jsonify
from util import synchronize, getMode
from common import getDB


db = getDB("app")
contentView = Blueprint("content", __name__, url_prefix="/device/content")


@contentView.route("/", defaults={"cid":None})
@contentView.route("/<int:cid>", methods=["GET", ])
def get(cid):
    if cid is None:
        data = db.content.find({}, {"_id":0})
    else:
        data = db.content.find({"id":cid}, {"_id":0})

    return render_template("showTable.html",
                        data=data,
						tableMap=contentMap,
						addURL="content.add",
						updateURL="content.update",
                        checkType="content",
            )


@contentView.route("/add", methods=["POST",])
@synchronize
Esempio n. 9
0
def publish_lookdev_hda(sel):

    if sel is None:
        hou.ui.displayMessage("No node selected",
                              severity=hou.severityType.Error)
        exit

    if sel.parm('parent_asset_job_id') is None:
        hou.ui.displayMessage("No job attached to asset",
                              severity=hou.severityType.Error)
        exit

    if sel.parm('parent_asset_id') is None:
        hou.ui.displayMessage("No parent ID attached to asset",
                              severity=hou.severityType.Error)
        exit

    job = common.getJob(sel.parm('parent_asset_job_id').evalAsString())

    # Get DB
    db = common.getDB()

    # Get parent_asset
    parent_asset = db.assets_curr.find_one(
        {"_id": bson.ObjectId(sel.parm('parent_asset_id').eval())})

    # Search for existing shaders attached to parent
    search = {
        'name': parent_asset['name'],
        'stage': parent_asset['stage'],
        'entity': parent_asset['entity'],
        'type': 'shader'
    }

    existing = db.assets_curr.find_one(search)

    # Figure out latest version. If we're on v1, assume new shader entry
    local_version = int(sel.type().nameComponents()[-1])
    latest_version = 0
    if existing:
        latest_version = existing['version']

    print "Latest version: {}".format(latest_version)

    # If someone has already published a version to db and we are behind, update local
    # asset to latest version.
    if local_version <= latest_version:
        print "Local asset is behind latest asset!"
        latest_version += 1
        latest_name = '::'.join(
            list(sel.type().nameComponents()[1:-1]) + [str(latest_version)])
        print sel.type().definition().libraryFilePath()
        latest_file_dir = '/'.join(
            sel.type().definition().libraryFilePath().split('/')[:-1])
        latest_file_name = '{}/{}.0.hda'.format(latest_file_dir,
                                                latest_name.replace('::', '_'))
        print "Writing to: {}".format(latest_file_name)
        sel.type().definition().copyToHDAFile(latest_file_name,
                                              new_name=latest_name)
        hou.hda.installFile(latest_file_name)
        print "Installed {}".format(latest_file_name)
        sel = sel.changeNodeType(latest_name)
        print "Switched {} to {}".format(sel.name(), latest_name)
    else:
        latest_version = local_version

    print "LOCAL FILENAME: {}".format(
        sel.type().definition().libraryFilePath())
    lib_path = sel.type().definition().libraryFilePath()

    local_filename = list(filter(None, re.split('[\\\\/]', lib_path)))[-1]

    # Get job root and build HDA publish target

    publish_filepath = '{}/config/houdini/otls/{}'.format(
        job['path'], local_filename)

    sel.type().definition().updateFromNode(sel)
    print "Publishing HDA to {}".format(publish_filepath)

    r_filepath = publish_hda(majorUpdate=False, filepath=publish_filepath)

    # Check if publish_hda has returned a publish filepath
    if r_filepath is None:
        hou.ui.displayMessage("Asset publish has failed!",
                              severity=hou.severityType.Error)
        exit

    #
    # Move current existing shader entry to assets_prev then update in place
    # the assets_curr
    #
    if existing:
        id = existing['_id']
        del existing['_id']
        db.assets_prev.insert(existing)
        db.assets_curr.update_one({'_id': bson.ObjectId(id)}, {
            '$set': {
                'version': latest_version,
                'dateCreated': datetime.datetime.utcnow(),
                'filepath': r_filepath,
                'author': os.environ['USERNAME']
            }
        })

        hou.ui.displayMessage(
            "Updated asset to version {}".format(latest_version))
    else:
        #
        # New asset, borrow from parent_asset entry
        #
        new_asset = parent_asset
        del new_asset['_id']
        new_asset['type'] = 'shader'
        new_asset[
            'version'] = latest_version  # This should be 1 if our logic is sound.
        new_asset['author'] = os.environ['USERNAME']
        new_asset['filepath'] = r_filepath,
        new_asset['dateCreated'] = datetime.datetime.utcnow()
        db.assets_curr.insert(new_asset)
        hou.ui.displayMessage(
            "Installed new asset into database!".format(latest_version))

    print "DONE!"
Esempio n. 10
0
File: main.py Progetto: gsk727/git
from flaskext.babel import Babel

app = Flask(__name__)
app.register_blueprint(userView)
app.register_blueprint(deviceView)
app.register_blueprint(adminView)
app.register_blueprint(airView)
app.register_blueprint(stuffView)
app.register_blueprint(baseView)
app.register_blueprint(taskView)
app.register_blueprint(airlineView)
app.register_blueprint(contentView)

babel = Babel(app)

db = common.getDB("app")


@app.errorhandler(405)
def method_not_allowed(error):
    rs = []
    for r in app.url_map.iter_rules():
        ts = str(r).replace("<", "&lt").replace(">", "&gt")
        ss = "<a href='%s'> '%s' </a>" % (ts, ts)
        #ss = ss.replace("<", "&lt").replace(">", "&gt")
        rs.append(ss)

    return "<br>".join(rs)


@app.errorhandler(404)