Python logging.error() Examples

The following are code examples for showing how to use logging.error(). They are extracted from open source Python projects. You can vote up the examples you like or vote down the ones you don't like. You can also save this page to your account.

Example 1
Project: Proxy46   Author: Macronut   File: proxy.py    (GNU General Public License v3.0) View Source Project 8 votes vote down vote up
def handle(self):
        client_ip = self.client_address[0]
        
        addr = ''
        server = ''
        try:
            sock = self.connection
            sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
            
            odestdata = sock.getsockopt(socket.SOL_IP, 80, 16)
            port, addr_ip = struct.unpack("!xxH4sxxxxxxxx", odestdata)
            addr = socket.inet_ntoa(addr_ip)
            
            server = reverse(addr)
            
            print_log('%s connecting %s:%d %d %s' % (client_ip, addr, port, server[0], str(server[1])))
            
            Proxy[server[0]].proxy(sock, server[1], (addr, port))
        except socket.error, e:
            logging.warn(addr + ':' + str(server) + ':' + str(e))
            sock.close() 
Example 2
Project: PowerSpikeGG   Author: PowerSpikeGG   File: cache.py    (license) View Source Project 7 votes vote down vote up
def _connect(self, address, lazy_connection=False):
        """Set up a connection to the MongoDB server.

        Parameters:
            address: MongoDB server address.
            lazy_connection: avoid testing if the connection is working while
                initializing it.
        """
        client = pymongo.MongoClient(address,
            serverSelectionTimeoutMS=FLAGS.mongodb_connection_timeout)
        if lazy_connection:
            return client

        # Send a query to the server to see if the connection is working.
        try:
            client.server_info()
        except pymongo.errors.ServerSelectionTimeoutError as e:
            logging.error("Unable to connect to %s.", address)
            client = None

        return client 
Example 3
Project: charm-plumgrid-gateway   Author: openstack   File: test_utils.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def load_config():
    '''
    Walk backwords from __file__ looking for config.yaml, load and return the
    'options' section'
    '''
    config = None
    f = __file__
    while config is None:
        d = os.path.dirname(f)
        if os.path.isfile(os.path.join(d, 'config.yaml')):
            config = os.path.join(d, 'config.yaml')
            break
        f = d

    if not config:
        logging.error('Could not find config.yaml in any parent directory '
                      'of %s. ' % file)
        raise Exception

    return yaml.safe_load(open(config).read())['options'] 
Example 4
Project: charm-plumgrid-gateway   Author: openstack   File: charm_helpers_sync.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def parse_config(conf_file):
    if not os.path.isfile(conf_file):
        logging.error('Invalid config file: %s.' % conf_file)
        return False
    return yaml.load(open(conf_file).read()) 
Example 5
Project: core-framework   Author: RedhawkSDR   File: resource.py    (license) View Source Project 6 votes vote down vote up
def createOrb():
    '''
    Calls the omniorbpy CORBA.ORB_init() method in a thread.  Calling the method in a thread
    allows us to set a timeout for the ORB_init() call, as it will never return if the system
    has run out of threads.

    Return None on failure.
    '''
    # create a queue with one slot to hold the orb
    queue = Queue(maxsize=1) 

    def orbCreator():
        """
        A method to pass to callOmniorbpyWithTimeout.

        """

        orb = CORBA.ORB_init()
        queue.put(orb)

    orb = callOmniorbpyWithTimeout(orbCreator, queue)
    if orb == None:
        logging.error("omniorbpy failed to return from ORB_init.  This is often a result of an insufficient amount of threads available on the system.")
        sys.exit(-1)
    return orb 
Example 6
Project: OldMunkiPackages   Author: aysiu   File: OldMunkiPackages.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def trash_old_stuff(trashlist, trashpath, newpath):
	if isinstance(trashlist, list):
		for old_location in trashlist:
			# Get the subfolders needed to be created
			path_within_destination=os.path.relpath(old_location, trashpath)
			# Create what will be the destination path
			new_location=os.path.join(newpath, path_within_destination)
			# Make sure all the relevant subfolders exist in the destination
			if not os.path.exists(os.path.dirname(new_location)):
				os.makedirs(os.path.dirname(new_location))
			# Even though we've been double-checking paths all along, let's just make one last check
			if os.path.exists(old_location) and os.path.isdir(newpath):
				os.rename(old_location, new_location)
				logging.info("Moving %s to %s\n" % (old_location, new_location))
			else:
				logging.error("One of %s or %s does not exist\n" % (old_location, new_location))
	else:
		logging.error("%s is not a valid list\n" % trashlist)

# Function that checks paths are writable 
Example 7
Project: PowerSpikeGG   Author: PowerSpikeGG   File: cache.py    (license) View Source Project 6 votes vote down vote up
def _silent_connection_failure(func):
    """Decorator used to avoid raising an exception when the database timeouts

    Parameters:
        func: Function to decorate.
    """
    @wraps(func)
    def wrapper(*args, **kwargs):
        """Wraps the function to catch timeout exception.
        """
        if not FLAGS.disable_mongodb_exception:
            return func(*args, **kwargs)

        try:
            result = func(*args, **kwargs)
        except pymongo.errors.ServerSelectionTimeoutError as e:
            logging.error("Unable to reach the caching server: %s", e)
            return None
        return result

    return wrapper 
