lmstack 3 年之前
父節點
當前提交
410ec5e741

+ 76 - 0
LIB/OTHER/scripts/cellinfo_vin_pack.ipynb

@@ -0,0 +1,76 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# 溯源系统的表单合并到vin-pack关系表中\n",
+    "import pymysql\n",
+    "import pandas as pd\n",
+    "from sqlalchemy import create_engine\n",
+    "from urllib import parse\n",
+    "\n",
+    "# 数据库配置\n",
+    "host = 'rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com'\n",
+    "port = 3306\n",
+    "user = 'hz_dev'\n",
+    "password = parse.quote_plus('Qx@123456')\n",
+    "database = 'hz_dev'\n",
+    "\n",
+    "db_engine = create_engine(\n",
+    "    \"mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8\".format(\n",
+    "        user, password, host, port, database\n",
+    "    ))\n",
+    "\n",
+    "df_cell = pd.read_sql(\"select * from sys_battery_cell_model\", db_engine)\n",
+    "df_model_lk = pd.read_sql(\"select * from sys_battery_model_lk\", db_engine)\n",
+    "df_module_model = pd.read_sql(\"select * from sys_battery_module_model\", db_engine)\n",
+    "df_entity = pd.read_sql(\"select * from sys_battery_pack_entity_storage\", db_engine)\n",
+    "df_pack_model = pd.read_sql(\"select * from sys_battery_pack_model\", db_engine)\n",
+    "df_res = pd.DataFrame(columns=['id', 'vin','sn','pack_model_code', 'pack_capacity', 'pack_series_parallerl', 'module_model_code','module_manufactory', 'cell_model_code',\n",
+    "                               'cell_dict_shape','cell_battery_type','cell_manufactory'])\n",
+    "for index in df_entity.index:\n",
+    "    df_t = df_entity.loc[index]\n",
+    "    vin = df_t['vin']\n",
+    "    sn = df_t['code']\n",
+    "    pack_model_code = df_t['model_id']\n",
+    "    df_pack_model_t = df_pack_model[df_pack_model['model_code']==pack_model_code]\n",
+    "    pack_capacity =  df_pack_model_t['capacity'].values[0]\n",
+    "    pack_series_parallerl =  df_pack_model_t['series_parallerl'].values[0]\n",
+    "    \n",
+    "    module_model_code = df_model_lk[(df_model_lk['model_type']=='M')&(df_model_lk['code']==pack_model_code)]['child_code'].values[0]\n",
+    "    df_module_model_t = df_module_model[df_module_model['model_code']==module_model_code]\n",
+    "    module_manufactory = df_module_model_t['manufactory_name'].values[0]\n",
+    "    \n",
+    "    cell_model_code = df_module_model_t['cell_model'].values[0]\n",
+    "    \n",
+    "    df_cell_t = df_cell[df_cell['model_code']==cell_model_code]\n",
+    "\n",
+    "    cell_dict_shape = df_cell_t['dict_shape'].values[0]\n",
+    "    cell_battery_type = df_cell_t['battery_type'].values[0]\n",
+    "    cell_manufactory = df_cell_t['manufactory_name'].values[0]\n",
+    "    \n",
+    "    df_res = df_res.append({\n",
+    "        'vin':vin,'sn':sn,'pack_model_code':pack_model_code, 'pack_capacity':pack_capacity, 'pack_series_parallerl':pack_series_parallerl, \n",
+    "        'module_model_code':module_model_code,'module_manufactory':module_manufactory, 'cell_model_code':cell_model_code,\n",
+    "                               'cell_dict_shape':cell_dict_shape,'cell_battery_type':cell_battery_type,'cell_manufactory':cell_manufactory\n",
+    "    },ignore_index=True)\n",
+    "df_res.to_csv('result.csv')\n",
+    "\n",
+    "    \n",
+    "\n",
+    "    "
+   ]
+  }
+ ],
+ "metadata": {
+  "language_info": {
+   "name": "python"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}

+ 0 - 188
LIB/OTHER/scripts/ocv_to_mysql.ipynb

@@ -1,188 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 23,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "2101TS\n"
-     ]
-    }
-   ],
-   "source": [
-    "# 将文件中的ocv数据更新到数据库中\n",
-    "import pandas as pd\n",
-    "import os\n",
-    "from sqlalchemy import create_engine,sessionmaker\n",
-    "from sqlalchemy.orm import sessionmaker\n",
-    "from urllib import parse\n",
-    "import json\n",
-    "\n",
-    "host = 'rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com'\n",
-    "port = '3306'\n",
-    "db = 'hz_dev'\n",
-    "user = 'hz_dev'\n",
-    "password = parse.quote_plus('Qx@123456')\n",
-    "\n",
-    "db_engine = create_engine(\n",
-    "    \"mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8\".format(\n",
-    "        user, password, host, port, db\n",
-    "    ))\n",
-    "\n",
-    "Session = sessionmaker(bind=db_engine)\n",
-    "session = Session()\n",
-    "\n",
-    "df_cell = pd.read_sql(\"select * from sys_battery_cell_model\", db_engine)\n",
-    "df_model_lk = pd.read_sql(\"select * from sys_battery_model_lk where model_type='M'\", db_engine)\n",
-    "df_module_model = pd.read_sql(\"select * from sys_battery_module_model\", db_engine)\n",
-    "# df_entity = pd.read_sql(\"select * from sys_battery_pack_entity_storage\", db_engine)\n",
-    "df_pack_model = pd.read_sql(\"select * from sys_battery_pack_model\", db_engine)\n",
-    "df_algo_pack_param = pd.read_sql(\"select * from algo_pack_param\", db_engine)\n",
-    "\n",
-    "# 读取ocv曲线\n",
-    "files = os.listdir('./OCV-SOC曲线')\n",
-    "for f in files:\n",
-    "    \n",
-    "    # 根据cellcode 查找packcode\n",
-    "    module_code =  df_module_model[df_module_model['cell_model']==f[0:-5].replace('_','/')]['model_code'].values[0]\n",
-    "    pack_code = df_model_lk[df_model_lk['child_code']==module_code]['code'].values[0]\n",
-    "    \n",
-    "    # 读取ocv曲线, 并更新到pack参数中\n",
-    "    df = pd.read_excel('./OCV-SOC曲线/'+f)\n",
-    "    param = df_algo_pack_param[df_algo_pack_param['pack_code']==pack_code]['param']\n",
-    "    if len(param) == 0:\n",
-    "        param = {'charge_ocv_v':list(df['充电OCV']),'charge_ocv_soc':list(df['充电SOC']),'discharge_ocv_v':list(df['放电OCV']),'discharge_ocv_soc':list(df['放电SOC'])}\n",
-    "    else:\n",
-    "        param = json.loads(param.values[0])\n",
-    "        param.update({'charge_ocv_v':list(df['充电OCV']),'charge_ocv_soc':list(df['充电SOC']),'discharge_ocv_v':list(df['放电OCV']),'discharge_ocv_soc':list(df['放电SOC'])})\n",
-    "    param = json.dumps(param)\n",
-    "    cursor = session.execute('insert into algo_pack_param (pack_code, param) values (:pack_code, :param) on duplicate key update param = :param',\n",
-    "                                 params={\"pack_code\":pack_code,\"param\": param})\n",
-    "db_engine.dispose()\n",
-    "    \n",
-    "\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 59,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import json\n",
-    "df_algo_pack_param = pd.read_sql(\"select * from algo_pack_param\", db_engine)\n",
-    "param = df_algo_pack_param[df_algo_pack_param['pack_code']==pack_code]['param']\n",
-    "\n",
-    "\n",
-    "param = json.loads(param.values[0])\n",
-    "param.update({'charge_ocv_v':list(df['充电OCV']),'charge_ocv_soc':list(df['充电SOC']),'discharge_ocv_v':list(df['放电OCV']),'discharge_ocv_soc':list(df['放电SOC'])})\n",
-    "session.commit()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 58,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "    param = json.dumps(param)\n",
-    "    cursor = session.execute('insert into algo_pack_param (pack_code, param) values (:pack_code, :param) on duplicate key update param = :param',\n",
-    "                                 params={\"pack_code\":pack_code,\"param\": param}) "
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 38,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from sqlalchemy.orm import sessionmaker\n",
-    "Session = sessionmaker(bind=db_engine)\n",
-    "session = Session()\n",
-    "param = {'charge_ocv_v':list(df['充电OCV']),'charge_ocv_soc':list(df['充电SOC']),'discharge_ocv_v':list(df['放电OCV']),'discharge_ocv_soc':list(df['放电SOC'])}\n",
-    "param = json.dumps(param)\n",
-    "cursor = session.execute('insert into algo_pack_param (pack_code, param) values (:pack_code, :param) on duplicate key update param = :param',\n",
-    "                            params={\"pack_code\":pack_code,\"param\": \"ts\"})\n",
-    "session.commit()\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 50,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "0    ts\n",
-       "Name: param, dtype: object"
-      ]
-     },
-     "execution_count": 50,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "param"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 43,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "{'t': 2}"
-      ]
-     },
-     "execution_count": 43,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "a.update({\"t\":2})\n",
-    "a"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "interpreter": {
-   "hash": "ac7555030399793291671316948dfc1cf0035da70681b2458d9e2645bf33bfe4"
-  },
-  "kernelspec": {
-   "display_name": "Python 3.8.12 ('algo_dev_env')",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.8.12"
-  },
-  "orig_nbformat": 4
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}

