def index( self ):
   ModelArticles        = MVC.loadModel('Articles')
   ModelArticlesSources = MVC.loadModel('ArticlesSources')
   data = { 
     'articles' : ModelArticles.getAll(),
     'sources'  : ModelArticlesSources.getAll()
   }
   return self.Renderer.build( 'admin/articles/index.html', data )
  def prowl_alerts( self, message ):
    UserModel = MVC.loadModel( 'User' )
    users = UserModel.getUsersWithMeta( 'prowl-apikey' )
    Prowl = MVC.loadDriver('Prowl')
    for user in users:
      Prowl.send( user['meta']['prowl-apikey'], message[0], message[1], 1 )

# End File: models/ModelAlert.py
 def info( self, user_id = False ):
   UserModel = MVC.loadModel( 'User' )
   ACL       = MVC.loadHelper( 'ACL' )
   data = {}
   if user_id != False:
     data['user']  = UserModel.getById( user_id )
     data['roles'] = ACL.getAllRoles()
     return self.Renderer.make( 'admin/user/info.html', data )
   else:
     return 'error'
Beispiel #4
0
 def settings( self, *boom ):
   UsersModel = MVC.loadModel('User')
   Settings   = MVC.loadHelper( 'Settings' )
   #Settings.update( 'url', 'http://www.somewhere.com' )
   tpl_args = {
     'users'        : UsersModel.getAll(),
     'settings'     : Settings.get_options()
   }
   view = env.get_template('settings/index.html')
   return view.render( d = tpl_args )
  def acl_perm_update( self, **kwargs ):
    if kwargs:
      ACL = MVC.loadHelper( 'ACL' )
      if kwargs['perm_id'] == '':
        Misc = MVC.loadHelper( 'Misc' )
        perm_id = ACL.createPerm( Misc.slug( kwargs['perm_name'] ), kwargs['perm_name'] )[0]
        if kwargs['role_id'] != '':
          ACL.createRolePerm( kwargs['role_id'], perm_id )
      raise cherrypy.HTTPRedirect( '/admin/user_acl/' )

# End File: controllers/admin/ControllerAdminUser.py
 def getLoadLevel( self, article, hide = True, load_level = 'light' ):
   if load_level == 'full':
     ModelArticlesSources = MVC.loadModel('ArticlesSources')
     article['source'] = ModelArticlesSources.getByID( article['source_id'] )
     article['meta'] = self.getMeta( article['id'] )
     if article['meta']:
       if 'assoc_company' in article['meta']:
         ModelCompany = MVC.loadModel('Company')
         article['meta']['companies'] = []
         for c_id in article['meta']['assoc_company']['value']:
           article['meta']['companies'].append( ModelCompany.getByID( c_id, hide ) )
   return article
 def info( self, company_id = None ):
   if company_id:
     ModelCompany     = MVC.loadModel('Company')
     # ModelCompanyNews = MVC.loadModel('CompanyNews')
     company = ModelCompany.getByID( company_id, 'full', hide = False )     
     if not company:
       raise cherrypy.HTTPRedirect( '/admin/error/?e="cantfindcompany"' )
     ModelArticles = MVC.loadModel('Articles')
     data = { 
       'company' : company,
       'articles' : ModelArticles.getByCompany( company_id )
     }
     return self.Renderer.build( 'admin/companies/info.html', data )
   else:
     raise cherrypy.HTTPRedirect( '/admin/error/?e="cantfindcompany"' )      
Beispiel #8
0
 def dashboard( self ):
   Weather = MVC.loadModel('Weather')
   tpl_args = {
     'weather_indoor' : Weather.get_current()
   }
   view = env.get_template('index.html')
   return view.render( d = tpl_args )
Beispiel #9
0
def sensor_sht1x():
	global verbose
	if verbose:
		print 'SHTX Sensor'
	GPIO = MVC.loadDriver( 'GPIO' )
	reading = GPIO.read_sht1x()
	return reading
Beispiel #10
0
 def chart_water_temp( self ):
   WaterModel = MVC.loadModel('Water')
   tpl_args = {
     'water_stats'   : WaterModel.get_stats( )
   }
   view = env.get_template('water/chart-temp.html')
   return view.render( d = tpl_args )
 def update( self, **kwargs ):
   Settings = MVC.loadHelper( 'Settings')
   if kwargs['meta_id'] == '':
     Settings.create(  kwargs['meta_key'], kwargs['meta_value'] )
   else:
     Settings.update( kwargs['meta_key'], kwargs['meta_value'] )
   raise cherrypy.HTTPRedirect( '/admin/settings' )
