Example #1
0
def main():
    set_seed()
    args = get_arguments()
    if args.task == 'pretext':
        if args.dataset == 'imagenet':
            args.lr = 0.5 * float(args.batch_size / 256)
        elif args.dataset == 'cifar10':
            args.lr = 0.03 * float(args.batch_size / 256)
    else:
        if args.dataset == 'imagenet' and args.freeze:
            args.lr = 30. * float(args.batch_size / 256)
        else:  # args.dataset == 'cifar10':
            args.lr = 1.8 * float(args.batch_size / 256)

    args, initial_epoch = search_same(args)
    if initial_epoch == -1:
        # training was already finished!
        return

    elif initial_epoch == 0:
        # first training or training with snapshot
        args.stamp = create_stamp()

    get_session(args)
    logger = get_logger("MyLogger")
    for k, v in vars(args).items():
        logger.info("{} : {}".format(k, v))

    ##########################
    # Strategy
    ##########################
    if len(args.gpus.split(',')) > 1:
        # strategy = tf.distribute.experimental.CentralStorageStrategy()
        strategy = tf.distribute.MirroredStrategy()
    else:
        strategy = tf.distribute.OneDeviceStrategy(device="/gpu:0")

    num_workers = strategy.num_replicas_in_sync
    assert args.batch_size % num_workers == 0

    logger.info('{} : {}'.format(strategy.__class__.__name__, num_workers))
    logger.info("BATCH SIZE PER REPLICA : {}".format(args.batch_size //
                                                     num_workers))

    ##########################
    # Training
    ##########################
    if args.task == 'pretext':
        train_pretext(args, logger, initial_epoch, strategy, num_workers)
    else:
        train_lincls(args, logger, initial_epoch, strategy, num_workers)
Example #2
0
def parse(url):
    with get_session() as s:
        req = s.get(url)

    try:
        data_json = find_str(req.text, '__NEXT_DATA__" type="application/json">', '</script>')
        data = json.loads(data_json.strip())
        del data['props']['features']
        del data['props']['footer']
        del data['props']['header']
    except json.decoder.JSONDecodeError:
        return None

    prod = data['props']['pageProps']['productProps']['result']
    prices = {i['type']: only_numbers(i['price']) for i in prod['variants'][0]['price']}
    price = prices['NORMAL']
    price_sale = prices.get('AB', prices.get('INTERNET', price))
    price_card = prices.get('CMR', price_sale)

    return dict(
        url=url,
        name=prod['name'],
        price=price,
        price_sale=price_sale,
        price_card=price_card,
        image=media_url + prod['id'],
        raw=data
    )
Example #3
0
def parse(url):
    with get_session() as s:
        req = s.get(url)

    try:
        data_json = find_str(req.text,
                             '__NEXT_DATA__" type="application/json">',
                             '</script>')
        data = json.loads(data_json.strip())
        del data['props']['categories']
        del data['props']['settings']
    except json.decoder.JSONDecodeError:
        return None

    prod = data['props']['pageProps']['data']
    price = prod['prices']['regularPrice']
    price_sale = prod['prices'].get('discountPrice', price) or price
    price_card = prod['prices'].get('cmrPrice', price_sale) or price_sale

    return dict(url=url,
                name=prod['name'],
                price=price,
                price_sale=price_sale,
                price_card=price_card,
                image=prod['images'][0]['url'],
                raw=data)
Example #4
0
def parse(url):
    with get_session() as s:
        req = s.get(url)
    dom = BeautifulSoup(req.text, 'html.parser')
    isch = itemschema(dom)

    if not isch['price']:
        return message(code='product_not_found')

    price_main = int(float(isch['price']))
    price_offer = price_main + 0
    price_card = price_main + 0

    price_orig = dom.select_one('.product-price .original-price')
    if price_orig is not None:
        price_main = only_numbers(price_orig.text)

    price_card_cont = dom.select_one('.product-price .price-promotional')
    if price_card_cont is not None:
        price_card = only_numbers(price_card_cont.text)

    return dict(url=url,
                name=dom.select_one('meta[itemprop="name"]').get('content'),
                price=price_main,
                price_sale=price_offer,
                price_card=price_card,
                image='https:' + isch['image'],
                raw=None)
