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.
@@ -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,2 @@
1
+ recursive-exclude src *.py
2
+ recursive-include src *__init__.py
@@ -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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,8 @@
1
+ from .mySQLDBCtrl import CLASS_mySQLDBCtrl
2
+ from .mySQLxJsonLIB import CLASS_mySQLxJson
3
+ from .mySQLNetSSH import CLASS_mySQLNetSSH
4
+
5
+ __all__ = ["CLASS_mySQLDBCtrl",
6
+ "CLASS_mySQLxJson",
7
+ "CLASS_mySQLNetSSH"
8
+ ]
@@ -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,4 @@
1
+ pymysql
2
+ sshtunnel
3
+ ulid-py
4
+ paramiko