clickzetta-semantic-model-generator 1.0.11__tar.gz → 1.0.12__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.11 → clickzetta_semantic_model_generator-1.0.12}/PKG-INFO +1 -1
  2. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/pyproject.toml +1 -1
  3. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/clickzetta_utils/clickzetta_connector.py +39 -19
  4. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/LICENSE +0 -0
  5. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/README.md +0 -0
  6. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/__init__.py +0 -0
  7. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/clickzetta_utils/env_vars.py +0 -0
  8. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/clickzetta_utils/utils.py +0 -0
  9. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/data_processing/__init__.py +0 -0
  10. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/data_processing/cte_utils.py +0 -0
  11. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/data_processing/cte_utils_test.py +0 -0
  12. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/data_processing/data_types.py +0 -0
  13. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/data_processing/proto_utils.py +0 -0
  14. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/generate_model.py +0 -0
  15. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/llm/__init__.py +0 -0
  16. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/llm/dashscope_client.py +0 -0
  17. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/llm/enrichment.py +0 -0
  18. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/llm/progress_tracker.py +0 -0
  19. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/output_models/.keep +0 -0
  20. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/protos/semantic_model.proto +0 -0
  21. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/protos/semantic_model_pb2.py +0 -0
  22. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/protos/semantic_model_pb2.pyi +0 -0
  23. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/relationships/__init__.py +0 -0
  24. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/relationships/discovery.py +0 -0
  25. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/clickzetta_connector_test.py +0 -0
  26. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/cte_utils_test.py +0 -0
  27. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/generate_model_classification_test.py +0 -0
  28. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/llm_enrichment_test.py +0 -0
  29. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/relationship_discovery_test.py +0 -0
  30. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/relationships_filters_test.py +0 -0
  31. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/samples/validate_yamls.py +0 -0
  32. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/utils_test.py +0 -0
  33. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/validate_model_test.py +0 -0
  34. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/tests/yaml_to_semantic_model_test.py +0 -0
  35. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/validate/context_length.py +0 -0
  36. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/validate/keywords.py +0 -0
  37. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/semantic_model_generator/validate/schema.py +0 -0
  38. {clickzetta_semantic_model_generator-1.0.11 → clickzetta_semantic_model_generator-1.0.12}/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.11
3
+ Version: 1.0.12
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.11"
3
+ version = "1.0.12"
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"
@@ -491,33 +491,52 @@ def _fetch_columns_via_show(
491
491
  table_token = str(table_name).strip()
492
492
  if not table_token:
493
493
  continue
494
- qualified_table = join_quoted_identifiers(
494
+
495
+ identifier_candidates: List[str] = []
496
+ fully_qualified = join_quoted_identifiers(
495
497
  *(part for part in (catalog, schema_token, table_token) if part)
496
498
  )
497
- query = f"SHOW COLUMNS IN {qualified_table}"
498
- df_source = "SHOW COLUMNS"
499
- try:
500
- df = session.sql(query).to_pandas()
501
- except Exception as exc:
502
- logger.debug(
503
- "SHOW COLUMNS fallback failed for {}: {}", qualified_table, exc
504
- )
505
- df = pd.DataFrame()
506
- if df.empty:
507
- describe_query = f"DESCRIBE TABLE {qualified_table}"
499
+ if fully_qualified:
500
+ identifier_candidates.append(fully_qualified)
501
+ schema_qualified = (
502
+ join_quoted_identifiers(schema_token, table_token)
503
+ if schema_token
504
+ else ""
505
+ )
506
+ if schema_qualified:
507
+ identifier_candidates.append(schema_qualified)
508
+ bare_identifier = join_quoted_identifiers(table_token)
509
+ if bare_identifier:
510
+ identifier_candidates.append(bare_identifier)
511
+
512
+ df = pd.DataFrame()
513
+ df_source = ""
514
+ for identifier in identifier_candidates:
515
+ query = f"SHOW COLUMNS IN {identifier}"
508
516
  try:
509
- describe_df = session.sql(describe_query).to_pandas()
517
+ df = session.sql(query).to_pandas()
518
+ df_source = "SHOW COLUMNS"
510
519
  except Exception as exc:
511
520
  logger.debug(
512
- "DESCRIBE TABLE fallback failed for {}: {}", qualified_table, exc
521
+ "SHOW COLUMNS fallback failed for {}: {}", identifier, exc
513
522
  )
514
- describe_df = pd.DataFrame()
515
- if not describe_df.empty:
516
- df_source = "DESCRIBE TABLE"
517
- df = describe_df
523
+ df = pd.DataFrame()
524
+ if df.empty:
525
+ describe_query = f"DESCRIBE TABLE {identifier}"
526
+ try:
527
+ describe_df = session.sql(describe_query).to_pandas()
528
+ except Exception as exc:
529
+ logger.debug(
530
+ "DESCRIBE TABLE fallback failed for {}: {}", identifier, exc
531
+ )
532
+ describe_df = pd.DataFrame()
533
+ if not describe_df.empty:
534
+ df = describe_df
535
+ df_source = "DESCRIBE TABLE"
536
+ if not df.empty:
537
+ break
518
538
  if df.empty:
519
539
  continue
520
- df.columns = [str(col).upper() for col in df.columns]
521
540
  if df_source == "DESCRIBE TABLE":
522
541
  if "KIND" in df.columns:
523
542
  df = df[df["KIND"].astype(str).str.upper() == "COLUMN"]
@@ -530,6 +549,7 @@ def _fetch_columns_via_show(
530
549
  df = df.rename(columns=rename_map)
531
550
  if df.empty:
532
551
  continue
552
+ df.columns = [str(col).upper() for col in df.columns]
533
553
  schema_col = next(
534
554
  (col for col in ("TABLE_SCHEMA", "SCHEMA_NAME") if col in df.columns), None
535
555
  )