Browse Source

new: sqlserver and other refactoring

Steve Nyemba 1 year ago
parent
commit
67b91b43ab
5 changed files with 33 additions and 7 deletions
  1. 1 1
      info/__init__.py
  2. 4 4
      setup.py
  3. 3 1
      transport/providers/__init__.py
  4. 1 1
      transport/sql/__init__.py
  5. 24 0
      transport/sql/sqlserver.py

+ 1 - 1
info/__init__.py

@@ -1,5 +1,5 @@
 __author__ = 'The Phi Technology'
-__version__= '2.0.0'
+__version__= '2.0.2'
 __license__="""
 
 

+ 4 - 4
setup.py

@@ -22,10 +22,10 @@ args    = {
 
     "packages": find_packages(include=['info','transport', 'transport.*'])}
 args["keywords"]=['mongodb','couchdb','rabbitmq','file','read','write','s3','sqlite']
-args["install_requires"] = ['pyncclient','pymongo','sqlalchemy','pandas','typer','pandas-gbq','numpy','cloudant','pika','nzpy','boto3','boto','pyarrow','google-cloud-bigquery','google-cloud-bigquery-storage','flask-session','smart_open','botocore','psycopg2-binary','mysql-connector-python','numpy']
+args["install_requires"] = ['pyncclient','pymongo','sqlalchemy','pandas','typer','pandas-gbq','numpy','cloudant','pika','nzpy','boto3','boto','pyarrow','google-cloud-bigquery','google-cloud-bigquery-storage','flask-session','smart_open','botocore','psycopg2-binary','mysql-connector-python','numpy','pymssql']
 args["url"] =   "https://healthcareio.the-phi.com/git/code/transport.git"
 args['scripts'] = ['bin/transport']
-if sys.version_info[0] == 2 :
-    args['use_2to3'] = True
-    args['use_2to3_exclude_fixers']=['lib2to3.fixes.fix_import']
+# if sys.version_info[0] == 2 :
+#     args['use_2to3'] = True
+#     args['use_2to3_exclude_fixers']=['lib2to3.fixes.fix_import']
 setup(**args)

+ 3 - 1
transport/providers/__init__.py

@@ -26,7 +26,9 @@ S3      = 's3'
 CALLBACK = 'callback'
 CONSOLE     = 'console'
 RABBITMQ = 'rabbitmq'
-DATABRICKS= 'databricks'
+DATABRICKS  = 'databricks'
+MSSQL       ='sqlserver'
+SQLSERVER   ='sqlserver'
 
 #
 # synonyms of the above

+ 1 - 1
transport/sql/__init__.py

@@ -3,7 +3,7 @@ This namespace/package wrap the sql functionalities for a certain data-stores
     - netezza, postgresql, mysql and sqlite
     - mariadb, redshift (also included)
 """
-from . import postgresql, mysql, netezza, sqlite
+from . import postgresql, mysql, netezza, sqlite, sqlserver
 
 
 #

+ 24 - 0
transport/sql/sqlserver.py

@@ -0,0 +1,24 @@
+"""
+Handling Microsoft SQL Server via pymssql driver/connector
+"""
+import sqlalchemy
+import pandas as pd
+from transport.sql.common import Base, BaseReader, BaseWriter
+
+
+class MsSQLServer:
+    def __init__(self,**_args) :
+        super().__init__(**_args)
+        pass
+    def get_provider(self):
+        # mssql+pymssql://scott:tiger@hostname:port/dbname"
+        return "mssql+pymssql"
+    def get_default_port(self):
+        return "1433"
+class Reader (MsSQLServer,BaseReader):
+    def __init__(self,**_args):
+        super().__init__(**_args)
+        
+class Writer (MsSQLServer,BaseWriter):
+    def __init__(self,**_args):
+        super().__init__(**_args)