edsl 0.1.38.dev3__tar.gz → 0.1.39__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 (394) hide show
  1. {edsl-0.1.38.dev3 → edsl-0.1.39}/LICENSE +21 -21
  2. {edsl-0.1.38.dev3 → edsl-0.1.39}/PKG-INFO +13 -10
  3. {edsl-0.1.38.dev3 → edsl-0.1.39}/README.md +54 -55
  4. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/Base.py +413 -303
  5. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/BaseDiff.py +260 -260
  6. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/TemplateLoader.py +24 -24
  7. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/__init__.py +57 -49
  8. edsl-0.1.39/edsl/__version__.py +1 -0
  9. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/agents/Agent.py +1071 -858
  10. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/agents/AgentList.py +551 -362
  11. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/agents/Invigilator.py +284 -222
  12. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/agents/InvigilatorBase.py +257 -284
  13. edsl-0.1.39/edsl/agents/PromptConstructor.py +272 -0
  14. edsl-0.1.39/edsl/agents/QuestionInstructionPromptBuilder.py +128 -0
  15. edsl-0.1.39/edsl/agents/QuestionTemplateReplacementsBuilder.py +137 -0
  16. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/agents/__init__.py +2 -3
  17. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/agents/descriptors.py +99 -99
  18. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/agents/prompt_helpers.py +129 -129
  19. edsl-0.1.39/edsl/agents/question_option_processor.py +172 -0
  20. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/AutoStudy.py +130 -117
  21. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StageBase.py +243 -230
  22. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StageGenerateSurvey.py +178 -178
  23. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StageLabelQuestions.py +125 -125
  24. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StagePersona.py +61 -61
  25. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StagePersonaDimensionValueRanges.py +88 -88
  26. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StagePersonaDimensionValues.py +74 -74
  27. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StagePersonaDimensions.py +69 -69
  28. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/StageQuestions.py +74 -73
  29. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/SurveyCreatorPipeline.py +21 -21
  30. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/auto/utilities.py +218 -224
  31. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/base/Base.py +279 -279
  32. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/config.py +177 -149
  33. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/conversation/Conversation.py +290 -290
  34. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/conversation/car_buying.py +59 -58
  35. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/conversation/chips.py +95 -95
  36. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/conversation/mug_negotiation.py +81 -81
  37. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/conversation/next_speaker_utilities.py +93 -93
  38. edsl-0.1.39/edsl/coop/CoopFunctionsMixin.py +15 -0
  39. edsl-0.1.39/edsl/coop/ExpectedParrotKeyHandler.py +125 -0
  40. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/coop/PriceFetcher.py +54 -54
  41. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/coop/__init__.py +2 -2
  42. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/coop/coop.py +1106 -961
  43. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/coop/utils.py +131 -131
  44. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/data/Cache.py +573 -530
  45. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/data/CacheEntry.py +230 -228
  46. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/data/CacheHandler.py +168 -149
  47. edsl-0.1.39/edsl/data/RemoteCacheSync.py +186 -0
  48. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/data/SQLiteDict.py +292 -292
  49. edsl-0.1.39/edsl/data/__init__.py +5 -0
  50. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/data/orm.py +10 -10
  51. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/data_transfer_models.py +74 -73
  52. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/enums.py +202 -173
  53. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/BaseException.py +21 -21
  54. edsl-0.1.39/edsl/exceptions/__init__.py +54 -0
  55. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/agents.py +54 -42
  56. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/cache.py +5 -5
  57. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/configuration.py +16 -16
  58. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/coop.py +10 -10
  59. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/data.py +14 -14
  60. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/general.py +34 -34
  61. edsl-0.1.39/edsl/exceptions/inference_services.py +5 -0
  62. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/jobs.py +33 -33
  63. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/language_models.py +63 -63
  64. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/prompts.py +15 -15
  65. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/questions.py +109 -91
  66. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/results.py +29 -29
  67. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/scenarios.py +29 -22
  68. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/exceptions/surveys.py +37 -37
  69. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/AnthropicService.py +106 -87
  70. edsl-0.1.39/edsl/inference_services/AvailableModelCacheHandler.py +184 -0
  71. edsl-0.1.39/edsl/inference_services/AvailableModelFetcher.py +215 -0
  72. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/AwsBedrock.py +118 -120
  73. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/AzureAI.py +215 -217
  74. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/DeepInfraService.py +18 -18
  75. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/GoogleService.py +143 -156
  76. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/GroqService.py +20 -20
  77. edsl-0.1.39/edsl/inference_services/InferenceServiceABC.py +80 -0
  78. edsl-0.1.39/edsl/inference_services/InferenceServicesCollection.py +138 -0
  79. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/MistralAIService.py +120 -123
  80. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/OllamaService.py +18 -18
  81. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/OpenAIService.py +236 -224
  82. edsl-0.1.39/edsl/inference_services/PerplexityService.py +160 -0
  83. edsl-0.1.39/edsl/inference_services/ServiceAvailability.py +135 -0
  84. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/TestService.py +90 -89
  85. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/TogetherAIService.py +172 -170
  86. edsl-0.1.39/edsl/inference_services/data_structures.py +134 -0
  87. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/models_available_cache.py +118 -118
  88. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/rate_limits_cache.py +25 -25
  89. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/registry.py +41 -39
  90. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/write_available.py +10 -10
  91. edsl-0.1.39/edsl/jobs/AnswerQuestionFunctionConstructor.py +223 -0
  92. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/Answers.py +43 -56
  93. edsl-0.1.39/edsl/jobs/FetchInvigilator.py +47 -0
  94. edsl-0.1.39/edsl/jobs/InterviewTaskManager.py +98 -0
  95. edsl-0.1.39/edsl/jobs/InterviewsConstructor.py +50 -0
  96. edsl-0.1.39/edsl/jobs/Jobs.py +823 -0
  97. edsl-0.1.39/edsl/jobs/JobsChecks.py +172 -0
  98. edsl-0.1.39/edsl/jobs/JobsComponentConstructor.py +189 -0
  99. edsl-0.1.39/edsl/jobs/JobsPrompts.py +270 -0
  100. edsl-0.1.39/edsl/jobs/JobsRemoteInferenceHandler.py +311 -0
  101. edsl-0.1.39/edsl/jobs/JobsRemoteInferenceLogger.py +239 -0
  102. edsl-0.1.39/edsl/jobs/RequestTokenEstimator.py +30 -0
  103. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/__init__.py +1 -1
  104. edsl-0.1.39/edsl/jobs/async_interview_runner.py +138 -0
  105. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/buckets/BucketCollection.py +104 -63
  106. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/buckets/ModelBuckets.py +65 -65
  107. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/buckets/TokenBucket.py +283 -251
  108. edsl-0.1.39/edsl/jobs/buckets/TokenBucketAPI.py +211 -0
  109. edsl-0.1.39/edsl/jobs/buckets/TokenBucketClient.py +191 -0
  110. edsl-0.1.39/edsl/jobs/check_survey_scenario_compatibility.py +85 -0
  111. edsl-0.1.39/edsl/jobs/data_structures.py +120 -0
  112. edsl-0.1.39/edsl/jobs/decorators.py +35 -0
  113. edsl-0.1.39/edsl/jobs/interviews/Interview.py +396 -0
  114. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/InterviewExceptionCollection.py +99 -99
  115. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/InterviewExceptionEntry.py +186 -186
  116. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/InterviewStatistic.py +63 -63
  117. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/InterviewStatisticsCollection.py +25 -25
  118. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/InterviewStatusDictionary.py +78 -78
  119. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/InterviewStatusLog.py +92 -92
  120. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/ReportErrors.py +66 -66
  121. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/interviews/interview_status_enum.py +9 -9
  122. edsl-0.1.39/edsl/jobs/jobs_status_enums.py +9 -0
  123. edsl-0.1.39/edsl/jobs/loggers/HTMLTableJobLogger.py +304 -0
  124. edsl-0.1.39/edsl/jobs/results_exceptions_handler.py +98 -0
  125. edsl-0.1.39/edsl/jobs/runners/JobsRunnerAsyncio.py +151 -0
  126. edsl-0.1.39/edsl/jobs/runners/JobsRunnerStatus.py +298 -0
  127. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/tasks/QuestionTaskCreator.py +244 -242
  128. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/tasks/TaskCreators.py +64 -64
  129. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/tasks/TaskHistory.py +470 -451
  130. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/tasks/TaskStatusLog.py +23 -23
  131. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/tasks/task_status_enum.py +161 -163
  132. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/tokens/InterviewTokenUsage.py +27 -27
  133. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/tokens/TokenUsage.py +34 -34
  134. edsl-0.1.39/edsl/language_models/ComputeCost.py +63 -0
  135. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/language_models/LanguageModel.py +626 -708
  136. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/language_models/ModelList.py +164 -109
  137. edsl-0.1.39/edsl/language_models/PriceManager.py +127 -0
  138. edsl-0.1.39/edsl/language_models/RawResponseHandler.py +106 -0
  139. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/language_models/RegisterLanguageModelsMeta.py +184 -184
  140. edsl-0.1.39/edsl/language_models/__init__.py +2 -0
  141. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/language_models/fake_openai_call.py +15 -15
  142. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/language_models/fake_openai_service.py +61 -61
  143. edsl-0.1.39/edsl/language_models/key_management/KeyLookup.py +63 -0
  144. edsl-0.1.39/edsl/language_models/key_management/KeyLookupBuilder.py +273 -0
  145. edsl-0.1.39/edsl/language_models/key_management/KeyLookupCollection.py +38 -0
  146. edsl-0.1.39/edsl/language_models/key_management/models.py +131 -0
  147. edsl-0.1.39/edsl/language_models/model.py +256 -0
  148. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/language_models/repair.py +156 -156
  149. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/language_models/utilities.py +65 -64
  150. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/notebooks/Notebook.py +263 -258
  151. edsl-0.1.39/edsl/notebooks/NotebookToLaTeX.py +142 -0
  152. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/notebooks/__init__.py +1 -1
  153. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/prompts/Prompt.py +352 -357
  154. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/prompts/__init__.py +2 -2
  155. edsl-0.1.39/edsl/questions/ExceptionExplainer.py +77 -0
  156. edsl-0.1.39/edsl/questions/HTMLQuestion.py +103 -0
  157. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionBase.py +518 -660
  158. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionBasePromptsMixin.py +221 -217
  159. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionBudget.py +227 -227
  160. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionCheckBox.py +359 -359
  161. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionExtract.py +180 -183
  162. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionFreeText.py +113 -114
  163. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionFunctional.py +166 -166
  164. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionList.py +223 -231
  165. edsl-0.1.39/edsl/questions/QuestionMatrix.py +265 -0
  166. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionMultipleChoice.py +330 -286
  167. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionNumerical.py +151 -153
  168. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/QuestionRank.py +314 -324
  169. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/Quick.py +41 -41
  170. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/SimpleAskMixin.py +74 -73
  171. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/__init__.py +27 -26
  172. edsl-0.1.38.dev3/edsl/questions/AnswerValidatorMixin.py → edsl-0.1.39/edsl/questions/answer_validator_mixin.py +334 -289
  173. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/compose_questions.py +98 -98
  174. edsl-0.1.39/edsl/questions/data_structures.py +20 -0
  175. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/decorators.py +21 -21
  176. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/derived/QuestionLikertFive.py +76 -76
  177. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/derived/QuestionLinearScale.py +90 -87
  178. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/derived/QuestionTopK.py +93 -93
  179. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/derived/QuestionYesNo.py +82 -82
  180. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/descriptors.py +427 -413
  181. edsl-0.1.39/edsl/questions/loop_processor.py +149 -0
  182. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_budget.jinja +13 -13
  183. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_checkbox.jinja +32 -32
  184. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_extract.jinja +11 -11
  185. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_free_text.jinja +3 -3
  186. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_linear_scale.jinja +11 -11
  187. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_list.jinja +17 -17
  188. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_multiple_choice.jinja +33 -33
  189. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/prompt_templates/question_numerical.jinja +36 -36
  190. edsl-0.1.38.dev3/edsl/questions/QuestionBaseGenMixin.py → edsl-0.1.39/edsl/questions/question_base_gen_mixin.py +168 -161
  191. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/question_registry.py +177 -147
  192. edsl-0.1.38.dev3/edsl/questions/RegisterQuestionsMeta.py → edsl-0.1.39/edsl/questions/register_questions_meta.py +71 -71
  193. edsl-0.1.38.dev3/edsl/questions/ResponseValidatorABC.py → edsl-0.1.39/edsl/questions/response_validator_abc.py +188 -174
  194. edsl-0.1.39/edsl/questions/response_validator_factory.py +34 -0
  195. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/settings.py +12 -12
  196. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/budget/answering_instructions.jinja +7 -7
  197. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/budget/question_presentation.jinja +7 -7
  198. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/checkbox/answering_instructions.jinja +10 -10
  199. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/checkbox/question_presentation.jinja +22 -22
  200. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/extract/answering_instructions.jinja +7 -7
  201. {edsl-0.1.38.dev3/edsl/questions/templates/multiple_choice → edsl-0.1.39/edsl/questions/templates/likert_five}/answering_instructions.jinja +10 -9
  202. {edsl-0.1.38.dev3/edsl/questions/templates/multiple_choice → edsl-0.1.39/edsl/questions/templates/likert_five}/question_presentation.jinja +11 -11
  203. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/linear_scale/answering_instructions.jinja +5 -5
  204. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/linear_scale/question_presentation.jinja +5 -5
  205. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/list/answering_instructions.jinja +3 -3
  206. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/list/question_presentation.jinja +5 -5
  207. edsl-0.1.39/edsl/questions/templates/matrix/__init__.py +1 -0
  208. edsl-0.1.39/edsl/questions/templates/matrix/answering_instructions.jinja +5 -0
  209. edsl-0.1.39/edsl/questions/templates/matrix/question_presentation.jinja +20 -0
  210. {edsl-0.1.38.dev3/edsl/questions/templates/likert_five → edsl-0.1.39/edsl/questions/templates/multiple_choice}/answering_instructions.jinja +9 -10
  211. {edsl-0.1.38.dev3/edsl/questions/templates/likert_five → edsl-0.1.39/edsl/questions/templates/multiple_choice}/question_presentation.jinja +11 -11
  212. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/numerical/answering_instructions.jinja +6 -6
  213. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/numerical/question_presentation.jinja +6 -6
  214. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/rank/answering_instructions.jinja +11 -11
  215. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/rank/question_presentation.jinja +15 -15
  216. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/top_k/answering_instructions.jinja +8 -8
  217. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/top_k/question_presentation.jinja +22 -22
  218. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/yes_no/answering_instructions.jinja +6 -6
  219. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/yes_no/question_presentation.jinja +11 -11
  220. edsl-0.1.39/edsl/results/CSSParameterizer.py +108 -0
  221. edsl-0.1.39/edsl/results/Dataset.py +587 -0
  222. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/results/DatasetExportMixin.py +594 -717
  223. edsl-0.1.39/edsl/results/DatasetTree.py +295 -0
  224. edsl-0.1.39/edsl/results/MarkdownToDocx.py +122 -0
  225. edsl-0.1.39/edsl/results/MarkdownToPDF.py +111 -0
  226. edsl-0.1.39/edsl/results/Result.py +557 -0
  227. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/results/Results.py +1183 -1071
  228. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/results/ResultsExportMixin.py +45 -43
  229. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/results/ResultsGGMixin.py +121 -121
  230. edsl-0.1.39/edsl/results/TableDisplay.py +125 -0
  231. edsl-0.1.39/edsl/results/TextEditor.py +50 -0
  232. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/results/__init__.py +2 -2
  233. edsl-0.1.39/edsl/results/file_exports.py +252 -0
  234. edsl-0.1.38.dev3/edsl/results/ResultsFetchMixin.py → edsl-0.1.39/edsl/results/results_fetch_mixin.py +33 -33
  235. edsl-0.1.38.dev3/edsl/results/Selector.py → edsl-0.1.39/edsl/results/results_selector.py +145 -135
  236. edsl-0.1.38.dev3/edsl/results/ResultsToolsMixin.py → edsl-0.1.39/edsl/results/results_tools_mixin.py +98 -98
  237. edsl-0.1.39/edsl/results/smart_objects.py +96 -0
  238. edsl-0.1.39/edsl/results/table_data_class.py +12 -0
  239. edsl-0.1.39/edsl/results/table_display.css +78 -0
  240. edsl-0.1.39/edsl/results/table_renderers.py +118 -0
  241. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/results/tree_explore.py +115 -115
  242. edsl-0.1.39/edsl/scenarios/ConstructDownloadLink.py +109 -0
  243. edsl-0.1.39/edsl/scenarios/DocumentChunker.py +102 -0
  244. edsl-0.1.39/edsl/scenarios/DocxScenario.py +16 -0
  245. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/scenarios/FileStore.py +543 -458
  246. edsl-0.1.39/edsl/scenarios/PdfExtractor.py +40 -0
  247. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/scenarios/Scenario.py +498 -544
  248. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/scenarios/ScenarioHtmlMixin.py +65 -64
  249. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/scenarios/ScenarioList.py +1458 -1112
  250. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/scenarios/ScenarioListExportMixin.py +45 -52
  251. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/scenarios/ScenarioListPdfMixin.py +239 -261
  252. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/scenarios/__init__.py +3 -4
  253. edsl-0.1.39/edsl/scenarios/directory_scanner.py +96 -0
  254. edsl-0.1.39/edsl/scenarios/file_methods.py +85 -0
  255. edsl-0.1.39/edsl/scenarios/handlers/__init__.py +13 -0
  256. edsl-0.1.39/edsl/scenarios/handlers/csv.py +49 -0
  257. edsl-0.1.39/edsl/scenarios/handlers/docx.py +76 -0
  258. edsl-0.1.39/edsl/scenarios/handlers/html.py +37 -0
  259. edsl-0.1.39/edsl/scenarios/handlers/json.py +111 -0
  260. edsl-0.1.39/edsl/scenarios/handlers/latex.py +5 -0
  261. edsl-0.1.39/edsl/scenarios/handlers/md.py +51 -0
  262. edsl-0.1.39/edsl/scenarios/handlers/pdf.py +68 -0
  263. edsl-0.1.39/edsl/scenarios/handlers/png.py +39 -0
  264. edsl-0.1.39/edsl/scenarios/handlers/pptx.py +105 -0
  265. edsl-0.1.39/edsl/scenarios/handlers/py.py +294 -0
  266. edsl-0.1.39/edsl/scenarios/handlers/sql.py +313 -0
  267. edsl-0.1.39/edsl/scenarios/handlers/sqlite.py +149 -0
  268. edsl-0.1.39/edsl/scenarios/handlers/txt.py +33 -0
  269. edsl-0.1.39/edsl/scenarios/scenario_join.py +131 -0
  270. edsl-0.1.39/edsl/scenarios/scenario_selector.py +156 -0
  271. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/shared.py +1 -1
  272. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/study/ObjectEntry.py +173 -173
  273. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/study/ProofOfWork.py +113 -113
  274. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/study/SnapShot.py +80 -80
  275. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/study/Study.py +521 -528
  276. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/study/__init__.py +4 -4
  277. edsl-0.1.39/edsl/surveys/ConstructDAG.py +92 -0
  278. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/DAG.py +148 -148
  279. edsl-0.1.39/edsl/surveys/EditSurvey.py +221 -0
  280. edsl-0.1.39/edsl/surveys/InstructionHandler.py +100 -0
  281. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/Memory.py +31 -31
  282. edsl-0.1.39/edsl/surveys/MemoryManagement.py +72 -0
  283. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/MemoryPlan.py +244 -244
  284. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/Rule.py +327 -326
  285. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/RuleCollection.py +385 -387
  286. edsl-0.1.39/edsl/surveys/RuleManager.py +172 -0
  287. edsl-0.1.39/edsl/surveys/Simulator.py +75 -0
  288. edsl-0.1.39/edsl/surveys/Survey.py +1280 -0
  289. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/SurveyCSS.py +273 -261
  290. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/SurveyExportMixin.py +259 -259
  291. edsl-0.1.38.dev3/edsl/surveys/SurveyFlowVisualizationMixin.py → edsl-0.1.39/edsl/surveys/SurveyFlowVisualization.py +181 -121
  292. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/SurveyQualtricsImport.py +284 -284
  293. edsl-0.1.39/edsl/surveys/SurveyToApp.py +141 -0
  294. edsl-0.1.39/edsl/surveys/__init__.py +5 -0
  295. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/base.py +53 -53
  296. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/descriptors.py +60 -56
  297. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/instructions/ChangeInstruction.py +48 -49
  298. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/instructions/Instruction.py +56 -53
  299. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/surveys/instructions/InstructionCollection.py +82 -77
  300. edsl-0.1.39/edsl/surveys/instructions/__init__.py +0 -0
  301. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/base.html +23 -23
  302. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/exceptions_by_model.html +34 -34
  303. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/exceptions_by_question_name.html +16 -16
  304. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/exceptions_by_type.html +16 -16
  305. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/interview_details.html +115 -115
  306. edsl-0.1.39/edsl/templates/error_reporting/interviews.html +19 -0
  307. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/overview.html +4 -4
  308. edsl-0.1.39/edsl/templates/error_reporting/performance_plot.html +2 -0
  309. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/report.css +73 -73
  310. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/report.html +117 -117
  311. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/templates/error_reporting/report.js +25 -25
  312. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/tools/__init__.py +1 -1
  313. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/tools/clusters.py +192 -192
  314. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/tools/embeddings.py +27 -27
  315. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/tools/embeddings_plotting.py +118 -118
  316. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/tools/plotting.py +112 -112
  317. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/tools/summarize.py +18 -18
  318. edsl-0.1.39/edsl/utilities/PrettyList.py +56 -0
  319. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/SystemInfo.py +28 -28
  320. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/__init__.py +22 -22
  321. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/ast_utilities.py +25 -25
  322. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/data/Registry.py +6 -6
  323. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/data/__init__.py +1 -1
  324. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/data/scooter_results.json +1 -1
  325. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/decorators.py +77 -77
  326. edsl-0.1.39/edsl/utilities/gcp_bucket/__init__.py +0 -0
  327. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/gcp_bucket/cloud_storage.py +96 -96
  328. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/interface.py +627 -627
  329. edsl-0.1.39/edsl/utilities/is_notebook.py +18 -0
  330. edsl-0.1.39/edsl/utilities/is_valid_variable_name.py +11 -0
  331. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/naming_utilities.py +263 -263
  332. edsl-0.1.39/edsl/utilities/remove_edsl_version.py +24 -0
  333. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/repair_functions.py +28 -28
  334. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/restricted_python.py +70 -70
  335. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/utilities/utilities.py +436 -409
  336. {edsl-0.1.38.dev3 → edsl-0.1.39}/pyproject.toml +86 -82
  337. edsl-0.1.38.dev3/edsl/__version__.py +0 -1
  338. edsl-0.1.38.dev3/edsl/agents/PromptConstructor.py +0 -353
  339. edsl-0.1.38.dev3/edsl/data/RemoteCacheSync.py +0 -97
  340. edsl-0.1.38.dev3/edsl/data/__init__.py +0 -4
  341. edsl-0.1.38.dev3/edsl/exceptions/__init__.py +0 -54
  342. edsl-0.1.38.dev3/edsl/inference_services/InferenceServiceABC.py +0 -147
  343. edsl-0.1.38.dev3/edsl/inference_services/InferenceServicesCollection.py +0 -97
  344. edsl-0.1.38.dev3/edsl/jobs/Jobs.py +0 -1358
  345. edsl-0.1.38.dev3/edsl/jobs/interviews/Interview.py +0 -661
  346. edsl-0.1.38.dev3/edsl/jobs/runners/JobsRunnerAsyncio.py +0 -361
  347. edsl-0.1.38.dev3/edsl/jobs/runners/JobsRunnerStatus.py +0 -332
  348. edsl-0.1.38.dev3/edsl/language_models/KeyLookup.py +0 -30
  349. edsl-0.1.38.dev3/edsl/language_models/__init__.py +0 -3
  350. edsl-0.1.38.dev3/edsl/language_models/registry.py +0 -137
  351. edsl-0.1.38.dev3/edsl/language_models/unused/ReplicateBase.py +0 -83
  352. edsl-0.1.38.dev3/edsl/questions/templates/__pycache__/__init__.cpython-312.pyc +0 -0
  353. edsl-0.1.38.dev3/edsl/questions/templates/budget/__pycache__/__init__.cpython-312.pyc +0 -0
  354. edsl-0.1.38.dev3/edsl/questions/templates/checkbox/__pycache__/__init__.cpython-312.pyc +0 -0
  355. edsl-0.1.38.dev3/edsl/questions/templates/extract/__pycache__/__init__.cpython-312.pyc +0 -0
  356. edsl-0.1.38.dev3/edsl/questions/templates/free_text/__pycache__/__init__.cpython-312.pyc +0 -0
  357. edsl-0.1.38.dev3/edsl/questions/templates/likert_five/__pycache__/__init__.cpython-312.pyc +0 -0
  358. edsl-0.1.38.dev3/edsl/questions/templates/linear_scale/__pycache__/__init__.cpython-312.pyc +0 -0
  359. edsl-0.1.38.dev3/edsl/questions/templates/list/__pycache__/__init__.cpython-312.pyc +0 -0
  360. edsl-0.1.38.dev3/edsl/questions/templates/multiple_choice/__pycache__/__init__.cpython-312.pyc +0 -0
  361. edsl-0.1.38.dev3/edsl/questions/templates/numerical/__pycache__/__init__.cpython-312.pyc +0 -0
  362. edsl-0.1.38.dev3/edsl/questions/templates/rank/__pycache__/__init__.cpython-312.pyc +0 -0
  363. edsl-0.1.38.dev3/edsl/questions/templates/top_k/__pycache__/__init__.cpython-312.pyc +0 -0
  364. edsl-0.1.38.dev3/edsl/questions/templates/yes_no/__pycache__/__init__.cpython-312.pyc +0 -0
  365. edsl-0.1.38.dev3/edsl/results/Dataset.py +0 -293
  366. edsl-0.1.38.dev3/edsl/results/DatasetTree.py +0 -145
  367. edsl-0.1.38.dev3/edsl/results/Result.py +0 -456
  368. edsl-0.1.38.dev3/edsl/results/ResultsDBMixin.py +0 -238
  369. edsl-0.1.38.dev3/edsl/surveys/Survey.py +0 -1787
  370. edsl-0.1.38.dev3/edsl/surveys/__init__.py +0 -3
  371. edsl-0.1.38.dev3/edsl/templates/error_reporting/interviews.html +0 -10
  372. edsl-0.1.38.dev3/edsl/templates/error_reporting/performance_plot.html +0 -2
  373. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/inference_services/__init__.py +0 -0
  374. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/jobs/runners/JobsRunnerStatusData.py +0 -0
  375. /edsl-0.1.38.dev3/edsl/questions/derived/__init__.py → /edsl-0.1.39/edsl/language_models/ServiceDataSources.py +0 -0
  376. {edsl-0.1.38.dev3/edsl/questions/templates → edsl-0.1.39/edsl/language_models/key_management}/__init__.py +0 -0
  377. {edsl-0.1.38.dev3/edsl/questions/templates/budget → edsl-0.1.39/edsl/questions/derived}/__init__.py +0 -0
  378. {edsl-0.1.38.dev3/edsl/questions/templates/checkbox → edsl-0.1.39/edsl/questions/templates}/__init__.py +0 -0
  379. {edsl-0.1.38.dev3/edsl/questions/templates/extract → edsl-0.1.39/edsl/questions/templates/budget}/__init__.py +0 -0
  380. {edsl-0.1.38.dev3/edsl/questions/templates/free_text → edsl-0.1.39/edsl/questions/templates/checkbox}/__init__.py +0 -0
  381. {edsl-0.1.38.dev3/edsl/questions/templates/likert_five → edsl-0.1.39/edsl/questions/templates/extract}/__init__.py +0 -0
  382. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/extract/question_presentation.jinja +0 -0
  383. {edsl-0.1.38.dev3/edsl/questions/templates/linear_scale → edsl-0.1.39/edsl/questions/templates/free_text}/__init__.py +0 -0
  384. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/free_text/answering_instructions.jinja +0 -0
  385. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/free_text/question_presentation.jinja +0 -0
  386. {edsl-0.1.38.dev3/edsl/questions/templates/list → edsl-0.1.39/edsl/questions/templates/likert_five}/__init__.py +0 -0
  387. {edsl-0.1.38.dev3/edsl/questions/templates/multiple_choice → edsl-0.1.39/edsl/questions/templates/linear_scale}/__init__.py +0 -0
  388. {edsl-0.1.38.dev3/edsl/questions/templates/numerical → edsl-0.1.39/edsl/questions/templates/list}/__init__.py +0 -0
  389. {edsl-0.1.38.dev3/edsl/questions/templates/rank → edsl-0.1.39/edsl/questions/templates/multiple_choice}/__init__.py +0 -0
  390. {edsl-0.1.38.dev3 → edsl-0.1.39}/edsl/questions/templates/multiple_choice/html.jinja +0 -0
  391. {edsl-0.1.38.dev3/edsl/questions/templates/top_k → edsl-0.1.39/edsl/questions/templates/numerical}/__init__.py +0 -0
  392. {edsl-0.1.38.dev3/edsl/questions/templates/yes_no → edsl-0.1.39/edsl/questions/templates/rank}/__init__.py +0 -0
  393. {edsl-0.1.38.dev3/edsl/surveys/instructions → edsl-0.1.39/edsl/questions/templates/top_k}/__init__.py +0 -0
  394. {edsl-0.1.38.dev3/edsl/utilities/gcp_bucket → edsl-0.1.39/edsl/questions/templates/yes_no}/__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.38.dev3
