pyglove 0.4.5.dev202411132359__py3-none-any.whl → 0.4.5.dev202501250807__py3-none-any.whl
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.
- pyglove/core/__init__.py +40 -21
- pyglove/core/coding/__init__.py +42 -0
- pyglove/core/coding/errors.py +111 -0
- pyglove/core/coding/errors_test.py +98 -0
- pyglove/core/coding/execution.py +312 -0
- pyglove/core/coding/execution_test.py +333 -0
- pyglove/core/{object_utils/codegen.py → coding/function_generation.py} +10 -4
- pyglove/core/{object_utils/codegen_test.py → coding/function_generation_test.py} +5 -7
- pyglove/core/coding/parsing.py +153 -0
- pyglove/core/coding/parsing_test.py +150 -0
- pyglove/core/coding/permissions.py +100 -0
- pyglove/core/coding/permissions_test.py +93 -0
- pyglove/core/geno/base.py +53 -38
- pyglove/core/geno/base_test.py +2 -4
- pyglove/core/geno/categorical.py +36 -27
- pyglove/core/geno/custom.py +18 -15
- pyglove/core/geno/numerical.py +19 -16
- pyglove/core/geno/space.py +3 -4
- pyglove/core/hyper/base.py +6 -6
- pyglove/core/hyper/categorical.py +91 -52
- pyglove/core/hyper/custom.py +7 -7
- pyglove/core/hyper/custom_test.py +9 -10
- pyglove/core/hyper/derived.py +30 -22
- pyglove/core/hyper/derived_test.py +3 -5
- pyglove/core/hyper/dynamic_evaluation.py +3 -4
- pyglove/core/hyper/evolvable.py +57 -46
- pyglove/core/hyper/numerical.py +48 -24
- pyglove/core/hyper/numerical_test.py +9 -9
- pyglove/core/hyper/object_template.py +58 -46
- pyglove/core/logging_test.py +0 -2
- pyglove/core/patching/object_factory.py +4 -4
- pyglove/core/patching/pattern_based.py +4 -4
- pyglove/core/patching/rule_based.py +4 -3
- pyglove/core/symbolic/__init__.py +4 -0
- pyglove/core/symbolic/base.py +200 -136
- pyglove/core/symbolic/base_test.py +17 -19
- pyglove/core/symbolic/boilerplate.py +4 -5
- pyglove/core/symbolic/class_wrapper.py +10 -14
- pyglove/core/symbolic/class_wrapper_test.py +2 -2
- pyglove/core/symbolic/compounding.py +2 -2
- pyglove/core/symbolic/compounding_test.py +2 -4
- pyglove/core/symbolic/contextual_object.py +288 -0
- pyglove/core/symbolic/contextual_object_test.py +327 -0
- pyglove/core/symbolic/dict.py +115 -87
- pyglove/core/symbolic/dict_test.py +188 -131
- pyglove/core/symbolic/diff.py +12 -12
- pyglove/core/symbolic/flags.py +1 -1
- pyglove/core/symbolic/functor.py +16 -15
- pyglove/core/symbolic/functor_test.py +2 -4
- pyglove/core/symbolic/inferred.py +2 -2
- pyglove/core/symbolic/list.py +70 -47
- pyglove/core/symbolic/list_test.py +117 -98
- pyglove/core/symbolic/object.py +59 -58
- pyglove/core/symbolic/object_test.py +143 -90
- pyglove/core/symbolic/origin.py +5 -7
- pyglove/core/symbolic/pure_symbolic.py +4 -3
- pyglove/core/symbolic/ref.py +33 -16
- pyglove/core/symbolic/ref_test.py +17 -0
- pyglove/core/tuning/local_backend.py +2 -2
- pyglove/core/tuning/protocols.py +3 -3
- pyglove/core/typing/annotation_conversion.py +8 -3
- pyglove/core/typing/annotation_conversion_test.py +8 -0
- pyglove/core/typing/callable_ext.py +11 -13
- pyglove/core/typing/callable_signature.py +22 -19
- pyglove/core/typing/callable_signature_test.py +3 -5
- pyglove/core/typing/class_schema.py +93 -54
- pyglove/core/typing/class_schema_test.py +4 -5
- pyglove/core/typing/custom_typing.py +5 -4
- pyglove/core/typing/key_specs.py +5 -7
- pyglove/core/typing/key_specs_test.py +4 -4
- pyglove/core/typing/type_conversion.py +4 -5
- pyglove/core/typing/type_conversion_test.py +12 -12
- pyglove/core/typing/typed_missing.py +6 -7
- pyglove/core/typing/typed_missing_test.py +7 -8
- pyglove/core/typing/value_specs.py +287 -144
- pyglove/core/typing/value_specs_test.py +148 -25
- pyglove/core/utils/__init__.py +172 -0
- pyglove/core/{object_utils → utils}/common_traits.py +2 -2
- pyglove/core/{object_utils → utils}/common_traits_test.py +1 -3
- pyglove/core/utils/contextual.py +147 -0
- pyglove/core/utils/contextual_test.py +88 -0
- pyglove/core/{object_utils → utils}/docstr_utils_test.py +1 -3
- pyglove/core/{object_utils → utils}/error_utils.py +3 -3
- pyglove/core/{object_utils → utils}/error_utils_test.py +1 -1
- pyglove/core/{object_utils → utils}/formatting.py +1 -1
- pyglove/core/{object_utils → utils}/formatting_test.py +1 -2
- pyglove/core/{object_utils → utils}/hierarchical.py +23 -25
- pyglove/core/{object_utils → utils}/hierarchical_test.py +3 -5
- pyglove/core/{object_utils → utils}/json_conversion.py +1 -1
- pyglove/core/{object_utils → utils}/json_conversion_test.py +1 -3
- pyglove/core/{object_utils → utils}/missing.py +2 -2
- pyglove/core/{object_utils → utils}/missing_test.py +2 -4
- pyglove/core/utils/text_color.py +128 -0
- pyglove/core/utils/text_color_test.py +94 -0
- pyglove/core/{object_utils → utils}/thread_local_test.py +1 -3
- pyglove/core/{object_utils → utils}/timing.py +21 -10
- pyglove/core/{object_utils → utils}/timing_test.py +14 -12
- pyglove/core/{object_utils → utils}/value_location.py +2 -2
- pyglove/core/{object_utils → utils}/value_location_test.py +2 -4
- pyglove/core/views/base.py +25 -29
- pyglove/core/views/html/base.py +15 -16
- pyglove/core/views/html/controls/base.py +46 -9
- pyglove/core/views/html/controls/label.py +13 -2
- pyglove/core/views/html/controls/label_test.py +27 -8
- pyglove/core/views/html/controls/progress_bar.py +3 -5
- pyglove/core/views/html/controls/progress_bar_test.py +2 -2
- pyglove/core/views/html/controls/tab.py +217 -66
- pyglove/core/views/html/controls/tab_test.py +46 -15
- pyglove/core/views/html/tree_view.py +39 -37
- {pyglove-0.4.5.dev202411132359.dist-info → pyglove-0.4.5.dev202501250807.dist-info}/METADATA +17 -3
- pyglove-0.4.5.dev202501250807.dist-info/RECORD +218 -0
- {pyglove-0.4.5.dev202411132359.dist-info → pyglove-0.4.5.dev202501250807.dist-info}/WHEEL +1 -1
- pyglove/core/object_utils/__init__.py +0 -164
- pyglove-0.4.5.dev202411132359.dist-info/RECORD +0 -203
- /pyglove/core/{object_utils → utils}/docstr_utils.py +0 -0
- /pyglove/core/{object_utils → utils}/thread_local.py +0 -0
- {pyglove-0.4.5.dev202411132359.dist-info → pyglove-0.4.5.dev202501250807.dist-info}/LICENSE +0 -0
- {pyglove-0.4.5.dev202411132359.dist-info → pyglove-0.4.5.dev202501250807.dist-info}/top_level.txt +0 -0
@@ -16,13 +16,13 @@
|
|
16
16
|
import inspect
|
17
17
|
from typing import Any, Callable, Dict, Iterable, Literal, Optional, Sequence, Tuple, Union
|
18
18
|
|
19
|
-
from pyglove.core import
|
19
|
+
from pyglove.core import utils
|
20
20
|
from pyglove.core.symbolic import base as pg_symbolic
|
21
21
|
from pyglove.core.views.html import base
|
22
22
|
|
23
23
|
|
24
|
-
KeyPath =
|
25
|
-
KeyPathSet =
|
24
|
+
KeyPath = utils.KeyPath
|
25
|
+
KeyPathSet = utils.KeyPathSet
|
26
26
|
Html = base.Html
|
27
27
|
HtmlView = base.HtmlView
|
28
28
|
|
@@ -305,7 +305,7 @@ class HtmlTreeView(HtmlView):
|
|
305
305
|
|
306
306
|
summary = self.summary(
|
307
307
|
value,
|
308
|
-
name=name,
|
308
|
+
name=f'[{name}]' if isinstance(name, int) else name,
|
309
309
|
parent=parent,
|
310
310
|
root_path=root_path,
|
311
311
|
css_classes=css_classes,
|
@@ -622,7 +622,7 @@ class HtmlTreeView(HtmlView):
|
|
622
622
|
color=summary_color[0],
|
623
623
|
background_color=summary_color[1],
|
624
624
|
),
|
625
|
-
) if name else None,
|
625
|
+
) if name is not None else None,
|
626
626
|
|
627
627
|
# Summary title
|
628
628
|
Html.element(
|
@@ -940,10 +940,13 @@ class HtmlTreeView(HtmlView):
|
|
940
940
|
return repr(value)
|
941
941
|
else:
|
942
942
|
return value
|
943
|
-
return
|
943
|
+
return utils.format(
|
944
944
|
value,
|
945
|
-
compact=False,
|
946
|
-
|
945
|
+
compact=False,
|
946
|
+
verbose=False,
|
947
|
+
hide_default_values=True,
|
948
|
+
python_format=True,
|
949
|
+
use_inferred=True,
|
947
950
|
max_bytes_len=64,
|
948
951
|
)
|
949
952
|
return Html.element(
|
@@ -1257,7 +1260,7 @@ class HtmlTreeView(HtmlView):
|
|
1257
1260
|
del parent, kwargs
|
1258
1261
|
if content is None:
|
1259
1262
|
content = Html.escape(
|
1260
|
-
|
1263
|
+
utils.format(
|
1261
1264
|
value,
|
1262
1265
|
root_path=root_path,
|
1263
1266
|
compact=False,
|
@@ -1302,7 +1305,7 @@ class HtmlTreeView(HtmlView):
|
|
1302
1305
|
class_name = f'{value.__name__}-class'
|
1303
1306
|
else:
|
1304
1307
|
class_name = type(value).__name__
|
1305
|
-
return
|
1308
|
+
return utils.camel_to_snake(class_name, '-')
|
1306
1309
|
|
1307
1310
|
@staticmethod
|
1308
1311
|
def init_uncollapse(
|
@@ -1341,40 +1344,40 @@ class HtmlTreeView(HtmlView):
|
|
1341
1344
|
@staticmethod
|
1342
1345
|
def get_passthrough_kwargs(
|
1343
1346
|
*,
|
1344
|
-
enable_summary: Optional[bool] =
|
1345
|
-
enable_summary_for_str: bool =
|
1346
|
-
max_summary_len_for_str: int =
|
1347
|
-
enable_summary_tooltip: bool =
|
1347
|
+
enable_summary: Optional[bool] = utils.MISSING_VALUE,
|
1348
|
+
enable_summary_for_str: bool = utils.MISSING_VALUE,
|
1349
|
+
max_summary_len_for_str: int = utils.MISSING_VALUE,
|
1350
|
+
enable_summary_tooltip: bool = utils.MISSING_VALUE,
|
1348
1351
|
key_style: Union[
|
1349
1352
|
Literal['label', 'summary'],
|
1350
|
-
Callable[[KeyPath, Any, Any], Literal['label', 'summary']]
|
1351
|
-
] =
|
1353
|
+
Callable[[KeyPath, Any, Any], Literal['label', 'summary']],
|
1354
|
+
] = utils.MISSING_VALUE,
|
1352
1355
|
key_color: Union[
|
1353
1356
|
Tuple[Optional[str], Optional[str]],
|
1354
|
-
Callable[[KeyPath, Any, Any], Tuple[Optional[str], Optional[str]]]
|
1355
|
-
] =
|
1357
|
+
Callable[[KeyPath, Any, Any], Tuple[Optional[str], Optional[str]]],
|
1358
|
+
] = utils.MISSING_VALUE,
|
1356
1359
|
include_keys: Union[
|
1357
1360
|
Iterable[Union[int, str]],
|
1358
1361
|
Callable[[KeyPath, Any, Any], Iterable[Union[int, str]]],
|
1359
|
-
None
|
1360
|
-
] =
|
1362
|
+
None,
|
1363
|
+
] = utils.MISSING_VALUE,
|
1361
1364
|
exclude_keys: Union[
|
1362
1365
|
Iterable[Union[int, str]],
|
1363
1366
|
Callable[[KeyPath, Any, Any], Iterable[Union[int, str]]],
|
1364
|
-
None
|
1365
|
-
] =
|
1366
|
-
enable_key_tooltip: bool =
|
1367
|
+
None,
|
1368
|
+
] = utils.MISSING_VALUE,
|
1369
|
+
enable_key_tooltip: bool = utils.MISSING_VALUE,
|
1367
1370
|
uncollapse: Union[
|
1368
1371
|
KeyPathSet, base.NodeFilter, None
|
1369
|
-
] =
|
1370
|
-
extra_flags: Optional[Dict[str, Any]] =
|
1371
|
-
highlight: Optional[base.NodeFilter] =
|
1372
|
-
lowlight: Optional[base.NodeFilter] =
|
1373
|
-
debug: bool =
|
1372
|
+
] = utils.MISSING_VALUE,
|
1373
|
+
extra_flags: Optional[Dict[str, Any]] = utils.MISSING_VALUE,
|
1374
|
+
highlight: Optional[base.NodeFilter] = utils.MISSING_VALUE,
|
1375
|
+
lowlight: Optional[base.NodeFilter] = utils.MISSING_VALUE,
|
1376
|
+
debug: bool = utils.MISSING_VALUE,
|
1374
1377
|
remove: Optional[Iterable[str]] = None,
|
1375
1378
|
**kwargs,
|
1376
1379
|
):
|
1377
|
-
|
1380
|
+
# pytype: enable=annotation-type-mismatch
|
1378
1381
|
"""Gets the rendering arguments to pass through to the child nodes."""
|
1379
1382
|
del kwargs
|
1380
1383
|
passthrough_kwargs = dict(
|
@@ -1386,23 +1389,22 @@ class HtmlTreeView(HtmlView):
|
|
1386
1389
|
key_style=key_style,
|
1387
1390
|
key_color=key_color,
|
1388
1391
|
include_keys=(
|
1389
|
-
include_keys if callable(include_keys)
|
1390
|
-
else object_utils.MISSING_VALUE
|
1392
|
+
include_keys if callable(include_keys) else utils.MISSING_VALUE
|
1391
1393
|
),
|
1392
1394
|
exclude_keys=(
|
1393
|
-
exclude_keys if callable(exclude_keys)
|
1394
|
-
else object_utils.MISSING_VALUE
|
1395
|
+
exclude_keys if callable(exclude_keys) else utils.MISSING_VALUE
|
1395
1396
|
),
|
1396
1397
|
uncollapse=uncollapse,
|
1397
1398
|
highlight=highlight,
|
1398
1399
|
lowlight=lowlight,
|
1399
1400
|
extra_flags=extra_flags,
|
1400
|
-
debug=debug
|
1401
|
+
debug=debug,
|
1401
1402
|
)
|
1402
1403
|
# Filter out missing values.
|
1403
1404
|
passthrough_kwargs = {
|
1404
|
-
k: v
|
1405
|
-
|
1405
|
+
k: v
|
1406
|
+
for k, v in passthrough_kwargs.items()
|
1407
|
+
if v is not utils.MISSING_VALUE
|
1406
1408
|
}
|
1407
1409
|
if remove:
|
1408
1410
|
return {
|
@@ -1467,7 +1469,7 @@ class HtmlTreeView(HtmlView):
|
|
1467
1469
|
)
|
1468
1470
|
|
1469
1471
|
# Deep hierarchy merge.
|
1470
|
-
return
|
1472
|
+
return utils.merge_tree(call_kwargs, overriden_kwargs)
|
1471
1473
|
|
1472
1474
|
@staticmethod
|
1473
1475
|
def merge_uncollapse(
|
{pyglove-0.4.5.dev202411132359.dist-info → pyglove-0.4.5.dev202501250807.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: pyglove
|
3
|
-
Version: 0.4.5.
|
3
|
+
Version: 0.4.5.dev202501250807
|
4
4
|
Summary: PyGlove: A library for manipulating Python objects.
|
5
5
|
Home-page: https://github.com/google/pyglove
|
6
6
|
Author: PyGlove Authors
|
@@ -22,6 +22,17 @@ Classifier: Topic :: Software Development :: Libraries
|
|
22
22
|
Description-Content-Type: text/markdown
|
23
23
|
License-File: LICENSE
|
24
24
|
Requires-Dist: docstring-parser>=0.12
|
25
|
+
Requires-Dist: termcolor>=1.1.0
|
26
|
+
Dynamic: author
|
27
|
+
Dynamic: author-email
|
28
|
+
Dynamic: classifier
|
29
|
+
Dynamic: description
|
30
|
+
Dynamic: description-content-type
|
31
|
+
Dynamic: home-page
|
32
|
+
Dynamic: keywords
|
33
|
+
Dynamic: license
|
34
|
+
Dynamic: requires-dist
|
35
|
+
Dynamic: summary
|
25
36
|
|
26
37
|
<div align="center">
|
27
38
|
<img src="https://raw.githubusercontent.com/google/pyglove/main/docs/_static/logo_light.svg#gh-light-mode-only" width="320px" alt="logo"></img>
|
@@ -72,7 +83,7 @@ It's commonly used in:
|
|
72
83
|
PyGlove has been [published](https://proceedings.neurips.cc/paper/2020/file/012a91467f210472fab4e11359bbfef6-Paper.pdf)
|
73
84
|
at NeurIPS 2020. It is widely used within [Alphabet](https://abc.xyz/), including Google Research, Google Cloud, Youtube and Waymo.
|
74
85
|
|
75
|
-
PyGlove is developed by Daiyi Peng and colleagues
|
86
|
+
PyGlove is developed by Daiyi Peng and colleagues at [Google Brain](https://research.google/teams/brain/).
|
76
87
|
|
77
88
|
|
78
89
|
## Hello PyGlove
|
@@ -145,6 +156,9 @@ pip install pyglove --pre
|
|
145
156
|
* [Interactive SVG: Components for Direct Manipulation](https://github.com/google/pyglove/blob/main/docs/notebooks/python/interactive_svg.ipynb)
|
146
157
|
* [Where is the Duck: Developing Context-aware Component](https://github.com/google/pyglove/blob/main/docs/notebooks/python/where_is_the_duck.ipynb)
|
147
158
|
|
159
|
+
* Interactive Programming
|
160
|
+
* [Viewing PyGlove objects in HTML](https://colab.research.google.com/github/google/pyglove/blob/main/docs/notebooks/gui/html_view.ipynb)
|
161
|
+
|
148
162
|
## Citing PyGlove
|
149
163
|
|
150
164
|
```
|
@@ -0,0 +1,218 @@
|
|
1
|
+
pyglove/__init__.py,sha256=YPUWALRDu4QuI7N3TUmVaVr513hUt0qXrjY582I1q5c,1352
|
2
|
+
pyglove/core/__init__.py,sha256=BF-8v1D5lTBAo4vlpDt0qyOG9NQ71oh_UfthBVrPaN4,9614
|
3
|
+
pyglove/core/logging.py,sha256=Sr5nLyUQmc4CAEYAq8qbP3ghpjmpz2sOuhq2A0tgQ6I,2456
|
4
|
+
pyglove/core/logging_test.py,sha256=3z_c6wnxbqDbwUmSOAZzeDPXvzoweYL5QHUQVMJ5Xgo,1917
|
5
|
+
pyglove/core/coding/__init__.py,sha256=tuHIg19ZchtkOQbdFVTVLkUpBa5f1eo66XtnKw3lcIU,1645
|
6
|
+
pyglove/core/coding/errors.py,sha256=vstDb52lk5uJef2k_0_1dqvGv8eDYNq37IrqjGJ-cNc,3302
|
7
|
+
pyglove/core/coding/errors_test.py,sha256=fwOR8vLiRvLadubsccyE19hLHj-kThlCQt88qmUYk9M,2311
|
8
|
+
pyglove/core/coding/execution.py,sha256=Rq-rFPkecd70-wLnK-51L_rK01nd3J5SKfQidg3_qvY,10883
|
9
|
+
pyglove/core/coding/execution_test.py,sha256=vTMLOCs7ceVi-XEz7-0CdPeoKqswBUQ26SzTqthcU4c,8397
|
10
|
+
pyglove/core/coding/function_generation.py,sha256=2fCqcdcizVYtGYE6QGpw5m1kuH9Fp0OF4BjyJ4en6tw,1636
|
11
|
+
pyglove/core/coding/function_generation_test.py,sha256=kbSwmZF8Vog0R0OTSpuzPblEbMLoRJ1TigeIrwDhHS8,2161
|
12
|
+
pyglove/core/coding/parsing.py,sha256=JXTdzFS9iB5-JVi9_-rDFORj_EZEtr7In8HBGHp09no,4084
|
13
|
+
pyglove/core/coding/parsing_test.py,sha256=XB-bd2Huj36GKmvmFjp3jRwr7NqhRd1Ag-AGNxr_ekk,3575
|
14
|
+
pyglove/core/coding/permissions.py,sha256=kd_gO1csXHpySsvazxmKBVe7dfLpX5GquRtu9q4ToRE,2729
|
15
|
+
pyglove/core/coding/permissions_test.py,sha256=GTEnCClTZWdFmqHk3U5P8mzOmIINtUeEkeJZApnaWVI,2935
|
16
|
+
pyglove/core/detouring/__init__.py,sha256=ck_n2VSuU31HNVYQkbG4Zvnx90mNYtSVc2StN3rXbU8,1891
|
17
|
+
pyglove/core/detouring/class_detour.py,sha256=ejuUr7UfRU3l9PrDxD0dpKmt2iqdDU6liHdebA1jEfQ,13312
|
18
|
+
pyglove/core/detouring/class_detour_test.py,sha256=9aAK6qPiT0_HJe5oUpqMVTpoHv0wr_h6c4gWYKMTJoM,5507
|
19
|
+
pyglove/core/geno/__init__.py,sha256=cWA583n7JpsGUkGtoTlMMX83tNS7geRBKFsoPEvFZ4A,4767
|
20
|
+
pyglove/core/geno/base.py,sha256=4CjZ1j-LGd6q2qootGcLMVuX8nTDxH0LvA1KVSI9qbE,64498
|
21
|
+
pyglove/core/geno/base_test.py,sha256=f0pMpfXsjAqFOBtlOxof3jRX0jLvXpzowk9szcr6bgY,38512
|
22
|
+
pyglove/core/geno/categorical.py,sha256=t1bS129D5iF4CZ0yVHaFDXy2T6ujv5F5HHDc_0X36z8,28015
|
23
|
+
pyglove/core/geno/categorical_test.py,sha256=23UkOPhDSvonxxM_1YoBYp723Xim-BmBzywl612CRyg,18444
|
24
|
+
pyglove/core/geno/custom.py,sha256=U4_fdTBmHUTZp3uyNI8Kz4kPKj7X0EJ9d55T376p4Vk,7044
|
25
|
+
pyglove/core/geno/custom_test.py,sha256=kjHcKRYA-Uaw6AUnOMhVjBs9is37mUS8X3VdZHXxr0k,5938
|
26
|
+
pyglove/core/geno/deduping.py,sha256=SmfrY8uz4zUuKInaWSKIB0vm_6CVWgqrfhiwragxM7I,5205
|
27
|
+
pyglove/core/geno/deduping_test.py,sha256=zP9XGbfw4tmHgBMv8xP2EMZ2-AJc2UomAP_Ud1aSr-c,4583
|
28
|
+
pyglove/core/geno/dna_generator.py,sha256=BwHnjdbVPP_ic04481dhm2pCcFoRmH8PB1o884W8aUs,8959
|
29
|
+
pyglove/core/geno/dna_generator_test.py,sha256=vdQ7H8Zg7pvhjJyUbUaK6z8JIB8QeJ5puzo03FN6kwA,4731
|
30
|
+
pyglove/core/geno/numerical.py,sha256=AKevY8HALo2Tu4qEjuuRhhv-l1vFS_b4jre2MZQ3odg,8237
|
31
|
+
pyglove/core/geno/numerical_test.py,sha256=zkJocfknUZsXL9LwkY4zdVVqO7FbEeCZgohRzlLxET0,5796
|
32
|
+
pyglove/core/geno/random.py,sha256=xs03iphDBO9f2FJJkbsRj6piky12g17v-i1drlWODu4,2619
|
33
|
+
pyglove/core/geno/random_test.py,sha256=0Ctnm86w3nDcd7QL_XRdqJKrcTl46NpgRQ7TSzPY8ac,4941
|
34
|
+
pyglove/core/geno/space.py,sha256=CWhGr-tomZystiLtxCfDbJ9sFrIN6LhkfgdAs1PRHpk,9315
|
35
|
+
pyglove/core/geno/space_test.py,sha256=zpCUbe98Qy0rUM1TZIOG6sKQM_2-cglz9UPVIYcPQuk,16554
|
36
|
+
pyglove/core/geno/sweeping.py,sha256=VcvEm-IQ5DVUhDUBBXF2w-hcjLc5FJ8_OjItO0TbHuw,1322
|
37
|
+
pyglove/core/geno/sweeping_test.py,sha256=Ex3LlH-RyM1aPSbhrtEmkQAScUkL1GWyZGUKxrEAeE8,2709
|
38
|
+
pyglove/core/hyper/__init__.py,sha256=igGe4vYAXbdpwjuRCRijfwQBLYLFJk4LPKWlcpg3HhM,5020
|
39
|
+
pyglove/core/hyper/base.py,sha256=kYuvUq33CbLMsNVC7uGZ8IHa1h2yYa1KSol9ktisEgg,7029
|
40
|
+
pyglove/core/hyper/categorical.py,sha256=6BpObEaaCKrQsvih3CkdN7ZwK0bj1hMUBLnum8r1kAc,23385
|
41
|
+
pyglove/core/hyper/categorical_test.py,sha256=Gg41Jubi_1lOhwrXbCiBmXFdYcmZmPpA_X4MqItOOa4,13533
|
42
|
+
pyglove/core/hyper/custom.py,sha256=eMWVCq8d0m2tXkwlazGNQ9q_Bi_gbtIotVX4t6Cr_r4,5719
|
43
|
+
pyglove/core/hyper/custom_test.py,sha256=4ayyNCiY9T34h_Nfr5ZL6psUtgvuJv9i_ubmkOs796I,3522
|
44
|
+
pyglove/core/hyper/derived.py,sha256=IW2QjPR0m0oMb_Ij8lbJ1qLwI2j_wBYKrgQC6TuAEo4,6066
|
45
|
+
pyglove/core/hyper/derived_test.py,sha256=H3-lzB_LebKf7oIR_6Jj51APkNkBzcqCz9KbAa-haKM,4221
|
46
|
+
pyglove/core/hyper/dynamic_evaluation.py,sha256=ixuqeis6WGL276nWTCZktv7EWHWqzG4H1iy3xtAT6js,22853
|
47
|
+
pyglove/core/hyper/dynamic_evaluation_test.py,sha256=87Xc3Ci8mMWFiV4PGG7ZT8B6TqhTJH8tUMTWMYkyKzU,17149
|
48
|
+
pyglove/core/hyper/evolvable.py,sha256=AH59oETvS8ox7xmTYOEMiSX-NxbUFrMXUvkx7cdSxCs,10156
|
49
|
+
pyglove/core/hyper/evolvable_test.py,sha256=TYDDr69ykdmqzRFo4McxVzwOV_tU4j_WVZu-_6X3M8Q,7914
|
50
|
+
pyglove/core/hyper/iter.py,sha256=cCRirBBqw-cYCavLU463hch-anh4aXjqzACZ_9cUw-Y,6921
|
51
|
+
pyglove/core/hyper/iter_test.py,sha256=KQ75ZdRDg8LCBHsVzNMPeZ67ArTNqWajUrcQIgolun8,3906
|
52
|
+
pyglove/core/hyper/numerical.py,sha256=1zBTEXuLeKfrcZHkRMJpYE6RSBGA6KLQ29tkzUNC05U,8371
|
53
|
+
pyglove/core/hyper/numerical_test.py,sha256=UWdH55Bok7bghYDLJOGsgOwV_2LNkhj1AmFwNYeJRY8,4232
|
54
|
+
pyglove/core/hyper/object_template.py,sha256=YPALTV0mMULa7iuqnryTpA2wMsdyFZ_6g-R525asAr8,22222
|
55
|
+
pyglove/core/hyper/object_template_test.py,sha256=TEFX7LIqUvdCdJILnK_gP5xIgNJKzRnioUF0CGVBzcY,9105
|
56
|
+
pyglove/core/io/__init__.py,sha256=4ZT1a595DqQuLTNYc2JP_eCp_KesXvHmKRkr777bzpg,785
|
57
|
+
pyglove/core/io/file_system.py,sha256=ps5SVckgFsrZk4xCu37iXkeIrvydLzLs9NsF14VzEcM,13390
|
58
|
+
pyglove/core/io/file_system_test.py,sha256=FX0ySuh_Xcg1RO68do7ikD4pvslKUzfSpwZ6P4wIP7c,8691
|
59
|
+
pyglove/core/io/sequence.py,sha256=7QWMGXPtJzHyGPgqkT3yJ01FxKJ4mP4lF5HRDiIHNbQ,8165
|
60
|
+
pyglove/core/io/sequence_test.py,sha256=6tmnS7frBuDR8ussT5jugeh23TDsPDrDnbfxHh81Gy4,3891
|
61
|
+
pyglove/core/patching/__init__.py,sha256=C1Q1cWPV74YL3eXbzGvc-8aPw1DR8EK6lRhQYDCwHek,2059
|
62
|
+
pyglove/core/patching/object_factory.py,sha256=fsiqFET9LWQV4xZXJrPFu3j5IRovSi_zrJba7KiYGZ0,3368
|
63
|
+
pyglove/core/patching/object_factory_test.py,sha256=UXWVxrlgtsKm9Q-CnzJMcKKeFvFi9qQ1GG4RgWt0S8o,3973
|
64
|
+
pyglove/core/patching/pattern_based.py,sha256=UtSNB-ARNqVjXwZovjVi84QEoXUGLLBTgLgjq2rNg3w,7851
|
65
|
+
pyglove/core/patching/pattern_based_test.py,sha256=PW1EcVfsFPB6wtgwg3s4dzvigWn3b5S8eMNGo0SJiZ0,2771
|
66
|
+
pyglove/core/patching/rule_based.py,sha256=JAQp8mWeIOxwIdqusA3GmXia-fxQhQsxbUTmE329wF8,17038
|
67
|
+
pyglove/core/patching/rule_based_test.py,sha256=qfy0ILmczV_LMHWEnwo2y079OrJsGYO0nKxSZdmIUcI,18782
|
68
|
+
pyglove/core/symbolic/__init__.py,sha256=JZvyaEcS1QxA8MaAGANBWMmRTQcGk_6F0kjFxjokJqg,6002
|
69
|
+
pyglove/core/symbolic/base.py,sha256=aSZPSk7v3Niv6D1HfL_JEEXfI-U1cQnTxJxY9wXem54,77627
|
70
|
+
pyglove/core/symbolic/base_test.py,sha256=yASIHIuWiUB1jf4nN-Y4XOjyvr8eQfRpr7s_1LZsu78,7188
|
71
|
+
pyglove/core/symbolic/boilerplate.py,sha256=sQ3G25r5bo_UmIdjreL4jkAuQCXIHVlvUfGjjkNod6Y,5955
|
72
|
+
pyglove/core/symbolic/boilerplate_test.py,sha256=1CZ1W6kq3l-3tpaknhGFa04V18bO7vPzis5qzWnxHEs,5252
|
73
|
+
pyglove/core/symbolic/class_wrapper.py,sha256=xQiMh5vFlOQ76tbqsF5UWEghvU4d9UmvbNqIyBccNHg,22869
|
74
|
+
pyglove/core/symbolic/class_wrapper_test.py,sha256=GPgeLefIPj9hiD0ib6z2LyOm6A3O2f4-JHpE7dgfsNM,21644
|
75
|
+
pyglove/core/symbolic/compounding.py,sha256=gvOodZ2gWHA0jNdwt8yvnRsPkHQDXDb5s88Uwp6DAqs,11703
|
76
|
+
pyglove/core/symbolic/compounding_test.py,sha256=hOzrIROvajUTtPm0SUbEsEV4C1bXanhAoHinHrjZoXw,8320
|
77
|
+
pyglove/core/symbolic/contextual_object.py,sha256=ar9Q_0P0HHbDf8kLHpS8GFZEMCRuCCB6DP18iGItiiw,9146
|
78
|
+
pyglove/core/symbolic/contextual_object_test.py,sha256=wA5xfIhEHOC9qE3bbiA59CAPxWs9AVPaNiKEoprkWpQ,10209
|
79
|
+
pyglove/core/symbolic/dict.py,sha256=7IxKSjUsGulUcNk3xqQnJ2ubGNUbqcc0ZFe8cKiigKA,36931
|
80
|
+
pyglove/core/symbolic/dict_test.py,sha256=3MATsFw9Ci0jVPbAT2ivKVZ3PCnBBBvbkMWKgpgl-Fk,72915
|
81
|
+
pyglove/core/symbolic/diff.py,sha256=zHfED0Bbq8G_HWNPj3vrOCWzt_062rFhx3BMlpCb9oo,16282
|
82
|
+
pyglove/core/symbolic/diff_test.py,sha256=EDiGHqqKhi-NeMxr-bgjBEqlquee_4l_0IM6hgAb9Mg,29400
|
83
|
+
pyglove/core/symbolic/flags.py,sha256=a_8VZEhJjkt-zk1v3jCjlfNe7vEG2FqFfAC4l-gKrzg,12090
|
84
|
+
pyglove/core/symbolic/flags_test.py,sha256=JDJcm6dYTlnktFsdNFjQszmHXf9bZnhrXMxi_jUiKUA,5483
|
85
|
+
pyglove/core/symbolic/functor.py,sha256=6g1eBZSfSB6lp5NSXtAMw--xRhAfkYipSJh2LCVPNTM,26723
|
86
|
+
pyglove/core/symbolic/functor_test.py,sha256=9c5_7OBKNVNbYC7IaVQB6c5ks2v00qQ36oivyWiBbKA,31798
|
87
|
+
pyglove/core/symbolic/inferred.py,sha256=E4zgphg6NNZad9Fl3jdHQOMZeqEp9XHq5OUYqXEmwZQ,3178
|
88
|
+
pyglove/core/symbolic/inferred_test.py,sha256=G6uPykONcChvs6vZujXHSWaYfjewLTVBscMqzzKNty0,1270
|
89
|
+
pyglove/core/symbolic/list.py,sha256=z8goU0ntd-Q5ADaCGiKsJwPhdRdQb0Kd_p-ZekXaLy4,30303
|
90
|
+
pyglove/core/symbolic/list_test.py,sha256=IAyFQ48nyczKUcPNZFKHBkX5oh7Xuxbnv3rRkONhbHw,61146
|
91
|
+
pyglove/core/symbolic/object.py,sha256=T1HtGYNA1qLp0iTZVmgR90nfMLuOQVNopkBPYw_j8B8,42021
|
92
|
+
pyglove/core/symbolic/object_test.py,sha256=vIL_ymGpPPXamIljEBdufpw-p82kTeWNy2IbgzGQjig,93811
|
93
|
+
pyglove/core/symbolic/origin.py,sha256=OSWMKjvPcISOXrzuX3lCQC8m_qaGl-9INsIB81erUnU,6124
|
94
|
+
pyglove/core/symbolic/origin_test.py,sha256=dU_ZGrGDetM_lYVMn3wQO0d367_t_t8eESe3NrKPBNE,3159
|
95
|
+
pyglove/core/symbolic/pure_symbolic.py,sha256=pvo15gn35_KLiGW_XrTjlx5ddmHbwpLr93VgbQ59uQ8,3231
|
96
|
+
pyglove/core/symbolic/ref.py,sha256=qRN-0xm9pWlszel5qE-HAhQCkgB0umi_pDlzDhBWPUA,8513
|
97
|
+
pyglove/core/symbolic/ref_test.py,sha256=0687hClfR5G5_VKuRlwjJGVQ2MC74ADFWklDaZ3aEVI,6294
|
98
|
+
pyglove/core/symbolic/symbolize.py,sha256=ohID9-V8QiFe7OMpPlRomiqUnKBVMpypd8ZuMuHaa4s,6582
|
99
|
+
pyglove/core/symbolic/symbolize_test.py,sha256=o7bRfMhGc6uw2FIH8arE99-bPb3i0YixcHYyiP-QqeQ,6487
|
100
|
+
pyglove/core/tuning/__init__.py,sha256=JtXpjsBto01fLf55hZ1dSx-CEZUyVQeyRP9AMH_hw8c,2229
|
101
|
+
pyglove/core/tuning/backend.py,sha256=GwbBI9nHYYe5h6iDuhqRtD-Msjmmc7wFtagxW0rTypU,5597
|
102
|
+
pyglove/core/tuning/backend_test.py,sha256=vyfUi509-hbF5uYk-I0FsoniPFBXmobQVl-4d0YPIWY,1999
|
103
|
+
pyglove/core/tuning/early_stopping.py,sha256=v7pI2Jv6KfYJoNVmcQsRv3HUbH0b-lrs3wduED8Y7kk,2179
|
104
|
+
pyglove/core/tuning/local_backend.py,sha256=1Aflwu4PDpQltAvAoXvAeLYrh3Ormd5yJAk8kkb8uAU,13818
|
105
|
+
pyglove/core/tuning/protocols.py,sha256=10Iukt1rqh05caURTZffSsb3CcHo7epBQnNtnyMyziE,16844
|
106
|
+
pyglove/core/tuning/protocols_test.py,sha256=Cbzvz3EacaW2sbm1rTSQXEt_VucMoQbeQ6AeN-GV5Vc,1883
|
107
|
+
pyglove/core/tuning/sample.py,sha256=UzsCY8kiqnzH_mR94zLXhOloyvvEwfmBWluBjmefUFA,12975
|
108
|
+
pyglove/core/tuning/sample_test.py,sha256=JqwDPy3EPC_VjU9dipk90jj1kovZB3Zb9hAjAlZ-U1U,17551
|
109
|
+
pyglove/core/typing/__init__.py,sha256=Z_jnwUvDQ3wA16a5TiuWbuof9hW0Xm6YoTNwgG4QGqI,14395
|
110
|
+
pyglove/core/typing/annotated.py,sha256=llaajIDj9GK-4kUGJoO4JsHU6ESPOra2SZ-jG6xmsOQ,3203
|
111
|
+
pyglove/core/typing/annotated_test.py,sha256=p1qid3R-jeiOTTxOVq6hXW8XFvn-h1cUzJWISPst2l8,2484
|
112
|
+
pyglove/core/typing/annotation_conversion.py,sha256=OhBQRCaSh7zJKfb_IQKF7sD32E_YNTekz00qZaSIVnw,9007
|
113
|
+
pyglove/core/typing/annotation_conversion_test.py,sha256=tZheqbLWbr76WBIDOplLtY3yznMc4m9u7KCznWEJdEs,11660
|
114
|
+
pyglove/core/typing/callable_ext.py,sha256=PiBQWPeUAH7Lgmf2xKCZqgK7N0OSrTdbnEkV8Ph31OA,9127
|
115
|
+
pyglove/core/typing/callable_ext_test.py,sha256=TnWKU4_ZjvpbHZFtFHgFvCMDiCos8VmLlODcM_7Xg8M,10156
|
116
|
+
pyglove/core/typing/callable_signature.py,sha256=DRpt7aShfkn8pb3SCiZzS_27eHbkQ_d2UB8BUhJjs0Q,27176
|
117
|
+
pyglove/core/typing/callable_signature_test.py,sha256=iQmHsKPhJPQlMikDhEyxKyq7yWyXI9juKCLYgKhrH3U,25145
|
118
|
+
pyglove/core/typing/class_schema.py,sha256=xfPrLYpqntejMLvSL-7rNiXHTQOgAr2kmxWeR890qLs,53940
|
119
|
+
pyglove/core/typing/class_schema_test.py,sha256=UWANPqhu9v_FHNo3cVe05P-bO-HliBmrSBywKrlWep0,29204
|
120
|
+
pyglove/core/typing/custom_typing.py,sha256=qdnIKHWNt5kZAAFdpQXra8bBu6RljMbbJ_YDG2mhAUA,2205
|
121
|
+
pyglove/core/typing/inspect.py,sha256=Tp2rYqRvMFvL0NzkJo4p04_hQSF__Eip8RduhEaSFfE,7046
|
122
|
+
pyglove/core/typing/inspect_test.py,sha256=vJ-MZvSPjzzA7sDY6XIeMeX_aob_6VjGQcIIn_MJl64,8826
|
123
|
+
pyglove/core/typing/key_specs.py,sha256=-7xjCuUGoQgD0sMafsRFNlw3S4f1r-7t5OO4ev5bbeI,9225
|
124
|
+
pyglove/core/typing/key_specs_test.py,sha256=5zornpyHMAYoRaG8KDXHiQ3obu9UfRp3399lBeUNTPk,6499
|
125
|
+
pyglove/core/typing/pytype_support.py,sha256=lyX11WVbCwoOi5tTQ90pEOS-yvo_6iEi7Lxbp-nXu2A,2069
|
126
|
+
pyglove/core/typing/type_conversion.py,sha256=6diZrxNsvSyTLLNdoCqcWatWmhh7kZOiKCesyg-nEYQ,5167
|
127
|
+
pyglove/core/typing/type_conversion_test.py,sha256=qwNeotCb96vdUELVtA-0Ee19Jm4yOnPZuSIz5nyEbGo,5203
|
128
|
+
pyglove/core/typing/typed_missing.py,sha256=-l1omAu0jBZv5BnsFYXBqfvQwVBnmPh_X1wcIKD9bOk,2734
|
129
|
+
pyglove/core/typing/typed_missing_test.py,sha256=TCNsb1SRpFaVdxYn2mB_yaLuja8w5Qn5NP7uGiZVBWs,2301
|
130
|
+
pyglove/core/typing/value_specs.py,sha256=Yxdrz4aURMBrtqUW4to-2Vptc6Z6oqQrLyMBiAZt2bc,102302
|
131
|
+
pyglove/core/typing/value_specs_test.py,sha256=MsScWDRaN_8pfRDO9MCp9HdUHVm_8wHWyKorWVSnhE4,127165
|
132
|
+
pyglove/core/utils/__init__.py,sha256=I2bRTzigU7qJVEATGlLUFkYzkiCBBCCEwrQyhsrRNmI,8602
|
133
|
+
pyglove/core/utils/common_traits.py,sha256=PWxOgPhG5H60ZwfO8xNAEGRjFUqqDZQBWQYomOfvdy8,3640
|
134
|
+
pyglove/core/utils/common_traits_test.py,sha256=DIuZB_1xfmeTVfWnGOguDQcDAM_iGgBOe8C-5CsIqBc,1122
|
135
|
+
pyglove/core/utils/contextual.py,sha256=RxBQkDM2gB6QwZj_2oMels6oh-zQPGJJlinZbbqHuYQ,5148
|
136
|
+
pyglove/core/utils/contextual_test.py,sha256=OOcthquVyAekTqt1RyYcEMHaockMIokpbv4pSf13Nzs,3252
|
137
|
+
pyglove/core/utils/docstr_utils.py,sha256=5BY40kXozPKVGOB0eN8jy1P5_GHIzqFJ9FXAu_kzxaw,5119
|
138
|
+
pyglove/core/utils/docstr_utils_test.py,sha256=i33VT6zHXEuIIJ4PPg1bVSfaYSnUsC8yST_NfpT-Uds,4228
|
139
|
+
pyglove/core/utils/error_utils.py,sha256=ACIqtq4hsWrV00Gxd1OyeHCI-obGBR6J3H9VI1Y9clM,5780
|
140
|
+
pyglove/core/utils/error_utils_test.py,sha256=zwTzmyJupIW8GeF3Z-gnpVNdhdTYwzmO0ClODqbR4bU,4164
|
141
|
+
pyglove/core/utils/formatting.py,sha256=qa5XEGRwKEEqEKtyEYZNdsKBxIQFGBTofFW29aQT8hU,14987
|
142
|
+
pyglove/core/utils/formatting_test.py,sha256=OQboyCwhgvhw4EcCj1q-O53XG404c0XMK51rCl2_q2M,13533
|
143
|
+
pyglove/core/utils/hierarchical.py,sha256=jwB-0FhqOspAymAkvJphRhPTQEsoShmKupCZpU3Vip4,19690
|
144
|
+
pyglove/core/utils/hierarchical_test.py,sha256=f382DMJPa_bavJGGQDjuw-hWcafUg5bkQCPX-nbzeiI,21077
|
145
|
+
pyglove/core/utils/json_conversion.py,sha256=I0mWn87aAEdaAok9nDvT0ZrmplU40eNmEDUAaNIzZXk,26590
|
146
|
+
pyglove/core/utils/json_conversion_test.py,sha256=zA_cy7ixVL3sTf6i9BCXMlSH56Aa3JnjHnjyqYJ_9XU,11845
|
147
|
+
pyglove/core/utils/missing.py,sha256=9gslt1lXd1qSEIuAFxUWu30oD-YdYcnm13eau1S9uqY,1445
|
148
|
+
pyglove/core/utils/missing_test.py,sha256=D6-FuVEwCyJemUiPLcwLmwyptqI5Bx0Pfipc2juhKSE,1335
|
149
|
+
pyglove/core/utils/text_color.py,sha256=xcCTCxY2qFNZs_jismMGus8scEXKBpYGAhpAgnz-MHk,4112
|
150
|
+
pyglove/core/utils/text_color_test.py,sha256=3HtZpUB5XPr7A_5Fg4ZSMfNWeDRiQgSzmg9b1tctMI4,2801
|
151
|
+
pyglove/core/utils/thread_local.py,sha256=i-CnyY3VREtLfAj4_JndBnsKuQLIgwG29ma8dAyRxbI,4839
|
152
|
+
pyglove/core/utils/thread_local_test.py,sha256=AOqsdNsA-cYMvJckqxb25ql3Y5kDW0qLfBW1cl85Bnw,6757
|
153
|
+
pyglove/core/utils/timing.py,sha256=gnHCA2IJ9DZ3Y0vb8ItB1Ap8ss8j_zN0OMUAdhoGy2Y,7550
|
154
|
+
pyglove/core/utils/timing_test.py,sha256=t_awsYs5SqEO3_2u6HDbVxRcSxSfHsE4zMbFG-1ErZw,5011
|
155
|
+
pyglove/core/utils/value_location.py,sha256=wAryIwQeEfrRddyGRk-KbLA7dnNDLhL-dSyFI9wIG5U,26756
|
156
|
+
pyglove/core/utils/value_location_test.py,sha256=X6Gih3IoYugziwXWH8VGz5bPeb3Kq0CfZxwbNVIsZJo,21338
|
157
|
+
pyglove/core/views/__init__.py,sha256=gll9ZBRYz4p_-LWOdzSR2a6UTWcJ8nR430trrP0yLCU,967
|
158
|
+
pyglove/core/views/base.py,sha256=VVWlkyUPvZoNlcwMpuxt-AujGnuIJPS4Ym-jGBX0g9I,26262
|
159
|
+
pyglove/core/views/base_test.py,sha256=UKbr_1TANOAnP7V5ICGF0UEkunfSaHiJ4nXZXhA0SaU,16642
|
160
|
+
pyglove/core/views/html/__init__.py,sha256=Ff51MK1AKdzLM0kczTqLR3fRlJSJLDaFUdVyCu_7-eY,1085
|
161
|
+
pyglove/core/views/html/base.py,sha256=LcRU8Lot_y1RW6fziaCQVVE0gWP0aVzIcO8v71JaX0E,15002
|
162
|
+
pyglove/core/views/html/base_test.py,sha256=5RVPNm4YTamTFu6yXA1p2lJg3JHQBKNNBoL977qBZvE,22782
|
163
|
+
pyglove/core/views/html/tree_view.py,sha256=MkQXtNKn88j9NXdhluKbIaHswjh1QtQoPv-CUwUfCNk,52062
|
164
|
+
pyglove/core/views/html/tree_view_test.py,sha256=whUorrw0eiDaZsEzGB2B3EN3wx0vLFuNEe2RBU03GeU,74707
|
165
|
+
pyglove/core/views/html/controls/__init__.py,sha256=61qs5pnJPCTECCGBtkbNfIV3KcCu7cxfVNBEtIg1lMo,1318
|
166
|
+
pyglove/core/views/html/controls/base.py,sha256=aSYFEo-I6Yc28TMk1ZFw_Za85xMo8EvgfQLKISsLSe8,7675
|
167
|
+
pyglove/core/views/html/controls/label.py,sha256=dXcYId7ASuNqkzKsWMjJ0iQtecoSsUlUgynNNQZOFAM,5681
|
168
|
+
pyglove/core/views/html/controls/label_test.py,sha256=uUYqBSZ0XLOuv4qG20gmoZzA3RxYxpfqT63K0azHEfU,5162
|
169
|
+
pyglove/core/views/html/controls/progress_bar.py,sha256=0an0eCbPCDjwrR58C16NwLZ-cf3Oy0wQerLsiNgGHmk,5235
|
170
|
+
pyglove/core/views/html/controls/progress_bar_test.py,sha256=kKOJDZQtBPkmNcgIBrRQkNNzcTm51ojuFBTRUEDSsp0,3506
|
171
|
+
pyglove/core/views/html/controls/tab.py,sha256=ELyroRb3qKQ8ULM_BMq2j-tqV_mnHOvrYv2kbuIe65o,9430
|
172
|
+
pyglove/core/views/html/controls/tab_test.py,sha256=wr1msQjZHxp1TFKQ5LxtppY2Dys736JCmmEJ8WBC3Fo,3531
|
173
|
+
pyglove/core/views/html/controls/tooltip.py,sha256=01BbpuM1twf3FYMUT09_Ck5JSSONe8QE9RmyA9nhCnU,3092
|
174
|
+
pyglove/core/views/html/controls/tooltip_test.py,sha256=17BY-WmZKpz9tCbySPcwG6KJyfeE_MeMyKxtfxorBQ0,3194
|
175
|
+
pyglove/ext/__init__.py,sha256=3jp8cJvKW6PENOZlmVAbT0w-GBRn_kjhc0wDX3XjpOE,755
|
176
|
+
pyglove/ext/early_stopping/__init__.py,sha256=_xkT3K_MycFuF3k2N74sfr9FPFcXMD3pfv5vuc4Tx5M,1116
|
177
|
+
pyglove/ext/early_stopping/base.py,sha256=KolexwKDAXhI9iY7hoaDO1mbc3TA4gDn0UifxURwbk0,2358
|
178
|
+
pyglove/ext/early_stopping/base_test.py,sha256=fMCYq5_Ysz1tq5QvNBv0v_cDnDrbNspIP9mdMKf-7jM,2796
|
179
|
+
pyglove/ext/early_stopping/step_wise.py,sha256=P99Z2hODmCNBnR3iVOOj2NCCwveSH6h5VnwEv_UABvI,10117
|
180
|
+
pyglove/ext/early_stopping/step_wise_test.py,sha256=I9DDMrCpDwIWC6mV9w2pDypnrwYnWjg6QXTFNT13cts,9032
|
181
|
+
pyglove/ext/evolution/__init__.py,sha256=lAf4NyxUZRt39kMFFoW_i8-ExigJXakG1-sUREW7jkQ,3214
|
182
|
+
pyglove/ext/evolution/base.py,sha256=I27qJja6MErMs3SyrlBYvmDQ4eTq9dY9RVpscKlwReQ,50090
|
183
|
+
pyglove/ext/evolution/base_test.py,sha256=yIw4YS60c_MvDj71QkoxX5Y2NLZgGc_KzT_NuHMCXMk,29936
|
184
|
+
pyglove/ext/evolution/hill_climb.py,sha256=Bysi2u4KEM7d9CIPcnvKKgEQHttkaKFkI8xlrNOkBB8,1688
|
185
|
+
pyglove/ext/evolution/hill_climb_test.py,sha256=7snzopGFRgkryNXiDVcHMhtVz6LXLZCOH_tz_t15b4I,3110
|
186
|
+
pyglove/ext/evolution/mutators.py,sha256=ZkNmIf9B2KRP3H7UfML7nkjUYPPgOkm5Fe1kaJQ8W5I,10062
|
187
|
+
pyglove/ext/evolution/mutators_test.py,sha256=F7HYeptAsATHbDHG_pEiX-Kz8V3_yGlFLo_DYhXyH-4,17975
|
188
|
+
pyglove/ext/evolution/neat.py,sha256=i-O9TEr4a1zfI3IKfDKBmUEYjoj6I_RJcnKdfPR00Qo,8162
|
189
|
+
pyglove/ext/evolution/neat_test.py,sha256=qbNCf5dkLOwJtplfRUCVoE-r0OtVM7n_WzzInp54w9c,4474
|
190
|
+
pyglove/ext/evolution/nsga2.py,sha256=gmRj84PjjnWbmB4GTVqZidr5nOleAav7Za5OoLKDiDQ,6427
|
191
|
+
pyglove/ext/evolution/nsga2_test.py,sha256=YDHZ27jDOoFa-b6He3KUD9OR-0tZ0eh4CQt9_u89ym0,8430
|
192
|
+
pyglove/ext/evolution/recombinators.py,sha256=uA9yXp9I3A75rYzzKTIxlh4V4gW_u1fO_uWRMYhsHys,40354
|
193
|
+
pyglove/ext/evolution/recombinators_test.py,sha256=xHp9ZMLxot7Mx0tSB3PGle5Y0Bud-4n61A3aQJZY_SM,19290
|
194
|
+
pyglove/ext/evolution/regularized_evolution.py,sha256=kSILZHmlThoszJ5Q07ZDm0K9mnE19DAbZ9yn_1ADiDU,1954
|
195
|
+
pyglove/ext/evolution/regularized_evolution_test.py,sha256=g1cAoHrx3I-ZTe1wuPdM5f2TMOvOT4jMsoCPyPSWboQ,3472
|
196
|
+
pyglove/ext/evolution/selectors.py,sha256=VFgA4p645LE1jXoE-DZx4x9Ka_SrUAhn8AkHsczSl4s,12102
|
197
|
+
pyglove/ext/evolution/selectors_test.py,sha256=Cqs4g9UvKRM0sBlpiqcZu7_HXKoPMpTaApfoCodazFo,7714
|
198
|
+
pyglove/ext/evolution/where.py,sha256=yfjjEpf9N2PFsLx1WHT-5gpTq53iMgqEcLXjpm7J3Ts,4761
|
199
|
+
pyglove/ext/evolution/where_test.py,sha256=nswc__l4r1JFl40xKU0rIt0sH9Iud1Odltj171W6zvw,1931
|
200
|
+
pyglove/ext/mutfun/__init__.py,sha256=LaGc13KS90EV5hCK3ChWYvQEvf4yEkdjNeYHXZ0HljA,4959
|
201
|
+
pyglove/ext/mutfun/base.py,sha256=tLNJzbHnct1sun9nbfwe8ZeACMZMdOPU1HrMmGvwl1A,16703
|
202
|
+
pyglove/ext/mutfun/base_test.py,sha256=Yst9JGydOXl6EpjNJ8UmLXPacin_5863FKgNWacMkv8,21312
|
203
|
+
pyglove/ext/mutfun/basic_ops.py,sha256=DfwjLI0rN0g6X8HpkEPNZX5y0d1NPCb6P-FxQzeNUlI,5667
|
204
|
+
pyglove/ext/mutfun/basic_ops_test.py,sha256=NcRTUWG6WmL6EljsOk-of7-xHaRGRjAbjW3I6huyd8o,11244
|
205
|
+
pyglove/ext/scalars/__init__.py,sha256=6RZ3w8_SgN0pl20JM4M_k93r9vEUNGR9MbmCx5-lBvQ,2749
|
206
|
+
pyglove/ext/scalars/base.py,sha256=Q6a93-RsocyXYRKtj4A9PQPnmPujRHy5RcLU5fvIw4U,7102
|
207
|
+
pyglove/ext/scalars/base_test.py,sha256=yKTseS5PlTqwzfbkvSGgoQyJbhmpG0hRQFS3io6eoZQ,3095
|
208
|
+
pyglove/ext/scalars/maths.py,sha256=pLGWwWc8pLtndSwHGYbwr4XWp2AOs0Cuf63wpifmvDY,3188
|
209
|
+
pyglove/ext/scalars/maths_test.py,sha256=v_VKkcReUrSAuWjBCb0O5XHlA9PD5I-MnfFlpHiNCSg,3923
|
210
|
+
pyglove/ext/scalars/randoms.py,sha256=LkMIIx7lOq_lvJvVS3BrgWGuWl7Pi91-lA-O8x_gZsg,4198
|
211
|
+
pyglove/ext/scalars/randoms_test.py,sha256=nEhiqarg8l_5EOucp59CYrpO2uKxS1pe0hmBdZUzRNM,2000
|
212
|
+
pyglove/ext/scalars/step_wise.py,sha256=IDw3tuTpv0KVh7AN44W43zqm1-E0HWPUlytWOQC9w3Y,3789
|
213
|
+
pyglove/ext/scalars/step_wise_test.py,sha256=TL1vJ19xVx2t5HKuyIzGoogF7N3Rm8YhLE6JF7i0iy8,2540
|
214
|
+
pyglove-0.4.5.dev202501250807.dist-info/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
215
|
+
pyglove-0.4.5.dev202501250807.dist-info/METADATA,sha256=VApc7ubJdme2te9Hs69f0gj9OPho4m4aCTE2RElX27M,7067
|
216
|
+
pyglove-0.4.5.dev202501250807.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
217
|
+
pyglove-0.4.5.dev202501250807.dist-info/top_level.txt,sha256=wITzJSKcj8GZUkbq-MvUQnFadkiuAv_qv5qQMw0fIow,8
|
218
|
+
pyglove-0.4.5.dev202501250807.dist-info/RECORD,,
|
@@ -1,164 +0,0 @@
|
|
1
|
-
# Copyright 2022 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
|
-
"""Utility library that provides common traits for objects in Python.
|
16
|
-
|
17
|
-
Overview
|
18
|
-
--------
|
19
|
-
|
20
|
-
``pg.object_utils`` sits at the bottom of all PyGlove modules and empowers other
|
21
|
-
modules with the following features:
|
22
|
-
|
23
|
-
+---------------------+--------------------------------------------+
|
24
|
-
| Functionality | API |
|
25
|
-
+=====================+============================================+
|
26
|
-
| Formatting | :class:`pg.Formattable`, |
|
27
|
-
| | |
|
28
|
-
| | :func:`pg.format`, |
|
29
|
-
| | |
|
30
|
-
| | :func:`pg.print`, |
|
31
|
-
| | |
|
32
|
-
| | :func:`pg.object_utils.kvlist_str`, |
|
33
|
-
| | |
|
34
|
-
| | :func:`pg.object_utils.quote_if_str`, |
|
35
|
-
| | |
|
36
|
-
| | :func:`pg.object_utils.message_on_path` |
|
37
|
-
+---------------------+--------------------------------------------+
|
38
|
-
| Serialization | :class:`pg.JSONConvertible`, |
|
39
|
-
| | |
|
40
|
-
| | :func:`pg.registered_types`, |
|
41
|
-
| | |
|
42
|
-
| | :func:`pg.object_utils.to_json`, |
|
43
|
-
| | |
|
44
|
-
| | :func:`pg.object_utils.from_json`, |
|
45
|
-
+---------------------+--------------------------------------------+
|
46
|
-
| Partial construction| :class:`pg.MaybePartial`, |
|
47
|
-
| | |
|
48
|
-
| | :const:`pg.MISSING_VALUE`. |
|
49
|
-
+---------------------+--------------------------------------------+
|
50
|
-
| Hierarchical key | :class:`pg.KeyPath` |
|
51
|
-
| representation | |
|
52
|
-
+---------------------+--------------------------------------------+
|
53
|
-
| Hierarchical object | :func:`pg.object_utils.traverse` |
|
54
|
-
| traversal | |
|
55
|
-
+---------------------+--------------------------------------------+
|
56
|
-
| Hierarchical object | :func:`pg.object_utils.transform`, |
|
57
|
-
| transformation | |
|
58
|
-
| | :func:`pg.object_utils.merge`, |
|
59
|
-
| | |
|
60
|
-
| | :func:`pg.object_utils.canonicalize`, |
|
61
|
-
| | |
|
62
|
-
| | :func:`pg.object_utils.flatten` |
|
63
|
-
+---------------------+--------------------------------------------+
|
64
|
-
| Code generation | :class:`pg.object_utils.make_function` |
|
65
|
-
+---------------------+--------------------------------------------+
|
66
|
-
| Docstr handling | :class:`pg.docstr`, |
|
67
|
-
+---------------------+--------------------------------------------+
|
68
|
-
| Error handling | :class:`pg.catch_errors`, |
|
69
|
-
+---------------------+--------------------------------------------+
|
70
|
-
"""
|
71
|
-
# pylint: enable=line-too-long
|
72
|
-
# pylint: disable=g-bad-import-order
|
73
|
-
# pylint: disable=g-importing-member
|
74
|
-
|
75
|
-
# Handling JSON conversion.
|
76
|
-
from pyglove.core.object_utils.json_conversion import Nestable
|
77
|
-
from pyglove.core.object_utils.json_conversion import JSONValueType
|
78
|
-
|
79
|
-
from pyglove.core.object_utils.json_conversion import JSONConvertible
|
80
|
-
from pyglove.core.object_utils.json_conversion import from_json
|
81
|
-
from pyglove.core.object_utils.json_conversion import to_json
|
82
|
-
from pyglove.core.object_utils.json_conversion import registered_types
|
83
|
-
|
84
|
-
# Handling formatting.
|
85
|
-
from pyglove.core.object_utils.formatting import Formattable
|
86
|
-
from pyglove.core.object_utils.formatting import format # pylint: disable=redefined-builtin
|
87
|
-
from pyglove.core.object_utils.formatting import printv as print # pylint: disable=redefined-builtin
|
88
|
-
from pyglove.core.object_utils.formatting import kvlist_str
|
89
|
-
from pyglove.core.object_utils.formatting import quote_if_str
|
90
|
-
from pyglove.core.object_utils.formatting import maybe_markdown_quote
|
91
|
-
from pyglove.core.object_utils.formatting import comma_delimited_str
|
92
|
-
from pyglove.core.object_utils.formatting import camel_to_snake
|
93
|
-
from pyglove.core.object_utils.formatting import auto_plural
|
94
|
-
from pyglove.core.object_utils.formatting import BracketType
|
95
|
-
from pyglove.core.object_utils.formatting import bracket_chars
|
96
|
-
from pyglove.core.object_utils.formatting import RawText
|
97
|
-
|
98
|
-
# Context managers for defining the default format for __str__ and __repr__.
|
99
|
-
from pyglove.core.object_utils.formatting import str_format
|
100
|
-
from pyglove.core.object_utils.formatting import repr_format
|
101
|
-
|
102
|
-
# Value location.
|
103
|
-
from pyglove.core.object_utils.value_location import KeyPath
|
104
|
-
from pyglove.core.object_utils.value_location import KeyPathSet
|
105
|
-
from pyglove.core.object_utils.value_location import StrKey
|
106
|
-
from pyglove.core.object_utils.value_location import message_on_path
|
107
|
-
|
108
|
-
# Value markers.
|
109
|
-
from pyglove.core.object_utils.missing import MissingValue
|
110
|
-
from pyglove.core.object_utils.missing import MISSING_VALUE
|
111
|
-
|
112
|
-
# Handling hierarchical.
|
113
|
-
from pyglove.core.object_utils.hierarchical import traverse
|
114
|
-
from pyglove.core.object_utils.hierarchical import transform
|
115
|
-
from pyglove.core.object_utils.hierarchical import flatten
|
116
|
-
from pyglove.core.object_utils.hierarchical import canonicalize
|
117
|
-
from pyglove.core.object_utils.hierarchical import merge
|
118
|
-
from pyglove.core.object_utils.hierarchical import merge_tree
|
119
|
-
from pyglove.core.object_utils.hierarchical import is_partial
|
120
|
-
from pyglove.core.object_utils.hierarchical import try_listify_dict_with_int_keys
|
121
|
-
|
122
|
-
# Common traits.
|
123
|
-
from pyglove.core.object_utils.common_traits import MaybePartial
|
124
|
-
from pyglove.core.object_utils.common_traits import Functor
|
125
|
-
|
126
|
-
from pyglove.core.object_utils.common_traits import explicit_method_override
|
127
|
-
from pyglove.core.object_utils.common_traits import ensure_explicit_method_override
|
128
|
-
|
129
|
-
# Handling code generation.
|
130
|
-
from pyglove.core.object_utils.codegen import make_function
|
131
|
-
|
132
|
-
# Handling thread local values.
|
133
|
-
from pyglove.core.object_utils.thread_local import thread_local_value_scope
|
134
|
-
from pyglove.core.object_utils.thread_local import thread_local_has
|
135
|
-
from pyglove.core.object_utils.thread_local import thread_local_set
|
136
|
-
from pyglove.core.object_utils.thread_local import thread_local_get
|
137
|
-
from pyglove.core.object_utils.thread_local import thread_local_del
|
138
|
-
from pyglove.core.object_utils.thread_local import thread_local_increment
|
139
|
-
from pyglove.core.object_utils.thread_local import thread_local_decrement
|
140
|
-
from pyglove.core.object_utils.thread_local import thread_local_push
|
141
|
-
from pyglove.core.object_utils.thread_local import thread_local_pop
|
142
|
-
from pyglove.core.object_utils.thread_local import thread_local_peek
|
143
|
-
|
144
|
-
# Handling docstrings.
|
145
|
-
from pyglove.core.object_utils.docstr_utils import DocStr
|
146
|
-
from pyglove.core.object_utils.docstr_utils import DocStrStyle
|
147
|
-
from pyglove.core.object_utils.docstr_utils import DocStrEntry
|
148
|
-
from pyglove.core.object_utils.docstr_utils import DocStrExample
|
149
|
-
from pyglove.core.object_utils.docstr_utils import DocStrArgument
|
150
|
-
from pyglove.core.object_utils.docstr_utils import DocStrReturns
|
151
|
-
from pyglove.core.object_utils.docstr_utils import DocStrRaises
|
152
|
-
from pyglove.core.object_utils.docstr_utils import docstr
|
153
|
-
|
154
|
-
# Handling exceptions.
|
155
|
-
from pyglove.core.object_utils.error_utils import catch_errors
|
156
|
-
from pyglove.core.object_utils.error_utils import CatchErrorsContext
|
157
|
-
from pyglove.core.object_utils.error_utils import ErrorInfo
|
158
|
-
|
159
|
-
# Timing.
|
160
|
-
from pyglove.core.object_utils.timing import timeit
|
161
|
-
from pyglove.core.object_utils.timing import TimeIt
|
162
|
-
|
163
|
-
# pylint: enable=g-importing-member
|
164
|
-
# pylint: enable=g-bad-import-order
|