Example 8
Project: PyPlanet   Author: PyPlanet   File: manager.py    (license) View Source Project 6 votes vote down vote up
def _on_change(self, *args, **kwargs):
		# Making sure we set the settings + variables.
		if len(self._next_settings_update.keys()) > 0:
			logger.debug('Setting mode settings right now!')
			try:
				await self.update_settings(self._next_settings_update)
			except Exception as e:
				logging.error('Can\'t set the script mode settings! Error: {}'.format(str(e)))
			self._next_settings_update = dict()
		if len(self._next_variables_update.keys()) > 0:
			logger.debug('Setting mode variables right now!')
			try:
				await self.update_variables(self._next_variables_update)
			except Exception as e:
				logging.error('Can\'t set the script mode variables! Error: {}'.format(str(e)))
			self._next_variables_update = dict()

		# Make sure we send to the signal when mode is been changed.
		if self._current_script != self._next_script:
			await script_mode_changed.send_robust({
				'unloaded_script': self._current_script, 'loaded_script': self._next_script
			})

		await self.get_current_script(refresh=True) 
Example 9
Project: coursera-scheduled-exports   Author: LU-C4i   File: scheduler.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def get_course_id(self):
        # Link below retrieves JSON file with course information based on course name
        base_url = "https://www.coursera.org/api/onDemandCourses.v1?q=slug&slug="
        # Paste
        url_tmp = base_url + self.course_slug
        # GET
        resp = requests.get(url_tmp)
        # If not ok
        if not resp.ok:
            # Log event
            if self.log:
                logging.error("Cannot fetch course id ({})".format(self.course_slug))
            raise ApiResolve("Server returned {}. Check whether course name is correct.".format(str(resp)))
        json_data = resp.json()
        # Get courseID
        course_id = json_data["elements"][0]["id"]
        # Return
        self.course_id = course_id 
Example 10
Project: django_pipedrive   Author: MasAval   File: models.py    (BSD 3-Clause "New" or "Revised" License) View Source Project 6 votes vote down vote up
def sync_one(cls, external_id, last_error=None):
        post_data = cls.pipedrive_api_client.get_instance(external_id)

        # Error code from the API
        if not post_data[u'success']:
            logging.error(post_data)
            raise UnableToSyncException(cls, external_id)
        try:
            return cls.update_or_create_entity_from_api_post(post_data[u'data'])
        except IntegrityError as e:
            logging.warning(e)
            if e.message == last_error:
                raise SameErrorTwiceSyncException(cls, external_id, e.message)
            match = re.search('.*Key \((.*)\)=\((.*)\).*', e.message)
            if match:
                field_name = match.group(1)
                field_id = match.group(2)
                model = cls.field_model_map(field_name)
                model.sync_one(field_id)
                return cls.sync_one(external_id, e.message)
            else:
                raise Exception("Could not handle error message") 
Example 11
Project: apiTest   Author: wuranxu   File: runner.py    (license) View Source Project 6 votes vote down vote up
def transfer_data(self, case):
        try:
            params = self.addToken(case.get('params'))
            enable = case.get('enable')
            code = int(case.get('code'))
            headers = case.get('headers')
            expected = self.get_response(case.get('expected'))
            if params != '' and isinstance(params, str):
                params = self.form_to_dict(params) if 'form' in headers else dumps(self.data_to_json(params))
            else:
                params = dumps(params)
            headers = self.data_to_json(headers)
            case.update(dict(headers=headers, params=params,
                             enable=enable, code=code,
                             expected=expected))
        except Exception as err:
            logging.error("{} error: {}".format(Operator.get_current_func(), str(err)))
        return case 
Example 12
Project: aws-greengrass-mini-fulfillment   Author: awslabs   File: utils.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def mqtt_connect(mqtt_client, core_info):
    connected = False

    # try connecting to all connectivity info objects in the list
    for connectivity_info in core_info.connectivityInfoList:
        core_host = connectivity_info.host
        core_port = connectivity_info.port
        logging.info("Connecting to Core at {0}:{1}".format(
            core_host, core_port))
        mqtt_client.configureEndpoint(core_host, core_port)
        try:
            mqtt_client.connect()
            connected = True
            break
        except socket.error as se:
            print("SE:{0}".format(se))
        except operationTimeoutException as te:
            print("operationTimeoutException:{0}".format(te.message))
            traceback.print_tb(te, limit=25)
        except Exception as e:
            print("Exception caught:{0}".format(e.message))

    return connected 
Example 13
Project: aws-greengrass-mini-fulfillment   Author: awslabs   File: lambda_setup.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def _update_lambda_alias(func_alias, func_name, func_version):
    lamb = boto3.client('lambda')
    try:
        resp = lamb.update_alias(
            Name=func_alias,
            FunctionName=func_name,
            FunctionVersion=func_version
        )
        return resp['AliasArn']
    except ClientError as ce:
        if ce.response['Error']['Code'] == 'ValidationException':
            logging.warning(
                "Validation Error {0} updating alias '{1}'.".format(
                    ce, func_name))
        else:
            logging.error("Unexpected Error: {0}".format(ce)) 