3
+ Version: 0.1.39
4
4
  Summary: Create and analyze LLM-based surveys
5
5
  Home-page: https://www.expectedparrot.com/
6
6
  License: MIT
@@ -34,17 +34,21 @@ 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)
37
38
  Requires-Dist: pydot (>=2.0.0,<3.0.0)
38
39
  Requires-Dist: pygments (>=2.17.2,<3.0.0)
39
40
  Requires-Dist: pymupdf (>=1.24.4,<2.0.0)
41
+ Requires-Dist: pypdf2 (>=3.0.1,<4.0.0)
40
42
  Requires-Dist: pyreadstat (>=1.2.7,<2.0.0)
41
43
  Requires-Dist: python-docx (>=1.1.0,<2.0.0)
42
44
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
45
+ Requires-Dist: python-pptx (>=1.0.2,<2.0.0)
43
46
  Requires-Dist: restrictedpython (>=7.1,<8.0)
44
47
  Requires-Dist: rich (>=13.7.0,<14.0.0)
45
48
  Requires-Dist: setuptools (<72.0)
46
49
  Requires-Dist: simpleeval (>=0.9.13,<0.10.0)
47
50
  Requires-Dist: sqlalchemy (>=2.0.23,<3.0.0)
51
+ Requires-Dist: tabulate (>=0.9.0,<0.10.0)
48
52
  Requires-Dist: tenacity (>=8.2.3,<9.0.0)
