edsl 0.1.39.dev2__py3-none-any.whl → 0.1.39.dev3__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 (334) hide show
  1. edsl/Base.py +332 -385
  2. edsl/BaseDiff.py +260 -260
  3. edsl/TemplateLoader.py +24 -24
  4. edsl/__init__.py +49 -57
  5. edsl/__version__.py +1 -1
  6. edsl/agents/Agent.py +867 -1079
  7. edsl/agents/AgentList.py +413 -551
  8. edsl/agents/Invigilator.py +233 -285
  9. edsl/agents/InvigilatorBase.py +270 -254
  10. edsl/agents/PromptConstructor.py +354 -252
  11. edsl/agents/__init__.py +3 -2
  12. edsl/agents/descriptors.py +99 -99
  13. edsl/agents/prompt_helpers.py +129 -129
  14. edsl/auto/AutoStudy.py +117 -117
  15. edsl/auto/StageBase.py +230 -230
  16. edsl/auto/StageGenerateSurvey.py +178 -178
  17. edsl/auto/StageLabelQuestions.py +125 -125
  18. edsl/auto/StagePersona.py +61 -61
  19. edsl/auto/StagePersonaDimensionValueRanges.py +88 -88
  20. edsl/auto/StagePersonaDimensionValues.py +74 -74
  21. edsl/auto/StagePersonaDimensions.py +69 -69
  22. edsl/auto/StageQuestions.py +73 -73
  23. edsl/auto/SurveyCreatorPipeline.py +21 -21
  24. edsl/auto/utilities.py +224 -224
  25. edsl/base/Base.py +279 -279
  26. edsl/config.py +157 -177
  27. edsl/conversation/Conversation.py +290 -290
  28. edsl/conversation/car_buying.py +58 -59
  29. edsl/conversation/chips.py +95 -95
  30. edsl/conversation/mug_negotiation.py +81 -81
  31. edsl/conversation/next_speaker_utilities.py +93 -93
  32. edsl/coop/PriceFetcher.py +54 -54
  33. edsl/coop/__init__.py +2 -2
  34. edsl/coop/coop.py +1028 -1090
  35. edsl/coop/utils.py +131 -131
  36. edsl/data/Cache.py +555 -562
  37. edsl/data/CacheEntry.py +233 -230
  38. edsl/data/CacheHandler.py +149 -170
  39. edsl/data/RemoteCacheSync.py +78 -78
  40. edsl/data/SQLiteDict.py +292 -292
  41. edsl/data/__init__.py +4 -5
  42. edsl/data/orm.py +10 -10
  43. edsl/data_transfer_models.py +73 -74
  44. edsl/enums.py +175 -195
  45. edsl/exceptions/BaseException.py +21 -21
  46. edsl/exceptions/__init__.py +54 -54
  47. edsl/exceptions/agents.py +42 -54
  48. edsl/exceptions/cache.py +5 -5
  49. edsl/exceptions/configuration.py +16 -16
  50. edsl/exceptions/coop.py +10 -10
  51. edsl/exceptions/data.py +14 -14
  52. edsl/exceptions/general.py +34 -34
  53. edsl/exceptions/jobs.py +33 -33
  54. edsl/exceptions/language_models.py +63 -63
  55. edsl/exceptions/prompts.py +15 -15
  56. edsl/exceptions/questions.py +91 -109
  57. edsl/exceptions/results.py +29 -29
  58. edsl/exceptions/scenarios.py +22 -29
  59. edsl/exceptions/surveys.py +37 -37
  60. edsl/inference_services/AnthropicService.py +87 -84
  61. edsl/inference_services/AwsBedrock.py +120 -118
  62. edsl/inference_services/AzureAI.py +217 -215
  63. edsl/inference_services/DeepInfraService.py +18 -18
  64. edsl/inference_services/GoogleService.py +148 -139
  65. edsl/inference_services/GroqService.py +20 -20
  66. edsl/inference_services/InferenceServiceABC.py +147 -80
  67. edsl/inference_services/InferenceServicesCollection.py +97 -122
  68. edsl/inference_services/MistralAIService.py +123 -120
  69. edsl/inference_services/OllamaService.py +18 -18
  70. edsl/inference_services/OpenAIService.py +224 -221
  71. edsl/inference_services/PerplexityService.py +163 -160
  72. edsl/inference_services/TestService.py +89 -92
  73. edsl/inference_services/TogetherAIService.py +170 -170
  74. edsl/inference_services/models_available_cache.py +118 -118
  75. edsl/inference_services/rate_limits_cache.py +25 -25
  76. edsl/inference_services/registry.py +41 -41
  77. edsl/inference_services/write_available.py +10 -10
  78. edsl/jobs/Answers.py +56 -43
  79. edsl/jobs/Jobs.py +898 -757
  80. edsl/jobs/JobsChecks.py +147 -172
  81. edsl/jobs/JobsPrompts.py +268 -270
  82. edsl/jobs/JobsRemoteInferenceHandler.py +239 -287
  83. edsl/jobs/__init__.py +1 -1
  84. edsl/jobs/buckets/BucketCollection.py +63 -104
  85. edsl/jobs/buckets/ModelBuckets.py +65 -65
  86. edsl/jobs/buckets/TokenBucket.py +251 -283
  87. edsl/jobs/interviews/Interview.py +661 -358
  88. edsl/jobs/interviews/InterviewExceptionCollection.py +99 -99
  89. edsl/jobs/interviews/InterviewExceptionEntry.py +186 -186
  90. edsl/jobs/interviews/InterviewStatistic.py +63 -63
  91. edsl/jobs/interviews/InterviewStatisticsCollection.py +25 -25
  92. edsl/jobs/interviews/InterviewStatusDictionary.py +78 -78
  93. edsl/jobs/interviews/InterviewStatusLog.py +92 -92
  94. edsl/jobs/interviews/ReportErrors.py +66 -66
  95. edsl/jobs/interviews/interview_status_enum.py +9 -9
  96. edsl/jobs/runners/JobsRunnerAsyncio.py +466 -421
  97. edsl/jobs/runners/JobsRunnerStatus.py +330 -330
  98. edsl/jobs/tasks/QuestionTaskCreator.py +242 -244
  99. edsl/jobs/tasks/TaskCreators.py +64 -64
  100. edsl/jobs/tasks/TaskHistory.py +450 -449
  101. edsl/jobs/tasks/TaskStatusLog.py +23 -23
  102. edsl/jobs/tasks/task_status_enum.py +163 -161
  103. edsl/jobs/tokens/InterviewTokenUsage.py +27 -27
  104. edsl/jobs/tokens/TokenUsage.py +34 -34
  105. edsl/language_models/KeyLookup.py +30 -0
  106. edsl/language_models/LanguageModel.py +668 -571
  107. edsl/language_models/ModelList.py +155 -153
  108. edsl/language_models/RegisterLanguageModelsMeta.py +184 -184
  109. edsl/language_models/__init__.py +3 -2
  110. edsl/language_models/fake_openai_call.py +15 -15
  111. edsl/language_models/fake_openai_service.py +61 -61
  112. edsl/language_models/registry.py +190 -180
  113. edsl/language_models/repair.py +156 -156
  114. edsl/language_models/unused/ReplicateBase.py +83 -0
  115. edsl/language_models/utilities.py +64 -65
  116. edsl/notebooks/Notebook.py +258 -263
  117. edsl/notebooks/__init__.py +1 -1
  118. edsl/prompts/Prompt.py +362 -352
  119. edsl/prompts/__init__.py +2 -2
  120. edsl/questions/AnswerValidatorMixin.py +289 -334
  121. edsl/questions/QuestionBase.py +664 -509
  122. edsl/questions/QuestionBaseGenMixin.py +161 -165
  123. edsl/questions/QuestionBasePromptsMixin.py +217 -221
  124. edsl/questions/QuestionBudget.py +227 -227
  125. edsl/questions/QuestionCheckBox.py +359 -359
  126. edsl/questions/QuestionExtract.py +182 -182
  127. edsl/questions/QuestionFreeText.py +114 -113
  128. edsl/questions/QuestionFunctional.py +166 -166
  129. edsl/questions/QuestionList.py +231 -229
  130. edsl/questions/QuestionMultipleChoice.py +286 -330
  131. edsl/questions/QuestionNumerical.py +153 -151
  132. edsl/questions/QuestionRank.py +324 -314
  133. edsl/questions/Quick.py +41 -41
  134. edsl/questions/RegisterQuestionsMeta.py +71 -71
  135. edsl/questions/ResponseValidatorABC.py +174 -200
  136. edsl/questions/SimpleAskMixin.py +73 -74
  137. edsl/questions/__init__.py +26 -27
  138. edsl/questions/compose_questions.py +98 -98
  139. edsl/questions/decorators.py +21 -21
  140. edsl/questions/derived/QuestionLikertFive.py +76 -76
  141. edsl/questions/derived/QuestionLinearScale.py +87 -90
  142. edsl/questions/derived/QuestionTopK.py +93 -93
  143. edsl/questions/derived/QuestionYesNo.py +82 -82
  144. edsl/questions/descriptors.py +413 -427
  145. edsl/questions/prompt_templates/question_budget.jinja +13 -13
  146. edsl/questions/prompt_templates/question_checkbox.jinja +32 -32
  147. edsl/questions/prompt_templates/question_extract.jinja +11 -11
  148. edsl/questions/prompt_templates/question_free_text.jinja +3 -3
  149. edsl/questions/prompt_templates/question_linear_scale.jinja +11 -11
  150. edsl/questions/prompt_templates/question_list.jinja +17 -17
  151. edsl/questions/prompt_templates/question_multiple_choice.jinja +33 -33
  152. edsl/questions/prompt_templates/question_numerical.jinja +36 -36
  153. edsl/questions/question_registry.py +177 -177
  154. edsl/questions/settings.py +12 -12
  155. edsl/questions/templates/budget/answering_instructions.jinja +7 -7
  156. edsl/questions/templates/budget/question_presentation.jinja +7 -7
  157. edsl/questions/templates/checkbox/answering_instructions.jinja +10 -10
  158. edsl/questions/templates/checkbox/question_presentation.jinja +22 -22
  159. edsl/questions/templates/extract/answering_instructions.jinja +7 -7
  160. edsl/questions/templates/likert_five/answering_instructions.jinja +10 -10
  161. edsl/questions/templates/likert_five/question_presentation.jinja +11 -11
  162. edsl/questions/templates/linear_scale/answering_instructions.jinja +5 -5
  163. edsl/questions/templates/linear_scale/question_presentation.jinja +5 -5
  164. edsl/questions/templates/list/answering_instructions.jinja +3 -3
  165. edsl/questions/templates/list/question_presentation.jinja +5 -5
  166. edsl/questions/templates/multiple_choice/answering_instructions.jinja +9 -9
  167. edsl/questions/templates/multiple_choice/question_presentation.jinja +11 -11
  168. edsl/questions/templates/numerical/answering_instructions.jinja +6 -6
  169. edsl/questions/templates/numerical/question_presentation.jinja +6 -6
  170. edsl/questions/templates/rank/answering_instructions.jinja +11 -11
  171. edsl/questions/templates/rank/question_presentation.jinja +15 -15
  172. edsl/questions/templates/top_k/answering_instructions.jinja +8 -8
  173. edsl/questions/templates/top_k/question_presentation.jinja +22 -22
  174. edsl/questions/templates/yes_no/answering_instructions.jinja +6 -6
  175. edsl/questions/templates/yes_no/question_presentation.jinja +11 -11
  176. edsl/results/CSSParameterizer.py +108 -108
  177. edsl/results/Dataset.py +424 -587
  178. edsl/results/DatasetExportMixin.py +731 -653
  179. edsl/results/DatasetTree.py +275 -295
  180. edsl/results/Result.py +465 -451
  181. edsl/results/Results.py +1165 -1172
  182. edsl/results/ResultsDBMixin.py +238 -0
  183. edsl/results/ResultsExportMixin.py +43 -45
  184. edsl/results/ResultsFetchMixin.py +33 -33
  185. edsl/results/ResultsGGMixin.py +121 -121
  186. edsl/results/ResultsToolsMixin.py +98 -98
  187. edsl/results/Selector.py +135 -145
  188. edsl/results/TableDisplay.py +198 -125
  189. edsl/results/__init__.py +2 -2
  190. edsl/results/table_display.css +77 -77
  191. edsl/results/tree_explore.py +115 -115
  192. edsl/scenarios/FileStore.py +632 -511
  193. edsl/scenarios/Scenario.py +601 -498
  194. edsl/scenarios/ScenarioHtmlMixin.py +64 -65
  195. edsl/scenarios/ScenarioJoin.py +127 -131
  196. edsl/scenarios/ScenarioList.py +1287 -1430
  197. edsl/scenarios/ScenarioListExportMixin.py +52 -45
  198. edsl/scenarios/ScenarioListPdfMixin.py +261 -239
  199. edsl/scenarios/__init__.py +4 -3
  200. edsl/shared.py +1 -1
  201. edsl/study/ObjectEntry.py +173 -173
  202. edsl/study/ProofOfWork.py +113 -113
  203. edsl/study/SnapShot.py +80 -80
  204. edsl/study/Study.py +528 -521
  205. edsl/study/__init__.py +4 -4
  206. edsl/surveys/DAG.py +148 -148
  207. edsl/surveys/Memory.py +31 -31
  208. edsl/surveys/MemoryPlan.py +244 -244
  209. edsl/surveys/Rule.py +326 -327
  210. edsl/surveys/RuleCollection.py +387 -385
  211. edsl/surveys/Survey.py +1801 -1229
  212. edsl/surveys/SurveyCSS.py +261 -273
  213. edsl/surveys/SurveyExportMixin.py +259 -259
  214. edsl/surveys/{SurveyFlowVisualization.py → SurveyFlowVisualizationMixin.py} +179 -181
  215. edsl/surveys/SurveyQualtricsImport.py +284 -284
  216. edsl/surveys/__init__.py +3 -5
  217. edsl/surveys/base.py +53 -53
  218. edsl/surveys/descriptors.py +56 -60
  219. edsl/surveys/instructions/ChangeInstruction.py +49 -48
  220. edsl/surveys/instructions/Instruction.py +65 -56
  221. edsl/surveys/instructions/InstructionCollection.py +77 -82
  222. edsl/templates/error_reporting/base.html +23 -23
  223. edsl/templates/error_reporting/exceptions_by_model.html +34 -34
  224. edsl/templates/error_reporting/exceptions_by_question_name.html +16 -16
  225. edsl/templates/error_reporting/exceptions_by_type.html +16 -16
  226. edsl/templates/error_reporting/interview_details.html +115 -115
  227. edsl/templates/error_reporting/interviews.html +19 -19
  228. edsl/templates/error_reporting/overview.html +4 -4
  229. edsl/templates/error_reporting/performance_plot.html +1 -1
  230. edsl/templates/error_reporting/report.css +73 -73
  231. edsl/templates/error_reporting/report.html +117 -117
  232. edsl/templates/error_reporting/report.js +25 -25
  233. edsl/tools/__init__.py +1 -1
  234. edsl/tools/clusters.py +192 -192
  235. edsl/tools/embeddings.py +27 -27
  236. edsl/tools/embeddings_plotting.py +118 -118
  237. edsl/tools/plotting.py +112 -112
  238. edsl/tools/summarize.py +18 -18
  239. edsl/utilities/SystemInfo.py +28 -28
  240. edsl/utilities/__init__.py +22 -22
  241. edsl/utilities/ast_utilities.py +25 -25
  242. edsl/utilities/data/Registry.py +6 -6
  243. edsl/utilities/data/__init__.py +1 -1
  244. edsl/utilities/data/scooter_results.json +1 -1
  245. edsl/utilities/decorators.py +77 -77
  246. edsl/utilities/gcp_bucket/cloud_storage.py +96 -96
  247. edsl/utilities/interface.py +627 -627
  248. edsl/utilities/naming_utilities.py +263 -263
  249. edsl/utilities/repair_functions.py +28 -28
  250. edsl/utilities/restricted_python.py +70 -70
  251. edsl/utilities/utilities.py +424 -436
  252. {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev3.dist-info}/LICENSE +21 -21
  253. {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev3.dist-info}/METADATA +10 -12
  254. edsl-0.1.39.dev3.dist-info/RECORD +277 -0
  255. edsl/agents/QuestionInstructionPromptBuilder.py +0 -128
  256. edsl/agents/QuestionOptionProcessor.py +0 -172
  257. edsl/agents/QuestionTemplateReplacementsBuilder.py +0 -137
  258. edsl/coop/CoopFunctionsMixin.py +0 -15
  259. edsl/coop/ExpectedParrotKeyHandler.py +0 -125
  260. edsl/exceptions/inference_services.py +0 -5
  261. edsl/inference_services/AvailableModelCacheHandler.py +0 -184
  262. edsl/inference_services/AvailableModelFetcher.py +0 -209
  263. edsl/inference_services/ServiceAvailability.py +0 -135
  264. edsl/inference_services/data_structures.py +0 -62
  265. edsl/jobs/AnswerQuestionFunctionConstructor.py +0 -188
  266. edsl/jobs/FetchInvigilator.py +0 -40
  267. edsl/jobs/InterviewTaskManager.py +0 -98
  268. edsl/jobs/InterviewsConstructor.py +0 -48
  269. edsl/jobs/JobsComponentConstructor.py +0 -189
  270. edsl/jobs/JobsRemoteInferenceLogger.py +0 -239
  271. edsl/jobs/RequestTokenEstimator.py +0 -30
  272. edsl/jobs/buckets/TokenBucketAPI.py +0 -211
  273. edsl/jobs/buckets/TokenBucketClient.py +0 -191
  274. edsl/jobs/decorators.py +0 -35
  275. edsl/jobs/jobs_status_enums.py +0 -9
  276. edsl/jobs/loggers/HTMLTableJobLogger.py +0 -304
  277. edsl/language_models/ComputeCost.py +0 -63
  278. edsl/language_models/PriceManager.py +0 -127
  279. edsl/language_models/RawResponseHandler.py +0 -106
  280. edsl/language_models/ServiceDataSources.py +0 -0
  281. edsl/language_models/key_management/KeyLookup.py +0 -63
  282. edsl/language_models/key_management/KeyLookupBuilder.py +0 -273
  283. edsl/language_models/key_management/KeyLookupCollection.py +0 -38
  284. edsl/language_models/key_management/__init__.py +0 -0
  285. edsl/language_models/key_management/models.py +0 -131
  286. edsl/notebooks/NotebookToLaTeX.py +0 -142
  287. edsl/questions/ExceptionExplainer.py +0 -77
  288. edsl/questions/HTMLQuestion.py +0 -103
  289. edsl/questions/LoopProcessor.py +0 -149
  290. edsl/questions/QuestionMatrix.py +0 -265
  291. edsl/questions/ResponseValidatorFactory.py +0 -28
  292. edsl/questions/templates/matrix/__init__.py +0 -1
  293. edsl/questions/templates/matrix/answering_instructions.jinja +0 -5
  294. edsl/questions/templates/matrix/question_presentation.jinja +0 -20
  295. edsl/results/MarkdownToDocx.py +0 -122
  296. edsl/results/MarkdownToPDF.py +0 -111
  297. edsl/results/TextEditor.py +0 -50
  298. edsl/results/smart_objects.py +0 -96
  299. edsl/results/table_data_class.py +0 -12
  300. edsl/results/table_renderers.py +0 -118
  301. edsl/scenarios/ConstructDownloadLink.py +0 -109
  302. edsl/scenarios/DirectoryScanner.py +0 -96
  303. edsl/scenarios/DocumentChunker.py +0 -102
  304. edsl/scenarios/DocxScenario.py +0 -16
  305. edsl/scenarios/PdfExtractor.py +0 -40
  306. edsl/scenarios/ScenarioSelector.py +0 -156
  307. edsl/scenarios/file_methods.py +0 -85
  308. edsl/scenarios/handlers/__init__.py +0 -13
  309. edsl/scenarios/handlers/csv.py +0 -38
  310. edsl/scenarios/handlers/docx.py +0 -76
  311. edsl/scenarios/handlers/html.py +0 -37
  312. edsl/scenarios/handlers/json.py +0 -111
  313. edsl/scenarios/handlers/latex.py +0 -5
  314. edsl/scenarios/handlers/md.py +0 -51
  315. edsl/scenarios/handlers/pdf.py +0 -68
  316. edsl/scenarios/handlers/png.py +0 -39
  317. edsl/scenarios/handlers/pptx.py +0 -105
  318. edsl/scenarios/handlers/py.py +0 -294
  319. edsl/scenarios/handlers/sql.py +0 -313
  320. edsl/scenarios/handlers/sqlite.py +0 -149
  321. edsl/scenarios/handlers/txt.py +0 -33
  322. edsl/surveys/ConstructDAG.py +0 -92
  323. edsl/surveys/EditSurvey.py +0 -221
  324. edsl/surveys/InstructionHandler.py +0 -100
  325. edsl/surveys/MemoryManagement.py +0 -72
  326. edsl/surveys/RuleManager.py +0 -172
  327. edsl/surveys/Simulator.py +0 -75
  328. edsl/surveys/SurveyToApp.py +0 -141
  329. edsl/utilities/PrettyList.py +0 -56
  330. edsl/utilities/is_notebook.py +0 -18
  331. edsl/utilities/is_valid_variable_name.py +0 -11
  332. edsl/utilities/remove_edsl_version.py +0 -24
  333. edsl-0.1.39.dev2.dist-info/RECORD +0 -352
  334. {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev3.dist-info}/WHEEL +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.dev2
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
@@ -34,15 +34,12 @@ Requires-Dist: numpy (>=1.22,<2.0)
34
34
  Requires-Dist: openai (>=1.4.0,<2.0.0)