Example #5
0
def parse(url):
    with get_session() as s:
        req = s.get(url)
        req2 = s.get(url_promos,
                     headers={
                         'x-api-key': 'IuimuMneIKJd3tapno2Ag1c1WcAES97j'
                     }).json()

    try:
        data_json = find_str(req.text, '__renderData = ', ';</script>')
        data = json.loads(json.loads(data_json))
    except json.decoder.JSONDecodeError:
        return message(code='product_not_found')

    del data['menu']
    prod = data['pdp']['product'][0]['items'][0]
    prod_sell = prod['sellers'][0]['commertialOffer']

    price_card = prod_sell['Price']
    prod_id = data['pdp']['product'][0]['productId']
    if prod_id in req2['products']:
        for offer_id in req2['products'][prod_id]:
            if offer_id in req2['promotions']:
                offer = req2['promotions'][offer_id]
                if offer['tcenco'] and offer['value'] < price_card:
                    price_card = offer['value']

    # TODO: dónde está el precio con tarjeta?¿?¿¿
    return dict(url=url,
                name=prod['name'],
                price=prod_sell['ListPrice'],
                price_sale=prod_sell['Price'],
                price_card=price_card,
                image=prod['images'][0]['imageUrl'],
                raw=data)
Example #6
0
def parse(url):
    part_url = list(pat.findall(url)[0])[1]

    search_data = req_data.copy()
    search_data['query']['bool']['should'][0]['term']['url.keyword'] = part_url
    search_data['query']['bool']['should'][1]['term'][
        'children.url.keyword'] = part_url

    with get_session() as s:
        data = s.post(api, json=search_data).json()
    if len(data['hits']['hits']) == 0:
        return message(code='invalid_url')

    prod = data['hits']['hits'][0]['_source']
    price = only_numbers(prod['children'][0]['price'])
    price_sale = prod['price_internet']
    price_card = prod['price_tc'] or price_sale

    return dict(url=url,
                name=prod['name'].strip(),
                price=price,
                price_sale=price_sale,
                price_card=price_card,
                image=prod['fullImage'],
                raw=data)
Example #7
0
def test():
    s = get_session()
    url = 'https://www.tapology.com/fightcenter/fighters/jon-jones-bones'
    response = s.get(url)
    soup = BeautifulSoup(response.text)

    fighter_info_soup = soup.find('div', {'class':'details details_two_columns'})
    fighter_info_soup = fighter_info_soup.find('ul', recursive = False)
    fighter_info_soups = fighter_info_soup.find_all('li', recursive = False)
    fighter_info_dict = dict()
    for i in fighter_info_soups:
        if i.find('strong') and i.find('span'):
            label = i.find('strong').getText()
            value = i.find('span').getText()
            fighter_info_dict[label] = value

    print(fighter_info_dict)

    data = {'Access-Control-Request-Headers':'authorization,content-type',
            'Access-Control-Request-Method':'GET',
            'DNT':'1',
            'Origin':'https://www.tapology.com',
            }
    r2 = s.options('https://api.tapology.com/v1/internal_fighters/8320275')
    r3 = s.get('https://api.tapology.com/v1/internal_fighters/8320275')
    a =1
Example #8
0
def parse(url):
    clean_url = pat.findall(url)[0]
    with get_session() as s:
        data = s.get(clean_url).text

    try:
        lds = json.loads('{"@context"' +
                         find_str(data, '{"@context"', '</script'))
    except JSONDecodeError:
        return message(code='invalid_url')

    price = price_sale = int(lds['offers'][0]['price'])
    try:
        x = find_str(data, 'data:[[null,null,[[[[null,[', ']\n]')
        price = x.split('","')[-1].split('\xa0')[-1][:-1].replace(',', '')
        price = 0 if price == '' else int(price)
    except IndexError:
        pass

    return dict(url=clean_url,
                name=lds['name'],
                price=price,
                price_sale=price_sale,
                price_card=price_sale,
                image=lds['image'],
                raw=lds)
Example #9
0
def parse(url):
    with get_session() as s:
        req = s.get(url)
    dom = BeautifulSoup(req.text, 'html.parser')

    image = dom.find(class_='slides').find('img')
    i_brand = dom.find('span', attrs={'itemprop': 'brand'})
    i_name = dom.find('span', attrs={'itemprop': 'name'})
    name = f'{i_brand.text} {i_name.text}'

    price_cash = only_numbers(dom.find(class_='ficha_precio_efectivo').find('h2').text)
    price_other = only_numbers(dom.find(class_='ficha_precio_normal').find('h2').text)

    price_ref = dom.find(class_='ficha_precio_referencial')
    price_ref = price_other if not price_ref else only_numbers(price_ref.find('h2').text)

    return dict(
        url=url,
        name=name,
        price=price_ref,
        price_sale=price_cash,
        price_card=price_other,
        image='https://www.pcfactory.cl' + image['src'],
        raw=None
    )
