edsl 0.1.39.dev2__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 (378) hide show
  1. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/LICENSE +21 -21
  2. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/PKG-INFO +10 -12
  3. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/README.md +55 -54
  4. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/Base.py +332 -385
  5. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/BaseDiff.py +260 -260
  6. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/TemplateLoader.py +24 -24
  7. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/__init__.py +49 -57
  8. edsl-0.1.39.dev3/edsl/__version__.py +1 -0
  9. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/agents/Agent.py +867 -1079
  10. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/agents/AgentList.py +413 -551
  11. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/agents/Invigilator.py +233 -285
  12. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/agents/InvigilatorBase.py +270 -254
  13. edsl-0.1.39.dev3/edsl/agents/PromptConstructor.py +354 -0
  14. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/agents/__init__.py +3 -2
  15. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/agents/descriptors.py +99 -99
  16. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/agents/prompt_helpers.py +129 -129
  17. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/AutoStudy.py +117 -117
  18. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StageBase.py +230 -230
  19. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StageGenerateSurvey.py +178 -178
  20. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StageLabelQuestions.py +125 -125
  21. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StagePersona.py +61 -61
  22. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StagePersonaDimensionValueRanges.py +88 -88
  23. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StagePersonaDimensionValues.py +74 -74
  24. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StagePersonaDimensions.py +69 -69
  25. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/StageQuestions.py +73 -73
  26. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/SurveyCreatorPipeline.py +21 -21
  27. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/auto/utilities.py +224 -224
  28. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/base/Base.py +279 -279
  29. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/config.py +157 -177
  30. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/conversation/Conversation.py +290 -290
  31. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/conversation/car_buying.py +58 -59
  32. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/conversation/chips.py +95 -95
  33. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/conversation/mug_negotiation.py +81 -81
  34. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/conversation/next_speaker_utilities.py +93 -93
  35. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/coop/PriceFetcher.py +54 -54
  36. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/coop/__init__.py +2 -2
  37. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/coop/coop.py +1028 -1090
  38. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/coop/utils.py +131 -131
  39. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/data/Cache.py +555 -562
  40. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/data/CacheEntry.py +233 -230
  41. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/data/CacheHandler.py +149 -170
  42. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/data/RemoteCacheSync.py +78 -78
  43. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/data/SQLiteDict.py +292 -292
  44. edsl-0.1.39.dev3/edsl/data/__init__.py +4 -0
  45. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/data/orm.py +10 -10
  46. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/data_transfer_models.py +73 -74
  47. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/enums.py +175 -195
  48. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/BaseException.py +21 -21
  49. edsl-0.1.39.dev3/edsl/exceptions/__init__.py +54 -0
  50. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/agents.py +42 -54
  51. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/cache.py +5 -5
  52. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/configuration.py +16 -16
  53. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/coop.py +10 -10
  54. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/data.py +14 -14
  55. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/general.py +34 -34
  56. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/jobs.py +33 -33
  57. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/language_models.py +63 -63
  58. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/prompts.py +15 -15
  59. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/questions.py +91 -109
  60. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/results.py +29 -29
  61. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/scenarios.py +22 -29
  62. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/exceptions/surveys.py +37 -37
  63. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/AnthropicService.py +87 -84
  64. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/AwsBedrock.py +120 -118
  65. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/AzureAI.py +217 -215
  66. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/DeepInfraService.py +18 -18
  67. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/GoogleService.py +148 -139
  68. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/GroqService.py +20 -20
  69. edsl-0.1.39.dev3/edsl/inference_services/InferenceServiceABC.py +147 -0
  70. edsl-0.1.39.dev3/edsl/inference_services/InferenceServicesCollection.py +97 -0
  71. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/MistralAIService.py +123 -120
  72. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/OllamaService.py +18 -18
  73. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/OpenAIService.py +224 -221
  74. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/PerplexityService.py +163 -160
  75. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/TestService.py +89 -92
  76. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/TogetherAIService.py +170 -170
  77. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/models_available_cache.py +118 -118
  78. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/rate_limits_cache.py +25 -25
  79. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/registry.py +41 -41
  80. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/write_available.py +10 -10
  81. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/Answers.py +56 -43
  82. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/Jobs.py +898 -757
  83. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/JobsChecks.py +147 -172
  84. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/JobsPrompts.py +268 -270
  85. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/JobsRemoteInferenceHandler.py +239 -287
  86. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/__init__.py +1 -1
  87. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/buckets/BucketCollection.py +63 -104
  88. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/buckets/ModelBuckets.py +65 -65
  89. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/buckets/TokenBucket.py +251 -283
  90. edsl-0.1.39.dev3/edsl/jobs/interviews/Interview.py +661 -0
  91. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewExceptionCollection.py +99 -99
  92. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewExceptionEntry.py +186 -186
  93. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatistic.py +63 -63
  94. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatisticsCollection.py +25 -25
  95. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatusDictionary.py +78 -78
  96. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/InterviewStatusLog.py +92 -92
  97. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/ReportErrors.py +66 -66
  98. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/interviews/interview_status_enum.py +9 -9
  99. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/runners/JobsRunnerAsyncio.py +466 -421
  100. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/runners/JobsRunnerStatus.py +330 -330
  101. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/tasks/QuestionTaskCreator.py +242 -244
  102. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/tasks/TaskCreators.py +64 -64
  103. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/tasks/TaskHistory.py +450 -449
  104. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/tasks/TaskStatusLog.py +23 -23
  105. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/tasks/task_status_enum.py +163 -161
  106. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/tokens/InterviewTokenUsage.py +27 -27
  107. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/tokens/TokenUsage.py +34 -34
  108. edsl-0.1.39.dev3/edsl/language_models/KeyLookup.py +30 -0
  109. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/LanguageModel.py +668 -571
  110. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/ModelList.py +155 -153
  111. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/RegisterLanguageModelsMeta.py +184 -184
  112. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/__init__.py +3 -2
  113. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/fake_openai_call.py +15 -15
  114. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/fake_openai_service.py +61 -61
  115. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/registry.py +190 -180
  116. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/repair.py +156 -156
  117. edsl-0.1.39.dev3/edsl/language_models/unused/ReplicateBase.py +83 -0
  118. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/language_models/utilities.py +64 -65
  119. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/notebooks/Notebook.py +258 -263
  120. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/notebooks/__init__.py +1 -1
  121. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/prompts/Prompt.py +362 -352
  122. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/prompts/__init__.py +2 -2
  123. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/AnswerValidatorMixin.py +289 -334
  124. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionBase.py +664 -509
  125. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionBaseGenMixin.py +161 -165
  126. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionBasePromptsMixin.py +217 -221
  127. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionBudget.py +227 -227
  128. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionCheckBox.py +359 -359
  129. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionExtract.py +182 -182
  130. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionFreeText.py +114 -113
  131. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionFunctional.py +166 -166
  132. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionList.py +231 -229
  133. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionMultipleChoice.py +286 -330
  134. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionNumerical.py +153 -151
  135. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/QuestionRank.py +324 -314
  136. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/Quick.py +41 -41
  137. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/RegisterQuestionsMeta.py +71 -71
  138. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/ResponseValidatorABC.py +174 -200
  139. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/SimpleAskMixin.py +73 -74
  140. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/__init__.py +26 -27
  141. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/compose_questions.py +98 -98
  142. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/decorators.py +21 -21
  143. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionLikertFive.py +76 -76
  144. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionLinearScale.py +87 -90
  145. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionTopK.py +93 -93
  146. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/derived/QuestionYesNo.py +82 -82
  147. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/descriptors.py +413 -427
  148. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_budget.jinja +13 -13
  149. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_checkbox.jinja +32 -32
  150. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_extract.jinja +11 -11
  151. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_free_text.jinja +3 -3
  152. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_linear_scale.jinja +11 -11
  153. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_list.jinja +17 -17
  154. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_multiple_choice.jinja +33 -33
  155. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/prompt_templates/question_numerical.jinja +36 -36
  156. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/question_registry.py +177 -177
  157. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/budget/answering_instructions.jinja +7 -7
  161. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/checkbox/answering_instructions.jinja +10 -10
  164. {edsl-0.1.39.dev2 → 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.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/likert_five/answering_instructions.jinja +10 -10
  170. {edsl-0.1.39.dev2/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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/linear_scale/answering_instructions.jinja +5 -5
  173. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/list/answering_instructions.jinja +3 -3
  176. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/multiple_choice/answering_instructions.jinja +9 -9
  179. {edsl-0.1.39.dev2/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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/numerical/answering_instructions.jinja +6 -6
  182. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/rank/answering_instructions.jinja +11 -11
  185. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/top_k/answering_instructions.jinja +8 -8
  188. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/yes_no/answering_instructions.jinja +6 -6
  191. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/yes_no/question_presentation.jinja +11 -11
  192. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/CSSParameterizer.py +108 -108
  193. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/Dataset.py +424 -587
  194. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/DatasetExportMixin.py +731 -653
  195. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/DatasetTree.py +275 -295
  196. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/Result.py +465 -451
  197. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/Results.py +1165 -1172
  198. edsl-0.1.39.dev3/edsl/results/ResultsDBMixin.py +238 -0
  199. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/ResultsExportMixin.py +43 -45
  200. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/ResultsFetchMixin.py +33 -33
  201. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/ResultsGGMixin.py +121 -121
  202. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/ResultsToolsMixin.py +98 -98
  203. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/Selector.py +135 -145
  204. edsl-0.1.39.dev3/edsl/results/TableDisplay.py +198 -0
  205. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/__init__.py +2 -2
  206. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/table_display.css +77 -77
  207. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/results/tree_explore.py +115 -115
  208. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/FileStore.py +632 -511
  209. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/Scenario.py +601 -498
  210. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioHtmlMixin.py +64 -65
  211. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioJoin.py +127 -131
  212. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioList.py +1287 -1430
  213. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioListExportMixin.py +52 -45
  214. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/ScenarioListPdfMixin.py +261 -239
  215. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/scenarios/__init__.py +4 -3
  216. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/shared.py +1 -1
  217. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/study/ObjectEntry.py +173 -173
  218. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/study/ProofOfWork.py +113 -113
  219. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/study/SnapShot.py +80 -80
  220. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/study/Study.py +528 -521
  221. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/study/__init__.py +4 -4
  222. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/DAG.py +148 -148
  223. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/Memory.py +31 -31
  224. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/MemoryPlan.py +244 -244
  225. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/Rule.py +326 -327
  226. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/RuleCollection.py +387 -385
  227. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/Survey.py +1801 -1229
  228. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/SurveyCSS.py +261 -273
  229. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/SurveyExportMixin.py +259 -259
  230. edsl-0.1.39.dev2/edsl/surveys/SurveyFlowVisualization.py → edsl-0.1.39.dev3/edsl/surveys/SurveyFlowVisualizationMixin.py +179 -181
  231. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/SurveyQualtricsImport.py +284 -284
  232. edsl-0.1.39.dev3/edsl/surveys/__init__.py +3 -0
  233. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/base.py +53 -53
  234. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/descriptors.py +56 -60
  235. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/instructions/ChangeInstruction.py +49 -48
  236. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/instructions/Instruction.py +65 -56
  237. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/surveys/instructions/InstructionCollection.py +77 -82
  238. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/base.html +23 -23
  239. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/exceptions_by_model.html +34 -34
  240. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/exceptions_by_question_name.html +16 -16
  241. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/exceptions_by_type.html +16 -16
  242. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/interview_details.html +115 -115
  243. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/interviews.html +19 -19
  244. {edsl-0.1.39.dev2 → 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.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/report.css +73 -73
  247. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/report.html +117 -117
  248. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/templates/error_reporting/report.js +25 -25
  249. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/tools/__init__.py +1 -1
  250. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/tools/clusters.py +192 -192
  251. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/tools/embeddings.py +27 -27
  252. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/tools/embeddings_plotting.py +118 -118
  253. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/tools/plotting.py +112 -112
  254. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/tools/summarize.py +18 -18
  255. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/SystemInfo.py +28 -28
  256. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/__init__.py +22 -22
  257. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/ast_utilities.py +25 -25
  258. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/data/Registry.py +6 -6
  259. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/data/__init__.py +1 -1
  260. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/data/scooter_results.json +1 -1
  261. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/decorators.py +77 -77
  262. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/gcp_bucket/cloud_storage.py +96 -96
  263. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/interface.py +627 -627
  264. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/naming_utilities.py +263 -263
  265. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/repair_functions.py +28 -28
  266. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/restricted_python.py +70 -70
  267. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/utilities/utilities.py +424 -436
  268. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/pyproject.toml +83 -86
  269. edsl-0.1.39.dev2/edsl/__version__.py +0 -1
  270. edsl-0.1.39.dev2/edsl/agents/PromptConstructor.py +0 -252
  271. edsl-0.1.39.dev2/edsl/agents/QuestionInstructionPromptBuilder.py +0 -128
  272. edsl-0.1.39.dev2/edsl/agents/QuestionOptionProcessor.py +0 -172
  273. edsl-0.1.39.dev2/edsl/agents/QuestionTemplateReplacementsBuilder.py +0 -137
  274. edsl-0.1.39.dev2/edsl/coop/CoopFunctionsMixin.py +0 -15
  275. edsl-0.1.39.dev2/edsl/coop/ExpectedParrotKeyHandler.py +0 -125
  276. edsl-0.1.39.dev2/edsl/data/__init__.py +0 -5
  277. edsl-0.1.39.dev2/edsl/exceptions/__init__.py +0 -54
  278. edsl-0.1.39.dev2/edsl/exceptions/inference_services.py +0 -5
  279. edsl-0.1.39.dev2/edsl/inference_services/AvailableModelCacheHandler.py +0 -184
  280. edsl-0.1.39.dev2/edsl/inference_services/AvailableModelFetcher.py +0 -209
  281. edsl-0.1.39.dev2/edsl/inference_services/InferenceServiceABC.py +0 -80
  282. edsl-0.1.39.dev2/edsl/inference_services/InferenceServicesCollection.py +0 -122
  283. edsl-0.1.39.dev2/edsl/inference_services/ServiceAvailability.py +0 -135
  284. edsl-0.1.39.dev2/edsl/inference_services/data_structures.py +0 -62
  285. edsl-0.1.39.dev2/edsl/jobs/AnswerQuestionFunctionConstructor.py +0 -188
  286. edsl-0.1.39.dev2/edsl/jobs/FetchInvigilator.py +0 -40
  287. edsl-0.1.39.dev2/edsl/jobs/InterviewTaskManager.py +0 -98
  288. edsl-0.1.39.dev2/edsl/jobs/InterviewsConstructor.py +0 -48
  289. edsl-0.1.39.dev2/edsl/jobs/JobsComponentConstructor.py +0 -189
  290. edsl-0.1.39.dev2/edsl/jobs/JobsRemoteInferenceLogger.py +0 -239
  291. edsl-0.1.39.dev2/edsl/jobs/RequestTokenEstimator.py +0 -30
  292. edsl-0.1.39.dev2/edsl/jobs/buckets/TokenBucketAPI.py +0 -211
  293. edsl-0.1.39.dev2/edsl/jobs/buckets/TokenBucketClient.py +0 -191
  294. edsl-0.1.39.dev2/edsl/jobs/decorators.py +0 -35
  295. edsl-0.1.39.dev2/edsl/jobs/interviews/Interview.py +0 -358
  296. edsl-0.1.39.dev2/edsl/jobs/jobs_status_enums.py +0 -9
  297. edsl-0.1.39.dev2/edsl/jobs/loggers/HTMLTableJobLogger.py +0 -304
  298. edsl-0.1.39.dev2/edsl/language_models/ComputeCost.py +0 -63
  299. edsl-0.1.39.dev2/edsl/language_models/PriceManager.py +0 -127
  300. edsl-0.1.39.dev2/edsl/language_models/RawResponseHandler.py +0 -106
  301. edsl-0.1.39.dev2/edsl/language_models/ServiceDataSources.py +0 -0
  302. edsl-0.1.39.dev2/edsl/language_models/key_management/KeyLookup.py +0 -63
  303. edsl-0.1.39.dev2/edsl/language_models/key_management/KeyLookupBuilder.py +0 -273
  304. edsl-0.1.39.dev2/edsl/language_models/key_management/KeyLookupCollection.py +0 -38
  305. edsl-0.1.39.dev2/edsl/language_models/key_management/models.py +0 -131
  306. edsl-0.1.39.dev2/edsl/notebooks/NotebookToLaTeX.py +0 -142
  307. edsl-0.1.39.dev2/edsl/questions/ExceptionExplainer.py +0 -77
  308. edsl-0.1.39.dev2/edsl/questions/HTMLQuestion.py +0 -103
  309. edsl-0.1.39.dev2/edsl/questions/LoopProcessor.py +0 -149
  310. edsl-0.1.39.dev2/edsl/questions/QuestionMatrix.py +0 -265
  311. edsl-0.1.39.dev2/edsl/questions/ResponseValidatorFactory.py +0 -28
  312. edsl-0.1.39.dev2/edsl/questions/templates/matrix/__init__.py +0 -1
  313. edsl-0.1.39.dev2/edsl/questions/templates/matrix/answering_instructions.jinja +0 -5
  314. edsl-0.1.39.dev2/edsl/questions/templates/matrix/question_presentation.jinja +0 -20
  315. edsl-0.1.39.dev2/edsl/results/MarkdownToDocx.py +0 -122
  316. edsl-0.1.39.dev2/edsl/results/MarkdownToPDF.py +0 -111
  317. edsl-0.1.39.dev2/edsl/results/TableDisplay.py +0 -125
  318. edsl-0.1.39.dev2/edsl/results/TextEditor.py +0 -50
  319. edsl-0.1.39.dev2/edsl/results/smart_objects.py +0 -96
  320. edsl-0.1.39.dev2/edsl/results/table_data_class.py +0 -12
  321. edsl-0.1.39.dev2/edsl/results/table_renderers.py +0 -118
  322. edsl-0.1.39.dev2/edsl/scenarios/ConstructDownloadLink.py +0 -109
  323. edsl-0.1.39.dev2/edsl/scenarios/DirectoryScanner.py +0 -96
  324. edsl-0.1.39.dev2/edsl/scenarios/DocumentChunker.py +0 -102
  325. edsl-0.1.39.dev2/edsl/scenarios/DocxScenario.py +0 -16
  326. edsl-0.1.39.dev2/edsl/scenarios/PdfExtractor.py +0 -40
  327. edsl-0.1.39.dev2/edsl/scenarios/ScenarioSelector.py +0 -156
  328. edsl-0.1.39.dev2/edsl/scenarios/file_methods.py +0 -85
  329. edsl-0.1.39.dev2/edsl/scenarios/handlers/__init__.py +0 -13
  330. edsl-0.1.39.dev2/edsl/scenarios/handlers/csv.py +0 -38
  331. edsl-0.1.39.dev2/edsl/scenarios/handlers/docx.py +0 -76
  332. edsl-0.1.39.dev2/edsl/scenarios/handlers/html.py +0 -37
  333. edsl-0.1.39.dev2/edsl/scenarios/handlers/json.py +0 -111
  334. edsl-0.1.39.dev2/edsl/scenarios/handlers/latex.py +0 -5
  335. edsl-0.1.39.dev2/edsl/scenarios/handlers/md.py +0 -51
  336. edsl-0.1.39.dev2/edsl/scenarios/handlers/pdf.py +0 -68
  337. edsl-0.1.39.dev2/edsl/scenarios/handlers/png.py +0 -39
  338. edsl-0.1.39.dev2/edsl/scenarios/handlers/pptx.py +0 -105
  339. edsl-0.1.39.dev2/edsl/scenarios/handlers/py.py +0 -294
  340. edsl-0.1.39.dev2/edsl/scenarios/handlers/sql.py +0 -313
  341. edsl-0.1.39.dev2/edsl/scenarios/handlers/sqlite.py +0 -149
  342. edsl-0.1.39.dev2/edsl/scenarios/handlers/txt.py +0 -33
  343. edsl-0.1.39.dev2/edsl/surveys/ConstructDAG.py +0 -92
  344. edsl-0.1.39.dev2/edsl/surveys/EditSurvey.py +0 -221
  345. edsl-0.1.39.dev2/edsl/surveys/InstructionHandler.py +0 -100
  346. edsl-0.1.39.dev2/edsl/surveys/MemoryManagement.py +0 -72
  347. edsl-0.1.39.dev2/edsl/surveys/RuleManager.py +0 -172
  348. edsl-0.1.39.dev2/edsl/surveys/Simulator.py +0 -75
  349. edsl-0.1.39.dev2/edsl/surveys/SurveyToApp.py +0 -141
  350. edsl-0.1.39.dev2/edsl/surveys/__init__.py +0 -5
  351. edsl-0.1.39.dev2/edsl/templates/error_reporting/performance_plot.html +0 -2
  352. edsl-0.1.39.dev2/edsl/utilities/PrettyList.py +0 -56
  353. edsl-0.1.39.dev2/edsl/utilities/gcp_bucket/__init__.py +0 -0
  354. edsl-0.1.39.dev2/edsl/utilities/is_notebook.py +0 -18
  355. edsl-0.1.39.dev2/edsl/utilities/is_valid_variable_name.py +0 -11
  356. edsl-0.1.39.dev2/edsl/utilities/remove_edsl_version.py +0 -24
  357. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/inference_services/__init__.py +0 -0
  358. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/jobs/runners/JobsRunnerStatusData.py +0 -0
  359. {edsl-0.1.39.dev2/edsl/language_models/key_management → edsl-0.1.39.dev3/edsl/questions/derived}/__init__.py +0 -0
  360. {edsl-0.1.39.dev2/edsl/questions/derived → edsl-0.1.39.dev3/edsl/questions/templates}/__init__.py +0 -0
  361. {edsl-0.1.39.dev2/edsl/questions/templates → edsl-0.1.39.dev3/edsl/questions/templates/budget}/__init__.py +0 -0
  362. {edsl-0.1.39.dev2/edsl/questions/templates/budget → edsl-0.1.39.dev3/edsl/questions/templates/checkbox}/__init__.py +0 -0
  363. {edsl-0.1.39.dev2/edsl/questions/templates/checkbox → edsl-0.1.39.dev3/edsl/questions/templates/extract}/__init__.py +0 -0
  364. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/extract/question_presentation.jinja +0 -0
  365. {edsl-0.1.39.dev2/edsl/questions/templates/extract → edsl-0.1.39.dev3/edsl/questions/templates/free_text}/__init__.py +0 -0
  366. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/free_text/answering_instructions.jinja +0 -0
  367. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/free_text/question_presentation.jinja +0 -0
  368. {edsl-0.1.39.dev2/edsl/questions/templates/free_text → edsl-0.1.39.dev3/edsl/questions/templates/likert_five}/__init__.py +0 -0
  369. {edsl-0.1.39.dev2/edsl/questions/templates/likert_five → edsl-0.1.39.dev3/edsl/questions/templates/linear_scale}/__init__.py +0 -0
  370. {edsl-0.1.39.dev2/edsl/questions/templates/linear_scale → edsl-0.1.39.dev3/edsl/questions/templates/list}/__init__.py +0 -0
  371. {edsl-0.1.39.dev2/edsl/questions/templates/list → edsl-0.1.39.dev3/edsl/questions/templates/multiple_choice}/__init__.py +0 -0
  372. {edsl-0.1.39.dev2 → edsl-0.1.39.dev3}/edsl/questions/templates/multiple_choice/html.jinja +0 -0
  373. {edsl-0.1.39.dev2/edsl/questions/templates/multiple_choice → edsl-0.1.39.dev3/edsl/questions/templates/numerical}/__init__.py +0 -0
  374. {edsl-0.1.39.dev2/edsl/questions/templates/numerical → edsl-0.1.39.dev3/edsl/questions/templates/rank}/__init__.py +0 -0
  375. {edsl-0.1.39.dev2/edsl/questions/templates/rank → edsl-0.1.39.dev3/edsl/questions/templates/top_k}/__init__.py +0 -0
  376. {edsl-0.1.39.dev2/edsl/questions/templates/top_k → edsl-0.1.39.dev3/edsl/questions/templates/yes_no}/__init__.py +0 -0
  377. {edsl-0.1.39.dev2/edsl/questions/templates/yes_no → edsl-0.1.39.dev3/edsl/surveys/instructions}/__init__.py +0 -0
  378. {edsl-0.1.39.dev2/edsl/surveys/instructions → 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.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?
@@ -1,54 +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
35
- results.select("example_question")
36
- ```
37
-
38
- Output:
39
- ```python
40
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━┓
41
- ┃ answer.example_question
42
- ┡━━━━━━━━━━━━━━━━━━━━━━━━━┩
43
- │ Good │
44
- └─────────────────────────┘
45
- ```
46
-
47
- ## 💻 Requirements
48
- * EDSL is compatible with Python 3.9 - 3.12.
49
- * API keys for large language models that you want to use, stored in a `.env` file.
50
- 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).
51
-
52
- ## 💡 Contributions, feature requests & bugs
53
- Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
54
- 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).