Exemple #1
0
    def parse(self, fp, separator):
        con_names = []
        con_bins = []

        reader = CSVReader()
        for (cid, bid) in reader.readCSV(fp, separator):
            con_names.append(cid)
            con_bins.append(bid)

        return (con_names, con_bins)
Exemple #2
0
 def parse(self, fp, separator):
     con_names = []
     con_bins = []
     
     reader = CSVReader()
     for (cid, bid) in reader.readCSV(fp, separator):
         con_names.append(cid)
         con_bins.append(bid)
     
     return (con_names, con_bins)    
Exemple #3
0
 def test_start_index_too_far(self):
     CSV_FORMAT = {
         'START_ROW_INDEX': 10,
         'QUESTION_COL_INDEX': 0,
         'RESPONSE_COL_INDEX': 1,
         'OPTIONS_COL_INDEXES': [1, 2, 3]
     }
     reader = CSVReader('contests.csv', CSV_FORMAT)
     contests = reader.get_contests()
     self.assertEqual(len(contests), 0)
Exemple #4
0
    def test_out_of_range(self):
        CSV_FORMAT = {
            'START_ROW_INDEX': 1,
            'QUESTION_COL_INDEX': 0,
            'RESPONSE_COL_INDEX': 1,
            'OPTIONS_COL_INDEXES': [1, 8]
        }
        reader = CSVReader('contests.csv', CSV_FORMAT)

        with self.assertRaises(Exception):
            contests = reader.get_contests()
            self.assertEqual(len(contests), 2)
Exemple #5
0
    def test_response_not_in_option(self):
        CSV_FORMAT = {
            'START_ROW_INDEX': 1,
            'QUESTION_COL_INDEX': 0,
            'RESPONSE_COL_INDEX': 1,
            'OPTIONS_COL_INDEXES': [2, 3]
        }
        reader = CSVReader('contests.csv', CSV_FORMAT)

        with self.assertRaises(Exception):
            contests = reader.get_contests()
            self.assertEqual(len(contests), 2)
Exemple #6
0
 def readOtuTable_(self, otu_file):
     """Parse singleM otu table"""
     reader = CSVReader()
     cols = None
     for l in reader.readCSV(otu_file, "\t"):
         if cols is None:
             cols = [l.index('read_names'), l.index('gene')]
             try:
                 cols += [l.index('taxonomy')]
             except ValueError:
                 pass
             continue
         yield tuple(l[i] for i in cols)
Exemple #7
0
    def test_include_headers(self):
        CSV_FORMAT = {
            'START_ROW_INDEX': 0,
            'QUESTION_COL_INDEX': 0,
            'RESPONSE_COL_INDEX': 1,
            'OPTIONS_COL_INDEXES': [1, 2, 3]
        }
        reader = CSVReader('contests.csv', CSV_FORMAT)
        contests = reader.get_contests()
        self.assertEqual(len(contests), 3)

        contest = contests[0]
        self.assertEqual(contest.title, 'Question')
        self.assertEqual(len(contest.options), 3)
        self.assertEqual(contest.options[1].title, 'option_1')
Exemple #8
0
    def test_default(self):
        CSV_FORMAT = {
            'START_ROW_INDEX': 1,
            'QUESTION_COL_INDEX': 0,
            'RESPONSE_COL_INDEX': 1,
            'OPTIONS_COL_INDEXES': [1, 2, 3]
        }
        reader = CSVReader('contests.csv', CSV_FORMAT)
        contests = reader.get_contests()
        self.assertEqual(len(contests), 2)

        contest = contests[0]
        self.assertEqual(contest.title, '1+1=?')
        self.assertEqual(len(contest.options), 3)
        self.assertEqual(contest.options[1].title, '3')
Exemple #9
0
    def test_other_question(self):
        CSV_FORMAT = {
            'START_ROW_INDEX': 1,
            'QUESTION_COL_INDEX': 1,
            'RESPONSE_COL_INDEX': 1,
            'OPTIONS_COL_INDEXES': [1, 3]
        }
        reader = CSVReader('contests.csv', CSV_FORMAT)
        contests = reader.get_contests()
        self.assertEqual(len(contests), 2)

        contest = contests[0]
        self.assertEqual(contest.title, '2')
        self.assertEqual(len(contest.options), 2)
        self.assertEqual(contest.options[1].title, '4')
Exemple #10
0
    def readTaxTable(self, otu_file):
        """Parse graftm taxonomy table"""

        reader = CSVReader()
        for (cname, taxstring) in reader.readCSV(otu_file, "\t"):
            # strip _(num)_(num)_(num) suffix
            parsed = cname
            for _ in range(3):
                parsed = parsed.rstrip('1234567890')
                if not parsed.endswith('_') or len(parsed) < 2:
                    raise ValueError(
                        'Error encountered when parsing contig name: %s' %
                        cname)
                parsed = parsed[:-1]
            yield (parsed, taxstring)
from settings import settings

import time

from models import Runner, Cache
from utils import CSVReader, HttpClient

http_client = HttpClient(
    settings.API_ENDPOINTS,
    settings.STREAMELEMENT_ACCOUNT_ID,
    settings.STREAMELEMENT_JWT_TOKEN,
)
csv_reader = CSVReader(settings.FILENAME, settings.CSV_FORMAT)
cache = Cache(settings.CACHE_SIZE)

runner = Runner(
    csv_reader.get_contests(),
    cache,
    http_client,
    settings.CONTEST_MIN_BET,
    settings.CONTEST_MAX_BET,
    settings.CONTEST_DURATION_SECONDS,
)

nb_seconds_to_bet = round(settings.CONTEST_DURATION_SECONDS * 0.75)
nb_seconds_rest = settings.CONTEST_DURATION_SECONDS - nb_seconds_to_bet

runner.refund_contests()

while True:
    runner.next_contest()