49
53
  Requires-Dist: urllib3 (>=1.25.4,<1.27)
50
54
  Project-URL: Documentation, https://docs.expectedparrot.com
@@ -83,24 +87,23 @@ q = QuestionMultipleChoice(
83
87
  # Run it with the default language model
84
88
  results = q.run()
85
89
 
86
- # Inspect the results in a dataset
87
- results.select("example_question").print()
90
+ # Inspect the results
91
+ results.select("example_question")
88
92
  ```
89
93
 
90
94
  Output:
91
95
  ```python
92
- ┏━━━━━━━━━━━━━━━━━━━┓
93
- ┃ answer
94
- ┃ .example_question ┃
95
- ┡━━━━━━━━━━━━━━━━━━━┩
96
- │ Good │
97
- └───────────────────┘
96
+ ┏━━━━━━━━━━━━━━━━━━━━━━━━━┓
97
+ ┃ answer.example_question
98
+ ┡━━━━━━━━━━━━━━━━━━━━━━━━━┩
99
+ │ Good │
100
+ └─────────────────────────┘
98
101
  ```
99
102
 
100
103
  ## 💻 Requirements
101
104
  * EDSL is compatible with Python 3.9 - 3.12.
102
105
  * API keys for large language models that you want to use, stored in a `.env` file.
103
- See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html).
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
107
 
105
108
  ## 💡 Contributions, feature requests & bugs
106
109
  Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
@@ -1,55 +1,54 @@
1
- # Expected Parrot Domain-Specific Language
2
- <p align="center">
3
- <img src="https://github.com/expectedparrot/edsl/blob/main/static/logo.png?raw=true" alt="edsl.png" width="100"/>
4
- </p>
5
-
6
- The Expected Parrot Domain-Specific Language (EDSL) package lets you conduct computational social science and market research with AI. Use it to design surveys and experiments, simulate responses with large language models, and perform data labeling and other research tasks. Results are formatted as specified datasets and come with built-in methods for analyzing, visualizing, and sharing.
7
-
8
- ## 🔗 Links
9
- - [PyPI](https://pypi.org/project/edsl/)
10
- - [Documentation](https://docs.expectedparrot.com)
11
- - [Getting started](https://docs.expectedparrot.com/en/latest/starter_tutorial.html)
12
- - [Discord](https://discord.com/invite/mxAYkjfy9m)
13
- - [Twitter](https://x.com/ExpectedParrot)
14
- - [LinkedIn](https://www.linkedin.com/company/expectedparrot/)
15
- - [Blog](https://blog.expectedparrot.com)
16
-
17
- ## 🌎 Hello, World!
18
- A quick example:
19
-
20
- ```python
21
- # Import a question type
22
- from edsl import QuestionMultipleChoice
23
-
24
- # Construct a question using the question type template
25
- q = QuestionMultipleChoice(
26
- question_name="example_question",
27
- question_text="How do you feel today?",
28
- question_options=["Bad", "OK", "Good"]
29
- )
30
-
31
- # Run it with the default language model
32
- results = q.run()
33
-
34
- # Inspect the results in a dataset
35
- results.select("example_question").print()
36
- ```
37
-
38
- Output:
39
- ```python
40
- ┏━━━━━━━━━━━━━━━━━━━┓
41
- ┃ answer
42
- ┃ .example_question ┃
43
- ┡━━━━━━━━━━━━━━━━━━━┩
44
- │ Good │
45
- └───────────────────┘
46
- ```
47
-
48
- ## 💻 Requirements
49
- * EDSL is compatible with Python 3.9 - 3.12.
50
- * API keys for large language models that you want to use, stored in a `.env` file.
51
- See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html).
52
-
53
- ## 💡 Contributions, feature requests & bugs
54
- Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
55
- Please send us an email at [info@expectedparrot.com](mailto:info@expectedparrot.com) or message us at our [Discord channel](https://discord.com/invite/mxAYkjfy9m).
1
+ # Expected Parrot Domain-Specific Language
2
+ <p align="center">
3
+ <img src="https://github.com/expectedparrot/edsl/blob/main/static/logo.png?raw=true" alt="edsl.png" width="100"/>
4
+ </p>
5
+
6
+ The Expected Parrot Domain-Specific Language (EDSL) package lets you conduct computational social science and market research with AI. Use it to design surveys and experiments, simulate responses with large language models, and perform data labeling and other research tasks. Results are formatted as specified datasets and come with built-in methods for analyzing, visualizing, and sharing.
7
+
8
+ ## 🔗 Links
9
+ - [PyPI](https://pypi.org/project/edsl/)
10
+ - [Documentation](https://docs.expectedparrot.com)
11
+ - [Getting started](https://docs.expectedparrot.com/en/latest/starter_tutorial.html)
12
+ - [Discord](https://discord.com/invite/mxAYkjfy9m)
13
+ - [Twitter](https://x.com/ExpectedParrot)
14
+ - [LinkedIn](https://www.linkedin.com/company/expectedparrot/)
15
+ - [Blog](https://blog.expectedparrot.com)
16
+
17
+ ## 🌎 Hello, World!
18
+ A quick example:
19
+
20
+ ```python
21
+ # Import a question type
22
+ from edsl import QuestionMultipleChoice
23
+
24
+ # Construct a question using the question type template
25
+ q = QuestionMultipleChoice(
26
+ question_name="example_question",
27
+ question_text="How do you feel today?",
28
+ question_options=["Bad", "OK", "Good"]
29
+ )
30
+
31
+ # Run it with the default language model
32
+ results = q.run()
33
+
34
+ # Inspect the results
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).