35
35
  Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
36
36
  Requires-Dist: pandas (>=2.1.4,<3.0.0)
37
- Requires-Dist: platformdirs (>=4.3.6,<5.0.0)
38
37
  Requires-Dist: pydot (>=2.0.0,<3.0.0)
39
38
  Requires-Dist: pygments (>=2.17.2,<3.0.0)
40
39
  Requires-Dist: pymupdf (>=1.24.4,<2.0.0)
41
- Requires-Dist: pypdf2 (>=3.0.1,<4.0.0)
42
40
  Requires-Dist: pyreadstat (>=1.2.7,<2.0.0)
43
41
  Requires-Dist: python-docx (>=1.1.0,<2.0.0)
44
42
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
45
- Requires-Dist: python-pptx (>=1.0.2,<2.0.0)
46
43
  Requires-Dist: restrictedpython (>=7.1,<8.0)
47
44
  Requires-Dist: rich (>=13.7.0,<14.0.0)
48
45
  Requires-Dist: setuptools (<72.0)
@@ -87,23 +84,24 @@ q = QuestionMultipleChoice(
87
84
  # Run it with the default language model
88
85
  results = q.run()
89
86
 
90
- # Inspect the results
91
- results.select("example_question")
87
+ # Inspect the results in a dataset
88
+ results.select("example_question").print()
92
89
  ```
93
90
 
94
91
  Output:
95
92
  ```python
96
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━┓
97
- ┃ answer.example_question
98
- ┡━━━━━━━━━━━━━━━━━━━━━━━━━┩
99
- │ Good │
100
- └─────────────────────────┘
93
+ ┏━━━━━━━━━━━━━━━━━━━┓
94
+ ┃ answer
95
+ ┃ .example_question ┃
96
+ ┡━━━━━━━━━━━━━━━━━━━┩
97
+ │ Good │
98
+ └───────────────────┘
101
99
  ```
102
100
 
103
101
  ## 💻 Requirements
104
102
  * EDSL is compatible with Python 3.9 - 3.12.
105
103
  * API keys for large language models that you want to use, stored in a `.env` file.
106
- See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html) and [activating remote inference](https://docs.expectedparrot.com/en/latest/remote_inference.html).
104
+ See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html).
107
105
 
108
106
  ## 💡 Contributions, feature requests & bugs
109
107
  Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
@@ -0,0 +1,277 @@
1
+ edsl/__init__.py,sha256=KPXY5GPtA2d6pkyrSj_3taJ0U3ZLSE9fx9o_PErWskw,1869
2
+ edsl/__version__.py,sha256=jRHa0MSyHBeFNcZhzeFPpiDHTfyJiNwueMUr8Vl06dA,29
3
+ edsl/agents/__init__.py,sha256=Jw2EmdckbcROk_4tRPcJ2i-YEutApOs8BCohy3IHzqY,139
4
+ edsl/agents/Agent.py,sha256=b6cb5cj5m_p2vlNEaZIfaKjXsAyxTleqMcf4_VONV7I,32852
5
+ edsl/agents/AgentList.py,sha256=gxCqDr_PLIvfjuGYjvPoExB7GR86DGwspkFugbqln6E,14001
6
+ edsl/agents/descriptors.py,sha256=FxjJUjxlvMn2PMbbMXw9BVTGE_IkGEsJ6RYAGY5bYkI,3288
7
+ edsl/agents/Invigilator.py,sha256=OaU3Q_6rdoIk1Mjt6gXN6VfcDb9Wdw3wyinMLXzvtlE,9811
8
+ edsl/agents/InvigilatorBase.py,sha256=RFiUjI5nb7Y4E5Xqwr1XW0XWik4Gm7vxILhsb0odIlc,9500
9
+ edsl/agents/prompt_helpers.py,sha256=oBuv6vWyP3na8qmBV_uYMB2Aq0_FEHzCYFhpEzt8leE,5152
10
+ edsl/agents/PromptConstructor.py,sha256=WBJqstJi0C2osvJl3Vk5YRQXsFKfvk07i1mDDJ7h96k,14068
11
+ edsl/auto/AutoStudy.py,sha256=bUhIvpDzQdYgDpAc8jCpNdCh6cI6brdJU8DaoScxkTo,3960
12
+ edsl/auto/StageBase.py,sha256=BUcIdH5O2nsoSjlNyBM61dGTnKV-09N6-5HO0ykmbTU,8163
13
+ edsl/auto/StageGenerateSurvey.py,sha256=4xe7PVTXSP-i3O9NSmX-an2OkRoyxCBygWaT-nslBsA,7572
14
+ edsl/auto/StageLabelQuestions.py,sha256=1QSkI-eZALNsPdqkuna6jfLC4unqQ8sQMI-UTFo9ugA,4788
15
+ edsl/auto/StagePersona.py,sha256=XF2mmIZIXQzCUD38VD0N_zsvo6IhDhoAh3sq1PArFK8,1947
16
+ edsl/auto/StagePersonaDimensions.py,sha256=dmggym7c1DpRoIKnJ688CUIUteETB2opHCS791O7pW8,2138
17
+ edsl/auto/StagePersonaDimensionValueRanges.py,sha256=sOzULRQ3jSlx2Aur2PbLUjG3We7p9kUw_I_yVSiOBKk,3021
18
+ edsl/auto/StagePersonaDimensionValues.py,sha256=WcYqgKdGVhYScLoMu-_5aChy7aWGa5xvXjG3txV2fWo,2387
19
+ edsl/auto/StageQuestions.py,sha256=BKluv3d_fs8EoZgkuC0RnBJEAsmmvs5arwS_y2wp9wY,2271
20
+ edsl/auto/SurveyCreatorPipeline.py,sha256=AnCjlEIucObqqSVgizhyqqvgiYA6RnDCMDzBDmlYb_I,681
21
+ edsl/auto/utilities.py,sha256=oPV_CoW53fYF3epzV-F5h7ALGDxwhMCwH4TkyEfHTls,7832
22
+ edsl/base/Base.py,sha256=eQrvIHYa4bxkrvbtwQT1Gpc13nyPDKfr8qva-NJKxoM,8813
23
+ edsl/Base.py,sha256=JXmDU8Ixs9Od-jY47fv8gRtHx25YgF5RRDlvfPZnrQk,10532
24
+ edsl/BaseDiff.py,sha256=WWt5tI0IL0Ps9EDt7i1U054p4REfsIanUz8aGcSQqrU,8513
25
+ edsl/config.py,sha256=lTaCVIPeE0W7pOgtVT5zKBNxSeYg5nEnXitkBPXve9g,6402
26
+ edsl/conversation/car_buying.py,sha256=cY2y7wGiZiXWsat0F0Bh6MJBfVxcuKlZIMlJSpmTbH8,2008
27
+ edsl/conversation/chips.py,sha256=Q-6tlCFrU98d5Hstmy2YUzHJmwIWGdxRrsLNYp0D_28,3418
28
+ edsl/conversation/Conversation.py,sha256=mJJJH6KQgDOW-GYqe-V-42Bqe_SaXq1qjxVgXnke4l0,9879
29
+ edsl/conversation/mug_negotiation.py,sha256=WhdhN6dCiZ8bvpptudEnIEObkUQuy4y52-ysQSPuk54,2697
30
+ edsl/conversation/next_speaker_utilities.py,sha256=EpGlZ_J9-vSNzezpngC58EFCfxOoN8tZ3DHBKcT3h80,3722
31
+ edsl/coop/__init__.py,sha256=XqMfFaHIeyAb_dfDw7VaKf6wCPdahh19ye4w6XAY3R4,117
32
+ edsl/coop/coop.py,sha256=nz6XfKhf3LXqpGgswTBMoj6gx9eWAV94pq37AzXOU_g,38085
33
+ edsl/coop/PriceFetcher.py,sha256=CALznFyhdyiOylBuZFPfWg66iNVGG_q72CQMGCicfxU,1824
34
+ edsl/coop/utils.py,sha256=r3FKAsNYnJ_bTTDKrq_TDubJrXnbW5lN3JzNExYHzuM,3732
35
+ edsl/data/__init__.py,sha256=LW9OLfpkTtUZFpAnB-_E72dXdhsOew53BbcgYlDcU6A,174
36
+ edsl/data/Cache.py,sha256=usGRFq3r9zR26btolXG5Tfh2uewk82Mda3Wzx7pXI-s,18110
37
+ edsl/data/CacheEntry.py,sha256=cNfGwsZSG7lEMY7KIjbtv1g9dmVIWcdLyjpibCBhbWs,7718
38
+ edsl/data/CacheHandler.py,sha256=z2qPvL4iMLjcoTek_WrwJ416qMBQtUK5XIZ16QMqjsw,4942
39
+ edsl/data/orm.py,sha256=NbFg8cZPUGQWlv7DJQ77NCTEdhV361XEvqLGUZGWavY,248
40
+ edsl/data/RemoteCacheSync.py,sha256=g9n83nU8z33S7krwJCnp4_9Trp3VYPVO9xy1atu9oZ4,2956
41
+ edsl/data/SQLiteDict.py,sha256=ksUt6z6THDnv1GrffUSbuKXWBFR3K2oHCqX7IPRjn4Q,9271
42
+ edsl/data_transfer_models.py,sha256=yUz0rWlC7tMIiSoRzaOPUFB0G_JTURtQC4JrnM2-8Qk,2024
43
+ edsl/enums.py,sha256=cu6NWPBE6kADVuFXUz6gWYuISVl0wRL-_xSG__S2qCY,5517
44
+ edsl/exceptions/__init__.py,sha256=QGT5ZgBfhUH8dCjGvqRBCxd9cBh-2-qLiYoy4rdeguY,1486
45
+ edsl/exceptions/agents.py,sha256=IVk3F_Vlc6E9KDed_1EZ0-DOVjl3ZD8GN9WopM0lCF4,1388
46
+ edsl/exceptions/BaseException.py,sha256=0LxiXxXqhznuouIJqlBKpmqjpNyOuoIr_WSO9iCd0lA,832
47
+ edsl/exceptions/cache.py,sha256=chlVbjSF8ascMJmVWvURK5_CTYBs1sWVMMwZSD2kyOU,183
48
+ edsl/exceptions/configuration.py,sha256=-LABNiw__bGvMER6iSaQpm_mLgwFCcz4qzwNgROtipU,367
49
+ edsl/exceptions/coop.py,sha256=-hzXQgUtCNdo91DgGO-zXrJC-4loE4NuPwCNvOhOKYs,148
50
+ edsl/exceptions/data.py,sha256=UTYecRpjOar6n4HuE0oDxHYhzkDNf7twIsB6v01kDxc,223
51
+ edsl/exceptions/general.py,sha256=jiwNKeI0o7pVcEB5_vrNv3KzPhO860xcnthRgIydlJs,1148
52
+ edsl/exceptions/jobs.py,sha256=TV0BFLstkINj3ASa1HfqLicKfloVfc3mA8fDQaoq9_w,836
53
+ edsl/exceptions/language_models.py,sha256=KWcukaP6-07kG9XLJebaLfI6AGrgcNPLOiTRk70r-ss,1877
54
+ edsl/exceptions/prompts.py,sha256=Amg8wbzVMN-8JeqQcCFsHdZKsohzejb-YBEUmrz1mb8,262
55
+ edsl/exceptions/questions.py,sha256=k4zat-LP1e5TYGxjK0dKRQNfta8geW7of--HIrzGYd4,2600
56
+ edsl/exceptions/results.py,sha256=vWmeDmZBpCLPD3ATke1QD1CMLHdT5ATByzyNX7Vb3nA,538
57
+ edsl/exceptions/scenarios.py,sha256=D89_g9WsbsbIODf9BPjgWOT8q1a45y6fvpyLGMvUlM4,730
58
+ edsl/exceptions/surveys.py,sha256=_2pvzU0YG16k50V7iAvfkaXzWDGKx_SKcuznUe5yIyg,714
59
+ edsl/inference_services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ edsl/inference_services/AnthropicService.py,sha256=lm12W-vHUOByZMjz8CXuLO0vwpypI-KBumRRuWptXPo,3004
61
+ edsl/inference_services/AwsBedrock.py,sha256=xhh8k0judjum-iQd9Ez1cBNovAbi3i5N5pyev7MVxaY,4193
62
+ edsl/inference_services/AzureAI.py,sha256=NCjmm0yggie8HClcal7Gi_n4lTKM1QvW10uhs4L8ILY,9106
63
+ edsl/inference_services/DeepInfraService.py,sha256=OKpc9E9nyJu-mOqUHs_dBwOHh9xhDHksGfsvVwJHBf8,533
64
+ edsl/inference_services/GoogleService.py,sha256=6o2mzGbGw7mbkiCKOu_cVyPYPiQuzDdzHaNw5j1hlG4,5248
65
+ edsl/inference_services/GroqService.py,sha256=D2E6lnOjeJNSApo1_ndvHJnUUwXn4nOPmmFgt0CzTYs,530
66
+ edsl/inference_services/InferenceServiceABC.py,sha256=u5L56F9iecukMaU5KnXmEjfGipNB466aluuaQl4g3as,4841
67
+ edsl/inference_services/InferenceServicesCollection.py,sha256=xSOZoG0IPYuFAXGWhds4LOjVZsXmUWowRys2ynO1ZgY,3836
68
+ edsl/inference_services/MistralAIService.py,sha256=42nQ_yh6hZpu9zSEdm0uJxi4sQI9i5YV3p2iK7omCr4,4001
69
+ edsl/inference_services/models_available_cache.py,sha256=y159MaMtHWQd7Ia7140-dL5zSVKeHRzz1U7y7RAZtL0,4179
70
+ edsl/inference_services/OllamaService.py,sha256=ewT2SKDXnKcc4wHmMaSlVyJDA9uGLLEWcNTifnz31-g,516
71
+ edsl/inference_services/OpenAIService.py,sha256=BKEWhgfHAASn1_YDiGTX5Bg4FReEAAycyOQ_HlgKm50,7845
72
+ edsl/inference_services/PerplexityService.py,sha256=Y83MvxGEp_hMP5pCEi-zdGNrx7zwcoNMgL5SsG5ZCGM,5893
73
+ edsl/inference_services/rate_limits_cache.py,sha256=lJXqvZneyBvAQDq81BWUUKXmRdtgXk13klSii91m_Kw,1423
74
+ edsl/inference_services/registry.py,sha256=uimzP_Pga0VFMyWj53gNMxY4KStxvMeEiN8Tzqm0ScY,1376
75
+ edsl/inference_services/TestService.py,sha256=RiNvBoKN1xK-nLXloEppDZG5sl6vAlKiGj_HJjQFWvg,3098
76
+ edsl/inference_services/TogetherAIService.py,sha256=i07XMCokfg30U1yPB9eMr02ew8cxDZKFa19u8xrqi5M,6471
77
+ edsl/inference_services/write_available.py,sha256=rYDB5pT0RT7nYITAAXb-FDITTNRiyz43MiYVntnAeDk,295
78
+ edsl/jobs/__init__.py,sha256=q8D9OOwX69FBXAqkPgONsnTnk1HwJWM_YuIO8X799AA,33
79
+ edsl/jobs/Answers.py,sha256=v1aqWXwSwmra3da3JOYYzU2C1IXkAuYxcrxA4jhxqDw,1877
80
+ edsl/jobs/buckets/BucketCollection.py,sha256=X843JvQ2Ii_85Z10dpBSq5kIhyUbwTJ3e1iacyvilX8,2349
81
+ edsl/jobs/buckets/ModelBuckets.py,sha256=Lma0kQ8FvZ1FkB8PkBE2nunU27uDeMxBs1GVAbXrtmo,2484
82
+ edsl/jobs/buckets/TokenBucket.py,sha256=4ed1YJ5YH9BY4692EeCa4z9TSNruwyhBRKl7fieCwtA,9417
83
+ edsl/jobs/interviews/Interview.py,sha256=Awz4k2wWOvbo9dJtJsQIKFiwOPRV-7wYYzR6eA13vhw,26820
84
+ edsl/jobs/interviews/interview_status_enum.py,sha256=p9Nqw2mcKqx3JMOyDQ7wQNnRkM03HVCA8YUPmKaRBrU,238
85
+ edsl/jobs/interviews/InterviewExceptionCollection.py,sha256=bswnDHRMGK0Gi2PpOWcf6hHd27TK3Dq6-DRqrB6T-vA,3765
86
+ edsl/jobs/interviews/InterviewExceptionEntry.py,sha256=Uskp5oE7e5RHq0kqBq8Y4RDERbKLIGB8qBd9f6Wov0k,5871
87
+ edsl/jobs/interviews/InterviewStatistic.py,sha256=U-tgtvE6vReExlzMqbb5XzNT8aA3BpwcQ2KOXvI6Yi0,1919
88
+ edsl/jobs/interviews/InterviewStatisticsCollection.py,sha256=gAUQ77j1tTpBrhnGo4l2l_AD3cvYa7JH_CfdmMVljtM,813
89
+ edsl/jobs/interviews/InterviewStatusDictionary.py,sha256=mxNuG6rVtiqhaeN7r7z_A0ikAqOha-nzKztsPE8YV-4,2563
90
+ edsl/jobs/interviews/InterviewStatusLog.py,sha256=ygccC-5G58-X9rYv6kJQA0hPHMdYhSYkeRmPcT7OGLQ,3344
91
+ edsl/jobs/interviews/ReportErrors.py,sha256=3P8umwT_WTUgC5XvwNIxwuG-s-2ddSuKzhDHH1ogpWc,1849
92
+ edsl/jobs/Jobs.py,sha256=9Clpq4sCKeqvUIP7tQ9bg5ezm1HXT1kWdXsz_5WFZAM,33683
93
+ edsl/jobs/JobsChecks.py,sha256=1Orxirz9o1qKv9s0ZWeR91SOBqHBoZ-ixwaCsLO8S64,4597
94
+ edsl/jobs/JobsPrompts.py,sha256=GepQ8osOIqZSWNxp9_cHhyEzLF5kbff5GyCP_d1kXFU,9949
95
+ edsl/jobs/JobsRemoteInferenceHandler.py,sha256=bjsQDuwFbGpg1AANCwx8HmVFudPPBODZIYHDZnoCUJY,9284
96
+ edsl/jobs/runners/JobsRunnerAsyncio.py,sha256=i8s9PgKdNi8OBZMkZiDLodimPNCwtXsuehYNJSHsKg4,18601
97
+ edsl/jobs/runners/JobsRunnerStatus.py,sha256=Yulf-rSmmfZrZC7gwiGDd_O8CBjVogQzllRF4mnTeXw,11337
98
+ edsl/jobs/runners/JobsRunnerStatusData.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ edsl/jobs/tasks/QuestionTaskCreator.py,sha256=iCVsxuoI5OqNQ_BKBB-cEb3bCC6FWxBhy4orUp51SOA,10314
100
+ edsl/jobs/tasks/task_status_enum.py,sha256=dTrlELdrX5XJUmV4KwWQFpny3s9aHBUJMp8Yb1RmnRM,5496
101
+ edsl/jobs/tasks/TaskCreators.py,sha256=klqJCwaz4dFipufHFh8UoXodfWx0eLgq1E3cAopLBBM,2758
102
+ edsl/jobs/tasks/TaskHistory.py,sha256=32PisNC5gMZRe3YpQsPehNwNgMsdnov6endS2V7AI3g,15420
103
+ edsl/jobs/tasks/TaskStatusLog.py,sha256=H9WO9nXhbqLc49OYveQqPwBw_7GB_iLnwl0uTDKy3rw,569
104
+ edsl/jobs/tokens/InterviewTokenUsage.py,sha256=nJLCVS4QpGRiSJSooaV4RCyTCzdYPIs7chsvYPYgjCw,1127
105
+ edsl/jobs/tokens/TokenUsage.py,sha256=3BD68hXkY06HRtGwXramJoi9Ekrt4qXd7rbCu1LNhpY,1357
106
+ edsl/language_models/__init__.py,sha256=32rL4TuRrc5SkBVIGfBvyhcL8ZTxaCVHiDycRXFTiJI,165
107
+ edsl/language_models/fake_openai_call.py,sha256=UG7199ET0yljJvDsqtPsuugZze15OiSG3wWU4LOJwzs,379
108
+ edsl/language_models/fake_openai_service.py,sha256=Gz1yu6z26siYUGsscY33vIjQh_QN-N7-lPpYYrVTXJo,1775
109
+ edsl/language_models/KeyLookup.py,sha256=6kz6z9oiYfwzB-4wnMxP634zzNgfEc2HZr2Czvr0hng,1081
110
+ edsl/language_models/LanguageModel.py,sha256=8Hg2o_r187D5HA4FAZ3YjoAM1YHLytPw3_Ydg29e_GA,24439
111
+ edsl/language_models/ModelList.py,sha256=uMsoRvUOACEi481sIdSqjZxYrhD441cUf3o9yP-tD3s,4530
112
+ edsl/language_models/RegisterLanguageModelsMeta.py,sha256=S2ehZ15EEoLx6RxxL6L28zs4Cg1PYenjv6K35zGV2ZM,7707
113
+ edsl/language_models/registry.py,sha256=WnVwNJiyKyQNr1cbC89lYbu_Gb_RP9_oiDtFPBLr97A,6262
114
+ edsl/language_models/repair.py,sha256=CdBy2EnAlloiT-c4SyzwdO4YIzAe2MCvMT39Kq51GqU,5509
115
+ edsl/language_models/unused/ReplicateBase.py,sha256=8fbpHaaQ2nv7YVyupZj1Jo7xpg8PnS1IWTP7CO_RZE4,3414
116
+ edsl/language_models/utilities.py,sha256=kh8nBYOpUY9OOdqY8GBHlmGv_RpNVexvf-M5k5yI0lM,2344
117
+ edsl/notebooks/__init__.py,sha256=uxMBECcGhUMbaOqcpbmgPwkmDktgaQDXJwMA5_B9pr0,46
118
+ edsl/notebooks/Notebook.py,sha256=JuDuL_fImt7lkIIqey-2IYp2qiut6xZvdUQIuzD52SY,8055
119
+ edsl/prompts/__init__.py,sha256=6RS7kwk8c9Tre3g7HW5O5h5dPHqEiMPsT0KOQGeuzeY,89
120
+ edsl/prompts/Prompt.py,sha256=-mHTx852y4gLcnVJZqaa32KW1TVstQBBgPvPj_Wa5pQ,12028
121
+ edsl/questions/__init__.py,sha256=qY46zvnOb-9Z21Mf2wL9rrov0PoEtdNiO6tEQO-Vmog,1187
122
+ edsl/questions/AnswerValidatorMixin.py,sha256=kUL7nKZ4dQWw3ZiolNUYXIq7Q2sbxZIE3thfVPjkOTA,11794
123
+ edsl/questions/compose_questions.py,sha256=6UVQCeCpd4i8093uD0O10cv55DIrw-GU_5LrnC_tR3g,3478
124
+ edsl/questions/decorators.py,sha256=S8W47skvVP3PFa8vgMHEIr49XA5K9gR38DHy5vjVWAw,617
125
+ edsl/questions/derived/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
+ edsl/questions/derived/QuestionLikertFive.py,sha256=9HjFhLDgJHX-cODULNNzNXfPehZy-2_RVs0w6x5Iy9s,2661
127
+ edsl/questions/derived/QuestionLinearScale.py,sha256=VOYShRrH7u6AvJI_0YQJjhbTs7uc9RNZT9KtQY334iI,3391
128
+ edsl/questions/derived/QuestionTopK.py,sha256=q04d2KSrryzM3Irz-b-LO9V4zkpEjHnpaaR1gAh93oY,3377
129
+ edsl/questions/derived/QuestionYesNo.py,sha256=cGo2kP0fGqS9C94aA5I2t0WArhLM5-4I3Qjq8PvV2nw,2817
130
+ edsl/questions/descriptors.py,sha256=G1a7A8WHabj1FqSeVXPtUgiVsIlLZcSJ6Nwd1RjK3W0,16583
131
+ edsl/questions/prompt_templates/question_budget.jinja,sha256=PFDJjxwyomn42xJhgdSasH_Yi0gBtCLDG9Ni3MxgCDM,750
132
+ edsl/questions/prompt_templates/question_checkbox.jinja,sha256=5PhI0g8m6wTupy44-1zt80uqRsuGJAD0G7kDeCGbqg4,1168
133
+ edsl/questions/prompt_templates/question_extract.jinja,sha256=XTYiPVp90_k9mJPiVdNtwgykj9YiQV9nrBKBIzzWm6o,354
134
+ edsl/questions/prompt_templates/question_free_text.jinja,sha256=rcv7UExueIwEbktlr23fWJAMevGVfG3IY5d-YImYpUM,105
135
+ edsl/questions/prompt_templates/question_linear_scale.jinja,sha256=2q7t2nfAdZN70BwAT0b0UiUjduh6LVRTaltfpI0kYTo,466
136
+ edsl/questions/prompt_templates/question_list.jinja,sha256=dWlesTNWIzv6bARw8MgRlvO3lEC9HoBxWr54xx1wQS8,512
137
+ edsl/questions/prompt_templates/question_multiple_choice.jinja,sha256=GKDO8cam_I0MC1IyX9mja5TNuvVp1u1e4FuwBmkoH-g,794
138
+ edsl/questions/prompt_templates/question_numerical.jinja,sha256=gxhUpmepIWo4fE0hV8oL4-k2P3MK73VpNuKlVotHe5U,1254
139
+ edsl/questions/question_registry.py,sha256=RWwaa317G68h6w1UHoPLfLU9iBHpvjRNvWvsjuxkleY,6511
140
+ edsl/questions/QuestionBase.py,sha256=m3Yd_8QtVaWEITdA26HXWpzJQQiyxwiiHyLe_I8S-a4,23173
141
+ edsl/questions/QuestionBaseGenMixin.py,sha256=VaO9_1fMNtgN5mbydiISWYQlA4ZfrHa88v5Lmn-eUVA,6199
142
+ edsl/questions/QuestionBasePromptsMixin.py,sha256=UAjdofu5a534WqjOeBheGVVkRsRSQX-TsFoviIWvCmY,8054
143
+ edsl/questions/QuestionBudget.py,sha256=3obTjOfx9RoRrWU6AZW7pTdu6eQfemBZO-ICnwU-miU,8358
144
+ edsl/questions/QuestionCheckBox.py,sha256=l3J5zD1VGfnQOCeMrtQsv44A97I95IkxmTjHgHH5tLw,13199
145
+ edsl/questions/QuestionExtract.py,sha256=05JhkA4WHBMKe1QCBJ-rLt_tFxvB-RXNpe9gi81awn0,6205
146
+ edsl/questions/QuestionFreeText.py,sha256=AZCOyb9jK1h7Tu1Sxip64Jzmje_FF3t8GaGXoDT4YmI,3537
147
+ edsl/questions/QuestionFunctional.py,sha256=8aDOpf3AsYSYDNiETM6jp28zuEB1I1QQHcuDYr5Qpgs,5747
148
+ edsl/questions/QuestionList.py,sha256=u2E-G_Qx9-TrD7eyiV3flQqLd-NiHt7W61MwdmHZzMY,7440
149
+ edsl/questions/QuestionMultipleChoice.py,sha256=LIAb4tMKB7W3Q1xckhCYadscVQh4izqtPotI9SpQ-k8,10578
150
+ edsl/questions/QuestionNumerical.py,sha256=N4FfJzvMOiRBfnbSOAEAncJv8HAvBPx0sp0hBp9-bsA,5112
151
+ edsl/questions/QuestionRank.py,sha256=dthkMnGVFb9EVnRc1cexP3b3XM9__knK81xkBNPn99I,11920
152
+ edsl/questions/Quick.py,sha256=ElZbU1veDd7_6NQp3Tn2xYTEau4WEM4x_ELT5hiZBSY,1772
153
+ edsl/questions/RegisterQuestionsMeta.py,sha256=qelLc_WBo_inWFjfN5_aH2IQpvl6jYqAOV6lLlV7koM,2669
154
+ edsl/questions/ResponseValidatorABC.py,sha256=RHFloDG5bbLg6sFHg36w7-p45u7YFy01pyN8SKUtjwI,6271
155
+ edsl/questions/settings.py,sha256=PDXSJX_Nz59K5x48Z3YtNRowwpoaD4J0p5f52r0bKjo,303
156
+ edsl/questions/SimpleAskMixin.py,sha256=7AFENKESMmC6v3FCjiGmLsJHEImzMaCe5dbe82VKF2k,2300
157
+ edsl/questions/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
+ edsl/questions/templates/budget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ edsl/questions/templates/budget/answering_instructions.jinja,sha256=TnRH4_PgEqg3tBQ93kUPo3U8w45G9wv9gU234D8r95Q,359
160
+ edsl/questions/templates/budget/question_presentation.jinja,sha256=thU7kV5rEPwwo5CxDs544AVRpLXgb_orF0McG1Z4w3Y,205
161
+ edsl/questions/templates/checkbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
+ edsl/questions/templates/checkbox/answering_instructions.jinja,sha256=TJJL0ZobijE_gVNx8SqeoCp_AT7SlFBSctI7_xdmhgk,451
163
+ edsl/questions/templates/checkbox/question_presentation.jinja,sha256=SsTdAJnnv1GrIYar8DWJLfdfnID6aj5fB9_ngtqjXUA,829
164
+ edsl/questions/templates/extract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
+ edsl/questions/templates/extract/answering_instructions.jinja,sha256=BMDqmSIg-krOZhjMtnJW2jFdSThh0G3woQSLfIQg_TE,260
166
+ edsl/questions/templates/extract/question_presentation.jinja,sha256=OLDuxUc6BjT4InCtAkK_e-D5qbsDmtxw1Spp9pWFYhU,17
167
+ edsl/questions/templates/free_text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
+ edsl/questions/templates/free_text/answering_instructions.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
+ edsl/questions/templates/free_text/question_presentation.jinja,sha256=OLDuxUc6BjT4InCtAkK_e-D5qbsDmtxw1Spp9pWFYhU,17
170
+ edsl/questions/templates/likert_five/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
+ edsl/questions/templates/likert_five/answering_instructions.jinja,sha256=11wNWHzVzxtkYoWdYibV_Ge-h8V5TBM6TX-wEnYa0vk,341
172
+ edsl/questions/templates/likert_five/question_presentation.jinja,sha256=w4dhEr_HSxGzhuSMVlF_TB755dsBctDUq--QV_5GTgI,284
173
+ edsl/questions/templates/linear_scale/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
+ edsl/questions/templates/linear_scale/answering_instructions.jinja,sha256=kq2YlaorGs-rKGUKofZFYYegHJbbYVERXLYYUSVtrTU,258
175
+ edsl/questions/templates/linear_scale/question_presentation.jinja,sha256=eRPZoIwr6qqBf8yqfv_GjdMLWsGlR3-6NnvxOz3-fNs,153
176
+ edsl/questions/templates/list/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
+ edsl/questions/templates/list/answering_instructions.jinja,sha256=cBwF9xuvpyHGWRItgdBBbDfIPkeldLlhPueqcfwFaZI,268
178
+ edsl/questions/templates/list/question_presentation.jinja,sha256=jZavkXxkQ0HceeHgf3wT3-2hZZtiWKYiC7nHax00kbA,136
179
+ edsl/questions/templates/multiple_choice/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
+ edsl/questions/templates/multiple_choice/answering_instructions.jinja,sha256=bzYpahR5Qb3_uUolz6onO-8InHbw2QDcrF2OzUSNMmA,339
181
+ edsl/questions/templates/multiple_choice/html.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
+ edsl/questions/templates/multiple_choice/question_presentation.jinja,sha256=w4dhEr_HSxGzhuSMVlF_TB755dsBctDUq--QV_5GTgI,284
183
+ edsl/questions/templates/numerical/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
+ edsl/questions/templates/numerical/answering_instructions.jinja,sha256=KgwduCdGWFpDJzONqFYLB88FTj4FF5vrH7kGTohHWvU,329
185
+ edsl/questions/templates/numerical/question_presentation.jinja,sha256=QWvieOEKTEij1tSNl7NQ5sylSGO5_ILiRsiUWn15bko,189
186
+ edsl/questions/templates/rank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
+ edsl/questions/templates/rank/answering_instructions.jinja,sha256=xHk_IP5zU30bKtyUUvlHN_TuF_BInfN1I9bJg2Yewus,444
188
+ edsl/questions/templates/rank/question_presentation.jinja,sha256=xELET2O8CUPYyT3qZJC6vFTsUa6LIn0xavVEJn6H0to,349
189
+ edsl/questions/templates/top_k/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ edsl/questions/templates/top_k/answering_instructions.jinja,sha256=Toc5ZEU64_1ZiD1T6yRM4WEBRZkkCwb1uUuLIl9V2mw,274
191
+ edsl/questions/templates/top_k/question_presentation.jinja,sha256=SsTdAJnnv1GrIYar8DWJLfdfnID6aj5fB9_ngtqjXUA,829
192
+ edsl/questions/templates/yes_no/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
+ edsl/questions/templates/yes_no/answering_instructions.jinja,sha256=OQsY9RXUlzGk3ETL7kJ5uVWzxrMh4PZPDoekiVulS4I,178
194
+ edsl/questions/templates/yes_no/question_presentation.jinja,sha256=w4dhEr_HSxGzhuSMVlF_TB755dsBctDUq--QV_5GTgI,284
195
+ edsl/results/__init__.py,sha256=bZU4V1C9gAiM7jrdoDxH-bZs5X0lZU36GWdK1GFRJL0,82
196
+ edsl/results/CSSParameterizer.py,sha256=hMcpGSrh2rjR9J397VZkFN-R1oDJyvVLUc10rVTr6lM,3783
197
+ edsl/results/Dataset.py,sha256=md83UCto2Uz6PucpySJ5ZbdOw69XuX5_tE0PVb9iSgU,14851
198
+ edsl/results/DatasetExportMixin.py,sha256=zMQycWNCHKfRe7cBEpA7KHfOrjDeFF8kb-Cd1v8m7QU,28218
199
+ edsl/results/DatasetTree.py,sha256=z3pYzFZgZCJj-aXiw9A8MzmtloXG_0Qmk1H3prSDkVw,9746
200
+ edsl/results/Result.py,sha256=8OOamezoTP3SG0eCqlpVYH-AtTMPNn55gbooCeieXpE,17314
201
+ edsl/results/Results.py,sha256=HgMRvaC5UMYRDsoprowG4E-qPjfDJ3-Ez_6O3w-zBBk,41429
202
+ edsl/results/ResultsDBMixin.py,sha256=X0_EJO42dMOM1e_twADEQ9he8hpU5cPWnNgLjtx-ml0,8183
203
+ edsl/results/ResultsExportMixin.py,sha256=4b2iW3TH7E1SFtHNRBOl_44gI4xaVOsoqmb4Yvfbix0,1309
204
+ edsl/results/ResultsFetchMixin.py,sha256=o8Xy_hY4nprzOxAoSmudIlkzg8oOH45N4dnuiwRXBkI,881
205
+ edsl/results/ResultsGGMixin.py,sha256=e_PP_IRFjYtxUBJKeQRlTfu0RoavReV1CIY_9g1OQww,4465
206
+ edsl/results/ResultsToolsMixin.py,sha256=WkxeXVi77h1-lkYD6RoVRfpd2Hmb5KNzsEpNzdZdMes,3115
207
+ edsl/results/Selector.py,sha256=tUIqgKPxQmMvZv-z_VrR583gGN7-pqpULr7wYowLW98,4982
208
+ edsl/results/table_display.css,sha256=Dw-4WEPBUUxZF_XIyiDQtBuVAytoSvuJ3I1q28UZdZM,2183
209
+ edsl/results/TableDisplay.py,sha256=ggKQCHbw9kmLfYgzU8r1r2Qe8DvWvkLS5gK6pfrmtb4,6651
210
+ edsl/results/tree_explore.py,sha256=IN3dFSXrCfTfjhOb6NmypK6p-TW1TqOD8278BMcyIEg,4739
211
+ edsl/scenarios/__init__.py,sha256=y67hh_l-sCdMP0fFUa7nEbC-wP-X97OdhTLrcfYussw,152
212
+ edsl/scenarios/FileStore.py,sha256=wgpJwuFgdo86EfGsKvq4igw60VKWkMP-y7njudWfnCQ,20356
213
+ edsl/scenarios/Scenario.py,sha256=uEPonEaWwQP3GJLpfwg5BXmnai16d8TRA29LioL5hoQ,20747
214
+ edsl/scenarios/ScenarioHtmlMixin.py,sha256=CX0eX1FxpY75cXdiLr4y4rFmLeaOqEIRQwx3wBR46wk,2150
215
+ edsl/scenarios/ScenarioJoin.py,sha256=mmcVwpjXJi7_sYiLhjdKild1NCSvhaJksrEH16WnWM8,4901
216
+ edsl/scenarios/ScenarioList.py,sha256=e7YZCBOaNrNNc1PAaWQh29cJ5fOWoiFfqjzzn6MeRPo,50438
217
+ edsl/scenarios/ScenarioListExportMixin.py,sha256=IjOGh3c8WPJnmdJz69W6DnUcTKpHVsMikdQxzs7-5OE,1733
218
+ edsl/scenarios/ScenarioListPdfMixin.py,sha256=EGGhet2Xfs2E88XUnMVW8B_xV91LVtScLPmOLsu26z8,8593
219
+ edsl/shared.py,sha256=56Zz60xR80ITB2qAatj0Yglns5pzNSCGLZfxfVdj9sY,21
220
+ edsl/study/__init__.py,sha256=ClO87SYaJhFlT4sPhp0aIVwo8A6q8VIKoXyd-KRRQEQ,174
221
+ edsl/study/ObjectEntry.py,sha256=DDEIDnzjfTgx3XRCUpI7apdRgZV-EOSLwC4YoMFCKGU,5961
222
+ edsl/study/ProofOfWork.py,sha256=mVp_1Lu-TLwx3krsBuvOY-9JzABfBOABzx-9GxG70I8,3546
223
+ edsl/study/SnapShot.py,sha256=WX9-Kw7JRJRSbUIiLKU6NqVnJLS_KLJP9k-3BS5j6i4,2758
224
+ edsl/study/Study.py,sha256=9j-7JcSBBTNKMnKbcG5K11UcZI5bi9cFZfFry3VKOFY,18990
225
+ edsl/surveys/__init__.py,sha256=QVjbN8G6stczph0ytwdbYA595r-jqW5co4VLh1i6MNM,132
226
+ edsl/surveys/base.py,sha256=dzR1zOUIOhQloHz7ghJl3SwZHEFq44_ivlXLJiZKIMU,1168
227
+ edsl/surveys/DAG.py,sha256=SDsLDqLhlQehJtwRQeGArDHhjhzv3X5NopQHJH-yY48,4383
228
+ edsl/surveys/descriptors.py,sha256=yaw4_Az_u8ixEeMJ8B8OlteWFhCEjInjSX96tqNGvXo,2132
229
+ edsl/surveys/instructions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
+ edsl/surveys/instructions/ChangeInstruction.py,sha256=3AcXa5ddfwOy9B1g0PHQaiLhEU-NFUR5DzD757Qq_jc,1413
231
+ edsl/surveys/instructions/Instruction.py,sha256=z6Ve7Ad7wEbmmN-v5d_x7RT0w_15UTo94s822gulymo,1973
232
+ edsl/surveys/instructions/InstructionCollection.py,sha256=YeIFg2aNx8heC7DNrHjUh7PPyendaA77xtOsl3_5EAk,3008
233
+ edsl/surveys/Memory.py,sha256=madt-TdPRLmAPDPYpA8asgQ8vj9aQ53zArVyOLdjvRU,1144
234
+ edsl/surveys/MemoryPlan.py,sha256=4MJeQhJmiJisdVQxDy7OolfQXXFz643zHTvbMN04Vmc,9296
235
+ edsl/surveys/Rule.py,sha256=XYnvLaSvhK8qAz-kopF-m4jcrkwRyZqZV7jc0DCD6fo,12719
236
+ edsl/surveys/RuleCollection.py,sha256=oTMFZ4_PLplxl9De5Fhqpt22R9osNMO2IXoae1F9ln8,15281
237
+ edsl/surveys/Survey.py,sha256=MWywgOVnTwwdufqpha_V9CGAjdSfWA7N4DCl5uSNLA0,75299
238
+ edsl/surveys/SurveyCSS.py,sha256=vutr6Yl5Kv59dEJKGEWuvL1zII-TnLc7kpUczPvmQdU,8676
239
+ edsl/surveys/SurveyExportMixin.py,sha256=s-6mao_pzGYNWiLTWEkyBZkEvksEkb4fvODq9FarRI8,8598
240
+ edsl/surveys/SurveyFlowVisualizationMixin.py,sha256=g_AxSWnG_jwmpPisxMGEGcauNhQEBYFhpw9OcwdjuPM,6535
241
+ edsl/surveys/SurveyQualtricsImport.py,sha256=H9x-kjMKWo-3XBIks8BquFw7Tx5ISo2JcvMRlcwF93E,10055
242
+ edsl/TemplateLoader.py,sha256=I5G7fTRP-cBwsPVD4O4ISxaGXuOE3_tftbelS4HEwJ4,873
243
+ edsl/templates/error_reporting/base.html,sha256=sGJEvsQ3zjkpQRw1M3J1iw-srJuHZFUXlHbk6V5rWdc,575
244
+ edsl/templates/error_reporting/exceptions_by_model.html,sha256=uw4FTTFtc-KfiH6v7R0cEGmo3wOXAAVMwyMGl-eC0HU,826
245
+ edsl/templates/error_reporting/exceptions_by_question_name.html,sha256=64pV-immQQDZXpTTo34fPI8-45qW02r1l3iyPY_sgd8,470
246
+ edsl/templates/error_reporting/exceptions_by_type.html,sha256=9S4qM8cP-vuw7dQ-UDG_0tYreY6SmgyLbE93XXma5KY,431
247
+ edsl/templates/error_reporting/interview_details.html,sha256=3HcBZzEFfivXW_LIYubdCjwuSNzs5pccn_KVQuEQQ7M,4149
248
+ edsl/templates/error_reporting/interviews.html,sha256=xNer2W-MCaOL_FoNsUlv9AjOenVJdxIGWe_VLa1IF24,680
249
+ edsl/templates/error_reporting/overview.html,sha256=0LRelIRtKzU3Mliv6_oLsUhd8RoS60F5F3GCMvJiIAk,409
250
+ edsl/templates/error_reporting/performance_plot.html,sha256=DXoJjYiRxNXnuMWl5HnK0xLxb6_gTVW9r0i0MziXAvg,54
251
+ edsl/templates/error_reporting/report.css,sha256=aQdfT3mit-znpnS2WDofusdEx11kwdfGf_VunXBcCl8,1282
252
+ edsl/templates/error_reporting/report.html,sha256=CmHoZKpZfviykCgUdKvPDrrRXlDurcp22u1yGlvWdno,4631
253
+ edsl/templates/error_reporting/report.js,sha256=n1eOw5L2QgxAqhC3gche08vIA9pTybplnYrCHCMF2Ck,982
254
+ edsl/tools/__init__.py,sha256=b76gzWv4VNWz_BkvhVowH__4sz4coNDP6wyKoXRK7V0,42
255
+ edsl/tools/clusters.py,sha256=uzcDLQb1rFcyjxWVYWvSWKaYdC1Z7jAAI0eLfS9Yen0,6324
256
+ edsl/tools/embeddings.py,sha256=Uk3o6CS6FHLt5QhYMARTLiwJEXutLgLyorUmnvPIoEY,704
257
+ edsl/tools/embeddings_plotting.py,sha256=UDyIdQliB8xUAGv2FygDgoh3T_jRHaUPPn1lrZtGHbA,3682
258
+ edsl/tools/plotting.py,sha256=wb67Vpi1xxGFmk3a3S_2hDIdsWMae1Wd02vc9txhmqk,3232
259
+ edsl/tools/summarize.py,sha256=-lmq-laiunYlC-0spyKy8HJthQc0rKAJYUKNlSqLmgE,674
260
+ edsl/utilities/__init__.py,sha256=ghsDYEuFWn7iAFWOhdgPCPShAIhrsgUveCZNwWwEuZw,566
261
+ edsl/utilities/ast_utilities.py,sha256=55OIW_BmhW57CxeOGNFKlLtQ-7TBcyRWWITrwsFkPmU,893
262
+ edsl/utilities/data/__init__.py,sha256=iIreocOo-LeE9DZw3B32k_puJgESMrSb13Y5xxfdjUE,63
263
+ edsl/utilities/data/Registry.py,sha256=iwwVGBdgj3dQZAZt7j9sg2-dgrmo885_Uk7Vgs2juwQ,182
264
+ edsl/utilities/data/scooter_results.json,sha256=oCWzRfzZ5fSYd_gkO-NLAqlcNrNuX11HA1mAl87PJxE,250945
265
+ edsl/utilities/decorators.py,sha256=k2tiacdNZ0SMiT84Utid2aCrWboP4VtZLRzXdBuR00w,2396
266
+ edsl/utilities/gcp_bucket/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
267
+ edsl/utilities/gcp_bucket/cloud_storage.py,sha256=UXAdn0zjXBCiio32arPq0RV4pI850tpW1AVsWkdMu5k,3568
268
+ edsl/utilities/interface.py,sha256=l9HUE_6S1pg6HtRxmng1wgct-AFtJ__chIAXlYsFZ7k,20283
269
+ edsl/utilities/naming_utilities.py,sha256=xlrzsr5NMnwZSiFNhCzLDlzTxAqe9bKPDQKFSz1vU4M,5229
270
+ edsl/utilities/repair_functions.py,sha256=ZnoJsWzBRxhZnMf4yY3586nmoR_5pzktV-xWdhXmM4Y,957
271
+ edsl/utilities/restricted_python.py,sha256=ZK4r_T3cNSvIMXTuyC6dCHVX6-ed2NRzzXUbHAcgLlw,2130
272
+ edsl/utilities/SystemInfo.py,sha256=7xJ8MYEEx3aVFOoynu_nQqAv2ePQMyehEZOxFWMZk44,820
273
+ edsl/utilities/utilities.py,sha256=9RH3JPXx6UO5uXsbLQFKW-RlWiKV6LgoA4ngPiopPgs,12687
274
+ edsl-0.1.39.dev3.dist-info/LICENSE,sha256=hq3hkdxkn1rC8xTiiHh0VdWniMNkcS3rBozeiaKE5SQ,1132
275
+ edsl-0.1.39.dev3.dist-info/METADATA,sha256=qjC1MSCW0rENMeET2-tfVplLs23LK5VHyw1D2qwDq1s,4518
276
+ edsl-0.1.39.dev3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
277
+ edsl-0.1.39.dev3.dist-info/RECORD,,
@@ -1,128 +0,0 @@
1
- from typing import Dict, List, Set
2
- from warnings import warn
3
- from edsl.prompts.Prompt import Prompt
4
-
5
- from edsl.agents.QuestionTemplateReplacementsBuilder import (
6
- QuestionTemplateReplacementsBuilder as QTRB,
7
- )
8
-
9
-
10
- class QuestionInstructionPromptBuilder:
11
- """Handles the construction and rendering of question instructions."""
12
-
13
- def __init__(self, prompt_constructor: "PromptConstructor"):
14
- self.prompt_constructor = prompt_constructor
15
-
16
- self.model = self.prompt_constructor.model
17
- self.survey = self.prompt_constructor.survey
18
- self.question = self.prompt_constructor.question
19
-
20
- def build(self) -> Prompt:
21
- """Builds the complete question instructions prompt with all necessary components.
22
-
23
- Returns:
24
- Prompt: The fully rendered question instructions
25
- """
26
- base_prompt = self._create_base_prompt()
27
- enriched_prompt = self._enrich_with_question_options(base_prompt)
28
- rendered_prompt = self._render_prompt(enriched_prompt)
29
- self._validate_template_variables(rendered_prompt)
30
-
31
- return self._append_survey_instructions(rendered_prompt)
32
-
33
- def _create_base_prompt(self) -> Dict:
34
- """Creates the initial prompt with basic question data.
35
-
36
- Returns:
37
- Dict: Base question data
38
- """
39
- return {
40
- "prompt": Prompt(self.question.get_instructions(model=self.model.model)),
41
- "data": self.question.data.copy(),
42
- }
43
-
44
- def _enrich_with_question_options(self, prompt_data: Dict) -> Dict:
45
- """Enriches the prompt data with question options if they exist.
46
-
47
- Args:
48
- prompt_data: Dictionary containing prompt and question data
49
-
50
- Returns:
51
- Dict: Enriched prompt data
52
- """
53
- if "question_options" in prompt_data["data"]:
54
- from edsl.agents.QuestionOptionProcessor import QuestionOptionProcessor
55
-
56
- question_options = QuestionOptionProcessor(
57
- self.prompt_constructor
58
- ).get_question_options(question_data=prompt_data["data"])
59
-
60
- prompt_data["data"]["question_options"] = question_options
61
- return prompt_data
62
-
63
- def _render_prompt(self, prompt_data: Dict) -> Prompt:
64
- """Renders the prompt using the replacement dictionary.
65
-
66
- Args:
67
- prompt_data: Dictionary containing prompt and question data
68
-
69
- Returns:
70
- Prompt: Rendered instructions
71
- """
72
-
73
- replacement_dict = QTRB(self.prompt_constructor).build_replacement_dict(
74
- prompt_data["data"]
75
- )
76
- return prompt_data["prompt"].render(replacement_dict)
77
-
78
- def _validate_template_variables(self, rendered_prompt: Prompt) -> None:
79
- """Validates that all template variables have been properly replaced.
80
-
81
- Args:
82
- rendered_prompt: The rendered prompt to validate
83
-
84
- Warns:
85
- If any template variables remain undefined
86
- """
87
- undefined_vars = rendered_prompt.undefined_template_variables({})
88
-
89
- # Check for question names in undefined variables
90
- self._check_question_names_in_undefined_vars(undefined_vars)
91
-
92
- # Warn about any remaining undefined variables
93
- if undefined_vars:
94
- warn(f"Question instructions still has variables: {undefined_vars}.")
95
-
96
- def _check_question_names_in_undefined_vars(self, undefined_vars: Set[str]) -> None:
97
- """Checks if any undefined variables match question names in the survey.
98
-
99
- Args:
100
- undefined_vars: Set of undefined template variables
101
- """
102
- for question_name in self.survey.question_names:
103
- if question_name in undefined_vars:
104
- print(
105
- f"Question name found in undefined_template_variables: {question_name}"
106
- )
107
-
108
- def _append_survey_instructions(self, rendered_prompt: Prompt) -> Prompt:
109
- """Appends any relevant survey instructions to the rendered prompt.
110
-
111
- Args:
112
- rendered_prompt: The rendered prompt to append instructions to
113
-
114
- Returns:
115
- Prompt: Final prompt with survey instructions
116
- """
117
- relevant_instructions = self.survey._relevant_instructions(
118
- self.question.question_name
119
- )
120
-
121
- if not relevant_instructions:
122
- return rendered_prompt
123
-
124
- preamble = Prompt(text="")
125
- for instruction in relevant_instructions:
126
- preamble += instruction.text
127
-
128
- return preamble + rendered_prompt