class Worker:
    def __init__(self, recv_queue, send_queue, status_queue,
                 data_cluster_write, data_cluster_read):
        self.protocol = Protocol(recv_queue, send_queue, status_queue,
                                 data_cluster_write, data_cluster_read)

        self.results_per_date = {}

    def start(self):
        self.protocol.start_connection(self.data_read, self.process_results,
                                       self.load_data, self.reset_data,
                                       self.save_data)

    def data_read(self, date, result):
        if date not in self.results_per_date:
            self.results_per_date[date] = [0, 0]

        if result == "positivi":
            self.results_per_date[date][0] += 1
        else:
            self.results_per_date[date][1] += 1

    def process_results(self):
        self.protocol.send_data(self.results_per_date)

    def load_data(self, date_results):
        self.results_per_date = date_results

    def reset_data(self):
        self.results_per_date = {}

    def save_data(self):
        return self.results_per_date
class TopCitiesController:
    def __init__(self, recv_queue, send_queue, total_workers, status_queue,
                 data_cluster_write, data_cluster_read):
        self.protocol = Protocol(recv_queue, send_queue, total_workers,
                                 status_queue, data_cluster_write,
                                 data_cluster_read)

        self.cities_data = {}

    def start(self):
        self.protocol.start_connection(self.data_read, self.process_results,
                                       self.load_data, self.reset_data,
                                       self.save_data)

    def data_read(self, cities_data):
        self.cities_data.update(cities_data)

    def process_results(self):
        top_cities = dict(Counter(self.cities_data).most_common(3))

        self.protocol.send_data(top_cities)

    def load_data(self, cities_data):
        self.cities_data = cities_data

    def reset_data(self):
        self.cities_data = {}

    def save_data(self):
        return self.cities_data
Exemple #3
0
class DateSorter:
    def __init__(self, recv_queue, send_queue, total_workers, status_queue,
                 data_cluster_write, data_cluster_read):
        self.protocol = Protocol(recv_queue, send_queue, total_workers,
                                 status_queue, data_cluster_write,
                                 data_cluster_read)

        self.date_data = OrderedDict()

    def start(self):
        self.protocol.start_connection(self.data_read, self.process_results,
                                       self.load_data, self.reset_data,
                                       self.save_data)

    def data_read(self, data):
        self.date_data.update(sorted(data.items()))

    def process_results(self):
        self.protocol.send_data(self.date_data)

    def load_data(self, date_data):
        self.date_data = date_data

    def reset_data(self):
        self.date_data = OrderedDict()

    def save_data(self):
        return self.date_data
Exemple #4
0
class Worker:
    def __init__(self, recv_queue, send_queue, status_queue,
                 data_cluster_write, data_cluster_read):
        self.protocol = Protocol(recv_queue, send_queue, status_queue,
                                 data_cluster_write, data_cluster_read)
        self.positives_per_city = {}

    def start(self):
        self.protocol.start_connection(self.data_read, self.process_results,
                                       self.load_data, self.reset_data,
                                       self.save_data)

    def data_read(self, place):
        if place not in self.positives_per_city:
            self.positives_per_city[place] = 0

        self.positives_per_city[place] += 1
        print("Positive of {}".format(place))

    def load_data(self, positives_per_city):
        self.positives_per_city = positives_per_city

    def reset_data(self):
        self.positives_per_city = {}

    def save_data(self):
        return self.positives_per_city

    def process_results(self):
        self.protocol.send_data(self.positives_per_city)
class DateSorter:
    def __init__(self, recv_queue, send_queue, total_workers):
        self.protocol = Protocol(recv_queue, send_queue, total_workers)
        self.date_data = OrderedDict()

    def start(self):
        self.protocol.start_connection(self.data_read)

        self.process_results()

    def data_read(self, data):
        self.date_data.update(sorted(data.items()))

    def process_results(self):
        self.protocol.send_data(self.date_data)
Exemple #6
0
class TopCitiesController:
    def __init__(self, recv_queue, send_queue, total_workers):
        self.protocol = Protocol(recv_queue, send_queue, total_workers)
        self.cities_data = {}
        self.top_cities = {}

    def start(self):
        self.protocol.start_connection(self.data_read)
        self.process_results()

    def data_read(self, data):
        self.cities_data.update(data)
    
    def process_results(self):
        self.top_cities = dict(Counter(self.cities_data).most_common(3))

        self.protocol.send_data(self.top_cities)
Exemple #7
0
class Worker:
    def __init__(self, recv_queue, send_queue, master_queue):
        self.protocol = Protocol(recv_queue, send_queue, master_queue)
        self.positives_per_city = {}

    def start(self):
        self.protocol.start_connection(self.data_read)

        self.process_results()

    def data_read(self, place):
        if place not in self.positives_per_city:
            self.positives_per_city[place] = 0

        self.positives_per_city[place] += 1

    def process_results(self):
        self.protocol.send_data(self.positives_per_city)
class Worker:
    def __init__(self, recv_queue, send_queue, status_queue, data_cluster_write, data_cluster_read):
        self.protocol = Protocol(
            recv_queue,
            send_queue,
            status_queue,
            data_cluster_write,
            data_cluster_read
        )

        self.total_positivi = 0
        self.total_deceduti = 0

    def start(self):
        self.protocol.start_connection(
            self.data_read,
            self.process_results,
            self.load_data,
            self.reset_data,
            self.save_data            
        )

    def data_read(self, positivi, deceduti):
        self.total_positivi += int(positivi)
        self.total_deceduti += int(deceduti)

    def process_results(self):
        result = "Not possible"

        if self.total_positivi != 0:
            result = str(self.total_deceduti / self.total_positivi)

        self.protocol.send_data(result)

    def load_data(self, data):
        self.total_positivi = data[0]
        self.total_deceduti = data[1]

    def reset_data(self):
        self.total_positivi = 0
        self.total_deceduti = 0

    def save_data(self):
        return [self.total_positivi, self.total_deceduti]
Exemple #9
0
class Worker:
    def __init__(self, recv_queue, send_queue):
        self.protocol = Protocol(recv_queue, send_queue)
        self.total_positivi = 0
        self.total_deceduti = 0

    def start(self):
        self.protocol.start_connection(self.data_read)

        self.process_results()

    def data_read(self, positivi, deceduti):
        self.total_positivi += positivi
        self.total_deceduti += deceduti
    
    def process_results(self):
        result = self.total_deceduti / self.total_positivi

        self.protocol.send_data(result)
Exemple #10
0
class Worker:
    def __init__(self, recv_queue, send_queue, master_queue):
        self.protocol = Protocol(recv_queue, send_queue, master_queue)

        self.results_per_date = {}

    def start(self):
        self.protocol.start_connection(self.data_read)

        self.process_results()

    def data_read(self, date, result):
        if date not in self.results_per_date:
            self.results_per_date[date] = [0, 0]

        if result == "positivi":
            self.results_per_date[date][0] += 1
        else:
            self.results_per_date[date][1] += 1

    def process_results(self):
        self.protocol.send_data(self.results_per_date)