edsl 0.1.39.dev1__tar.gz → 0.1.39.dev3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/LICENSE +21 -21
  2. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/PKG-INFO +1 -1
  3. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/README.md +55 -55
  4. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/Base.py +332 -332
  5. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/BaseDiff.py +260 -260
  6. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/TemplateLoader.py +24 -24
  7. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/__init__.py +49 -49
  8. edsl-0.1.39.dev3/edsl/__version__.py +1 -0
  9. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/Agent.py +867 -867
  10. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/AgentList.py +413 -413
  11. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/Invigilator.py +233 -233
  12. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/InvigilatorBase.py +270 -265
  13. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/PromptConstructor.py +354 -354
  14. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/__init__.py +3 -3
  15. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/descriptors.py +99 -99
  16. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/agents/prompt_helpers.py +129 -129
  17. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/AutoStudy.py +117 -117
  18. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StageBase.py +230 -230
  19. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StageGenerateSurvey.py +178 -178
  20. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StageLabelQuestions.py +125 -125
  21. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StagePersona.py +61 -61
  22. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StagePersonaDimensionValueRanges.py +88 -88
  23. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StagePersonaDimensionValues.py +74 -74
  24. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StagePersonaDimensions.py +69 -69
  25. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/StageQuestions.py +73 -73
  26. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/SurveyCreatorPipeline.py +21 -21
  27. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/auto/utilities.py +224 -224
  28. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/base/Base.py +279 -279
  29. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/config.py +157 -157
  30. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/conversation/Conversation.py +290 -290
  31. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/conversation/car_buying.py +58 -58
  32. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/conversation/chips.py +95 -95
  33. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/conversation/mug_negotiation.py +81 -81
  34. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/conversation/next_speaker_utilities.py +93 -93
  35. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/coop/PriceFetcher.py +54 -54
  36. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/coop/__init__.py +2 -2
  37. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/coop/coop.py +1028 -1028
  38. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/coop/utils.py +131 -131
  39. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data/Cache.py +555 -555
  40. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data/CacheEntry.py +233 -233
  41. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data/CacheHandler.py +149 -149
  42. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data/RemoteCacheSync.py +78 -78
  43. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data/SQLiteDict.py +292 -292
  44. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data/__init__.py +4 -4
  45. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data/orm.py +10 -10
  46. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/data_transfer_models.py +73 -73
  47. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/enums.py +175 -175
  48. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/BaseException.py +21 -21
  49. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/__init__.py +54 -54
  50. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/agents.py +42 -42
  51. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/cache.py +5 -5
  52. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/configuration.py +16 -16
  53. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/coop.py +10 -10
  54. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/data.py +14 -14
  55. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/general.py +34 -34
  56. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/jobs.py +33 -33
  57. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/language_models.py +63 -63
  58. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/prompts.py +15 -15
  59. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/questions.py +91 -91
  60. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/results.py +29 -29
  61. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/scenarios.py +22 -22
  62. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/exceptions/surveys.py +37 -37
  63. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/AnthropicService.py +87 -87
  64. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/AwsBedrock.py +120 -120
  65. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/AzureAI.py +217 -217
  66. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/DeepInfraService.py +18 -18
  67. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/GoogleService.py +148 -148
  68. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/GroqService.py +20 -20
  69. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/InferenceServiceABC.py +147 -147
  70. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/InferenceServicesCollection.py +97 -97
  71. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/MistralAIService.py +123 -123
  72. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/OllamaService.py +18 -18
  73. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/OpenAIService.py +224 -224
  74. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/PerplexityService.py +163 -163
  75. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/TestService.py +89 -89
  76. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/TogetherAIService.py +170 -170
  77. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/models_available_cache.py +118 -118
  78. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/rate_limits_cache.py +25 -25
  79. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/registry.py +41 -41
  80. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/write_available.py +10 -10
  81. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/Answers.py +56 -56
  82. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/Jobs.py +898 -898
  83. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/JobsChecks.py +147 -147
  84. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/JobsPrompts.py +268 -268
  85. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/JobsRemoteInferenceHandler.py +239 -239
  86. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/__init__.py +1 -1
  87. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/buckets/BucketCollection.py +63 -63
  88. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/buckets/ModelBuckets.py +65 -65
  89. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/buckets/TokenBucket.py +251 -251
  90. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/Interview.py +661 -661
  91. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewExceptionCollection.py +99 -99
  92. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewExceptionEntry.py +186 -186
  93. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatistic.py +63 -63
  94. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatisticsCollection.py +25 -25
  95. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatusDictionary.py +78 -78
  96. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatusLog.py +92 -92
  97. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/ReportErrors.py +66 -66
  98. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/interviews/interview_status_enum.py +9 -9
  99. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/runners/JobsRunnerAsyncio.py +466 -466
  100. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/runners/JobsRunnerStatus.py +330 -330
  101. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/tasks/QuestionTaskCreator.py +242 -242
  102. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/tasks/TaskCreators.py +64 -64
  103. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/tasks/TaskHistory.py +450 -450
  104. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/tasks/TaskStatusLog.py +23 -23
  105. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/tasks/task_status_enum.py +163 -163
  106. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/tokens/InterviewTokenUsage.py +27 -27
  107. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/tokens/TokenUsage.py +34 -34
  108. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/KeyLookup.py +30 -30
  109. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/LanguageModel.py +668 -668
  110. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/ModelList.py +155 -155
  111. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/RegisterLanguageModelsMeta.py +184 -184
  112. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/__init__.py +3 -3
  113. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/fake_openai_call.py +15 -15
  114. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/fake_openai_service.py +61 -61
  115. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/registry.py +190 -190
  116. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/repair.py +156 -156
  117. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/unused/ReplicateBase.py +83 -83
  118. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/language_models/utilities.py +64 -64
  119. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/notebooks/Notebook.py +258 -258
  120. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/notebooks/__init__.py +1 -1
  121. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/prompts/Prompt.py +362 -362
  122. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/prompts/__init__.py +2 -2
  123. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/AnswerValidatorMixin.py +289 -289
  124. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionBase.py +664 -664
  125. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionBaseGenMixin.py +161 -161
  126. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionBasePromptsMixin.py +217 -217
  127. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionBudget.py +227 -227
  128. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionCheckBox.py +359 -359
  129. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionExtract.py +182 -182
  130. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionFreeText.py +114 -114
  131. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionFunctional.py +166 -166
  132. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionList.py +231 -231
  133. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionMultipleChoice.py +286 -286
  134. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionNumerical.py +153 -153
  135. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/QuestionRank.py +324 -324
  136. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/Quick.py +41 -41
  137. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/RegisterQuestionsMeta.py +71 -71
  138. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/ResponseValidatorABC.py +174 -174
  139. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/SimpleAskMixin.py +73 -73
  140. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/__init__.py +26 -26
  141. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/compose_questions.py +98 -98
  142. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/decorators.py +21 -21
  143. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionLikertFive.py +76 -76
  144. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionLinearScale.py +87 -87
  145. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionTopK.py +93 -93
  146. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionYesNo.py +82 -82
  147. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/descriptors.py +413 -413
  148. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_budget.jinja +13 -13
  149. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_checkbox.jinja +32 -32
  150. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_extract.jinja +11 -11
  151. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_free_text.jinja +3 -3
  152. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_linear_scale.jinja +11 -11
  153. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_list.jinja +17 -17
  154. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_multiple_choice.jinja +33 -33
  155. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_numerical.jinja +36 -36
  156. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/question_registry.py +177 -177
  157. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/settings.py +12 -12
  158. edsl-0.1.39.dev3/edsl/questions/templates/__pycache__/__init__.cpython-312.pyc +0 -0
  159. edsl-0.1.39.dev3/edsl/questions/templates/budget/__pycache__/__init__.cpython-312.pyc +0 -0
  160. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/budget/answering_instructions.jinja +7 -7
  161. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/budget/question_presentation.jinja +7 -7
  162. edsl-0.1.39.dev3/edsl/questions/templates/checkbox/__pycache__/__init__.cpython-312.pyc +0 -0
  163. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/checkbox/answering_instructions.jinja +10 -10
  164. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/checkbox/question_presentation.jinja +22 -22
  165. edsl-0.1.39.dev3/edsl/questions/templates/extract/__pycache__/__init__.cpython-312.pyc +0 -0
  166. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/extract/answering_instructions.jinja +7 -7
  167. edsl-0.1.39.dev3/edsl/questions/templates/free_text/__pycache__/__init__.cpython-312.pyc +0 -0
  168. edsl-0.1.39.dev3/edsl/questions/templates/likert_five/__pycache__/__init__.cpython-312.pyc +0 -0
  169. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/likert_five/answering_instructions.jinja +10 -10
  170. {edsl-0.1.39.dev1/edsl/questions/templates/multiple_choice → edsl-0.1.39.dev3/edsl/questions/templates/likert_five}/question_presentation.jinja +11 -11
  171. edsl-0.1.39.dev3/edsl/questions/templates/linear_scale/__pycache__/__init__.cpython-312.pyc +0 -0
  172. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/linear_scale/answering_instructions.jinja +5 -5
  173. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/linear_scale/question_presentation.jinja +5 -5
  174. edsl-0.1.39.dev3/edsl/questions/templates/list/__pycache__/__init__.cpython-312.pyc +0 -0
  175. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/list/answering_instructions.jinja +3 -3
  176. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/list/question_presentation.jinja +5 -5
  177. edsl-0.1.39.dev3/edsl/questions/templates/multiple_choice/__pycache__/__init__.cpython-312.pyc +0 -0
  178. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/multiple_choice/answering_instructions.jinja +9 -9
  179. {edsl-0.1.39.dev1/edsl/questions/templates/likert_five → edsl-0.1.39.dev3/edsl/questions/templates/multiple_choice}/question_presentation.jinja +11 -11
  180. edsl-0.1.39.dev3/edsl/questions/templates/numerical/__pycache__/__init__.cpython-312.pyc +0 -0
  181. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/numerical/answering_instructions.jinja +6 -6
  182. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/numerical/question_presentation.jinja +6 -6
  183. edsl-0.1.39.dev3/edsl/questions/templates/rank/__pycache__/__init__.cpython-312.pyc +0 -0
  184. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/rank/answering_instructions.jinja +11 -11
  185. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/rank/question_presentation.jinja +15 -15
  186. edsl-0.1.39.dev3/edsl/questions/templates/top_k/__pycache__/__init__.cpython-312.pyc +0 -0
  187. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/top_k/answering_instructions.jinja +8 -8
  188. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/top_k/question_presentation.jinja +22 -22
  189. edsl-0.1.39.dev3/edsl/questions/templates/yes_no/__pycache__/__init__.cpython-312.pyc +0 -0
  190. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/yes_no/answering_instructions.jinja +6 -6
  191. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/yes_no/question_presentation.jinja +11 -11
  192. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/CSSParameterizer.py +108 -108
  193. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/Dataset.py +424 -424
  194. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/DatasetExportMixin.py +731 -731
  195. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/DatasetTree.py +275 -275
  196. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/Result.py +465 -465
  197. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/Results.py +1165 -1165
  198. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/ResultsDBMixin.py +238 -238
  199. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/ResultsExportMixin.py +43 -43
  200. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/ResultsFetchMixin.py +33 -33
  201. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/ResultsGGMixin.py +121 -121
  202. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/ResultsToolsMixin.py +98 -98
  203. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/Selector.py +135 -135
  204. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/TableDisplay.py +198 -198
  205. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/__init__.py +2 -2
  206. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/table_display.css +77 -77
  207. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/results/tree_explore.py +115 -115
  208. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/FileStore.py +632 -632
  209. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/Scenario.py +601 -601
  210. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioHtmlMixin.py +64 -64
  211. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioJoin.py +127 -127
  212. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioList.py +1287 -1287
  213. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioListExportMixin.py +52 -52
  214. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioListPdfMixin.py +261 -261
  215. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/scenarios/__init__.py +4 -4
  216. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/shared.py +1 -1
  217. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/study/ObjectEntry.py +173 -173
  218. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/study/ProofOfWork.py +113 -113
  219. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/study/SnapShot.py +80 -80
  220. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/study/Study.py +528 -528
  221. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/study/__init__.py +4 -4
  222. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/DAG.py +148 -148
  223. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/Memory.py +31 -31
  224. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/MemoryPlan.py +244 -244
  225. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/Rule.py +326 -326
  226. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/RuleCollection.py +387 -387
  227. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/Survey.py +1801 -1801
  228. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/SurveyCSS.py +261 -261
  229. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/SurveyExportMixin.py +259 -259
  230. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/SurveyFlowVisualizationMixin.py +179 -179
  231. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/SurveyQualtricsImport.py +284 -284
  232. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/__init__.py +3 -3
  233. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/base.py +53 -53
  234. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/descriptors.py +56 -56
  235. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/instructions/ChangeInstruction.py +49 -49
  236. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/instructions/Instruction.py +65 -65
  237. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/instructions/InstructionCollection.py +77 -77
  238. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/base.html +23 -23
  239. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/exceptions_by_model.html +34 -34
  240. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/exceptions_by_question_name.html +16 -16
  241. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/exceptions_by_type.html +16 -16
  242. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/interview_details.html +115 -115
  243. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/interviews.html +19 -19
  244. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/overview.html +4 -4
  245. edsl-0.1.39.dev3/edsl/templates/error_reporting/performance_plot.html +2 -0
  246. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/report.css +73 -73
  247. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/report.html +117 -117
  248. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/report.js +25 -25
  249. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/tools/__init__.py +1 -1
  250. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/tools/clusters.py +192 -192
  251. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/tools/embeddings.py +27 -27
  252. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/tools/embeddings_plotting.py +118 -118
  253. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/tools/plotting.py +112 -112
  254. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/tools/summarize.py +18 -18
  255. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/SystemInfo.py +28 -28
  256. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/__init__.py +22 -22
  257. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/ast_utilities.py +25 -25
  258. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/data/Registry.py +6 -6
  259. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/data/__init__.py +1 -1
  260. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/data/scooter_results.json +1 -1
  261. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/decorators.py +77 -77
  262. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/gcp_bucket/cloud_storage.py +96 -96
  263. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/interface.py +627 -627
  264. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/naming_utilities.py +263 -263
  265. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/repair_functions.py +28 -28
  266. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/restricted_python.py +70 -70
  267. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/utilities.py +424 -424
  268. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/pyproject.toml +83 -83
  269. edsl-0.1.39.dev1/edsl/__version__.py +0 -1
  270. edsl-0.1.39.dev1/edsl/questions/templates/__pycache__/__init__.cpython-311.pyc +0 -0
  271. edsl-0.1.39.dev1/edsl/questions/templates/budget/__pycache__/__init__.cpython-311.pyc +0 -0
  272. edsl-0.1.39.dev1/edsl/questions/templates/checkbox/__pycache__/__init__.cpython-311.pyc +0 -0
  273. edsl-0.1.39.dev1/edsl/questions/templates/extract/__pycache__/__init__.cpython-311.pyc +0 -0
  274. edsl-0.1.39.dev1/edsl/questions/templates/free_text/__pycache__/__init__.cpython-311.pyc +0 -0
  275. edsl-0.1.39.dev1/edsl/questions/templates/likert_five/__pycache__/__init__.cpython-311.pyc +0 -0
  276. edsl-0.1.39.dev1/edsl/questions/templates/linear_scale/__pycache__/__init__.cpython-311.pyc +0 -0
  277. edsl-0.1.39.dev1/edsl/questions/templates/list/__pycache__/__init__.cpython-311.pyc +0 -0
  278. edsl-0.1.39.dev1/edsl/questions/templates/multiple_choice/__pycache__/__init__.cpython-311.pyc +0 -0
  279. edsl-0.1.39.dev1/edsl/questions/templates/numerical/__pycache__/__init__.cpython-311.pyc +0 -0
  280. edsl-0.1.39.dev1/edsl/questions/templates/rank/__pycache__/__init__.cpython-311.pyc +0 -0
  281. edsl-0.1.39.dev1/edsl/questions/templates/top_k/__pycache__/__init__.cpython-311.pyc +0 -0
  282. edsl-0.1.39.dev1/edsl/questions/templates/yes_no/__pycache__/__init__.cpython-311.pyc +0 -0
  283. edsl-0.1.39.dev1/edsl/templates/error_reporting/performance_plot.html +0 -2
  284. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/inference_services/__init__.py +0 -0
  285. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/jobs/runners/JobsRunnerStatusData.py +0 -0
  286. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/derived/__init__.py +0 -0
  287. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/__init__.py +0 -0
  288. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/budget/__init__.py +0 -0
  289. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/checkbox/__init__.py +0 -0
  290. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/extract/__init__.py +0 -0
  291. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/extract/question_presentation.jinja +0 -0
  292. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/free_text/__init__.py +0 -0
  293. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/free_text/answering_instructions.jinja +0 -0
  294. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/free_text/question_presentation.jinja +0 -0
  295. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/likert_five/__init__.py +0 -0
  296. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/linear_scale/__init__.py +0 -0
  297. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/list/__init__.py +0 -0
  298. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/multiple_choice/__init__.py +0 -0
  299. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/multiple_choice/html.jinja +0 -0
  300. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/numerical/__init__.py +0 -0
  301. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/rank/__init__.py +0 -0
  302. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/top_k/__init__.py +0 -0
  303. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/questions/templates/yes_no/__init__.py +0 -0
  304. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/surveys/instructions/__init__.py +0 -0
  305. {edsl-0.1.39.dev1 → edsl-0.1.39.dev3}/edsl/utilities/gcp_bucket/__init__.py +0 -0