Example #10
0
def parse(url):
    with get_session() as s:
        req = s.get(url)

    dom = BeautifulSoup(req.text, 'html.parser')

    normal_price = only_numbers(
        dom.find(attrs={
            'name': 'normalPrice'
        }).get('value').split('.')[0])
    offer_price = only_numbers(
        dom.find(attrs={
            'name': 'offerPrice'
        }).get('value').split('.')[0])
    card_price = only_numbers(
        dom.find(attrs={
            'name': 'abcdinPrice'
        }).get('value').split('.')[0])
    name = dom.find(attrs={'itemprop': 'name'}).get_text().strip()
    image = dom.find(attrs={'itemprop': 'image'}).get('src')

    if offer_price == 0:
        offer_price = normal_price
    if card_price == 0:
        card_price = offer_price

    return dict(url=url,
                name=name,
                price=normal_price,
                price_sale=offer_price,
                price_card=card_price,
                image='https://www.abcdin.cl' + image,
                raw=None)
Example #11
0
def parse(url):
    clean_url = pat.findall(url)[0]
    with get_session() as s:
        data = s.get(clean_url, cookies=conf).text

    try:
        page_data = json.loads(find_str(data, 'data: ', ',\n'))
    except JSONDecodeError:
        return message(code='product_not_found')

    if not page_data or 'priceModule' not in page_data:
        return message(code='product_not_found')

    prices = page_data['priceModule']
    price_offer = price = prices['formatedPrice']
    if 'formatedActivityPrice' in prices:
        price_offer = prices['formatedActivityPrice']

    return dict(url=clean_url,
                name=page_data['pageModule']['title'],
                price=price,
                price_sale=price_offer,
                price_card=price_offer,
                image=page_data['pageModule']['imagePath'],
                raw=page_data)
Example #12
0
def parse(url):
    with get_session() as s:
        content = s.get(url)

    dom = BeautifulSoup(content.content, 'html.parser')
    prod_name = dom.find(id='_name').text.strip()
    image = dom.find(id='_image')['src']
    if image == def_image_url:
        image = 'https://www.spdigital.cl/img/products/no_image.jpg'

    price_cash = only_numbers(
        dom.find(class_='product-view-cash-price').find('span').text)
    price_other = only_numbers(
        dom.find(
            class_='product-view-other-method-price-div').find('span').text)

    prev_price_el = dom.find(class_='product-view-cash-previous-price-value')
    prev_price = price_cash if prev_price_el is None else only_numbers(
        prev_price_el.text)

    return dict(url=url,
                name=prod_name,
                price=prev_price,
                price_sale=price_cash,
                price_card=price_other,
                image=image,
                raw=None)
Example #13
0
def parse(url):
    with get_session() as s:
        req = s.get(url)

    dom = BeautifulSoup(req.text, 'html.parser')

    name = dom.select_one('meta[name="og:description"]')
    if name is None:
        return message(code='invalid_url')

    image = dom.select_one('meta[name="og:image"]')['content']
    price_offer = int(dom.select_one('p[itemprop=price]')['content'])
    price_normal = price_offer

    antes_cont = dom.select_one('.detalle-antes span')
    if antes_cont:
        price_offer = only_numbers(dom.select_one('.detalle-antes span').text)

    return dict(
        url=url,
        name=name['content'].strip(),
        price=price_normal,
        price_sale=price_offer,
        price_card=price_offer,
        image=image,
        raw=None
    )
Example #14
0
def delete_books():
    session = get_session(Base, engine)
    fields = request.get_json()

    # validate input
    if not all_fields_present(fields, ["password", "number_of_books", "isbn_code"]) or not validate_fields(fields):
        abort(422, "Невірні дані")

    # validate password
    library = session.query(Library).filter(Library.password == fields["password"]).first()
    if library is None:
        abort(422, "Неправильний пароль")

    # validate ISBN code
    book = session.query(Book).filter(Book.isbn_code == fields["isbn_code"]).first()
    if book is None:
        abort(422, "Неіснуючий ISBN код")

    record = session.query(LibraryBook).filter(LibraryBook.book_id == book.id).filter(
        LibraryBook.library_id == library.id).first()
    if record is None:
        abort(422, "Книга відсутня у бібліотеці")
    if record.number_of_books < fields["number_of_books"]:
        abort(422, "Неможливо видалити більше книг ніж є у наявності")

    record.number_of_books -= fields["number_of_books"]
    if record.number_of_books == 0:
        session.delete(record)

    session.commit()
    return "Книги успішно видалені", 200