Beispiel #12
0
 def chart_humidity( self ):
   Weather = MVC.loadModel('Weather')
   tpl_args = {
     'weather_stats'   : Weather.get_stats( )
   }
   view = env.get_template('weather/chart-humidity.html')
   return view.render( d = tpl_args )
Beispiel #13
0
def lighting( status ):
	global verbose
	Devices = MVC.loadModel('Devices')
	Devices.lighting( status )
	if verbose:
		print 'Lights have been turned %s' % status
	sys.exit()
 def index( self ):
   """
     Main home page.
   """
   Company = MVC.loadModel( 'Company' )
   SimpleStats = MVC.loadModel( 'SimpleStats' )
   data = { 
     'random_company' : Company.getRandom(),
     'stats'          : {
       'company_count' : SimpleStats.countOfCompanies(),
       'people_count'  : SimpleStats.countOfPeople(),
       'article_count' : SimpleStats.countOfArticles(),
       'sources_count' : SimpleStats.countOfArticlesSources()
     }
   }
   return self.Renderer.build( 'frontend/index.html', data )
 def meta_create( self, **kwargs ):
   if kwargs:
     User = MVC.loadModel('User')
     help_text = ''
     parent    = ''
     User.addMeta( kwargs['user_id'], kwargs['meta_key'], kwargs['meta_value'], kwargs['pretty_name'], help_text, parent )
     raise cherrypy.HTTPRedirect( '/admin/user/info/%s' % kwargs['user_id'] )
 def people( self ):
   """
     Roster page of people
   """
   PeopleModel = MVC.loadModel('People')
   data = { 'people' : PeopleModel.getAll() }
   return self.Renderer.build( 'frontend/people.html' )
 def getLoadLevel( self, person, load_level = 'light' ):
   if load_level == 'full':
     person['meta'] = self.getMeta( person['id'] )
     if person['meta']:      
       if 'people' in person['meta']:
         ModelPeople = MVC.loadModel('People')
         people      = []
   return person
  def messaging( self, message ):
    if Settings.get_option('use-prowl'):
      Prowl = MVC.loadDriver('Prowl')
      prowl_api_key = Settings.get_option('prowl-apikey')

      Prowl.send( prowl_api_key, message[0], message[1], 1 )

# End File: models/ModelAlert.py
 def __init__( self ):
   self.Renderer          = MVC.loadDriver('Renderer')
   self.Renderer.layout   = 'admin/layout.html'
   self.Renderer.layout_args = {
     'ga_tracker' : '',
     'cdn'        : MVC.server['cdn'],
     'production' : MVC.server['production']
   }    
Beispiel #20
0
 def weather( self ):
   Weather = MVC.loadModel('Weather')
   tpl_args = {
     'weather_current' : Weather.get_current(),
     'weather_min_max' : Weather.get_min_max(),
   }
   view = env.get_template('weather/index.html')
   return view.render( d = tpl_args )
 def meta_delete( self, user_id, metaID_or_key = False ):
   if metaID_or_key:
     UserModel = MVC.loadModel( 'User' )
     if metaID_or_key.isdigit():
       meta_id = metaID_or_key
     else:
       meta_key = metaID_or_key
       # @todo: build a way to delete by meta_key
   raise cherrypy.HTTPRedirect( '/admin/user/info/%s' % kwargs['user_id'] )      
 def companies( self ):
   """
     List of all companies.
   """
   Compaines = MVC.loadModel( 'Companies' )
   data = {
     'companies' : Compaines.getAll( False )
   }
   return self.Renderer.build( 'frontend/companies.html', data )
 def getMeta( self, article_id, metas = None ):
   """
     @params:
       article_id : int()
       metas : list() meta keys
     @return: 
       dict{ 'meta_key': 'meta_value' }
   """
   MetaStore = MVC.loadHelper('MetaStore')
   return MetaStore.get( entity='articles', entity_id=article_id  )
 def getMeta( self, people_id, metas = None ):
   """
     @params:
       company_id : int()
       metas : list() meta keys
     @return: 
       dict{ 'meta_key': 'meta_value' }
   """
   MetaStore = MVC.loadHelper('MetaStore')
   return MetaStore.get( entity = 'people', entity_id = people_id  )
