revisit 0.0.12__py2.py3-none-any.whl → 0.0.14__py2.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.
revisit/revisit.py CHANGED
@@ -10,7 +10,8 @@ import re
10
10
  import os
11
11
  import shutil
12
12
  from . import widget as _widget
13
-
13
+ import ast
14
+ import time
14
15
 
15
16
  __all__ = [
16
17
  "component",
@@ -67,6 +68,7 @@ class _WrappedComponent(_JSONableBaseModel):
67
68
  component_name__: str
68
69
  base__: Optional[_WrappedComponent] = None
69
70
  context__: Optional[dict] = None
71
+ metadata__: Optional[dict] = None
70
72
  root: rvt_models.IndividualComponent
71
73
 
72
74
  def model_post_init(self, __context: Any) -> None:
@@ -158,18 +160,29 @@ class _WrappedComponentBlock(_JSONableBaseModel):
158
160
 
159
161
  def get_component(self, name: str) -> _WrappedComponent:
160
162
  for entry in self.component_objects__:
161
- print(f'Comp Name: {entry.component_name__}')
162
- print(f'Name: {name}')
163
163
  if entry.component_name__ == name:
164
164
  return entry
165
165
 
166
- def permute(self, factors: List[str], order: rvt_models.Order, numSamples: Optional[int] = None,) -> None:
166
+ def permute(
167
+ self,
168
+ factors: List[str],
169
+ order: rvt_models.Order,
170
+ numSamples: Optional[int] = None,
171
+ component_function=None
172
+ ) -> None:
167
173
  # Convert to JSON
168
174
  self_json = json.loads(self.__str__())
169
175
  # Get all current component dictionaries
170
176
  components_dict = {c.component_name__: c for c in self.component_objects__}
171
177
  # Recursively start permutation function
172
- new_permuted_component_block = _recursive_json_permutation(self_json, factors=factors, order=order, numSamples=numSamples, input_components=components_dict)
178
+ new_permuted_component_block = _recursive_json_permutation(
179
+ self_json,
180
+ factors=factors,
181
+ order=order,
182
+ numSamples=numSamples,
183
+ input_components=components_dict,
184
+ component_function=component_function
185
+ )
173
186
  # Set new objects
174
187
  self.component_objects__ = new_permuted_component_block.component_objects__
175
188
  # Set new root
@@ -685,7 +698,8 @@ def _recursive_json_permutation(
685
698
  factors: List[str],
686
699
  order: rvt_models.Order,
687
700
  numSamples: int,
688
- input_components: dict
701
+ input_components: dict,
702
+ component_function=None
689
703
  ):
690
704
  new_seq = __sequence__(order=order, numSamples=numSamples)
691
705
  while input_json['components']:
@@ -698,20 +712,22 @@ def _recursive_json_permutation(
698
712
  curr_seq = __sequence__(order=order, numSamples=numSamples)
699
713
  # Generate new comp for each
700
714
  for entry in factors:
701
- # Split factor entry
702
- [name, value] = entry.split(":")
703
715
  # Assign params
704
- new_params = {name: value}
705
- if curr_comp.root.parameters is not None:
706
- new_params = {**curr_comp.root.parameters, **new_params}
716
+ metadata = entry
717
+ if curr_comp.metadata__ is not None:
718
+ metadata = {**curr_comp.metadata__, **entry}
707
719
  # Create new component
708
- curr_comp = __component__(
709
- base__=curr_comp,
710
- component_name__=f"{c}__{entry}",
711
- parameters=new_params
712
- )
720
+ comp_name = ":".join(f"{key}:{value}" for key, value in entry.items())
721
+ if component_function:
722
+ new_comp = component_function(**metadata)
723
+ else:
724
+ new_comp = __component__(
725
+ base__=curr_comp,
726
+ component_name__=f"{c}__{comp_name}",
727
+ metadata__=metadata
728
+ )
713
729
  # Add to curr seq block
714
- curr_seq = curr_seq + curr_comp
730
+ curr_seq = curr_seq + new_comp
715
731
  # Add seq block to outer seq block
716
732
  else:
717
733
  new_input_json = c
@@ -724,7 +740,8 @@ def _recursive_json_permutation(
724
740
  order=order,
725
741
  numSamples=numSamples,
726
742
  input_components=input_components,
727
- factors=factors
743
+ factors=factors,
744
+ component_function=component_function
728
745
  )
729
746
  curr_seq.root.order = new_input_json['order']
730
747
  curr_seq.root.numSamples = temp_num_samples
revisit/static/widget.css CHANGED
@@ -1 +1,2 @@
1
1
  .revisit_notebook_widget button{background:#f0f0f0;border-radius:5px;border:1px solid #ccc;cursor:pointer;font-family:Roboto,sans-serif;font-size:1em;margin:5px;padding:5px 10px;transition:box-shadow .25s ease-in-out;&:hover{background:#e0e0e0;box-shadow:0 0 5px #ccc}&:active{background:#d0d0d0;box-shadow:0 0 5px #ccc inset}}.revisit_notebook_widget iframe{border:0;margin:0;width:100%}.revisit_notebook_widget{.sequence{width:100%;display:flex}.sequenceComponent{display:flex;padding-left:4px;padding-right:4px;padding-bottom:2px;&:hover{background:#0000001a}}.sequenceComponentIndividual{background:#000;width:5px;height:20px;margin-top:5px}}
2
+ /*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vanMvd2lkZ2V0LmNzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLnJldmlzaXRfbm90ZWJvb2tfd2lkZ2V0IGJ1dHRvbiB7XG5cdGJhY2tncm91bmQ6ICNmMGYwZjA7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcblx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRmb250LWZhbWlseTogXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcblx0Zm9udC1zaXplOiAxZW07XG5cdG1hcmdpbjogNXB4O1xuXHRwYWRkaW5nOiA1cHggMTBweDtcblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI1cyBlYXNlLWluLW91dDtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiAjZTBlMGUwO1xuXHRcdGJveC1zaGFkb3c6IDAgMCA1cHggMCAjY2NjO1xuXHR9XG5cblx0JjphY3RpdmUge1xuXHRcdGJhY2tncm91bmQ6ICNkMGQwZDA7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDVweCAwICNjY2MgaW5zZXQ7XG5cblx0fVxufVxuXG4ucmV2aXNpdF9ub3RlYm9va193aWRnZXQgaWZyYW1lIHtcblx0Ym9yZGVyOiAwO1xuXHRtYXJnaW46IDA7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4ucmV2aXNpdF9ub3RlYm9va193aWRnZXQge1xuXHQuc2VxdWVuY2Uge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cblxuXHQuc2VxdWVuY2VDb21wb25lbnQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cGFkZGluZy1sZWZ0OiA0cHg7XG5cdFx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAycHg7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjEpO1xuXHRcdH1cblx0fVxuXG5cdC5zZXF1ZW5jZUNvbXBvbmVudEluZGl2aWR1YWwge1xuXHRcdGJhY2tncm91bmQ6ICMwMDAwMDA7XG5cdFx0d2lkdGg6IDVweDtcblx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0bWFyZ2luLXRvcDogNXB4O1xuXHR9XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsQ0FBQyx3QkFBd0IsT0FDeEIsV0FBWSxRQURiLGNBRWdCLElBQ2YsT0FBUSxJQUFJLE1BQU0sS0FDbEIsT0FBUSxRQUNSLFlBQWEsTUFBUSxDQUFFLFdBQ3ZCLFVBQVcsSUFOWixPQU9TLElBUFQsUUFRVSxJQUFJLEtBQ2IsV0FBWSxXQUFXLEtBQU0sWUFFN0IsQ0FBQyxPQUNBLFdBQVksUUFDWixXQUFZLEVBQUUsRUFBRSxJQUFNLElBQ3ZCLENBRUEsQ0FBQyxRQUNBLFdBQVksUUFDWixXQUFZLEVBQUUsRUFBRSxJQUFNLEtBQUssS0FFNUIsQ0FDRCxDQUVBLENBdkJDLHdCQXVCd0IsT0FDeEIsT0FBUSxFQXhCVCxPQXlCUyxFQUNSLE1BQU8sSUFDUixDQUVBLENBN0JDLHdCQThCQSxDQUFDLFNBQ0EsTUFBTyxLQUNQLFFBQVMsSUFDVixDQUVBLENBQUMsa0JBQ0EsUUFBUyxLQUNULGFBQWMsSUFDZCxjQUFlLElBQ2YsZUFBZ0IsSUFFaEIsQ0FBQyxPQUNBLFdBQVksU0FDYixDQUNELENBRUEsQ0FBQyw0QkFDQSxXQUFZLEtBQ1osTUFBTyxJQUNQLE9BQVEsS0FDUixXQUFZLEdBQ2IsQ0FDRCIsCiAgIm5hbWVzIjogW10KfQo= */