Example #15
0
def add_books():
    session = get_session(Base, engine)
    fields = request.get_json()

    # validate input
    if not all_fields_present(fields, ["password", "number_of_books", "isbn_code"]) or not validate_fields(fields):
        abort(422, "Невірні дані")

    # validate password
    library = session.query(Library).filter(Library.password == fields["password"]).first()
    if library is None:
        abort(422, "Неправильний пароль")

    # find book or create a new one
    book = session.query(Book).filter(Book.isbn_code == fields["isbn_code"]).first()
    if book is None:
        book_name = get_book_name(fields["isbn_code"])
        if book_name is None:
            abort(422, "Неіснуючий ISBN код")

        session.add(Book(isbn_code=fields["isbn_code"], name=book_name))
        book = session.query(Book).filter(Book.isbn_code == fields["isbn_code"]).first()

    # write or update record
    record = session.query(LibraryBook).filter(LibraryBook.book_id == book.id).filter(
        LibraryBook.library_id == library.id).first()
    if record is None:
        session.add(LibraryBook(library_id=library.id, book_id=book.id, number_of_books=fields["number_of_books"]))
    else:
        record.number_of_books += fields["number_of_books"]

    session.commit()
    return "Книги успішно додано", 200
Example #16
0
def parse(url):
    appid = pat.search(url).group(2)
    api = api_url.format(appid)

    with get_session() as s:
        data = s.get(api).json()

    if data.get('success', False):
        return message(code='product_not_found')

    data = data[appid]['data']
    if data['is_free']:
        price = price_sale = 0
    else:
        prices = data['price_overview']
        if not prices['final_formatted']:
            return message(code='out_of_stock')

        price = price_sale = prices['final_formatted'].replace('CLP', '')
        if prices['initial_formatted']:
            price = prices['initial_formatted'].replace('CLP', '')

    return dict(
        url=url,
        name=data['name'],
        price=price,
        price_sale=price_sale,
        price_card=price_sale,
        image=data['header_image'],
        raw=data
    )
Example #17
0
def parse(url):
    with get_session() as s:
        req = s.get(url)

    if 'https://schema.org/OutOfStock' in req.text:
        return message(code='out_of_stock')

    try:
        data_json = find_str(req.text, '"variants":', ',"layoutType"')
        data_prod = json.loads(data_json)[0]
    except (json.decoder.JSONDecodeError, TypeError):
        return message(code='invalid_url')

    prices = {
        i['type']: int(i['price'][0].replace('.', ''))
        for i in data_prod['prices']
    }
    price = prices.get('normalPrice', prices.get('internetPrice', 0))
    price_sale = prices.get('internetPrice', price)
    price_card = prices.get('cmrPrice', price_sale)

    return dict(url=url,
                name=data_prod['name'],
                price=price,
                price_sale=price_sale,
                price_card=price_card,
                image=media_url.format(data_prod['id']),
                raw=data_prod)
Example #18
0
def main():
    args = get_argument()

    sys.path.append(args.baseline_path)
    from common import get_logger
    from common import get_session

    logger = get_logger("MyLogger")

    args, initial_epoch = search_same(args)
    if initial_epoch == -1:
        # training was already finished!
        return

    get_session(args)
    for k, v in vars(args).items():
        logger.info("{} : {}".format(k, v))
Example #19
0
 def get_form(self):
     from forms import CreateArticle
     self.session = get_session(self.request)
     self.session['csrf'] = get_csrf_token(self.session)
     schema = CreateArticle().bind(request=self.request)
     submit = deform.Button(name='submit', css_class='blog-form__button')
     self.form = deform.Form(schema, buttons=(submit, ))
     return self.form
Example #20
0
 def get_form(self):
     from forms import CreateArticle
     self.session = get_session(self.request)
     self.session['csrf'] = get_csrf_token(self.session)
     schema = CreateArticle().bind(request=self.request)
     submit = deform.Button(name='submit',
                            css_class='blog-form__button')
     self.form = deform.Form(schema, buttons=(submit,))
     return self.form
