def create_user(self, user_key, last_name, first_name): """ Creates a user account. :param user_key: user_key :param last_name: last_name :param first_name: first_name :return: user object Note: When successful this returns a user object. """ passwd = HelperFunctions().hash_passwd() user_body = { "name": { "familyName": last_name, "givenName": first_name, }, "password": passwd, "hashFunction": "SHA-1", "primaryEmail": user_key, } r = json.loads(self.call_google_api(service=self.service, api_resource="users", api_method="insert", response_field=None, body=user_body)) return r
def list_events(self, user_email, role="organizer"): """ Lists the future dated events of a user. :param user_email: user_email :param role: organizer: attendee: owned_single_event :return: List of event ids. """ now = HelperFunctions().date_now() events = [] r = json.loads( self.call_google_api(service=self.service, api_resource="events", api_method="list", response_field="items", singleEvents=True, timeMin=now, orderBy="startTime", calendarId="primary")) if r is not None: if role == "organizer": for event in r: if (("organizer" in event) and (("self" in event["organizer"] and event["organizer"]["self"]) or (event["organizer"]["email"] == user_email))): if ("recurringEventId" in event): events.append(event["recurringEventId"]) else: events.append(event["id"]) elif role == "attendee": for event in r: if (("organizer" in event) and (("self" not in event["organizer"]) or (event["organizer"]["email"] != user_email))): if ("recurringEventId" in event): events.append(event["recurringEventId"]) else: events.append(event["id"]) elif role == "owned_single_event": for event in r: if (("organizer" in event) and (("self" in event["organizer"] and event["organizer"]["self"]) or (event["organizer"]["email"] == user_email))): if ("recurringEventId" not in event): events.append(event["id"]) return list(set(events))
def remove_recurring_instances(self, user_email): """ Cancels future event instances from a users calendar. :param user_email: user_email :return: list of canceled event ids. """ updated_events = [] recurring_events_list = self.list_events(user_email) if recurring_events_list: for event in recurring_events_list: event_rule = self.get_event_rule(event) if event_rule: new_event_rule = HelperFunctions.updated_event_rule( event_rule) updated_event = self.cancel_recurrence( event, new_event_rule) updated_events.append(updated_event) return updated_events else: return None
def reset_password(self, user_key): """ Resets a user's password. :param user_key: userKey :return: bool Note: The password field is always returned empty. """ result = True passwd = HelperFunctions().hash_passwd() try: r = json.loads(self.call_google_api(service=self.service, api_resource="users", api_method="update", response_field=None, userKey=user_key, body={"password": passwd, "hashFunction": "SHA-1"})) if "password" in r: if r["password"] == "": result = True except(ValueError, KeyError, TypeError): result = False return result
lib.write_best_labels_binary(best_name, best_cluster, kind=conf.kind) ## now write best hdbscan setup to text file fh = open(conf.hdbscan_best_setups_file.replace('CLASS', conf.kind), "w") fh.write( f"Number of top RF important attributes chosen: {best_name.split('_')[0]}\nReduced to {best_name.split('_')[1]} dimensions by PCA\nHDBSCAN min_cluster_size set to {best_name.split('_')[2]}\n" ) fh.close() ## using best setup, now train the binary classifier and saved trained model ## (for use in e.g. prediction script) lib.train_and_save_hdbscan(attribute_names, scaled_data, best_name, kind=conf.kind) if __name__ == '__main__': gridsearch = True conf = ConfigVars(test=False, kind='star', gridsearch=gridsearch) lib = HelperFunctions(conf) run_binary(conf, lib) conf = ConfigVars(test=False, kind='galaxy', gridsearch=gridsearch) lib = HelperFunctions(conf) run_binary(conf, lib) conf = ConfigVars(test=False, kind='qso', gridsearch=gridsearch) lib = HelperFunctions(conf) run_binary(conf, lib)
import twitter.common.app as app import twitter.common.log as log import gevent from gevent.queue import Queue from flask import Flask, flash, redirect, render_template, request, Response, url_for from datetime import timedelta import json import os import platform app.set_name = "gatekeeper" app.add_option("-p", "--port", type="int", default=5000) config = HelperFunctions().read_config_from_yaml() PLATFORM = platform.system() GOOGLE_ADMIN_ACTIONS = list( k for k, v in config["actions"]["google_admin"].items() if v is True) GOOGLE_GMAIL_ACTIONS = list( k for k, v in config["actions"]["google_gmail"].items() if v is True) GOOGLE_CALENDAR_ACTIONS = list( k for k, v in config["actions"]["google_calendar"].items() if v is True) GOOGLE_DRIVE_ACTIONS = list( k for k, v in config["actions"]["google_drive"].items() if v is True) PAGERDUTY_ACTIONS = list(k for k, v in config["actions"]["pagerduty"].items() if v is True) DUO_ACTIONS = list(k for k, v in config["actions"]["duo"].items() if v is True)
from helper_functions import HelperFunctions as Hf from time import clock clock() number = 8192 result = Hf.divisors(number) print str(clock()) + ", " + str(number) print result