def get(self): form = CalculatorForm(self.request.arguments) message = None convert_direction = self.get_argument('convert', None) if convert_direction and form.validate(): try: if convert_direction == 'up': source_number = self.get_argument('number_2') source_alphabet = self.get_argument('alphabet_2') target_alphabet = self.get_argument('alphabet_1') num = str_to_int(source_number, source_alphabet) form.number_1.data = int_to_str(num, target_alphabet) else: source_number = self.get_argument('number_1') source_alphabet = self.get_argument('alphabet_1') target_alphabet = self.get_argument('alphabet_2') num = str_to_int(source_number, source_alphabet) form.number_2.data = int_to_str(num, target_alphabet) except ValueError as error: message = str(error) self.render('calculator.html', form=form, message=message)
def get(self): form = CalculatorForm(self.request.arguments) message = None convert_direction = self.get_argument('convert', None) if convert_direction and form.validate(): try: if convert_direction == 'up': source_number = self.get_argument('number_2') source_alphabet = self.get_argument('alphabet_2') target_alphabet = self.get_argument('alphabet_1') num = str_to_int(source_number, source_alphabet) form.number_1.data = int_to_str(num, target_alphabet) else: source_number = self.get_argument('number_1') source_alphabet = self.get_argument('alphabet_1') target_alphabet = self.get_argument('alphabet_2') num = str_to_int(source_number, source_alphabet) form.number_2.data = int_to_str(num, target_alphabet) except ValueError as error: message = str(error) self.render('calculator.html', form=form, message=message)
def test_str_to_int(self): self.assertEqual(0, str_to_int('a', 'abcde')) self.assertEqual(123123, str_to_int('1E0F3', '0123456789ABCDEF')) self.assertEqual( 123123, str_to_int( 'w1R', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' ))
def get_results(cls, offset_id=0, limit=1000, project_id=None): with new_session() as session: if int(offset_id) == 0: offset_id = session.query(func.max(Result.id)).scalar() or 0 rows = session.query( Result.id, Result.project_id, Result.shortcode, Result.url, Result.encoding, Result.datetime ) \ .filter(Result.id <= int(offset_id)) if project_id is not None and project_id != 'None': rows = rows.filter(Result.project_id == project_id) alphabet = Project.get_plain(project_id).alphabet else: alphabet = None rows = rows.order_by(Result.id.desc()).limit(int(limit)) for row in rows: ans = { 'id': row[0], 'project_id': row[1], 'shortcode': row[2], 'url': row[3], 'encoding': row[4], 'datetime': row[5] } if alphabet: ans['seq_num'] = str_to_int(row[2], alphabet) yield ans
def get_results(cls, offset_id=0, limit=1000, project_id=None): with new_session() as session: if int(offset_id) == 0: offset_id = session.query(func.max(Result.id)).scalar() or 0 rows = session.query( Result.id, Result.project_id, Result.shortcode, Result.url, Result.encoding, Result.datetime ) \ .filter(Result.id <= int(offset_id)) if project_id is not None and project_id != 'None': rows = rows.filter(Result.project_id == project_id) alphabet = Project.get_plain(project_id).alphabet else: alphabet = None rows = rows.order_by(Result.id.desc()).limit(int(limit)) for row in rows: ans = { 'id': row[0], 'project_id': row[1], 'shortcode': row[2], 'url': row[3], 'encoding': row[4], 'datetime': row[5] } if alphabet: ans['seq_num'] = str_to_int(row[2], alphabet) yield ans
def test_str_to_int(self): self.assertEqual(0, str_to_int('a', 'abcde')) self.assertEqual(123123, str_to_int('1E0F3', '0123456789ABCDEF')) self.assertEqual(123123, str_to_int('w1R', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'))