@@ -1,21 +1,21 @@
1
- The MIT License
2
-
3
- Copyright (c) Apostolos Filippas, John Joseph Horton, Roberta Horton.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ The MIT License
2
+
3
+ Copyright (c) Apostolos Filippas, John Joseph Horton, Roberta Horton.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edsl
3
- Version: 0.1.39.dev1
3
+ Version: 0.1.39.dev3
4
4
  Summary: Create and analyze LLM-based surveys
5
5
  Home-page: https://www.expectedparrot.com/
6
6
  License: MIT
@@ -1,55 +1,55 @@
1
- # Expected Parrot Domain-Specific Language
2
- <p align="center">
3
- <img src="https://github.com/expectedparrot/edsl/blob/main/static/logo.png?raw=true" alt="edsl.png" width="100"/>
4
- </p>
5
-
6
- The Expected Parrot Domain-Specific Language (EDSL) package lets you conduct computational social science and market research with AI. Use it to design surveys and experiments, simulate responses with large language models, and perform data labeling and other research tasks. Results are formatted as specified datasets and come with built-in methods for analyzing, visualizing, and sharing.
7
-
8
- ## 🔗 Links
9
- - [PyPI](https://pypi.org/project/edsl/)
10
- - [Documentation](https://docs.expectedparrot.com)
11
- - [Getting started](https://docs.expectedparrot.com/en/latest/starter_tutorial.html)
12
- - [Discord](https://discord.com/invite/mxAYkjfy9m)
13
- - [Twitter](https://x.com/ExpectedParrot)
14
- - [LinkedIn](https://www.linkedin.com/company/expectedparrot/)
15
- - [Blog](https://blog.expectedparrot.com)
16
-
17
- ## 🌎 Hello, World!
18
- A quick example:
19
-
20
- ```python
21
- # Import a question type
22
- from edsl import QuestionMultipleChoice
23
-
24
- # Construct a question using the question type template
25
- q = QuestionMultipleChoice(
26
- question_name="example_question",
27
- question_text="How do you feel today?",
28
- question_options=["Bad", "OK", "Good"]
29
- )
30
-
31
- # Run it with the default language model
32
- results = q.run()
33
-
34
- # Inspect the results in a dataset
35
- results.select("example_question").print()
36
- ```
37
-
38
- Output:
39
- ```python
40
- ┏━━━━━━━━━━━━━━━━━━━┓
41
- ┃ answer ┃
42
- ┃ .example_question ┃
43
- ┡━━━━━━━━━━━━━━━━━━━┩
44
- │ Good │
45
- └───────────────────┘
46
- ```
47
-
48
- ## 💻 Requirements
49
- * EDSL is compatible with Python 3.9 - 3.12.
50
- * API keys for large language models that you want to use, stored in a `.env` file.
51
- See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html).
52
-
53
- ## 💡 Contributions, feature requests & bugs
54
- Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
55
- Please send us an email at [info@expectedparrot.com](mailto:info@expectedparrot.com) or message us at our [Discord channel](https://discord.com/invite/mxAYkjfy9m).
1
+ # Expected Parrot Domain-Specific Language
2
+ <p align="center">
3
+ <img src="https://github.com/expectedparrot/edsl/blob/main/static/logo.png?raw=true" alt="edsl.png" width="100"/>
4
+ </p>
5
+
6
+ The Expected Parrot Domain-Specific Language (EDSL) package lets you conduct computational social science and market research with AI. Use it to design surveys and experiments, simulate responses with large language models, and perform data labeling and other research tasks. Results are formatted as specified datasets and come with built-in methods for analyzing, visualizing, and sharing.
7
+
8
+ ## 🔗 Links
9
+ - [PyPI](https://pypi.org/project/edsl/)
10
+ - [Documentation](https://docs.expectedparrot.com)
11
+ - [Getting started](https://docs.expectedparrot.com/en/latest/starter_tutorial.html)
12
+ - [Discord](https://discord.com/invite/mxAYkjfy9m)
13
+ - [Twitter](https://x.com/ExpectedParrot)
14
+ - [LinkedIn](https://www.linkedin.com/company/expectedparrot/)
15
+ - [Blog](https://blog.expectedparrot.com)
16
+
17
+ ## 🌎 Hello, World!
18
+ A quick example:
19
+
20
+ ```python
21
+ # Import a question type
22
+ from edsl import QuestionMultipleChoice
23
+
24
+ # Construct a question using the question type template
25
+ q = QuestionMultipleChoice(
26
+ question_name="example_question",
27
+ question_text="How do you feel today?",
28
+ question_options=["Bad", "OK", "Good"]
29
+ )
30
+
31
+ # Run it with the default language model
32
+ results = q.run()
33
+
34
+ # Inspect the results in a dataset
35
+ results.select("example_question").print()
36
+ ```
37
+
38
+ Output:
39
+ ```python
40
+ ┏━━━━━━━━━━━━━━━━━━━┓
41
+ ┃ answer ┃
42
+ ┃ .example_question ┃
43
+ ┡━━━━━━━━━━━━━━━━━━━┩
44
+ │ Good │
45
+ └───────────────────┘
46
+ ```
47
+
48
+ ## 💻 Requirements
49
+ * EDSL is compatible with Python 3.9 - 3.12.
50
+ * API keys for large language models that you want to use, stored in a `.env` file.
51
+ See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html).
52
+
53
+ ## 💡 Contributions, feature requests & bugs
54
+ Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
55
+ Please send us an email at [info@expectedparrot.com](mailto:info@expectedparrot.com) or message us at our [Discord channel](https://discord.com/invite/mxAYkjfy9m).