Example 14
Project: aws-greengrass-mini-fulfillment   Author: awslabs   File: utils.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def mqtt_connect(mqtt_client, core_info):
    connected = False

    # try connecting to all connectivity info objects in the list
    for connectivity_info in core_info.connectivityInfoList:
        core_host = connectivity_info.host
        core_port = connectivity_info.port
        logging.info("Connecting to Core at {0}:{1}".format(
            core_host, core_port))
        mqtt_client.configureEndpoint(core_host, core_port)
        try:
            mqtt_client.connect()
            connected = True
            break
        except socket.error as se:
            print("SE:{0}".format(se))
        except operationTimeoutException as te:
            print("operationTimeoutException:{0}".format(te.message))
            traceback.print_tb(te, limit=25)
        except Exception as e:
            print("Exception caught:{0}".format(e.message))

    return connected 
Example 15
Project: conv2mp4-py   Author: Kameecoding   File: conv2mp4-server.py    (GNU General Public License v3.0) View Source Project 6 votes vote down vote up
def drive_upload(source):
	if MEDIA_DIR in source:
		target = os.path.dirname(source.replace(MEDIA_DIR, 'media'))
	else:
		target = os.path.dirname(source.replace(CONVERTED_DIR, 'media'))
	target_copy = target
	to_add = []
	while (not FILES.get(target_copy)):
		to_add.insert(0, os.path.basename(target_copy))
		target_copy = os.path.dirname(target_copy)

	if (to_add):
		for folder in to_add:
			create_folder(folder, FILES[target_copy], target_copy)
			target_copy = os.path.join(target_copy,folder)

	Logger.info("Uploading file: {name} to {target}, with Title: {title}".format(name=source, target=target, title=os.path.basename(source)))
	f = DRIVE.CreateFile({"parents": [{"id": FILES[target]}], "title" : os.path.basename(source)})
	f.SetContentFile(source)
	f.Upload()

	if not f['id']:
		logging.error("Failed to upload file {source}".format(source=source))
		raise Exception("Failed to upload file {source}".format(source=source)) 
Example 16
Project: dashboard-duty   Author: jrasell   File: dashboard_duty.py    (MIT License) View Source Project 6 votes vote down vote up
def _get_url(self, payload, endpoint):
        """
        Performs a GET request to the PD API endpoint with the payload.
        If a 200 response is received the response data is returned.

        :param payload: The GET payload to send to the PD API
        :param endpoint: The PagerDuty endpoint, appended to api.pagerduty.com
        :return: The response data from the PD endpoint
        """
        url = 'https://api.pagerduty.com/%s' % endpoint
        try:
            r_data = self._s.get(url, params=payload)
            if r_data.status_code != 200:
                logging.error('PagerDuty API returned a status code of %s'
                              % r_data.status_code)
            return r_data.json()
        except Exception, e:
            logging.error(e) 
Example 17
Project: lichking   Author: melonrun   File: run_part4.py    (license) View Source Project 6 votes vote down vote up
def print_time(source_type, source_name, document_item):
    today = datetime.datetime.now().strftime("%Y-%m-%d") + " 12:00:00"
    yestday = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') + " 00:00:00"
    connect('yuqing', host=MONGODB_URI['host'], port=MONGODB_URI['port'],
            username=MONGODB_URI['username'], password=MONGODB_URI['password'])
    crawl_pages = document_item.objects(Q(insert_time__gte=yestday) & Q(insert_time__lte=today))
    new_pages = document_item.objects(Q(time__gte=yestday) & Q(time__lte=today)).count()
    ymonitor = YuqingSpiderMonitor()
    ymonitor.key = source_name
    logging.error(source_name)
    ymonitor.crawl_pages = str(len(crawl_pages))
    ymonitor.new_pages = str(new_pages)
    ymonitor.source_type = source_type
    ymonitor.date_stat = datetime.datetime.now().strftime("%Y-%m-%d") + " 00:00:00"
    if len(crawl_pages) > 0:
        date1 = crawl_pages.order_by('insert_time')[0].insert_time
        date2 = crawl_pages.order_by('-insert_time')[0].insert_time
        ymonitor.duration = str(TimeUtil.get_date_diff_seconds(date1, date2))
    else:
        ymonitor.duration = str(0)
    ymonitor._id = Md5Util.generate_md5(source_name+today)
    ymonitor.save() 