Example #21
0
    def _get_heat_client(self):
        '''returns a heat client instance'''

        if self._heat_client is None:
            sess = op_utils.get_session()
            heat_endpoint = op_utils.get_endpoint(service_type='orchestration')
            self._heat_client = heatclient.Client(
                op_utils.get_heat_api_version(),
                endpoint=heat_endpoint, session=sess)

        return self._heat_client
Example #22
0
def main():
    set_seed()
    args = get_arguments()
    args.lr = args.lr or 1. * args.batch_size / 256
    args, initial_epoch = search_same(args)
    if initial_epoch == -1:
        # training was already finished!
        return

    elif initial_epoch == 0:
        # first training or training with snapshot
        args.stamp = create_stamp()

    get_session(args)
    logger = get_logger("MyLogger")
    for k, v in vars(args).items():
        logger.info("{} : {}".format(k, v))

    ##########################
    # Strategy
    ##########################
    if len(args.gpus.split(',')) > 1:
        strategy = tf.distribute.MirroredStrategy()
    else:
        strategy = tf.distribute.OneDeviceStrategy(device="/gpu:0")

    num_workers = strategy.num_replicas_in_sync
    assert args.batch_size % num_workers == 0

    logger.info('{} : {}'.format(strategy.__class__.__name__, num_workers))
    logger.info("BATCH SIZE PER WORKER : {}".format(args.batch_size //
                                                    num_workers))

    ##########################
    # Training
    ##########################
    if args.task == 'pretext':
        train_pixpro(args, logger, initial_epoch, strategy, num_workers)
    else:
        raise NotImplementedError()
Example #23
0
def main():
    set_seed()
    args = get_arguments()
    args, initial_epoch = search_same(args)
    if initial_epoch == -1:
        # training was already finished!
        return

    elif initial_epoch == 0:
        # first training or training with snapshot
        args.stamp = create_stamp()

    get_session(args)
    logger = get_logger("MyLogger")
    for k, v in vars(args).items():
        logger.info("{} : {}".format(k, v))

    ##########################
    # Strategy
    ##########################
    if len(args.gpus.split(',')) > 1:
        strategy = tf.distribute.experimental.CentralStorageStrategy()
    else:
        strategy = tf.distribute.OneDeviceStrategy(device="/gpu:0")

    num_workers = strategy.num_replicas_in_sync
    assert args.batch_size % num_workers == 0

    logger.info('{} : {}'.format(strategy.__class__.__name__, num_workers))
    logger.info("GLOBAL BATCH SIZE : {}".format(args.batch_size))

    ##########################
    # Training
    ##########################
    if args.task in ['v1', 'v2']:
        train_moco(args, logger, initial_epoch, strategy, num_workers)
    else:
        train_lincls(args, logger, initial_epoch, strategy, num_workers)
Example #24
0
def parse(url):
    url_items = list(pat.findall(url)[0])

    if url_items[2] == 'catalogo':
        with get_session() as s:
            data = s.get(api_base.replace('SKU', url_items[3])).json()
        if not len(data):
            return message(code='product_not_found0')

        data = data[0]
        name = data['displayName']
        price = data['price']['BasePriceReference']
        price_sale = data['price']['BasePriceSales'] or price
        price_card = data['price']['BasePriceTLMC'] or price_sale
        image = img_base.replace('SKU', url_items[3]).replace('IMAGE', data['imagesAvailables'][0])
    else:
        with get_session() as s:
            resp = s.get(url)

        data_html = resp.text.replace('/*', '').replace('*/', '')
        dom = BeautifulSoup(data_html, 'html.parser')
        data = itemschema_ldjson(dom)
        name = data['name'] + ' ' + data['brand']
        price = int(data['offers']['highPrice'])
        price_sale = int(data['offers'].get('lowPrice', price))
        price_card = price_sale
        image = data['image']

    return dict(
        url=url,
        name=name,
        price=price,
        price_sale=price_sale,
        price_card=price_card,
        image=image,
        raw=data
    )
