def from_url(url, connect_args={}):
    url_string = url
    url = sa.engine.url.make_url(str(url_string))
    if url.drivername == 'oracle':
        # not sure why we need this horrible _cxmakedsn hack -
        # I think there's some weirdness
        # with cx_oracle/oracle versions I'm using.
        import cx_Oracle
        if not getattr(cx_Oracle, '_cxmakedsn', None):
            setattr(cx_Oracle, '_cxmakedsn', cx_Oracle.makedsn)

            def newmakedsn(*args, **kw):
                return cx_Oracle._cxmakedsn(*args, **kw).replace(
                    'SID', 'SERVICE_NAME')
            cx_Oracle.makedsn = newmakedsn
    elif url.drivername == 'mysql':
        import MySQLdb.cursors
        # use server-side cursors by default (does this work with myISAM?)
        connect_args = {'cursorclass': MySQLdb.cursors.SSCursor}
    engine = sa.engine.create_engine(url, connect_args=connect_args)
    return engine
Extracts the exception line from the input string, and marks
dataset/ETHPy150Open jaysw/ipydb/ipydb/engine.py/from_url--crossover with--dataset/ETHPy150Open pypa/pip/pip/_vendor/pyparsing.py/ParseBaseException.markInputline