experimaestro 1.8.4__py3-none-any.whl → 1.8.5__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.

Potentially problematic release.


This version of experimaestro might be problematic. Click here for more details.

@@ -803,6 +803,9 @@ class ConfigInformation:
803
803
  def __collect_objects__(value, objects: List[Dict], context: SerializationContext):
804
804
  """Serialize all needed configuration objects, looking at sub
805
805
  configurations if necessary"""
806
+ if value is None:
807
+ return
808
+
806
809
  if isinstance(value, Config):
807
810
  value.__xpm__.__get_objects__(objects, context)
808
811
  elif isinstance(value, (list, tuple)):
@@ -129,6 +129,9 @@ class ConfigWalk:
129
129
  self.visited[xid] = processed
130
130
  return processed
131
131
 
132
+ if x is None:
133
+ return None
134
+
132
135
  if isinstance(x, list):
133
136
  result = []
134
137
  for i, sv in enumerate(x):
@@ -1,3 +1,4 @@
1
+ from typing import Optional
1
2
  from experimaestro import (
2
3
  Config,
3
4
  Task,
@@ -78,8 +79,8 @@ class Object2(Config):
78
79
  def test_serializers_serialization():
79
80
  context = SerializationContext(save_directory=None)
80
81
 
81
- obj1 = Object1()
82
- obj2 = Object2(object=obj1)
82
+ obj1 = Object1.C()
83
+ obj2 = Object2.C(object=obj1)
83
84
 
84
85
  data = state_dict(context, [obj1, obj2])
85
86
 
@@ -92,3 +93,21 @@ def test_serializers_serialization():
92
93
  assert isinstance(obj1, Object1) and not isinstance(obj1, ConfigMixin)
93
94
  assert isinstance(obj2, Object2)
94
95
  assert obj2.object is obj1
96
+
97
+
98
+ class SubConfig(Config):
99
+ pass
100
+
101
+
102
+ class MultiParamObject(Config):
103
+ opt_a: Param[Optional[int]]
104
+
105
+ x: Param[dict[str, Optional[SubConfig]]]
106
+
107
+
108
+ def test_serializers_types():
109
+ context = SerializationContext(save_directory=None)
110
+
111
+ config = MultiParamObject.C(x={"a": None})
112
+ config.__xpm__.seal(context)
113
+ state_dict(context, config)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: experimaestro
3
- Version: 1.8.4
3
+ Version: 1.8.5
4
4
  Summary: "Experimaestro is a computer science experiment manager"
5
5
  License: GPL-3
6
6
  Keywords: experiment manager
@@ -17,9 +17,9 @@ experimaestro/core/callbacks.py,sha256=59JfeUgWcCCdIQ3pvh-xNnoRp9BX8f4iOAkgm16wB
17
17
  experimaestro/core/context.py,sha256=41jvgudz4sgMDWrqOhPbgFRJHa3klWKvS3l_L661er0,2600
18
18
  experimaestro/core/identifier.py,sha256=JadBAdW2fOIgoTyMRtKI_RY9SXQP2B1vq1rUcV465Hs,10214
19
19
  experimaestro/core/objects/__init__.py,sha256=ucJY5e17QQ1Kc-GYXeL7g8GFj8rP0XB4g2vrl32uhxY,721
20
- experimaestro/core/objects/config.py,sha256=fFg8PXTVDxDJk2A1xvckKGsf2bL6kUdkXmqEAyBVjuI,56943
20
+ experimaestro/core/objects/config.py,sha256=qOUgCmX1NwhRhpTVxgr2sSAqBCMYloUXb5f-NiXgV8Q,56989
21
21
  experimaestro/core/objects/config_utils.py,sha256=ZLECGkeIWdzunm8vwWsQhvcSgV1e064BgXbLiZnxSEM,1288
22
- experimaestro/core/objects/config_walk.py,sha256=FOSsyJlntglWL8DshxwEbQPmNZ3ZE9r5yOvTKkmRTHw,4198
22
+ experimaestro/core/objects/config_walk.py,sha256=gyDMrVPbBMChn7r4em_gQXuqnxASO_JVauEbnJNO8II,4245
23
23
  experimaestro/core/objects.pyi,sha256=xvlsRj4u1xsJxbevJl5Ner_HwmxR8x1JlAeIVDJzuy0,6498
24
24
  experimaestro/core/serialization.py,sha256=TLMTfU627bs9_1gyY2O5tX_xy1GhePIzleXwi27ffz0,5683
25
25
  experimaestro/core/serializers.py,sha256=R_CAMyjjfU1oi-eHU6VlEUixJpFayGqEPaYu7VsD9xA,1197
@@ -127,7 +127,7 @@ experimaestro/tests/test_objects.py,sha256=zycxjvWuJAbPR8-q2T3zuBY9xfmlhf1YvtOcr
127
127
  experimaestro/tests/test_outputs.py,sha256=DYzPk5TT_yLumy8SsQbl-S66ivVxJ-ERFrZ68KQZ4KU,781
128
128
  experimaestro/tests/test_param.py,sha256=7BltCUm9uhtEupJZ-QSaj7MxuXoUl73NjE8NfzJD5BA,7290
129
129
  experimaestro/tests/test_progress.py,sha256=wtIGQzlV3ldd_wMng11LinVESchW-1J954mCJNlG28E,7580
130
- experimaestro/tests/test_serializers.py,sha256=p3WdDsifizn5FDq_jIYTm0Z2AWf62P4B6nnzcVgHoYA,2341
130
+ experimaestro/tests/test_serializers.py,sha256=u3A5JbusN8aW6x6reUIwpU1Fs-avnzTRU7WuTear9Qs,2722
131
131
  experimaestro/tests/test_snippets.py,sha256=rojnyDjtmAMnSuDUj6Bv9XEgdP8oQf2nVc132JF8vsM,3081
132
132
  experimaestro/tests/test_ssh.py,sha256=KS1NWltiXrJBSStY9d4mwrexeqgNGWmhxuAU_WLQDAU,1449
133
133
  experimaestro/tests/test_tags.py,sha256=v_8_7LuEHfY_gfa0JRCUkmgJh8h6RMya_nd5NcPAJPw,2852
@@ -150,8 +150,8 @@ experimaestro/utils/jupyter.py,sha256=JcEo2yQK7x3Cr1tNl5FqGMZOICxCv9DwMvL5xsWdQP
150
150
  experimaestro/utils/resources.py,sha256=j-nvsTFwmgENMoVGOD2Ap-UD3WU85WkI0IgeSszMCX4,1328
151
151
  experimaestro/utils/settings.py,sha256=jpFMqF0DLL4_P1xGal0zVR5cOrdD8O0Y2IOYvnRgN3k,793
152
152
  experimaestro/xpmutils.py,sha256=S21eMbDYsHfvmZ1HmKpq5Pz5O-1HnCLYxKbyTBbASyQ,638
153
- experimaestro-1.8.4.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
154
- experimaestro-1.8.4.dist-info/METADATA,sha256=a7FkYWKM7_g5gpZgrTWxSLy2x9OyhgPKsuEPIPAdnp8,6170
155
- experimaestro-1.8.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
156
- experimaestro-1.8.4.dist-info/entry_points.txt,sha256=TppTNiz5qm5xm1fhAcdLKdCLMrlL-eQggtCrCI00D9c,446
157
- experimaestro-1.8.4.dist-info/RECORD,,
153
+ experimaestro-1.8.5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
154
+ experimaestro-1.8.5.dist-info/METADATA,sha256=0qVBZsnk31ZTq0hrOn9yOW7xTggTuTzqX5j5uZaQ3zA,6170
155
+ experimaestro-1.8.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
156
+ experimaestro-1.8.5.dist-info/entry_points.txt,sha256=TppTNiz5qm5xm1fhAcdLKdCLMrlL-eQggtCrCI00D9c,446
157
+ experimaestro-1.8.5.dist-info/RECORD,,