Example 18
Project: manubot   Author: greenelab   File: metadata.py    (license) View Source Project 6 votes vote down vote up
def get_doi_citeproc(doi):
    """
    Use Content Negotioation (http://citation.crosscite.org/docs.html) to
    retrieve the citeproc JSON citation for a DOI.
    """
    url = 'https://doi.org/' + urllib.request.quote(doi)
    header = {
        'Accept': 'application/vnd.citationstyles.csl+json',
    }
    response = requests.get(url, headers=header)
    try:
        citeproc = response.json()
    except Exception as error:
        logging.error(f'Error fetching metadata for doi:{doi}.\n'
                      f'Invalid response from {response.url}:\n{response.text}')
        raise error
    citeproc['URL'] = f'https://doi.org/{doi}'
    short_doi_url = get_short_doi_url(doi)
    if short_doi_url:
        citeproc['short_url'] = short_doi_url
    return citeproc 
Example 19
Project: manubot   Author: greenelab   File: metadata.py    (license) View Source Project 6 votes vote down vote up
def get_pubmed_citeproc(pubmed_id):
    """
    Get the citeproc JSON for a PubMed or PubMed Central identifier

    https://github.com/ncbi/citation-exporter
    https://www.ncbi.nlm.nih.gov/pmc/tools/ctxp/
    https://www.ncbi.nlm.nih.gov/pmc/utils/ctxp/samples
    """
    params = {
        'ids': pubmed_id,
        'report': 'citeproc'
    }
    url = 'https://www.ncbi.nlm.nih.gov/pmc/utils/ctxp'
    response = requests.get(url, params)
    try:
        citeproc = response.json()
    except Exception as error:
        logging.error(f'Error fetching metadata for pmid:{pubmed_id}.\n'
                      f'Invalid response from {response.url}:\n{response.text}')
        raise error
    citeproc['URL'] = f'https://www.ncbi.nlm.nih.gov/pubmed/{pubmed_id}'
    return citeproc 
Example 20
Project: manubot   Author: greenelab   File: manubot.py    (license) View Source Project 6 votes vote down vote up
def main():
    """
    Called as a console_scripts entry point in setup.py. This function defines
    the manubot command line script.
    """
    # Track if message gets logged with severity of error or greater
    # See https://stackoverflow.com/a/45446664/4651668
    error_handler = errorhandler.ErrorHandler()

    # Log to stderr
    logger = logging.getLogger()
    stream_handler = logging.StreamHandler(stream=sys.stderr)
    stream_handler.setFormatter(logging.Formatter('## {levelname}\n{message}', style='{'))
    logger.addHandler(stream_handler)

    args = parse_arguments()
    logger.setLevel(getattr(logging, args.log_level))

    prepare_manuscript(args)

    if error_handler.fired:
        logging.critical('Failure: exiting with code 1 due to logged errors')
        raise SystemExit(1) 
Example 21
Project: sat6_scripts   Author: RedHatSatellite   File: helpers.py    (GNU General Public License v3.0) View Source Project 6 votes vote down vote up
def get_org_id(org_name):
    """
    Return the Organisation ID for a given Org Name
    """
    # Check if our organization exists, and extract its ID
    org = get_json(SAT_API + "organizations/" + org_name)
    # If the requested organization is not found, exit
    if org.get('error', None):
        msg = "Organization '%s' does not exist." % org_name
        log_msg(msg, 'ERROR')
        sys.exit(1)
    else:
        # Our organization exists, so let's grab the ID and write some debug
        org_id = org['id']
        msg = "Organisation '" + org_name + "' found with ID " + str(org['id'])
        log_msg(msg, 'DEBUG')

    return org_id 
Example 22
Project: sat6_scripts   Author: RedHatSatellite   File: helpers.py    (GNU General Public License v3.0) View Source Project 6 votes vote down vote up
def wait_for_task(task_id, label):
    """
    Wait for the given task ID to complete
    This displays a message without CR/LF waiting for an OK/FAIL status to be shown
    """
    msg = "  Waiting for " + label + " to complete..."
    colx = "{:<70}".format(msg)
    print colx[:70],
    log_msg(msg, 'INFO')
    # Force the status message to be shown to the user
    sys.stdout.flush()
    while True:
        info = get_json(FOREMAN_API + "tasks/" + str(task_id))
        if info['state'] == 'paused' and info['result'] == 'error':
            msg = "Error with " + label + " " + str(task_id)
            log_msg(msg, 'ERROR')
            break
        if info['pending'] != 1:
            break
        sleep(30) 
Example 23
Project: sat6_scripts   Author: RedHatSatellite   File: helpers.py    (GNU General Public License v3.0) View Source Project 6 votes vote down vote up
def log_msg(msg, level):
    """Write message to logfile"""

    # If we are NOT in debug mode, only write non-debug messages to the log
    if level == 'DEBUG':
        if DEBUG:
            logging.debug(msg)
            print BOLD + "DEBUG: " + msg + ENDC
    elif level == 'ERROR':
        logging.error(msg)
        tf.write('ERROR:' + msg + '\n')
        print ERROR + "ERROR: " + msg + ENDC
    elif level == 'WARNING':
        logging.warning(msg)
        tf.write('WARNING:' + msg + '\n')
        print WARNING + "WARNING: " + msg + ENDC
    # Otherwise if we ARE in debug, write everything to the log AND stdout
    else:
        logging.info(msg)
        tf.write(msg + '\n') 
