edsl 0.1.37.dev3__tar.gz → 0.1.37.dev4__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 (293) hide show
  1. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/PKG-INFO +1 -1
  2. edsl-0.1.37.dev4/edsl/__version__.py +1 -0
  3. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/coop/coop.py +4 -1
  4. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/AwsBedrock.py +7 -2
  5. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/Jobs.py +27 -13
  6. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/pyproject.toml +1 -1
  7. edsl-0.1.37.dev3/edsl/__version__.py +0 -1
  8. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/LICENSE +0 -0
  9. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/README.md +0 -0
  10. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/Base.py +0 -0
  11. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/BaseDiff.py +0 -0
  12. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/TemplateLoader.py +0 -0
  13. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/__init__.py +0 -0
  14. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/Agent.py +0 -0
  15. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/AgentList.py +0 -0
  16. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/Invigilator.py +0 -0
  17. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/InvigilatorBase.py +0 -0
  18. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/PromptConstructor.py +0 -0
  19. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/__init__.py +0 -0
  20. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/descriptors.py +0 -0
  21. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/agents/prompt_helpers.py +0 -0
  22. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/AutoStudy.py +0 -0
  23. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StageBase.py +0 -0
  24. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StageGenerateSurvey.py +0 -0
  25. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StageLabelQuestions.py +0 -0
  26. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StagePersona.py +0 -0
  27. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StagePersonaDimensionValueRanges.py +0 -0
  28. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StagePersonaDimensionValues.py +0 -0
  29. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StagePersonaDimensions.py +0 -0
  30. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/StageQuestions.py +0 -0
  31. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/SurveyCreatorPipeline.py +0 -0
  32. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/auto/utilities.py +0 -0
  33. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/base/Base.py +0 -0
  34. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/config.py +0 -0
  35. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/AgentConstructionMixin.py +0 -0
  36. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/Conjure.py +0 -0
  37. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/InputData.py +0 -0
  38. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/InputDataCSV.py +0 -0
  39. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/InputDataMixinQuestionStats.py +0 -0
  40. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/InputDataPyRead.py +0 -0
  41. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/InputDataSPSS.py +0 -0
  42. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/InputDataStata.py +0 -0
  43. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/QuestionOptionMixin.py +0 -0
  44. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/QuestionTypeMixin.py +0 -0
  45. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/RawQuestion.py +0 -0
  46. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/SurveyResponses.py +0 -0
  47. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/__init__.py +0 -0
  48. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/examples/placeholder.txt +0 -0
  49. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/naming_utilities.py +0 -0
  50. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conjure/utilities.py +0 -0
  51. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conversation/Conversation.py +0 -0
  52. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conversation/car_buying.py +0 -0
  53. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conversation/mug_negotiation.py +0 -0
  54. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/conversation/next_speaker_utilities.py +0 -0
  55. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/coop/PriceFetcher.py +0 -0
  56. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/coop/__init__.py +0 -0
  57. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/coop/utils.py +0 -0
  58. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data/Cache.py +0 -0
  59. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data/CacheEntry.py +0 -0
  60. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data/CacheHandler.py +0 -0
  61. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data/RemoteCacheSync.py +0 -0
  62. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data/SQLiteDict.py +0 -0
  63. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data/__init__.py +0 -0
  64. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data/orm.py +0 -0
  65. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/data_transfer_models.py +0 -0
  66. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/enums.py +0 -0
  67. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/__init__.py +0 -0
  68. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/agents.py +0 -0
  69. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/configuration.py +0 -0
  70. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/coop.py +0 -0
  71. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/data.py +0 -0
  72. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/general.py +0 -0
  73. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/jobs.py +0 -0
  74. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/language_models.py +0 -0
  75. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/prompts.py +0 -0
  76. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/questions.py +0 -0
  77. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/results.py +0 -0
  78. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/exceptions/surveys.py +0 -0
  79. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/AnthropicService.py +0 -0
  80. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/AzureAI.py +0 -0
  81. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/DeepInfraService.py +0 -0
  82. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/GoogleService.py +0 -0
  83. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/GroqService.py +0 -0
  84. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/InferenceServiceABC.py +0 -0
  85. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/InferenceServicesCollection.py +0 -0
  86. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/MistralAIService.py +0 -0
  87. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/OllamaService.py +0 -0
  88. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/OpenAIService.py +0 -0
  89. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/TestService.py +0 -0
  90. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/TogetherAIService.py +0 -0
  91. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/__init__.py +0 -0
  92. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/models_available_cache.py +0 -0
  93. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/rate_limits_cache.py +0 -0
  94. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/registry.py +0 -0
  95. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/inference_services/write_available.py +0 -0
  96. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/Answers.py +0 -0
  97. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/__init__.py +0 -0
  98. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/buckets/BucketCollection.py +0 -0
  99. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/buckets/ModelBuckets.py +0 -0
  100. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/buckets/TokenBucket.py +0 -0
  101. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/Interview.py +0 -0
  102. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/InterviewExceptionCollection.py +0 -0
  103. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/InterviewExceptionEntry.py +0 -0
  104. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/InterviewStatistic.py +0 -0
  105. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/InterviewStatisticsCollection.py +0 -0
  106. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/InterviewStatusDictionary.py +0 -0
  107. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/InterviewStatusLog.py +0 -0
  108. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/ReportErrors.py +0 -0
  109. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/interviews/interview_status_enum.py +0 -0
  110. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/runners/JobsRunnerAsyncio.py +0 -0
  111. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/runners/JobsRunnerStatus.py +0 -0
  112. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/runners/JobsRunnerStatusData.py +0 -0
  113. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/tasks/QuestionTaskCreator.py +0 -0
  114. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/tasks/TaskCreators.py +0 -0
  115. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/tasks/TaskHistory.py +0 -0
  116. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/tasks/TaskStatusLog.py +0 -0
  117. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/tasks/task_status_enum.py +0 -0
  118. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/tokens/InterviewTokenUsage.py +0 -0
  119. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/jobs/tokens/TokenUsage.py +0 -0
  120. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/LanguageModel.py +0 -0
  121. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/ModelList.py +0 -0
  122. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/RegisterLanguageModelsMeta.py +0 -0
  123. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/__init__.py +0 -0
  124. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/fake_openai_call.py +0 -0
  125. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/fake_openai_service.py +0 -0
  126. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/registry.py +0 -0
  127. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/repair.py +0 -0
  128. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/unused/ReplicateBase.py +0 -0
  129. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/language_models/utilities.py +0 -0
  130. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/notebooks/Notebook.py +0 -0
  131. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/notebooks/__init__.py +0 -0
  132. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/prompts/Prompt.py +0 -0
  133. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/prompts/__init__.py +0 -0
  134. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/AnswerValidatorMixin.py +0 -0
  135. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionBase.py +0 -0
  136. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionBaseGenMixin.py +0 -0
  137. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionBasePromptsMixin.py +0 -0
  138. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionBudget.py +0 -0
  139. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionCheckBox.py +0 -0
  140. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionExtract.py +0 -0
  141. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionFreeText.py +0 -0
  142. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionFunctional.py +0 -0
  143. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionList.py +0 -0
  144. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionMultipleChoice.py +0 -0
  145. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionNumerical.py +0 -0
  146. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/QuestionRank.py +0 -0
  147. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/Quick.py +0 -0
  148. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/RegisterQuestionsMeta.py +0 -0
  149. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/ResponseValidatorABC.py +0 -0
  150. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/SimpleAskMixin.py +0 -0
  151. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/__init__.py +0 -0
  152. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/compose_questions.py +0 -0
  153. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/decorators.py +0 -0
  154. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/derived/QuestionLikertFive.py +0 -0
  155. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/derived/QuestionLinearScale.py +0 -0
  156. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/derived/QuestionTopK.py +0 -0
  157. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/derived/QuestionYesNo.py +0 -0
  158. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/derived/__init__.py +0 -0
  159. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/descriptors.py +0 -0
  160. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_budget.jinja +0 -0
  161. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_checkbox.jinja +0 -0
  162. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_extract.jinja +0 -0
  163. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_free_text.jinja +0 -0
  164. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_linear_scale.jinja +0 -0
  165. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_list.jinja +0 -0
  166. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_multiple_choice.jinja +0 -0
  167. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/prompt_templates/question_numerical.jinja +0 -0
  168. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/question_registry.py +0 -0
  169. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/settings.py +0 -0
  170. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/__init__.py +0 -0
  171. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/__pycache__/__init__.cpython-312.pyc +0 -0
  172. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/budget/__init__.py +0 -0
  173. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/budget/__pycache__/__init__.cpython-312.pyc +0 -0
  174. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/budget/answering_instructions.jinja +0 -0
  175. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/budget/question_presentation.jinja +0 -0
  176. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/checkbox/__init__.py +0 -0
  177. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/checkbox/__pycache__/__init__.cpython-312.pyc +0 -0
  178. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/checkbox/answering_instructions.jinja +0 -0
  179. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/checkbox/question_presentation.jinja +0 -0
  180. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/extract/__init__.py +0 -0
  181. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/extract/__pycache__/__init__.cpython-312.pyc +0 -0
  182. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/extract/answering_instructions.jinja +0 -0
  183. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/extract/question_presentation.jinja +0 -0
  184. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/free_text/__init__.py +0 -0
  185. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/free_text/__pycache__/__init__.cpython-312.pyc +0 -0
  186. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/free_text/answering_instructions.jinja +0 -0
  187. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/free_text/question_presentation.jinja +0 -0
  188. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/likert_five/__init__.py +0 -0
  189. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/likert_five/__pycache__/__init__.cpython-312.pyc +0 -0
  190. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/likert_five/answering_instructions.jinja +0 -0
  191. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/likert_five/question_presentation.jinja +0 -0
  192. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/linear_scale/__init__.py +0 -0
  193. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/linear_scale/__pycache__/__init__.cpython-312.pyc +0 -0
  194. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/linear_scale/answering_instructions.jinja +0 -0
  195. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/linear_scale/question_presentation.jinja +0 -0
  196. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/list/__init__.py +0 -0
  197. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/list/__pycache__/__init__.cpython-312.pyc +0 -0
  198. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/list/answering_instructions.jinja +0 -0
  199. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/list/question_presentation.jinja +0 -0
  200. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/multiple_choice/__init__.py +0 -0
  201. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/multiple_choice/__pycache__/__init__.cpython-312.pyc +0 -0
  202. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/multiple_choice/answering_instructions.jinja +0 -0
  203. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/multiple_choice/html.jinja +0 -0
  204. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/multiple_choice/question_presentation.jinja +0 -0
  205. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/numerical/__init__.py +0 -0
  206. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/numerical/__pycache__/__init__.cpython-312.pyc +0 -0
  207. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/numerical/answering_instructions.jinja +0 -0
  208. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/numerical/question_presentation.jinja +0 -0
  209. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/rank/__init__.py +0 -0
  210. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/rank/__pycache__/__init__.cpython-312.pyc +0 -0
  211. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/rank/answering_instructions.jinja +0 -0
  212. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/rank/question_presentation.jinja +0 -0
  213. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/top_k/__init__.py +0 -0
  214. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/top_k/__pycache__/__init__.cpython-312.pyc +0 -0
  215. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/top_k/answering_instructions.jinja +0 -0
  216. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/top_k/question_presentation.jinja +0 -0
  217. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/yes_no/__init__.py +0 -0
  218. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/yes_no/__pycache__/__init__.cpython-312.pyc +0 -0
  219. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/yes_no/answering_instructions.jinja +0 -0
  220. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/questions/templates/yes_no/question_presentation.jinja +0 -0
  221. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/Dataset.py +0 -0
  222. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/DatasetExportMixin.py +0 -0
  223. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/DatasetTree.py +0 -0
  224. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/Result.py +0 -0
  225. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/Results.py +0 -0
  226. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/ResultsDBMixin.py +0 -0
  227. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/ResultsExportMixin.py +0 -0
  228. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/ResultsFetchMixin.py +0 -0
  229. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/ResultsGGMixin.py +0 -0
  230. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/ResultsToolsMixin.py +0 -0
  231. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/Selector.py +0 -0
  232. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/__init__.py +0 -0
  233. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/results/tree_explore.py +0 -0
  234. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/scenarios/FileStore.py +0 -0
  235. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/scenarios/Scenario.py +0 -0
  236. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/scenarios/ScenarioHtmlMixin.py +0 -0
  237. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/scenarios/ScenarioList.py +0 -0
  238. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/scenarios/ScenarioListExportMixin.py +0 -0
  239. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/scenarios/ScenarioListPdfMixin.py +0 -0
  240. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/scenarios/__init__.py +0 -0
  241. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/shared.py +0 -0
  242. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/study/ObjectEntry.py +0 -0
  243. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/study/ProofOfWork.py +0 -0
  244. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/study/SnapShot.py +0 -0
  245. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/study/Study.py +0 -0
  246. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/study/__init__.py +0 -0
  247. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/DAG.py +0 -0
  248. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/Memory.py +0 -0
  249. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/MemoryPlan.py +0 -0
  250. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/Rule.py +0 -0
  251. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/RuleCollection.py +0 -0
  252. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/Survey.py +0 -0
  253. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/SurveyCSS.py +0 -0
  254. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/SurveyExportMixin.py +0 -0
  255. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/SurveyFlowVisualizationMixin.py +0 -0
  256. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/SurveyQualtricsImport.py +0 -0
  257. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/__init__.py +0 -0
  258. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/base.py +0 -0
  259. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/descriptors.py +0 -0
  260. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/instructions/ChangeInstruction.py +0 -0
  261. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/instructions/Instruction.py +0 -0
  262. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/instructions/InstructionCollection.py +0 -0
  263. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/surveys/instructions/__init__.py +0 -0
  264. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/base.html +0 -0
  265. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/exceptions_by_model.html +0 -0
  266. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/exceptions_by_question_name.html +0 -0
  267. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/exceptions_by_type.html +0 -0
  268. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/interview_details.html +0 -0
  269. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/interviews.html +0 -0
  270. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/overview.html +0 -0
  271. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/performance_plot.html +0 -0
  272. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/report.css +0 -0
  273. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/report.html +0 -0
  274. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/templates/error_reporting/report.js +0 -0
  275. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/tools/__init__.py +0 -0
  276. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/tools/clusters.py +0 -0
  277. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/tools/embeddings.py +0 -0
  278. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/tools/embeddings_plotting.py +0 -0
  279. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/tools/plotting.py +0 -0
  280. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/tools/summarize.py +0 -0
  281. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/SystemInfo.py +0 -0
  282. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/__init__.py +0 -0
  283. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/ast_utilities.py +0 -0
  284. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/data/Registry.py +0 -0
  285. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/data/__init__.py +0 -0
  286. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/data/scooter_results.json +0 -0
  287. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/decorators.py +0 -0
  288. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/gcp_bucket/__init__.py +0 -0
  289. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/gcp_bucket/cloud_storage.py +0 -0
  290. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/interface.py +0 -0
  291. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/repair_functions.py +0 -0
  292. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/restricted_python.py +0 -0
  293. {edsl-0.1.37.dev3 → edsl-0.1.37.dev4}/edsl/utilities/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edsl
