mySQLDBCtrlAPI 1.2512.403__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mysqldbctrlapi-1.2512.403/LICENSE +20 -0
- mysqldbctrlapi-1.2512.403/MANIFEST.in +2 -0
- mysqldbctrlapi-1.2512.403/PKG-INFO +84 -0
- mysqldbctrlapi-1.2512.403/README.md +48 -0
- mysqldbctrlapi-1.2512.403/pyproject.toml +30 -0
- mysqldbctrlapi-1.2512.403/setup.cfg +4 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/__init__.py +8 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/mySQLDBCtrl.cp310-win_amd64.pyd +0 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/mySQLDBCtrl.pyi +68 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/mySQLNetSSH.cp310-win_amd64.pyd +0 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/mySQLNetSSH.pyi +15 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/mySQLxJsonLIB.cp310-win_amd64.pyd +0 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/mySQLxJsonLIB.pyi +26 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLDBCtrl.pyi +68 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLNetSSH.pyi +15 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLxJsonLIB.pyi +26 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI.egg-info/PKG-INFO +84 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI.egg-info/SOURCES.txt +20 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI.egg-info/dependency_links.txt +1 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI.egg-info/requires.txt +4 -0
- mysqldbctrlapi-1.2512.403/src/mySQLDBCtrlAPI.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2025 James Lin
|
|
2
|
+
|
|
3
|
+
All rights reserved.
|
|
4
|
+
|
|
5
|
+
Permission is granted for **personal, educational, or non-commercial use only**.
|
|
6
|
+
You **may NOT**:
|
|
7
|
+
|
|
8
|
+
1. Sell or otherwise commercially exploit this software or any part of it.
|
|
9
|
+
2. Reproduce, distribute, or sublicense this software for commercial purposes.
|
|
10
|
+
3. Modify or create derivative works for commercial purposes without explicit written permission from the copyright holder.
|
|
11
|
+
|
|
12
|
+
You **may**:
|
|
13
|
+
|
|
14
|
+
- Use the software for personal learning, research, or internal company evaluation (non-commercial).
|
|
15
|
+
- Share the software with attribution to the original author, as long as it is not for commercial gain.
|
|
16
|
+
|
|
17
|
+
**Disclaimer:**
|
|
18
|
+
This software is provided "AS IS", without any warranty of any kind, either expressed or implied,
|
|
19
|
+
including but not limited to the warranties of merchantability, fitness for a particular purpose, or non-infringement.
|
|
20
|
+
In no event shall the author be liable for any claim, damages, or other liability arising from, out of, or in connection with the software or its use.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mySQLDBCtrlAPI
|
|
3
|
+
Version: 1.2512.403
|
|
4
|
+
Summary: mySQLDBCtrlAPI Python package
|
|
5
|
+
Author-email: James Lin <tylin123@ms27.hinet.net>
|
|
6
|
+
License: Copyright (c) 2025 James Lin
|
|
7
|
+
|
|
8
|
+
All rights reserved.
|
|
9
|
+
|
|
10
|
+
Permission is granted for **personal, educational, or non-commercial use only**.
|
|
11
|
+
You **may NOT**:
|
|
12
|
+
|
|
13
|
+
1. Sell or otherwise commercially exploit this software or any part of it.
|
|
14
|
+
2. Reproduce, distribute, or sublicense this software for commercial purposes.
|
|
15
|
+
3. Modify or create derivative works for commercial purposes without explicit written permission from the copyright holder.
|
|
16
|
+
|
|
17
|
+
You **may**:
|
|
18
|
+
|
|
19
|
+
- Use the software for personal learning, research, or internal company evaluation (non-commercial).
|
|
20
|
+
- Share the software with attribution to the original author, as long as it is not for commercial gain.
|
|
21
|
+
|
|
22
|
+
**Disclaimer:**
|
|
23
|
+
This software is provided "AS IS", without any warranty of any kind, either expressed or implied,
|
|
24
|
+
including but not limited to the warranties of merchantability, fitness for a particular purpose, or non-infringement.
|
|
25
|
+
In no event shall the author be liable for any claim, damages, or other liability arising from, out of, or in connection with the software or its use.
|
|
26
|
+
|
|
27
|
+
Project-URL: Homepage, https://mis.gotech.biz
|
|
28
|
+
Requires-Python: >=3.10
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
Requires-Dist: pymysql
|
|
32
|
+
Requires-Dist: sshtunnel
|
|
33
|
+
Requires-Dist: ulid-py
|
|
34
|
+
Requires-Dist: paramiko
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
|
|
37
|
+
#mySQLDBCtrlAPI
|
|
38
|
+
|
|
39
|
+
## History of version
|
|
40
|
+
Version 1.2512.0403: 2025/12/04<BR>
|
|
41
|
+
Fixed ssh tunnel service thread fault.
|
|
42
|
+
|
|
43
|
+
Version 1.2512.0401: 2025/12/04<BR>
|
|
44
|
+
Add Advance ssh tunnel service (ver2.0) package.
|
|
45
|
+
|
|
46
|
+
Version 1.2512.0302: 2025/12/03<BR>
|
|
47
|
+
Add ssh tunnel service package.
|
|
48
|
+
|
|
49
|
+
Version 1.2512.0301: 2025/12/03<BR>
|
|
50
|
+
Add CLASS_mySQLxJson Library for convert json data into mysql each other.
|
|
51
|
+
|
|
52
|
+
Version 1.2512.0101: 2025/12/01<BR>
|
|
53
|
+
Fixed error CUF_GetServerDateTime(...) when error on fetch data from dataset
|
|
54
|
+
|
|
55
|
+
Version 1.2511.28: 2025/11/28<BR>
|
|
56
|
+
Fixed error CUF_GET_Blob(...) will disturbe cursor position.
|
|
57
|
+
|
|
58
|
+
Version 1.2511.27: 2025/11/27<BR>
|
|
59
|
+
Fixed error CUF_DB_Eof(...) and CUF_Eof(...) --> When DataSet was empty.
|
|
60
|
+
|
|
61
|
+
Version 1.2511.26: 2025/11/26<BR>
|
|
62
|
+
Fixed CUF_DB_OpenSQL(...) return failure when Null data.
|
|
63
|
+
|
|
64
|
+
Version 1.2511.06: 2025/11/25<BR>
|
|
65
|
+
Fixed Eof() bugs.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
Version 1.2511.06: 2025/11/06<BR>
|
|
69
|
+
Fixed utf8 and big5(latin) encode bugs.
|
|
70
|
+
|
|
71
|
+
Version 1.2510.23: 2025/10/22<BR>
|
|
72
|
+
Fixed version bugs.
|
|
73
|
+
|
|
74
|
+
Version 1.2510.22: 2025/10/22<BR>
|
|
75
|
+
1.Add string decode method (translage utf8 charset -> utf-8)
|
|
76
|
+
2.Add Eof() procedure
|
|
77
|
+
3.Fixed CUF_DB_ExecSQL() and CUF_DB_OpenSQL() bugs.
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
Version 0.1.2: 2025/10/09<BR>
|
|
81
|
+
Add string decode method (translage big5 charset -> utf-8)
|
|
82
|
+
|
|
83
|
+
Version 0.1.1: 2025/09/19<BR>
|
|
84
|
+
Fixed some bugs.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#mySQLDBCtrlAPI
|
|
2
|
+
|
|
3
|
+
## History of version
|
|
4
|
+
Version 1.2512.0403: 2025/12/04<BR>
|
|
5
|
+
Fixed ssh tunnel service thread fault.
|
|
6
|
+
|
|
7
|
+
Version 1.2512.0401: 2025/12/04<BR>
|
|
8
|
+
Add Advance ssh tunnel service (ver2.0) package.
|
|
9
|
+
|
|
10
|
+
Version 1.2512.0302: 2025/12/03<BR>
|
|
11
|
+
Add ssh tunnel service package.
|
|
12
|
+
|
|
13
|
+
Version 1.2512.0301: 2025/12/03<BR>
|
|
14
|
+
Add CLASS_mySQLxJson Library for convert json data into mysql each other.
|
|
15
|
+
|
|
16
|
+
Version 1.2512.0101: 2025/12/01<BR>
|
|
17
|
+
Fixed error CUF_GetServerDateTime(...) when error on fetch data from dataset
|
|
18
|
+
|
|
19
|
+
Version 1.2511.28: 2025/11/28<BR>
|
|
20
|
+
Fixed error CUF_GET_Blob(...) will disturbe cursor position.
|
|
21
|
+
|
|
22
|
+
Version 1.2511.27: 2025/11/27<BR>
|
|
23
|
+
Fixed error CUF_DB_Eof(...) and CUF_Eof(...) --> When DataSet was empty.
|
|
24
|
+
|
|
25
|
+
Version 1.2511.26: 2025/11/26<BR>
|
|
26
|
+
Fixed CUF_DB_OpenSQL(...) return failure when Null data.
|
|
27
|
+
|
|
28
|
+
Version 1.2511.06: 2025/11/25<BR>
|
|
29
|
+
Fixed Eof() bugs.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
Version 1.2511.06: 2025/11/06<BR>
|
|
33
|
+
Fixed utf8 and big5(latin) encode bugs.
|
|
34
|
+
|
|
35
|
+
Version 1.2510.23: 2025/10/22<BR>
|
|
36
|
+
Fixed version bugs.
|
|
37
|
+
|
|
38
|
+
Version 1.2510.22: 2025/10/22<BR>
|
|
39
|
+
1.Add string decode method (translage utf8 charset -> utf-8)
|
|
40
|
+
2.Add Eof() procedure
|
|
41
|
+
3.Fixed CUF_DB_ExecSQL() and CUF_DB_OpenSQL() bugs.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
Version 0.1.2: 2025/10/09<BR>
|
|
45
|
+
Add string decode method (translage big5 charset -> utf-8)
|
|
46
|
+
|
|
47
|
+
Version 0.1.1: 2025/09/19<BR>
|
|
48
|
+
Fixed some bugs.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "mySQLDBCtrlAPI"
|
|
7
|
+
version = "1.2512.0403"
|
|
8
|
+
requires-python = ">=3.10"
|
|
9
|
+
description = "mySQLDBCtrlAPI Python package"
|
|
10
|
+
authors = [
|
|
11
|
+
{ name="James Lin", email="tylin123@ms27.hinet.net" }
|
|
12
|
+
]
|
|
13
|
+
readme = "README.md"
|
|
14
|
+
license = { file = "LICENSE" }
|
|
15
|
+
dependencies = [
|
|
16
|
+
"pymysql",
|
|
17
|
+
"sshtunnel",
|
|
18
|
+
"ulid-py",
|
|
19
|
+
"paramiko"
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[project.urls]
|
|
23
|
+
Homepage = "https://mis.gotech.biz"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
[tool.setuptools.packages.find]
|
|
27
|
+
where = ["src"]
|
|
28
|
+
|
|
29
|
+
[tool.setuptools.package-data]
|
|
30
|
+
mySQLDBCtrlAPI = ["*.pyd"]
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
|
|
3
|
+
class ENUM_DB_CHARSET:
|
|
4
|
+
cE_DBCS_ascii: Incomplete
|
|
5
|
+
cE_DBCS_big5: Incomplete
|
|
6
|
+
cE_DBCS_binary: Incomplete
|
|
7
|
+
cE_DBCS_cp1250: Incomplete
|
|
8
|
+
cE_DBCS_gb2312: Incomplete
|
|
9
|
+
cE_DBCS_gbk: Incomplete
|
|
10
|
+
cE_DBCS_latin1: Incomplete
|
|
11
|
+
cE_DBCS_latin2: Incomplete
|
|
12
|
+
cE_DBCS_latin5: Incomplete
|
|
13
|
+
cE_DBCS_latin7: Incomplete
|
|
14
|
+
cE_DBCS_utf16: Incomplete
|
|
15
|
+
cE_DBCS_utf16le: Incomplete
|
|
16
|
+
cE_DBCS_utf32: Incomplete
|
|
17
|
+
cE_DBCS_utf8mb3: Incomplete
|
|
18
|
+
cE_DBCS_utf8mb4: int
|
|
19
|
+
def __init__(self) -> None: ...
|
|
20
|
+
|
|
21
|
+
class STRU_mySQLDBInfo:
|
|
22
|
+
ms_DB_HostIP: str
|
|
23
|
+
mi_DB_Port: int
|
|
24
|
+
ms_DB_Name: str
|
|
25
|
+
ms_User: str
|
|
26
|
+
ms_Password: str
|
|
27
|
+
def __init__(self) -> None: ...
|
|
28
|
+
|
|
29
|
+
class CLASS_mySQLDBCtrl:
|
|
30
|
+
CUms_DB_HostIP: str
|
|
31
|
+
CUmi_DB_Port: int
|
|
32
|
+
CUms_DB_Name: str
|
|
33
|
+
CUms_User: str
|
|
34
|
+
CUms_Password: str
|
|
35
|
+
CVmi_qryRECCNT: int
|
|
36
|
+
CVmsa_DBCS: Incomplete
|
|
37
|
+
def __init__(self) -> None: ...
|
|
38
|
+
def CUF_SET_Charset(self, PmE_DB_Charset) -> None: ...
|
|
39
|
+
CUobj_Conn: Incomplete
|
|
40
|
+
def CUF_OpenConnection_DBCS(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, Pms_User, Pms_Password, PmE_DB_CHARSET): ...
|
|
41
|
+
def CUF_OpenConnection(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, Pms_User, Pms_Password): ...
|
|
42
|
+
def CUF_DB_OpenConn(self, Pstru_mySQLDBInfo): ...
|
|
43
|
+
def CUF_DB_OpenSQL(self, Pobj_Connection, Pms_SQL): ...
|
|
44
|
+
def CUF_DB_OpenSQL_utf8(self, Pobj_Connection, Pms_SQL): ...
|
|
45
|
+
def CUF_DB_FETCH(self, Pobj_Query): ...
|
|
46
|
+
def CUF_DB_Next(self, Pobj_Query): ...
|
|
47
|
+
def CUF_Next(self, Pobj_Query): ...
|
|
48
|
+
def CUF_DB_ExecSQL(self, Pobj_Connection, Pms_SQL): ...
|
|
49
|
+
def CUF_DB_ExecSQL_utf8(self, Pobj_Connection, Pms_SQL): ...
|
|
50
|
+
def CUF_DB_RecordCount(self, Pobj_Query): ...
|
|
51
|
+
def CUF_DB_RECCOUNT(self, Pobj_Query): ...
|
|
52
|
+
def CUF_DB_Eof(self, Pobj_Query): ...
|
|
53
|
+
def CUF_Eof(self, Pobj_Query): ...
|
|
54
|
+
def CUF_str_utf8(self, Pobj_DataSet): ...
|
|
55
|
+
def CUF_utf8(self, Pobj_DataSet): ...
|
|
56
|
+
def CUF_str_big5(self, Pobj_DataSet): ...
|
|
57
|
+
def CUF_big5(self, Pobj_DataSet): ...
|
|
58
|
+
def CUF_GetBlobField(self, Pobj_DataSet, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
59
|
+
def CUF_GET_Blob(self, Pobj_Query, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
60
|
+
def CUF_SetBlobField(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
61
|
+
def CUF_SET_BLOB(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
62
|
+
def CUF_GetServerDateTime(self, Pms_SEPCHAR_DATE, Pms_SEPCHAR_TIME, Pms_SEPERATOR): ...
|
|
63
|
+
def CUF_GetServerDateTime1(self, PmB_DELIMITER): ...
|
|
64
|
+
def CUF_GetServerDateTime2(self): ...
|
|
65
|
+
def CUF_GetServerDate(self, Pms_DELIMITER): ...
|
|
66
|
+
def CUF_GetServerTime(self, Pms_DELIMITER): ...
|
|
67
|
+
def CUF_AddTime(self, Pms_DateTime, Pmi_TimeSecond): ...
|
|
68
|
+
def CUF_AddTime_Current(self, Pmi_TimeSecond): ...
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
|
|
3
|
+
GLOBAL_SSH_INSTANCE: Incomplete
|
|
4
|
+
|
|
5
|
+
class CLASS_mySQLNetSSH:
|
|
6
|
+
ssh: Incomplete
|
|
7
|
+
forward_threads: Incomplete
|
|
8
|
+
running: bool
|
|
9
|
+
def __init__(self) -> None: ...
|
|
10
|
+
def CUF_SSH_Connect(self, host, port, user, password=None, pkey_path=None, pkey_pass=None): ...
|
|
11
|
+
def CUF_AddPortForward(self, local_host, local_port, remote_host, remote_port) -> None: ...
|
|
12
|
+
def CUF_Tunnel_Start(self): ...
|
|
13
|
+
def CUF_Tunnel_Stop(self) -> None: ...
|
|
14
|
+
def CUF_IsAlive(self): ...
|
|
15
|
+
def CUF_ReleaseAll(self) -> None: ...
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from pymysql.connections import Connection as Connection
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
class CLASS_mySQLxJson:
|
|
5
|
+
CVobj_ZConn: Connection
|
|
6
|
+
USE_ID_MODE: str
|
|
7
|
+
CHARSET: str
|
|
8
|
+
def __init__(self, Pobj_ZConn: Connection, charset: str = 'utf8mb4') -> None: ...
|
|
9
|
+
def CUF_str_big5(self, Pobj_DataSet): ...
|
|
10
|
+
def CUF_str_utf8(self, Pobj_DataSet): ...
|
|
11
|
+
def gen_table_name(self, base: str) -> str: ...
|
|
12
|
+
def infer_mysql_type(self, value: Any) -> str: ...
|
|
13
|
+
def create_table(self, table_name: str, sample_row: dict[str, Any]): ...
|
|
14
|
+
def insert_rows(self, table: str, rows: list[dict[str, Any]]): ...
|
|
15
|
+
def process_value(self, parent_table: str, key: str, value: Any) -> Any: ...
|
|
16
|
+
def CUF_json_to_mysql(self, table_name: str, json_data: dict | list): ...
|
|
17
|
+
def load_table_rows(self, table_name: str) -> list[dict[str, Any]]: ...
|
|
18
|
+
def restore_value(self, value: Any) -> Any: ...
|
|
19
|
+
def restore_row(self, row: dict[str, Any]) -> dict[str, Any]: ...
|
|
20
|
+
def CUF_mysql_to_json(self, table_name: str) -> dict | list: ...
|
|
21
|
+
def CUF_Export_json(self, Pobj_json_DataSet: dict | list, Pmi_Ident: int = 2): ...
|
|
22
|
+
def CUF_RelDict_Build(self, Pms_Json_TableName: str, Pms_Dict_TableName: str = '', PmB_IsMemTable: bool = True): ...
|
|
23
|
+
def CUF_RelDict_Remove(self, Pms_Dict_TableName: str): ...
|
|
24
|
+
def CUF_RelDict_FindTable(self, Pms_Json_TableName: str, Pms_KeyName: str, Pms_Dict_TableName: str = ''): ...
|
|
25
|
+
def CUF_RelDict_FindKeys(self, Pms_Json_TableName: str, Pms_Dict_TableName: str = ''): ...
|
|
26
|
+
def CUF_RemoveJsonTable(self, table_name: str): ...
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
|
|
3
|
+
class ENUM_DB_CHARSET:
|
|
4
|
+
cE_DBCS_ascii: Incomplete
|
|
5
|
+
cE_DBCS_big5: Incomplete
|
|
6
|
+
cE_DBCS_binary: Incomplete
|
|
7
|
+
cE_DBCS_cp1250: Incomplete
|
|
8
|
+
cE_DBCS_gb2312: Incomplete
|
|
9
|
+
cE_DBCS_gbk: Incomplete
|
|
10
|
+
cE_DBCS_latin1: Incomplete
|
|
11
|
+
cE_DBCS_latin2: Incomplete
|
|
12
|
+
cE_DBCS_latin5: Incomplete
|
|
13
|
+
cE_DBCS_latin7: Incomplete
|
|
14
|
+
cE_DBCS_utf16: Incomplete
|
|
15
|
+
cE_DBCS_utf16le: Incomplete
|
|
16
|
+
cE_DBCS_utf32: Incomplete
|
|
17
|
+
cE_DBCS_utf8mb3: Incomplete
|
|
18
|
+
cE_DBCS_utf8mb4: int
|
|
19
|
+
def __init__(self) -> None: ...
|
|
20
|
+
|
|
21
|
+
class STRU_mySQLDBInfo:
|
|
22
|
+
ms_DB_HostIP: str
|
|
23
|
+
mi_DB_Port: int
|
|
24
|
+
ms_DB_Name: str
|
|
25
|
+
ms_User: str
|
|
26
|
+
ms_Password: str
|
|
27
|
+
def __init__(self) -> None: ...
|
|
28
|
+
|
|
29
|
+
class CLASS_mySQLDBCtrl:
|
|
30
|
+
CUms_DB_HostIP: str
|
|
31
|
+
CUmi_DB_Port: int
|
|
32
|
+
CUms_DB_Name: str
|
|
33
|
+
CUms_User: str
|
|
34
|
+
CUms_Password: str
|
|
35
|
+
CVmi_qryRECCNT: int
|
|
36
|
+
CVmsa_DBCS: Incomplete
|
|
37
|
+
def __init__(self) -> None: ...
|
|
38
|
+
def CUF_SET_Charset(self, PmE_DB_Charset) -> None: ...
|
|
39
|
+
CUobj_Conn: Incomplete
|
|
40
|
+
def CUF_OpenConnection_DBCS(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, Pms_User, Pms_Password, PmE_DB_CHARSET): ...
|
|
41
|
+
def CUF_OpenConnection(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, Pms_User, Pms_Password): ...
|
|
42
|
+
def CUF_DB_OpenConn(self, Pstru_mySQLDBInfo): ...
|
|
43
|
+
def CUF_DB_OpenSQL(self, Pobj_Connection, Pms_SQL): ...
|
|
44
|
+
def CUF_DB_OpenSQL_utf8(self, Pobj_Connection, Pms_SQL): ...
|
|
45
|
+
def CUF_DB_FETCH(self, Pobj_Query): ...
|
|
46
|
+
def CUF_DB_Next(self, Pobj_Query): ...
|
|
47
|
+
def CUF_Next(self, Pobj_Query): ...
|
|
48
|
+
def CUF_DB_ExecSQL(self, Pobj_Connection, Pms_SQL): ...
|
|
49
|
+
def CUF_DB_ExecSQL_utf8(self, Pobj_Connection, Pms_SQL): ...
|
|
50
|
+
def CUF_DB_RecordCount(self, Pobj_Query): ...
|
|
51
|
+
def CUF_DB_RECCOUNT(self, Pobj_Query): ...
|
|
52
|
+
def CUF_DB_Eof(self, Pobj_Query): ...
|
|
53
|
+
def CUF_Eof(self, Pobj_Query): ...
|
|
54
|
+
def CUF_str_utf8(self, Pobj_DataSet): ...
|
|
55
|
+
def CUF_utf8(self, Pobj_DataSet): ...
|
|
56
|
+
def CUF_str_big5(self, Pobj_DataSet): ...
|
|
57
|
+
def CUF_big5(self, Pobj_DataSet): ...
|
|
58
|
+
def CUF_GetBlobField(self, Pobj_DataSet, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
59
|
+
def CUF_GET_Blob(self, Pobj_Query, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
60
|
+
def CUF_SetBlobField(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
61
|
+
def CUF_SET_BLOB(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
62
|
+
def CUF_GetServerDateTime(self, Pms_SEPCHAR_DATE, Pms_SEPCHAR_TIME, Pms_SEPERATOR): ...
|
|
63
|
+
def CUF_GetServerDateTime1(self, PmB_DELIMITER): ...
|
|
64
|
+
def CUF_GetServerDateTime2(self): ...
|
|
65
|
+
def CUF_GetServerDate(self, Pms_DELIMITER): ...
|
|
66
|
+
def CUF_GetServerTime(self, Pms_DELIMITER): ...
|
|
67
|
+
def CUF_AddTime(self, Pms_DateTime, Pmi_TimeSecond): ...
|
|
68
|
+
def CUF_AddTime_Current(self, Pmi_TimeSecond): ...
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
|
|
3
|
+
GLOBAL_SSH_INSTANCE: Incomplete
|
|
4
|
+
|
|
5
|
+
class CLASS_mySQLNetSSH:
|
|
6
|
+
ssh: Incomplete
|
|
7
|
+
forward_threads: Incomplete
|
|
8
|
+
running: bool
|
|
9
|
+
def __init__(self) -> None: ...
|
|
10
|
+
def CUF_SSH_Connect(self, host, port, user, password=None, pkey_path=None, pkey_pass=None): ...
|
|
11
|
+
def CUF_AddPortForward(self, local_host, local_port, remote_host, remote_port) -> None: ...
|
|
12
|
+
def CUF_Tunnel_Start(self): ...
|
|
13
|
+
def CUF_Tunnel_Stop(self) -> None: ...
|
|
14
|
+
def CUF_IsAlive(self): ...
|
|
15
|
+
def CUF_ReleaseAll(self) -> None: ...
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from pymysql.connections import Connection as Connection
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
class CLASS_mySQLxJson:
|
|
5
|
+
CVobj_ZConn: Connection
|
|
6
|
+
USE_ID_MODE: str
|
|
7
|
+
CHARSET: str
|
|
8
|
+
def __init__(self, Pobj_ZConn: Connection, charset: str = 'utf8mb4') -> None: ...
|
|
9
|
+
def CUF_str_big5(self, Pobj_DataSet): ...
|
|
10
|
+
def CUF_str_utf8(self, Pobj_DataSet): ...
|
|
11
|
+
def gen_table_name(self, base: str) -> str: ...
|
|
12
|
+
def infer_mysql_type(self, value: Any) -> str: ...
|
|
13
|
+
def create_table(self, table_name: str, sample_row: dict[str, Any]): ...
|
|
14
|
+
def insert_rows(self, table: str, rows: list[dict[str, Any]]): ...
|
|
15
|
+
def process_value(self, parent_table: str, key: str, value: Any) -> Any: ...
|
|
16
|
+
def CUF_json_to_mysql(self, table_name: str, json_data: dict | list): ...
|
|
17
|
+
def load_table_rows(self, table_name: str) -> list[dict[str, Any]]: ...
|
|
18
|
+
def restore_value(self, value: Any) -> Any: ...
|
|
19
|
+
def restore_row(self, row: dict[str, Any]) -> dict[str, Any]: ...
|
|
20
|
+
def CUF_mysql_to_json(self, table_name: str) -> dict | list: ...
|
|
21
|
+
def CUF_Export_json(self, Pobj_json_DataSet: dict | list, Pmi_Ident: int = 2): ...
|
|
22
|
+
def CUF_RelDict_Build(self, Pms_Json_TableName: str, Pms_Dict_TableName: str = '', PmB_IsMemTable: bool = True): ...
|
|
23
|
+
def CUF_RelDict_Remove(self, Pms_Dict_TableName: str): ...
|
|
24
|
+
def CUF_RelDict_FindTable(self, Pms_Json_TableName: str, Pms_KeyName: str, Pms_Dict_TableName: str = ''): ...
|
|
25
|
+
def CUF_RelDict_FindKeys(self, Pms_Json_TableName: str, Pms_Dict_TableName: str = ''): ...
|
|
26
|
+
def CUF_RemoveJsonTable(self, table_name: str): ...
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mySQLDBCtrlAPI
|
|
3
|
+
Version: 1.2512.403
|
|
4
|
+
Summary: mySQLDBCtrlAPI Python package
|
|
5
|
+
Author-email: James Lin <tylin123@ms27.hinet.net>
|
|
6
|
+
License: Copyright (c) 2025 James Lin
|
|
7
|
+
|
|
8
|
+
All rights reserved.
|
|
9
|
+
|
|
10
|
+
Permission is granted for **personal, educational, or non-commercial use only**.
|
|
11
|
+
You **may NOT**:
|
|
12
|
+
|
|
13
|
+
1. Sell or otherwise commercially exploit this software or any part of it.
|
|
14
|
+
2. Reproduce, distribute, or sublicense this software for commercial purposes.
|
|
15
|
+
3. Modify or create derivative works for commercial purposes without explicit written permission from the copyright holder.
|
|
16
|
+
|
|
17
|
+
You **may**:
|
|
18
|
+
|
|
19
|
+
- Use the software for personal learning, research, or internal company evaluation (non-commercial).
|
|
20
|
+
- Share the software with attribution to the original author, as long as it is not for commercial gain.
|
|
21
|
+
|
|
22
|
+
**Disclaimer:**
|
|
23
|
+
This software is provided "AS IS", without any warranty of any kind, either expressed or implied,
|
|
24
|
+
including but not limited to the warranties of merchantability, fitness for a particular purpose, or non-infringement.
|
|
25
|
+
In no event shall the author be liable for any claim, damages, or other liability arising from, out of, or in connection with the software or its use.
|
|
26
|
+
|
|
27
|
+
Project-URL: Homepage, https://mis.gotech.biz
|
|
28
|
+
Requires-Python: >=3.10
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
Requires-Dist: pymysql
|
|
32
|
+
Requires-Dist: sshtunnel
|
|
33
|
+
Requires-Dist: ulid-py
|
|
34
|
+
Requires-Dist: paramiko
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
|
|
37
|
+
#mySQLDBCtrlAPI
|
|
38
|
+
|
|
39
|
+
## History of version
|
|
40
|
+
Version 1.2512.0403: 2025/12/04<BR>
|
|
41
|
+
Fixed ssh tunnel service thread fault.
|
|
42
|
+
|
|
43
|
+
Version 1.2512.0401: 2025/12/04<BR>
|
|
44
|
+
Add Advance ssh tunnel service (ver2.0) package.
|
|
45
|
+
|
|
46
|
+
Version 1.2512.0302: 2025/12/03<BR>
|
|
47
|
+
Add ssh tunnel service package.
|
|
48
|
+
|
|
49
|
+
Version 1.2512.0301: 2025/12/03<BR>
|
|
50
|
+
Add CLASS_mySQLxJson Library for convert json data into mysql each other.
|
|
51
|
+
|
|
52
|
+
Version 1.2512.0101: 2025/12/01<BR>
|
|
53
|
+
Fixed error CUF_GetServerDateTime(...) when error on fetch data from dataset
|
|
54
|
+
|
|
55
|
+
Version 1.2511.28: 2025/11/28<BR>
|
|
56
|
+
Fixed error CUF_GET_Blob(...) will disturbe cursor position.
|
|
57
|
+
|
|
58
|
+
Version 1.2511.27: 2025/11/27<BR>
|
|
59
|
+
Fixed error CUF_DB_Eof(...) and CUF_Eof(...) --> When DataSet was empty.
|
|
60
|
+
|
|
61
|
+
Version 1.2511.26: 2025/11/26<BR>
|
|
62
|
+
Fixed CUF_DB_OpenSQL(...) return failure when Null data.
|
|
63
|
+
|
|
64
|
+
Version 1.2511.06: 2025/11/25<BR>
|
|
65
|
+
Fixed Eof() bugs.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
Version 1.2511.06: 2025/11/06<BR>
|
|
69
|
+
Fixed utf8 and big5(latin) encode bugs.
|
|
70
|
+
|
|
71
|
+
Version 1.2510.23: 2025/10/22<BR>
|
|
72
|
+
Fixed version bugs.
|
|
73
|
+
|
|
74
|
+
Version 1.2510.22: 2025/10/22<BR>
|
|
75
|
+
1.Add string decode method (translage utf8 charset -> utf-8)
|
|
76
|
+
2.Add Eof() procedure
|
|
77
|
+
3.Fixed CUF_DB_ExecSQL() and CUF_DB_OpenSQL() bugs.
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
Version 0.1.2: 2025/10/09<BR>
|
|
81
|
+
Add string decode method (translage big5 charset -> utf-8)
|
|
82
|
+
|
|
83
|
+
Version 0.1.1: 2025/09/19<BR>
|
|
84
|
+
Fixed some bugs.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
setup.cfg
|
|
6
|
+
src/mySQLDBCtrlAPI/__init__.py
|
|
7
|
+
src/mySQLDBCtrlAPI/mySQLDBCtrl.cp310-win_amd64.pyd
|
|
8
|
+
src/mySQLDBCtrlAPI/mySQLDBCtrl.pyi
|
|
9
|
+
src/mySQLDBCtrlAPI/mySQLNetSSH.cp310-win_amd64.pyd
|
|
10
|
+
src/mySQLDBCtrlAPI/mySQLNetSSH.pyi
|
|
11
|
+
src/mySQLDBCtrlAPI/mySQLxJsonLIB.cp310-win_amd64.pyd
|
|
12
|
+
src/mySQLDBCtrlAPI/mySQLxJsonLIB.pyi
|
|
13
|
+
src/mySQLDBCtrlAPI.egg-info/PKG-INFO
|
|
14
|
+
src/mySQLDBCtrlAPI.egg-info/SOURCES.txt
|
|
15
|
+
src/mySQLDBCtrlAPI.egg-info/dependency_links.txt
|
|
16
|
+
src/mySQLDBCtrlAPI.egg-info/requires.txt
|
|
17
|
+
src/mySQLDBCtrlAPI.egg-info/top_level.txt
|
|
18
|
+
src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLDBCtrl.pyi
|
|
19
|
+
src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLNetSSH.pyi
|
|
20
|
+
src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLxJsonLIB.pyi
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mySQLDBCtrlAPI
|