Beispiel #1
0
def do_connect():
    sta_if = network.WLAN(network.STA_IF)
    if not sta_if.isconnected():
        print('connecting to network...')
        sta_if.active(True)
        sta_if.connect(env.get('wifi_ssid'), env.get('wifi_password'))
        while not sta_if.isconnected():
            pass
    print('network config:', sta_if.ifconfig())
Beispiel #2
0
def search(**kwargs):
    parms = dict()
    # for key, value in kwargs.items():
    for arg in kwargs:
        if arg is not 'env' and arg is not 'url' and arg is not 'token':
            parms[arg] = kwargs[arg]
    if kwargs is None or 'env' not in kwargs:
        resp = env.get('/api/issues/search', parms)
    else:
        resp = kwargs['env'].get('/api/issues/search', parms)
    data = json.loads(resp.text)
    env.json_dump_debug(data)
    nbr_issues = data['paging']['total']
    page = data['paging']['pageIndex']
    nbr_pages = (
        (data['paging']['total'] - 1) // data['paging']['pageSize']) + 1
    env.debug("Number of issues: ", nbr_issues)
    env.debug("Page: ", data['paging']['pageIndex'], '/', nbr_pages)
    all_issues = []
    for json_issue in data['issues']:
        issue = Issue(0)
        issue.feed(json_issue)
        issue.set_env(kwargs['env'])
        all_issues = all_issues + [issue]
        #print('----issues.ISSUE---------------------------------------------------------------------------------------------------------------------------------')
        #json.dump(json_issue, sys.stdout, sort_keys=True, indent=3, separators=(',', ': '))
        #print(issue.toString)
    return dict(page=page,
                pages=nbr_pages,
                total=nbr_issues,
                issues=all_issues)
Beispiel #3
0
 def read(self):
     parms = dict(issues=self.id, additionalFields='_all')
     if (self.sonarqube is None):
         resp = env.get('/api/issues/search', parms)
     else:
         resp = self.sonarqube.get('/api/issues/search', parms)
     self.feed(resp.issues[0])
Beispiel #4
0
def send_request(data):
    token = env.get('DING_TOKEN')
    url = DINGDING + '?access_token=' + token
    headers = {'Content-Type': 'application/json'}
    data = json.dumps(data)
    res = http.post(url=url, headers=headers, data=data)
    return res
Beispiel #5
0
def show_metric_history(history_days: Text):
    history_days = int(history_days)
    metric_names = [cls.__name__ for cls in base.Metric.get_active_metrics()]
    return flask.render_template('show_metric_history.html',
                                 github_repo=env.get('GITHUB_REPO'),
                                 metric_names=metric_names,
                                 history_days=history_days)
Beispiel #6
0
def eval_ast(ast, env):
    if ast.type == "symbol":
        return env.get(ast.content)
    if ast.type == "list":  # call eval on all using list comprehension
        return MalTypes.MalList(
            [EVAL(element, repl_env) for element in ast.content])
    else:
        return ast
Beispiel #7
0
def eval_ast(ast, env):
    _type = Reader.getType(ast)
    if _type == "symbol":
        return env.get(ast)
    if _type == "list":  # call eval on all using list comprehension
        return [EVAL(element, env) for element in ast]
    else:
        return ast
Beispiel #8
0
 def _get_default_properties():
     now = datetime.now()
     return {
         'z':
         env.int('z', default=DEFAULT_ZOOM),
         'start_date':
         env.get('start_date', default=DEFAULT_START_DATE),
         'end_date':
         env.get('end_date', default=now.strftime("%Y-%m-%d")),
         'timestamp':
         now.strftime("%Y%m%d::%H:%M:%S"),
         'width':
         env.int('width'),
         'iterations':
         env.int('iterations'),
         'min_count':
         env.int('min_count'),
         'url':
         env.get('url', default=None),
         'csv_bucket':
         env.get('csv_bucket', default=None),
         'bucket':
         env.get('bucket', default=None),
         'download_folder':
         env.get('download_folder', default=DEFAULT_DOWNLOAD_FOLDER),
         'preprocess_data':
         env.get('preprocess_data', default=DEFAULT_PREPROCESS_DATA)
     }
Beispiel #9
0
def bootstrap():
    defaults_path = os.path.expanduser('~/Library/Preferences/org.ratazzi.ServicesBox.plist')
    defaults = dict()
    if os.path.isfile(defaults_path):
        try:
            defaults = biplist.readPlist(defaults_path)
        except (biplist.InvalidPlistException, biplist.NotBinaryPlistException):
            defaults = plistlib.readPlist(defaults_path)

    if 'dir_library' in defaults:
        env.add('dir_library', defaults['dir_library'])
    else:
        # development environment
        env.add('dir_library', os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')))

    bundles = 'darwin' in sys.platform and 'bundles' or 'bundle'

    env.add('dir_bundles', os.path.join(env.get('dir_library'), bundles))
    env.add('dir_config', os.path.join(env.get('dir_library'), 'etc'))
    env.add('dir_bin', os.path.join(env.get('dir_library'), 'bin'))
    env.add('dir_tmp', os.path.join(env.get('dir_library'), 'tmp'))
    env.add('dir_data', os.path.join(env.get('dir_library'), 'data'))
    env.add('dir_log', os.path.join(env.get('dir_library'), 'var', 'log'))
    env.add('dir_run', os.path.join(env.get('dir_library'), 'var', 'run'))

    # custom data path
    for item in DEFAULT_DIRS.keys():
        key = 'dir_%s' % item
        if defaults.get(key):
            env.add(key, defaults[key])

    for k, _dir in os.environ.items():
        if k.startswith('%sDIR_' % env.PREFIX):
            if not os.path.exists(_dir):
                os.makedirs(_dir)
Beispiel #10
0
def get_trackables():
    endpoint = env.get('api') + '/trackables'

    objs = get(endpoint)

    if objs is None:
        return None

    return Trackable.from_objs(objs)
Beispiel #11
0
def get_health():
    endpoint = env.get('api') + '/health'

    obj = get(endpoint)

    if obj is None:
        return Health()

    return Health.from_obj(obj)
Beispiel #12
0
 def __init__(self, issue_key, sonarqube):
     env.debug('Getting changelog for issue key ' + issue_key)
     parms = dict(format='json', issue=issue_key)
     if (sonarqube is None):
         resp = env.get('/api/issues/changelog', parms)
     else:
         resp = sonarqube.get('/api/issues/changelog', parms)
     data = json.loads(resp.text)
     self.json = data['changelog']
Beispiel #13
0
def is_macro_call(ast, env):
    if ast.my_type == "list":
        if ast.content[0].my_type == "symbol":
            symbol = env.get(ast.content[0])
            if symbol.my_type == "function":
                if symbol.is_macro:
                    return True

    return False
Beispiel #14
0
def main():
    environment = env.get()
    running_apps = process.Process.all()
    names = [ p.command for p in running_apps ]
    for app in get_managed_apps():
        forked = os.fork()
        if not forked: # child
            running = True if app in names else False
            print "Updating NN of", app #   update the neronal network associated
            return
Beispiel #15
0
 def __init__(self, *args, **kwargs):
     extra_headers = {
         'Authorization': 'token %s' % env.get('CODECOV_API_ACCESS_TOKEN'),
         'User-Agent': 'AMPProjectMetrics/1.0.0',
         'Content-Type': 'application/json'
     }
     props = agithub_base.ConnectionProperties(api_url='codecov.io',
                                               url_prefix='/api/gh',
                                               secure_http=True,
                                               extra_headers=extra_headers)
     self.setClient(agithub_base.Client(*args, **kwargs))
     self.setConnectionProperties(props)
Beispiel #16
0
    def __init__(self, *args, **kwargs):
        extra_headers = {
            'User-Agent': 'AMPProjectMetrics/1.0.0',
            'Content-Type': 'application/json',
            'Authorization': 'token %s' % env.get('TRAVIS_API_ACCESS_TOKEN'),
            'Travis-API-Version': '3',
        }

        props = agithub_base.ConnectionProperties(api_url='api.travis-ci.org',
                                                  secure_http=True,
                                                  extra_headers=extra_headers)
        self.setClient(agithub_base.Client(*args, **kwargs))
        self.setConnectionProperties(props)
Beispiel #17
0
def process_bundle_dirs(bundle):
    ENV_DICT = env.all_dict()
    for _dir in bundle.directories:
        if _dir.dir is None and _dir.name not in DEFAULT_DIRS.keys():
            raise Exception("Invalid default dir: `%s'" % _dir.name)

        if _dir.dir is None:
            _dir_name = 'dir_%s' % _dir.name
            _dst = join(env.get(_dir_name), _dir.bundle)
        else:

            _dst = _dir.dir.format(**ENV_DICT)
        if not os.path.exists(_dst):
            os.makedirs(_dst)
Beispiel #18
0
def post_scrobble(trackable_id):
    from dtos.input.scrobble_post import ScrobblePost

    scrobble_post = ScrobblePost()

    scrobble_post.trackable_id = trackable_id

    endpoint = env.get('api') + '/scrobbles'

    obj = post(endpoint, scrobble_post)

    if obj is None:
        return None

    return Scrobble.from_obj(obj)
Beispiel #19
0
    def get_dependants(self, expr, env):
        """
        Gets all the functions a function needs to run
        """
        depends = []
        if isinstance(expr, tokens.function.Function):
            for j in self.flatten_expression(expr.expr):
                val = self.env.get(j.value)
                if j.value not in self.core_keywords.keys(
                ) and val is not None and val is not expr:
                    if env.get(j.value) is None:
                        depends.append((j.value, val))
                        depends += self.get_dependants(val, env)

        return depends
Beispiel #20
0
    def get_workflow_stats(
        self,
        reporting_window=models.CircleCiReportingWindow.LAST_90_DAYS
    ) -> models.CircleCiWorkflowStats:
        params = {'reporting-window': reporting_window.value}
        endpoint = f'{INSIGHTS_API}/workflows{_dict_to_params(params)}'
        logging.info('Called {endpoint}')
        headers = {
            'authorization': 'Basic %s' % env.get('CIRCLECI_API_ACCESS_TOKEN')
        }
        response = requests.get(endpoint, headers=headers)
        parsed = response.json()
        if response.status_code != HTTPStatus.OK:
            raise CircleCiError(response.status_code, parsed['message'])
        stats = models.CircleCiWorkflowStats.from_json(parsed['items'][0])

        return stats
Beispiel #21
0
def eval_ast(ast: mytypes.MalType, env):
    print(env)
    if isinstance(ast, mytypes.MalSymbol):
        # try:
        print(str(type(env)) + "Type")
        print(str(env) + "value")
        return env.get(ast)
        # except:
        # print("Symbol look up error: {}".format(ast.content))
    elif ast.my_type in ["list", "vector"]:
        ret = mytypes.MalList([])
        print(ast.content)
        for item in ast.content:
            ret.content.append(EVAL(item, env))
        return ret
    else:
        return ast
Beispiel #22
0
def _replace_vars(s, scope):
	"""Substitutes variable (and constant) names for their respective values. Note that escaped characters are ignored"""

	expr = r'([\$\*])?(?<!\\)(?:\\\\)*<([^<>\\]+(?<!\\)(?:\\\\)*)>'	# matches $<varname> or <varname>
	m = re.search(expr, s)
	while m:
		modifier = m.group(1)
		start,end = m.span(2)
		start -= 1 if not modifier is None else 0 + len('<')
		end += len('>')
		name = m.group(2)

		# output name if it's not a valid variable name
		# escape < and > to prevenet infinite regex loop
		value = env.get(name, scope, modifier) if env.validate_name(name) else '\<%s\>'%name
		s = s[:start] + value + s[end:]
		m = re.search(expr, s)
	return s
Beispiel #23
0
def get_engine() -> sqlalchemy.engine.Engine:
  return sqlalchemy.create_engine(
      sqlalchemy.engine.url.URL(
          drivername=env.get('SQL_DRIVER'),
          username=env.get('DB_USER'),
          password=env.get('DB_PASS'),
          database=env.get('DB_NAME'),
          query={
              'unix_socket':
                  '%s/%s' % (env.get('CLOUD_SQL_SOCKET'),
                             env.get('CLOUD_SQL_INSTANCE_NAME')),
              'charset':
                  'utf8mb4',
          }),
      echo=False)
Beispiel #24
0
def get_engine() -> sqlalchemy.engine.Engine:
    query = {
        'charset': 'utf8mb4',
    }
    try:
        query['unix_socket'] = '%s/%s' % (env.get('CLOUD_SQL_SOCKET'),
                                          env.get('CLOUD_SQL_INSTANCE_NAME'))
    except KeyError:
        logging.info('Using local database')

    return sqlalchemy.create_engine(sqlalchemy.engine.url.URL(
        drivername=env.get('SQL_DRIVER'),
        username=env.get('DB_USER'),
        password=env.get('DB_PASS'),
        database=env.get('DB_NAME'),
        query=query),
                                    echo=False)
Beispiel #25
0
import os

import env as env

liste_de_nombres = [1, 2, 3, 7, 8, 9]
liste_mixe = ['Pierre', 2, 'Paul', 3.5]
listes_imbriques = [1, 2, [3, 4]]
var = os.get_exec_path('Program');
var2 = env.get()
print(var)
# print(var2)
Beispiel #26
0
import env

from alembic import command
from alembic.config import Config
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from model import BulkInvoice, Invoice
# Use the environment variables to create the engine string

username = env.get('MYSQL_USER')
password = env.get('MYSQL_PW')
address = env.get('MYSQL_SERVER')
port = env.get('MYSQL_PORT')
name = env.get('MYSQL_DB')

engine_string = "mysql+mysqldb://%s:%s@%s:%s/%s?charset=utf8mb4" % (
    username, password, address, port, name)
engine = create_engine(
    engine_string,
    echo=False,
    convert_unicode=True,
    # close connections after 1h - as connections timeout at the database
    pool_recycle=3600)

# Create a sessionmaker
Session = sessionmaker(bind=engine)

# Read the config
alembic_cfg = Config('alembic.ini')

# Load and return a session to the billy database
Beispiel #27
0
def macroexpand(ast, env):
    while is_macro_call(ast, env):
        ast = env.get(ast.content[0])(*ast.content[1:])

    return ast
Beispiel #28
0
def _get_cloud_blob(filename: Text) -> storage.Blob:
    client = storage.Client()
    bucket = client.get_bucket(env.get('CLOUD_STORAGE_BUCKET'))
    return storage.Blob(filename, bucket)
Beispiel #29
0
def all_bundles_desc():
    return glob.glob('%s/*/bundle.y*ml' % env.get('dir_bundles'))
Beispiel #30
0
def show_metrics():
    metrics = base.Metric.get_latest().values()
    return flask.render_template('show_metrics.html',
                                 github_repo=env.get('GITHUB_REPO'),
                                 metrics=metrics)
Beispiel #31
0
#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import os
import logging
import json
from utils import *
import env

cur_path = os.path.join(env.get("game_workspace_path"), "onmyoji")

scene_conf = None
with open(os.path.join(cur_path, "scenes.json"), encoding="utf-8") as f:
    scene_conf = json.load(f)


def current_scene(handle=None):
    """
    获取当前场景,场景配置位于scenes.json。
    """
    global cur_path
    global scene_conf

    handle = check_handle(handle)

    for scene in scene_conf:
        if exists(os.path.join(cur_path,
                               "img/" + scene_conf[scene]["mark"] + ".png"),
                  handle=handle):
            if "chinese" in scene_conf[scene]:
                logging.info("当前场景:" + scene_conf[scene]["chinese"])
Beispiel #32
0
GraphQL = Text
JsonDict = Dict[Text, Any]

MAX_PAGE_SIZE = 100
PAGING_INFO = """
pageInfo {
  hasPreviousPage
  hasNextPage
  endCursor
  startCursor
}
totalCount
"""
GRAPHQL_API_URI = 'https://api.github.com/graphql'
GITHUB_REPO = env.get('GITHUB_REPO')
GITHUB_REPO_OWNER, GITHUB_REPO_NAME = GITHUB_REPO.split('/')
GITHUB_API_ACCESS_TOKEN = env.get('GITHUB_API_ACCESS_TOKEN')


class Timestamp(object):
  """The GitHub API's timestamp format."""

  def __init__(self, timestamp: Union[datetime.datetime, Text]):
    if isinstance(timestamp, datetime.datetime):
      self.datetime = timestamp
    else:
      self.datetime = datetime.datetime.strptime(timestamp,
                                                 '%Y-%m-%dT%H:%M:%SZ')

  def __str__(self):
Beispiel #33
0
"""Client for querying CircleCI API.

For an overview of the API https://circleci.com/docs/api/v2/
"""
from typing import Dict
from http import HTTPStatus
import logging
import requests
from database import models

import env

CIRCLECI_API = 'https://circleci.com/api/v2'
VCS_STAB = 'github'
PROJECT = env.get('GITHUB_REPO')
INSIGHTS_API = f'{CIRCLECI_API}/insights/{VCS_STAB}/{PROJECT}'


def _dict_to_params(params: Dict):
    param_string = '&'.join(f'{key}={value}'
                            for (key, value) in params.items())
    return param_string and '?' + param_string


class CircleCiError(Exception):
    def __init__(self, status_code: int, message: str):
        msg = f'CircleCI API Error status {status_code}. Message: {message}'
        super(CircleCiError, self).__init__(msg)


class CircleCiAPI(object):
Beispiel #34
0
 def __init__(self, token=None):
     self._token = token or env.get('CIRCLECI_API_ACCESS_TOKEN')