Example 24
Project: facebook-scraper   Author: bacilo   File: __init__.py    (GNU General Public License v3.0) View Source Project 6 votes vote down vote up
def extend_token(self):
        """
        Extends access token and replaces the previously used one
        Prints error message if API Key or API Secret not found

        TODO: Replace also config file once that file is defined
        TODO: Additional checks on the response
        """
        if not self.api_key or not self.api_secret:
            logging.error('No API Key and/or API Secret defined')
            return None

        resp = self.request(
            req='oauth/access_token?grant_type=fb_exchange_token&client_id={}'
            '&client_secret={}&fb_exchange_token={}'.format(
                self.api_key, self.api_secret, self.access_token))
        msg = json.loads(resp.read().decode('utf-8'))
        self.access_token = msg['access_token']
        logging.info('Extended Access Token: \n%s', self.access_token)
        return self.access_token 
Example 25
Project: bitcoin-arbitrage   Author: ucfyao   File: emailer.py    (license) View Source Project 6 votes vote down vote up
def send_email(subject, msg):
    import smtplib

    message = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s\r\n" % (config.EMAIL_HOST_USER, ", ".join(config.EMAIL_RECEIVER), subject, msg)
    try:
        smtpserver = smtplib.SMTP(config.EMAIL_HOST)
        smtpserver.set_debuglevel(0)
        smtpserver.ehlo()
        smtpserver.starttls()
        smtpserver.ehlo
        smtpserver.login(config.EMAIL_HOST_USER, config.EMAIL_HOST_PASSWORD)
        smtpserver.sendmail(config.EMAIL_HOST_USER, config.EMAIL_RECEIVER, message)
        smtpserver.quit()  
        smtpserver.close() 
        logging.info("send mail success")      
    except:
        logging.error("send mail failed")
        traceback.print_exc() 
Example 26
Project: foxbms-setup   Author: foxBMS   File: build.py    (license) View Source Project 6 votes vote down vote up
def start_process(cmd, supress_output=False):
    """Starts the build process by passing the command string to the
    command line

    Args:
        cmd (string): command for the build process.
        supress_output (bool): Indicates if logging is active for the build .
    """
    logging.debug(cmd)
    proc = subprocess.Popen(cmd, stdout=None, stderr=subprocess.PIPE)
    out, err = proc.communicate()
    rtn_code = proc.returncode

    if supress_output is False:
        if out:
            logging.info(out)
        if err:
            logging.error(err)

    if rtn_code == 0 or rtn_code is None:
        logging.info('Success: Process return code %s', str(rtn_code))
    else:
        logging.error('Error: Process return code %s', str(rtn_code))
        sys.exit(1) 
Example 27
Project: foxbms-setup   Author: foxBMS   File: build.py    (license) View Source Project 6 votes vote down vote up
def build(mcu_switch=None, doxygen=False, supress_output=False):
    """Creates the build command string for the specified build and passes the
    build command string to `start_process` which actually starts the build
    process.

    Args:
        mcu_switch (string): specifies what will be built.
        doxygen (bool): specifies if the doxygen documentation to a mcu should
            be built.
        supress_output (bool): indicates if the output should appear on the
            command line.
    """
    cmd = TOOLCHAIN_BASIC_CONFIGURE + ' '
    if mcu_switch is None:
        cmd += 'sphinx'
    elif mcu_switch == '-p' or mcu_switch == '-s' or mcu_switch == '-b':
        cmd += 'build' + ' ' + mcu_switch
        if doxygen is True:
            cmd += ' ' + 'doxygen'
    else:
        logging.error('Invalid build argument: \'%s\'', mcu_switch)
        sys.exit(1)
    start_process(cmd, supress_output) 
Example 28
Project: foxbms-setup   Author: foxBMS   File: bootstrap.py    (license) View Source Project 6 votes vote down vote up
def get_main_git_path():
    """Gets the remote URL of the setup repository.

    Returns:
        string: remote URL of the setup-repository.
    """
    try:
        repository_basepath = subprocess.check_output(
            'git config --get remote.origin.url'.split(' '))
    except subprocess.CalledProcessError as err:
        setup_dir_path = os.path.dirname(os.path.realpath(__file__))
        err_msg = '''
\'{}\' is not a git repository.
Did you download a .zip file from GitHub?

Use
    \'git clone https://github.com/foxBMS/foxBMS-setup\'
to download the foxBMS-setup repository.
        '''.format(setup_dir_path)
        logging.error(err_msg)
        sys.exit(1)
    repository_basepath, repository_name = repository_basepath.rsplit('/', 1)
    return repository_basepath, repository_name 
Example 29
Project: hearthscan-bot   Author: d-schmidt   File: cardDB.py    (MIT License) View Source Project 6 votes vote down vote up
def __load(self):

        # load cards
        with open(self.cardJSON, 'r', encoding='utf8') as file:
            cards = json.load(file)
        with open(self.tokenJSON, 'r', encoding='utf8') as file:
            tokens = json.load(file)

        # json to db full of text
        for name, card in itertools.chain(cards.items(), tokens.items()):
            clean = CardDB.cleanName(name)
            if clean in self.__db:
                log.error("load() duplicate name, already in the db: %s",
                        clean)
                raise Exception('duplicate card')

            self.__db[clean] = formatter.createCardText(card, self.constants)

        self.tokens = [CardDB.cleanName(name) for name in tokens.keys()]

        # finally load temp file
        self.refreshTemp() 
Example 30
Project: Proxy46   Author: Macronut   File: proxy.py    (GNU General Public License v3.0) View Source Project 6 votes vote down vote up
def main():
    loadconfig()
    
    proxy_server = ThreadingTCPServer(('', 1081), ProxyServer)
    thread = threading.Thread(target=proxy_server.serve_forever)
    thread.daemon = True
    thread.start()
    print 'proxy running'

    resolver = DNSProxyResolver(DefaultDNS, 53, 10)
    logger = DNSLogger(log='-log_request, -log_reply', prefix=False)
    dns_server = DNSServer(resolver, port=5353, address='127.0.0.1', logger=logger, handler=DNSHandler)
    dns_server.start_thread()
    print 'dns running'
    
    try:
        while True:
            time.sleep(600)
            sys.stderr.flush()
            sys.stdout.flush()
    except socket.error, e:
        logging.error(e)
    except KeyboardInterrupt:
        #server.shutdown()
        sys.exit(0) 
Example 31
Project: code   Author: ActiveState   File: recipe-578154.py    (MIT License) View Source Project 6 votes vote down vote up
def __call__(self, *args, **kwargs):
            "Execute method on contents with provided arguments."
            name, error, buffer = self.__name, False, []
            for item in self.__array:
                attr = getattr(item, name)
                try:
                    data = attr(*args, **kwargs)
                except Exception as problem:
                    error = problem
                else:
                    if not error:
                        buffer.append(data)
            if error:
                raise error
            return tuple(buffer)

################################################################################

# Provide a way of converting byte sizes into strings. 
Example 32
Project: v2ex-tornado-2   Author: coderyy   File: t.py    (BSD 3-Clause "New" or "Revised" License) View Source Project 6 votes vote down vote up
def post(self):
        if 'Referer' in self.request.headers:
            go = self.request.headers['Referer']
        else:
            go = '/'
        member = CheckAuth(self)
        if member:
            if member.twitter_oauth == 1:
                status = self.request.arguments['status'][0]
                if len(status) > 140:
                    status = status[0:140]
                access_token = OAuthToken.from_string(member.twitter_oauth_string)
                twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, access_token)
                try:
                    twitter.PostUpdate(status.encode('utf-8'))
                    memcache.delete('member::' + str(member.num) + '::twitter::home')
                except:
                    logging.error('Failed to tweet: ' + status)
                self.redirect(go)
            else:
                self.redirect('/twitter/link')
        else:
            self.redirect('/') 
Example 33
Project: v2ex-tornado-2   Author: coderyy   File: mail.py    (BSD 3-Clause "New" or "Revised" License) View Source Project 6 votes vote down vote up
def receive(self, message):
        bodies = message.bodies(content_type = 'text/plain')
        for body in bodies:
            to = extract_address(message.to)
            sender = extract_address(message.sender.lower())
            if to[0:5].lower() == 'tweet':
                #q = db.GqlQuery("SELECT * FROM Member WHERE email = :1", sender)
                q = Member.selectBy(email=sender)
                if q.count() == 1:
                    member = q[0]
                    if member.twitter_oauth == 1:
                        access_token = OAuthToken.from_string(member.twitter_oauth_string)
                        twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, access_token)
                        status = body[1].decode()
                        if len(status) > 140:
                            status = status[0:140]
                        try:
                            logging.info("About to send tweet: " + status)
                            twitter.PostUpdate(status.encode('utf-8'))
                            logging.info("Successfully tweet: " + status)
                        except:
                            logging.error("Failed to tweet for " + member.username)
                else:
                    logging.error("User " + sender + " doesn't have Twitter link.") 
Example 34
Project: mbin   Author: fanglab   File: visualize.py    (license) View Source Project 6 votes vote down vote up
def __check_input( opts, args, parser ):
	"""
	Make sure the input is in the form of either a cmp.h5 file of aligned reads
	or a FOFN of unaligned bas.h5 files. Also make sure that a reference fasta 
	file is specified if 
	"""
	if len(args)!=2:
		print "ERROR -- expecting two arguments: \
				 (1) <SEQ>_methyl_features.txt output from methylprofiles containing methylation features for mapping \
				 (2) <SEQ>_other_features.txt output from methylprofiles containing alternative sequence features for mapping"

	mfeats_fn  = args[0]
	ofeats_fn  = args[1]
	feature_type = None

	if not os.path.exists(mfeats_fn):
		parser.error("Can't find file of sequence features (methylprofiles output) for mapping: %s" % mfeats_fn)

	if not os.path.exists(ofeats_fn):
		parser.error("Can't find file of sequence features (methylprofiles output) for mapping: %s" % ofeats_fn)

	return mfeats_fn, ofeats_fn 
Example 35
Project: shadowsocksR-b   Author: hao35954514   File: db_transfer.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def pull_db_all_user(self):
		import json
		rows = None

		config_path = get_config().MUDB_FILE
		with open(config_path, 'rb+') as f:
			rows = json.loads(f.read().decode('utf8'))
			for row in rows:
				try:
					if 'forbidden_ip' in row:
						row['forbidden_ip'] = common.IPNetwork(row['forbidden_ip'])
				except Exception as e:
					logging.error(e)
				try:
					if 'forbidden_port' in row:
						row['forbidden_port'] = common.PortRange(row['forbidden_port'])
				except Exception as e:
					logging.error(e)

		if not rows:
			logging.warn('no user in json file')
		return rows 
Example 36
Project: shadowsocksR-b   Author: hao35954514   File: eventloop.py    (Apache License 2.0) View Source Project 6 votes vote down vote up
def errno_from_exception(e):
    """Provides the errno from an Exception object.

    There are cases that the errno attribute was not set so we pull
    the errno out of the args but if someone instatiates an Exception
    without any args you will get a tuple error. So this function
    abstracts all that behavior to give you a safe way to get the
    errno.
    """

    if hasattr(e, 'errno'):
        return e.errno
    elif e.args:
        return e.args[0]
    else:
        return None


# from tornado 
Example 37
Project: txt2evernote   Author: Xunius   File: storage.py    (GNU General Public License v3.0) View Source Project 5 votes vote down vote up
def logging(func):
        def wrapper(*args, **kwargs):
            try:
                return func(*args, **kwargs)
            except Exception, e:
                logging.error("%s : %s", func.__name__, str(e))
                return False
        return wrapper 
Example 38
Project: AFSCbot   Author: HadManySons   File: helper_functions.py    (MIT License) View Source Project 5 votes vote down vote up
def print_and_log(text, error=False):
    print(text)
    if error:
        logging.error(time.strftime(LOG_TIME_FORMAT) + text)
    else:
        logging.info(time.strftime(LOG_TIME_FORMAT) + text) 
Example 39
Project: defuse_division   Author: lelandbatey   File: server.py    (GNU General Public License v3.0) View Source Project 5 votes vote down vote up
def localnet_register(host, port):
    '''
    Runs a never-exiting thread which only registers a local network service
    via Zeroconf and then responds to info requests.
    '''
    try:
        from zeroconf import ServiceInfo, Zeroconf
        from time import sleep
    except ImportError as e:
        logging.error(
            'Zeroconf not installed, cannot register this server on the local '
            'network. Other players may still connect, but they must be told '
            'what your hostname and port are (hostname: {}, port: {})'.format(
                host, port))
        return

    advertised_interface = local_address('127.0.0.1')

    info = ServiceInfo(
        "_defusedivision._tcp.local.",
        "{}{}._defusedivision._tcp.local.".format(
            host.replace('.', '-'), advertised_interface.replace('.', '-')),
        address=socket.inet_aton(advertised_interface),
        port=int(port),
        weight=0,
        priority=0,
        properties=b"")

    zc = Zeroconf()
    zc.register_service(info)
    atexit.register(lambda: zc.close())
    while True:
        sleep(0.1) 
Example 40
Project: defuse_division   Author: lelandbatey   File: concurrency.py    (GNU General Public License v3.0) View Source Project 5 votes vote down vote up
def concurrent(f):
    """Concurrent is a decorator for a function which will cause that function
    to immediately return when called, but be left running in 'in the
    background'. It is intended as a functional equivelent to the 'go func()'
    syntax in the Go programming language."""
    def err_logger(*args, **kwargs):
        '''
        err_logger logs uncaught exceptions, which is nice to have in long
        running processes in other threads.
        '''
        try:
            f(*args, **kwargs)
        except Exception as e:
            logging.error(e, exc_info=True)

    def rv(*args, **kwargs):
        t = threading.Thread(target=err_logger, args=(args), kwargs=kwargs)
        t.daemon = True
        t.start()
    return rv 
Example 41
Project: defuse_division   Author: lelandbatey   File: display.py    (GNU General Public License v3.0) View Source Project 5 votes vote down vote up
def build_contents(cell, player):
    """
    Function build_contents returns a Glyph representing the contents of a
    cell, based on the state of that cell and the player who owns that cell.
    """
    x = ((1 + len(cell['contents'])) * cell['x']) + 1
    y = (2 * cell['y']) + 1
    rv = Glyph(x, y, cell['contents'])
    rv.attr = get_colorpair('black-white')

    # Probed cells show the number of cells they touch and an appropriate color
    if cell['probed']:
        mine_contacts = sum(
            [int(v == True) for _, v in cell['neighbors'].items()])
        # print(mine_contacts)
        rv.strng = " {} ".format(mine_contacts)
        rv.attr = contacts_color(mine_contacts)

    # If our cell's selected, mark it red
    if [cell['x'], cell['y']] == player['minefield']['selected']:
        # logging.error("Selected x,y: {} {}".format(cell['x'], cell['y']))
        rv.attr = get_colorpair('white-red')

    if not cell['probed']:
        rv.strng = Contents.empty
    if cell['flagged']:
        rv.strng = Contents.flag

    if not player['living']:
        if cell['contents'] == Contents.mine:
            rv.strng = Contents.mine
    return rv 