Example #25
0
def parse(url):
    with get_session() as s:
        req = s.get(url)

    ind = 'alternate" href="android-app://cl.baytex.ripley/product/'
    start = req.text.index(ind)
    if start == -1:
        return None

    part = find_str(req.text, ind, '"')
    with get_session() as s:
        data = s.get(api_url + part).json()[0]

    if 'prices' not in data or 'listPrice' not in data['prices']:
        return message(code='out_of_stock')

    return dict(url=url,
                name=data['name'],
                price=int(data['prices']['listPrice']),
                price_sale=int(data['prices']['offerPrice']),
                price_card=int(data['prices'].get(
                    'cardPrice', data['prices']['offerPrice'])),
                image='https:' + data['fullImage'],
                raw=data)
Example #26
0
 def response(self):
     if self.request.method == 'POST':
         submitted = self.request.POST.items()
         try:
             self.get_form().validate(submitted)
         except deform.ValidationFailure as e:
             return Response(
                 env.get_template('create.html').render(form=e.render()))
         self.article['title'] = self.request.POST['title']
         self.article['content'] = self.request.POST['content']
         self.session = get_session(self.request).pop('csrf')
         return Response(status=302, location='/')
     return Response(
         env.get_template('create.html')
         .render(form=self.get_form().render(self.article)))
Example #27
0
def parse(url):
    pid = pat.search(url).groups()
    if not pid:
        return message(code='invalid_url')

    with get_session() as s:
        req = s.get(api_base + pid[0])

    if req.status_code != 200:
        return message(code='invalid_url')

    try:
        data = req.json()
        if 'product' not in data or 'price' not in data[
                'product'] or 'list' not in data['product']['price']:
            raise ValueError()
    except ValueError:
        return message(code='invalid_url')

    product = data['product']
    price = price_sale = price_card = product['price']['list']['value']

    d_price_sales = product['price'].get('sales', None)
    if isinstance(
            d_price_sales,
            dict) and 'value' in d_price_sales and d_price_sales['value']:
        price_sale = d_price_sales['value']

    d_price_card = product['price'].get('hites', None)
    if isinstance(d_price_card,
                  dict) and 'value' in d_price_card and d_price_card['value']:
        price_card = d_price_card['value']
    elif price_sale:
        price_card = price_sale

    image_url = default_img
    if 'images' in product and 'large' in product['images'] and isinstance(product['images']['large'], list) \
       and len(product['images']['large']) > 0:
        image_url = product['images']['large'][0]['absURL']

    return dict(url=url,
                name=product['productName'],
                price=price,
                price_sale=price_sale,
                price_card=price_card,
                image=image_url,
                raw=data)
Example #28
0
def parse(url):
    with get_session() as s:
        req = s.get(url)

    data = json.loads(find_str(req.text, '__APP_INITIAL_STATE__ = ', '</script>'))
    price = only_numbers(data['deal']['priceSummary']['value']['formattedAmount'])
    price_offer = only_numbers(data['deal']['priceSummary']['price']['formattedAmount'])

    return dict(
        url=url,
        name=data['deal']['title'],
        price=price,
        price_sale=price_offer,
        price_card=price_offer,
        image=data['deal']['largeImageUrl'],
        raw=data
    )
Example #29
0
def get_libraries(isbn):
    session = get_session(Base, engine)
    book = session.query(Book).filter(Book.isbn_code == isbn).first()

    if book is None:
        abort(422, "Книга не найдена")

    libraries = session.query(Library).all()
    result_list = []

    # fill libraries
    for library in libraries:
        books_number = get_books_amount(library, book.id)
        if books_number is not None:
            result_list.append({"name": library.name, "address": library.address, "phone_number": library.phone_number,
                                "number_of_books": books_number})

    return jsonify({"title": book.name, "libraries": result_list})
Example #30
0
 def response(self):
     if self.request.method == 'POST':
         submitted = self.request.POST.items()
         try:
             self.get_form().validate(submitted)
         except deform.ValidationFailure as e:
             return Response(
                 env.get_template('create.html').render(form=e.render()))
         article = Articles(**{'title': self.request.POST['title'],
                               'content': self.request.POST['content']
                               })
         dbsession = Session()
         dbsession.add(article)
         dbsession.commit()
         dbsession.close()
         self.session = get_session(self.request).pop('csrf')
         return Response(status=302, location='/blog/')
     return Response(env.get_template('create.html')
                     .render(form=self.get_form().render()))
