def check_config(config): if len(config.sections()) == 0: logger = get_logger(__name__) logger.error('Config file not found.') return False if 'measurement-server' not in config or 'measurements' not in config: logger = get_logger(__name__) logger.error('Provided configuration is not correct.') return False return True
def run(): config = configparser.ConfigParser() # Previous config data is overwritten with the data from consecutive files, # so the more important the file is, the further down the list it is. config.read(['config.ini.example', 'config.ini']) if not check_config(config): exit(1) server_config = config['measurement-server'] sender = None try: sender = JsonMeasurementSender(server_config['login'], server_config['password'], server_config['protocol'], server_config['address'], server_config['port'], server_config['api_version']) logger = get_logger(__name__) logger.info('Created a JSON measurement sender') except KeyError: logger = get_logger(__name__) logger.error('Error while creating a measurement sender.') exit(1) measurements_config = config['measurements'] try: measurement_idle_time = timedelta( seconds=int(measurements_config['measurement_idle_time'])) measurement_duration = timedelta( seconds=int(measurements_config['measurement_duration'])) except TypeError as e: logger = get_logger(__name__) logger.error('Incorrect measurement timings. %s', str(e)) logger.info('Using default values for measurement timings') # Filling in with default values. measurement_idle_time = timedelta(seconds=60) measurement_duration = timedelta(seconds=10) mr = MeasurementReader(measurement_idle_time, measurement_duration, 2, sender) temperature_source = DhtThermometer('Thermometer 1', 4) mr.add_source(temperature_source) mr.start_to_measure()
def __init__(self, idle_time, duration, number_of_measurements, sender): self.log = get_logger(__name__) self.sender = sender self.idle_time = idle_time self.duration = duration self.number_of_measurements = number_of_measurements self.sources = {}
def __init__(self, login, password, server_protocol, server_address, server_port, api_version): self.login = login self.password = password self.server_protocol = server_protocol self.server_address = server_address self.server_port = server_port self.api_version = api_version self.log = get_logger(__name__) self.authentication_token = None self.base_api_url = '{}://{}:{}/api/{}'.format(self.server_protocol, self.server_address, self.server_port, self.api_version)
#!/usr/bin/env python3 import webutil, time, logging from threading import Thread from source.hackernews.document import Document from source import get_logger DEFAULT_CONFIG = { 'delay': 2, 'interval': 60, 'pages': 3 } logger = get_logger(__name__) def get_stories(pages): stories = [] for page in range(1, pages + 1): stories.extend(get_stories_of_page(page)) return reversed(stories) def get_stories_of_page(page): stories = [] page = webutil.get_page('https://news.ycombinator.com/news?p={}'.format(page)) if page: for story in page.find_all('tr', class_='athing'): story_id = int(story.attrs['id']) story_link = story.find('a', class_='storylink') url = story_link.attrs['href'] title = story_link.text