Beispiel #25
0
 def createRolePerm( self, role_id, perm_id ):
   Time = MVC.loadHelper('Time')
   sql_check = 'SELECT * FROM `%s`.`acl_role_perms` WHERE `roleID` = "%s" AND `permID` = "%s";' % ( self.database, role_id, perm_id )
   role_perm_exists = Mysql.ex( sql_check )
   if len( role_perm_exists ) == 0:
     insert_sql = 'INSERT INTO `%s`.`acl_role_perms` ( `roleID`, `permID`, `value`, `addDate` ) VALUES( "%s", "%s", "1", "%s");' % ( self.database, role_id, perm_id, Time.now() )
     Mysql.ex( insert_sql )
   else:
     update_sql = "UPDATE `%s`.`acl_role_perms` SET `value` = 1 WHERE ID = %s; " % ( self.database, role_perm_exists[0][0] )
     Mysql.ex( update_sql )
 def createMeta( self, person_id, metas ):
   """
     @params:
       company_id : int
       meta       : dict {
         'meta_key' : 'meta_value',
         'meta_key' : 'meta_value',
       }
   """
   MetaStore = MVC.loadHelper('MetaStore')
   MetaStore.create( 'people', person_id, metas  )
 def auth( self, **kwargs ):
   if kwargs:
     UserModel = MVC.loadModel('User')
     user      = UserModel.auth( kwargs['user_name'], kwargs['password'] )
     if user:
       return 'youre in'
     else:
       return 'youre out'
   else:
     print ''
   return ''
 def createMeta( self, article_id, metas ):
   """
     @params:
       article_id : int
       meta       : [ {
         "meta_key"   : 'test_meta',
         "meta_value" : '13,254',
         "meta_type"  : 'comma'
       }, ]
   """
   MetaStore = MVC.loadHelper('MetaStore')
   MetaStore.create( 'articles', article_id, metas  )
 def info( self, slug_name ):
   """
     General Information page for a single company
   """    
   CompanyModel = MVC.loadModel( 'Company' )
   Company = CompanyModel.getBySlug( slug_name, 'full' )
   if Company:
     data = { 'company' : Company }
     return self.Renderer.build( 'frontend/info.html', data )
   else:
     data = { 'searched_for' : slug_name }
     return self.Renderer.build( 'errors/company_not_found.html', data )
Beispiel #30
0
  def getStatus( self, device ):
    Formula = MVC.loadHelper('Formula')
    status = ""
    try:
      for i in range (0, 30):
        status += chr( self.bus.read_byte(device) )
        time.sleep(0.05);
      time.sleep(0.1)
    except:
      Alert = MVC.loadModel('Alert')
      Alert.messaging( ['I2C Bus Issue', 'There is a problem reading the I2c bus, we cannot collect data at this time.'] )
      return False

    sensors = [ 'water-temp', 'flow-rate' ]
    status = status.split('x')
    # water temp

    status[0] = Formula.celcius_to_fahrenheit( float( str( status[0][0:-1] ).replace(',','') + '.' + str( status[0][-1] ).replace(',','') )   )# Adjusted because the sensor doesnt put a decimal place in

    status[1] = status[1].split('.')
    status[1] = str( status[1][0][0:-1] + '.' + status[1][0][-1] )
    return status
Beispiel #31
0
"""
Created on Sat Mar  2 16:30:53 2019
@author: orrivlin
"""

from discrete_actor_critic import DiscreteActorCritic
from MVC import MVC
import matplotlib.pyplot as plt
from smooth_signal import smooth
import numpy as np
import time
import torch

n = 19  # number of nodes
p = 0.15  # edge probability
env = MVC(n, p)
cuda_flag = False
alg = DiscreteActorCritic(env, cuda_flag)

num_episodes = 1
lista = []
for i in range(num_episodes):
    T1 = time.time()
    log = alg.train()
    T2 = time.time()
    lista.append(log.get_current('tot_return'))
    print('---------------------------------------------------')
    print('Epoch: {}. R: {}. TD error: {}. H: {}. T: {}'.format(
        i, np.round(log.get_current('tot_return'), 2),
        np.round(log.get_current('TD_error'), 3),
        np.round(log.get_current('entropy'), 3), np.round(T2 - T1, 3)))
"""

import torch
from MVC import MVC
import dgl
import torch.nn.functional as F
from Models import ACNet
import time
from copy import deepcopy as dc
import matplotlib.pyplot as plt
import networkx as nx

cuda_flag = True
num_nodes = 40
p_edge = 0.15
mvc = MVC(num_nodes, p_edge)
ndim = mvc.get_graph_dims()

if cuda_flag:
    NN = ACNet(ndim, 264, 1).cuda()
else:
    NN = ACNet(ndim, 264, 1)
PATH = 'mvc_net.pt'
NN.load_state_dict(torch.load(PATH))

init_state, done = mvc.reset()
pos = nx.spring_layout(init_state.g.to_networkx(), iterations=20)

#### GCN Policy
state = dc(init_state)
if cuda_flag: