Example #1
0
def main():
    args = parse_args()

    logging.basicConfig(level=logging.DEBUG if args.debug else logging.INFO)

    db_manager = init_db(args.db_name, args.db_user, args.db_pass,
                         args.db_host, args.db_port)

    if args.tickers_file:
        parse(args.tickers_file, args.threads_count)

    handlers = (
        ('GET', '', tickers_handler),
        ('GET', '/api', api_tickers_handler),
        ('GET', '/{ticker:\w+}', ticker_handler),
        ('GET', '/api/{ticker:\w+}', api_ticker_handler),
        ('GET', '/{ticker}/insider', insiders_handler),
        ('GET', '/api/{ticker}/insider', api_insiders_handler),
        ('GET', '/{ticker}/insider/{name}', insider_handler),
        ('GET', '/api/{ticker}/insider/{name}', api_insider_handler),
        ('GET', '/{ticker}/analytics', analytics_handler),
        ('GET', '/api/{ticker}/analytics', api_analytics_handler),
        ('GET', '/{ticker}/delta', delta_handler),
        ('GET', '/api/{ticker}/delta', api_delta_handler),
    )

    app = Application(middlewares=[error_middleware])
    app['db_manager'] = db_manager

    for handler in handlers:
        app.router.add_route(*handler)

    aiohttp_jinja2.setup(app, loader=jinja2.PackageLoader('app', 'templates'))

    run_app(app, host=args.host, port=args.port)
Example #2
0
 def run_parser(self):
     printer.Output = printer.Printer(self.source_file_path)
     parser.parse(self.source_code, debug=False)
     printer.Output.print()
     printer.Output.file = None
     print("\n\nRunning test with source code: \n")
     printer.Output._print(sys.stdout)
     AST.clear()
     MAIN_INSTRUCTION_TAPE.clear()
Example #3
0
        def test_profile_parse(self):
            profile = cProfile.Profile()
            parser = app.parser.Parser()
            path = u'app/actions.py'
            data = io.open(path).read()
            grammar = self.prefs.getGrammar(path)

            profile.enable()
            parser.parse(data, grammar, 0, sys.maxsize)
            profile.disable()

            output = io.StringIO.StringIO()
            stats = pstats.Stats(
                profile, stream=output).sort_stats(u'cumulative')
            stats.print_stats()
            print(output.getvalue())
Example #4
0
def test_parse():
    """
    Function must retrieve the questions inside sentences asked to the bot.
    """
    assert parser.parse(OCR_QUESTION) == [
        "est-ce que tu connais l'adresse d'openclassrooms ?"
    ]

    assert parser.parse(MENTOR_1) == [
        "comment s'est passé ta soirée avec grandma hier soir?",
        "où se trouve le musée d'art et d'histoire de fribourg, s'il te plaît?",
    ]

    assert parser.parse(MENTOR_2) == [
        "bonsoir grandpy, j'espère que tu as passé une belle semaine. est-ce "
        "que tu pourrais m'indiquer l'adresse de la tour eiffel? merci "
        "d'avance et salutations à mamie."
    ]
Example #5
0
    def handle_response():
        # See: https://www.twilio.com/docs/sms/tutorials/how-to-receive-and-reply-python
        # Webhook for the user texting us / twilio hits this
        print("Request values", request.values)
        body = request.values.get('Body', None)
        phone_number = request.values.get('From')
        phone_number = normalize_number(phone_number)

        resp = MessagingResponse()

        if body.lower() == 'confirm':
            print("Looking for user with phone number {}".format(phone_number))
            user = DB.session.query(User).filter(
                User.phone_number == phone_number,
                User.confirmed == False).one_or_none()
            print("query result: {}".format(user))

            if user:
                user.confirmed = True
                DB.session.add(user)
                DB.session.commit()
                resp.message("Thank you! Your path to happiness begins NOW!")
                return str(resp)
            else:
                return ''

        else:
            # check if user confirmed
            # if so do the regular response flow: store in db, thank the user
            user = DB.session.query(User).filter(
                User.phone_number == phone_number,
                User.confirmed == True).one_or_none()
            print("found user: {}".format(user))
            if user:
                message = body.lower()
                try:
                    score = parse(message)
                    print("Scoring message {} as happiness level {}".format(
                        message, score))
                except Exception as e:
                    print("Error in parsing message: {}".format(e))
                    score = None

                response = UserResponse(user_id=user.id,
                                        raw=body.lower(),
                                        happiness=score)
                DB.session.add(response)
                DB.session.commit()

                response_text = respond_to(int(score))
                resp.message(
                    "{}\nThanks for sharing. Your response has been recorded.".
                    format(response_text))
            else:
                resp.message("Please sign up and confirm first.")
            return str(resp)
Example #6
0
def __save_report(key, doc):
    """Saves report using data from specified document."""
    date = __get_date_by_name(doc["event"])
    rpt_id = "report/" + doc["location"] + "-" + str.join("-", map(lambda x: str(x), date))

    rpt = db.get(rpt_id, {})  # get report or create new one
    rpt["_id"] = key
    rpt["location"] = doc["location"]
    rpt["event"] = doc["event"]
    rpt["date"] = date
    rpt["data"] = parse(doc["report"])
    db[rpt_id] = rpt
Example #7
0
File: mts.py Project: qwercik/mts
def main():
    while True:
        try:
            print('>>> ', end='')
            rpnFormula = input().strip()

            tokensStream = lexer.tokenizeRpnFormula(rpnFormula)
            syntaxTree = parser.parse(tokensStream)
            infixFormula = render.renderInfix(syntaxTree)

            print('Satisfiable' if mts.
                  checkFormulaSatisfiable(syntaxTree) else 'Unsatisfiable')
            print()

        except lexer.UnrecognizableSymbolError as symbol:
            error(f'Unrecognizable symbol {symbol}')
        except parser.NestedPredicateError as e:
            nestedPredicateName, currentTokenType, currentTokenName = e.args[0]
            error(
                f'Predicate {nestedPredicateName} nested in {currentTokenType} {currentTokenName}'
            )
        except parser.ArgumentOfOperatorShouldBeALogicalFormulaError as operator:
            error(f'Argument of {operator} operator must be a logical formula')
        except parser.FirstArgumentOfQuantifierShouldBeAVariableError as quantifierType:
            error(f'First argument of {quantifierType} must be a variable')
        except parser.SecondArgumentOfQuantifierShouldBeALogicalFormulaError as quantifierType:
            error(
                f'Second argument of {quantifierType} must be a logical formula'
            )
        except parser.IncorrectArgumentsNumberError as tokenType:
            error(f'Incorrect arguments number in {tokenType}')
        except parser.EmptyFormula:
            error(f'Empty formula')
        except EOFError:
            print()
            break
        except:
            panic(
                255,
                f'Unknown error ocurred. Report the developer: {DEVELOPER_URL}'
            )
Example #8
0
def validate(html):
    result = []

    table = parse(html)

    if table:
        for ridx, row in enumerate(table):
            columns_cnt = len(row)

            if columns_cnt not in [5, 36]:
                __error(result, "Row should contain 5 or 36 column", row=ridx, column=0)

            if not row[0]:
                __error(result, "Name is not provided", row=ridx, column=0)
            for i in range(1, columns_cnt):
                if not isinstance(row[i], int):
                    __error(result, "Not a numeric value {}".format(row[i]), row=ridx, column=i)
    else:
        __error(result, "Report should contain one table")

    return {
        "isValid": len(result) == 0,
        "errors": result
    }
 def test_fail_without_url(self):
     with self.assertRaises(SystemExit):
         parse("--output /".split())
 def test_password_is_read(self):
     args = parse("-u www.example.com -o /tmp/1.txt -l foo -p bar".split())
     self.assertEqual(args['password'], "bar")
 def test_username_is_read(self):
     args = parse("-u www.example.com -o /tmp/1.txt -l foo".split())
     self.assertEqual(args['login'], "foo")
Example #12
0
 def check_url(self):
     return parse(self.full_url)
Example #13
0
def parse(inp: str) -> Sheet:
    return parser.parse(inp)
import sys
from app.parser import parse
from app.downloader import Downloader
from app.extractor import extract

args = parse(sys.argv[1:])

dl = Downloader(output=args['output'],
                login=args['login'],
                password=args['password'])

result = dl.get(args['url'])

if result:
    items = extract(result)
    for url in items:
        dl.save(url)
 def test_fail_without_output(self):
     with self.assertRaises(SystemExit):
         parse("--url www.example.com".split())
Example #16
0
def index():
    parser.parse(site="tribun", url="https://www.tribunnews.com/rss")
    parser.parse(site="antara", url="https://www.antaranews.com/indeks")
    news = News.query.order_by(News.article_ts.desc()).all()
    return render_template('index.html', news=news)
Example #17
0
        def test_parse_performance(self):
            a = timeit('''parser = app.parser.Parser()
parser.parse(data, grammar, 0, sys.maxsize)''',
                       setup=performance1,
                       number=10)
Example #18
0
def route():
    return '<pre>' + parse(request.args.get('lines', '')) + '</pre>'
Example #19
0
def search():
    query_terms = parse(request.args.get('search'))
    top_k_reviews = retrieve_top_k_reviews(query_terms)
    return render_template('results.html',
                           reviews=top_k_reviews,
                           query_terms=query_terms)