Example #31
0
 def response(self):
     if self.request.method == 'POST':
         submitted = self.request.POST.items()
         try:
             self.get_form().validate(submitted)
         except deform.ValidationFailure as e:
             return Response(
                 env.get_template('create.html').render(form=e.render()))
         max_id = max([art['id'] for art in ARTICLES])
         ARTICLES.append(
             {'id': max_id+1,
              'title': self.request.POST['title'],
              'content': self.request.POST['content']
              }
         )
         self.session = get_session(self.request).pop('csrf')
         return Response(status=302, location='/')
     return Response(env.get_template('create.html')
                     .render(form=self.get_form().render()))
Example #32
0
def add_books():
    session = get_session(Base, engine)
    fields = request.get_json()

    if not all_fields_present(fields,
                              ["name", "address", "phone_number", "password"
                               ]) or not validate_fields(fields):
        abort(422, "Неправильні дані")

    if session.query(Library).filter(
            Library.password == fields["password"]).first() is not None:
        abort(422, "Неправильні дані")

    session.add(
        Library(name=fields["name"],
                address=fields["address"],
                phone_number=fields["phone_number"],
                password=fields["password"]))
    session.commit()
    return "Біліотеку успішно додано", 200
Example #33
0
# -*- coding: utf-8 -*-
from pprint import pprint
from common import get_session

if '__main__' in __name__:
    """Test if the data is actually persistent across requests"""
    session = get_session(data_dir='./cache', type='file')
    session['Suomi'] = 'Kimi Räikkönen'
    session['Great Britain'] = 'Jenson Button'
    session['Deutchland'] = 'Sebastian Vettel'
    session.save()
    print("Session ID: " + session.id)
    pprint(session)

    session2 = get_session(id=session.id, data_dir='./cache', type='file')

    print
    print("File storage session")
    print("Session ID: " + session2.id)
    pprint(session2)
Example #34
0
 def validate_csrf_token(node, value):
     request = kw.get('request')
     session = get_session(request)
     csrf_token = get_csrf_token(session)
     if value != csrf_token:
         raise colander.Invalid(node, 'Bad CSRF token')
Example #35
0
def deferred_csrf_default(node, kw):
    request = kw.get('request')
    session = get_session(request)
    csrf_token = get_csrf_token(session)
    return csrf_token
Example #36
0
# -*- coding: utf-8 -*-
from pprint import pprint
from common import get_session

if '__main__' in __name__:
    """Test if the data is actually persistent across requests"""
    session = get_session()
    session['Suomi'] = 'Kimi Räikkönen'
    session['Great Britain'] = 'Jenson Button'
    session['Deutchland'] = 'Sebastian Vettel'
    session.save()
    print("Session ID: " + session.id)
    pprint(session)

    session.delete()
    print
    print("Delete session")
    print("Session ID: " + session.id)
    pprint(session)

    assert 'Suomi' not in session
    assert 'Great Britain' not in session
    assert 'Deutchland' not in session
    assert 'Russian' not in session
Example #37
0
# -*- coding: utf-8 -*-
from pprint import pprint
from common import get_session

if '__main__' in __name__:
    """Test if the data is actually persistent across requests"""
    session = get_session(
        type='ext:memcached',
        url='memcached:11211',
    )
    session['Suomi'] = 'Kimi Räikkönen'
    session['Great Britain'] = 'Jenson Button'
    session['Deutchland'] = 'Sebastian Vettel'
    session.save()
    print("Session ID: " + session.id)
    pprint(session)

    session2 = get_session(
        id=session.id,
        type='ext:memcached',
        url='memcached:11211'
    )

    print
    print("Memcached storage session")
    print("Session ID: " + session2.id)
    pprint(session2)
Example #38
0
# -*- coding: utf-8 -*-
from pprint import pprint
from common import get_session

if '__main__' in __name__:
    """Test if the data is actually persistent across requests"""
    session = get_session()
    session['Suomi'] = 'Kimi Räikkönen'
    session['Great Britain'] = 'Jenson Button'
    session['Deutchland'] = 'Sebastian Vettel'
    session.save()
    print("Session ID: " + session.id)
    pprint(session)

    print
    print("Check session")
    session2 = get_session(id=session.id)
    assert 'Suomi' in session2
    assert 'Great Britain' in session2
    assert 'Deutchland' in session2

    assert session2['Suomi'] == 'Kimi Räikkönen'
    assert session2['Great Britain'] == 'Jenson Button'
    assert session2['Deutchland'] == 'Sebastian Vettel'
    print("OK")
    print
    assert session2['Russian'] == 'Alexey Popov'