From 3129c07910cce3a8d2e77bf096a44262f05f26b3 Mon Sep 17 00:00:00 2001 From: Kapparina <3th0nian@gmail.com> Date: Mon, 27 Nov 2023 08:35:28 +1100 Subject: [PATCH] Version 1.0.0 Updated README; Added basic connectivity test; Tweaked build_engine. --- README.md | 37 ++++++++++++++++++++++++++ dist/sqlengine-0.1.0-py3-none-any.whl | Bin 2705 -> 0 bytes dist/sqlengine-0.1.0.tar.gz | Bin 3163 -> 0 bytes dist/sqlengine-1.0.0-py3-none-any.whl | Bin 0 -> 3222 bytes dist/sqlengine-1.0.0.tar.gz | Bin 0 -> 3699 bytes pyproject.toml | 2 +- src/sqlengine/sqlengine.py | 9 ++++--- tests/basic_connection_test.py | 7 +++-- 8 files changed, 47 insertions(+), 8 deletions(-) delete mode 100644 dist/sqlengine-0.1.0-py3-none-any.whl delete mode 100644 dist/sqlengine-0.1.0.tar.gz create mode 100644 dist/sqlengine-1.0.0-py3-none-any.whl create mode 100644 dist/sqlengine-1.0.0.tar.gz diff --git a/README.md b/README.md index c00113e..f31f706 100644 --- a/README.md +++ b/README.md @@ -1 +1,38 @@ # SQLEngine + +SQLEngine is a basic wrapper around the SQLAlchemy library - specifically focused on simple Engine creation. + +## Usage + +```python +from sqlengine import build_engine + +engine = build_engine( # This gives you an SQLAlchemy Engine object with which you can .connect() + driver="mssql", + host="127.0.0.1/DB_Server", + database="DB_Name" +) +``` +Connecting to a more obscure DBMS such as Microsoft's Access is also supported.: +```python +from sqlengine import build_engine + +# The driver, host, and database parameters are ignored when using Access. +# The wrapper deals with obscure necessities such as DBMS-specific connection parameters. +engine = build_engine( + driver="access", + local_db_filepath="C:\\Users\\User\\Desktop\\Database.accdb" +) +``` +Whilst yet untested, connecting to pretty much any DBMS should be supported: +```python +from sqlengine import build_engine + +engine = build_engine( + driver="mysql", + host="https://www.mycompany.fake/DB_Server", + database="DB_Name", + username="my_username", # Note the additional keyword arguments + password="my_password" +) +``` diff --git a/dist/sqlengine-0.1.0-py3-none-any.whl b/dist/sqlengine-0.1.0-py3-none-any.whl deleted file mode 100644 index 1d00c41af56153272a2279c595c1a0ebb578b9ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2705 zcmaKu2{crTAIHZeJ5ghbs3}agS(GJZo9xCuLk!u%AYttLR+2=GWys5#!iy|r*D|zF zV;1`og`t!zB|H76_s;8;&imhce&?Qh&%K}D?|kp?{JuYP^bU3q007`(#UTUGA;Mc8 zHUNOYio>iY0R(S1AH1iJ8w?3ofFt3qo&kX{Pak(*go!Q|rGvtv&RjP$11bnUo7)7X zhxSwiq70O)gw6=)^_8MqvW}k8{>BJ?79D{$poiwTjxtr|9)cy_%(o}+T14S6C_|C3 zF;Thqqa@z@nH(LuV&;0B#UE>@G^~(`kXj6vJ}p;!m&Xdu@P2|e;@Or?wp_J#?ptHv z81co`c(adV$q}CGfKKgUi=%TB)HRpFMy#+J-igGYD06m#;i`DR>>lFPx`r#d$L5-; zR8uCQzp|{V35u4XU-W()g(HSg^wchmE4hUVAjK_}TgvcZ8IQdrw96r4AkF3qyp%ZI zf8|@NRI_bzcyN}Lo+w`{I^+sQ4Y!B!)FsnCT72Q;=+u>^{Sk^6?KjIlbDIC6WRh{C zsU1r}94ij~UnNf)=;|8t(hN*G8T@FNER{mLZ;9+V_SWC56Ad$x??BX8N*i?aniv^V zO*_#RbY$1Do@4z?o|iNP$Birq!p??fFY%LsSw0e+1SK=7AGXhFHoe5-826KWbx{IxqFXtz=L)_X3PC zHKC>{fVncIh5K_!n8u~~AjO<1q2}O_(NL5Mt2{W;N~;(*F_CMQ&X>haMg$)}5f@@| z=Dt`$AM;K$Q^_vfF=n+2+USI>7Vn;eBjyp6r5VhzZcd4Y#umtYQc?THz-|e1l@xm-EyBHDu_6A&0Vxr!nf+x` zY<>y!B0qXv6i==nRas7Ii~LGt(y)Ckm?WYp(KIpK22X7S3#p-(PfUPejYeff31*Sk*t=&@C? zTa?u{i?kAKR1-D1338A-l1n8d{s(YYP?|8;UzD|iKP^QA6Z~2aRx)oS0EHY6f z5JQ_p?Pka1mbQuSE@|NL+?*xviI|D0ARTw805Oj~g&b29hn!(`hr zvf%?Oqj^4SH$iQ?Hie#buRUoVM{J#`&19jyyK!A@+3_ifn`hZ*bnE914OxSqQp=(+ z7vZ7Gj1A{$t^JH;^`>{j*{|c(65F@9ol684H6hNHj1$W@)eWclh_+rp59yir5NF_O zp}Mjz$&ULKysaR1#*xTKQI>4gQAfrJJx;71zd;NUP8^r$@9((A&~(OZ;59EmXK>JQ zs~WAA=Qjhq30I^YUI^Vo)vJ;=R|WW=wkkK}M6S&;{a^R(w!;H%FJXlQ7u^iL{y7`t z|000Veg|t^GFNYkcB;)TA4bBLho5L|j$3_FsgWSql!W_rg&v4GF3S#!nv_#RqU+?} zNzuykz&E#AbUBz)cU^+WSI)y$+c0i)Nz9N0yOUC8)VR z-RX)!4L`lx8{&>s#3zy6`=~X0^$vdwwQ7iSkG$6unEFIL$SjKkt8vCbHjZf1%X~0| z(m^{^6Wq&JCKF5<8wty>@Y_dtPP#G{*mdSZP@(~YRhX-f1hY1(_vAppzU2J2bHv+V zk92DNGmhCcdA{)+#jQsN0XYV1&BO1XD*$x38p78H3n=aTpa+R7Nbgzx^_=_G=rAfHkuVV;{j7=U2sqZHn|Y< zT!eA{EBSVMG)U%I&ExPy$sorpt~`Ttwsu+J>-7w1>48`^73hqaDgn6^ZBx8=ae##K zCp1}RiK?D>(<95%+=sYS0-*Rn09&++ASH9ADsO`3zJ{2ukJkM$D1S)p=upz8Y0S<>GrL)Kd6Jc-;V!$ z+VZX4N9wypO6l}15dj6BQ@pVqD&}Z5APDf^s}M`PzmDR#@0TAQ_M49XEJoXT+ZTer zX#hZRoDu8a{5S8f^N diff --git a/dist/sqlengine-0.1.0.tar.gz b/dist/sqlengine-0.1.0.tar.gz deleted file mode 100644 index 3066984caa9e51188d811ac1e2ca9d70042db473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3163 zcmV-h45afPiwFp$vtwlf|8sF{Wo~C_Ze=YnE-@}JE_7jX0PP%WbK5r3pEcwEfMGvK zY9&ULY}wINnL3Gk=V_d#ae7}e8I>ZThz(yMK_|Lg{`)OnB>0l##PQw4*v!Ndu~;k? zyNg|5Me~9A;FlNn$A4nm#mT`pff0wczoXIQsQ65uTcfcxK0qH2?f|ls*a-}Oa6e&u ziUQ&Vcy675*eBM*hsWl_hvSJgI_(^2`0gQn@8j^T7vkZ_w9L_im*;0sFVD@uy=D8K z9v!vYzjb_I9UV_bCzH|W1n?}Xj0b3>?f;v@59sQTXXi`<4zhH4Zk2(?m{!ZPt4gCFt5tyeLc2)5n)rrqQu8vW}7z2*2(ifKN#B z^czqI+|V`#2nV+3(}xx)%gNDndh%1={7aSs%VroQIQBQ@TaT=>rRhY0fj$p9Z-D(6 zhb|5s4;RB2U;{Si^3i;3j?D4I81R;O6S+(0(fk;mS_Y+%V3=8g(_y>;W|}2(sq=rG|JU+=aKxh{9RS?J{Xb2d2l=xHi-i|@ zWU(;g%{SctEo)NA|Kamg@BeoJt0W4LnXfp4?L10IaVRiAmsiS{GsnScD!;K!Xo2spEf#_(~$$A91RwNvYDVv)E4T0J({Gjgwi<_3M-*Z_p6E zT4T}1h!gl)P%%p+)=^5D3D6c~yDlW@=}t1PP3)ze;$~9pkRw_#3KEk}O-vL%mZ`nZ zaI#TIxt>EPy#b;`B~{?f;|RP1Vx2L;NlJ-(q2p&R#Cstd*U1--u2&&R@7hkjPLPbk zSId#}aZ6%k#O_3j#c)~T&*(!zw~V=K;{4G}o}qCP%GsKT-J>NtVv>uOo05xHNM>?9 z{zyWK{neoSsByI`I1TGrrP91sgI#jxRQhQ62tAK-uOL}9g}TiJmz7qgOmoIvwVzao zdCpk{gD>x#^Cv}^x5Dy48(mcH$$CvPqZ&9@*lZBmJm<4TUh@*W6(q*nykNIz?bkRK zIx#Q1-X2V3E@zZ?q6#83vPT=4_zPdIEJA`wmW1jErtH{P-MW%A_VQ2tHXonh80;U1 z!pHO8g%Rf#!Fy5VSLh2GUbx1IN5F}&eTy52iorY69VAYoYtO|g!vfyH_1LiXt1NW5 zQhH>gcn;nXzSlXU)bK~_WQ5x;T@_E+iOvW~yd|`ziVTGg_dwtKGu4S^DR%jOSK8uK zhh`RJxWe|z_9F=Ha9c~f=U9BSOH9_0t4<;JCd_{bcfgn^?4C|9H)C`G_#R01-yn7y zg#G~*3?i@4$$fThNgEuQa7{p(9(e~TL?A!$GkSp`yh~XqfcwedeT^Br;6PV6p%Q-% zVZ}8@PkaxQ4_WkzRr9}IkglM zHX}+Pzoo+h6P-Q3x}YAc#pbIrtk{LST+kGP8|Hsl{?KF+st+jUAT&a{17#*Ja@ozw zIzE&mvQ?BL@_DkyTbHfPop2T0)1MR!DW0XKxKD+y{b&a6a)5p`VGMWKHx!#SDyv25 zSYq^TzGzRG7mnby@$~T@24x<4^eBE$(CC}?GL3vNn_jWa!uy!cibWJ6$g-;u z5Tc)56!Bz3L@_KOUU_e`ggJ=TEclh0775n^W|HM*F@szmt3n*0D9`t6IdPu5RWhy; zF=fAOBvnYhErBcZrY=+qNwHdITLK{ILhJEmF;wHCw+z{^@^m`#8;cw{QZXcLEDhMA zKENu~pW4V=MfgD6bAo3jpbRaOO6VXmft1f|F9lD0mZmtN#Ltr?f|b8mL3rkYfMnv2 zLg1ptAKksB3RWGf%}C1bfEY%E831adBoPJ>p0WLIL)D-6mwn38V~*Z5q_%r2i9VN+ zp;6CU)U@Oa!!5-lnZQLV(aYc43)w#;g07u8ugJ+Mbb6xi|L%|f*T4VxpZWjF??0y2iAf9cCJ(jyzrX$; zVtUV66latR`uK}CgB||g8cmDee~gbUu>a}tXsrGJoz;J&iBpt-){8;a^R_{LhQLna zN=I&97-ytsoQDL96Bf~I^bb4g0bC7{H&V3fVO*VNj$p7OL7H>putzEMY3@Iw=LO19 z06*20X91;C(+2A5>2Y}^mZ+BR;pf{=BI~(zEwP^qe#EW!VModAzjm;u1is}og9$QD zypZ&S4)ELI(xd#Ix380M9slY4|9j5=t;y)&R9pGIjsK$M-wXLm&4o=!@>K!gj`(jn zKB~U|V|oJ3I{v!@5FuU`dW0@U0(k)@3JV4e(V-y zK=UqT6GFSLsBoNr>N;yXfl<3N)Xm81G*}*WKbK1GSQjB!%0n}E{4(t#y$}Twy`1Mk z!E(Q`)A{?%_6vM@O^+%Q+pjYVC6O}wJ;#(+L?{>0ejS+@2k3@!gut~X#v2xIs-kME z;4CDvt&FoQfYwTfV!EYrhdpEjGaI04C8sJ5kuBU%u}o>^Ew!U^Y+4(_Ol`5~SB+S` zYTahW{KFLn9~3hyCb?ZNH)`d7sbEl{ZZ=dqZ!z{DT?l(uIo!vxTZPPSn{Ogx!9&SG z?p$!uNikxj{IR=t_nVt>KJXV*ixpI z!aA{!1d*HhczZc7KVaZW)l+--XXq@fmATd{Dv_7h#kuH%N7l$j*YMR9We?RNNKre| zR-4Op9|q@5d8wtSQ+Cl3!(1`KwzKBO76`)J5a)+DoD^fVEMI^Hc-iBB+iT z;{*l@6e-L4LskGOUjzbjsaA(7wSapY_YXiNqE#!VyF}?a%6vN0Jw#bmVP!ez&Gi}G zVx)GbAY^g_ub_-vj+S;>nbNax52bR(?u}@OdO=~UZw5E0Z2XdOsuhrQK+C8(09GKk z_l}}iyAy@P2Ayg$_rKIY^soFk0L_}m*0*#FS6yDb`nac$8}Bmz zfAQNth8NF&{r$Gj|F+%#A5X2y`JZ(()xZC}6Mzldrp{#eFaEBt85)~b=Q$YXtjI1q zc_UMj&Q%r!HY>Be#rJ=8&e-d}hUfJCUNe-x(+mB4lNWtG>OA9b*n(K(;#KFRd|lTI z_PVYaVsGgh@K<&ftxr96IaPZPSQVr6KCsTy;$>*VC$PsrfHZu?>TK!Dy&iyw-nr3- zu+vdqvZ{TV1`QfCXwaZRg9Z&6G-%MEL4yVj8Z>Coph1HM4H~``{1@qBsSf~n001S( BN$>yw diff --git a/dist/sqlengine-1.0.0-py3-none-any.whl b/dist/sqlengine-1.0.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..15e138eacbe7449afd9060ebce9ad4efa2251d67 GIT binary patch literal 3222 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 literal 0 HcmV?d00001 diff --git a/dist/sqlengine-1.0.0.tar.gz b/dist/sqlengine-1.0.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..fd7d456b034419bcce1a9d12a2a2c94ba50d9dfc GIT binary patch literal 3699 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 REp6FU{sUag`|ALB002ygO?UtR literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 9fbcec6..c3083d0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "SQLEngine" -version = "0.1.0" +version = "1.0.0" description = "A simple wrapper enabling quick SQLAlchemy Engine creation for various DBMS." authors = [ {name = "Kapparina", email = "116474667+Kapparina@users.noreply.github.com"}, diff --git a/src/sqlengine/sqlengine.py b/src/sqlengine/sqlengine.py index 0779ea8..47fc585 100644 --- a/src/sqlengine/sqlengine.py +++ b/src/sqlengine/sqlengine.py @@ -24,7 +24,8 @@ def __init__( self, driver: Optional[str], host: Optional[str], - database: Optional[str], query: Optional[dict[str, str]] + database: Optional[str], query: Optional[dict[str, str]], + **kwargs ) -> None: self.driver = driver self.host = host @@ -35,7 +36,8 @@ def __init__( drivername=self.driver, host=self.host, database=self.database, - query=self.query + query=self.query, + **kwargs ) self.engine = create_engine(url=self.url) @@ -141,7 +143,8 @@ def build_engine( database=database ).engine - elif local_db_filepath is not None: + elif driver == "access": + assert local_db_filepath is not None, "Using Access you must specify a local database file path." return AccessEngine(db_path=local_db_filepath).engine else: diff --git a/tests/basic_connection_test.py b/tests/basic_connection_test.py index a6f646e..75fcfff 100644 --- a/tests/basic_connection_test.py +++ b/tests/basic_connection_test.py @@ -2,16 +2,15 @@ driver: str = input("Enter the driver: ") -host: str = input("Enter the host: ") -database: str = input("Enter the database: ") -if len(host) == 0 or driver == "access": +if driver == "access": db_path: str = input("Enter the path to the database: ") engine: Engine = build_engine( - driver=driver, local_db_filepath=db_path ) else: + host: str = input("Enter the host: ") + database: str = input("Enter the database: ") engine: Engine = build_engine( driver=driver, host=host,