Example 42
Project: pyradio-nepal   Author: sandipbgt   File: main.py    (license) View Source Project 5 votes vote down vote up
def run():
    """
    starts the player
    """
    radio = utils.get_player()
    if not radio:
        logging.error("Player not available, exiting now!")
        sys.exit(0)

    stations = utils.get_stations()
    play = True
    current = None
    while play:
        user_input = input("Enter station number ({}) or type station name to search> ".format(current)).strip()

        if user_input == "exit":
            radio.close()
            play = False
            sys.exit(0)
        elif user_input == 'list':
            utils.pretty_print_stations(stations)
            continue
        try:
            num = int(user_input)
            if num > 0:
                try:
                    station = stations[num - 1]
                    radio.play(station['stream_url'])
                    print("Playing: {} @ {} MHz, {}".format(station['name'], station['frequency'], station['location']))
                    current = "{}. {}".format(station['count'], station['name'])
                except IndexError:
                    print("Invalid station number")
        except ValueError:
            utils.pretty_print_stations(stations, user_input)
            user_input = 0 
Example 43
Project: logscan   Author: magedu   File: notification.py    (Apache License 2.0) View Source Project 5 votes vote down vote up
def send_mail(self):
        threading.Thread(target=self._send_mail, name='send-mail-real').start()
        while not self.__event.is_set():
            with self.__cond:
                self.__cond.wait()
                if 'mail' in self.message.type:
                    try:
                        self.__mail_queue.put(self.message, timeout=1)
                    except Full:
                        logging.error('mail queue is full') 
Example 44
Project: logscan   Author: magedu   File: check.py    (Apache License 2.0) View Source Project 5 votes vote down vote up
def match(self, checker):
        queue = Queue()
        self.queues[checker.name] = queue
        threading.Thread(target=self._match, args=(checker, )).start()
        while not self.events[checker.name].is_set():
            with self.__cond:
                self.__cond.wait()
                try:
                    queue.put_nowait(self.line)
                except Full:
                    logging.error("match queue for {0} full".format(checker.name)) 
Example 45
Project: tsproxy   Author: WPO-Foundation   File: tsproxy.py    (Apache License 2.0) View Source Project 5 votes vote down vote up
def HandleResolved(self, message):
    global dns_cache
    if self.state == self.STATE_RESOLVING:
      if 'addresses' in message and len(message['addresses']):
        self.state = self.STATE_CONNECTING
        self.addresses = message['addresses']
        dns_cache[self.hostname] = {'addresses': self.addresses, 'localhost': message['localhost']}
        logging.debug('[{0:d}] Resolved {1}, Connecting'.format(self.client_id, self.hostname))
        self.SendMessage('connect', {'addresses': self.addresses, 'port': self.port, 'localhost': message['localhost']})
      else:
        # Send host unreachable error
        self.state = self.STATE_ERROR
        self.buffer += chr(0x05) + chr(0x04) + self.requested_address
        self.handle_write() 
Example 46
Project: tsproxy   Author: WPO-Foundation   File: tsproxy.py    (Apache License 2.0) View Source Project 5 votes vote down vote up
def signal_handler(signal, frame):
  global server
  global must_exit
  logging.error('Exiting...')
  must_exit = True
  del server


# Wrapper around the asyncore loop that lets us poll the in/out pipes every 1ms 
Example 47
Project: rca-evaluation   Author: sieve-microservices   File: maas_common.py    (license) View Source Project 5 votes vote down vote up
def status_err(message=None, force_print=False, exception=None):
    if exception:
        # a status message cannot exceed 256 characters
        # 'error ' plus up to 250 from the end of the exception
        message = message[-250:]
    status('error', message, force_print=force_print)
    if exception:
        raise exception
    sys.exit(1) 
Example 48
Project: kas   Author: siemens   File: includehandler.py    (license) View Source Project 5 votes vote down vote up
def get_config(self, repos=None):
        """
        Parameters:
          repos -- A dictionary that maps repo name to directory path

        Returns:
          (config, repos)
            config -- A dictionary containing the configuration
            repos -- A list of missing repo names that are needed \
                     to create a complete configuration
        """
        # pylint: disable=no-self-use,unused-argument

        logging.error('get_config is not implemented')
        raise NotImplementedError() 
Example 49
Project: kas   Author: siemens   File: kas.py    (license) View Source Project 5 votes vote down vote up
def main():
    """
        The main function that operates as a wrapper around kas.
    """
    # pylint: disable=broad-except

    try:
        sys.exit(kas(sys.argv[1:]))
    except Exception as err:
        logging.error('%s', err)
        traceback.print_exc()
        sys.exit(1) 
Example 50
Project: kas   Author: siemens   File: libkas.py    (license) View Source Project 5 votes vote down vote up
def log_stderr(self, line):
        """
            This method is called when a line over stderr is received.
        """
        if self.live:
            logging.error(line.strip())
        self.stderr.append(line)