mostlyai-engine 1.5.3__tar.gz → 1.5.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 (51) hide show
  1. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/PKG-INFO +1 -1
  2. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/__init__.py +1 -1
  3. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_common.py +2 -1
  4. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/pyproject.toml +1 -1
  5. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/.gitignore +0 -0
  6. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/LICENSE +0 -0
  7. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/README.md +0 -0
  8. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_dtypes.py +0 -0
  9. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/__init__.py +0 -0
  10. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/language/__init__.py +0 -0
  11. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/language/categorical.py +0 -0
  12. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/language/datetime.py +0 -0
  13. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/language/numeric.py +0 -0
  14. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/language/text.py +0 -0
  15. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/tabular/__init__.py +0 -0
  16. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/tabular/categorical.py +0 -0
  17. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/tabular/character.py +0 -0
  18. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/tabular/datetime.py +0 -0
  19. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/tabular/itt.py +0 -0
  20. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/tabular/lat_long.py +0 -0
  21. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_encoding_types/tabular/numeric.py +0 -0
  22. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/__init__.py +0 -0
  23. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/common.py +0 -0
  24. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/encoding.py +0 -0
  25. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/engine/__init__.py +0 -0
  26. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/engine/base.py +0 -0
  27. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/engine/hf_engine.py +0 -0
  28. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/engine/vllm_engine.py +0 -0
  29. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/generation.py +0 -0
  30. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/lstm.py +0 -0
  31. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/tokenizer_utils.py +0 -0
  32. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/training.py +0 -0
  33. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_language/xgrammar_utils.py +0 -0
  34. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_memory.py +0 -0
  35. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_tabular/__init__.py +0 -0
  36. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_tabular/argn.py +0 -0
  37. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_tabular/common.py +0 -0
  38. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_tabular/encoding.py +0 -0
  39. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_tabular/fairness.py +0 -0
  40. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_tabular/generation.py +0 -0
  41. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_tabular/training.py +0 -0
  42. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_training_utils.py +0 -0
  43. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/_workspace.py +0 -0
  44. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/analysis.py +0 -0
  45. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/domain.py +0 -0
  46. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/encoding.py +0 -0
  47. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/generation.py +0 -0
  48. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/logging.py +0 -0
  49. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/random_state.py +0 -0
  50. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/splitting.py +0 -0
  51. {mostlyai_engine-1.5.3 → mostlyai_engine-1.5.4}/mostlyai/engine/training.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mostlyai-engine
3
- Version: 1.5.3
3
+ Version: 1.5.4
4
4
  Summary: Synthetic Data Engine
5
5
  Project-URL: homepage, https://github.com/mostly-ai/mostlyai-engine
6
6
  Project-URL: repository, https://github.com/mostly-ai/mostlyai-engine
@@ -22,7 +22,7 @@ from mostlyai.engine.splitting import split
22
22
  from mostlyai.engine.training import train
23
23
 
24
24
  __all__ = ["split", "analyze", "encode", "train", "generate", "init_logging", "set_random_state"]
25
- __version__ = "1.5.3"
25
+ __version__ = "1.5.4"
26
26
 
27
27
  # suppress specific warning related to os.fork() in multi-threaded processes
28
28
  warnings.filterwarnings("ignore", category=DeprecationWarning, message=".*multi-threaded.*fork.*")
@@ -864,6 +864,7 @@ def dp_non_rare(value_counts: dict[str, int], epsilon: float, threshold: int = 5
864
864
  noisy_counts = np.clip(np.array(list(value_counts.values())) + noise, 0, None).astype(int)
865
865
  for i, cat in enumerate(value_counts):
866
866
  value_counts[cat] = noisy_counts[i]
867
+ # NOTE: total_counts can be 0 in the edge case when the column only has null values
867
868
  total_counts = sum(value_counts.values())
868
869
 
869
870
  # 2. Collect all categories whose noisy count >= threshold
@@ -871,7 +872,7 @@ def dp_non_rare(value_counts: dict[str, int], epsilon: float, threshold: int = 5
871
872
 
872
873
  # 3. Compute the non-rare ratio
873
874
  noisy_total_counts = sum(selected.values())
874
- non_rare_ratio = noisy_total_counts / total_counts
875
+ non_rare_ratio = noisy_total_counts / total_counts if total_counts > 0 else 0
875
876
 
876
877
  return list(selected.keys()), non_rare_ratio
877
878
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyai-engine"
3
- version = "1.5.3"
3
+ version = "1.5.4"
4
4
  description = "Synthetic Data Engine"
5
5
  authors = [{ name = "MOSTLY AI", email = "dev@mostly.ai" }]
6
6
  requires-python = ">=3.10"
File without changes