+ 160 - 0
LIB/OTHER/scripts/pack_param_update.ipynb

@@ -0,0 +1,160 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# 将文件中的ocv数据更新到数据库中\n",
+    "import pandas as pd\n",
+    "import os\n",
+    "from sqlalchemy import create_engine\n",
+    "from sqlalchemy.orm import sessionmaker\n",
+    "\n",
+    "from sqlalchemy.pool import NullPool\n",
+    "from urllib import parse\n",
+    "import json\n",
+    "\n",
+    "host = 'rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com'\n",
+    "port = '3306'\n",
+    "db = 'hz_dev'\n",
+    "user = 'hz_dev'\n",
+    "password = parse.quote_plus('Qx@123456')\n",
+    "\n",
+    "db_engine = create_engine(\n",
+    "    \"mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8\".format(\n",
+    "        user, password, host, port, db\n",
+    "    ), poolclass=NullPool)\n",
+    "\n",
+    "\n",
+    "\n",
+    "df_cell = pd.read_sql(\"select * from sys_battery_cell_model\", db_engine)\n",
+    "df_model_lk = pd.read_sql(\"select * from sys_battery_model_lk where model_type='M'\", db_engine)\n",
+    "df_module_model = pd.read_sql(\"select * from sys_battery_module_model\", db_engine)\n",
+    "# df_entity = pd.read_sql(\"select * from sys_battery_pack_entity_storage\", db_engine)\n",
+    "df_pack_model = pd.read_sql(\"select * from sys_battery_pack_model\", db_engine)\n",
+    "df_algo_pack_param = pd.read_sql(\"select * from algo_pack_param\", db_engine)\n",
+    "\n",
+    "# 读取ocv曲线\n",
+    "files = os.listdir('./OCV-SOC曲线')\n",
+    "for f in files:\n",
+    "    # 根据cellcode 查找packcode\n",
+    "    module_codes =  list(df_module_model[df_module_model['cell_model']==f[0:-5].replace('_','/')]['model_code'].values)\n",
+    "    for module_code in module_codes:\n",
+    "        pack_codes = df_model_lk[df_model_lk['child_code']==module_code]['code']\n",
+    "        for pack_code in pack_codes:\n",
+    "            # 读取ocv曲线, 并更新到pack参数中\n",
+    "            df = pd.read_excel('./OCV-SOC曲线/'+f)\n",
+    "            param = df_algo_pack_param[df_algo_pack_param['pack_code']==pack_code]['param']\n",
+    "            if len(param) == 0:\n",
+    "                param = {'charge_ocv_v':list(df['充电OCV']),'charge_ocv_soc':list(df['充电SOC']),'discharge_ocv_v':list(df['放电OCV']),'discharge_ocv_soc':list(df['放电SOC'])}\n",
+    "            else:\n",
+    "                param = json.loads(param.values[0])\n",
+    "                param.update({'charge_ocv_v':list(df['充电OCV']),'charge_ocv_soc':list(df['充电SOC']),'discharge_ocv_v':list(df['放电OCV']),'discharge_ocv_soc':list(df['放电SOC'])})\n",
+    "            param = json.dumps(param)\n",
+    "            Session = sessionmaker(bind=db_engine)\n",
+    "            session = Session()\n",
+    "            cursor = session.execute('insert into algo_pack_param (pack_code, param) values (:pack_code, :param) on duplicate key update param = :param',\n",
+    "                                        params={\"pack_code\":pack_code,\"param\": param})\n",
+    "            session.commit()\n",
+    "            session.close()\n",
+    "db_engine.dispose()\n",
+    "    \n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# 更新pack的容量到参数中\n",
+    "import pandas as pd\n",
+    "import os\n",
+    "from sqlalchemy import create_engine\n",
+    "from sqlalchemy.orm import sessionmaker\n",
+    "from sqlalchemy.pool import NullPool\n",
+    "from urllib import parse\n",
+    "import json\n",
+    "\n",
+    "host = 'rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com'\n",
+    "port = '3306'\n",
+    "db = 'hz_dev'\n",
+    "user = 'hz_dev'\n",
+    "password = parse.quote_plus('Qx@123456')\n",
+    "\n",
+    "db_engine = create_engine(\n",
+    "    \"mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8\".format(\n",
+    "        user, password, host, port, db\n",
+    "    ), poolclass=NullPool)\n",
+    "\n",
+    "Session = sessionmaker(bind=db_engine)\n",
+    "session = Session()\n",
+    "\n",
+    "df_cell = pd.read_sql(\"select * from sys_battery_cell_model\", db_engine)\n",
+    "df_model_lk = pd.read_sql(\"select * from sys_battery_model_lk where model_type='M'\", db_engine)\n",
+    "df_module_model = pd.read_sql(\"select * from sys_battery_module_model\", db_engine)\n",
+    "# df_entity = pd.read_sql(\"select * from sys_battery_pack_entity_storage\", db_engine)\n",
+    "df_pack_model = pd.read_sql(\"select * from sys_battery_pack_model\", db_engine)\n",
+    "df_algo_pack_param = pd.read_sql(\"select * from algo_pack_param\", db_engine)\n",
+    "\n",
+    "# 读取ocv曲线\n",
+    "files = os.listdir('./OCV-SOC曲线')\n",
+    "for f in files:\n",
+    "    module_codes =  list(df_module_model[df_module_model['cell_model']==f[0:-5].replace('_','/')]['model_code'].values)\n",
+    "    for module_code in module_codes:\n",
+    "        pack_codes = df_model_lk[df_model_lk['child_code']==module_code]['code']\n",
+    "        for pack_code in pack_codes:\n",
+    "            # 根据cellcode 查找packcode及容量\n",
+    "            capacity = df_pack_model[df_pack_model['model_code']==pack_code]['capacity'].values[0]\n",
+    "            # 更新参数json\n",
+    "            param = df_algo_pack_param[df_algo_pack_param['pack_code']==pack_code]['param']\n",
+    "            param = json.loads(param.values[0])\n",
+    "            param.update({'capacity':str(capacity)})\n",
+    "            param = json.dumps(param)\n",
+    "            Session = sessionmaker(bind=db_engine)\n",
+    "            session = Session()\n",
+    "            cursor = session.execute('insert into algo_pack_param (pack_code, param) values (:pack_code, :param) on duplicate key update param = :param',\n",
+    "                                        params={\"pack_code\":pack_code,\"param\": param})\n",
+    "            session.commit()\n",
+    "db_engine.dispose()\n",
+    "    \n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "interpreter": {
+   "hash": "ac7555030399793291671316948dfc1cf0035da70681b2458d9e2645bf33bfe4"
+  },
+  "kernelspec": {
+   "display_name": "Python 3.8.12 ('algo_dev_env')",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}

