orange3-data-helpers 0.2.4__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.
Files changed (36) hide show
  1. orange3_data_helpers-0.2.4/LICENSE +0 -0
  2. orange3_data_helpers-0.2.4/MANIFEST.in +5 -0
  3. orange3_data_helpers-0.2.4/PKG-INFO +36 -0
  4. orange3_data_helpers-0.2.4/README.md +4 -0
  5. orange3_data_helpers-0.2.4/orange3_data_helpers.egg-info/PKG-INFO +36 -0
  6. orange3_data_helpers-0.2.4/orange3_data_helpers.egg-info/SOURCES.txt +34 -0
  7. orange3_data_helpers-0.2.4/orange3_data_helpers.egg-info/dependency_links.txt +1 -0
  8. orange3_data_helpers-0.2.4/orange3_data_helpers.egg-info/entry_points.txt +5 -0
  9. orange3_data_helpers-0.2.4/orange3_data_helpers.egg-info/requires.txt +22 -0
  10. orange3_data_helpers-0.2.4/orange3_data_helpers.egg-info/top_level.txt +1 -0
  11. orange3_data_helpers-0.2.4/orangecontrib/__init__.py +3 -0
  12. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/__init__.py +30 -0
  13. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/utils/driver_installer.py +35 -0
  14. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/__init__.py +3 -0
  15. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/addon_icon.png +0 -0
  16. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/ai_insight.png +0 -0
  17. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/data_overview.png +0 -0
  18. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/db_query.png +0 -0
  19. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/get_data_api.png +0 -0
  20. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/query_loader.png +0 -0
  21. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/save_data.png +0 -0
  22. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/select_row.png +0 -0
  23. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/icons/table_structure.png +0 -0
  24. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_data_overview.py +550 -0
  25. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_data_selected.py +380 -0
  26. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_data_structure.py +373 -0
  27. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_db_query.py +459 -0
  28. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_db_restore.py +1819 -0
  29. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_db_type_inspector.py +689 -0
  30. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_join_data.py +369 -0
  31. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_query_loader.py +612 -0
  32. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_query_table.py +408 -0
  33. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_save_big.py +585 -0
  34. orange3_data_helpers-0.2.4/orangecontrib/datahelpers/widgets/ow_table_pattern_browser.py +458 -0
  35. orange3_data_helpers-0.2.4/pyproject.toml +56 -0
  36. orange3_data_helpers-0.2.4/setup.cfg +4 -0
