コード例 #1
0
ファイル: admin.py プロジェクト: twitter/gatekeeper-service
  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
コード例 #2
0
    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))
コード例 #3
0
 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
コード例 #4
0
ファイル: admin.py プロジェクト: iulianmac/gatekeeper-service
 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
コード例 #5
0
    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)
コード例 #6
0
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)
コード例 #7
0
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