+ 158 - 0
LIB/OTHER/scripts/read_hbase.ipynb

@@ -0,0 +1,158 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# 从hbase中获取数据\n",
+    " # -*- coding: utf-8  -*-\n",
+    "# 以下两个模块可以通过 pip install thrift 安装获得\n",
+    "from thrift.protocol import TBinaryProtocol\n",
+    "from thrift.transport import THttpClient\n",
+    "# 下面的模块通过 thrift --gen py hbase.thrift 来生成\n",
+    "from hbase import THBaseService\n",
+    "from hbase.ttypes import TColumnValue, TColumn, TTableName, TTableDescriptor, TColumnFamilyDescriptor, TNamespaceDescriptor, TGet, TPut, TScan\n",
+    "\n",
+    "# 连接地址\n",
+    "url = \"http://host:9190\"\n",
+    "transport = THttpClient.THttpClient(url)\n",
+    "headers = {}\n",
+    "# 用户名\n",
+    "headers[\"ACCESSKEYID\"]=\"root\";\n",
+    "# 密码\n",
+    "headers[\"ACCESSSIGNATURE\"]=\"root\"\n",
+    "transport.setCustomHeaders(headers)\n",
+    "protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport)\n",
+    "client = THBaseService.Client(protocol)\n",
+    "transport.open()\n",
+    "# 具体操作,最后close连接\n",
+    "transport.close()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "OSError",
+     "evalue": "Could not find KfW installation. Please download and install the 64bit Kerberos for Windows MSI from https://web.mit.edu/KERBEROS/dist and ensure the 'bin' folder (C:\\Program Files\\MIT\\Kerberos\\bin) is in your PATH.",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mOSError\u001b[0m                                   Traceback (most recent call last)",
+      "Input \u001b[1;32mIn [1]\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mphoenixdb\u001b[39;00m\n\u001b[0;32m      3\u001b[0m database_url \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttp://ld-bp16866o8uwo0a590-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060\u001b[39m\u001b[38;5;124m\"\u001b[39m  \u001b[38;5;66;03m# \u001b[39;00m\n\u001b[0;32m      5\u001b[0m \u001b[38;5;28;01mclass\u001b[39;00m \u001b[38;5;21;01mPhoenixConnectionTest\u001b[39;00m:\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\phoenixdb\\__init__.py:17\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[38;5;66;03m# Licensed to the Apache Software Foundation (ASF) under one or more\u001b[39;00m\n\u001b[0;32m      2\u001b[0m \u001b[38;5;66;03m# contributor license agreements.  See the NOTICE file distributed with\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[38;5;66;03m# this work for additional information regarding copyright ownership.\u001b[39;00m\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m     13\u001b[0m \u001b[38;5;66;03m# See the License for the specific language governing permissions and\u001b[39;00m\n\u001b[0;32m     14\u001b[0m \u001b[38;5;66;03m# limitations under the License.\u001b[39;00m\n\u001b[0;32m     15\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msys\u001b[39;00m\n\u001b[1;32m---> 17\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\n\u001b[0;32m     19\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mphoenixdb\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m errors, types\n\u001b[0;32m     20\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mphoenixdb\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mavatica\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AvaticaClient\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\__init__.py:29\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[38;5;124;03m\"\"\"High-Level GSSAPI Bindings\u001b[39;00m\n\u001b[0;32m      2\u001b[0m \n\u001b[0;32m      3\u001b[0m \u001b[38;5;124;03mThe high-level API contains three main classes, which represent\u001b[39;00m\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m     26\u001b[0m \u001b[38;5;124;03m    low-level API functions.\u001b[39;00m\n\u001b[0;32m     27\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m---> 29\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_win_config\u001b[39;00m  \u001b[38;5;66;03m# noqa\u001b[39;00m\n\u001b[0;32m     31\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mraw\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtypes\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m NameType, RequirementFlag, AddressType  \u001b[38;5;66;03m# noqa\u001b[39;00m\n\u001b[0;32m     32\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mraw\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtypes\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m MechType, IntEnumFlagSet  \u001b[38;5;66;03m# noqa\u001b[39;00m\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\_win_config.py:89\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m     85\u001b[0m     error_not_found()\n\u001b[0;32m     88\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m os\u001b[38;5;241m.\u001b[39mname \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnt\u001b[39m\u001b[38;5;124m'\u001b[39m:  \u001b[38;5;66;03m# Make sure we have the required DLLs\u001b[39;00m\n\u001b[1;32m---> 89\u001b[0m     \u001b[43mconfigure_windows\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\_win_config.py:85\u001b[0m, in \u001b[0;36mconfigure_windows\u001b[1;34m()\u001b[0m\n\u001b[0;32m     82\u001b[0m         \u001b[38;5;28;01mif\u001b[39;00m kfw_available():\n\u001b[0;32m     83\u001b[0m             \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m---> 85\u001b[0m \u001b[43merror_not_found\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\_win_config.py:49\u001b[0m, in \u001b[0;36merror_not_found\u001b[1;34m()\u001b[0m\n\u001b[0;32m     47\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21merror_not_found\u001b[39m() \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m     48\u001b[0m     \u001b[38;5;124;03m\"\"\"Raise an OSError detailing that KfW is missing and how to get it\"\"\"\u001b[39;00m\n\u001b[1;32m---> 49\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(\n\u001b[0;32m     50\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCould not find KfW installation. Please download and install \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m     51\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mthe 64bit Kerberos for Windows MSI from \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m and ensure the \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m     52\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbin\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m folder (\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m) is in your PATH.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m     53\u001b[0m         \u001b[38;5;241m%\u001b[39m (KFW_DL, KFW_BIN)\n\u001b[0;32m     54\u001b[0m     )\n",
+      "\u001b[1;31mOSError\u001b[0m: Could not find KfW installation. Please download and install the 64bit Kerberos for Windows MSI from https://web.mit.edu/KERBEROS/dist and ensure the 'bin' folder (C:\\Program Files\\MIT\\Kerberos\\bin) is in your PATH."
+     ]
+    }
+   ],
+   "source": [
+    "import phoenixdb\n",
+    "\n",
+    "database_url = \"http://ld-bp16866o8uwo0a590-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060\"  # \n",
+    "\n",
+    "class PhoenixConnectionTest:\n",
+    "\n",
+    "    def __init__(self):\n",
+    "        return\n",
+    "\n",
+    "    def _connect(self, connect_kw_args):\n",
+    "        try:\n",
+    "            r = phoenixdb.connect(database_url, autocommit=True, **connect_kw_args)\n",
+    "            return r\n",
+    "        except AttributeError:\n",
+    "            print (\"Failed to connect\")\n",
+    "\n",
+    "connect_kw_args = {'user': 'root', 'password': 'root'}\n",
+    "db = PhoenixConnectionTest()\n",
+    "connection = db._connect(connect_kw_args)\n",
+    "\n",
+    "# with connection.cursor() as statement:\n",
+    "#     sql_drop_table = \"drop table if exists test_python\"\n",
+    "#     print (sql_drop_table)\n",
+    "#     statement.execute(sql_drop_table)\n",
+    "#     sql_create_table =\"create table if not exists test_python(c1 int, c2 int, primary key(c1))\"\n",
+    "#     print (sql_create_table)\n",
+    "#     statement.execute(sql_create_table)\n",
+    "\n",
+    "#     sql_upsert = \"upsert into test_python(c1, c2) values(1,1)\"\n",
+    "#     print (sql_upsert)\n",
+    "#     statement.execute(sql_upsert)\n",
+    "\n",
+    "#     sql_select = \"SELECT * FROM test_python\"\n",
+    "#     print (sql_select)\n",
+    "#     statement.execute(sql_select)\n",
+    "#     rows = statement.fetchall()\n",
+    "#     print (rows)\n",
+    "\n",
+    "#     statement.close()\n",
+    "# connection.close"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "OSError",
+     "evalue": "Could not find KfW installation. Please download and install the 64bit Kerberos for Windows MSI from https://web.mit.edu/KERBEROS/dist and ensure the 'bin' folder (C:\\Program Files\\MIT\\Kerberos\\bin) is in your PATH.",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mOSError\u001b[0m                                   Traceback (most recent call last)",
+      "Input \u001b[1;32mIn [2]\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mphoenixdb\u001b[39;00m\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\phoenixdb\\__init__.py:17\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[38;5;66;03m# Licensed to the Apache Software Foundation (ASF) under one or more\u001b[39;00m\n\u001b[0;32m      2\u001b[0m \u001b[38;5;66;03m# contributor license agreements.  See the NOTICE file distributed with\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[38;5;66;03m# this work for additional information regarding copyright ownership.\u001b[39;00m\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m     13\u001b[0m \u001b[38;5;66;03m# See the License for the specific language governing permissions and\u001b[39;00m\n\u001b[0;32m     14\u001b[0m \u001b[38;5;66;03m# limitations under the License.\u001b[39;00m\n\u001b[0;32m     15\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msys\u001b[39;00m\n\u001b[1;32m---> 17\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\n\u001b[0;32m     19\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mphoenixdb\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m errors, types\n\u001b[0;32m     20\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mphoenixdb\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mavatica\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AvaticaClient\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\__init__.py:29\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[38;5;124;03m\"\"\"High-Level GSSAPI Bindings\u001b[39;00m\n\u001b[0;32m      2\u001b[0m \n\u001b[0;32m      3\u001b[0m \u001b[38;5;124;03mThe high-level API contains three main classes, which represent\u001b[39;00m\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m     26\u001b[0m \u001b[38;5;124;03m    low-level API functions.\u001b[39;00m\n\u001b[0;32m     27\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m---> 29\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_win_config\u001b[39;00m  \u001b[38;5;66;03m# noqa\u001b[39;00m\n\u001b[0;32m     31\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mraw\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtypes\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m NameType, RequirementFlag, AddressType  \u001b[38;5;66;03m# noqa\u001b[39;00m\n\u001b[0;32m     32\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mgssapi\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mraw\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtypes\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m MechType, IntEnumFlagSet  \u001b[38;5;66;03m# noqa\u001b[39;00m\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\_win_config.py:89\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m     85\u001b[0m     error_not_found()\n\u001b[0;32m     88\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m os\u001b[38;5;241m.\u001b[39mname \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnt\u001b[39m\u001b[38;5;124m'\u001b[39m:  \u001b[38;5;66;03m# Make sure we have the required DLLs\u001b[39;00m\n\u001b[1;32m---> 89\u001b[0m     \u001b[43mconfigure_windows\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\_win_config.py:85\u001b[0m, in \u001b[0;36mconfigure_windows\u001b[1;34m()\u001b[0m\n\u001b[0;32m     82\u001b[0m         \u001b[38;5;28;01mif\u001b[39;00m kfw_available():\n\u001b[0;32m     83\u001b[0m             \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m---> 85\u001b[0m \u001b[43merror_not_found\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+      "File \u001b[1;32mD:\\Common\\software\\anaconda\\envs\\algo_dev_env\\lib\\site-packages\\gssapi\\_win_config.py:49\u001b[0m, in \u001b[0;36merror_not_found\u001b[1;34m()\u001b[0m\n\u001b[0;32m     47\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21merror_not_found\u001b[39m() \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m     48\u001b[0m     \u001b[38;5;124;03m\"\"\"Raise an OSError detailing that KfW is missing and how to get it\"\"\"\u001b[39;00m\n\u001b[1;32m---> 49\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(\n\u001b[0;32m     50\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCould not find KfW installation. Please download and install \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m     51\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mthe 64bit Kerberos for Windows MSI from \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m and ensure the \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m     52\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbin\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m folder (\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m) is in your PATH.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m     53\u001b[0m         \u001b[38;5;241m%\u001b[39m (KFW_DL, KFW_BIN)\n\u001b[0;32m     54\u001b[0m     )\n",
+      "\u001b[1;31mOSError\u001b[0m: Could not find KfW installation. Please download and install the 64bit Kerberos for Windows MSI from https://web.mit.edu/KERBEROS/dist and ensure the 'bin' folder (C:\\Program Files\\MIT\\Kerberos\\bin) is in your PATH."
+     ]
+    }
+   ],
+   "source": [
+    "import phoenixdb"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "interpreter": {
+   "hash": "ac7555030399793291671316948dfc1cf0035da70681b2458d9e2645bf33bfe4"
+  },
+  "kernelspec": {
+   "display_name": "Python 3.8.12 ('algo_dev_env')",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.12"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}