File without changes
@@ -0,0 +1,5 @@
1
+ include README.md
2
+ include LICENSE
3
+ recursive-include orangecontrib/datahelpers/icons *.png
4
+ recursive-include orangecontrib/datahelpers/widgets/icons *.svg
5
+
@@ -0,0 +1,36 @@
1
+ Metadata-Version: 2.4
2
+ Name: orange3-data-helpers
3
+ Version: 0.2.4
4
+ Summary: Data Helpers – Add-on Orange untuk Database Administrator: koneksi, schema, size, query.
5
+ Author-email: Devi Ardiana <deviardn@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/deviardn/orange3-data-helpers
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.9
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: orange3>=3.36.0
15
+ Requires-Dist: pandas>=1.5.0
16
+ Requires-Dist: numpy>=1.22.0
17
+ Requires-Dist: sqlalchemy>=2.0
18
+ Requires-Dist: PyQt5>=5.15
19
+ Requires-Dist: PyQtWebEngine>=5.15
20
+ Requires-Dist: PyYAML>=6.0
21
+ Provides-Extra: postgresql
22
+ Requires-Dist: psycopg2-binary>=2.9; extra == "postgresql"
23
+ Provides-Extra: mysql
24
+ Requires-Dist: pymysql>=1.0; extra == "mysql"
25
+ Provides-Extra: mssql
26
+ Requires-Dist: pyodbc>=4.0; extra == "mssql"
27
+ Provides-Extra: clickhouse
28
+ Requires-Dist: clickhouse-connect>=0.7; extra == "clickhouse"
29
+ Provides-Extra: oracle
30
+ Requires-Dist: cx-Oracle>=8.3; extra == "oracle"
31
+ Dynamic: license-file
32
+
33
+ ## 📦 Orange3 Data Helpers
34
+
35
+ ---
36
+ Copyright (c) 2025 BPK RI
@@ -0,0 +1,4 @@
1
+ ## 📦 Orange3 Data Helpers
2
+
3
+ ---
4
+ Copyright (c) 2025 BPK RI
@@ -0,0 +1,36 @@
1
+ Metadata-Version: 2.4
2
+ Name: orange3-data-helpers
3
+ Version: 0.2.4
4
+ Summary: Data Helpers – Add-on Orange untuk Database Administrator: koneksi, schema, size, query.
5
+ Author-email: Devi Ardiana <deviardn@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/deviardn/orange3-data-helpers
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.9
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: orange3>=3.36.0
15
+ Requires-Dist: pandas>=1.5.0
16
+ Requires-Dist: numpy>=1.22.0
17
+ Requires-Dist: sqlalchemy>=2.0
18
+ Requires-Dist: PyQt5>=5.15
19
+ Requires-Dist: PyQtWebEngine>=5.15
20
+ Requires-Dist: PyYAML>=6.0
21
+ Provides-Extra: postgresql
22
+ Requires-Dist: psycopg2-binary>=2.9; extra == "postgresql"
23
+ Provides-Extra: mysql
24
+ Requires-Dist: pymysql>=1.0; extra == "mysql"
25
+ Provides-Extra: mssql
26
+ Requires-Dist: pyodbc>=4.0; extra == "mssql"
27
+ Provides-Extra: clickhouse
28
+ Requires-Dist: clickhouse-connect>=0.7; extra == "clickhouse"
29
+ Provides-Extra: oracle
30
+ Requires-Dist: cx-Oracle>=8.3; extra == "oracle"
31
+ Dynamic: license-file
32
+
33
+ ## 📦 Orange3 Data Helpers
34
+
35
+ ---
36
+ Copyright (c) 2025 BPK RI
@@ -0,0 +1,34 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ orange3_data_helpers.egg-info/PKG-INFO
6
+ orange3_data_helpers.egg-info/SOURCES.txt
7
+ orange3_data_helpers.egg-info/dependency_links.txt
8
+ orange3_data_helpers.egg-info/entry_points.txt
9
+ orange3_data_helpers.egg-info/requires.txt
10
+ orange3_data_helpers.egg-info/top_level.txt
11
+ orangecontrib/__init__.py
12
+ orangecontrib/datahelpers/__init__.py
13
+ orangecontrib/datahelpers/utils/driver_installer.py
14
+ orangecontrib/datahelpers/widgets/__init__.py
15
+ orangecontrib/datahelpers/widgets/ow_data_overview.py
16
+ orangecontrib/datahelpers/widgets/ow_data_selected.py
17
+ orangecontrib/datahelpers/widgets/ow_data_structure.py
18
+ orangecontrib/datahelpers/widgets/ow_db_query.py
19
+ orangecontrib/datahelpers/widgets/ow_db_restore.py
20
+ orangecontrib/datahelpers/widgets/ow_db_type_inspector.py
21
+ orangecontrib/datahelpers/widgets/ow_join_data.py
22
+ orangecontrib/datahelpers/widgets/ow_query_loader.py
23
+ orangecontrib/datahelpers/widgets/ow_query_table.py
24
+ orangecontrib/datahelpers/widgets/ow_save_big.py
25
+ orangecontrib/datahelpers/widgets/ow_table_pattern_browser.py
26
+ orangecontrib/datahelpers/widgets/icons/addon_icon.png
27
+ orangecontrib/datahelpers/widgets/icons/ai_insight.png
28
+ orangecontrib/datahelpers/widgets/icons/data_overview.png
29
+ orangecontrib/datahelpers/widgets/icons/db_query.png
30
+ orangecontrib/datahelpers/widgets/icons/get_data_api.png
31
+ orangecontrib/datahelpers/widgets/icons/query_loader.png
32
+ orangecontrib/datahelpers/widgets/icons/save_data.png
33
+ orangecontrib/datahelpers/widgets/icons/select_row.png
34
+ orangecontrib/datahelpers/widgets/icons/table_structure.png
@@ -0,0 +1,5 @@
1
+ [orange.addons]
2
+ Data Helpers = orangecontrib.datahelpers
3
+
4
+ [orange.widgets]
5
+ Data Helpers = orangecontrib.datahelpers.widgets
@@ -0,0 +1,22 @@
1
+ orange3>=3.36.0
2
+ pandas>=1.5.0
3
+ numpy>=1.22.0
4
+ sqlalchemy>=2.0
5
+ PyQt5>=5.15
6
+ PyQtWebEngine>=5.15
7
+ PyYAML>=6.0
8
+
9
+ [clickhouse]
10
+ clickhouse-connect>=0.7
11
+
12
+ [mssql]
13
+ pyodbc>=4.0
14
+
15
+ [mysql]
16
+ pymysql>=1.0
17
+
18
+ [oracle]
19
+ cx-Oracle>=8.3
20
+
21
+ [postgresql]
22
+ psycopg2-binary>=2.9
@@ -0,0 +1,3 @@
1
+ # orangecontrib/__init__.py
2
+ from pkgutil import extend_path # type: ignore
3
+ __path__ = extend_path(__path__, __name__)
@@ -0,0 +1,30 @@
1
+ from importlib.metadata import version, PackageNotFoundError
2
+
3
+ try:
4
+ __version__ = version("orange3-data-helpers")
5
+ except PackageNotFoundError:
6
+ __version__ = "0.0.1"
7
+
8
+ NAME = "Data Helpers"
9
+ DESCRIPTION = "Widget untuk koneksi DB, query, struktur, dan ekspor data besar."
10
+ BACKGROUND = "#f6612d"
11
+ ICON = "icons/addon_icon.png"
12
+
13
+ import warnings
14
+
15
+ # Suppress FutureWarning dari pandas soal downcasting .fillna
16
+ warnings.filterwarnings(
17
+ "ignore",
18
+ message="Downcasting object dtype arrays on .fillna",
19
+ category=FutureWarning,
20
+ )
21
+
22
+ # Suppress UserWarning ketika pandas tidak bisa infer format datetime
23
+ warnings.filterwarnings(
24
+ "ignore",
25
+ message="Could not infer format, so each element will be parsed individually",
26
+ category=UserWarning,
27
+ )
28
+
29
+
30
+
@@ -0,0 +1,35 @@
1
+ import importlib.util
2
+ import subprocess
3
+ import sys
4
+ from typing import Tuple, Optional
5
+
6
+ DRIVER_MATRIX = {
7
+ "PostgreSQL": ("psycopg2", "psycopg2-binary"),
8
+ "MySQL (PyMySQL)": ("pymysql", "pymysql"),
9
+ "SQLite": ("sqlite3", None),
10
+ "SQL Server (pyodbc)": ("pyodbc", "pyodbc"), # butuh ODBC driver OS
11
+ "ClickHouse": ("clickhouse_connect", "clickhouse-connect"),
12
+ }
13
+
14
+ def is_installed(module_name: str) -> bool:
15
+ return importlib.util.find_spec(module_name) is not None
16
+
17
+ def pip_install(pkg: Optional[str]) -> Tuple[bool, str]:
18
+ if not pkg:
19
+ return True, "No pip package required."
20
+ proc = subprocess.run(
21
+ [sys.executable, "-m", "pip", "install", pkg],
22
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True
23
+ )
24
+ return proc.returncode == 0, proc.stdout
25
+
26
+ def ensure_driver(db_kind: str) -> Tuple[bool, str, Optional[str]]:
27
+ if db_kind not in DRIVER_MATRIX:
28
+ return False, f"Unsupported DB type: {db_kind}", None
29
+ module_name, pip_pkg = DRIVER_MATRIX[db_kind]
30
+ if is_installed(module_name):
31
+ return True, f"Driver {module_name} is available.", module_name
32
+ ok, log = pip_install(pip_pkg)
33
+ if ok and is_installed(module_name):
34
+ return True, f"Installed {pip_pkg}.\n{log}", module_name
35
+ return False, f"Failed installing {pip_pkg}.\n{log}", None
@@ -0,0 +1,3 @@
1
+
2
+ BACKGROUND = "#fdbc73"
3
+ ICON = "icons/addon_icon.png"