satisfactoscript 0.6.1__tar.gz → 0.6.2__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 (32) hide show
  1. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/PKG-INFO +1 -1
  2. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/pyproject.toml +1 -1
  3. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/core/core.py +17 -6
  4. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript.egg-info/PKG-INFO +1 -1
  5. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/README.md +0 -0
  6. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/setup.cfg +0 -0
  7. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/__init__.py +0 -0
  8. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/agentic/__init__.py +0 -0
  9. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/agentic/agent.py +0 -0
  10. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/core/__init__.py +0 -0
  11. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/core/config.py +0 -0
  12. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/core/loaders.py +0 -0
  13. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/core/registry.py +0 -0
  14. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/registry.py +0 -0
  15. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/semantic/__init__.py +0 -0
  16. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/semantic/semantic.py +0 -0
  17. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript/utils.py +0 -0
  18. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript.egg-info/SOURCES.txt +0 -0
  19. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript.egg-info/dependency_links.txt +0 -0
  20. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript.egg-info/requires.txt +0 -0
  21. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/src/satisfactoscript.egg-info/top_level.txt +0 -0
  22. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_config.py +0 -0
  23. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_core.py +0 -0
  24. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_core_connect_patch.py +0 -0
  25. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_core_env_detection.py +0 -0
  26. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_core_join.py +0 -0
  27. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_core_username.py +0 -0
  28. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_dummy.py +0 -0
  29. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_loaders.py +0 -0
  30. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_registry.py +0 -0
  31. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_registry_import_paths.py +0 -0
  32. {satisfactoscript-0.6.1 → satisfactoscript-0.6.2}/tests/test_utils_safe_columns.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: satisfactoscript
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: An Enterprise-Ready, Declarative Data Engineering Framework for Databricks Lakehouse.
5
5
  Author: julhouba
6
6
  Classifier: Programming Language :: Python :: 3
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "satisfactoscript"
7
- version = "0.6.1"
7
+ version = "0.6.2"
8
8
  description = "An Enterprise-Ready, Declarative Data Engineering Framework for Databricks Lakehouse."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -546,10 +546,15 @@ class SatisfactoEngine:
546
546
  fqn (str): The Fully Qualified Name of the target table.
547
547
  label (str): A label to display in the logging output.
548
548
  """
549
- if df.isEmpty():
550
- print(f" -> [Write] WARNING: Dataframe for {label} is empty. Skipping write.")
551
- return
552
-
549
+ try:
550
+ if df.isEmpty():
551
+ print(f" -> [Write] WARNING: Dataframe for {label} is empty. Skipping write.")
552
+ return
553
+ except Exception:
554
+ # isEmpty() triggers collect() via gRPC, which fails with UserContext on
555
+ # Databricks Connect v2 locally. Skip the check and proceed with the write.
556
+ pass
557
+
553
558
  print(f" -> [Write] Writing data to: {fqn} ...")
554
559
  df.write.format("delta").mode("overwrite").option("overwriteSchema", "true").saveAsTable(fqn)
555
560
  print(f" -> [Success] Table {label} written successfully.")
@@ -846,5 +851,11 @@ class SatisfactoEngine:
846
851
  print(f" -> [Success] Table {target_table_name} optimized successfully.")
847
852
 
848
853
  except Exception as e:
849
- print(f" -> [Error] Optimization failed on {full_target_fqn}: {e}")
850
- raise e
854
+ # OPTIMIZE is a Databricks DDL command with no SDK REST equivalent.
855
+ # When running locally via Databricks Connect v2, gRPC DDL calls fail with
856
+ # 'Missing required field UserContext'. In that case, skip silently.
857
+ if "UserContext" in str(e) or "user_context" in str(e).lower():
858
+ print(f" -> ⚠️ [Optimize] Skipped: OPTIMIZE is not supported via Databricks Connect v2 locally.")
859
+ else:
860
+ print(f" -> ❌ [Error] Optimization failed on {full_target_fqn}: {e}")
861
+ raise e
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: satisfactoscript
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: An Enterprise-Ready, Declarative Data Engineering Framework for Databricks Lakehouse.
5
5
  Author: julhouba
6
6
  Classifier: Programming Language :: Python :: 3