clickzetta-semantic-model-generator 1.0.10__tar.gz → 1.0.11__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 (38) hide show
  1. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/PKG-INFO +1 -1
  2. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/pyproject.toml +1 -1
  3. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/clickzetta_utils/clickzetta_connector.py +34 -3
  4. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/LICENSE +0 -0
  5. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/README.md +0 -0
  6. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/__init__.py +0 -0
  7. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/clickzetta_utils/env_vars.py +0 -0
  8. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/clickzetta_utils/utils.py +0 -0
  9. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/data_processing/__init__.py +0 -0
  10. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/data_processing/cte_utils.py +0 -0
  11. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/data_processing/cte_utils_test.py +0 -0
  12. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/data_processing/data_types.py +0 -0
  13. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/data_processing/proto_utils.py +0 -0
  14. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/generate_model.py +0 -0
  15. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/llm/__init__.py +0 -0
  16. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/llm/dashscope_client.py +0 -0
  17. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/llm/enrichment.py +0 -0
  18. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/llm/progress_tracker.py +0 -0
  19. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/output_models/.keep +0 -0
  20. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/protos/semantic_model.proto +0 -0
  21. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/protos/semantic_model_pb2.py +0 -0
  22. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/protos/semantic_model_pb2.pyi +0 -0
  23. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/relationships/__init__.py +0 -0
  24. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/relationships/discovery.py +0 -0
  25. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/clickzetta_connector_test.py +0 -0
  26. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/cte_utils_test.py +0 -0
  27. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/generate_model_classification_test.py +0 -0
  28. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/llm_enrichment_test.py +0 -0
  29. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/relationship_discovery_test.py +0 -0
  30. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/relationships_filters_test.py +0 -0
  31. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/samples/validate_yamls.py +0 -0
  32. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/utils_test.py +0 -0
  33. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/validate_model_test.py +0 -0
  34. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/tests/yaml_to_semantic_model_test.py +0 -0
  35. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/validate/context_length.py +0 -0
  36. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/validate/keywords.py +0 -0
  37. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/validate/schema.py +0 -0
  38. {clickzetta_semantic_model_generator-1.0.10 → clickzetta_semantic_model_generator-1.0.11}/semantic_model_generator/validate_model.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: clickzetta-semantic-model-generator
3
- Version: 1.0.10
3
+ Version: 1.0.11
4
4
  Summary: Curate a Semantic Model for ClickZetta Lakehouse
5
5
  License: Apache Software License; BSD License
6
6
  Author: qililiang
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "clickzetta-semantic-model-generator"
3
- version = "1.0.10"
3
+ version = "1.0.11"
4
4
  description = "Curate a Semantic Model for ClickZetta Lakehouse"
5
5
  authors = ["qililiang <qililiang@clickzetta.com>"]
6
6
  license = "Apache Software License; BSD License"
@@ -495,16 +495,41 @@ def _fetch_columns_via_show(
495
495
  *(part for part in (catalog, schema_token, table_token) if part)
496
496
  )
497
497
  query = f"SHOW COLUMNS IN {qualified_table}"
498
+ df_source = "SHOW COLUMNS"
498
499
  try:
499
500
  df = session.sql(query).to_pandas()
500
501
  except Exception as exc:
501
502
  logger.debug(
502
503
  "SHOW COLUMNS fallback failed for {}: {}", qualified_table, exc
503
504
  )
504
- continue
505
+ df = pd.DataFrame()
506
+ if df.empty:
507
+ describe_query = f"DESCRIBE TABLE {qualified_table}"
508
+ try:
509
+ describe_df = session.sql(describe_query).to_pandas()
510
+ except Exception as exc:
511
+ logger.debug(
512
+ "DESCRIBE TABLE fallback failed for {}: {}", qualified_table, exc
513
+ )
514
+ describe_df = pd.DataFrame()
515
+ if not describe_df.empty:
516
+ df_source = "DESCRIBE TABLE"
517
+ df = describe_df
505
518
  if df.empty:
506
519
  continue
507
520
  df.columns = [str(col).upper() for col in df.columns]
521
+ if df_source == "DESCRIBE TABLE":
522
+ if "KIND" in df.columns:
523
+ df = df[df["KIND"].astype(str).str.upper() == "COLUMN"]
524
+ rename_map = {}
525
+ if "NAME" in df.columns:
526
+ rename_map["NAME"] = "COLUMN_NAME"
527
+ if "TYPE" in df.columns:
528
+ rename_map["TYPE"] = "DATA_TYPE"
529
+ if rename_map:
530
+ df = df.rename(columns=rename_map)
531
+ if df.empty:
532
+ continue
508
533
  schema_col = next(
509
534
  (col for col in ("TABLE_SCHEMA", "SCHEMA_NAME") if col in df.columns), None
510
535
  )
@@ -527,8 +552,14 @@ def _fetch_columns_via_show(
527
552
  )
528
553
 
529
554
  normalized = pd.DataFrame()
530
- normalized[_TABLE_SCHEMA_COL] = df[schema_col] if schema_col else table_schema
531
- normalized[_TABLE_NAME_COL] = df[table_col] if table_col else table_name
555
+ normalized[_TABLE_SCHEMA_COL] = (
556
+ df[schema_col]
557
+ if schema_col
558
+ else (schema_token or table_schema or "")
559
+ )
560
+ normalized[_TABLE_NAME_COL] = (
561
+ df[table_col] if table_col else table_token
562
+ )
532
563
  normalized[_COLUMN_NAME_COL] = (
533
564
  df[column_col] if column_col else df.index.astype(str)
534
565
  )