3
- Version: 0.1.37.dev3
3
+ Version: 0.1.37.dev4
4
4
  Summary: Create and analyze LLM-based surveys
5
5
  Home-page: https://www.expectedparrot.com/
6
6
  License: MIT
@@ -0,0 +1 @@
1
+ __version__ = "0.1.37.dev4"
@@ -568,7 +568,9 @@ class Coop:
568
568
  "version": data.get("version"),
569
569
  }
570
570
 
571
- def remote_inference_cost(self, input: Union[Jobs, Survey]) -> int:
571
+ def remote_inference_cost(
572
+ self, input: Union[Jobs, Survey], iterations: int = 1
573
+ ) -> int:
572
574
  """
573
575
  Get the cost of a remote inference job.
574
576
 
@@ -593,6 +595,7 @@ class Coop:
593
595
  job.to_dict(),
594
596
  default=self._json_handle_none,
595
597
  ),
598
+ "iterations": iterations,
596
599
  },
597
600
  )
598
601
  self._resolve_server_response(response)
@@ -28,12 +28,16 @@ class AwsBedrockService(InferenceServiceABC):
28
28
  "ai21.j2-ultra",
29
29
  "ai21.j2-ultra-v1",
30
30
  ]
31
+ _models_list_cache: List[str] = []
31
32
 
32
33
  @classmethod
33
34
  def available(cls):
34
35
  """Fetch available models from AWS Bedrock."""
36
+
37
+ region = os.getenv("AWS_REGION", "us-east-1")
38
+
35
39
  if not cls._models_list_cache:
36
- client = boto3.client("bedrock", region_name="us-west-2")
40
+ client = boto3.client("bedrock", region_name=region)
37
41
  all_models_ids = [
38
42
  x["modelId"] for x in client.list_foundation_models()["modelSummaries"]
39
43
  ]
@@ -80,7 +84,8 @@ class AwsBedrockService(InferenceServiceABC):
80
84
  self.api_token
81
85
  ) # call to check the if env variables are set.
82
86
 
83
- client = boto3.client("bedrock-runtime", region_name="us-west-2")
87
+ region = os.getenv("AWS_REGION", "us-east-1")
88
+ client = boto3.client("bedrock-runtime", region_name=region)
84
89
 
85
90
  conversation = [
86
91
  {
@@ -193,7 +193,7 @@ class Jobs(Base):
193
193
  inference_service=invigilator.model._inference_service_,
194
194
  model=invigilator.model.model,
195
195
  )
196
- costs.append(prompt_cost["cost"])
196
+ costs.append(prompt_cost["cost_usd"])
197
197
 
198
198
  d = Dataset(
199
199
  [
@@ -241,10 +241,25 @@ class Jobs(Base):
241
241
 
242
242
  try:
243
243
  relevant_prices = price_lookup[key]
244
- output_price_per_token = 1 / float(
245
- relevant_prices["output"]["one_usd_buys"]
244
+
245
+ service_input_token_price = float(
246
+ relevant_prices["input"]["service_stated_token_price"]
247
+ )
248
+ service_input_token_qty = float(
249
+ relevant_prices["input"]["service_stated_token_qty"]
250
+ )
251
+ input_price_per_token = service_input_token_price / service_input_token_qty
252
+
253
+ service_output_token_price = float(
254
+ relevant_prices["output"]["service_stated_token_price"]
246
255
  )
247
- input_price_per_token = 1 / float(relevant_prices["input"]["one_usd_buys"])
256
+ service_output_token_qty = float(
257
+ relevant_prices["output"]["service_stated_token_qty"]
258
+ )
259
+ output_price_per_token = (
260
+ service_output_token_price / service_output_token_qty
261
+ )
262
+
248
263
  except KeyError:
249
264
  # A KeyError is likely to occur if we cannot retrieve prices (the price_lookup dict is empty)
250
265
  # Use a sensible default
@@ -254,9 +269,8 @@ class Jobs(Base):
254
269
  warnings.warn(
255
270
  "Price data could not be retrieved. Using default estimates for input and output token prices. Input: $0.15 / 1M tokens; Output: $0.60 / 1M tokens"
256
271
  )
257
-
258
- output_price_per_token = 0.00000015 # $0.15 / 1M tokens
259
- input_price_per_token = 0.00000060 # $0.60 / 1M tokens
272
+ input_price_per_token = 0.00000015 # $0.15 / 1M tokens
273
+ output_price_per_token = 0.00000060 # $0.60 / 1M tokens
260
274
 
261
275
  # Compute the number of characters (double if the question involves piping)
262
276
  user_prompt_chars = len(str(user_prompt)) * get_piping_multiplier(
@@ -279,7 +293,7 @@ class Jobs(Base):
279
293
  return {
280
294
  "input_tokens": input_tokens,
281
295
  "output_tokens": output_tokens,
282
- "cost": cost,
296
+ "cost_usd": cost,
283
297
  }
284
298
 
285
299
  def estimate_job_cost_from_external_prices(
@@ -326,7 +340,7 @@ class Jobs(Base):
326
340
  "system_prompt": system_prompt,
327
341
  "estimated_input_tokens": prompt_cost["input_tokens"],
328
342
  "estimated_output_tokens": prompt_cost["output_tokens"],
329
- "estimated_cost": prompt_cost["cost"],
343
+ "estimated_cost_usd": prompt_cost["cost_usd"],
330
344
  "inference_service": inference_service,
331
345
  "model": model,
332
346
  }
@@ -338,21 +352,21 @@ class Jobs(Base):
338
352
  df.groupby(["inference_service", "model"])
339
353
  .agg(
340
354
  {
341
- "estimated_cost": "sum",
355
+ "estimated_cost_usd": "sum",
342
356
  "estimated_input_tokens": "sum",
343
357
  "estimated_output_tokens": "sum",
344
358
  }
345
359
  )
346
360
  .reset_index()
347
361
  )
348
- df["estimated_cost"] = df["estimated_cost"] * iterations
362
+ df["estimated_cost_usd"] = df["estimated_cost_usd"] * iterations
349
363
  df["estimated_input_tokens"] = df["estimated_input_tokens"] * iterations
350
364
  df["estimated_output_tokens"] = df["estimated_output_tokens"] * iterations
351
365
 
352
366
  estimated_costs_by_model = df.to_dict("records")
353
367
 
354
368
  estimated_total_cost = sum(
355
- model["estimated_cost"] for model in estimated_costs_by_model
369
+ model["estimated_cost_usd"] for model in estimated_costs_by_model
356
370
  )
357
371
  estimated_total_input_tokens = sum(
358
372
  model["estimated_input_tokens"] for model in estimated_costs_by_model
@@ -362,7 +376,7 @@ class Jobs(Base):
362
376
  )
363
377
 
364
378
  output = {
365
- "estimated_total_cost": estimated_total_cost,
379
+ "estimated_total_cost_usd": estimated_total_cost,
366
380
  "estimated_total_input_tokens": estimated_total_input_tokens,
367
381
  "estimated_total_output_tokens": estimated_total_output_tokens,
368
382
  "model_costs": estimated_costs_by_model,
@@ -13,7 +13,7 @@ keywords = [ "LLM", "social science", "surveys", "user research",]
13
13
  license = "MIT"
14
14
  name = "edsl"
15
15
  readme = "README.md"
16
- version = "0.1.37.dev3"
16
+ version = "0.1.37.dev4"
17
17
  [[tool.poetry.packages]]
18
18
  include = "edsl"
19
19
 
@@ -1 +0,0 @@
1
- __version__ = "0.1.37.dev3"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes