edsl 0.1.33.dev2__py3-none-any.whl → 0.1.34__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.
Files changed (78) hide show
  1. edsl/Base.py +24 -14
  2. edsl/__init__.py +1 -0
  3. edsl/__version__.py +1 -1
  4. edsl/agents/Agent.py +6 -6
  5. edsl/agents/Invigilator.py +28 -6
  6. edsl/agents/InvigilatorBase.py +8 -27
  7. edsl/agents/{PromptConstructionMixin.py → PromptConstructor.py} +150 -182
  8. edsl/agents/prompt_helpers.py +129 -0
  9. edsl/config.py +26 -34
  10. edsl/coop/coop.py +14 -4
  11. edsl/data_transfer_models.py +26 -73
  12. edsl/enums.py +2 -0
  13. edsl/inference_services/AnthropicService.py +5 -2
  14. edsl/inference_services/AwsBedrock.py +5 -2
  15. edsl/inference_services/AzureAI.py +5 -2
  16. edsl/inference_services/GoogleService.py +108 -33
  17. edsl/inference_services/InferenceServiceABC.py +44 -13
  18. edsl/inference_services/MistralAIService.py +5 -2
  19. edsl/inference_services/OpenAIService.py +10 -6
  20. edsl/inference_services/TestService.py +34 -16
  21. edsl/inference_services/TogetherAIService.py +170 -0
  22. edsl/inference_services/registry.py +2 -0
  23. edsl/jobs/Jobs.py +109 -18
  24. edsl/jobs/buckets/BucketCollection.py +24 -15
  25. edsl/jobs/buckets/TokenBucket.py +64 -10
  26. edsl/jobs/interviews/Interview.py +130 -49
  27. edsl/jobs/interviews/{interview_exception_tracking.py → InterviewExceptionCollection.py} +16 -0
  28. edsl/jobs/interviews/InterviewExceptionEntry.py +2 -0
  29. edsl/jobs/runners/JobsRunnerAsyncio.py +119 -173
  30. edsl/jobs/runners/JobsRunnerStatus.py +332 -0
  31. edsl/jobs/tasks/QuestionTaskCreator.py +1 -13
  32. edsl/jobs/tasks/TaskHistory.py +17 -0
  33. edsl/language_models/LanguageModel.py +36 -38
  34. edsl/language_models/registry.py +13 -9
  35. edsl/language_models/utilities.py +5 -2
  36. edsl/questions/QuestionBase.py +74 -16
  37. edsl/questions/QuestionBaseGenMixin.py +28 -0
  38. edsl/questions/QuestionBudget.py +93 -41
  39. edsl/questions/QuestionCheckBox.py +1 -1
  40. edsl/questions/QuestionFreeText.py +6 -0
  41. edsl/questions/QuestionMultipleChoice.py +13 -24
  42. edsl/questions/QuestionNumerical.py +5 -4
  43. edsl/questions/Quick.py +41 -0
  44. edsl/questions/ResponseValidatorABC.py +11 -6
  45. edsl/questions/derived/QuestionLinearScale.py +4 -1
  46. edsl/questions/derived/QuestionTopK.py +4 -1
  47. edsl/questions/derived/QuestionYesNo.py +8 -2
  48. edsl/questions/descriptors.py +12 -11
  49. edsl/questions/templates/budget/__init__.py +0 -0
  50. edsl/questions/templates/budget/answering_instructions.jinja +7 -0
  51. edsl/questions/templates/budget/question_presentation.jinja +7 -0
  52. edsl/questions/templates/extract/__init__.py +0 -0
  53. edsl/questions/templates/numerical/answering_instructions.jinja +0 -1
  54. edsl/questions/templates/rank/__init__.py +0 -0
  55. edsl/questions/templates/yes_no/answering_instructions.jinja +2 -2
  56. edsl/results/DatasetExportMixin.py +5 -1
  57. edsl/results/Result.py +1 -1
  58. edsl/results/Results.py +4 -1
  59. edsl/scenarios/FileStore.py +178 -34
  60. edsl/scenarios/Scenario.py +76 -37
  61. edsl/scenarios/ScenarioList.py +19 -2
  62. edsl/scenarios/ScenarioListPdfMixin.py +150 -4
  63. edsl/study/Study.py +32 -0
  64. edsl/surveys/DAG.py +62 -0
  65. edsl/surveys/MemoryPlan.py +26 -0
  66. edsl/surveys/Rule.py +34 -1
  67. edsl/surveys/RuleCollection.py +55 -5
  68. edsl/surveys/Survey.py +189 -10
  69. edsl/surveys/base.py +4 -0
  70. edsl/templates/error_reporting/interview_details.html +6 -1
  71. edsl/utilities/utilities.py +9 -1
  72. {edsl-0.1.33.dev2.dist-info → edsl-0.1.34.dist-info}/METADATA +3 -1
  73. {edsl-0.1.33.dev2.dist-info → edsl-0.1.34.dist-info}/RECORD +75 -69
  74. edsl/jobs/interviews/retry_management.py +0 -39
  75. edsl/jobs/runners/JobsRunnerStatusMixin.py +0 -333
  76. edsl/scenarios/ScenarioImageMixin.py +0 -100
  77. {edsl-0.1.33.dev2.dist-info → edsl-0.1.34.dist-info}/LICENSE +0 -0
  78. {edsl-0.1.33.dev2.dist-info → edsl-0.1.34.dist-info}/WHEEL +0 -0
edsl/surveys/Survey.py CHANGED
@@ -22,6 +22,10 @@ from edsl.utilities.decorators import add_edsl_version, remove_edsl_version
22
22
 
23
23
  from edsl.agents.Agent import Agent
24
24
 
25
+ from edsl.surveys.instructions.InstructionCollection import InstructionCollection
26
+ from edsl.surveys.instructions.Instruction import Instruction
27
+ from edsl.surveys.instructions.ChangeInstruction import ChangeInstruction
28
+
25
29
 
26
30
  class ValidatedString(str):
27
31
  def __new__(cls, content):
@@ -32,13 +36,6 @@ class ValidatedString(str):
32
36
  return super().__new__(cls, content)
33
37
 
34
38
 
35
- # from edsl.surveys.Instruction import Instruction
36
- # from edsl.surveys.Instruction import ChangeInstruction
37
- from edsl.surveys.instructions.InstructionCollection import InstructionCollection
38
- from edsl.surveys.instructions.Instruction import Instruction
39
- from edsl.surveys.instructions.ChangeInstruction import ChangeInstruction
40
-
41
-
42
39
  class Survey(SurveyExportMixin, SurveyFlowVisualizationMixin, Base):
43
40
  """A collection of questions that supports skip logic."""
44
41
 
@@ -289,16 +286,52 @@ class Survey(SurveyExportMixin, SurveyFlowVisualizationMixin, Base):
289
286
 
290
287
  # region: Simulation methods
291
288
 
289
+ @classmethod
290
+ def random_survey(self):
291
+ """Create a random survey."""
292
+ from edsl.questions import QuestionMultipleChoice, QuestionFreeText
293
+ from random import choice
294
+
295
+ num_questions = 10
296
+ questions = []
297
+ for i in range(num_questions):
298
+ if choice([True, False]):
299
+ q = QuestionMultipleChoice(
300
+ question_text="nothing",
301
+ question_name="q_" + str(i),
302
+ question_options=list(range(3)),
303
+ )
304
+ questions.append(q)
305
+ else:
306
+ questions.append(
307
+ QuestionFreeText(
308
+ question_text="nothing", question_name="q_" + str(i)
309
+ )
310
+ )
311
+ s = Survey(questions)
312
+ start_index = choice(range(num_questions - 1))
313
+ end_index = choice(range(start_index + 1, 10))
314
+ s = s.add_rule(f"q_{start_index}", "True", f"q_{end_index}")
315
+ question_to_delete = choice(range(num_questions))
316
+ s.delete_question(f"q_{question_to_delete}")
317
+ return s
318
+
292
319
  def simulate(self) -> dict:
293
320
  """Simulate the survey and return the answers."""
294
321
  i = self.gen_path_through_survey()
295
322
  q = next(i)
323
+ num_passes = 0
296
324
  while True:
325
+ num_passes += 1
297
326
  try:
298
327
  answer = q._simulate_answer()
299
328
  q = i.send({q.question_name: answer["answer"]})
300
329
  except StopIteration:
301
330
  break
331
+
332
+ if num_passes > 100:
333
+ print("Too many passes.")
334
+ raise Exception("Too many passes.")
302
335
  return self.answers
303
336
 
304
337
  def create_agent(self) -> "Agent":
