pyglove 0.4.5.dev202501020808__tar.gz → 0.4.5.dev202501040808__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 (209) hide show
  1. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/PKG-INFO +1 -1
  2. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/__init__.py +6 -0
  3. pyglove-0.4.5.dev202501040808/pyglove/core/coding/__init__.py +26 -0
  4. pyglove-0.4.5.dev202501020808/pyglove/core/object_utils/codegen.py → pyglove-0.4.5.dev202501040808/pyglove/core/coding/function_generation.py +10 -4
  5. pyglove-0.4.5.dev202501020808/pyglove/core/object_utils/codegen_test.py → pyglove-0.4.5.dev202501040808/pyglove/core/coding/function_generation_test.py +5 -7
  6. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/__init__.py +0 -3
  7. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/object.py +2 -1
  8. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/callable_signature.py +4 -2
  9. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove.egg-info/PKG-INFO +1 -1
  10. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove.egg-info/SOURCES.txt +3 -2
  11. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/LICENSE +0 -0
  12. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/README.md +0 -0
  13. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/__init__.py +0 -0
  14. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/detouring/__init__.py +0 -0
  15. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/detouring/class_detour.py +0 -0
  16. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/detouring/class_detour_test.py +0 -0
  17. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/__init__.py +0 -0
  18. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/base.py +0 -0
  19. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/base_test.py +0 -0
  20. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/categorical.py +0 -0
  21. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/categorical_test.py +0 -0
  22. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/custom.py +0 -0
  23. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/custom_test.py +0 -0
  24. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/deduping.py +0 -0
  25. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/deduping_test.py +0 -0
  26. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/dna_generator.py +0 -0
  27. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/dna_generator_test.py +0 -0
  28. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/numerical.py +0 -0
  29. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/numerical_test.py +0 -0
  30. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/random.py +0 -0
  31. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/random_test.py +0 -0
  32. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/space.py +0 -0
  33. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/space_test.py +0 -0
  34. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/sweeping.py +0 -0
  35. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/geno/sweeping_test.py +0 -0
  36. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/__init__.py +0 -0
  37. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/base.py +0 -0
  38. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/categorical.py +0 -0
  39. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/categorical_test.py +0 -0
  40. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/custom.py +0 -0
  41. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/custom_test.py +0 -0
  42. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/derived.py +0 -0
  43. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/derived_test.py +0 -0
  44. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/dynamic_evaluation.py +0 -0
  45. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/dynamic_evaluation_test.py +0 -0
  46. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/evolvable.py +0 -0
  47. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/evolvable_test.py +0 -0
  48. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/iter.py +0 -0
  49. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/iter_test.py +0 -0
  50. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/numerical.py +0 -0
  51. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/numerical_test.py +0 -0
  52. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/object_template.py +0 -0
  53. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/hyper/object_template_test.py +0 -0
  54. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/io/__init__.py +0 -0
  55. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/io/file_system.py +0 -0
  56. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/io/file_system_test.py +0 -0
  57. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/io/sequence.py +0 -0
  58. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/io/sequence_test.py +0 -0
  59. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/logging.py +0 -0
  60. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/logging_test.py +0 -0
  61. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/common_traits.py +0 -0
  62. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/common_traits_test.py +0 -0
  63. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/docstr_utils.py +0 -0
  64. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/docstr_utils_test.py +0 -0
  65. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/error_utils.py +0 -0
  66. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/error_utils_test.py +0 -0
  67. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/formatting.py +0 -0
  68. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/formatting_test.py +0 -0
  69. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/hierarchical.py +0 -0
  70. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/hierarchical_test.py +0 -0
  71. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/json_conversion.py +0 -0
  72. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/json_conversion_test.py +0 -0
  73. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/missing.py +0 -0
  74. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/missing_test.py +0 -0
  75. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/thread_local.py +0 -0
  76. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/thread_local_test.py +0 -0
  77. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/timing.py +0 -0
  78. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/timing_test.py +0 -0
  79. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/value_location.py +0 -0
  80. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/object_utils/value_location_test.py +0 -0
  81. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/patching/__init__.py +0 -0
  82. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/patching/object_factory.py +0 -0
  83. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/patching/object_factory_test.py +0 -0
  84. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/patching/pattern_based.py +0 -0
  85. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/patching/pattern_based_test.py +0 -0
  86. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/patching/rule_based.py +0 -0
  87. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/patching/rule_based_test.py +0 -0
  88. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/__init__.py +0 -0
  89. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/base.py +0 -0
  90. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/base_test.py +0 -0
  91. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/boilerplate.py +0 -0
  92. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/boilerplate_test.py +0 -0
  93. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/class_wrapper.py +0 -0
  94. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/class_wrapper_test.py +0 -0
  95. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/compounding.py +0 -0
  96. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/compounding_test.py +0 -0
  97. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/dict.py +0 -0
  98. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/dict_test.py +0 -0
  99. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/diff.py +0 -0
  100. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/diff_test.py +0 -0
  101. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/flags.py +0 -0
  102. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/flags_test.py +0 -0
  103. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/functor.py +0 -0
  104. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/functor_test.py +0 -0
  105. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/inferred.py +0 -0
  106. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/inferred_test.py +0 -0
  107. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/list.py +0 -0
  108. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/list_test.py +0 -0
  109. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/object_test.py +0 -0
  110. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/origin.py +0 -0
  111. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/origin_test.py +0 -0
  112. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/pure_symbolic.py +0 -0
  113. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/ref.py +0 -0
  114. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/ref_test.py +0 -0
  115. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/symbolize.py +0 -0
  116. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/symbolic/symbolize_test.py +0 -0
  117. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/__init__.py +0 -0
  118. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/backend.py +0 -0
  119. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/backend_test.py +0 -0
  120. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/early_stopping.py +0 -0
  121. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/local_backend.py +0 -0
  122. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/protocols.py +0 -0
  123. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/protocols_test.py +0 -0
  124. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/sample.py +0 -0
  125. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/tuning/sample_test.py +0 -0
  126. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/__init__.py +0 -0
  127. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/annotated.py +0 -0
  128. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/annotated_test.py +0 -0
  129. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/annotation_conversion.py +0 -0
  130. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/annotation_conversion_test.py +0 -0
  131. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/callable_ext.py +0 -0
  132. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/callable_ext_test.py +0 -0
  133. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/callable_signature_test.py +0 -0
  134. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/class_schema.py +0 -0
  135. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/class_schema_test.py +0 -0
  136. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/custom_typing.py +0 -0
  137. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/inspect.py +0 -0
  138. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/inspect_test.py +0 -0
  139. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/key_specs.py +0 -0
  140. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/key_specs_test.py +0 -0
  141. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/pytype_support.py +0 -0
  142. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/type_conversion.py +0 -0
  143. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/type_conversion_test.py +0 -0
  144. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/typed_missing.py +0 -0
  145. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/typed_missing_test.py +0 -0
  146. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/value_specs.py +0 -0
  147. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/typing/value_specs_test.py +0 -0
  148. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/__init__.py +0 -0
  149. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/base.py +0 -0
  150. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/base_test.py +0 -0
  151. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/__init__.py +0 -0
  152. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/base.py +0 -0
  153. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/base_test.py +0 -0
  154. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/__init__.py +0 -0
  155. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/base.py +0 -0
  156. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/label.py +0 -0
  157. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/label_test.py +0 -0
  158. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/progress_bar.py +0 -0
  159. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/progress_bar_test.py +0 -0
  160. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/tab.py +0 -0
  161. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/tab_test.py +0 -0
  162. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/tooltip.py +0 -0
  163. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/controls/tooltip_test.py +0 -0
  164. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/tree_view.py +0 -0
  165. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/core/views/html/tree_view_test.py +0 -0
  166. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/__init__.py +0 -0
  167. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/early_stopping/__init__.py +0 -0
  168. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/early_stopping/base.py +0 -0
  169. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/early_stopping/base_test.py +0 -0
  170. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/early_stopping/step_wise.py +0 -0
  171. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/early_stopping/step_wise_test.py +0 -0
  172. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/__init__.py +0 -0
  173. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/base.py +0 -0
  174. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/base_test.py +0 -0
  175. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/hill_climb.py +0 -0
  176. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/hill_climb_test.py +0 -0
  177. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/mutators.py +0 -0
  178. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/mutators_test.py +0 -0
  179. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/neat.py +0 -0
  180. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/neat_test.py +0 -0
  181. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/nsga2.py +0 -0
  182. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/nsga2_test.py +0 -0
  183. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/recombinators.py +0 -0
  184. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/recombinators_test.py +0 -0
  185. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/regularized_evolution.py +0 -0
  186. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/regularized_evolution_test.py +0 -0
  187. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/selectors.py +0 -0
  188. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/selectors_test.py +0 -0
  189. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/where.py +0 -0
  190. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/evolution/where_test.py +0 -0
  191. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/mutfun/__init__.py +0 -0
  192. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/mutfun/base.py +0 -0
  193. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/mutfun/base_test.py +0 -0
  194. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/mutfun/basic_ops.py +0 -0
  195. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/mutfun/basic_ops_test.py +0 -0
  196. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/__init__.py +0 -0
  197. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/base.py +0 -0
  198. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/base_test.py +0 -0
  199. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/maths.py +0 -0
  200. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/maths_test.py +0 -0
  201. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/randoms.py +0 -0
  202. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/randoms_test.py +0 -0
  203. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/step_wise.py +0 -0
  204. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove/ext/scalars/step_wise_test.py +0 -0
  205. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove.egg-info/dependency_links.txt +0 -0
  206. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove.egg-info/requires.txt +0 -0
  207. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/pyglove.egg-info/top_level.txt +0 -0
  208. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/setup.cfg +0 -0
  209. {pyglove-0.4.5.dev202501020808 → pyglove-0.4.5.dev202501040808}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyglove
