import transport import info from multiprocessing import Process import pandas as pd from io import StringIO import requests import cms import os @cms.Plugin(mimetype='application/json') def about (**_args): return {'license':info.__license__,'author':transport.__app_name__, 'version':transport.__version__, 'supported':transport.supported().to_html(index=False,col_space=0,justify='left').replace("\n","").replace('border="1"','')} # # loading notebooks from github @cms.Plugin(mimetype='application/json') def _data (**_args) : _csv = f"""provider,label,doc,url,notebook etl,ETL,"Built-in ETL CLI program",https://healthcareio.the-phi.com/data-transport,etl.ipynb mongodb,MongoDB,"mongodb is a NoSQL database developed by mongodb",https://mongodb.com,mongodb.ipynb mysql,MySQL,"mysql is a relational database developed and maintained by Oracle",https://www.mysql.com,mysql.ipynb postgresql,PostgreSQL,"postgresql is an object - relational database developed and maintained by PostgreSQL Global Development Group",https://www.postgresql.com,postgresql.ipynb mssqlserver,MS SQL Server,"SQL Server a relational database server developed by Microsoft",https://www.microsoft.com,mssqlserver.ipynb sqlite,sqlite,"sqlite is portable relational database",https://www.sqlite.com,sqlite.ipynb s3,AWS S3,"AWS Simple Storage Service",https://www.aws.amazon.com/s3,s3.ipynb """ _df = pd.read_csv(StringIO(_csv)) return _df.drop_duplicates().to_dict(orient='records') # MEM_PRODUCT_FILE = StringIO(f"""_,community,enterprise # NoSQL,1,1 # RDBMS/SQL,1,1 # Cloud databases,1,1 # Other (MQTT; Files; https),1,1 # Warehouse,1,1 # """) @cms.Plugin(mimetype="text/html") def product(**_args): _config = _args['config'] path = os.sep.join([_config['layout']['location'],_config['layout']['root'],'_assets','data','products.csv']) _df = pd.read_csv(path) return _df.to_html(index=0).replace(">",">").replace("<","<").replace("no",'').replace("yes",'') @cms.Plugin(mimetype="application/json") def registry (**_args): if not transport.registry.isloaded() : transport.registry.load() _repo = transport.registry.DATA _data = [{'label':key,'provider':_repo[key]['provider'],'plugins':([] if 'plugins' not in _repo[key] else _repo[key]['plugins'])} for key in _repo if 'provider' in _repo[key]] return _data