@@ -573,7 +606,110 @@ class Survey(SurveyExportMixin, SurveyFlowVisualizationMixin, Base):
573
606
 
574
607
  return Survey(questions=self.questions + other.questions)
575
608
 
576
- def add_question(self, question: QuestionBase) -> Survey:
609
+ def move_question(self, identifier: Union[str, int], new_index: int):
610
+ if isinstance(identifier, str):
611
+ if identifier not in self.question_names:
612
+ raise ValueError(
613
+ f"Question name '{identifier}' does not exist in the survey."
614
+ )
615
+ index = self.question_name_to_index[identifier]
616
+ elif isinstance(identifier, int):
617
+ if identifier < 0 or identifier >= len(self.questions):
618
+ raise ValueError(f"Index {identifier} is out of range.")
619
+ index = identifier
620
+ else:
621
+ raise TypeError(
622
+ "Identifier must be either a string (question name) or an integer (question index)."
623
+ )
624
+
625
+ moving_question = self._questions[index]
626
+
627
+ new_survey = self.delete_question(index)
628
+ new_survey.add_question(moving_question, new_index)
629
+ return new_survey
630
+
631
+ def delete_question(self, identifier: Union[str, int]) -> Survey:
632
+ """
633
+ Delete a question from the survey.
634
+
635
+ :param identifier: The name or index of the question to delete.
636
+ :return: The updated Survey object.
637
+
638
+ >>> from edsl import QuestionMultipleChoice, Survey
639
+ >>> q1 = QuestionMultipleChoice(question_text="Q1", question_options=["A", "B"], question_name="q1")
640
+ >>> q2 = QuestionMultipleChoice(question_text="Q2", question_options=["C", "D"], question_name="q2")
641
+ >>> s = Survey().add_question(q1).add_question(q2)
642
+ >>> _ = s.delete_question("q1")
643
+ >>> len(s.questions)
644
+ 1
645
+ >>> _ = s.delete_question(0)
646
+ >>> len(s.questions)
647
+ 0
648
+ """
649
+ if isinstance(identifier, str):
650
+ if identifier not in self.question_names:
651
+ raise ValueError(
652
+ f"Question name '{identifier}' does not exist in the survey."
653
+ )
654
+ index = self.question_name_to_index[identifier]
655
+ elif isinstance(identifier, int):
656
+ if identifier < 0 or identifier >= len(self.questions):
657
+ raise ValueError(f"Index {identifier} is out of range.")
658
+ index = identifier
659
+ else:
660
+ raise TypeError(
661
+ "Identifier must be either a string (question name) or an integer (question index)."
662
+ )
663
+
664
+ # Remove the question
665
+ deleted_question = self._questions.pop(index)
666
+ del self.pseudo_indices[deleted_question.question_name]
667
+ # del self.question_name_to_index[deleted_question.question_name]
668
+
669
+ # Update indices
670
+ for question_name, old_index in self.pseudo_indices.items():
671
+ if old_index > index:
672
+ self.pseudo_indices[question_name] = old_index - 1
673
+
674
+ # for question_name, old_index in self.question_name_to_index.items():
675
+ # if old_index > index:
676
+ # self.question_name_to_index[question_name] = old_index - 1
677
+
678
+ # Update rules
679
+ new_rule_collection = RuleCollection()
680
+ for rule in self.rule_collection:
681
+ if rule.current_q == index:
682
+ continue # Remove rules associated with the deleted question
683
+ if rule.current_q > index:
684
+ rule.current_q -= 1
685
+ if rule.next_q > index:
686
+ rule.next_q -= 1
687
+
688
+ if rule.next_q == index:
689
+ if index == len(self.questions):
690
+ rule.next_q = EndOfSurvey
691
+ else:
692
+ rule.next_q = index
693
+ # rule.next_q = min(index, len(self.questions) - 1)
694
+ # continue
695
+
696
+ # if rule.next_q == index:
697
+ # rule.next_q = min(
698
+ # rule.next_q, len(self.questions) - 1
699
+ # ) # Adjust to last question if necessary
700
+
701
+ new_rule_collection.add_rule(rule)
702
+ self.rule_collection = new_rule_collection
703
+
704
+ # Update memory plan if it exists
705
+ if hasattr(self, "memory_plan"):
706
+ self.memory_plan.remove_question(deleted_question.question_name)
707
+
708
+ return self
709
+
710
+ def add_question(
711
+ self, question: QuestionBase, index: Optional[int] = None
712
+ ) -> Survey:
577
713
  """
578
714
  Add a question to survey.
579
715
 
@@ -596,15 +732,51 @@ class Survey(SurveyExportMixin, SurveyFlowVisualizationMixin, Base):
596
732
  raise SurveyCreationError(
597
733
  f"""Question name '{question.question_name}' already exists in survey. Existing names are {self.question_names}."""
598
734
  )
599
- index = len(self.questions)
735
+ if index is None:
736
+ index = len(self.questions)
737
+
738
+ if index > len(self.questions):
739
+ raise ValueError(
740
+ f"Index {index} is greater than the number of questions in the survey."
741
+ )
742
+ if index < 0:
743
+ raise ValueError(f"Index {index} is less than 0.")
744
+
745
+ interior_insertion = index != len(self.questions)
746
+
747
+ # index = len(self.questions)
600
748
  # TODO: This is a bit ugly because the user
601
749
  # doesn't "know" about _questions - it's generated by the
602
750
  # descriptor.
603
- self._questions.append(question)
751
+ self._questions.insert(index, question)
752
+
753
+ if interior_insertion:
754
+ for question_name, old_index in self.pseudo_indices.items():
755
+ if old_index >= index:
756
+ self.pseudo_indices[question_name] = old_index + 1
604
757
 
605
758
  self.pseudo_indices[question.question_name] = index
606
759
 
760
+ ## Re-do question_name to index - this is done automatically
761
+ # for question_name, old_index in self.question_name_to_index.items():
762
+ # if old_index >= index:
763
+ # self.question_name_to_index[question_name] = old_index + 1
764
+
765
+ ## Need to re-do the rule collection and the indices of the questions
766
+
767
+ ## If a rule is before the insertion index and next_q is also before the insertion index, no change needed.
768
+ ## If the rule is before the insertion index but next_q is after the insertion index, increment the next_q by 1
769
+ ## If the rule is after the insertion index, increment the current_q by 1 and the next_q by 1
770
+
607
771
  # using index + 1 presumes there is a next question
772
+ if interior_insertion:
773
+ for rule in self.rule_collection:
774
+ if rule.current_q >= index:
775
+ rule.current_q += 1
776
+ if rule.next_q >= index:
777
+ rule.next_q += 1
778
+
779
+ # add a new rule
608
780
  self.rule_collection.add_rule(
609
781
  Rule(
610
782
  current_q=index,
@@ -866,6 +1038,7 @@ class Survey(SurveyExportMixin, SurveyFlowVisualizationMixin, Base):
866
1038
 
867
1039
  def clear_non_default_rules(self) -> Survey:
868
1040
  """Remove all non-default rules from the survey.
1041
+
869
1042
  >>> Survey.example().show_rules()
870
1043
  ┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━┓
871
1044
  ┃ current_q ┃ expression ┃ next_q ┃ priority ┃ before_rule ┃
@@ -1173,9 +1346,15 @@ class Survey(SurveyExportMixin, SurveyFlowVisualizationMixin, Base):
1173
1346
  Question('multiple_choice', question_name = \"""q0\""", question_text = \"""Do you like school?\""", question_options = ['yes', 'no'])
1174
1347
  >>> i2.send({"q0": "no"})
1175
1348
  Question('multiple_choice', question_name = \"""q1\""", question_text = \"""Why not?\""", question_options = ['killer bees in cafeteria', 'other'])
1349
+
1350
+
1176
1351
  """
1177
1352
  self.answers = {}
1178
1353
  question = self._questions[0]
1354
+ # should the first question be skipped?
1355
+ if self.rule_collection.skip_question_before_running(0, self.answers):
1356
+ question = self.next_question(question, self.answers)
1357
+
1179
1358
  while not question == EndOfSurvey:
1180
1359
  # breakpoint()
1181
1360
  answer = yield question
edsl/surveys/base.py CHANGED
@@ -36,6 +36,10 @@ class EndOfSurveyParent:
36
36
  """
37
37
  return self
38
38
 
39
+ def __deepcopy__(self, memo):
40
+ # Return the same instance when deepcopy is called
41
+ return self
42
+
39
43
  def __radd__(self, other):
40
44
  """Add the object to another object.
41
45
 
@@ -31,7 +31,12 @@
31
31
 
32
32
  <tr>
33
33
  <td>Human-readable question</td>
34
- <td>{{ interview.survey.get_question(question).html(scenario = interview.scenario, agent = interview.agent) }}</td>
34
+ <td>{{ interview.survey.get_question(question).html(
35
+ scenario = interview.scenario,
36
+ agent = interview.agent,
37
+ answers = exception_message.answers)
38
+
39
+ }}</td>
35
40
  </tr>
36
41
  <tr>
37
42
  <td>Scenario</td>
@@ -20,6 +20,14 @@ from html import escape
20
20
  from typing import Callable, Union
21
21
 
22
22
 
23
+ class CustomEncoder(json.JSONEncoder):
24
+ def default(self, obj):
25
+ try:
26
+ return json.JSONEncoder.default(self, obj)
27
+ except TypeError:
28
+ return str(obj)
29
+
30
+
23
31
  def time_it(func):
24
32
  @wraps(func)
25
33
  def wrapper(*args, **kwargs):
@@ -124,7 +132,7 @@ def data_to_html(data, replace_new_lines=False):
124
132
  from pygments.formatters import HtmlFormatter
125
133
  from IPython.display import HTML
126
134
 
127
- json_str = json.dumps(data, indent=4)
135
+ json_str = json.dumps(data, indent=4, cls=CustomEncoder)
128
136
  formatted_json = highlight(
129
137
  json_str,
130
138
  JsonLexer(),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edsl
3
- Version: 0.1.33.dev2
3
+ Version: 0.1.34
4
4
  Summary: Create and analyze LLM-based surveys
5
5
  Home-page: https://www.expectedparrot.com/
6
6
  License: MIT
@@ -21,6 +21,7 @@ Requires-Dist: anthropic (>=0.23.1,<0.24.0)
21
21
  Requires-Dist: azure-ai-inference (>=1.0.0b3,<2.0.0)
22
22
  Requires-Dist: black[jupyter] (>=24.4.2,<25.0.0)
23
23
  Requires-Dist: boto3 (>=1.34.161,<2.0.0)
24
+ Requires-Dist: google-generativeai (>=0.8.2,<0.9.0)
24
25
  Requires-Dist: groq (>=0.9.0,<0.10.0)
25
26
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
26
27
  Requires-Dist: json-repair (>=0.28.4,<0.29.0)
@@ -45,6 +46,7 @@ Requires-Dist: setuptools (<72.0)
45
46
  Requires-Dist: simpleeval (>=0.9.13,<0.10.0)
46
47
  Requires-Dist: sqlalchemy (>=2.0.23,<3.0.0)
47
48
  Requires-Dist: tenacity (>=8.2.3,<9.0.0)
49
+ Requires-Dist: urllib3 (>=1.25.4,<1.27)
48
50
  Project-URL: Documentation, https://docs.expectedparrot.com
49
51
  Description-Content-Type: text/markdown
50
52
 
@@ -1,15 +1,16 @@
1
- edsl/Base.py,sha256=ttNxUotSd9LSEJl2w6LdMtT78d0nMQvYDJ0q4JkqBfg,8945
1
+ edsl/Base.py,sha256=wdFpHWlQlGNL4XfOmYA0AK9YupMDxK3G7mDHCQp60o4,9295
2
2
  edsl/BaseDiff.py,sha256=RoVEh52UJs22yMa7k7jv8se01G62jJNWnBzaZngo-Ug,8260
3
3
  edsl/TemplateLoader.py,sha256=sDBlSMt7EfOduM7w3h6v03gvh_Rzn9hVrlS-iLSQdZA,849
4
- edsl/__init__.py,sha256=ekExbypJgORR-Dy05mby7GWunhjAwe7HzYsXdeslep4,1730
5
- edsl/__version__.py,sha256=X6lFB08-Y7atQgG3fk8iymIvdiZo3YA8OnNvAv2d2Zc,28
6
- edsl/agents/Agent.py,sha256=lDbG1QSdHPwXdnC4dGWeDbKXauGl_b6rAhEVUrNnrrE,28477
4
+ edsl/__init__.py,sha256=UZcx9RHSi3Dslh2lWvCOeppdMW9Xzw_YLs-kFaNW1MU,1770
5
+ edsl/__version__.py,sha256=79r5jd-MqbhXLbIBDVBqUJvhvcucjkaId96r46KF18I,23
6
+ edsl/agents/Agent.py,sha256=ww6DK177eHQUlYkzgnt1b-MBDKXCdhVx3HezAZZ7TKk,28473
7
7
  edsl/agents/AgentList.py,sha256=qo8VK3Ov0YOSbsBcHmlwLZBH81CcDfy5IEcx9AVH78M,10963
8
- edsl/agents/Invigilator.py,sha256=gJC33jMYcqwt_DV47ZQ1QQUjV-szPuf-qeG4Z3Wfeyk,8079
9
- edsl/agents/InvigilatorBase.py,sha256=-Z9tKMpV9-jGtVljdOXnr0SzYAi0DBbCaNj8GL3_L0M,11278
10
- edsl/agents/PromptConstructionMixin.py,sha256=8vDiguHox16z1WsUbbUYY2Bm3hLNvNwt-ErAlnHRALE,15815
8
+ edsl/agents/Invigilator.py,sha256=6xd4sJ6Jzxld8LZDWZuSCZLL_MfaSux4LJCAm_RLEOM,9077
9
+ edsl/agents/InvigilatorBase.py,sha256=qIdAiriXAbnJH_SN9w2UAXHcDgQvk8Ar3QerKFjtPwM,10341
10
+ edsl/agents/PromptConstructor.py,sha256=7bYvRbh7Roo21SqguP3e7KDY36Swh83Ds5XjtJsgZB4,14712
11
11
  edsl/agents/__init__.py,sha256=B1dWfV4QWOo8cc2KeuetdFGeNhZ8XHc0Q8YhQW9k7BE,136
12
12
  edsl/agents/descriptors.py,sha256=m8ND3-2-JbgNX1HGakBNLIeemwsgYa1mQxYO9GW33hw,2934
13
+ edsl/agents/prompt_helpers.py,sha256=rHUxM_F0kCOkJmnhCyK-amFKViAYvpRRLD8LHFLGqQw,5023
13
14
  edsl/auto/AutoStudy.py,sha256=yNnhfJPO6oxbgVaYbRftJa8DluKhajfgLCh9o9E3YmU,3843
14
15
  edsl/auto/StageBase.py,sha256=6Ve0cMmc-wdK7tgk7_cOopnvvggEOSkNWfLLWXny7QU,7933
15
16
  edsl/auto/StageGenerateSurvey.py,sha256=_lC1-hhFjqd6md1-RE9uEOPtZp7dZHxJn0ERpszSfow,7394
@@ -22,7 +23,7 @@ edsl/auto/StageQuestions.py,sha256=TyUSnfeFEbuQKG_KZT9rk43flRt0ZyzQDqYzBa_858c,2
22
23
  edsl/auto/SurveyCreatorPipeline.py,sha256=s5S_RPFM3Ia8Dzdv52_576BxfsFq9GwXEVWxJId5Fuo,658
23
24
  edsl/auto/utilities.py,sha256=DDngZCGlzjWeJUvPHhMEZ5ZoVm4KgGYtgyRA1mfUfmA,7606
24
25
  edsl/base/Base.py,sha256=DShsfI6A2ojg42muPFpVtUgTX33pnqT5vtN0SRlr-9Q,8866
25
- edsl/config.py,sha256=Z8dDfmPqmnhlvdxa7UI0Uo2X8WyoXdkThChZ4922oH4,6123
26
+ edsl/config.py,sha256=IfEm07QvhV5B2baNg6SrhME82BHBGwNZSLmYnx9ERxM,5875
26
27
  edsl/conjure/AgentConstructionMixin.py,sha256=qLLYJH02HotVwBUYzaHs4QW0t5nsC3NX15qxQLzEwLI,5702
27
28
  edsl/conjure/Conjure.py,sha256=JaCuAm3rmqjh11_X8PXgvPsVHGql3yTn9JEzVlzOUVU,2019
28
29
  edsl/conjure/InputData.py,sha256=RdFgkzzayddSTd6vcwBB8LC796YBj94pciwrQx9nBtg,22003
@@ -45,7 +46,7 @@ edsl/conversation/mug_negotiation.py,sha256=mjvAqErD4AjN3G2za2c-X-3axOShW-zAJUei
45
46
  edsl/conversation/next_speaker_utilities.py,sha256=bqr5JglCd6bdLc9IZ5zGOAsmN2F4ERiubSMYvZIG7qk,3629
46
47
  edsl/coop/PriceFetcher.py,sha256=7q8r1FqE9ap1CMi6WiE_pZQhYxEqG9_tgPgGxLQYVX8,1894
47
48
  edsl/coop/__init__.py,sha256=4iZCwJSzJVyjBYk8ggGxY2kZjq9dXVT1jhyPDNyew4I,115
48
- edsl/coop/coop.py,sha256=FGfGMs8jW9l6b-vVzbqucT2QyOs1erePRDxEDQfeHFU,28117
49
+ edsl/coop/coop.py,sha256=_wdT6Z-fFYGtAWLn1e98Vv8hgwhdJM2vH_2G-J2ugiI,28547
49
50
  edsl/coop/utils.py,sha256=UZwljKYW_Yjw7RYcjOg3SW7fn1pyHQfJ1fM48TBNoss,3601
50
51
  edsl/data/Cache.py,sha256=jDt0LoZjLpGnM8-CraQEcsQaVg--U3BiBR1zHj0nDn8,16536
51
52
  edsl/data/CacheEntry.py,sha256=_5UiFaJQu_U-Z1_lEPt-h6Gaidp2Eunk02wOd3Ni3MQ,7252
@@ -53,8 +54,8 @@ edsl/data/CacheHandler.py,sha256=DxbfeT2nZGRu8yQkbWr2tyEnhNiClevMsd5KZMCq2f0,479
53
54
  edsl/data/SQLiteDict.py,sha256=V5Nfnxctgh4Iblqcw1KmbnkjtfmWrrombROSQ3mvg6A,8979
54
55
  edsl/data/__init__.py,sha256=KBNGGEuGHq--D-TlpAQmvv_If906dJc1Gsy028zOx78,170
55
56
  edsl/data/orm.py,sha256=Jz6rvw5SrlxwysTL0QI9r68EflKxeEBmf6j6himHDS8,238
56
- edsl/data_transfer_models.py,sha256=xLkc5cix3pa5cqvQa-t1jfUVFMkSEZk5LjUOlQRDzRk,3119
57
- edsl/enums.py,sha256=oicyopRfrZrbtIWsE5_fqdcAjDXj4wZEy2Q94d4RrXg,5160
57
+ edsl/data_transfer_models.py,sha256=9LsvZNMvyEEkF-DIcEUA9iomFbxG7E6nRUqsbHoB03k,1951
58
+ edsl/enums.py,sha256=Z6nhaP8p3z0UJSfsCGb6VQUtGUKw3AK6yC0UDwOi05c,5247
58
59
  edsl/exceptions/__init__.py,sha256=HVg-U-rJ0fRoG9Rws6gnK5S9B68SkPWDPsoD6KpMZ-A,1370
59
60
  edsl/exceptions/agents.py,sha256=3SORFwFbMGrF6-vAL2GrKEVdPcXo7md_k2oYufnVXHA,673
60
61
  edsl/exceptions/configuration.py,sha256=qH2sInNTndKlCLAaNgaXHyRFdKQHL7-dElB_j8wz9g4,351
@@ -67,62 +68,62 @@ edsl/exceptions/prompts.py,sha256=vD_reI-RVKWYHYozenEmhmB7Rb1sIiXghgNUtbVGBUo,24
67
68
  edsl/exceptions/questions.py,sha256=ItTXeJEN2TDBL0LLWy37RFX3QG5iUoZa9HzUOs5Ney4,2509
68
69
  edsl/exceptions/results.py,sha256=EkjowYF_7tvDQU0SlyHRiETq-MzZcxALMn0CyaSk2M0,386
69
70
  edsl/exceptions/surveys.py,sha256=lADtr-tvPmUYSfRy3TdkTV5SzZfShlMgCzm-ZGYRlGk,557
70
- edsl/inference_services/AnthropicService.py,sha256=OV6miOC8mzPmalNouTmzk7eqqzUUHteLf5qZ-yWRBXA,2808
71
- edsl/inference_services/AwsBedrock.py,sha256=Tf_g4vNDJXDWpYOmUxGrMRfoqN5bUJRf2NZCBucmb4U,3813
72
- edsl/inference_services/AzureAI.py,sha256=1o257vsZLDTvJ5VnL65gE2qpFg4lzP835E3SySFTGcA,8776
71
+ edsl/inference_services/AnthropicService.py,sha256=6kE8miYIsCZ6B-da4LMHE3tUkyNAsMZcNF8JWKLRKkg,2917
72
+ edsl/inference_services/AwsBedrock.py,sha256=tVsKrw7LHoqc-zDaLew0ufwEMYP_OzkCzsc4zZuXdEk,3926
73
+ edsl/inference_services/AzureAI.py,sha256=Xd3r4Y5OQReW-hG67ymK3LSDLiHj5hMFuvGEz5DI3lY,8889
73
74
  edsl/inference_services/DeepInfraService.py,sha256=fWlH5sCNxf8eHPHxPPxJMEVWpCM9sDenkC8IZYqtXfA,515
74
- edsl/inference_services/GoogleService.py,sha256=VOe1bF6eD9I2zr2jLqVfah75LAtpPFoMhGQhMBShwhM,2901
75
+ edsl/inference_services/GoogleService.py,sha256=CeyQ2Db_cCFOIVvetSwsFLqenJFrg4EGoRYwIe7-7-U,5422
75
76
  edsl/inference_services/GroqService.py,sha256=eDMq8d7YAlJ2689ywaoaPGvMgFfOiX1KYlF_vr97N6I,510
76
- edsl/inference_services/InferenceServiceABC.py,sha256=VWxeBL8ICi8VGCDaKNV0PIfeZO8xcxpsire-qcvIIXA,2684
77
+ edsl/inference_services/InferenceServiceABC.py,sha256=rXqorwbKqzlwui2cxum8_TRrBcfOkgB9s0xULHYGQ1Y,3709
77
78
  edsl/inference_services/InferenceServicesCollection.py,sha256=EDyxnoSjGXhWob_ost7U8WUYjn1jgL_noB0-VlXBnOo,2810
78
- edsl/inference_services/MistralAIService.py,sha256=MIdvroQcfMJLx5wOXItLZpie-MXid4pvIYV9y4xLOWY,3771
79
+ edsl/inference_services/MistralAIService.py,sha256=7mUsBEZdEWIjfh4qMNemTT2xYMq7k0yuMLGtDTdfp4Y,3878
79
80
  edsl/inference_services/OllamaService.py,sha256=oro9CRl8IUE2Ro-zE69Cr4Zaf6Gdw29XW5CFU-46E0k,498
80
- edsl/inference_services/OpenAIService.py,sha256=WYzz1AjXJouHbogNBKO_IXzseLTcS_hKa11UcLZwjgE,7034
81
- edsl/inference_services/TestService.py,sha256=Psz9tViuRbbx87BNlQRfh2QNjNZXetIIp2Hv0TBmFIw,2410
81
+ edsl/inference_services/OpenAIService.py,sha256=2rGW0iGD_hnM1NHBJQCDI59Ti-9wFQu7gh8hDB95Cr4,7264
82
+ edsl/inference_services/TestService.py,sha256=-jTXkl_qLt1k8gJjRb0SMgTb9EY-XMTP-ZUL9AJcUCA,3009
83
+ edsl/inference_services/TogetherAIService.py,sha256=p_31ccrfN25kZF2xlAlUkb7w1EL4lGjmkSv-5qZ7TtY,6301
82
84
  edsl/inference_services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
85
  edsl/inference_services/models_available_cache.py,sha256=HtGNaYgrxY2oPy-QruKhjj6LUzhGNqBhLHFWMoMi1E4,3312
84
86
  edsl/inference_services/rate_limits_cache.py,sha256=HYslviz7mxF9U4CUTPAkoyBsiXjSju-YCp4HHir6e34,1398
85
- edsl/inference_services/registry.py,sha256=XTtAcJkp6Xb1AIMQh2UM_pWwrdmuJmRum2MxNvFljbA,1042
87
+ edsl/inference_services/registry.py,sha256=CwdaQ-A5PTb5lFKMQdOfl8IqCw2SVJ8HlC-_2uZf11k,1141
86
88
  edsl/inference_services/write_available.py,sha256=NNwhATlaMp8IYY635MSx-oYxt5X15acjAfaqYCo_I1Y,285
87
89
  edsl/jobs/Answers.py,sha256=c4LpigQjdnMr7iJu8571C4FggGPVudfT7hbJgmgKW40,1821
88
90
  edsl/jobs/FailedQuestion.py,sha256=3D5Vcmv1t2_dzBWbkUUIia3_jXHdzQDdyg-4TEIWU2Q,2701
89
- edsl/jobs/Jobs.py,sha256=PDNL_QEaBQJMgaVJ8PpfdxW9bqNYjW618ELSJUosDp0,33537
91
+ edsl/jobs/Jobs.py,sha256=oryxhrBuXs9Ba8mt5BSIjX3gT37hdzothL5xH0ygrkU,37227
90
92
  edsl/jobs/__init__.py,sha256=aKuAyd_GoalGj-k7djOoVwEbFUE2XLPlikXaA1_8yAg,32
91
- edsl/jobs/buckets/BucketCollection.py,sha256=LA8DBVwMdeTFCbSDI0S2cDzfi_Qo6kRizwrG64tE8S4,1844
93
+ edsl/jobs/buckets/BucketCollection.py,sha256=11CRisE1WAPcAlI3YJK3DVvu0AqSvv8KskXo4Q1waSk,2286
92
94
  edsl/jobs/buckets/ModelBuckets.py,sha256=hxw_tzc0V42CiB7mh5jIxlgwDVJ-zFZhlLtKrHEg8ho,2419
93
- edsl/jobs/buckets/TokenBucket.py,sha256=nUirycT1mo7Yys4e5VSEuA65QlicLTIrX7c68czhCCs,7488
94
- edsl/jobs/interviews/Interview.py,sha256=GwUdNzVw4CizC4gwPvazC5DIdJao5qGUI6oM2RH0Dkg,21177
95
- edsl/jobs/interviews/InterviewExceptionEntry.py,sha256=pmsL0q9I3hNLgD1z3Vv78wPR4lYZfA0bBnA-D17iDk4,4850
95
+ edsl/jobs/buckets/TokenBucket.py,sha256=7fG4omzTcj5xC2iJLO9bfBkdAGs6Y3weXzlA3BgPr0E,9090
96
+ edsl/jobs/interviews/Interview.py,sha256=iw0thEGwENOl8uzHRJ88zjYHEDSlM_X96Fyse9wZCwM,23883
97
+ edsl/jobs/interviews/InterviewExceptionCollection.py,sha256=Ez8BCZUD3odqoY9h-gzYKKM8yaHynQ-eYw2uMDh7t98,3279
98
+ edsl/jobs/interviews/InterviewExceptionEntry.py,sha256=BGGjj0sb1wJJ0QmYklt1DyEYKD8mUGygllGfN2WXKbY,4903
96
99
  edsl/jobs/interviews/InterviewStatistic.py,sha256=hY5d2EkIJ96NilPpZAvZZzZoxLXM7ss3xx5MIcKtTPs,1856
97
100
  edsl/jobs/interviews/InterviewStatisticsCollection.py,sha256=_ZZ0fnZBQiIywP9Q_wWjpWhlfcPe2cn32GKut10t5RI,788
98
101
  edsl/jobs/interviews/InterviewStatusDictionary.py,sha256=MSyys4hOWe1d8gfsUvAPbcKrs8YiPnz8jpufBSJL7SU,2485
99
102
  edsl/jobs/interviews/InterviewStatusLog.py,sha256=6u0F8gf5tha39VQL-IK_QPkCsQAYVOx_IesX7TDDX_A,3252
100
103
  edsl/jobs/interviews/InterviewStatusMixin.py,sha256=VV0Pel-crUsLoGpTifeIIkXsLGj0bfuO--UtpRnH-dU,1251
101
104
  edsl/jobs/interviews/ReportErrors.py,sha256=RSzDU2rWwtjfztj7sqaMab0quCiY-X2bG3AEOxhTim8,1745
102
- edsl/jobs/interviews/interview_exception_tracking.py,sha256=cHGUCOYi2VUYPkOqLsQRTOOzv2i2XieOn5zfdcLGmZY,2715
103
105
  edsl/jobs/interviews/interview_status_enum.py,sha256=KJ-1yLAHdX-p8TiFnM0M3v1tnBwkq4aMCuBX6-ytrI8,229
104
- edsl/jobs/interviews/retry_management.py,sha256=M2qVUeK_Unn0BVNARVU-xIw37qZ3VAkDWwN-WmlUGck,1452
105
- edsl/jobs/runners/JobsRunnerAsyncio.py,sha256=sDAdM9mDj76cKYBtxHTlDvTDKzPVnEWm7EUIvkcwrJM,14846
106
+ edsl/jobs/runners/JobsRunnerAsyncio.py,sha256=SXWFTgTYQzqIaBjPQ2mRrxR3aGFMQyw2eD9wX8tZNkQ,12850
107
+ edsl/jobs/runners/JobsRunnerStatus.py,sha256=4eCh9sRpswGdKeSMW9pCGCAjJZa-OrWUPI7tsxIy_g4,12112
106
108
  edsl/jobs/runners/JobsRunnerStatusData.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
- edsl/jobs/runners/JobsRunnerStatusMixin.py,sha256=TAkU-abV8XN9CfBmkpomzAER54JeN9b-FMYnoOTIpX0,13407
108
- edsl/jobs/tasks/QuestionTaskCreator.py,sha256=8d-rduM4i2Zpd66_NeMkHvkQLhV7SQjLIks2A_nKRoM,10655
109
+ edsl/jobs/tasks/QuestionTaskCreator.py,sha256=f26rokFVXVdyKR2M8of_jlZqP6TPcTAINk9tEvb35pw,10122
109
110
  edsl/jobs/tasks/TaskCreators.py,sha256=XqAbNU33378Z4PQncokbfJwnKt3KHR9aqa5fKYRDpfg,2694
110
- edsl/jobs/tasks/TaskHistory.py,sha256=hHwzm1mEt89yBlNlJa9AoY44phV1_2620ladRGJ5Ojs,13775
111
+ edsl/jobs/tasks/TaskHistory.py,sha256=xRSo22ipyUSJ15w_k2Jc3dZ04VLwft8zfvm3smAIYrA,14227
111
112
  edsl/jobs/tasks/TaskStatusLog.py,sha256=bqH36a32F12fjX-M-4lNOhHaK2-WLFzKE-r0PxZPRjI,546
112
113
  edsl/jobs/tasks/task_management.py,sha256=KMToZuXzMlnHRHUF_VHL0-lHMTGhklf2GHVuwEEHtzA,301
113
114
  edsl/jobs/tasks/task_status_enum.py,sha256=DOyrz61YlIS8R1W7izJNphcLrJ7I_ReUlfdRmk23h0Q,5333
114
115
  edsl/jobs/tokens/InterviewTokenUsage.py,sha256=u_6-IHpGFwZ6qMEXr24-jyLVUSSp4dSs_4iAZsBv7O4,1100
115
116
  edsl/jobs/tokens/TokenUsage.py,sha256=odj2-wDNEbHl9noyFAQ0DSKV0D9cv3aDOpmXufKZ8O4,1323
116
- edsl/language_models/LanguageModel.py,sha256=_Vwdaobkbh-318LoIXJCdEw0R4BDGHXlDBLPSGNRSKs,25156
117
+ edsl/language_models/LanguageModel.py,sha256=lGmflHSq0vLt4zBzYSKxH5dFccfA4Mhj4NM-XhTNZxY,25194
117
118
  edsl/language_models/ModelList.py,sha256=GhjRV7y1jRvP_Yjgwv6fxksTVb8sFPBiiRRfdqW-hgg,2852
118
119
  edsl/language_models/RegisterLanguageModelsMeta.py,sha256=eMtBSAnlRnC4c-0_o2QkSNyzv-uAce4BEGMXq2PLj2E,7523
119
120
  edsl/language_models/__init__.py,sha256=bvY7Gy6VkX1gSbNkRbGPS-M1kUnb0EohL0FSagaEaTs,109
120
121
  edsl/language_models/fake_openai_call.py,sha256=dxbL5e4NLF-eTk9IduPyGwLiVCX_-eGCJDaLYPlQTqc,364
121
122
  edsl/language_models/fake_openai_service.py,sha256=2AAsAinELbMZRqiepwBkWhWcLuMe5ORXUBNarrdl1ug,1714
122
- edsl/language_models/registry.py,sha256=f-LJxCKviA5VXxtLGpC9axNWSe__jd1NFSh9pIJ7XxE,4143
123
+ edsl/language_models/registry.py,sha256=hfOlKbTkXrXGpZHQQPKE9uyyUCgOxoUyyIaKL2kf53U,4369
123
124
  edsl/language_models/repair.py,sha256=d0i2S3kJfX7JtuCYhlIyT0QP8hcZkRPLanC09lOW_xo,5353
124
125
  edsl/language_models/unused/ReplicateBase.py,sha256=J1oqf7mEyyKhRwNUomnptVqAsVFYCbS3iTW0EXpKtXo,3331
125
- edsl/language_models/utilities.py,sha256=iPnzYfN-Qxc-iYmwf-JPA0zr6ZGnRDHmudI_y4OSRdk,2187
126
+ edsl/language_models/utilities.py,sha256=GWON2ahCpB-_-hhqmQ5Yi7_rKB4cd8GlucWuq6EnGZQ,2280
126
127
  edsl/notebooks/Notebook.py,sha256=xi9xkxmkQ6-DwhqbjjMLpYKB0VJV20AtwEonJ6mnqjo,7739
127
128
  edsl/notebooks/__init__.py,sha256=VNUA3nNq04slWNbYaNrzOhQJu3AZANpvBniyCJSzJ7U,45
128
129
  edsl/prompts/Prompt.py,sha256=KsIz0tZnIqZlnbzNWO57C3MwJ0OCcUrZPmu7DBApc4s,11887
@@ -142,30 +143,31 @@ edsl/prompts/library/question_rank.py,sha256=WDgXyph0EKWJrSgsW2eqcx3xdU-WA1LEvB2
142
143
  edsl/prompts/prompt_config.py,sha256=O3Y5EvBsCeKs9m9IjXiRXOcHWlWvQV0yqsNb2oSR1ow,974
143
144
  edsl/prompts/registry.py,sha256=XOsqGsvNOmIG83jqoszqI72yNZkkszKR4FrEhwSzj_Q,8093
144
145
  edsl/questions/AnswerValidatorMixin.py,sha256=t_ABep50KP02GSc48Y8VAEjp35drVOngfrWXU5aVhgk,11505
145
- edsl/questions/QuestionBase.py,sha256=blftdx1j_t5WwkV6gMdKMpUfV6CDEwlJTrArsF2kgic,19476
146
- edsl/questions/QuestionBaseGenMixin.py,sha256=v5oquCGPDKklLTlMStrnqeTU5PaFFl98tFkZJCQmLEo,5006
146
+ edsl/questions/QuestionBase.py,sha256=QsdYFHnWYh04JpCdx3o3WGgohBfE5X_7idQRRYrx_SA,21169
147
+ edsl/questions/QuestionBaseGenMixin.py,sha256=CPxjWZjrxuSO8YWelz6dbp7fm788gN7-T8z7jXStboQ,6017
147
148
  edsl/questions/QuestionBasePromptsMixin.py,sha256=Km1P6PpkVJ9O3dS8pJZHNJ6aQABhYGLwdef4Z2vSrqk,9516
148
- edsl/questions/QuestionBudget.py,sha256=FNMDyW1tGCMvJsjTZSYqd3mar6pW7yw90Tr66hKHW_k,6264
149
- edsl/questions/QuestionCheckBox.py,sha256=TJjmrjbRYmRX4ZNoGpkgLdasWcWavl9uvJDV6AZ5fz0,12835
149
+ edsl/questions/QuestionBudget.py,sha256=TJgPsyqafJdJw5if0zVxh7zHloourINUqUWfWIlRq9Y,8131
150
+ edsl/questions/QuestionCheckBox.py,sha256=wC_doEdNZi4y8Uz-tXZyQ2GYS5wQKOWhbVUnyVLoACU,12840
150
151
  edsl/questions/QuestionExtract.py,sha256=PlXwMeZgPAFBXIHSXpFMYTToag-HwA9C7u6-Z3bQMek,6103
151
- edsl/questions/QuestionFreeText.py,sha256=PYL2DMr6TjQGGRF5D94G8mJKoFJNc0dWRm7EUXVBScc,3180
152
+ edsl/questions/QuestionFreeText.py,sha256=uXJxrrAGCq0-J6WpO6TBNFBNOC2ztoEVa-2UMXuwlak,3384
152
153
  edsl/questions/QuestionFunctional.py,sha256=yZQFLQAxfNsAIETffFoBr-Ltb2oFPeywu-nhm9qjYRc,5133
153
154
  edsl/questions/QuestionList.py,sha256=vs2AE8OnbwVsly-sorb9dfIibdF1BpOaCRYyvwXYSzY,7209
154
- edsl/questions/QuestionMultipleChoice.py,sha256=ibmD6Qhoq-D6UQCbG6_6t5F6xF7RrRpOXHLa73-9J2s,10322
155
- edsl/questions/QuestionNumerical.py,sha256=wudsDH-oWVrR2xxEhArn0fDdQORUt00CN5FOZlQoE8o,4957
155
+ edsl/questions/QuestionMultipleChoice.py,sha256=Yj94-6fwFqDI9UvjwSCOfKnp4gBB86XMmCsL7lbX-t4,10292
156
+ edsl/questions/QuestionNumerical.py,sha256=_jMZ28DZHYAv_g3Y3vCnmzerMs995on0Ng6j4pDcfHo,4959
156
157
  edsl/questions/QuestionRank.py,sha256=kYHTYXU88X2Uv-zeCiI9w5aEFYTxvg2p7DoGaaER4ik,11596
158
+ edsl/questions/Quick.py,sha256=h6h4fEvIkLIFJX2JiqfOUEXzku9azWxEpI5o2A4RmVs,1731
157
159
  edsl/questions/RegisterQuestionsMeta.py,sha256=2h_9iZt3cjr_7JRmveTqbmEBBCvjtefMDfhM7Pgd_zg,2598
158
- edsl/questions/ResponseValidatorABC.py,sha256=bdF0kQZw87CCCkl4ksmItycBORkD6shM9vhQxkrwhe8,6074
160
+ edsl/questions/ResponseValidatorABC.py,sha256=94l_-d380quOwYZyBUl7Bdunxapc9Bi51_Y-TFDl7ZU,6097
159
161
  edsl/questions/SimpleAskMixin.py,sha256=YRLiHA6TPMKyLWvdAi7Mfnxcqtw7Kem6tH28YNb8n4U,2227
160
162
  edsl/questions/__init__.py,sha256=PYChrB0dHhHAKsL3QUqYa3_ZBgxHmR9bs67pUE9h0Eg,1161
161
163
  edsl/questions/compose_questions.py,sha256=ZcLkwNaofk-o0-skGXEDGZAj6DumOhVhyIUjqEnKrbg,3380
162
164
  edsl/questions/decorators.py,sha256=ZijaRYUntAcg0JEztCiOEpcDvvVie___85Zx5ogBQXY,596
163
165
  edsl/questions/derived/QuestionLikertFive.py,sha256=XCpmwlk2qyCxEkiG3UwPqVpS5-k4d4uWyMaxfJg5wkw,2585
164
- edsl/questions/derived/QuestionLinearScale.py,sha256=Lnrhm6nrjC-Py5sihIwDoVT1VriC25Mu6Ik6Cnqo47w,3136
165
- edsl/questions/derived/QuestionTopK.py,sha256=HG_Xe0e19_f1p6JBs91mdTq_L21xK0q6umaAxc65OYQ,3044
166
- edsl/questions/derived/QuestionYesNo.py,sha256=W94aJbjIR0OLrqTOqlu06aQcEXnH68GTVl-Ccg8BMBc,2532
166
+ edsl/questions/derived/QuestionLinearScale.py,sha256=tj_RszK9WumaKRVMS1Fy63-Q6ip4FGBpNU2AtQrWlp8,3304
167
+ edsl/questions/derived/QuestionTopK.py,sha256=HT8NlbT8YBTmVNVPVIP1EyqGsiN3bu4SbFp29CVT0a4,3212
168
+ edsl/questions/derived/QuestionYesNo.py,sha256=KWJyaXSNPNxELtK0nWvIqNtpAF05MMAC0ILUjxXkVwo,2735
167
169
  edsl/questions/derived/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
- edsl/questions/descriptors.py,sha256=48Hin8AEZVRltIV37TjGtKI0xyoD0C0pjK51UVkJnxA,16365
170
+ edsl/questions/descriptors.py,sha256=10zWqaYeRjlc5jTCHFoa0SLZ-myEfZiO42HFoS5_KbE,16407
169
171
  edsl/questions/prompt_templates/question_budget.jinja,sha256=-ekZYCa_KRc-xLcpf3j-YmXV0WSyIK_laOp2x3li-tA,737
170
172
  edsl/questions/prompt_templates/question_checkbox.jinja,sha256=V-Dn2VJhfXyIILWIhMviTfQ5WuXh1YZerwicaA6Okzc,1136
171
173
  edsl/questions/prompt_templates/question_extract.jinja,sha256=27b8iMJaA2h5UOrHPMiBCapMnJou4vSkZzkZndK2s1U,343
@@ -177,9 +179,13 @@ edsl/questions/prompt_templates/question_numerical.jinja,sha256=c20sp3HfFonfaRww
177
179
  edsl/questions/question_registry.py,sha256=sDr909j6jEulK_uXPuvgvYVytPsrpZz_eqKvG0rsbMo,5365
178
180
  edsl/questions/settings.py,sha256=er_z0ZW_dgmC5CHLWkaqBJiuWgAYzIund85M5YZFQAI,291
179
181
  edsl/questions/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
+ edsl/questions/templates/budget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
183
+ edsl/questions/templates/budget/answering_instructions.jinja,sha256=tF3bNv9_vIOjsWeZeRsMdgprpNrAKhUreQ53LUh1DP4,352
184
+ edsl/questions/templates/budget/question_presentation.jinja,sha256=wrZnM5ZbNhPZsvbtflfKrYpR3lH5ELDI7NM2l8pW8Ro,198
180
185
  edsl/questions/templates/checkbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
186
  edsl/questions/templates/checkbox/answering_instructions.jinja,sha256=UCPWWsnaAW3oB05IZDLQtofHXBesbqQxguXMfykUTQU,441
182
187
  edsl/questions/templates/checkbox/question_presentation.jinja,sha256=2u8XIkFPWzOuhbeoIvYBm6zUWnTHF66cGJXIznxVobw,807
188
+ edsl/questions/templates/extract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
183
189
  edsl/questions/templates/extract/answering_instructions.jinja,sha256=sjHH4mBdoi6fdpHtRNWG0q3E4ZihvBpVUf08TNnwad4,253
184
190
  edsl/questions/templates/extract/question_presentation.jinja,sha256=OLDuxUc6BjT4InCtAkK_e-D5qbsDmtxw1Spp9pWFYhU,17
185
191
  edsl/questions/templates/free_text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -199,21 +205,22 @@ edsl/questions/templates/multiple_choice/answering_instructions.jinja,sha256=eSc
199
205
  edsl/questions/templates/multiple_choice/html.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
206
  edsl/questions/templates/multiple_choice/question_presentation.jinja,sha256=hoEVj4GQD3EYnR2AStXkMFOJeqISNoEVzBd8-cx2yWg,273
201
207
  edsl/questions/templates/numerical/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
202
- edsl/questions/templates/numerical/answering_instructions.jinja,sha256=BfGAeKFJWEzzvB91x8DrpRUERSvDv6kXf3Y0szL27LY,373
208
+ edsl/questions/templates/numerical/answering_instructions.jinja,sha256=70CnuIbdRKGiYJk7316-FFloRh3Oeg_RvUu4tthNKqs,323
203
209
  edsl/questions/templates/numerical/question_presentation.jinja,sha256=8lMUWtEPHD4XOAyVEfCmWSwRFrdUa3lo8sxzogDyzWE,183
210
+ edsl/questions/templates/rank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
211
  edsl/questions/templates/rank/answering_instructions.jinja,sha256=-LWrhVJ0ZwQW_DXhARh5GweqlarWbhZzoqwr6tE-33s,433
205
212
  edsl/questions/templates/rank/question_presentation.jinja,sha256=9Vbm88_nDl5Xnb09V4QEw6jTp-ryXBoJV6DCFDMyPI4,334
206
213
  edsl/questions/templates/top_k/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
214
  edsl/questions/templates/top_k/answering_instructions.jinja,sha256=2V38SJZ0Y1E70mHm0HJUzGKregiSlEqVYIcqbncxh5c,266
208
215
  edsl/questions/templates/top_k/question_presentation.jinja,sha256=2u8XIkFPWzOuhbeoIvYBm6zUWnTHF66cGJXIznxVobw,807
209
216
  edsl/questions/templates/yes_no/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
- edsl/questions/templates/yes_no/answering_instructions.jinja,sha256=aJVZ_SDdN4SkcHr4KtPU9YwCKZLL1_XtUVqEjiRyn0o,171
217
+ edsl/questions/templates/yes_no/answering_instructions.jinja,sha256=UAcssfcYeW8zytmPOVJOVQEdwdvlRspE8WnatYvreJQ,172
211
218
  edsl/questions/templates/yes_no/question_presentation.jinja,sha256=hoEVj4GQD3EYnR2AStXkMFOJeqISNoEVzBd8-cx2yWg,273
212
219
  edsl/results/Dataset.py,sha256=XeCWNcni1rde9iVzmC1WTIne2cip4-f2gQL5iaJfXNw,9202
213
- edsl/results/DatasetExportMixin.py,sha256=SyBPWX73SXwyZkK9ijODNiVERFuUttIOM2XDhTMo8_g,25752
220
+ edsl/results/DatasetExportMixin.py,sha256=-YR-UeuIW_8u0a8HnQ9R6V41DxCq22_AlsD48fXv0sw,25890
214
221
  edsl/results/DatasetTree.py,sha256=nwEgnWBqRXUxagSCEgqwikmIo8ztUxaF-QH-m-8myyQ,4985
215
- edsl/results/Result.py,sha256=FUCGxd_MXdTL7QysJMsuJH4vB-pvjW5hMQEPvKLbLog,15471
216
- edsl/results/Results.py,sha256=X7UCT45YlNoy8UlbvKREpihWHweIfhEP27ST9GgBPDI,40726
222
+ edsl/results/Result.py,sha256=o3Tg07loDcwNTb6wPgV_qS7_REkwcMVouc9t_-zwkpw,15469
223
+ edsl/results/Results.py,sha256=zp4yDt-rPqgEPpv2xCGppQIzzwiKX-BbUpnJtY739L4,40807
217
224
  edsl/results/ResultsDBMixin.py,sha256=Hc08aOiArBf9jbxI5uV4VL4wT6BLOkaaEgTMb3zyTUI,7922
218
225
  edsl/results/ResultsExportMixin.py,sha256=XizBsPNxziyffirMA4kS7UHpYM1WIE4s1K-B7TqTfDw,1266
219
226
  edsl/results/ResultsFetchMixin.py,sha256=VEa0TKDcXbnTinSKs9YaE4WjOSLmlp9Po1_9kklFvSo,848
@@ -222,32 +229,31 @@ edsl/results/ResultsToolsMixin.py,sha256=mseEFxJCf9sjXdIxpjITt_UZBwdXxw2o2VLg5jM
222
229
  edsl/results/Selector.py,sha256=4AsFD71FKTFY1a0_AImsYWcYKx-RXPG6RgwsAvuNW3k,4403
223
230
  edsl/results/__init__.py,sha256=2YcyiVtXi-3vIV0ZzOy1PqBLm2gaziufJVi4fdNrAt8,80
224
231
  edsl/results/tree_explore.py,sha256=hQjiO4E71rIOPDgEHgK8T8ukxqoNdgX_tvyiDlG4_9U,4624
225
- edsl/scenarios/FileStore.py,sha256=AevvU1qdLSmL4Q7cb1PhUiaJk1i5T0sgkTKBYf0KDN4,8722
226
- edsl/scenarios/Scenario.py,sha256=lty-3I2nTELylQARawj1MaboNaQuHF3LiUAew_KUll8,15522
232
+ edsl/scenarios/FileStore.py,sha256=V_zn2RmVclcBQTvqghotnTO97YHWUXqeVfN7eMfpfUM,13929
233
+ edsl/scenarios/Scenario.py,sha256=ZG1x4_MmWP9j0gakLwsxOZ7ESMy3ifwBMhgQlHvsYo8,16809
227
234
  edsl/scenarios/ScenarioHtmlMixin.py,sha256=EmugmbPJYW5eZS30rM6pDMDQD9yrrvHjmgZWB1qBfq4,1882
228
- edsl/scenarios/ScenarioImageMixin.py,sha256=VJ5FqyPrL5-ieORlWMpnjmOAFIau8QFZCIZyEBKgb6I,3530
229
- edsl/scenarios/ScenarioList.py,sha256=lHYd0y2CBb6G2jqIwQsvsG_LExi1CVtZfozngcKiKA8,39949
235
+ edsl/scenarios/ScenarioList.py,sha256=v5zmM3AOxbVFN9kez6h8GVbFFAxDlykycXqREDc2h8c,40622
230
236
  edsl/scenarios/ScenarioListExportMixin.py,sha256=wfffY9xy_1QyIM-1xnisr64izSLjmyuotUYY5iDLodc,1681
231
- edsl/scenarios/ScenarioListPdfMixin.py,sha256=dt7GzC2UZZpQjjilS7_eBm0BmqU6bDWWbBP7ejkhgHM,3830
237
+ edsl/scenarios/ScenarioListPdfMixin.py,sha256=z_H2sZn5SCSq6nRLSU5jefaOlh4sqJLyOY_Ld0XCR18,8332
232
238
  edsl/scenarios/__init__.py,sha256=KRwZCLf2R0qyJvv1NGbd8M51Bt6Ia6Iylg-Xq_2Fa6M,98
233
239
  edsl/shared.py,sha256=lgLa-mCk2flIhxXarXLtfXZjXG_6XHhC2A3O8yRTjXc,20
234
240
  edsl/study/ObjectEntry.py,sha256=e3xRPH8wCN8Pum5HZsQRYgnSoauSvjXunIEH79wu5A8,5788
235
241
  edsl/study/ProofOfWork.py,sha256=FaqYtLgeiTEQXWKukPgPUTWMcIN5t1FR7h7Re8QEtgc,3433
236
242
  edsl/study/SnapShot.py,sha256=BY9NP_HRTuOSvCncuE-q5OwMcTEtnBS8bFn_PhF7OcU,2678
237
- edsl/study/Study.py,sha256=zLy2mMvsX_QgZ6D4dcgYJoEacyajkRnARYjIFvyCO1o,16939
243
+ edsl/study/Study.py,sha256=Ytm15XIWgT716scM3HKFSfdBHxRwX6mfMn3l8dgdY1c,18462
238
244
  edsl/study/__init__.py,sha256=YAvPLTPG3hK_eN9Ar3d1_d-E3laXpSya879A25-JAxU,170
239
- edsl/surveys/DAG.py,sha256=ozQuHo9ZQ8Eet5nDXtp7rFpiSocvvfxIHtyTnztvodg,2380
245
+ edsl/surveys/DAG.py,sha256=dnIbrfJ_lQ3QEKjpyuo1I6b0kcnW2KMMyPir0A6J4XM,4235
240
246
  edsl/surveys/Memory.py,sha256=-ikOtkkQldGB_BkPCW3o7AYwV5B_pIwlREw7aVCSHaQ,1113
241
- edsl/surveys/MemoryPlan.py,sha256=BeLuqS5Q8G2jSluHYFCAxVmj7cNPK-rDQ3mUsuDjikQ,7979
242
- edsl/surveys/Rule.py,sha256=FnTCEWlbHDH_wOmnN1fiuqwrJzEEhPG4jibLXhRq03M,11104
243
- edsl/surveys/RuleCollection.py,sha256=PQY-oo1W8DyzIvHiwrGRlMQl-l9XG6Ide3Bs-gu-mOM,13379
244
- edsl/surveys/Survey.py,sha256=suJJiQGMLPl0XQoMPrdtAI3ZdxgmC4ImOeUw69VB9mo,65066
247
+ edsl/surveys/MemoryPlan.py,sha256=VESoPM0C_4LUngkskE51rOca_4vbXC2yjfwrBXtHfHA,9029
248
+ edsl/surveys/Rule.py,sha256=RlERae5n5jFTnEp597UF50YGXtywECU1nulYdsSlfh0,12223
249
+ edsl/surveys/RuleCollection.py,sha256=VBx9-OuBBFIJlRYfpbWIjMVFSA5iMwTzdx5yl8giQA8,14871
250
+ edsl/surveys/Survey.py,sha256=EYXkA0CzgpTIlwnVG21NQgBUo-vMRZhXrkP2sbT5hq4,72125
245
251
  edsl/surveys/SurveyCSS.py,sha256=NjJezs2sTlgFprN6IukjGKwNYmNdXnLjzV2w5K4z4RI,8415
246
252
  edsl/surveys/SurveyExportMixin.py,sha256=Kvkd2ku2Kemsn2Nw-Yt8GTnGFcUqfEiKznmisAeO7ck,8339
247
253
  edsl/surveys/SurveyFlowVisualizationMixin.py,sha256=dEG_f-L0ZAyWU5Ta584IX5GZurjVt1tbIISo5z61Jvg,4004
248
254
  edsl/surveys/SurveyQualtricsImport.py,sha256=SSZv53D1zVhQSfSw-X0_cte0QnkWhE9v922wLn6RMkI,9771
249
255
  edsl/surveys/__init__.py,sha256=vjMYVlP95fHVqqw2FfKXRuYbTArZkZr1nK4FnXzZWzs,129
250
- edsl/surveys/base.py,sha256=n5PBx0BF0powzBXCsufpUekfNK_9huf3rohtU1mMCq0,1001
256
+ edsl/surveys/base.py,sha256=XJHGEbbsH6hlYYkmI4isVLD8guLz8BdhR-eQRL78mc4,1115
251
257
  edsl/surveys/descriptors.py,sha256=3B-hBVvGpLlVBCyOnPuxkLjesvpr0QIuATbggp_MJ7o,2076
252
258
  edsl/surveys/instructions/ChangeInstruction.py,sha256=XDLuI5nVI60iJz1w1kLaKmYryAYE0XIyRbElBtNjVVM,1265
253
259
  edsl/surveys/instructions/Instruction.py,sha256=WaTGihAQ6lCtm5W4vknTamkPzDp-eIAirdtGV37fdbc,925
@@ -257,7 +263,7 @@ edsl/templates/error_reporting/base.html,sha256=IkV24ZaUCNX303ZqVTWkFsJOnu5BG_SU
257
263
  edsl/templates/error_reporting/exceptions_by_model.html,sha256=7uAWGfhUMey-29Vh6YkN_Qx1lfhC92fsTMxJEVXWPDs,792
258
264
  edsl/templates/error_reporting/exceptions_by_question_name.html,sha256=_q6hSwtO_WhjXLZNLZhRj-qbPzStqYSzT0iECKUAFlg,454
259
265
  edsl/templates/error_reporting/exceptions_by_type.html,sha256=TVsNCAz_G53LSZ-YslM51TUsbwtw7wzCqPwVYO6TVEw,415
260
- edsl/templates/error_reporting/interview_details.html,sha256=khKhf6KybSo9yItZvuJHwxTSDKYY0rDdIHGaG1jreis,3910
266
+ edsl/templates/error_reporting/interview_details.html,sha256=_3AZfDu7ZOrZZPQAE-odcSRkv7QuOPZQTsiK97MDY6g,4043
261
267
  edsl/templates/error_reporting/interviews.html,sha256=jaPrrtUGs8Rs26H3k1QLqNRpIGAZEWrJR4OF83gDCj8,393
262
268
  edsl/templates/error_reporting/overview.html,sha256=1oTYQpi03OnguG-iudO8FZC7mwR6GryeslDbl0w9ksw,405
263
269
  edsl/templates/error_reporting/performance_plot.html,sha256=NTXFj51VEwew59gLzbR83Lybh88WmFR-fhxm5rmz0Ms,53
@@ -282,8 +288,8 @@ edsl/utilities/gcp_bucket/cloud_storage.py,sha256=dStHsG181YP9ALW-bkyO-sgMWuLV5a
282
288
  edsl/utilities/interface.py,sha256=AaKpWiwWBwP2swNXmnFlIf3ZFsjfsR5bjXQAW47tD-8,19656
283
289
  edsl/utilities/repair_functions.py,sha256=tftmklAqam6LOQQu_-9U44N-llycffhW8LfO63vBmNw,929
284
290
  edsl/utilities/restricted_python.py,sha256=5-_zUhrNbos7pLhDl9nr8d24auRlquR6w-vKkmNjPiA,2060
285
- edsl/utilities/utilities.py,sha256=2KwKc1J0lu6_CjIAKaufvfLOJ4j3XGKyClwJ6TjKLxM,11157
286
- edsl-0.1.33.dev2.dist-info/LICENSE,sha256=_qszBDs8KHShVYcYzdMz3HNMtH-fKN_p5zjoVAVumFc,1111
287
- edsl-0.1.33.dev2.dist-info/METADATA,sha256=3CVZ1Yh-iLWtSBONoGMzTIHvNJ35y8i1UlrWElnB5B0,4384
288
- edsl-0.1.33.dev2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
289
- edsl-0.1.33.dev2.dist-info/RECORD,,
291
+ edsl/utilities/utilities.py,sha256=gqMtWWNEZkWLiRR9vHW-VRNy2bStEPlJ-I2aK9CwFiQ,11367
292
+ edsl-0.1.34.dist-info/LICENSE,sha256=_qszBDs8KHShVYcYzdMz3HNMtH-fKN_p5zjoVAVumFc,1111
293
+ edsl-0.1.34.dist-info/METADATA,sha256=lvzCVcOu45OuEW0eWIyoL6qQjCQpkwmi2dLVTEakOs4,4471
294
+ edsl-0.1.34.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
295
+ edsl-0.1.34.dist-info/RECORD,,