dataqe-framework 0.2.2__tar.gz → 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.
- {dataqe_framework-0.2.2/src/dataqe_framework.egg-info → dataqe_framework-0.2.4}/PKG-INFO +1 -1
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/pyproject.toml +1 -1
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/__init__.py +1 -1
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/cli.py +4 -2
- dataqe_framework-0.2.4/src/dataqe_framework/connectors/__init__.py +28 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/connectors/bigquery_connector.py +1 -1
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/connectors/mysql_connector.py +1 -1
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4/src/dataqe_framework.egg-info}/PKG-INFO +1 -1
- dataqe_framework-0.2.2/src/dataqe_framework/connectors/__init__.py +0 -23
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/LICENSE.txt +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/MANIFEST.in +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/README.md +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/setup.cfg +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/bigquery_client.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/comparison/comparator.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/comparison/threshold.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/config.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/config_loader.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/connectors/base_connector.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/credentials_extractor.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/executor.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/preprocessor.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/reporter.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/validator.py +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/SOURCES.txt +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/dependency_links.txt +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/entry_points.txt +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/requires.txt +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/top_level.txt +0 -0
- {dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/tests/test_validator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dataqe-framework
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Reusable Data Validation Framework for data migration, ETL validation, and cross-database reconciliation
|
|
5
5
|
Author-email: Khadar Shaik <khadarmohiddin.shaik@apree.health>
|
|
6
6
|
Project-URL: Homepage, https://github.com/ShaikKhadarmohiddin/dataqe-framework
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dataqe-framework"
|
|
7
7
|
dynamic = []
|
|
8
|
-
version = "0.2.
|
|
8
|
+
version = "0.2.4"
|
|
9
9
|
description = "Reusable Data Validation Framework for data migration, ETL validation, and cross-database reconciliation"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.9"
|
|
@@ -6,6 +6,7 @@ import shutil
|
|
|
6
6
|
from datetime import datetime
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
|
|
9
|
+
from dataqe_framework import __version__
|
|
9
10
|
from dataqe_framework.executor import ValidationExecutor
|
|
10
11
|
from dataqe_framework.config_loader import load_config
|
|
11
12
|
from dataqe_framework.reporter import (
|
|
@@ -74,8 +75,9 @@ def clean_output_directory(output_dir: str) -> None:
|
|
|
74
75
|
|
|
75
76
|
|
|
76
77
|
def main():
|
|
77
|
-
parser = argparse.ArgumentParser()
|
|
78
|
-
parser.add_argument("--
|
|
78
|
+
parser = argparse.ArgumentParser(description="DataQE Framework - Data Quality and Validation Tool")
|
|
79
|
+
parser.add_argument("--version", action="version", version=f"%(prog)s {__version__}")
|
|
80
|
+
parser.add_argument("--config", required=True, help="Path to configuration YAML file")
|
|
79
81
|
args = parser.parse_args()
|
|
80
82
|
|
|
81
83
|
# Get output directory, create if needed, and clean it
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
def get_connector(config: dict):
|
|
2
|
+
|
|
3
|
+
db_type = config.get("database_type")
|
|
4
|
+
|
|
5
|
+
if db_type == "mysql":
|
|
6
|
+
from .mysql_connector import MySQLConnector
|
|
7
|
+
mysql_cfg = config["mysql"]
|
|
8
|
+
|
|
9
|
+
# Check if k8_db_details is provided for Kubernetes deployment
|
|
10
|
+
if "k8_db_details" in mysql_cfg:
|
|
11
|
+
return MySQLConnector(k8_db_details=mysql_cfg["k8_db_details"])
|
|
12
|
+
else:
|
|
13
|
+
return MySQLConnector(
|
|
14
|
+
host=mysql_cfg["host"],
|
|
15
|
+
port=mysql_cfg.get("port", 3306),
|
|
16
|
+
user=mysql_cfg["user"],
|
|
17
|
+
password=mysql_cfg["password"],
|
|
18
|
+
database=mysql_cfg["database"]
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
elif db_type == "gcpbq":
|
|
22
|
+
from .bigquery_connector import BigQueryConnector
|
|
23
|
+
gcp_cfg = config.get("gcp", {})
|
|
24
|
+
return BigQueryConnector(gcp_cfg)
|
|
25
|
+
|
|
26
|
+
else:
|
|
27
|
+
raise ValueError(f"Unsupported database type: {db_type}")
|
|
28
|
+
|
|
@@ -46,7 +46,7 @@ class BigQueryConnector(BaseConnector):
|
|
|
46
46
|
|
|
47
47
|
if "k8_db_details" in config and config_details is not None:
|
|
48
48
|
try:
|
|
49
|
-
project, db_name = config.get("k8_db_details").split('_')
|
|
49
|
+
project, db_name = config.get("k8_db_details").split('_', 1)
|
|
50
50
|
self.project_id = config_details.data['bigquery'][project]['datasets'][db_name]['project_id']
|
|
51
51
|
self.credentials_path = os.path.join(os.getcwd(), self.project_id.replace('-', '_') + '_sftp_client_secrets.json')
|
|
52
52
|
self.extract_service_account(config_details, self.credentials_path, self.service_account_name)
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/connectors/mysql_connector.py
RENAMED
|
@@ -24,7 +24,7 @@ class MySQLConnector(BaseConnector):
|
|
|
24
24
|
logger.info(f"Locally MySQLConnector initialized for host={host}, database={database}")
|
|
25
25
|
else:
|
|
26
26
|
try:
|
|
27
|
-
project, db_name = k8_db_details.split('_')
|
|
27
|
+
project, db_name = k8_db_details.split('_', 1)
|
|
28
28
|
self.host = config_details.data['mysql'][project][db_name]['db_host']
|
|
29
29
|
self.port = config_details.data['mysql'][project][db_name]['db_port']
|
|
30
30
|
self.user = config_details.data['mysql'][project][db_name]['db_user']
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dataqe-framework
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Reusable Data Validation Framework for data migration, ETL validation, and cross-database reconciliation
|
|
5
5
|
Author-email: Khadar Shaik <khadarmohiddin.shaik@apree.health>
|
|
6
6
|
Project-URL: Homepage, https://github.com/ShaikKhadarmohiddin/dataqe-framework
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
def get_connector(config: dict):
|
|
2
|
-
|
|
3
|
-
db_type = config.get("database_type")
|
|
4
|
-
|
|
5
|
-
if db_type == "mysql":
|
|
6
|
-
from .mysql_connector import MySQLConnector
|
|
7
|
-
mysql_cfg = config["mysql"]
|
|
8
|
-
|
|
9
|
-
return MySQLConnector(
|
|
10
|
-
host=mysql_cfg["host"],
|
|
11
|
-
port=mysql_cfg.get("port", 3306),
|
|
12
|
-
user=mysql_cfg["user"],
|
|
13
|
-
password=mysql_cfg["password"],
|
|
14
|
-
database=mysql_cfg["database"]
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
elif db_type == "gcpbq":
|
|
18
|
-
from .bigquery_connector import BigQueryConnector
|
|
19
|
-
return BigQueryConnector(config["gcp"])
|
|
20
|
-
|
|
21
|
-
else:
|
|
22
|
-
raise ValueError(f"Unsupported database type: {db_type}")
|
|
23
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/comparison/comparator.py
RENAMED
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/comparison/threshold.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/connectors/base_connector.py
RENAMED
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework/credentials_extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/requires.txt
RENAMED
|
File without changes
|
{dataqe_framework-0.2.2 → dataqe_framework-0.2.4}/src/dataqe_framework.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|