3
- Version: 0.4.5.dev202501020808
3
+ Version: 0.4.5.dev202501040808
4
4
  Summary: PyGlove: A library for manipulating Python objects.
5
5
  Home-page: https://github.com/google/pyglove
6
6
  Author: PyGlove Authors
@@ -323,6 +323,12 @@ views.html.controls = controls
323
323
 
324
324
  from pyglove.core import io
325
325
 
326
+ #
327
+ # Symbols from `coding` sub-module.
328
+ #
329
+ #
330
+
331
+ from pyglove.core import coding
326
332
 
327
333
  #
328
334
  # Symbols from `logging.py`.
@@ -0,0 +1,26 @@
1
+ # Copyright 2024 The PyGlove Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # pylint: disable=line-too-long
15
+ """Code generation utilities."""
16
+
17
+ # pylint: enable=line-too-long
18
+ # pylint: disable=g-bad-import-order
19
+ # pylint: disable=g-importing-member
20
+
21
+ from pyglove.core.coding.function_generation import NO_TYPE_ANNOTATION
22
+ from pyglove.core.coding.function_generation import make_function
23
+
24
+ # pylint: disable=line-too-long
25
+ # pylint: enable=g-bad-import-order
26
+ # pylint: enable=g-importing-member
@@ -11,10 +11,16 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- """Utilities for code generation."""
14
+ """Utilities for function generation."""
15
15
 
16
16
  from typing import Any, Dict, List, Optional
17
- from pyglove.core.object_utils.missing import MISSING_VALUE
17
+
18
+
19
+ class _NoTypeAnnotation:
20
+ """Placeholder for no type annotation."""
21
+
22
+
23
+ NO_TYPE_ANNOTATION = _NoTypeAnnotation()
18
24
 
19
25
 
20
26
  def make_function(
@@ -24,11 +30,11 @@ def make_function(
24
30
  *,
25
31
  exec_globals: Optional[Dict[str, Any]] = None,
26
32
  exec_locals: Optional[Dict[str, Any]] = None,
27
- return_type: Any = MISSING_VALUE):
33
+ return_type: Any = NO_TYPE_ANNOTATION):
28
34
  """Creates a function dynamically from source."""
29
35
  if exec_locals is None:
30
36
  exec_locals = {}
31
- if return_type != MISSING_VALUE:
37
+ if return_type != NO_TYPE_ANNOTATION:
32
38
  exec_locals['_return_type'] = return_type
33
39
  return_annotation = '->_return_type'
34
40
  else:
@@ -1,4 +1,4 @@
1
- # Copyright 2022 The PyGlove Authors
1
+ # Copyright 2024 The PyGlove Authors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -11,20 +11,18 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- """Tests for pyglove.object_utils.codegen."""
15
-
16
14
  import inspect
17
15
  import typing
18
16
  import unittest
19
17
 
20
- from pyglove.core.object_utils import codegen
18
+ from pyglove.core.coding import function_generation
21
19
 
22
20
 
23
21
  class MakeFunctionTest(unittest.TestCase):
24
- """Tests for codegen.make_function."""
22
+ """Tests for function_generation.make_function."""
25
23
 
26
24
  def test_make_function_with_type_annotations(self):
