99 < title > dbconnector.dbconnector — MySQL-DBConnector 1.1.2 documentation</ title >
1010 < link rel ="stylesheet " href ="../../_static/classic.css " type ="text/css " />
1111 < link rel ="stylesheet " href ="../../_static/pygments.css " type ="text/css " />
12+
1213 < script type ="text/javascript " id ="documentation_options " data-url_root ="../../ " src ="../../_static/documentation_options.js "> </ script >
1314 < script type ="text/javascript " src ="../../_static/jquery.js "> </ script >
1415 < script type ="text/javascript " src ="../../_static/underscore.js "> </ script >
1516 < script type ="text/javascript " src ="../../_static/doctools.js "> </ script >
16- < script type ="text/javascript " src ="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML "> </ script >
17+ < script type ="text/javascript " src ="../../_static/language_data.js "> </ script >
18+
1719 < link rel ="index " title ="Index " href ="../../genindex.html " />
1820 < link rel ="search " title ="Search " href ="../../search.html " />
1921 </ head > < body >
@@ -387,14 +389,17 @@ <h1>Source code for dbconnector.dbconnector</h1><div class="highlight"><pre>
387389 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> sleep_interval</ span > < span class ="o "> =</ span > < span class ="mi "> 1</ span >
388390 < span class ="k "> return</ span > < span class ="n "> result</ span >
389391
390- < div class ="viewcode-block " id ="DBConnector.query "> < a class ="viewcode-back " href ="../../modules.html#dbconnector.dbconnector.DBConnector.query "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="p "> ):</ span >
392+ < div class ="viewcode-block " id ="DBConnector.query "> < a class ="viewcode-back " href ="../../modules.html#dbconnector.dbconnector.DBConnector.query "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="p "> , </ span > < span class =" n " > df </ span > < span class =" o " > = </ span > < span class =" kc " > False </ span > < span class =" p " > ):</ span >
391393 < span class ="sd "> """</ span >
392394< span class ="sd "> Query the database using select (with resilience).</ span >
393395
394396< span class ="sd "> Parameters</ span >
395397< span class ="sd "> ----------</ span >
396398< span class ="sd "> `sqlquery` : string</ span >
397399< span class ="sd "> SQL `select` statement to be executed.</ span >
400+ < span class ="sd "> `df` : boolean</ span >
401+ < span class ="sd "> Set to True to return query results as Pandas DataFrame. Column names will be extracted</ span >
402+ < span class ="sd "> from the *sqlquery* and converted to lowercase (do not use "select * from").</ span >
398403< span class ="sd "> Returns</ span >
399404< span class ="sd "> -------</ span >
400405< span class ="sd "> list</ span >
@@ -409,15 +414,15 @@ <h1>Source code for dbconnector.dbconnector</h1><div class="highlight"><pre>
409414< span class ="sd "> MySQL Connector Python is prone to dropped connections - this wrapper adds resilience by</ span >
410415< span class ="sd "> retrying.</ span >
411416< span class ="sd "> """</ span >
412- < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _safe_query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _select_query</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="o "> =</ span > < span class ="n "> sqlquery</ span > < span class ="p "> )</ span > </ div >
417+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _safe_query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _select_query</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="o "> =</ span > < span class ="n "> sqlquery</ span > < span class ="p "> , </ span > < span class =" n " > df </ span > < span class =" o " > = </ span > < span class =" n " > df </ span > < span class =" p " > )</ span > </ div >
413418
414419< div class ="viewcode-block " id ="DBConnector.proc "> < a class ="viewcode-back " href ="../../modules.html#dbconnector.dbconnector.DBConnector.proc "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> proc</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> proc</ span > < span class ="p "> ,</ span > < span class ="n "> args</ span > < span class ="p "> ):</ span >
415420 < span class ="sd "> """Execute a MySQL procedure with resilience."""</ span >
416421 < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _safe_query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _proc_query</ span > < span class ="p "> ,</ span > < span class ="n "> proc</ span > < span class ="o "> =</ span > < span class ="n "> proc</ span > < span class ="p "> ,</ span > < span class ="n "> args</ span > < span class ="o "> =</ span > < span class ="n "> args</ span > < span class ="p "> )</ span > </ div >
417422
418- < div class ="viewcode-block " id ="DBConnector.iud_query "> < a class ="viewcode-back " href ="../../modules.html#dbconnector.dbconnector.DBConnector.iud_query "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> iud_query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="p "> ,</ span > < span class ="n "> data</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
423+ < div class ="viewcode-block " id ="DBConnector.iud_query "> < a class ="viewcode-back " href ="../../modules.html#dbconnector.dbconnector.DBConnector.iud_query "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> iud_query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="p "> ,</ span > < span class ="n "> data</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> , </ span > < span class =" n " > size </ span > < span class =" o " > = </ span > < span class =" mi " > 1000 </ span > < span class =" p " > ):</ span >
419424 < span class ="sd "> """Execute an insert/update/delete SQL statement with resilience."""</ span >
420- < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _safe_query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _iud_query</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="o "> =</ span > < span class ="n "> sqlquery</ span > < span class ="p "> ,</ span > < span class ="n "> data</ span > < span class ="o "> =</ span > < span class ="n "> data</ span > < span class ="p "> )</ span > </ div >
425+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _safe_query</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _iud_query</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="o "> =</ span > < span class ="n "> sqlquery</ span > < span class ="p "> ,</ span > < span class ="n "> data</ span > < span class ="o "> =</ span > < span class ="n "> data</ span > < span class ="p "> , </ span > < span class =" n " > size </ span > < span class =" o " > = </ span > < span class =" n " > size </ span > < span class =" p " > )</ span > </ div >
421426
422427< div class ="viewcode-block " id ="DBConnector.close_connections "> < a class ="viewcode-back " href ="../../modules.html#dbconnector.dbconnector.DBConnector.close_connections "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> close_connections</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
423428 < span class ="sd "> """Close all connections when done for optimal DB efficiency."""</ span >
@@ -441,10 +446,21 @@ <h1>Source code for dbconnector.dbconnector</h1><div class="highlight"><pre>
441446 < span class ="k "> def</ span > < span class ="nf "> _select_query</ span > < span class ="p "> (</ span > < span class ="n "> cnx</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> ):</ span >
442447 < span class ="sd "> """Execute a select query."""</ span >
443448 < span class ="n "> sqlquery</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s1 "> 'sqlquery'</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
449+ < span class ="n "> df</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s1 "> 'df'</ span > < span class ="p "> ,</ span > < span class ="kc "> False</ span > < span class ="p "> )</ span >
444450 < span class ="n "> cursor</ span > < span class ="o "> =</ span > < span class ="n "> cnx</ span > < span class ="o "> .</ span > < span class ="n "> cursor</ span > < span class ="p "> ()</ span >
445451 < span class ="n "> cursor</ span > < span class ="o "> .</ span > < span class ="n "> execute</ span > < span class ="p "> (</ span > < span class ="n "> sqlquery</ span > < span class ="p "> )</ span >
446452 < span class ="n "> result</ span > < span class ="o "> =</ span > < span class ="n "> cursor</ span > < span class ="o "> .</ span > < span class ="n "> fetchall</ span > < span class ="p "> ()</ span >
447453 < span class ="n "> cursor</ span > < span class ="o "> .</ span > < span class ="n "> close</ span > < span class ="p "> ()</ span >
454+ < span class ="k "> if</ span > < span class ="n "> df</ span > < span class ="p "> :</ span >
455+ < span class ="kn "> from</ span > < span class ="nn "> pandas</ span > < span class ="k "> import</ span > < span class ="n "> DataFrame</ span >
456+ < span class ="kn "> import</ span > < span class ="nn "> re</ span >
457+ < span class ="n "> col_regex</ span > < span class ="o "> =</ span > < span class ="s2 "> "(?<=^select)[a-zA-Z0-9_\s*(),`]+(?=from)"</ span >
458+ < span class ="n "> cols</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> c</ span > < span class ="o "> .</ span > < span class ="n "> strip</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="n "> split</ span > < span class ="p "> (</ span > < span class ="s2 "> " as "</ span > < span class ="p "> )[</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> strip</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="n "> strip</ span > < span class ="p "> (</ span > < span class ="s2 "> "`"</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> c</ span > < span class ="ow "> in</ span >
459+ < span class ="n "> re</ span > < span class ="o "> .</ span > < span class ="n "> findall</ span > < span class ="p "> (</ span > < span class ="n "> col_regex</ span > < span class ="p "> ,</ span > < span class ="n "> sqlquery</ span > < span class ="o "> .</ span > < span class ="n "> lower</ span > < span class ="p "> ())[</ span > < span class ="mi "> 0</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> strip</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="n "> split</ span > < span class ="p "> (</ span > < span class ="s2 "> ","</ span > < span class ="p "> )]</ span >
460+ < span class ="k "> if</ span > < span class ="n "> result</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ]:</ span >
461+ < span class ="k "> return</ span > < span class ="n "> DataFrame</ span > < span class ="p "> (</ span > < span class ="n "> result</ span > < span class ="p "> ,</ span > < span class ="n "> columns</ span > < span class ="o "> =</ span > < span class ="n "> cols</ span > < span class ="p "> )</ span >
462+ < span class ="k "> else</ span > < span class ="p "> :</ span >
463+ < span class ="k "> return</ span > < span class ="n "> DataFrame</ span > < span class ="p "> ({</ span > < span class ="n "> c</ span > < span class ="p "> :</ span > < span class ="p "> []</ span > < span class ="k "> for</ span > < span class ="n "> c</ span > < span class ="ow "> in</ span > < span class ="n "> cols</ span > < span class ="p "> })</ span >
448464 < span class ="k "> return</ span > < span class ="n "> result</ span >
449465
450466 < span class ="nd "> @staticmethod</ span >
@@ -463,7 +479,7 @@ <h1>Source code for dbconnector.dbconnector</h1><div class="highlight"><pre>
463479 < span class ="nd "> @staticmethod</ span >
464480 < span class ="k "> def</ span > < span class ="nf "> _iud_query</ span > < span class ="p "> (</ span > < span class ="n "> cnx</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> ):</ span >
465481 < span class ="sd "> """Execute an insert/update/delete SQL statement."""</ span >
466- < span class ="n "> size</ span > < span class ="o "> =</ span > < span class ="mi "> 100 </ span >
482+ < span class ="n "> size</ span > < span class ="o "> =</ span > < span class ="n " > kwargs </ span > < span class =" o " > . </ span > < span class =" n " > get </ span > < span class =" p " > ( </ span > < span class =" s1 " > 'size' </ span > < span class =" p " > , </ span > < span class =" mi "> 1000 </ span > < span class =" p " > ) </ span >
467483 < span class ="n "> data</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s1 "> 'data'</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
468484 < span class ="n "> sqlquery</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s1 "> 'sqlquery'</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
469485 < span class ="n "> cursor</ span > < span class ="o "> =</ span > < span class ="n "> cnx</ span > < span class ="o "> .</ span > < span class ="n "> cursor</ span > < span class ="p "> ()</ span >
@@ -510,7 +526,7 @@ <h3>Navigation</h3>
510526 </ div >
511527 < div class ="footer " role ="contentinfo ">
512528 © Copyright 2018, Jamie Taylor.
513- Created using < a href ="http://sphinx-doc.org/ "> Sphinx</ a > 1.7.8 .
529+ Created using < a href ="http://sphinx-doc.org/ "> Sphinx</ a > 1.8.5 .
514530 </ div >
515531 </ body >
516532</ html >
0 commit comments