27
- func = codegen.make_function(
25
+ func = function_generation.make_function(
28
26
  'foo',
29
27
  ['x: typing.Optional[int]', 'y: int = 0'],
30
28
  ['return x + y'],
@@ -41,7 +39,7 @@ class MakeFunctionTest(unittest.TestCase):
41
39
  self.assertEqual(func(1, 2), 3)
42
40
 
43
41
  def test_make_function_without_type_annotations(self):
44
- func = codegen.make_function(
42
+ func = function_generation.make_function(
45
43
  'foo',
46
44
  ['x', 'y'],
47
45
  ['return x + y'])
@@ -126,9 +126,6 @@ from pyglove.core.object_utils.common_traits import Functor
126
126
  from pyglove.core.object_utils.common_traits import explicit_method_override
127
127
  from pyglove.core.object_utils.common_traits import ensure_explicit_method_override
128
128
 
129
- # Handling code generation.
130
- from pyglove.core.object_utils.codegen import make_function
131
-
132
129
  # Handling thread local values.
133
130
  from pyglove.core.object_utils.thread_local import thread_local_value_scope
134
131
  from pyglove.core.object_utils.thread_local import thread_local_has
@@ -19,6 +19,7 @@ import inspect
19
19
  import typing
20
20
  from typing import Any, Dict, Iterator, List, Optional, Sequence, Union
21
21
 
22
+ from pyglove.core import coding
22
23
  from pyglove.core import object_utils
23
24
  from pyglove.core import typing as pg_typing
24
25
  from pyglove.core.symbolic import base
@@ -504,7 +505,7 @@ class Object(base.Symbolic, metaclass=ObjectMeta):
504
505
  def _create_sym_attribute(cls, attr_name, field):
505
506
  """Customizable trait: template of single symbolic attribute."""
506
507
  return property(
507
- object_utils.make_function(
508
+ coding.make_function(
508
509
  attr_name,
509
510
  ['self'],
510
511
  [f"return self.sym_inferred('{attr_name}')"],
@@ -21,6 +21,7 @@ import types
21
21
  import typing
22
22
  from typing import Any, Callable, Dict, List, Optional, Union
23
23
 
24
+ from pyglove.core import coding
24
25
  from pyglove.core import object_utils
25
26
  from pyglove.core.typing import class_schema
26
27
  from pyglove.core.typing import key_specs as ks
@@ -753,14 +754,15 @@ class Signature(object_utils.Formattable):
753
754
  )
754
755
 
755
756
  # Generate function.
756
- fn = object_utils.make_function(
757
+ fn = coding.make_function(
757
758
  self.name,
758
759
  args=args,
759
760
  body=body,
760
761
  exec_globals=exec_globals,
761
762
  exec_locals=exec_locals,
762
763
  return_type=getattr(
763
- self.return_value, 'annotation', object_utils.MISSING_VALUE))
764
+ self.return_value, 'annotation', coding.NO_TYPE_ANNOTATION)
765
+ )
764
766
  fn.__module__ = self.module_name
765
767
  fn.__name__ = self.name
766
768
  fn.__qualname__ = self.qualname
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyglove
3
- Version: 0.4.5.dev202501020808
3
+ Version: 0.4.5.dev202501040808
4
4
  Summary: PyGlove: A library for manipulating Python objects.
5
5
  Home-page: https://github.com/google/pyglove
6
6
  Author: PyGlove Authors
@@ -10,6 +10,9 @@ pyglove.egg-info/top_level.txt
10
10
  pyglove/core/__init__.py
11
11
  pyglove/core/logging.py
12
12
  pyglove/core/logging_test.py
13
+ pyglove/core/coding/__init__.py
14
+ pyglove/core/coding/function_generation.py
15
+ pyglove/core/coding/function_generation_test.py
13
16
  pyglove/core/detouring/__init__.py
14
17
  pyglove/core/detouring/class_detour.py
15
18
  pyglove/core/detouring/class_detour_test.py
@@ -56,8 +59,6 @@ pyglove/core/io/file_system_test.py
56
59
  pyglove/core/io/sequence.py
57
60
  pyglove/core/io/sequence_test.py
58
61
  pyglove/core/object_utils/__init__.py
59
- pyglove/core/object_utils/codegen.py
60
- pyglove/core/object_utils/codegen_test.py
61
62
  pyglove/core/object_utils/common_traits.py
62
63
  pyglove/core/object_utils/common_traits_test.py
63
64
  pyglove/core/object_utils/docstr_utils.py