From 33469c95ad23a98bbf11008201ec88180f542042 Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 11:14:05 +0200 Subject: [PATCH 01/17] feat: Add new Python SDK project --- argilla-sdk/.github/workflows/argilla-sdk.yml | 136 + argilla-sdk/.github/workflows/docs.yml | 70 + argilla-sdk/.gitignore | 168 ++ argilla-sdk/.pre-commit-config.yaml | 36 + argilla-sdk/LICENSE | 201 ++ argilla-sdk/LICENSE_HEADER | 13 + argilla-sdk/README.md | 55 + argilla-sdk/docs/assets/favicon.ico | Bin 0 -> 15086 bytes .../images/how_to_guides/dataset/fields.png | Bin 0 -> 29203 bytes .../how_to_guides/dataset/float_metadata.png | Bin 0 -> 5489 bytes .../how_to_guides/dataset/guidelines.png | Bin 0 -> 33155 bytes .../dataset/guidelines_description.png | Bin 0 -> 16823 bytes .../dataset/integer_metadata.png | Bin 0 -> 3822 bytes .../how_to_guides/dataset/label_question.png | Bin 0 -> 22241 bytes .../dataset/multilabel_question.png | Bin 0 -> 48649 bytes .../dataset/ranking_question.png | Bin 0 -> 14207 bytes .../how_to_guides/dataset/rating_question.png | Bin 0 -> 23718 bytes .../how_to_guides/dataset/span_question.png | Bin 0 -> 302084 bytes .../how_to_guides/dataset/term_metadata.png | Bin 0 -> 6450 bytes .../how_to_guides/dataset/text_question.png | Bin 0 -> 31550 bytes .../images/how_to_guides/dataset/vectors.png | Bin 0 -> 58491 bytes argilla-sdk/docs/assets/logo.svg | 12 + argilla-sdk/docs/assets/og-doc.png | Bin 0 -> 824798 bytes argilla-sdk/docs/getting_started/faq.md | 7 + .../docs/getting_started/installation.md | 81 + .../docs/getting_started/quickstart.md | 126 + argilla-sdk/docs/how_to_guides/dataset.md | 489 +++ argilla-sdk/docs/how_to_guides/fine_tune.md | 8 + argilla-sdk/docs/how_to_guides/index.md | 75 + .../docs/how_to_guides/metrics/annotator.md | 0 .../docs/how_to_guides/metrics/dataset.md | 0 .../docs/how_to_guides/metrics/model.md | 0 .../docs/how_to_guides/query_export.md | 221 ++ argilla-sdk/docs/how_to_guides/record.md | 466 +++ argilla-sdk/docs/how_to_guides/user.md | 202 ++ argilla-sdk/docs/how_to_guides/workspace.md | 164 + argilla-sdk/docs/index.md | 64 + argilla-sdk/docs/integrations/index.md | 50 + argilla-sdk/docs/overview/changelog.md | 7 + argilla-sdk/docs/overview/community.md | 13 + .../docs/overview/community/contributor.md | 13 + .../docs/overview/community/developer.md | 13 + argilla-sdk/docs/overview/community/index.md | 13 + argilla-sdk/docs/overview/concepts/index.md | 7 + .../docs/overview/installation/index.md | 7 + .../docs/overview/installation/telemetry.md | 7 + .../docs/reference/argilla_sdk/INDEX.md | 0 .../docs/reference/argilla_sdk/SUMMARY.md | 16 + .../docs/reference/argilla_sdk/client.md | 50 + .../argilla_sdk/datasets/dataset_records.md | 132 + .../argilla_sdk/datasets/datasets.md | 45 + .../reference/argilla_sdk/records/metadata.md | 34 + .../reference/argilla_sdk/records/records.md | 68 + .../argilla_sdk/records/responses.md | 66 + .../argilla_sdk/records/suggestions.md | 75 + .../reference/argilla_sdk/records/vectors.md | 74 + .../docs/reference/argilla_sdk/search.md | 54 + .../reference/argilla_sdk/settings/fields.md | 40 + .../argilla_sdk/settings/metadata_property.md | 82 + .../argilla_sdk/settings/questions.md | 88 + .../argilla_sdk/settings/settings.md | 40 + .../reference/argilla_sdk/settings/vectors.md | 34 + .../docs/reference/argilla_sdk/users.md | 34 + .../docs/reference/argilla_sdk/workspaces.md | 30 + argilla-sdk/docs/scripts/gen_ref_pages.py | 54 + argilla-sdk/docs/stylesheets/extra.css | 29 + .../docs/stylesheets/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes .../stylesheets/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../stylesheets/fonts/fontawesome-webfont.svg | 2671 +++++++++++++++++ .../stylesheets/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes argilla-sdk/docs/stylesheets/old.css | 1013 +++++++ argilla-sdk/docs/tutorials/index.md | 90 + argilla-sdk/docs/tutorials/rag_llm.md | 13 + .../tutorials/rag_rankers_and_retrievers.md | 7 + argilla-sdk/mkdocs.yml | 149 + argilla-sdk/pdm.lock | 2539 ++++++++++++++++ argilla-sdk/pyproject.toml | 70 + argilla-sdk/src/argilla_sdk/__init__.py | 26 + argilla-sdk/src/argilla_sdk/_api/__init__.py | 22 + argilla-sdk/src/argilla_sdk/_api/_base.py | 60 + argilla-sdk/src/argilla_sdk/_api/_client.py | 135 + argilla-sdk/src/argilla_sdk/_api/_datasets.py | 122 + argilla-sdk/src/argilla_sdk/_api/_fields.py | 96 + .../src/argilla_sdk/_api/_http/__init__.py | 16 + .../src/argilla_sdk/_api/_http/_client.py | 44 + .../src/argilla_sdk/_api/_http/_helpers.py | 32 + argilla-sdk/src/argilla_sdk/_api/_metadata.py | 94 + .../src/argilla_sdk/_api/_questions.py | 123 + argilla-sdk/src/argilla_sdk/_api/_records.py | 237 ++ argilla-sdk/src/argilla_sdk/_api/_users.py | 119 + argilla-sdk/src/argilla_sdk/_api/_vectors.py | 84 + .../src/argilla_sdk/_api/_workspaces.py | 127 + argilla-sdk/src/argilla_sdk/_constants.py | 16 + .../src/argilla_sdk/_exceptions/__init__.py | 18 + .../src/argilla_sdk/_exceptions/_api.py | 85 + .../src/argilla_sdk/_exceptions/_base.py | 33 + .../src/argilla_sdk/_exceptions/_metadata.py | 19 + .../argilla_sdk/_exceptions/_serialization.py | 19 + .../src/argilla_sdk/_exceptions/_settings.py | 19 + .../src/argilla_sdk/_helpers/__init__.py | 15 + .../src/argilla_sdk/_helpers/_dataclasses.py | 28 + .../src/argilla_sdk/_helpers/_iterator.py | 37 + argilla-sdk/src/argilla_sdk/_helpers/_log.py | 34 + .../src/argilla_sdk/_helpers/_mixins.py | 71 + .../argilla_sdk/_helpers/_resource_repr.py | 72 + .../src/argilla_sdk/_models/__init__.py | 63 + argilla-sdk/src/argilla_sdk/_models/_base.py | 35 + .../src/argilla_sdk/_models/_dataset.py | 48 + .../argilla_sdk/_models/_record/__init__.py | 14 + .../argilla_sdk/_models/_record/_metadata.py | 27 + .../argilla_sdk/_models/_record/_record.py | 59 + .../argilla_sdk/_models/_record/_response.py | 52 + .../_models/_record/_suggestion.py | 39 + .../argilla_sdk/_models/_record/_vector.py | 34 + .../src/argilla_sdk/_models/_resource.py | 38 + .../src/argilla_sdk/_models/_search.py | 104 + .../argilla_sdk/_models/_settings/__init__.py | 14 + .../argilla_sdk/_models/_settings/_fields.py | 60 + .../_models/_settings/_metadata.py | 129 + .../_models/_settings/_questions/__init__.py | 35 + .../_models/_settings/_questions/_base.py | 62 + .../_settings/_questions/_label_selection.py | 53 + .../_questions/_multi_label_selection.py | 33 + .../_models/_settings/_questions/_ranking.py | 40 + .../_models/_settings/_questions/_rating.py | 40 + .../_models/_settings/_questions/_span.py | 56 + .../_models/_settings/_questions/_text.py | 25 + .../argilla_sdk/_models/_settings/_vectors.py | 55 + argilla-sdk/src/argilla_sdk/_models/_user.py | 58 + .../src/argilla_sdk/_models/_workspace.py | 36 + argilla-sdk/src/argilla_sdk/_resource.py | 141 + argilla-sdk/src/argilla_sdk/client.py | 333 ++ .../src/argilla_sdk/datasets/__init__.py | 17 + .../src/argilla_sdk/datasets/_export.py | 140 + .../src/argilla_sdk/datasets/_resource.py | 226 ++ .../src/argilla_sdk/records/__init__.py | 19 + .../argilla_sdk/records/_dataset_records.py | 504 ++++ .../src/argilla_sdk/records/_io/__init__.py | 18 + .../src/argilla_sdk/records/_io/_datasets.py | 79 + .../src/argilla_sdk/records/_io/_generic.py | 109 + .../src/argilla_sdk/records/_io/_json.py | 59 + .../src/argilla_sdk/records/_resource.py | 409 +++ .../src/argilla_sdk/records/_search.py | 129 + argilla-sdk/src/argilla_sdk/responses.py | 193 ++ .../src/argilla_sdk/settings/__init__.py | 18 + .../src/argilla_sdk/settings/_common.py | 89 + .../src/argilla_sdk/settings/_field.py | 159 + .../src/argilla_sdk/settings/_metadata.py | 238 ++ .../src/argilla_sdk/settings/_question.py | 445 +++ .../src/argilla_sdk/settings/_resource.py | 401 +++ argilla-sdk/src/argilla_sdk/suggestions.py | 163 + argilla-sdk/src/argilla_sdk/users/__init__.py | 17 + .../src/argilla_sdk/users/_resource.py | 193 ++ argilla-sdk/src/argilla_sdk/vectors.py | 83 + .../src/argilla_sdk/workspaces/__init__.py | 17 + .../src/argilla_sdk/workspaces/_resource.py | 201 ++ argilla-sdk/tests/integration/conftest.py | 36 + .../tests/integration/test_add_records.py | 668 +++++ .../tests/integration/test_create_datasets.py | 94 + .../integration/test_dataset_workspace.py | 153 + .../tests/integration/test_empty_settings.py | 81 + .../tests/integration/test_export_dataset.py | 125 + .../tests/integration/test_export_records.py | 302 ++ .../tests/integration/test_list_records.py | 88 + .../integration/test_listing_datasets.py | 35 + .../tests/integration/test_manage_users.py | 42 + .../integration/test_manage_workspaces.py | 55 + .../tests/integration/test_metadata.py | 142 + .../integration/test_publish_datasets.py | 76 + .../tests/integration/test_query_records.py | 119 + .../integration/test_ranking_questions.py | 61 + .../tests/integration/test_update_records.py | 128 + argilla-sdk/tests/integration/test_vectors.py | 143 + .../tests/unit/api/http/test_http_client.py | 64 + argilla-sdk/tests/unit/conftest.py | 21 + ...est_record_export_import_compatibillity.py | 67 + ...t_settings_export_import_compatibillity.py | 85 + .../tests/unit/helpers/test_resource_repr.py | 57 + argilla-sdk/tests/unit/test_interface.py | 36 + .../tests/unit/test_record_ingestion.py | 225 ++ .../tests/unit/test_record_responses.py | 132 + .../tests/unit/test_record_suggestions.py | 40 + .../unit/test_resources/test_datasets.py | 318 ++ .../tests/unit/test_resources/test_fields.py | 54 + .../unit/test_resources/test_questions.py | 142 + .../tests/unit/test_resources/test_records.py | 62 + .../tests/unit/test_resources/test_users.py | 284 ++ .../unit/test_resources/test_workspaces.py | 248 ++ .../test_multi_label_question.py | 35 + .../tests/unit/test_settings/test_settings.py | 106 + .../test_settings/test_settings_fields.py | 65 + .../test_settings/test_settings_questions.py | 72 + .../unit/test_settings/test_span_question.py | 49 + .../unit/test_settings/test_terms_metadata.py | 77 + 196 files changed, 22320 insertions(+) create mode 100644 argilla-sdk/.github/workflows/argilla-sdk.yml create mode 100644 argilla-sdk/.github/workflows/docs.yml create mode 100644 argilla-sdk/.gitignore create mode 100644 argilla-sdk/.pre-commit-config.yaml create mode 100644 argilla-sdk/LICENSE create mode 100644 argilla-sdk/LICENSE_HEADER create mode 100644 argilla-sdk/README.md create mode 100644 argilla-sdk/docs/assets/favicon.ico create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/fields.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/float_metadata.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/guidelines.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/guidelines_description.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/integer_metadata.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/label_question.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/multilabel_question.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/ranking_question.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/rating_question.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/span_question.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/term_metadata.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/text_question.png create mode 100644 argilla-sdk/docs/assets/images/how_to_guides/dataset/vectors.png create mode 100644 argilla-sdk/docs/assets/logo.svg create mode 100644 argilla-sdk/docs/assets/og-doc.png create mode 100644 argilla-sdk/docs/getting_started/faq.md create mode 100644 argilla-sdk/docs/getting_started/installation.md create mode 100644 argilla-sdk/docs/getting_started/quickstart.md create mode 100644 argilla-sdk/docs/how_to_guides/dataset.md create mode 100644 argilla-sdk/docs/how_to_guides/fine_tune.md create mode 100644 argilla-sdk/docs/how_to_guides/index.md create mode 100644 argilla-sdk/docs/how_to_guides/metrics/annotator.md create mode 100644 argilla-sdk/docs/how_to_guides/metrics/dataset.md create mode 100644 argilla-sdk/docs/how_to_guides/metrics/model.md create mode 100644 argilla-sdk/docs/how_to_guides/query_export.md create mode 100644 argilla-sdk/docs/how_to_guides/record.md create mode 100644 argilla-sdk/docs/how_to_guides/user.md create mode 100644 argilla-sdk/docs/how_to_guides/workspace.md create mode 100644 argilla-sdk/docs/index.md create mode 100644 argilla-sdk/docs/integrations/index.md create mode 100644 argilla-sdk/docs/overview/changelog.md create mode 100644 argilla-sdk/docs/overview/community.md create mode 100644 argilla-sdk/docs/overview/community/contributor.md create mode 100644 argilla-sdk/docs/overview/community/developer.md create mode 100644 argilla-sdk/docs/overview/community/index.md create mode 100644 argilla-sdk/docs/overview/concepts/index.md create mode 100644 argilla-sdk/docs/overview/installation/index.md create mode 100644 argilla-sdk/docs/overview/installation/telemetry.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/INDEX.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/SUMMARY.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/client.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/records/metadata.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/records/records.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/records/responses.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/records/vectors.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/search.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/settings/fields.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/settings/questions.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/settings/settings.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/users.md create mode 100644 argilla-sdk/docs/reference/argilla_sdk/workspaces.md create mode 100644 argilla-sdk/docs/scripts/gen_ref_pages.py create mode 100644 argilla-sdk/docs/stylesheets/extra.css create mode 100644 argilla-sdk/docs/stylesheets/fonts/FontAwesome.otf create mode 100644 argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.eot create mode 100644 argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.svg create mode 100644 argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.ttf create mode 100644 argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.woff create mode 100644 argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.woff2 create mode 100644 argilla-sdk/docs/stylesheets/old.css create mode 100644 argilla-sdk/docs/tutorials/index.md create mode 100644 argilla-sdk/docs/tutorials/rag_llm.md create mode 100644 argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md create mode 100644 argilla-sdk/mkdocs.yml create mode 100644 argilla-sdk/pdm.lock create mode 100644 argilla-sdk/pyproject.toml create mode 100644 argilla-sdk/src/argilla_sdk/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_base.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_client.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_datasets.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_fields.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_http/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_http/_client.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_metadata.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_questions.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_records.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_users.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_vectors.py create mode 100644 argilla-sdk/src/argilla_sdk/_api/_workspaces.py create mode 100644 argilla-sdk/src/argilla_sdk/_constants.py create mode 100644 argilla-sdk/src/argilla_sdk/_exceptions/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_exceptions/_api.py create mode 100644 argilla-sdk/src/argilla_sdk/_exceptions/_base.py create mode 100644 argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py create mode 100644 argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py create mode 100644 argilla-sdk/src/argilla_sdk/_exceptions/_settings.py create mode 100644 argilla-sdk/src/argilla_sdk/_helpers/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py create mode 100644 argilla-sdk/src/argilla_sdk/_helpers/_iterator.py create mode 100644 argilla-sdk/src/argilla_sdk/_helpers/_log.py create mode 100644 argilla-sdk/src/argilla_sdk/_helpers/_mixins.py create mode 100644 argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_base.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_dataset.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_record/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_record/_record.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_record/_response.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_record/_vector.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_resource.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_search.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_user.py create mode 100644 argilla-sdk/src/argilla_sdk/_models/_workspace.py create mode 100644 argilla-sdk/src/argilla_sdk/_resource.py create mode 100644 argilla-sdk/src/argilla_sdk/client.py create mode 100644 argilla-sdk/src/argilla_sdk/datasets/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/datasets/_export.py create mode 100644 argilla-sdk/src/argilla_sdk/datasets/_resource.py create mode 100644 argilla-sdk/src/argilla_sdk/records/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/records/_dataset_records.py create mode 100644 argilla-sdk/src/argilla_sdk/records/_io/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/records/_io/_datasets.py create mode 100644 argilla-sdk/src/argilla_sdk/records/_io/_generic.py create mode 100644 argilla-sdk/src/argilla_sdk/records/_io/_json.py create mode 100644 argilla-sdk/src/argilla_sdk/records/_resource.py create mode 100644 argilla-sdk/src/argilla_sdk/records/_search.py create mode 100644 argilla-sdk/src/argilla_sdk/responses.py create mode 100644 argilla-sdk/src/argilla_sdk/settings/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/settings/_common.py create mode 100644 argilla-sdk/src/argilla_sdk/settings/_field.py create mode 100644 argilla-sdk/src/argilla_sdk/settings/_metadata.py create mode 100644 argilla-sdk/src/argilla_sdk/settings/_question.py create mode 100644 argilla-sdk/src/argilla_sdk/settings/_resource.py create mode 100644 argilla-sdk/src/argilla_sdk/suggestions.py create mode 100644 argilla-sdk/src/argilla_sdk/users/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/users/_resource.py create mode 100644 argilla-sdk/src/argilla_sdk/vectors.py create mode 100644 argilla-sdk/src/argilla_sdk/workspaces/__init__.py create mode 100644 argilla-sdk/src/argilla_sdk/workspaces/_resource.py create mode 100644 argilla-sdk/tests/integration/conftest.py create mode 100644 argilla-sdk/tests/integration/test_add_records.py create mode 100644 argilla-sdk/tests/integration/test_create_datasets.py create mode 100644 argilla-sdk/tests/integration/test_dataset_workspace.py create mode 100644 argilla-sdk/tests/integration/test_empty_settings.py create mode 100644 argilla-sdk/tests/integration/test_export_dataset.py create mode 100644 argilla-sdk/tests/integration/test_export_records.py create mode 100644 argilla-sdk/tests/integration/test_list_records.py create mode 100644 argilla-sdk/tests/integration/test_listing_datasets.py create mode 100644 argilla-sdk/tests/integration/test_manage_users.py create mode 100644 argilla-sdk/tests/integration/test_manage_workspaces.py create mode 100644 argilla-sdk/tests/integration/test_metadata.py create mode 100644 argilla-sdk/tests/integration/test_publish_datasets.py create mode 100644 argilla-sdk/tests/integration/test_query_records.py create mode 100644 argilla-sdk/tests/integration/test_ranking_questions.py create mode 100644 argilla-sdk/tests/integration/test_update_records.py create mode 100644 argilla-sdk/tests/integration/test_vectors.py create mode 100644 argilla-sdk/tests/unit/api/http/test_http_client.py create mode 100644 argilla-sdk/tests/unit/conftest.py create mode 100644 argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py create mode 100644 argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py create mode 100644 argilla-sdk/tests/unit/helpers/test_resource_repr.py create mode 100644 argilla-sdk/tests/unit/test_interface.py create mode 100644 argilla-sdk/tests/unit/test_record_ingestion.py create mode 100644 argilla-sdk/tests/unit/test_record_responses.py create mode 100644 argilla-sdk/tests/unit/test_record_suggestions.py create mode 100644 argilla-sdk/tests/unit/test_resources/test_datasets.py create mode 100644 argilla-sdk/tests/unit/test_resources/test_fields.py create mode 100644 argilla-sdk/tests/unit/test_resources/test_questions.py create mode 100644 argilla-sdk/tests/unit/test_resources/test_records.py create mode 100644 argilla-sdk/tests/unit/test_resources/test_users.py create mode 100644 argilla-sdk/tests/unit/test_resources/test_workspaces.py create mode 100644 argilla-sdk/tests/unit/test_settings/test_multi_label_question.py create mode 100644 argilla-sdk/tests/unit/test_settings/test_settings.py create mode 100644 argilla-sdk/tests/unit/test_settings/test_settings_fields.py create mode 100644 argilla-sdk/tests/unit/test_settings/test_settings_questions.py create mode 100644 argilla-sdk/tests/unit/test_settings/test_span_question.py create mode 100644 argilla-sdk/tests/unit/test_settings/test_terms_metadata.py diff --git a/argilla-sdk/.github/workflows/argilla-sdk.yml b/argilla-sdk/.github/workflows/argilla-sdk.yml new file mode 100644 index 0000000000..1ec8e64110 --- /dev/null +++ b/argilla-sdk/.github/workflows/argilla-sdk.yml @@ -0,0 +1,136 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python +name: Build and publish the `argilla-sdk` python package + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + workflow_dispatch: + inputs: + release: + description: "If true, the workflow will publish the package to PyPI. Default is false." + default: false + + push: + branches: [ "main" ] + + pull_request: + branches: [ "main" ] + + release: + types: + - "published" + +jobs: + build: + services: + argilla-quickstart: + image: argilla/argilla-quickstart:main + ports: + - 6900:6900 + env: + ANNOTATOR_USERNAME: annotator + OWNER_USERNAME: argilla + OWNER_API_KEY: argilla.apikey + ADMIN_USERNAME: admin + ADMIN_API_KEY: admin.apikey + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] + steps: + - uses: actions/checkout@v4 + - name: Setup PDM + uses: pdm-project/setup-pdm@v4 + with: + python-version: ${{ matrix.python-version }} + cache: true + cache-dependency-path: | + pyproject.toml + - name: Install dependencies + run: | + pdm install + - name: Wait for argilla-quickstart to start + run: | + while ! curl -XGET http://localhost:6900/api/_status; do sleep 5; done + - name: Run unit tests + run: | + pdm run test tests/unit + - name: Run integration tests + run: | + pdm run test tests/integration + - name: Build package + run: | + pdm build + - name: Upload artifact + uses: actions/upload-artifact@v4 + # Upload the package to be used in the next jobs only once + if: ${{ matrix.python-version == '3.8' }} + with: + name: argilla-sdk + path: dist + + # This job will publish argilla-sdk package into PyPI repository + publish_release: + name: Publish Release + runs-on: ubuntu-latest + if: github.event_name == 'workflow_dispatch' + needs: + - build + + permissions: + # This permission is needed for private repositories. + # contents: read + # IMPORTANT: this permission is mandatory for trusted publishing on PyPI + id-token: write + # This permission is needed for creating tags + contents: write + + defaults: + run: + shell: bash -l {0} + + steps: + - name: Checkout Code 🛎 + uses: actions/checkout@v4 + + - name: Download python package + uses: actions/download-artifact@v4 + with: + name: argilla-sdk + path: dist + + - name: Setup PDM + uses: pdm-project/setup-pdm@v4 + with: + cache: true + + - name: Read package info + run: | + PACKAGE_VERSION=$(pdm show --version) + PACKAGE_NAME=$(pdm show --name) + echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV + echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV + echo "$PACKAGE_NAME==$PACKAGE_VERSION" + + - name: Create tag + run: | + git config user.name "${{ github.actor }}" + git config user.email "${{ github.actor }}@users.noreply.github.com" + git tag -f -a v${{ env.PACKAGE_VERSION }} -m "Release v${{ env.PACKAGE_VERSION }}" + git push -f origin v${{ env.PACKAGE_VERSION }} + + - name: Publish Package to PyPI test environment 🥪 + run: pdm publish --no-build --repository testpypi + continue-on-error: true + + - name: Test Installing 🍿 + run: | + pip install --index-url https://test.pypi.org/simple --no-deps $PACKAGE_NAME==$PACKAGE_VERSION + + - name: Publish Package to PyPI 🥩 + if: ${{ inputs.release == 'true' }} + run: pdm publish --no-build diff --git a/argilla-sdk/.github/workflows/docs.yml b/argilla-sdk/.github/workflows/docs.yml new file mode 100644 index 0000000000..6389bc0379 --- /dev/null +++ b/argilla-sdk/.github/workflows/docs.yml @@ -0,0 +1,70 @@ +name: Publish documentation + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - main + - gh-pages + tags: + - "**" + + pull_request: + types: + - opened + - edited + - reopened + - synchronize + - ready_for_review + branches: + - main + +jobs: + publish: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10"] + steps: + + - name: checkout docs-site + uses: actions/checkout@v4 + with: + ref: gh-pages + + - uses: actions/checkout@v4 + + - name: Setup Python + uses: pdm-project/setup-pdm@v4 + with: + python-version: ${{ matrix.python-version }} + cache: true + cache-dependency-path: | + pyproject.toml + + - name: Install dependencies + run: | + pdm install + + - name: Set git credentials + run: | + git config --global user.name "${{ github.actor }}" + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + + - run: pdm run mike deploy dev --push + if: github.ref == 'refs/heads/main' + + - run: pdm run mike deploy ${{ github.ref_name }} latest --update-aliases --push + if: startsWith(github.ref, 'refs/tags/') + + - name: Extract branch name + shell: bash + run: echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" | sed 's/\//_/g' >> $GITHUB_OUTPUT + id: extract_branch_name + + - run: pdm run mike deploy ${{ steps.extract_branch_name.outputs.branch_name }} --push + if: startsWith(github.head_ref, 'docs/') diff --git a/argilla-sdk/.gitignore b/argilla-sdk/.gitignore new file mode 100644 index 0000000000..57f80bbc1a --- /dev/null +++ b/argilla-sdk/.gitignore @@ -0,0 +1,168 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +# pdm.lock +.pdm-python +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +.idea/ + +# Mac +.DS_Store + +# vscode +.vscode diff --git a/argilla-sdk/.pre-commit-config.yaml b/argilla-sdk/.pre-commit-config.yaml new file mode 100644 index 0000000000..5bc2b29a18 --- /dev/null +++ b/argilla-sdk/.pre-commit-config.yaml @@ -0,0 +1,36 @@ +repos: + - repo: https://github.com/Lucas-C/pre-commit-hooks + rev: v1.5.4 + hooks: + - id: insert-license + name: "Insert license header in Python source files" + files: \.py$ + exclude: ^docs/snippets/ + args: + - --license-filepath + - LICENSE_HEADER + - --fuzzy-match-generates-todo + + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.1.4 + hooks: + - id: ruff + args: + - --fix + - id: ruff-format + + - repo: https://github.com/kynan/nbstripout + rev: 0.7.1 + hooks: + - id: nbstripout + files: \.ipynb$ + args: + - --keep-count + - --keep-output + # - --keep-prompt-number + # - --keep-cell-ids + # - --keep-markdown + # - --keep-output-timestamp + # - --keep-execution-count + # - --keep-metadata + # - --keep-version diff --git a/argilla-sdk/LICENSE b/argilla-sdk/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/argilla-sdk/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/argilla-sdk/LICENSE_HEADER b/argilla-sdk/LICENSE_HEADER new file mode 100644 index 0000000000..034ee436ee --- /dev/null +++ b/argilla-sdk/LICENSE_HEADER @@ -0,0 +1,13 @@ +Copyright 2024-present, Argilla, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/argilla-sdk/README.md b/argilla-sdk/README.md new file mode 100644 index 0000000000..92c8a80709 --- /dev/null +++ b/argilla-sdk/README.md @@ -0,0 +1,55 @@ +## `argilla-sdk` + +The argilla-sdk is an experimental project to rebuild Argilla's python client in a simpler and friendlier way. The goal is to have a minimal set of core features that are easy to use and understand, but also contribute to feedback task that build quality data. + +!!! warning + This project is still in development and is not yet ready for production use. + +### Installation + +Since this package is not yet published on PyPi, you can install it directly from the repository: + +```console +pip install git+https://github.com/argilla-io/argilla-python.git +``` + +### Usage + +To use the client, you need to import the `Argilla` class and instantiate it with the API URL and API key. You can use this SDK with any stable release of argilla server >= 1.27. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="http://localhost:6900", api_key="argilla.apikey") +``` + +### Developer documentation + +If you want to contribute to the development of the SDK, you can follow the instructions below. + +#### Installation + +To install the development dependencies, run the following command: + +```console +# install pdm https://github.com/pdm-project/pdm +pip install pdm + +# install the package in editable mode +pip install -e . + +# install the development dependencies with pdm +pdm install --dev +``` + +#### Generating Documentation + +To generate the docs you will need to install the development dependencies, and run the following command to create the development server with `mkdocs`: + +```console +mkdocs serve +``` + +You will find the built documentation in `http://localhost:8000/argilla-python/`. + +The docs will be deployed for pull request branches automatically. diff --git a/argilla-sdk/docs/assets/favicon.ico b/argilla-sdk/docs/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..127ce656355b53ed4b44b67e156d02c3ace59c79 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/fields.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/fields.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5d8ebe1da2c858bd768704987383ddd813c4a2 GIT binary patch literal 29203 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/float_metadata.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/float_metadata.png new file mode 100644 index 0000000000000000000000000000000000000000..f7cf296069948e8afb144851e4a26b50dbb6cc51 GIT binary patch literal 5489 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/guidelines.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/guidelines.png new file mode 100644 index 0000000000000000000000000000000000000000..5862d94fc9d7ac2574c2fbd2a308c9383ef8cbec GIT binary patch literal 33155 zcmc%wbx@qmxA%=E!QFz(V1eN7Fa!t?f&~cf5Zv7ccXzh{!QGv~-QAtw?lyC{_x|mB zpQq0G^L^^Ax<Ixpd*@3a z^;P7jtIlaVhO3ft$NjUA>I88m$xhz>pL5>AW{uDMoZ~V`FhYB|e=5ah?7klZ3i#ub zsOlqT??{eqaSM|*P%>HnE>s@x8fPlcz_cYORaJ2j<50lf|{d=48`uk-DZyX~ZazwxXTp?ydP#UN- zCalPRu3pXn8pyvTShmQVP~rc%2P-0DXu2)`zm;bQ(jIXBt=!8Q^#9H{H8hpO#NaT>2V`%K zjTDT9F1ed`GC52ID#E!XJ~4e%r7dWHeLy<#Bw$Kk`2meXF|#otIsJGmd~E~%zo?&Pt;WB{i$vPT?)R2S2of&ZhN5$F9?-mK#XX!kMjx{vEj) zUlRG3o{Jm4MX(Cziz5Z5efM#84F_~+=SWly+WektBV7V#?s&B5(TudL*6}J-IvC=? zW%^*kfLxjM|Mh>Y?mBOK&m*{CJl~H4^!B1l^+XUe&!1vhZ!z5Tbald)c|L?>9Qe1p z5#mi`g!bK6h!@g+rj2{7BCcmFfBk{D1+~{JFDLoLA^oGH22HNq<$xt<(<2Wp@}9Y0 zh9Wa^&&~F;wVV4vOy-_huo5rtw6A1fi{MVEhdBV!8#q2-p}^eM@Ix_bc|c(6>6c(~ zg4^e1d<4lg*bg>U7V7I+9QqF~W#U%ip=!ZTPI9oks;$AG@9IlaE|ioD&3J2oe(X=h zv>y)e##zqEyp=_Af_X)OyubJof6n%J>3vq%V4FQP;Xg5cl5?>zl_9In<){Xv##9np z+4JXQS#@W<-```w{X8?qs2S8h=1H)f!1q6v+xwHc5C=NBwGo1|l}3+(%9E7a-Hq;i z(^HtmtBp$Kx`<-aiS#VLyoI3)w?oNcI~#iUWMrz;G4g6epp(RXaQMYD9;ZijSKs-t zotbbzLR>!1RFjWEM6JwtFj_G(FLj z*Dg5c2BK28K5=wsEkLvsP<<^Hg^OB!N4N1h@!L93sThtS=Hs!(X zG4Nw;{t)_Ep*+Q$Z4X zoJVVlL*pzV72cBS(Y~g^EsU`fxv%o&VaqCxUlGQK3SmEJE3R?7<>ButNnMB3vy8N$ zwe?mQnK3lFs)rF|i+iL8T%+WYdOarKRo5tAwRG;fR@!F0Mrv0o$Rjmt!^yy3rKXUn z-1cek6P}YCU?OUhaQp%}ZrU7x@?Y z$H{YjC^LiDq0=Xk#%t#JL!FCX<63YS=#fM0zMcIiB48bzMlh3SP03fWkKww1 z8qhfmLGu)3WSPR~Y}~*gNUH)BD+p5MNFE9~ZCfC$**tG2U0WCi)LRKSpIiE=Kgu-& zF$|Q0#SUHS<;l}qQh!)6DO>(A`C6=O$re@3PffK8h0!|E9f9GpyP6&=?-@3_5@AMs zyztnnN0%lwPk__5l2{Ytx)MQcehpVKte1GkuQ~UCCiI;HY!~G><=Zc6u~ncJxbd63 zPt!!ROa>eGkK3w00;0A8wrNprlT=R57JW+6Szg!S|DEib$xU#ezbi4i+rZ{sj9*?t z1@2rjk&Ilb;)TGz`w=OOS%O0M=$DT{f{#kr;~AYkRVUsM%a0}draX8CSr_M;Vyh#s zJ+z<$kDm9>JKfKFBUKM~cy^+hxaxCE0Jnt^00+5iuKbJ3I^!Ov>X&HBYtcssbY2eF z?2Gf&?k1#q9|#^tx;XHV=cKf=nQ?x)us$0z2&TIZ!b?(K zVxJ5piHcrQ^~ZYTg25@tD)Xb54Nh7KeEmQ))i8&&p!a#t0`cFzDP@w#zQEX?-i2j9 zk+DctU*NcGZz$H0Vvo06r1!KbosGy6bc~JsXzLA1T6ks)p;W`0`(0nEtfl{D5JV?a z8gJXD+#~_{Y_E`|MI6TJ5*s+AblKPh&k%Tj7>;T%t%ZYyGA^c2U7~fTdQHyYQjSy| z7b)GiCA=z7{aDDw%0A`-Zo`XA{M59D2gZN*uY;{P`hkfqy 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 Jlvm5^{{UG32D1PF literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/guidelines_description.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/guidelines_description.png new file mode 100644 index 0000000000000000000000000000000000000000..581c0f1b0437b4607b615de2e9a469fdcb2d7f04 GIT binary patch literal 16823 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/integer_metadata.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/integer_metadata.png new file mode 100644 index 0000000000000000000000000000000000000000..9e671ffff22abc4879829f6c7b5c98773c688036 GIT binary patch literal 3822 zcmchado+}5`^SeuDRe+ZIg}0vg`pzHoVU}=FwT>Z3`050Xs>#^1=_>+^ zci*&jj{t!rJANHPona(@;3nDTiYe^2504f7hjf6#+wbhXf}3h^(Ef`_e~4M$-{-XW zK$(1ADEW##toD9;+i$LU7N=jk3|4j~Is4(A^{ipP{ZX{j)Z&Um!0rc!eL12>a^&wG z5q<0%vk_fh@M2d)q>G?Ag)LPciE**VNUSiR3mXj2%OW{BIpvHhPkGP}Qnf{zY&#UR z=xC~@aa$5Jp}JQ==%w8qX%J;U1k`M4Ewm`7Eb=n=e*&@>3A!KVhHLy>y}gfp2$FMg zadCBbpQRIPR{5;p*j4UsAE8B?sZ5AT%L>Dj9x>B<)q$_NZzZ}jLs4q_ar_3aPA{^-5O5!{6%R(cRPjl<4JY^b8Ku zXw$c>+{+V-dlB^Ml)9>FO(Aw&_3@*Y>yBk2eN_B)28JCUxI;|x#U8EZk39x4f03#@ zXkD^eK3vJyn%<3W6|Pm|wWu-r2%pvDjk-4ZDrNO+hOx&O9aRM-I=DJHeP;C6Dq?@M z8*OlP;9tLuH&9W-)$NgmljTsNS5;tlt_C@p7}bPX2rVrwMK69fo&Q*z9KXFbLr3#G z1g)cGi}8IHg{7woCy1>)b#?WM_^_duxtiW{^b*gyP?~by8Wt}Y=o_SMy<9UB0;5KC z<HutC5iMd zW@U~ee2%aqVQYPbAFtKK)n;yfYF__F?dYR~ZAhOTrDqs#4~yiX?+8N*OW7{kY{x;z zvSV=e>JFQ{BTiC=izesv3*5|Y#Y)Vsy~|YA3!k!vH_2U&c_DM?P?MYu33wNDw?^G? zk!kXHj7P%qbWi9=SliY#Qs?X2^ax{OQ9ZC3yd^CEqG`u(tVS&qgP`~B#0dC2BgchU z9*sG=IN8BU@bDX=#Y3E(eLL<-L=+ZBMba-sFA-4e*2`{R$LB_|O7Fw>I~@qNEew|;3N@R7;{6NnPYb-x4h3n}Q} zU6?n_&Y7K_q)C`@HlQ`3dB_Z-b&`FdQ41Pry@*T4D%$5uhvb`zZjO*Ry1uV=G8Hc; zY;Rr-jjXww{i@Wj^C3CE>^gj!Q08o&Wa*3dfKPLx!7DKHG&55oRw?RsDwN(%RMODW zlJdbx&L9%DX!IS;K$`gH3D<9$3(HwIdhK-KDwi6mcz+i+=#tT+2KJ$GJre!YKu1jG z{DG}v^VIPRX?@u=l5X%Uf$G^=Hu^8{~ z-GkXq(k#R-Z z0-Z$Fi(c~A*IE{Y&GE#-HTJ4S;jMD06e-tbOR&faOPB606AHP|s#=-Oy4fMYpdgI( zDdnU#-j;w}*R;?&2DW$UfEF?IW%rn%uTgALUKtg=70q6c)g{~ZoDjhwkHnDIZXv+; zY}@>v=%IFEG(EGm#$c`b-kt-`-Ja`~p@%*{=_L*9QxVU&FKwkzOJBU z)1+Y;?#0o}%~VrYk4Py6Hi0V)CjB8r%K>*O;IzZj>JqDr##aMC!LQoXI`cPW;SFg= zA!;gWXIV`csp*$+HQf!t0w(3;ELg3}JN$|U=FbfRY>1J+cl#Gtyl=LPgchDW#?icp z&ux0AT-uuGTIC@^`D`F_m`5d)jGwg24nK5}Fz7KTs&wQ9<=VHqA>r9g{`VpL!%3k3 z6@g#*@R%@r-q<)QdF+xu0B#cQFOOv%oMH5UUg-D@12p$XhqjU@hr067uEseRSVt!ElRU;%|k?6;3Dai(G1JIjp(7H{Ol3i!03Ph}%IeTIH^d73m%civd0vN<;g?o(`;Qn|U*t%d%% zC1~pJ6|gXfbAlHD21h>R>+o0@HchK-bHJ7C6$Dg_enjVb{r-Wa_ooYonTP}wpd?hF z?jxhLU>*Rz)rr^z_jyJYZ-t4VXml6A=!!All;sU?S8qhWJ`tu|Iu}XtY3aRqc6(!? ztq#o_9r;De^!q(e^f7^Y;4ND_yJTA8UFdLjc6R+i#7r+Pxq+x!PYCRL#;>Wa{z$I> zB95trofitva!nBBFL`;H5SR6uP6cYpo_-(qBVQ`p+W};qL_p9tYc%FF0V~J zB9E&Tt*`Rtb5kSnF2*^R*yR>)w8DB?bb{+g~oT0v<=N*Qlft2e1plyNs? zV1xMZ6I#lpMbUs!LIFD3{`3>Bpg@ry66K**4GWN*75{@=_H<uY zgUl8{sx8$3f0<*;%mPN)p5!Rwt-n6O)>YCq6>PcM$Wy~$86j5=VUPxn~+zvNqUey52qRsnOMP9`qm*7%TrPO?8drgNKdA+lh{`)pp#6O`*~?Z?Z-3ERUYyDYhs^>t{T z7zLzaZdu}wzzh92$?S~dDvN+_ zJt%b)2Zg6(3V#Nhi6=65se*h?5J0!n|NjH(mF4BTp9v?1eb|;tTgkm>c8@~`{!u|T M77ka)W>=H`0YuJl0RR91 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/label_question.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/label_question.png new file mode 100644 index 0000000000000000000000000000000000000000..35420391b95f6e63ced714bcd5491aa94a7231e4 GIT binary patch literal 22241 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 aVhMBMoi;`Re_-QhKK6D_w#C*z|NC#(q#92E literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/multilabel_question.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/multilabel_question.png new file mode 100644 index 0000000000000000000000000000000000000000..a5156a54afb46f8cbc19cb09fd205eaff4156f17 GIT binary patch literal 48649 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/ranking_question.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/ranking_question.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5242ffdfd614124f9e9e53a1569ba993e379c7 GIT binary patch literal 14207 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 DVmj*Y literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/rating_question.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/rating_question.png new file mode 100644 index 0000000000000000000000000000000000000000..4f97e2a86135f2de220227002ae951b880d0fcfe GIT binary patch literal 23718 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%0Aq2OY)&c#owA#oToAU^s@LBQ z#medJFB2lB>jXp1x}idrAKXtZ=v z*X(GN>XA2o>YbBR+Nd2jA{!*kVzP)3ZZVzUdN?FoQRvv4Vh_6EC#IKKf?Z3+Spl4y z&~hB&TtqYiqBKlRA)smG%dCuCFC4%(R_T*mXdd?`Gr9=;e=W_WVmj+a~9u+*RLeX4edznc_SE z(kCjV44~{+3+@0@3@H~z4N!5_E))JExg0# zmK4cbG`0oR+PK)Vth&ZgrR`nS>c5wuG|0?vqy)>9_qi&2&R78y`|F8JVf5l0-D)d9 z-|iaSminm1gTirRqI|1uE=@i577vIVXU{PE5h_f6%A2SaW>+EZG^{87;+VRj?3%|!Gj90!G_c@q}lZIci9rd zW#vY#g;|D$r<{i&An}z--IscUY64Qa^V${P+tw6&@DQHu$DLBC3E|wwi;?M= zF>m^Xc)B_VBZ?49YwGTPrDkx70)HeEy~nkJIokfT=>;bNE-f>)8qp_?wNyE#g^l^( z#S&i`eY`_Lk#FS>>X~~bkxIhn)2+uZn7-(lBsaBsXHWHtND1Xd`cmF3`|*srj|$J= zAQ*gugBe!ZK9B6ke($rMF#&O3xwne@M!UhGCS`crBldPFHm})coqhpLWg}1#4M8I_ z`a2gp@mxpJX2C&&!gn7Fqo4q!Tk&yBzL&=n4RmhHJXynyD94d1%DeiG!Y?2v zwGmyp=?tTx4#^3*duWmCjw9xwp!LZxoj39gj>EWu&A~Vo{9h)vaf|oRSVrT6p0cvL z;EL<5G=g)qKFjX+1!YoFZAcw~64e@PTU|sigZm|%PQ9Lv0MdoA@JshJK11YAY|{Il zEA@pjjk$A_X$;kj0`_qYMjR#a55oPY0~T(t=oY# zN{mHb{L(`!qURsarsHS?-1iV|StyAeX9-x8!!LLk19~nK%Zzo=dlE)ZBXNpgm2c&0 zf0#sMw@z7P`aN7r-6l{y|6-xt9R$@rKq3PFl~3im^~x_r-4J!&^hOXguV2(3%;&ej zFXXt*S#%-58iv9zry&0Mm^zA|>Yn67TDo5BfZlRn6F=|JRIGdTok`B0qkCFuqY1`^ zZsuMtr}PPCqY3K>>NVs0^EtNFEKE}GlMc9WjTDNbUp)Bc0;9|LAt4M4^x;8H0||BU z$~*?leY*!){@Evd$dx8xED`Q2Kb!2PcxIgS2WO%4hx9}~b9b@S#IRt_3@1441^?Ip zB#O}kW`&8dPqVxU=u3aAPRjrT5u{Oo&zMJI|>MHYs9W_K%vZ#5NVLv;4otqv0TgB1I;`=LN!s0nGXG zteZ9kBZd&f(+4skvHV{6QPAU+tkc?UiHW1mrwK+C*EU`iff8wmC+RB*&in9y+T!k% zHLAUi3jPJ4CxYa)fz_OIkyG@L$FsnAMOzFMk(GD)dUjxoUlFySHgacVTY#>t+z~8!P-;;P!MYFiL*F=%LcqoH-?M5f_0A&b?8a?0j#zQZ$ zyg7cU#>MLtjsWhR645HV##ok-NF+S2)-#U$8ssd)ta;eKWx#V0HlJf|)780Q` zvZ6FwaXzKNB0rVC#--3XfG3yo{;ux?Vzb!=o`Jt0k5=FYYUGiV|r zD5x;8l@Wj4jibzLQKL3r>GZ=g(+7p=lU40}p;dts4j&=HaK+|FJh&`>6%lZSCM3_w z`FQ7mg~a1mKo7GYN?K61BY1!g5pdB3Z_emx%BqZ!*20AIxuVO4B)vkczfJDD$*eHz z3cUqUTKw&`N_B&u?vr~(W?OYVUv1%-3KtItgHTt7?3xbWdV8T2qQ}(>Q5eB?9$0b9 z9LYKM`0hukA%S~f% z7?rzxlK>Oa6ST?}xyG(Hy9JOc+`%9zJX@4Rm1-YFPP^OT6+r~%>;_NmS{t3v{ZrKa zfP61E0U2GfrYIwrso zUsymg@1pXtH;~`7@`4+8Kc-IoQ>R6v&E-&`tXZkp`Swd+<;_M zjssOkL;$2@Rg;FD1s=LFwr0rLB#aaT#ik=%e;P3;5OlN^i2z0Mr6d(_+x;db_ACdA zsUb^9pBv$Zf`g9AF`g4k2@b4=kc-TE-o!`iA}fSLK}NZHa+KO5dcC|5GCwq3at#iW{+_D%H}L7KxJrw)}%1q}90 zP04Sb#Zf|mQAANw8S+PGB_DKTI0TM8F{b_?GAN*6Ct+rfE7{Plzu4ktwsp zwnl#3dVAzk0L>ZxP3_2O+S!+PJMoYiAg#b(EiWcCx|69w+saonxgZ{hR6k zUpfCTD(ALM19~=Z00nD#1|0f5;B+QvU3AW9u_4dt;dF-MwE*0HTYLo+p3~?er)?UE zIjdJiFl*o?r)>$soYi-i)3$GU)#Fz4d_C|_z<`2_WQ}SxtG!g+ANoW+S2G_Eg5}u` zgTIxjrCdZjg#~uxXCF#yXl&|NV=GR3pk`;THijN)xSjV1xRT zPQ2A)zsD5?9xjf##@W~_Hh4hjhccqh$vj6~s(q5|WQcuFxXQ4Tp|j#~+u}TMK8}^) zbMnMH)5rua-7un`dp~AQ1Go2>ZHYSRXI=}um`!FSF&F4(6P-*nFODu!Y~CxzEDd=3 z4nZHd`RHV}Pf)y)`_3SIiESu|7fmZ8u28($kO#1w9cbC0o2t0U3DNK9r_6kX_uZlNC6RE_e`jI&ln$a|ET3&}liF35duO zn#j4F_Ar(D_hZF@OKab~E7>M{e6jU6@Y5eYKe|2pZ8clHk<=9=Qwul$SDMXtv)7iY z4u!n?D13vffc+8|r}(swW9~fC14?%m`l|+-Xh0dKbUnp{%`0YOkL%4W?Z!ZGq)o%- zWQF%NA*~cs)v4b<(S_X=9zQR8g!zK}p&~n3ssn4xBCQm_)x%V_gGU>$ez~U81^UT&4!cCdYoW$p}D4vs>Ss<9>l+i=ZCdt zt5>r%T1j0k9lyoRvfy3uwyxBlY1i>m_))EK1kCPqZ+C4>8)s0~>)&Iq5 z01G7!3rZU+6W{N4G5iN_+3<%&+oayts+M(qbRS;)tp+GGR4UJ^3O~)Sq+{6|qRAH_ ze9*%=mEpBcnrNp$nR=9_du{PSf^YWI8-Ta`~6a#ZC<>q7wOyjqC(Cvio}m6YmtRo zi`gOX1NRq}T5aqyuO;LlZo)S0|I(c_Z3R8BK{faCj{T>3J2z%BP)aZ*Vk|rsWN=eWzsOHTbueFoyf27M z#Es7R?Y~;Po!&vT7#CAxqQ|C4{*LI{uJ9J`CX}Ma@|X0yf9&heSZq}Bqo!4*f70pJ zu|!f9*s6Ko?4uLa7yS*AVoRDE`QL4M;4R)x^txOnwKZG3C(W$!0eu@xnPe`dvomR6 zWP!s+mAD$LEJ}10q#Lqp-c#HDP;2iCf&Q1CoT>h`@PFnZD3OPm^0KhiaL)R*4qA^AY(Q+DKF3fqW+l1doQGz z9i=y1df691G9jXmasA1(Sns_q%*?LA@$reYxh2e4S;Bt%`nJ{svhqW^_NMC-G1NGm zR$n4BI%i~LLS#*IM3bDdUhWa~Of0)b=6MZWxW%~cPb$e&S>O$vtOi3ejtxS{FvVbC z;W5Q1hM$EMK40MBVX%HbC@Uq!Ia~&}P^aI-89VBmPcja<^_(2fqU!pDcZ4{zwe`8W z_9E}s(Wy9}1}VvsKK1ojFQ=iY(WU#*u&j@dv~;vmf3>v~+_7CSs^no-guXy*&<6U%Lw%uBk( z#a>!on+&Jd+==AB4aITL)+%30{?L1thb zZF#f0{QjoJfZCwCp0JoS>Y|JSN{yE{+-5mFF*Y`6IJu*+)=Sm%uhGN6mOrP$vHH+> z6^_SXX;3>l#yY*#Q|P8AZE~J^@*bW;=@b8gkNaw>%W;Zmv9Pm6%x6N?`bWh2xokwJ z@SY@y6ewo)>~LWro}1e&_d6%UKqu+A+cPOpoK;niv4LZ25&^_y-J&pqf6Gww=*V<; zR5`PBUPQOfBArc_iIH%|jqMG_Z$TkZ{K^xfd1gyGQdp*xB5pv1Lx=w$`zh)vH?ONW z#S&q1)}XQNbhK=HITT(`v{w_7Q|cF>z3^pv-|=vv`Z}A3(s>IP&!q*K*x)SSkMuiG zB&o)iTZO4V%;u(3EFQ;qq|TgwcU)K6W==?mj4#&N%*d>)<;BwP9hRQTYjzP}6xH?d z$tlrm(0n^%!xJ14K9W9&%y~HO$mvq(w;#T%X4u#q8;Kue%$Shqx?eZ+-ub?iuWoZQ z$E^44l+*QnicZEzTYOZZpquF9V%>4fc1F3Q%{GanL&1m3!{#f2@WgVqB?>`z-ph!b zNxd{ga=nFeTg1kg(W%+%g@gntPK(cN#~4B-?vRPt+S4&h>Lo{u82y|s0c z*Rhw>!`(*sDC4ZmNE(%4~7KJ-qi33k^_$Fcb!(B_qjYAY=Y?D892@aem9o5i0Ey#5%C=r5?H?vxvWX~ z)|Zwl$!q&&=trd-Brnd-kiTKUI^*-7u~a^d<^E=$A&xaUW+3kV+UR^?pLnBB6xcD0 z%$Ke&dXXby)ZFKg1 zUcu{Ph&^GjpY6y;4vOyAA$UpJakR6u=P`>I{UzG_id4TAvKB%QxY(+=>fr%*EoL5q zD>4Jza9P;uPsr2*d>`4o8!3+NJEFyO(a$61Is$Pxy=v=@DTPU?+a!KR2!NyK%=dxsddQgvkhJ`B1JqP2vT%djCF-&G1@RU1g}`F>&q=t@_+N$E@fvgH7*5UgpDO?gY395;YpP z_;}O}#)gmyJ3S&YKU&=1R6~}vH8sul+&pgmK5pt42>$W#&=|2DxWiAMs;6i3NAw1R zww)t0fo^#}fpe&%yW|2Uh2E370(CWc>D&hQd6@yVk=#=qfjvp)4!)25YIGw8krw14 za;%SIaf+ukW#s;@Wv5zYev*7KloH_^7v$-tv*#CXqqULQPQFC%51N0Ww&9{9)#!tJ za5g|Pn*5iLN6(Fkwjs7-pZV*VFuG<%k;{4aZP9~)dwPKj1c$k3!!HGyI=ezb=7ZWg zmYnR>*Q8c51K-Q+LiB1*DEs8frCMma#$C?CNCi37RAadD`tJvvP`Vte{ti2sECJ() z3$CsV^WR^k@gAM)t?PX)-5uHX+p{Y8GN-QGW<1$XAZR%=CZ>xDv_7TbE3M}@{;0zz ze0JQh(sIZEyiRZ(?R{+h)#5bl_2Td}OiRyt%j*c#c7HBq2?%cS{5d|!raS!0Twb0V z%{8@?XYOHC0F13JcGUX_7%D3J2{QS{!0oZm5spSKO}kX~m`&kZzHrugAmy8BU6`t9q-yq@uD`h_55WG+zX z+3D9Y#PaArZYPWyBr;xBBqtEuQGF6QC$GVxqee$+p;U=5-GHz06~wFV#4|FjIE8Wu zpxSr!x;x!evsX*20r@T%tG#L;wotQ* zt#xB=bPG_r8nW_e<(CQgb(nqdV>u@F8-a)oiq#?KF}d6Xo5#yqo&hLmh;}?G*8IV1 zg-*mbzWMR23&9(G-aFgkc6ufcv@1E4k7c!3oyYda@+#<{e&;p+{e`t1K2H2AI2}Ho z$FBTL>IGiL=v&S1Z*58I1gwo?Db(Na`i~pe_2`0|+r~)y-FU;5gGW@p{aU%7A|Q=w zaHbpDOagIZrowqD#gqCuKVkzZ$za zTm)=|V!CWHppcz>Yf5gGExb<`2ZnD4NZmz_4+a;%(GGTgQ$F{uvoU)f)T7eo0W>~+ zKhe;8c*tPsa=|nQIx0~<;xW@8UGa7f(Q{rpP7goa%vYJKYXv3_oY13iLs{J28eI1ULI8glWoLh4R6a46 z21Gkf*1tRR=1_!LXKB04cCq&VY2UiSn%cJR0Yy|wP!U9`pi%=;q$=eg1O%iPsTMi} zr6dtTw}AAnfDjcaDositp($KSKtPHFLx}={Kng7&gmO2(;Q7z}zWZ?B&+B>^d#^di z8gtIE_J(jdE|)7PR;%jt``D~7IO#S6?|0CnXx;<(;8-V8^;z#O_{U{GhZ zt-c^Is-gYlu&pzrK*^0_^2)%t^i1eP4n>XP2J)$7j8v$nT9-O;NLR=(EBKguYp##vd$3-@dUKI>0ECNvM(H8N-kA8C!tb*!S zGGvHn!?xyauh)duE!UQwUHIN*oDB2`J-v=Qmgct~RU4@->6x`RpbNtG7<%gI9}#dt zAJc36AUQn?D;$JM`OEr4P?*lSqS?n2ps>xTA2j^vDCJ{( zH_>%GIjUpEXrV|eQ4oAJK@G0Zb<+Cs59dG9(pb~8eJ+hiu_;%jKGv*Dec7w#iRt4^ z8NdvS=msR(T$8+RGVd{)(EQ4cHTLw;1438jeX^HJ5C%){c2`{l%*jdkI@G5n72* z>_W0_l9=Bqq;r+lZ9#fFV_mlk(7vwHi!gldd6(M|Wexheby|j*DhId2xWSB&m)f_V zJboW$#{GqiHNHagrtSf1-8Hm9%A(jl^Vi4W9_Pr70J@f9V1SXI#7puj)GUP z4OdM3tDteg@u!k6bn(E{gg{|~X+3I`;A`7U_VLRS`S~q|Ng>#@Y#RK&JDGe-0-l}Y z*S9G*_|lvWdB4dom0`i^WGjradb#NyPDO(4d{gi`PCB8STBwU#tmNLbClJg+1T8>z z_CdJEa(Bkl1O(o#y)Cj)yjZQm)VtCFdAd%nbX|3vB6-CMq^G|{tLlZGLZf5EOP?z8 z$Q?01D<8hYNpfIcd9YVxn4|!)t}B&3XNPunUYdHvI%eJ5QDc7G0%%?pc}yZFwS*}p(i03827~)91Ovjn-o0hOCy|2;X?ZD+bfK?y z8+UjiXBtr}jhRcC#=TUS9WUq#PL>n_w~(r4f3M@TneM;N$qh;o91Bfg6{rd`sY4>( zRys(e!!wT8f1d`?p6c9~RQ*Wnb3e|dc;{LdP$HLinz!j`BMEkUw9pjN+f4!+o5$-C zBZI)eW()RJ^bd1mQDH#JA<(SsF{a0=StTMBp;f4{WhLO3OqU)5k8`Al)+h;c$$D_i zAl`S@9i1SA^$6t|DlUCe=D4FbQyNOjTb}wT&puN2>5E9BbUM(vTgqjr-yozH#L!7C zqA>N|ST$3>!SJ%O0rZ2sk3?eEQDYHb*l;rW~!@5*NC0xw<7uy$H5FDBLn z;}_d!IUgbr7=daIf>IMr^m-lo!x@!P`zY+2aD2&&Gm}!uR;I~m6&0`WGLW4;#cP0+?MY=oI&;@OTn?lO5%Ps-p z&l{()R+j0pq4(A*$b|G`MjsFZ0LMZ$sXKw!a*^uU@G_104z%=RD@RA+?2pF{?i7y- zU%W`$NE)d6k;a8u!s>LtlL3MI5%W-Em27^*XaHs*();-se%bqyz&Qg4*{>OPsI<{1 z+#6I|7Ha%yOR2YpZ|-f|uN`p>>bN-FRb3%R^^z@iLczy*-@b`)9=<>&61|@xHueVC zh@ZQ{GGzWTy*(A@y-`an6azN3Mu}SwpWk-h5{oXdEXNn)5$#0KdJm%JYq6r0Tp zgZO@}xhR3s47y+uh3{PtS$n&rbQ-qW)FT@<9i-04tJ5C*HkZPD(jC&bB-o{hTWega zQc%p~%y!Hwl_+0$W9~v4{?_1qlZyAOg+mF0xq2O>FR$W9Qu9UkC{+&Tc&ursVFMk> z$mr~Rb)*)0q8=8eb&zoSt_OoMuMs4;K6gZ*O>;zdE~JMDY8myKCHLp^PA!UN#F`70 zym-BQrsS*R_3P)U7xQ8ujgv_|L}Z|7XF>z!An;b7%__wOenP8p1;Y~AH6)7jXUxd* zjCE&JPp;(cwtIrk^DIi4VeHw8`9>zFfTPZE3M*nyZ~ll#I`V5OzO8F$F6Vozxkja3 zD_7Kr2S4b`3;iT?#M!4VJ_Iok#g#G;>8EI$^az+^c8BJ^t5bPbgNwauxJym=p!Uo@ zbg_d5;866<7Ix7P`=*~fmxhU^F5t+5)=v_Wv4(ez3AH0$DKjF!oQrS-WAfoD*n=9Z zs>}4`;}hP<_G1aTP)@^6jpI#bsAVVl4!WXwfPecjCGE>TeEx34EpP^$^pJ0-JBgaW5GekvSgX?$IVQ?QT4F&hQfUlBRU%}F`)e49o`9l5AKivgGbY}vX_

5z@SZv|GU4Af?#h_{P(aR!q~0~(luIZ3LO?#5Mc0xy@+GIo;~Ylb_mj% zBZC5l?br@DI@boq3h z8&0dlrM?i5Ou)!fwz&+{9%1@O|HV9#bTk5PlowNE{a23Ou^4&VM;g_!{;?d_@RT{b zvTKYB`$9l80aHl^VAdXC2XFp%w&Gmtxbyd8wxBKK7lD=rKIsd*8jy?TY86i_5MRu? zH3#EWkvoI6w|sHYq0``r@lxK&H!ld^+^I*K`x{)4bsbokM`7Oe${6RL3(bMOh%)Wp zgP3bX2NNL%b5q-P*Fl)V>GvILD^k+XNaD_9IFmDD;|>K5wz(KCaZ+vu`f481BEUskfSE4?tT7k52LP^N0?!OZtSZb@hU#u*TYt^t9qx zJuXXp4KaeB(>ZRC}!GW!A=uEChhR^=}~h4oJ7 zg2Z~V2-liQI#}0nR4~*_3E}Yz7-iOzGiJm^NF?n zSpnGNAwmq{Qxbg0ieF9f%H9oR~mJPOMaIF=K^-c=;q@~}dq42x@#V{s=s!lfis^7wujc}Vt(kK&ewdt1& zai^zAel@1@gIjH~h}BWzt=aJlVP}!e4<5X3`e5crv7BYt>+&Lxi$!bNE&6?c4-a(Q zzs5}^{~6mEJXs#1pG@UBsXgY#x7_=zj&6fp9&nrK#hvefQ}usmzh3jhLBiEc0}+r{ zMAh@7DB7AF3-TPfoc`K>m<=ZAYr&+(X0VoknVTS-n4O?p{{7VEGbSbx=#=TBuRL_f zi<2$ydeEh*W1}RZYOjwp*g?b=;>yhCHxN5Eql+_6ycG8c>!kc9GUrh~5|T5}2=jvH zc$4Fs-6%$XA&QvXjX?L$i4APfJPK{BJUp5$O4v$;0}Tvx6&x;k0%{;8eN9hTSrzxx z)@`ovHOAEY<^>BSAjFq}5L>hW2C|tG3hY|cdJv>?R@`&n^x|!@hC3| zOA!c04}el^LzL$j;A^oK_jPiRmz?#Q^P1d68PtQ=EH#~rK%(rVq zzmRUNfsQoJ%I85upREta-KtyrtpSG%H9s&DRNzLIqxCA_I)s~uvXQlvIIaf*KM~-i zS>(?)G9uptrO=MjtSS#20`>HK8^Uz>WQQKcub0jh*7&-k+5X?23O_0+7IdRRw$jti zzN)`8>jm#?w4M>zQ&pj_C{1rhGT-ZjV)wa;Rr0NVY^4^$M;hw8*eGOnpSl^~!B#{| zEQp+s>adVdQ_WkOBn;}^C%=42(nItZjs;cB<77Ht(-eD zzEjYYfti>8>nMx+P;7#uS4=I}tB*Sq-67Q9rRwklCn0nMe9b(s>&~oR+_>i%=^V+? zzT~^QW&R?>F;q)0pbnb$OaZTK9L|4pT0z`5c;)#{M7i`X}uFg#913|IZ?` bdEzvx+{_JWFArQJ|DmsQ?MmsNHzNNHYgu|x literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/span_question.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/span_question.png new file mode 100644 index 0000000000000000000000000000000000000000..fb76aba88dbcbaeac5c3ed4d82433c3e258aa011 GIT binary patch literal 302084 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

|LbEaM0XS14qyQbnk8q|DA`7T5 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Ðru;LW3%CBt7!1brLGDTnh zST>5kDe*b-T}D8vkSCSzML2G*#1k>o?AOm`zwlmKUGu(c51z3KSn878!Rq8fZ-OU1 zOZjLF>{0$5-yIx`pV^Vn%X}sRRcfpKb^opg?Jq9|!ciJ2y6yl8)^h}nk@%k!iQ1Xg z3SKEn5mU`}oRKi3BN?H^qz9_Q0%i+AsiNm4|7QgHGYMfCZ2uyd++G3rAUZq|Xp^Hq zRvZgQEvZSK>5k3m$Q;Thi^fWriLU}v*C$h-vIkwqg}x2e>!vW)O2%y%n^TXAES@8mP^jLNWD>R+vD?`y}UI5D@MY)A^a;q}Z}Y2S!Q zh>6u+id&roNRa1l3z=tk#Teq5El<+mr6Bfa8aaVlKFiXXVl)Q{5iD$MEvF|(Phcr| zZXohDScAM9eW`pK0EVZkAKwk!_O^V4jH7>{9^uNGfHwc7#zGcWMg&)4ZmjN$pyI zSSsVsVeT<^QJE%k$%lF6sA^#WPFVC%wK~L*!@Hws)mxj=Uw0YRIS;Kw^2Nklk()KK zvhpChRIEVZHcCKIe4hfj`l`!8WRxyDK0ZF{|J>{Twb@q)(tNU)yZqPeoh20@@eW2t z^3D79a1Mh4?iUFhOkIa2c5Ih#=U9T5GFCdRHG*|}H!mJ@i9VJe3cJ&|f zRp(e)SWxL=c9-UJoSd9Ah&psdH#}ZQEU0leMXy?@ATV+1K-wB8HGHziznujz&g)hp z6YSE7wrS<2Y(A@OAimIE0c_2EO&oU+u7R-z6TzZ)HUHA^|1V)CQ)W{;Y@r8=R_knN zEn#{Sdel&Q&;E^18gEKQM5TYD*UVZh1GihNU0PMVj3AQFbvc5Rya=i`z)%O`1Uka- zxjwg|rZc;-=`L|*I)GRrfr-@a@L7Dvh^BbYvr!`L5isd4UIf3CNOe6Erv%V*|sGT2_{G9u@Trds_Pe)`7+y`lDlbF{SDs@Ygu zF=jgh)V8!;O){_Q?C!?Ym_Ly)1rU9$IZ|InZ`dz)@$s2Ep+)57Co2kow=_#T^fiGD zQ1bNN)6X|IryCnhj6SDkWi5k_cDBFCwBe$kuWcLC+sm_7QeKoi|9J%o3D*L)?54HP z(&QYm{n~X*_$QIKNyH}~CRKa5kQQStMo_9K@X1_od<`adIgd&AYr$YE^P%j!arxk% zi!0LpYbMNm1cR@o?IeUxh-j+PMIIWsSROcWajNbq%OE|n5!AOdII2YNoVu41ipp1; zl9;S_b2#J>$Mxm80q=h_wIJG;wR!{zc>^#3#%WbsGah{ai_oXgmKnIN+o?#`<<=SB zwXgtTUYFy)V&MZ!-8@lFq2^%}xi2zfVV4t8JQt6E&Wivi2XN&1%&Rw^Rc`Qxu9&K- z>Ull`3g3J%#`Wuu*yx~`EK8W`_{Jxiq@gi$Hm3}E3wtQ?k>RsOXP#ZC_D2_cQv!Mh zKL+TV034!%7YX^R6_SnkPYrF&As)vmQ?-*_;K0DEXd&q5=-r+Q-a+yJBEdD%`w&s{#BYEgZ*K$~q2BJAm(b1&Fj8tV ztGuN_gdq=5*%Jr^A5D|C?qAuM5eba8A=_m97bDjRKKNzG=ao;zLu=hXyM!b>5B+eA z*m9%dSbJk+knSx>p6HO%<3CkkUQVUBfUC#3X97}d7MI48y(+AgNGV|;bdAO{+f^Ew zEeQU@$649gThHJY)XFp+_fBc5fM(0a#>O44gQmN*Y!Wq;ITbqW$m8(z1~70y1*c~w zhyaL>{NIfH|Jic@o9;YcDP=IEedD28RH=!BNuA%5v~$quSp`v<7=E+i+aspgHZ*w7 OL87gpkE%l2Mg1GD>HE_F literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/text_question.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/text_question.png new file mode 100644 index 0000000000000000000000000000000000000000..9cde1aca934c1f5af7c36d3b0c85111fea0d5c78 GIT binary patch literal 31550 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/how_to_guides/dataset/vectors.png b/argilla-sdk/docs/assets/images/how_to_guides/dataset/vectors.png new file mode 100644 index 0000000000000000000000000000000000000000..e46ca7f5bfa1e91d7573f6bdec24f7dd773d3ba0 GIT binary patch literal 58491 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

2=6F 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 + + + + + + + + + + + diff --git a/argilla-sdk/docs/assets/og-doc.png b/argilla-sdk/docs/assets/og-doc.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e0ad088f89a00d6d0d8a7781b3215b2caa69bb GIT binary patch literal 824798 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%0ACRK7Dt*fEvwRMf)?wyq^-XIkm5^@!=rYeU>hXM1 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 z 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

R^Q$Umepb5aug;u_Ecx2RbNaDj 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/getting_started/faq.md b/argilla-sdk/docs/getting_started/faq.md new file mode 100644 index 0000000000..3b4af37c7f --- /dev/null +++ b/argilla-sdk/docs/getting_started/faq.md @@ -0,0 +1,7 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# Quickstart + +Placeholder text \ No newline at end of file diff --git a/argilla-sdk/docs/getting_started/installation.md b/argilla-sdk/docs/getting_started/installation.md new file mode 100644 index 0000000000..c26324d3ab --- /dev/null +++ b/argilla-sdk/docs/getting_started/installation.md @@ -0,0 +1,81 @@ +--- +description: Installation of Argilla-python. +--- + +# Installation + +## Install the SDK with pip + +Since this package is not yet published on PyPi, you can install it directly from the repository: + +```console +pip install git+https://github.com/argilla-io/argilla-python.git +``` + +## Run the Argilla server + +If you have already deployed Argilla Server, you can skip this step. Otherwise, you can quickly deploy it in two different ways: + +!!! note + You can use this SDK with any stable release of argilla server >= 1.27. + +!!! warning + These images are used for introductory purposes, so the data will be lost after restarting. + +* Using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). +* Locally with Docker. + +```console +docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:latest +``` + +## Connect to the Argilla server + +Get your ``: + +* If you are using HF Spaces, it should be constructed as follows: `https://[your-owner-name]-[your_space_name].hf.space` +* If you are using Docker, it is the URL shown in your browser (by default `http://localhost:6900`) + +Get your `` in `My Settings` in the Argilla UI (by default owner.apikey). + +!!! note + Make sure to replace `` and `` with your actual values. If you are using a private HF Space, you need to specify your `HF_TOKEN` which can be found [here](https://huggingface.co/settings/tokens). + +```python +import argilla_sdk as rg + +client = rg.Argilla( + api_url="", + api_key="", + # extra_headers={"Authorization": f"Bearer {HF_TOKEN}"} +) +``` + +## Developer documentation + +If you want to contribute to the development of the SDK, you can follow the instructions below. + +### Installation + +To install the development dependencies, run the following commands: + +```console +# Install pdm (https://github.com/pdm-project/pdm) +pip install pdm + +# Install the package in editable mode +pip install -e . + +# Install the development dependencies with pdm +pdm install --dev +``` + +### Generating documentation + +To generate the docs you will need to install the development dependencies, and run the following command to create the development server with `mkdocs`: + +```console +mkdocs serve +``` + +You will find the built documentation in `http://localhost:8000/argilla-python/`. diff --git a/argilla-sdk/docs/getting_started/quickstart.md b/argilla-sdk/docs/getting_started/quickstart.md new file mode 100644 index 0000000000..7cdf892a5c --- /dev/null +++ b/argilla-sdk/docs/getting_started/quickstart.md @@ -0,0 +1,126 @@ +--- +description: Quickstart of the Argilla-python on how to create your first dataset. +--- + +# Quickstart +This guide provides a quick overview of the Argilla SDK and how to create your first dataset. + +1. Setting up your Argilla project +2. Create your first dataset +3. Add records to your dataset + +## Setting up your Argilla project + +### Install the SDK with pip + +To work with Argilla datasets, you need to use the Argilla SDK. You can install the SDK with pip as follows: + +!!! note + The package is not yet available on PyPi. You'll need to install it directly from the GitHub repository. + +```console +pip install git+https://github.com/argilla-io/argilla-python.git +``` + +### Run the Argilla server + +If you have already deployed Argilla Server, you can skip this step. Otherwise, you can quickly deploy it in two different ways: + +!!! warning + These images are used for introductory purposes, so the data will be lost after restarting. + +* Using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). +* Locally with Docker. + +```console +docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:latest +``` + +### Connect to the Argilla server + +Get your ``: + +* If you are using HF Spaces, it should be constructed as follows: `https://[your-owner-name]-[your_space_name].hf.space` +* If you are using Docker, it is the URL shown in your browser (by default `http://localhost:6900`) + +Get your `` in `My Settings` in the Argilla UI (by default owner.apikey). + +!!! note + Make sure to replace `` and `` with your actual values. If you are using a private HF Space, you need to specify your `HF_TOKEN` which can be found [here](https://huggingface.co/settings/tokens). + +```python +import argilla_sdk as rg + +client = rg.Argilla( + api_url="", + api_key="" + # extra_headers={"Authorization": f"Bearer {HF_TOKEN}"} + ) +``` + +## Create your first dataset + +To create a dataset with a simple text classification task, first you need to define it in the `settings`. + +```python +settings = rg.Settings( + guidelines="Classify the reviews as positive or negative.", + fields=[ + rg.TextField( + name="review", + title="Text from the review", + use_markdown=False, + ), + ], + questions=[ + rg.LabelQuestion( + name="my_label", + title="In which category does this article fit?", + labels=["positive", "negative"], + ) + ], +) +``` + +Now you can create the dataset with the settings you defined. Publish the dataset to make it available in the UI and add the records. + +!!! note + The `workspace` parameter is optional. If you don't specify it, the dataset will be created in the default workspace `admin`. + +```python +dataset = rg.Dataset( + name=f"my_first_dataset", + settings=settings, + client=client, +) +dataset.create() +``` + +## Add records to your dataset + +Retrieve the data to be added to the dataset. We will use the IMDB dataset from the Hugging Face Datasets library. + +```python +pip install -qqq datasets +``` + +```python +from datasets import load_dataset + +data = load_dataset("imdb", split="train[:100]").to_list() +``` + +Now you can add the data to your dataset. Use `mapping` to indicate which keys in the source data correspond to the dataset fields. + +```python +# Add records to the dataset +dataset.records.add(records=data, mapping={"text": "review"}) +``` + +🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. + +## More references + +* [Installation guide](installation.md) +* [How-to guides](../how_to_guides/index.md) +* [API reference](../reference//argilla_sdk/client.md) diff --git a/argilla-sdk/docs/how_to_guides/dataset.md b/argilla-sdk/docs/how_to_guides/dataset.md new file mode 100644 index 0000000000..c7cc308ee0 --- /dev/null +++ b/argilla-sdk/docs/how_to_guides/dataset.md @@ -0,0 +1,489 @@ +--- +description: In this section, we will provide a step-by-step guide to show how to manage datasets and configure dataset settings. +--- + +# Dataset management + +This guide provides an overview of datasets, explaining the basics of how to set them up and manage them in Argilla. + +A **dataset** is a collection of records that you can configure for labelers to provide feedback using the UI. Depending on the specific requirements of your task, you may need various types of feedback. You can customize the dataset to include different kinds of questions, so the first step will be to define the aim of your project and the kind of data and feedback you will need. With this information, you can start configuring a dataset by defining fields, questions, metadata, vectors, and guidelines through settings. + +!!! Question "Question: Who can manage datasets?" + + Only users with the `owner` role can manage (create, retrieve, update and delete) all the datasets. + + The users with the `admin` role can manage (create, retrieve, update and delete) the datasets in the workspaces they have access to. + +!!! info "Main Classes" + === "`rg.Dataset`" + + ```python + rg.Dataset( + name="name", + workspace="workspace", + settings=settings, + client=client + ) + ``` + > Check the [Dataset - Python Reference](../reference/argilla_sdk/datasets/datasets.md) to see the attributes, arguments, and methods of the `Dataset` class in detail. + + === "`rg.Settings`" + + ```python + rg.Settings( + fields=[rg.TextField(name="text")], + questions=[ + rg.LabelQuestion( + name="label", + labels=["label_1", "label_2", "label_3"] + ) + ], + metadata=[rg.TermsMetadataProperty(name="metadata")], + vectors=[rg.VectorField(name="vector", dimensions=10)], + guidelines="guidelines", + allow_extra_metadata=True, + ) + ``` + + > Check the [Settings - Python Reference](../reference/argilla_sdk/settings/settings.md) to see the attributes, arguments, and methods of the `Settings` class in detail. + +## Create a dataset + +To create a dataset, you can define it in the `Dataset` class and then call the `create` method that will send the dataset to the server so that it can be visualized in the UI. If the dataset does not appear in the UI, you may need to click the refresh button to update the view. For further configuration of the dataset, you can refer to the [settings section](#define-dataset-settings). + +> The created dataset will be empty, to add the records refer to this [how-to guide](record.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +settings = rg.Settings( + guidelines="These are some guidelines.", + fields=[ + rg.TextField( + name="text", + ), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["label_1", "label_2", "label_3"]), + ], +) + +dataset = rg.Dataset( + name="my_dataset", + workspace="my_workspace", + settings=settings, + client=client, +) + +dataset.create() +``` +!!! tip "Accessing attributes" + Access the attributes of a dataset by calling them directly on the `dataset` object. For example, `dataset.id`, `dataset.name` or `dataset.settings`. You can similarly access the fields, questions, metadata, vectors and guidelines. For instance, `dataset.fields` or `dataset.questions`. + +### Create multiple datasets with the same settings + +To create multiple datasets with the same settings, define the settings once and pass it to each dataset. + +```python +import argilla_sdk as rg + +settings = rg.Settings( + guidelines="Select the sentiment of the prompt.", + fields=[rg.TextField(name="prompt", use_markdown=True)], + questions=[rg.LabelQuestion(name="sentiment", labels=["positive", "negative"])], +) + +dataset1 = rg.Dataset(name="sentiment_analysis_1", settings=settings) +dataset2 = rg.Dataset(name="sentiment_analysis_2", settings=settings) + +# Create the datasets on the server +dataset1.create() +dataset2.create() + +``` + +### Create a dataset with settings from an existing dataset + +To create a new dataset with settings from an existing dataset, get the settings from the existing dataset and pass it +to the new dataset. + +```python +import argilla_sdk as rg + +# Get the settings from an existing dataset +existing_dataset = client.datasets("sentiment_analysis") + +# Create a new dataset with the same settings +dataset = rg.Dataset(name="sentiment_analysis_copy", settings=existing_dataset.settings) + +# Create the dataset on the server +dataset.create() + +``` + +## Define dataset settings + +### Fields + +The fields in a dataset consist of one or more data items requiring annotation. Currently, Argilla only supports plain text and markdown through the `TextField`, though we plan to introduce additional field types in future updates. + +A **field** is defined in the `TextField` class that has the following arguments: + +* `name`: The name of the field. +* `title` (optional): The name of the field, as it will be displayed in the UI. Defaults to the `name` value. +* `required` (optional): Whether the field is required or not. Defaults to `True`. At least one field must be required. +* `use_markdown` (optional): Specify whether you want markdown rendered in the UI. Defaults to `False`. If you set it to True, you will be able to use all the Markdown features for text formatting, as well as embed multimedia content and PDFs. + +!!! note + The order of the fields in the UI follows the order in which these are added to the fields attribute in the Python SDK. + +```python +rg.TextField( + name="text", + title="Text", + required=True, + use_markdown=False +) +``` +![TextField](../assets/images/how_to_guides/dataset/fields.png) + +### Questions + +To collect feedback for your dataset, you need to formulate questions that annotators will be asked to answer. Currently, Argilla supports the following types of questions: `LabelQuestion`, `MultiLabelQuestion`, `RankingQuestion`, `RatingQuestion`, `SpanQuestion`, and `TextQuestion`. + +=== "Label" + A `LabelQuestion` asks annotators to choose a unique label from a list of options. This type is useful for text classification tasks. In the UI, they will have a rounded shape. It has the following configuration: + + - `name`: The name of the question. + - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value. + - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. + - `required` (optional): Whether the question is required or not. Defaults to `True`. At least one question must be required. + - `labels`: A list of strings with the options for these questions. If you'd like the text of the labels to be different in the UI and internally, you can pass a dictionary instead where the key is the internal name and the value will be the text displayed in the UI. + + ```python + rg.LabelQuestion( + name="label", + title="Is the response relevant for the given prompt?", + description="Select the one that applies.", + required=True, + labels={"YES": "Yes", "NO": "No"}, # or ["YES", "NO"] + ) + ``` + ![LabelQuestion](../assets/images/how_to_guides/dataset/label_question.png) + +=== "Multi-label" + A `MultiLabelQuestion` asks annotators to choose all applicable labels from a list of options. This type is useful for multi-label text classification tasks. In the UI, they will have a squared shape. It has the following configuration: + + - `name`: The name of the question. + - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value. + - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. + - `required` (optional): Whether the question is required or not. Defaults to `True`. At least one question must be required. + - `labels`: A list of strings with the options for these questions. If you'd like the text of the labels to be different in the UI and internally, you can pass a dictionary instead where the key is the internal name and the value will be the text displayed in the UI. + - `visible_labels` (optional): The number of labels that will be visible at first sight in the UI. By default, the UI will show 20 labels and collapse the rest. Set your preferred number to change this limit or set `visible_labels=None` to show all options. + + ```python + rg.MultiLabelQuestion( + name="multi_label", + title="Does the response include any of the following?", + description="Select all that apply.", + required=True, + labels={ + "hate": "Hate Speech", + "sexual": "Sexual content", + "violent": "Violent content", + "pii": "Personal information", + "untruthful": "Untruthful info", + "not_english": "Not English", + "inappropriate": "Inappropriate content" + }, # or ["hate", "sexual", "violent", "pii", "untruthful", "not_english", "inappropriate"] + visible_labels=4 + ) + + ``` + ![MultiLabelQuestion](../assets/images/how_to_guides/dataset/multilabel_question.png) + +=== "Ranking" + A `RankingQuestion` asks annotators to order a list of options. It is useful to gather information on the preference or relevance of a set of options. Ties are allowed and all options will need to be ranked. It has the following configuration: + + - `name`: The name of the question. + - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value. + - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. + - `required` (optional): Whether the question is required or not. Defaults to `True`. At least one question must be required. + - `values`: A list of strings with the options they will need to rank. If you'd like the text of the options to be different in the UI and internally, you can pass a dictionary instead where the key is the internal name and the value is the text to display in the UI. + + ```python + rg.RankingQuestion( + name="ranking", + title="Order replies based on your preference", + description="1 = best, 3 = worst. Ties are allowed.", + required=True, + values={ + "reply-1": "Reply 1", + "reply-2": "Reply 2", + "reply-3": "Reply 3" + } # or ["reply-1", "reply-2", "reply-3"] + ) + ``` + + ![RankingQuestion](../assets/images/how_to_guides/dataset/ranking_question.png) + +=== "Rating" + A `RatingQuestion` asks annotators to select one option from a list of integer values. This type is useful for collecting numerical scores. It has the following configuration: + + - `name`: The name of the question. + - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value. + - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. + - `required` (optional): Whether the question is required or not. Defaults to `True`. At least one question must be required. + - `values`: A list of unique integers representing the scores that annotators can select from should be defined within the range [1, 10]. + + ```python + rg.RatingQuestion( + name="rating", + title="How satisfied are you with the response?", + description="1 = very unsatisfied, 10 = very satisfied", + required=True, + values=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + ) + ``` + + ![RatingQuestion](../assets/images/how_to_guides/dataset/rating_question.png) + +=== "Span" + A `SpanQuestion` asks annotators to select a portion of the text of a specific field and apply a label to it. This type of question is useful for named entity recognition or information extraction tasks. It has the following configuration: + + - `name`: The name of the question. + - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. + - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. + - `required` (optional): Whether the question is required or not. Defaults to `True`. At least one question must be required. + - `labels`: A list of strings with the options for these questions. If you'd like the text of the labels to be different in the UI and internally, you can pass a dictionary instead where the key is the internal name and the value will be the text to display in the UI. + - `field`: This question is always attached to a specific field. You should pass a string with the name of the field where the labels of the `SpanQuestion` should be used. + - `allow_overlapping`: This value specifies whether overlapped spans are allowed or not. Defaults to `False`. + - `visible_labels` (optional): The number of labels that will be visible at first sight in the UI. By default, the UI will show 20 labels and collapse the rest. Set your preferred number to change this limit or set `visible_labels=None` to show all options. + + ```python + rg.SpanQuestion( + name="span", + title="Select the entities in the text", + description="Select the entities in the text", + required=True, + labels={ + "PERSON": "Person", + "ORG": "Organization", + "LOC": "Location", + "MISC": "Miscellaneous" + }, + field="text", + allow_overlapping=False, + visible_labels=None + ) + ``` + + ![SpanQuestion](../assets/images/how_to_guides/dataset/span_question.png) + +=== "Text" + A `TextQuestion` offers to annotators a free-text area where they can enter any text. This type is useful for collecting natural language data, such as corrections or explanations. It has the following configuration: + + - `name`: The name of the question. + - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. + - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. + - `required` (optional): Whether the question is required or not. Defaults to `True`. At least one question must be required. + - `use_markdown` (optional): Define whether the field should render markdown text. Defaults to `False`. If you set it to `True`, you will be able to use all the Markdown features for text formatting, as well as embed multimedia content and PDFs. + + ```python + rg.TextQuestion( + name="text", + title="Please provide feedback on the response", + description="Please provide feedback on the response", + required=True, + use_markdown=True + ) + ``` + + ![TextQuestion](../assets/images/how_to_guides/dataset/text_question.png) + +### Metadata + +Metadata properties allow you to configure the use of metadata information for the filtering and sorting features available in the UI and Python SDK. There exist three types of metadata you can add: `TermsMetadataProperty`, `IntegerMetadataProperty` and `FloatMetadataProperty`. + +=== "Terms" + A `TermsMetadataProperty` allows to add a list of strings as metadata options. It has the following configuration: + + - `name`: The name of the metadata property. + - `title` (optional): The name of the metadata property, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. + - `options` (optional): You can pass a list of valid values for this metadata property, in case you want to run any validation. + + ```python + rg.TermsMetadataProperty( + name="terms", + title="Annotation groups", + options=["group-a", "group-b", "group-c"] + ) + ``` + ![TermsMetadataProperty](../assets/images/how_to_guides/dataset/term_metadata.png) + +=== "Integer" + An `IntegerMetadataProperty` allows to add integer values as metadata. It has the following configuration: + + - `name`: The name of the metadata property. + - `title` (optional): The name of the metadata property, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. + - `min` (optional): You can pass a minimum valid value. If none is provided, the minimum value will be computed from the values provided in the records. + - `max` (optional): You can pass a maximum valid value. If none is provided, the maximum value will be computed from the values provided in the records. + + ```python + rg.IntegerMetadataProperty( + name="integer", + title="length-input", + min=50, + max=1897, + ) + ``` + ![IntegerMetadataProperty](../assets/images/how_to_guides/dataset/integer_metadata.png) + +=== "Float" + A `FloatMetadataProperty` allows to add float values as metadata. It has the following configuration: + + - `name`: The name of the metadata property. + - `title` (optional): The name of the metadata property, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. + - `min` (optional): You can pass a minimum valid value. If none is provided, the minimum value will be computed from the values provided in the records. + - `max` (optional): You can pass a maximum valid value. If none is provided, the maximum value will be computed from the values provided in the records. + + ```python + rg.FloatMetadataProperty( + name="float", + title="Reading ease", + min=-92.29914, + max=119.6975, + ) + ``` + ![FloatMetadataProperty](../assets/images/how_to_guides/dataset/float_metadata.png) + +### Vectors + +To use the similarity search in the UI and the Python SDK, you will need to configure vectors using the `VectorField` class. It has the following configuration: + +* `name`: The name of the vector. +* `title` (optional): A name for the vector to display in the UI for better readability. +* `dimensions`: The dimensions of the vectors used in this setting. + +```python +rg.VectorField( + name="my_vector", + title="My Vector", + dimensions=768 +), +``` +![VectorField](../assets/images/how_to_guides/dataset/vectors.png) + +### Guidelines + +Once you have decided on the data to show and the questions to ask, it's important to provide clear guidelines to the annotators. These guidelines help them understand the task and answer the questions consistently. You can provide guidelines in two ways: + +* In the dataset guidelines: this is added as an argument when you create your dataset in the Python SDK. It will appear in the dataset settings in the UI. +```python +guidelines = "In this dataset, you will find a collection of records that show a category, an instruction, a context and a response to that instruction. [...]" +``` +![Guidelines](../assets/images/how_to_guides/dataset/guidelines.png) + +* As question descriptions: these are added as an argument when you create questions in the Python SDK. This text will appear in a tooltip next to the question in the UI. +![Guidelines as descriptions](../assets/images/how_to_guides/dataset/guidelines_description.png) + +It is good practice to use at least the dataset guidelines if not both methods. Question descriptions should be short and provide context to a specific question. They can be a summary of the guidelines to that question, but often that is not sufficient to align the whole annotation team. In the guidelines, you can include a description of the project, details on how to answer each question with examples, instructions on when to discard a record, etc. + +!!! tip + If you want further guidance on good practices for guidelines during the project development, check our [blog post](https://argilla.io/blog/annotation-guidelines-practices/). + +## List datasets + +You can list all the datasets available in a workspace using the `datasets` attribute of the `Workspace` class. You can also use `len(workspace.datasets)` to get the number of datasets in a workspace. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +datasets = workspace.datasets + +for dataset in datasets: + print(dataset) +``` + +## Retrieve a dataset + +You can retrieve a dataset by calling the `datasets` method on the `Argilla` class and passing the name of the dataset as an argument. By default, this method attempts to retrieve the dataset from the first workspace. If the dataset is in a different workspace, you must specify either the workspace name or id as an argument. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +# Retrieve the dataset from the first workspace +retrieved_dataset = client.datasets(name="my_dataset") + +# Retrieve the dataset from the specified workspace +retrieved_dataset = client.datasets(name="my_dataset", workspace=workspace) +``` + +## Check dataset existence + +You can check if a dataset exists by calling the `exists` method on the `Dataset` class. This method returns a boolean value. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +dataset = client.datasets(name="my_dataset") + +dataset_existed = dataset.exists() +``` + +## Update a dataset + +You can update a dataset by calling the `update` method on the `Dataset` class and passing the new settings as an argument. + +!!! note + Keep in mind that once your dataset is published, only the guidelines can be updated. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +dataset_to_update = client.datasets(name="my_dataset") + +settings_to_update = rg.Settings( + guidelines="These are some updated guidelines.", + fields=[ + rg.TextField( + name="text", + ), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["label_4", "label_5", "label_6"]), + ], +) + +dataset_to_update.settings = settings_to_update + +dataset_updated = dataset_to_update.update() +``` + +## Delete a dataset + +You can delete an existing dataset by calling the `delete` method on the `Dataset` class. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +dataset_to_delete = client.datasets(name="my_dataset") + +dataset_deleted = dataset_to_delete.delete() +``` \ No newline at end of file diff --git a/argilla-sdk/docs/how_to_guides/fine_tune.md b/argilla-sdk/docs/how_to_guides/fine_tune.md new file mode 100644 index 0000000000..34c5e41246 --- /dev/null +++ b/argilla-sdk/docs/how_to_guides/fine_tune.md @@ -0,0 +1,8 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# Fine-tune + +These are the how-to guides for the Argilla-python SDK. They provide step-by-step instructions for common scenarios, including detailed explanations and code samples. + diff --git a/argilla-sdk/docs/how_to_guides/index.md b/argilla-sdk/docs/how_to_guides/index.md new file mode 100644 index 0000000000..98369cf642 --- /dev/null +++ b/argilla-sdk/docs/how_to_guides/index.md @@ -0,0 +1,75 @@ +--- +description: These are the how-to guides for the Argilla-python SDK. They provide step-by-step instructions for common scenarios, including detailed explanations and code samples. +--- + +# How-to guides + +These are the how-to guides for the *Argilla-python SDK*. They provide step-by-step instructions for common scenarios, including detailed explanations and code samples. + +

\ No newline at end of file diff --git a/argilla-sdk/docs/how_to_guides/metrics/annotator.md b/argilla-sdk/docs/how_to_guides/metrics/annotator.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/argilla-sdk/docs/how_to_guides/metrics/dataset.md b/argilla-sdk/docs/how_to_guides/metrics/dataset.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/argilla-sdk/docs/how_to_guides/metrics/model.md b/argilla-sdk/docs/how_to_guides/metrics/model.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/argilla-sdk/docs/how_to_guides/query_export.md b/argilla-sdk/docs/how_to_guides/query_export.md new file mode 100644 index 0000000000..1a18a89436 --- /dev/null +++ b/argilla-sdk/docs/how_to_guides/query_export.md @@ -0,0 +1,221 @@ +--- +description: In this section, we will provide a step-by-step guide to show how to filter and query a dataset. +--- + +# Query, filter, and export records + +This guide provides an overview of how to query and filter a dataset in Argilla and export records. + +You can search for records in your dataset by **querying** or **filtering**. The query focuses on the content of the text field, while the filter is used to filter the records based on conditions. You can use them independently or combine multiple filters to create complex search queries. You can also export records from a dataset either as a single dictionary or a list of dictionaries. + +!!! info "Main Classes" + + === "`rg.query`" + + ```python + rg.Query( + query="query", + filter=filter + ) + ``` + > Check the [Query - Python Reference](../reference/argilla_sdk/search.md) to see the attributes, arguments, and methods of the `Query` class in detail. + + === "`rg.Filter`" + + ```python + rg.Filter( + [ + ("field", "==", "value"), + ] + ) + ``` + > Check the [Filter - Python Reference](../reference/argilla_sdk/search.md) to see the attributes, arguments, and methods of the `Filter` class in detail. + +## Query with search terms + +To search for records with terms, you can use the `Dataset.records` attribute with a query string. The search terms are used to search for records that contain the terms in the text field. You can search a single term or various terms, in the latter, all of them should appear in the record to be retrieved. + +=== "Single search term" + + ```python + import argilla_sdk as rg + + client = rg.Argilla(api_url="", api_key="") + + workspace = client.workspaces("my_workspace") + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + query = rg.Query(query="my_term") + + queried_records = list(dataset.records(query=query)) + ``` + +=== "Multiple search term" + + ```python + import argilla_sdk as rg + + client = rg.Argilla(api_url="", api_key="") + + workspace = client.workspaces("my_workspace") + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + query = rg.Query(query="my_term1 my_term2") + + queried_records = list(dataset.records(query=query)) + ``` + +## Filter by conditions + +You can use the `Filter` class to define the conditions and pass them to the `Dataset.records` attribute to fetch records based on the conditions. Conditions include "==", ">=", "<=", or "in". Conditions can be combined with dot notation to filter records based on metadata, suggestions, or responses. You can use a single condition or multiple conditions to filter records. + +| operator | description | +|----------|-------------| +| `==` | The `field` value is equal to the `value` | +| `>=` | The `field` value is greater than or equal to the `value` | +| `<=` | The `field` value is less than or equal to the `value` | +| `in` | TThe `field` value is included in a list of values | + +=== "Single condition" + + ```python + import argilla_sdk as rg + + client = rg.Argilla(api_url="", api_key="") + + workspace = client.workspaces("my_workspace") + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + filter_label = rg.Filter(("label", "==", "positive")) + + filtered_records = list(dataset.records(query=rg.Query(filter=filter_label))) + ``` + +=== "Multiple conditions" + + ```python + import argilla_sdk as rg + + client = rg.Argilla(api_url="", api_key="") + + workspace = client.workspaces("my_workspace") + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + filters = rg.Filter( + [ + ("label.suggestion", "==", "positive"), + ("metadata.count", ">=", 10), + ("metadata.count", "<=", 20), + ("label", "in", ["positive", "negative"]) + ] + ) + + filtered_records = list(dataset.records( + query=rg.Query(filter=filters)), + with_suggestions=True + ) + ``` + +## Filter by status + +You can filter records based on their status. The status can be `pending`, `draft`, `submitted`, or `discarded`. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +dataset = client.datasets(name="my_dataset", workspace=workspace) + +status_filter = rg.Query( + filter = rg.Filter(("status", "==", "submitted")) +) + +filtered_records = list(dataset.records(status_filter)) +``` + +## Query and filter a dataset + +As mentioned, you can use a query with a search term and a filter or various filters to create complex search queries. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +dataset = client.datasets(name="my_dataset", workspace=workspace) + +query_filter = rg.Query( + query="my_term", + filter= rg.Filter( + [ + ("label.suggestion", "==", "positive"), + ("metadata.count", ">=", 10), + ] + ) +) + +queried_filtered_records = list(dataset.records( + query=query_filter, + with_metadata=True, + with_suggestions=True + ) +) +``` + +## Export records to a dictionary + +Records can be exported from `Dataset.records` as a dictionary. The `to_dict` method can be used to export records as a dictionary. You can specify the orientation of the dictionary output. You can also decide if to flatten or not the dictionary. + +=== " +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +dataset = client.datasets(name="my_dataset", workspace=workspace) + +# Export records as a dictionary +exported_records = dataset.records.to_dict() +# {'fields': [{'text': 'Hello'},{'text': 'World'}], suggestions': [{'label': {'value': 'positive'}}, {'label': {'value': 'negative'}}] + +# Export records as a dictionary with orient=index +exported_records = dataset.records.to_dict(orient="index") +# {"uuid": {'fields': {'text': 'Hello'}, 'suggestions': {'label': {'value': 'positive'}}}, {"uuid": {'fields': {'text': 'World'}, 'suggestions': {'label': {'value': 'negative'}}}, + +# Export records as a dictionary with flatten=false +exported_records = dataset.records.to_dict(flatten=True) +# {"text": ["Hello", "World"], "label.suggestion": ["greeting", "greeting"]} +``` + +## Export records to a list + +Records can be exported from `Dataset.records` as a list of dictionaries. The `to_list` method can be used to export records as a list of dictionaries. You can decide if to flatten it or not. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +dataset = client.datasets(name="my_dataset", workspace=workspace) + +# Export records as a list of dictionaries +exported_records = dataset.records.to_list() +# [{'fields': {'text': 'Hello'}, 'suggestion': {'label': {value: 'greeting'}}}, {'fields': {'text': 'World'}, 'suggestion': {'label': {value: 'greeting'}}}] + +# Export records as a list of dictionaries with flatten=False +exported_records = dataset.records.to_list(flatten=True) +# [{"text": "Hello", "label": "greeting"}, {"text": "World", "label": "greeting"}] +``` diff --git a/argilla-sdk/docs/how_to_guides/record.md b/argilla-sdk/docs/how_to_guides/record.md new file mode 100644 index 0000000000..42cf7a211a --- /dev/null +++ b/argilla-sdk/docs/how_to_guides/record.md @@ -0,0 +1,466 @@ +--- +description: In this section, we will provide a step-by-step guide to show how to manage records. +--- + +# Add, update, and delete records + +This guide provides an overview of records, explaining the basics of how to define and manage them in Argilla. + +A **record** in Argilla is a data item that requires annotation, consisting of one or more fields. These are the pieces of information displayed to the user in the UI to facilitate the completion of the annotation task. Each record also includes questions that annotators are required to answer, with the option of adding suggestions and responses to assist them. Guidelines are also provided to help annotators effectively complete their tasks. + +> A record is part of a dataset, so you will need to create a dataset before adding records. Check these guides to learn how to [create a dataset](dataset.md). + +!!! info "Main Class" + + ```python + rg.Record( + external_id="1234", + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + metadata={ + "category": "A" + }, + vectors={ + "my_vector": [0.1, 0.2, 0.3], + }, + suggestions=[ + rg.suggestion("my_label", "positive", score=0.9, agent="model_name") + ], + responses=[ + rg.response("label", "positive", user_id=user_id) + ], + ) + ``` + > Check the [Record - Python Reference](../reference/argilla_sdk/records/records.md) to see the attributes, arguments, and methods of the `Record` class in detail. + +## Add records + +You can add records to a dataset in two different ways: either by using a dictionary or by directly initializing a `Record` object. You should ensure that fields, metadata and vectors match those configured in the dataset settings. In both cases, are added via the `Dataset.records.add` method. As soon as you add the records, these will be available in the Argilla UI. If they do not appear in the UI, you may need to click the refresh button to update the view. + +!!! tip + Take some time to inspect the data before adding it to the dataset in case this triggers changes in the `questions` or `fields`. + +!!! note + If you are planning to use public data, the [Datasets page](https://huggingface.co/datasets) of the Hugging Face Hub is a good place to start. Remember to always check the license to make sure you can legally use it for your specific use case. + +=== "As a dictionary" + + You can add the data directly as a dictionary, where the keys correspond to the names of fields, questions, metadata or vectors in the dataset and the values are the data to be added. However, you can also use a `mapping` to indicate which keys in the source data correspond to the dataset fields. + + ```python + import argilla_sdk as rg + + client = rg.Argilla(api_url="", api_key="") + + workspace = client.workspaces("my_workspace") + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + # Add records to the dataset with the fields 'question' and 'answer' + data = [ + { + "question": "Do you need oxygen to breathe?", + "answer": "Yes", + }, + { + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius", + }, + ] + dataset.records.add(data) + + # Add records to the dataset with the a mapping of the fields 'question' and 'answer' + data = [ + { + "query": "Do you need oxygen to breathe?", + "response": "Yes", + }, + { + "query": "What is the boiling point of water?", + "response": "100 degrees Celsius", + }, + ] + dataset.records.add(data, mapping={"query": "question", "response": "answer"}) + ``` + + !!! example "HF example" + + ```python + import datasets + from datasets import load_dataset + from uuid import uuid4 + + client = rg.Argilla(api_url="", api_key="") + workspace = client.workspaces("my_workspace") + user_id = client.users("my_user").id + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + hf_dataset = load_dataset("imdb", split="train[:100]").to_list() + records = [ + { + "text": sample["text"], + "label": "positive" if sample["label"] == 1 else "negative", + "external_id": uuid4() + } + for sample in hf_dataset + ] + + + dataset.records.add(records=records) + ``` + +=== "As a `Record` object" + + You can also add records to a dataset by initializing a `Record` object directly. + + ```python + import argilla_sdk as rg + + client = rg.Argilla(api_url="", api_key="") + + workspace = client.workspaces("my_workspace") + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + records = [ + rg.Record( + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + ), + rg.Record( + fields={ + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius" + }, + ), + ] + + dataset.records.add(records) + ``` + + !!! example "HF example" + + ```python + import datasets + from datasets import load_dataset + from uuid import uuid4 + + client = rg.Argilla(api_url="", api_key="") + workspace = client.workspaces("my_workspace") + user_id = client.users("my_user").id + + dataset = client.datasets(name="my_dataset", workspace=workspace) + + hf_dataset = load_dataset("imdb", split="train[:100]").to_list() + records = [ + rg.Record( + fields={"text": sample["text"]} + responses=[ + rg.Response( + "label", + "positive" if sample["label"] == 1 else "negative", + user_id=user_id) + ], + external_id=uuid4() + ) + for sample in hf_dataset + ] + + dataset.records.add(records) + ``` + +### Metadata + +Record metadata can include any information about the record that is not part of the fields in the form of a dictionary. To use metadata for filtering and sorting records, make sure that the key of the dictionary corresponds with the metadata property `name`. When the key doesn't correspond, this will be considered extra metadata that will get stored with the record (as long as `allow_extra_metadata` is set to `True` for the dataset), but will not be usable for filtering and sorting. + +!!! note + Remember that to use metadata within a dataset, you must define a metadata property in the [dataset settings](dataset.md). + +=== "As part of a dictionary" + You can add metadata to a record directly as a dictionary, where the keys correspond to the names of metadata properties in the dataset and the values are the metadata to be added. Remember that you can also use the `mapping` parameter to specify the data structure. + + ```python + # Add records to the dataset with the metadata 'category' + data = [ + { + "question": "Do you need oxygen to breathe?", + "answer": "Yes", + "category": "A", + }, + { + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius", + "category": "B", + }, + ] + dataset.records.add(data) + ``` + +=== "As part of a `Record` object" + You can also add metadata to a record in an initialized `Record` object. + + ```python + # Add records to the dataset with the metadata 'category' + records = [ + rg.Record( + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + metadata={"category": "A"}, + ), + rg.Record( + fields={ + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius" + }, + metadata={"category": "B"}, + ), + ] + dataset.records.add(records) + ``` + +### Vectors + +You can associate vectors, like text embeddings, to your records. They can be used for semantic search in the UI and the Python SDK. Make sure that the length of the list corresponds to the dimensions set in the vector settings. + +!!! note + Remember that to use vectors within a dataset, you must define them in the [dataset settings](dataset.md). + +=== "As part of a dictionary" + You can add vectors as a dictionary, where the keys correspond to the `name`s of the vector settings that were configured for your dataset and the value is a list of floats. Remember that you can also use the `mapping` parameter to specify the data structure. + + ```python + # Add records to the dataset with the vector 'my_vector' and dimension=3 + data = [ + { + "question": "Do you need oxygen to breathe?", + "answer": "Yes", + "my_vector": [0.1, 0.2, 0.3], + }, + { + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius", + "my_vector": [0.2, 0.5, 0.3], + }, + ] + dataset.records.add(data) + ``` + +=== "As part of a `Record` object" + You can also add vectors to a record in an initialized `Record` object. + + > Check the [Vector - Python Reference](../reference/argilla_sdk/records/vectors.md) to see the attributes, arguments, and methods of the `Vector` class in detail. + + ```python + # Add records to the dataset with the vector 'my_vector' and dimension=3 + records = [ + rg.Record( + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + vectors=[ + rg.Vector("my_vector", [0.1, 0.2, 0.3]) + ], + ), + rg.Record( + fields={ + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius" + }, + vectors=[ + rg.Vector("my_vector", [0.2, 0.5, 0.3]) + ], + ), + ] + dataset.records.add(records) + ``` + +### Suggestions + +Suggestions refer to suggested responses (e.g. model predictions) that you can add to your records to make the annotation process faster. These can be added during the creation of the record or at a later stage. Only one suggestion can be provided for each question, and suggestion values must be compliant with the pre-defined questions e.g. if we have a `RatingQuestion` between 1 and 5, the suggestion should have a valid value within that range. + +=== "As part of a dictionary" + You can add suggestions as a dictionary, where the keys correspond to the `name`s of the labels that were configured for your dataset. Remember that you can also use the `mapping` parameter to specify the data structure. + + ```python + # Add records to the dataset with the label 'my_label' + data = [ + { + "question": "Do you need oxygen to breathe?", + "answer": "Yes", + "my_label.suggestion": "positive", + "my_label.suggestion.score": 0.9, + "my_label.suggestion.agent": "model_name" + }, + { + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius", + "my_label.suggestion": "negative", + "my_label.suggestion.score": 0.9, + "my_label.suggestion.agent": "model_name" + }, + ] + dataset.records.add(data) + ``` + +=== "As part of a `Record` object" + You can also add suggestions to a record in an initialized `Record` object. + + > Check the [Suggestions - Python Reference](../reference/argilla_sdk/records/suggestions.md) to see the attributes, arguments, and methods of the `Suggestion` class in detail. + + ```python + # Add records to the dataset with the label 'my_label' + records = [ + rg.Record( + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + suggestions=[ + rg.Suggestion( + "my_label", + "positive", + score=0.9, + agent="model_name" + ) + ], + ), + rg.Record( + fields={ + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius" + }, + suggestions=[ + rg.Suggestion( + "my_label", + "negative", + score=0.9, + agent="model_name" + ) + ], + ), + ] + dataset.records.add(records) + ``` + +### Responses + +If your dataset includes some annotations, you can add those to the records as you create them. Make sure that the responses adhere to the same format as Argilla's output and meet the schema requirements for the specific type of question being answered. Make sure to include the `user_id` in case you're planning to add more than one response for the same question, if not responses will apply to all the annotators. + +!!! note + Keep in mind that records with responses will be displayed as "Draft" in the UI. + +=== "As part of a dictionary" + You can add suggestions as a dictionary, where the keys correspond to the `name`s of the labels that were configured for your dataset. Remember that you can also use the `mapping` parameter to specify the data structure. If you want to specify the user that added the response, you can use the `user_id` parameter. + + ```python + # Add records to the dataset with the label 'my_label' + data = [ + { + "question": "Do you need oxygen to breathe?", + "answer": "Yes", + "my_label.response": "positive", + }, + { + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius", + "my_label.response": "negative", + }, + ] + dataset.records.add(data, user_id=user.id) + ``` + +=== "As part of a `Record` object" + You can also add suggestions to a record in an initialized `Record` object. + + > Check the [Responses - Python Reference](../reference/argilla_sdk/records/responses.md) to see the attributes, arguments, and methods of the `Suggestion` class in detail. + + ```python + # Add records to the dataset with the label 'my_label' + records = [ + rg.Record( + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + responses=[ + rg.Response("my_label", "positive", user_id=user.id) + ] + ), + rg.Record( + fields={ + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius" + }, + responses=[ + rg.Response("my_label", "negative", user_id=user.id) + ] + ), + ] + dataset.records.add(records) + ``` + +## List records + +To list records in a dataset, you can use the `records` method on the `Dataset` object. This method returns a list of `Record` objects that can be iterated over to access the record properties. + +```python +for record in dataset.records( + with_suggestions=True, + with_responses=True, + with_vectors=True + ): + + # Access the record properties + print(record.metadata) + print(record.vectors) + print(record.suggestions) + print(record.responses) + + # Access the responses of the record + for response in record.responses: + print(record.question_name.value) +``` + +## Update records + +You can update records in a dataset calling the `update` method on the `Dataset` object. To update a record, you need to provide the record `id` and the new data to be updated. + +```python +data = dataset.records.to_list(flatten=True) + +updated_data = [ + { + "text": sample["text"], + "label": "positive", + "id": sample["id"], + } + for sample in data +] +dataset.records.update(records=updated_data) +``` +!!! note "Update the metadata" + To update the metadata of a record, you can iterate over the records and update the metadata dictionary by key or using `metadata.update`. After that, you should update the records in the dataset. + + ```python + updated_records = [] + for record in dataset.records(): + + # By key + record.metadata["my_metadata"] = "new_value" + record.metadata["my_new_metadata"] = "new_value" + + # With metadata.update + record.metadata.update({"my_metadata": "new_value", "my_new_metadata": "new_value"}) + + updated_records.append(record) + + dataset.records.update(records=updated_records) + ``` \ No newline at end of file diff --git a/argilla-sdk/docs/how_to_guides/user.md b/argilla-sdk/docs/how_to_guides/user.md new file mode 100644 index 0000000000..95a77ab125 --- /dev/null +++ b/argilla-sdk/docs/how_to_guides/user.md @@ -0,0 +1,202 @@ +--- +description: In this section, we will provide a step-by-step guide to show how to manage users and their credentials. +--- + +# User Management + +This guide provides an overview of user roles and credentials, explaining how to set up and manage users in Argilla. + +A **user** in Argilla is an authorized person, who depending on their role, can use the Python SDK and access the UI in a running Argilla instance. We differentiate between three types of users depending on their role, permissions and needs: `owner`, `admin` and `annotator`. + +=== "Overview" + | | Owner | Admin | Annotator | + |-------------------------------|------------|---------------------------|-----------| + | **Number** | Unlimited | Unlimited | Unlimited | + | **Create and delete workspaces** | Yes | No | No | + | **Assign users to workspaces** | Yes | No | No | + | **Create, configure, update, and delete datasets** | Yes | Only within assigned workspaces | No | + | **Create, update, and delete users** | Yes | No | No | + | **Provide feedback with Argila UI** | Yes | Yes | Yes | + + +=== "Owner" + + The `owner` refers to the root user who created the Argilla instance. Using workspaces within Argilla proves highly beneficial for organizing tasks efficiently. So, the owner has full access to all workspaces and their functionalities: + + - **Workspace management**: It can create, read and delete a workspace. + - **User management**: It can create a new user, assign it to a workspace, and delete it. It can also list them and search for a specific one. + - **Dataset management**: It can create, configure, retrieve, update, and delete datasets. + - **Annotation**: It can annotate datasets in the Argilla UI. + - **Feedback**: It can provide feedback with the Argilla UI. + +=== "Admin" + + An `admin` user can only access the workspaces it has been assigned to and cannot assign other users to it. An admin user has the following permissions: + + - **Dataset management**: It can create, configure, retrieve, update, and delete datasets only on the assigned workspaces. + - **Annotation**: It can annotate datasets in the assigned workspaces via the Argilla UI. + - **Feedback**: It can provide feedback with the Argilla UI. + +=== "Annotator" + + An `annotator` user is limited to accessing only the datasets assigned to it within the workspace. It has two specific permissions: + + - **Annotation**: It can annotate the assigned datasets in the Argilla UI. + - **Feedback**: It can provide feedback with the Argilla UI. + +!!! Question "Question: Who can manage users?" + + Only users with the `owner` role can manage (create, retrieve, delete) other users. + +## Default users and credentials + +Argilla provides a default user with the `owner` role to help you get started in Python and the UI. The credentials for this user vary depending on the server configuration. + +| Environment | Username | Password | API Key | +|-------------------------------|----------|-------------|----------------| +| Quickstart Docker and HF Space | owner | 12345678 | owner.apikey | +| Server image | argilla | 1234 | argilla.apikey | + +!!! info "Main Class" + + ```python + rg.User( + username="username", + first_name="first_name", + last_name="last_name", + role="owner", + password="password", + client=client + ) + ``` + > Check the [User - Python Reference](../reference/argilla_sdk/users.md) to see the attributes, arguments, and methods of the `User` class in detail. + +## Get current user + +To ensure you're using the correct credentials for managing users, you can get the current user in Argilla using the `me` attribute of the `Argilla` class. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +current_user = client.me +current_user +``` + +## Create a user + +To create a new user in Argilla, you can define it in the `User` class and then call the `create` method. This method is inherited from the `Resource` base class and operates without modifications. + +!!! info Password generation + If you don't provide a password, a random one will be generated for you. Ensure you store this password securely by accessing it through `user.password` immediately after user creation. For security reasons, the password will not be retrievable later. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +user_to_create = rg.User( + username="my_username", + password="12345678", + client=client +) + +created_user = user_to_create.create() +``` +!!! tip "Accessing attributes" + Access the attributes of a user by calling them directly on the `User` object. For example, `user.id` or `user.username`. + +## List users + +You can list all the existing users in Argilla by accessing the `users` attribute on the `Argilla` class and iterating over them. You can also use `len(client.users)` to get the number of users. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +users = client.users + +for user in users: + print(user) +``` +!!! tip "Notebooks" + When using a notebook, executing `client.users` will display a table with `username`, `id`, `role`, and the last update as `updated_at`. + +## Retrieve a user + +You can retrieve an existing user from Argilla by accessing the `users` attribute on the `Argilla` class and passing the `username` as an argument. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +retrieved_user = client.users('my_username') +``` + +## List users in a workspace + +You can list all the users in a workspace by accessing the `users` attribute on the `Workspace` class and iterating over them. You can also use `len(workspace.users)` to get the number of users by workspace. + +> For further information on how to manage workspaces, check this [how-to guide](workspace.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces('my_workspace') + +for user in workspace.users: + print(user) +``` + +## Add a user to a workspace + +You can add an existing user to a workspace in Argilla by calling the `add_to_workspace` method on the `User` class. + +> For further information on how to manage workspaces, check this [how-to guide](workspace.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +user = client.users('my_username') +workspace = client.workspaces('my_workspace') + +added_user = user.add_to_workspace(workspace) +``` + +## Remove a user from a workspace + +You can remove an existing user from a workspace in Argilla by calling the `remove_from_workspace` method on the `User` class. + +> For further information on how to manage workspaces, check this [how-to guide](workspace.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +user = client.users('my_username') +workspace = client.workspaces('my_workspace') + +removed_user = user.remove_from_workspace(workspace) +``` + +## Delete a user + +You can delete an existing user from Argilla by calling the `delete` method on the `User` class. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +user_to_delete = client.users('my_username') + +deleted_user = user_to_delete.delete() +``` \ No newline at end of file diff --git a/argilla-sdk/docs/how_to_guides/workspace.md b/argilla-sdk/docs/how_to_guides/workspace.md new file mode 100644 index 0000000000..feeffeb9a7 --- /dev/null +++ b/argilla-sdk/docs/how_to_guides/workspace.md @@ -0,0 +1,164 @@ +--- +description: In this section, we will provide a step-by-step guide to show how to manage workspaces. +--- + +# Workspace Management + +This guide provides an overview of workspaces, explaining how to set up and manage workspaces in Argilla. + +A **workspace** is a *space* inside your Argilla instance where authorized users can collaborate on datasets. It is accessible through the Python SDK and the UI. + +!!! Question "Question: Who can manage workspaces?" + + Only users with the `owner` role can manage (create, read and delete) workspaces. + + A user with the `admin` role can only read the workspace to which it belongs. + +## Default workspaces + +Argilla provides a default workspace to help you get started in Python and the UI. The name of this workspace varies depending on the server configuration. + +| Environment | Name | +|-------------------------------|----------| +| Quickstart Docker and HF Space | admin | +| Server image | argilla | + +!!! info "Main Class" + + ```python + rg.Workspace( + name = "name", + client=client + ) + ``` + > Check the [Workspace - Python Reference](../reference/argilla_sdk/workspaces.md) to see the attributes, arguments, and methods of the `Workspace` class in detail. + +## Create a new workspace + +To create a new workspace in Argilla, you can define it in the `Workspace` class and then call the `create` method. This method is inherited from the `Resource` base class and operates without modifications. + +> When you create a new workspace, it will be empty. To create and add a new dataset, check these [guides](../dataset.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace_to_create = rg.Workspace( + name = "my_workspace", + client=client +) + +created_workspace = workspace_to_create.create() +created_workspace +``` +!!! tip "Accessing attributes" + Access the attributes of a workspace by calling them directly on the `Workspace` object. For example, `workspace.id` or `workspace.name`. + +## List workspaces + +You can list all the existing workspaces in Argilla by calling the `workspaces` attribute on the `Argilla` class and iterating over them. You can also use `len(client.workspaces)` to get the number of workspaces. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspaces = client.workspaces + +for workspace in workspaces: + print(workspace) +``` +!!! tip "Notebooks" + When using a notebook, executing `client.workspaces` will display a table with the number of `datasets` in each workspace, `name`, `id`, and the last update as `updated_at`. + +## Retrieve a workspace + +You can retrieve a workspace by accessing the `workspaces` method on the `Argilla` class and passing the name of the workspace as an argument. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +retrieved_workspace = client.workspaces("my_workspace") +``` + +## Check workspace existence + +You can check if a workspace exists by calling the `exists` method on the `Workspace` class. This method returns a boolean value. + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +workspace_existed = workspace.exists() +``` + +## List users in a workspace + +You can list all the users in a workspace by accessing the `users` attribute on the `Workspace` class and iterating over them. You can also use `len(workspace.users)` to get the number of users by workspace. + +> For further information on how to manage users, check this [how-to guide](user.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces('my_workspace') + +for user in workspace.users: + print(user) +``` + +## Add a user to a workspace + +You can also add a user to a workspace by calling the `add_user` method on the `Workspace` class. + +> For further information on how to manage users, check this [how-to guide](user.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +added_user = workspace.add_user("my_username") +``` + +## Remove a user from workspace + +You can also remove a user from a workspace by calling the `remove_user` method on the `Workspace` class. + +> For further information on how to manage users, check this [how-to guide](user.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace = client.workspaces("my_workspace") + +removed_user = workspace.remove_user("my_username") +``` + +## Delete a workspace + +To delete a workspace, **no dataset can be associated with it**. If the workspace contains any dataset, deletion will fail. You can delete a workspace by calling the `delete` method on the `Workspace` class. + +> To clear a workspace and delete all their datasets, refer to this [how-to guide](dataset.md). + +```python +import argilla_sdk as rg + +client = rg.Argilla(api_url="", api_key="") + +workspace_to_delete = client.workspaces("my_workspace") + +deleted_workspace = workspace_to_delete.delete() +``` \ No newline at end of file diff --git a/argilla-sdk/docs/index.md b/argilla-sdk/docs/index.md new file mode 100644 index 0000000000..b42c438c9b --- /dev/null +++ b/argilla-sdk/docs/index.md @@ -0,0 +1,64 @@ +--- +description: Argilla is a **collaboration platform for AI engineers and domain experts** that require **high-quality outputs, full data ownership, and overall efficiency**. +hide: navigation +--- + +# Welcome to Argilla Docs + +Argilla is a **collaboration platform for AI engineers and domain experts** that require **high-quality outputs, full data ownership, and overall efficiency**. + +
+ +- __Get started in 5 minutes__ + + --- + + Install `argilla` with `pip` and deploy a `Docker` locally or for free on Hugging Face to get up and running in minutes. + + [:octicons-arrow-right-24: Quickstart](getting_started/quickstart/) + +- __How-to guides__ + + --- + + Get familiar with common workflows for Argilla. From managing [`Users`](how_to_guides/user.md), [`Workspaces`](how_to_guides/workspace.md). [`Datasets`](how_to_guides/dataset.md) and [`Records`](how_to_guides/record.md) to fine-tuning a model. + + [:octicons-arrow-right-24: How-to guides](how_to_guides) + +
+ + + +## Why use Argilla? + +Whether you are working on monitoring and improving complex **generative tasks** involving LLM pipelines with RAG, or you are working on a **predictive task** for things like AB-testing of span- and text-classification models. Our versatile platform helps you ensure **your data work pays off**. + +

Improve your AI output quality through data quality

+ +Compute is expensive and output quality is important. We help you focus on data, which tackles the root cause of both of these problems at once. Argilla helps you to **achieve and keep high-quality standards** for your data. This means you can improve the quality of your AI output. + +

Take control of your data and models

+ +Most AI platforms are black boxes. Argilla is different. We believe that you should be the owner of both your data and your models. That's why we provide you with all the tools your team needs to **manage your data and models in a way that suits you best**. + +

Improve efficiency by quickly iterating on the right data and models

+ +Gathering data is a time-consuming process. Argilla helps by providing a platform that allows you to **interact with your data in a more engaging way**. This means you can quickly and easily label your data with filters, AI feedback suggestions and semantic search. So you can focus on training your models and monitoring their performance. + + +## What do people build with Argilla? + +

Datasets and models

+ +Argilla is a tool that can be used to achieve and keep **high-quality data standards** with a **focus on NLP and LLMs**. Our community uses Argilla to create amazing open-source [datasets](https://huggingface.co/datasets?other=argilla) and [models](https://huggingface.co/models?other=distilabel), and **we love contributions to open-source** ourselves too. + +- Our [cleaned UltraFeedback dataset](https://huggingface.co/datasets/argilla/ultrafeedback-binarized-preferences-cleaned) and the [Notus](https://huggingface.co/argilla/notus-7b-v1) and [Notux](https://huggingface.co/argilla/notux-8x7b-v1) models, where we improved benchmark and empirical human judgment for the Mistral and Mixtral models with cleaner data using **human feedback**. +- Our [distilabeled Intel Orca DPO dataset](https://huggingface.co/datasets/argilla/distilabel-intel-orca-dpo-pairs) and the [improved OpenHermes model](https://huggingface.co/argilla/distilabeled-OpenHermes-2.5-Mistral-7B), show how we improve model performance by filtering out 50% of the original dataset through **human and AI feedback**. + +

Projects and pipelines

+ +AI teams from companies like [the Red Cross](https://510.global/), [Loris.ai](https://loris.ai/) and [Prolific](https://www.prolific.com/) use Argilla to **improve the quality and efficiency of AI** projects. They shared their experiences in our [AI community meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB). + +- AI for good: [the Red Cross presentation](https://youtu.be/ZsCqrAhzkFU?feature=shared) showcases **how their experts and AI team collaborate** by classifying and redirecting requests from refugees of the Ukrainian crisis to streamline the support processes of the Red Cross. +- Customer support: during [the Loris meetup](https://youtu.be/jWrtgf2w4VU?feature=shared) they showed how their AI team uses unsupervised and few-shot contrastive learning to help them **quickly validate and gain labelled samples for a huge amount of multi-label classifiers**. +- Research studies: [the showcase from Prolific](https://youtu.be/ePDlhIxnuAs?feature=shared) announced their integration with our platform. They use it to actively **distribute data collection projects** among their annotating workforce. This allows them to quickly and **efficiently collect high-quality data** for their research studies. \ No newline at end of file diff --git a/argilla-sdk/docs/integrations/index.md b/argilla-sdk/docs/integrations/index.md new file mode 100644 index 0000000000..8084baf14c --- /dev/null +++ b/argilla-sdk/docs/integrations/index.md @@ -0,0 +1,50 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# argilla-sdk + +
+ +- :material-clock-fast:{ .lg .middle } __Distilabel__ + + --- + + [`distilabel`](#) is a lightweight, easy-to-use, and scalable framework for AI feedback and synthetic data generation which directly integrates with Argilla. It is designed to help you quickly and easily create high-quality labeled data for your LLMs. + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Argilla Metrics__ + + --- + + [`argilla-metrics`](#) is a self-maintained library for tracking and evaluating the performance of your models and annotators. + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + + +- :material-clock-fast:{ .lg .middle } __Llama-index__ + + --- + + [`argilla-llama-index`](#) is LLM orchestration framework. The integration with Argilla allows you to easily monitor pipeline traces and adding human feedback to your them. + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Haystack__ + + --- + + [`argilla-haystack`](#) is LLM orchestration framework. The integration with Argilla allows you to easily monitor pipeline traces and adding human feedback to your them. + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Unstructured__ + + --- + + [`argilla-unstructured`](#) is an ETL framework for LLM data. The integration with Argilla allows you to easily store and evaluate data from ETL pipelines and improve the quality using a human touch. + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +
\ No newline at end of file diff --git a/argilla-sdk/docs/overview/changelog.md b/argilla-sdk/docs/overview/changelog.md new file mode 100644 index 0000000000..8b09626d24 --- /dev/null +++ b/argilla-sdk/docs/overview/changelog.md @@ -0,0 +1,7 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# Changelog + +Placeholder tex \ No newline at end of file diff --git a/argilla-sdk/docs/overview/community.md b/argilla-sdk/docs/overview/community.md new file mode 100644 index 0000000000..21fef30c97 --- /dev/null +++ b/argilla-sdk/docs/overview/community.md @@ -0,0 +1,13 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +## Community + +We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: + +- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. + +- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. + +- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/community/contributor.md b/argilla-sdk/docs/overview/community/contributor.md new file mode 100644 index 0000000000..21fef30c97 --- /dev/null +++ b/argilla-sdk/docs/overview/community/contributor.md @@ -0,0 +1,13 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +## Community + +We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: + +- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. + +- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. + +- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/community/developer.md b/argilla-sdk/docs/overview/community/developer.md new file mode 100644 index 0000000000..21fef30c97 --- /dev/null +++ b/argilla-sdk/docs/overview/community/developer.md @@ -0,0 +1,13 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +## Community + +We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: + +- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. + +- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. + +- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/community/index.md b/argilla-sdk/docs/overview/community/index.md new file mode 100644 index 0000000000..21fef30c97 --- /dev/null +++ b/argilla-sdk/docs/overview/community/index.md @@ -0,0 +1,13 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +## Community + +We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: + +- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. + +- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. + +- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/concepts/index.md b/argilla-sdk/docs/overview/concepts/index.md new file mode 100644 index 0000000000..256acb67d8 --- /dev/null +++ b/argilla-sdk/docs/overview/concepts/index.md @@ -0,0 +1,7 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# Argilla concepts + +Placeholder text \ No newline at end of file diff --git a/argilla-sdk/docs/overview/installation/index.md b/argilla-sdk/docs/overview/installation/index.md new file mode 100644 index 0000000000..411ea8fd92 --- /dev/null +++ b/argilla-sdk/docs/overview/installation/index.md @@ -0,0 +1,7 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# argilla-sdk + +Placeholder text \ No newline at end of file diff --git a/argilla-sdk/docs/overview/installation/telemetry.md b/argilla-sdk/docs/overview/installation/telemetry.md new file mode 100644 index 0000000000..411ea8fd92 --- /dev/null +++ b/argilla-sdk/docs/overview/installation/telemetry.md @@ -0,0 +1,7 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# argilla-sdk + +Placeholder text \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/INDEX.md b/argilla-sdk/docs/reference/argilla_sdk/INDEX.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/argilla-sdk/docs/reference/argilla_sdk/SUMMARY.md b/argilla-sdk/docs/reference/argilla_sdk/SUMMARY.md new file mode 100644 index 0000000000..3c0fd95193 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/SUMMARY.md @@ -0,0 +1,16 @@ +* [rg.Argilla](client.md) +* [rg.Workspace](workspaces.md) +* [rg.User](users.md) +* [rg.Dataset](datasets/datasets.md) + * [rg.Dataset.records](datasets/dataset_records.md) +* [rg.Settings](settings/settings.md) + * [Fields](settings/fields.md) + * [Questions](settings/questions.md) + * [Metadata](settings/metadata_property.md) + * [Vectors](settings/vectors.md) +* [rg.Record](records/records.md) + * [rg.Response](records/responses.md) + * [rg.Suggestion](records/suggestions.md) + * [rg.Vector](records/vectors.md) + * [rg.Metadata](records/metadata.md) +* [rg.Query](search.md) diff --git a/argilla-sdk/docs/reference/argilla_sdk/client.md b/argilla-sdk/docs/reference/argilla_sdk/client.md new file mode 100644 index 0000000000..188b8f8385 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/client.md @@ -0,0 +1,50 @@ +# `rg.Argilla` + +To interact with the Argilla server from python you can use the `Argilla` class. The `Argilla` client is used to create, get, update, and delete all Argilla resources, such as workspaces, users, datasets, and records. + +## Usage Examples + +### Connecting to an Argilla server + +To connect to an Argilla server, instantiate the `Argilla` class and pass the `api_url` of the server and the `api_key` to authenticate. + +```python +import argilla_sdk as rg + +client = rg.Argilla( + api_url="https://argilla.example.com", + api_key="my_token", +) +``` + +### Accessing Dataset, Workspace, and User objects + +The `Argilla` clients provides access to the `Dataset`, `Workspace`, and `User` objects of the Argilla server. + +```python + +my_dataset = client.datasets("my_dataset") + +my_workspace = client.workspaces("my_workspace") + +my_user = client.users("my_user") + +``` + +These resources can then be interacted with to access their properties and methods. For example, to list all datasets in a workspace: + +```python +for dataset in my_workspace.datasets: + print(dataset.name) +``` + + +--- + +## Class Reference + +### `rg.Argilla` + +::: argilla_sdk.client.Argilla + options: + heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md new file mode 100644 index 0000000000..2c4edb9e99 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md @@ -0,0 +1,132 @@ + +# `rg.Dataset.records` + +## Usage Examples + +In most cases, you will not need to create a `DatasetRecords` object directly. +Instead, you can access it via the `Dataset` object: + +### Adding records to a dataset + +To add records to a dataset, use the `add` method. Records can be added as dictionaries or as `Record` objects. Single records can also be added as a dictionary or `Record`. + + + +```python +# Add records to a dataset +dataset.records.add( + records=[ + { + "question": "What is the capital of France?", # 'question' matches the `rg.TextField` name + "answer": "Paris" # 'answer' matches the `rg.TextQuestion` name + }, + { + "question": "What is the capital of Germany?", + "answer": "Berlin" + }, +]) +``` + +When adding records from a native datasource, a mapping can be provided to map the keys in the native data structure to the fields and questions in Argilla. The dot notation is used to access suggestions and responses in the records. + +```python +dataset.records.add( + records=[ + {"input": "What is the capital of France?", "output": "Paris"}, + {"input": "What is the capital of Germany?", "output": "Berlin"}, + ], + mapping={"input": "question", "output": "answer"}, # Maps 'input' to 'question' and 'output' to 'answer' +) +``` + +### Iterating over records in a dataset + +`Dataset.records` can be used to iterate over records in a dataset from the server. The records will be fetched in batches from the server:: + +```python +for record in dataset.records: + print(record) + +# Fetch records with suggestions and responses +for record in dataset.records(with_suggestions=True, with_responses=True): + print(record.suggestions) + print(record.responses) + +# Filter records by a query and fetch records with vectors +for record in dataset.records(query="capital", with_vectors=True): + print(record.vectors) +``` + +Check out the [`rg.Record`](../records/record.md) class reference for more information on the properties and methods available on a record and the [`rg.Query`](../query/query.md) class reference for more information on the query syntax. + + +### Updating records in a dataset + +Records can also be updated using the `id` to identify the records to be updated: + +```python +# Add records to a dataset +dataset.records.add( + records=[ + { + "id": "1", + "question": "What is the capital of France?", + "answer": "F", + }, + { + "id": "2", + "question": "What is the capital of Germany?", + "answer": "Berlin" + }, + ] +) + +# Update records in a dataset +dataset.records.update( + records=[ + { + "id": "1", # matches id used in `Dataset.records.add` + "question": "What is the capital of France?", + "answer": "Paris", + } + ] +) +``` + +### Exporting records from a dataset + +Records can also be exported from `Dataset.records`. Generic python exports include `to_dict` and `to_list` methods. + +```python +dataset.records.to_dict() +# {"text": ["Hello", "World"], "label": ["greeting", "greeting"]} + +dataset.records.to_list() +# [{"text": "Hello", "label": "greeting"}, {"text": "World", "label": "greeting"}] +``` + +--- + +## Class Reference + +### `rg.Dataset.records` + +::: argilla_sdk.records.DatasetRecords + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md new file mode 100644 index 0000000000..224f10a6b3 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md @@ -0,0 +1,45 @@ +# `rg.Dataset` + +`Dataset` is a class that represents a collection of records. It is used to store and manage records in Argilla. + +## Usage Examples + +### Creating a Dataset + +To create a new dataset you need to define its name and settings. Optional parameters are `workspace` and `client`, if you want to create the dataset in a specific workspace or on a specific Argilla instance. + +```python +dataset = rg.Dataset( + name="my_dataset", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), +) +dataset.create() +``` + +For a detail guide of the dataset creation and publication process, see the [Dataset how to guide](/argilla-python/how_to_guides/dataset). + +### Retrieving an existing Dataset + + +To retrieve an existing dataset, use `client.datasets("my_dataset")` instead. + +```python +dataset = client.datasets("my_dataset") +``` + +--- + +## Class Reference + +### `rg.Dataset` + +::: argilla_sdk.datasets.Dataset + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/metadata.md b/argilla-sdk/docs/reference/argilla_sdk/records/metadata.md new file mode 100644 index 0000000000..687fda64b0 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/records/metadata.md @@ -0,0 +1,34 @@ +# `metadata` + +Metadata in argilla is a dictionary that can be attached to a record. It is used to store additional information about the record that is not part of the record's fields or responses. For example, the source of the record, the date it was created, or any other information that is relevant to the record. Metadata can be added to a record directly or as valules within a dictionary. + +## Usage Examples + +To use metadata within a dataset, you must define a metadata property in the dataset settings. The metadata property is a list of metadata properties that can be attached to a record. The following example demonstrates how to add metadata to a dataset and how to access metadata from a record object: + +```python +import argilla_sdk as rg + +dataset = Dataset( + name="dataset_with_metadata", + settings=Settings( + fields=[TextField(name="text")], + questions=[LabelQuestion(name="label", labels=["positive", "negative"])], + metadata=[ + rg.TermsMetadataProperty(name="category", options=["A", "B", "C"]), + ], + ), +) +dataset.create() +``` + +Then, you can add records to the dataset with metadata that corresponds to the metadata property defined in the dataset settings: + +```python +dataset_with_metadata.records.add( + [ + {"text": "text", "label": "positive", "category": "A"}, + {"text": "text", "label": "negative", "category": "B"}, + ] +) +``` \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/records.md b/argilla-sdk/docs/reference/argilla_sdk/records/records.md new file mode 100644 index 0000000000..706c4e76db --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/records/records.md @@ -0,0 +1,68 @@ +# `rg.Record` + +The `Record` object is used to represent a single record in Argilla. It contains fields, suggestions, responses, metadata, and vectors. + +## Usage Examples + +### Creating a Record + +To add records, you can pass dictionaries to the `Dataset.records.add` method. Argilla will instantiate the `Record` class based on the input data and `mapping` property. The input data keys must match the names in `rg.Settings` object, or be mapped via the dictionary passed to the `mapping` parameter. + +```python +dataset.records.add( + records=[ + { + "question": "What is the capital of France?", + "answer": "Paris" + }, +]) +``` + +You can also create `Record` objects directly and pass them to the same method. + +```python +records = [ + rg.Record( + fields={"text": "Hello World, how are you?"}, + responses=[rg.Response("label", "positive", user_id=user_id)], + ), + ] +dataset.records.add(records=records) +``` + +### Accessing Record Attributes + +The `Record` object has suggestions, responses, metadata, and vectors attributes that can be accessed directly whilst iterating over records in a dataset. + +```python +for record in dataset.records( + with_suggestions=True, + with_responses=True, + with_metadata=True, + with_vectors=True + ): + print(record.suggestions) + print(record.responses) + print(record.metadata) + print(record.vectors) +``` + +Record properties can also be updated whilst iterating over records in a dataset. + +```python +for record in dataset.records(with_metadata=True): + record.metadata = {"department": "toys"} +``` + +For changes to take effect, the user must call the `update` method on the `Dataset` object. + + +--- + +## Class Reference + +### `rg.Record` + +::: argilla_sdk.records.Record + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/responses.md b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md new file mode 100644 index 0000000000..9d7b46862e --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md @@ -0,0 +1,66 @@ +# `rg.Response` + +Class for interacting with Argilla Responses of records. Responses are answers to questions by a user. Therefore, a recod question can have multiple responses, one for each user that has answered the question. A `Response` is typically created by a user in the UI or consumed from a data source as a label, unlike a `Suggestion` which is typically created by a model prediction. + +## Usage Examples + +Responses can be added to an instantiated `Record` directly or as a dictionary a dictionary. The following examples demonstrate how to add responses to a record object and how to access responses from a record object: + +Instantiate the `Record` and related `Response` objects: + +```python +dataset.records.add( + [ + rg.Record( + fields={"text": "Hello World, how are you?"}, + responses=[rg.Response("label", "negative", user_id=user.id)], + external_id=str(uuid.uuid4()), + ) + ] +) +``` + +Or, add a response from a dictionary where key is the question name and value is the response: + +```python + +dataset.records.add( + [ + { + "text": "Hello World, how are you?", + "label.response": "negative", + }, + ] +) +``` + +Responses can be accessed from a `Record` via their question name as an attribute of the record. So if a question is named `label`, the response can be accessed as `record.label`. The following example demonstrates how to access responses from a record object: + +```python + +# iterate over the records and responses + +for record in dataset.records: + for response in record.responses.label: + print(response.value) + print(response.user_id) + +# validate that the record has a response + +for record in dataset.records: + if record.responses.label: + for response in record.responses.label: + print(response.value) + print(response.user_id) + +``` + +--- + +## Class Reference + +### `rg.Response` + +::: argilla_sdk.responses.Response + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md new file mode 100644 index 0000000000..f4ee4fc281 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md @@ -0,0 +1,75 @@ +# `rg.Suggestion` + +Class for interacting with Argilla Suggestions of records. Suggestions are typically created by a model prediction, unlike a `Response` which is typically created by a user in the UI or consumed from a data source as a label. + +## Usage Examples + +### Adding records with suggestions + +Suggestions can be added to a record directly or via a dictionary structure. The following examples demonstrate how to add suggestions to a record object and how to access suggestions from a record object: + +Add a response from a dictionary where key is the question name and value is the response: + +```python +dataset.records.add( + [ + { + "text": "Hello World, how are you?", + "label": "negative", # this will be used as a suggestion + }, + ] +) +``` + +If your data contains scores for suggestions you can add them as well via the `mapping` parameter. The following example demonstrates how to add a suggestion with a score to a record object: + +```python +dataset.records.add( + [ + { + "prompt": "Hello World, how are you?", + "label": "negative", # this will be used as a suggestion + "score": 0.9, # this will be used as the suggestion score + "model": "model_name", # this will be used as the suggestion agent + }, + ], + mapping={ + "score": "label.suggestion.score", + "model": "label.suggestion.agent", + }, # `label` is the question name in the dataset settings +) +``` + + + +Or, instantiate the `Record` and related `Suggestions` objects directly, like this: + +```python +dataset.records.add( + [ + rg.Record( + fields={"text": "Hello World, how are you?"}, + suggestions=[rg.Suggestion("negative", "label", score=0.9, agent="model_name")], + ) + ] +) +``` + +### Iterating over records with suggestions + +Just like responses, suggestions can be accessed from a `Record` via their question name as an attribute of the record. So if a question is named `label`, the suggestion can be accessed as `record.label`. The following example demonstrates how to access suggestions from a record object: + +```python +for record in dataset.records(with_suggestions=True): + print(record.suggestions.label) +``` + +--- + +## Class Reference + +### `rg.Suggestion` + +::: argilla_sdk.suggestions.Suggestion + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md new file mode 100644 index 0000000000..53e8b5ef7b --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md @@ -0,0 +1,74 @@ +# `rg.Vector` + +A vector is a numerical representation of a `Record` field or attribute, usually the record's text. Vectors can be used to search for similar records via the UI or SDK. Vectors can be added to a record directly or as a dictionary with a key that the matches `rg.VectorField` name. + +## Usage Examples + +To use vectors within a dataset, you must define a vector field in the dataset settings. The vector field is a list of vector fields that can be attached to a record. The following example demonstrates how to add vectors to a dataset and how to access vectors from a record object: + + +```python +import argilla_sdk as rg + +dataset = Dataset( + name="dataset_with_metadata", + settings=Settings( + fields=[TextField(name="text")], + questions=[LabelQuestion(name="label", labels=["positive", "negative"])], + vectors=[ + VectorField(name="vector_name"), + ], + ), +) +dataset.create() +``` + +Then, you can add records to the dataset with vectors that correspond to the vector field defined in the dataset settings: + +```python +dataset.records.add( + [ + { + "text": "Hello World, how are you?", + "vector_name": [0.1, 0.2, 0.3] + } + ] +) +``` + +Vectors can be passed using a mapping, where the key is the key in the data source and the value is the name in the dataset's setting's `rg.VectorField` object. For example, the following code adds a record with a vector using a mapping: + +```python +dataset.records.add( + [ + { + "text": "Hello World, how are you?", + "x": [0.1, 0.2, 0.3] + } + ], + mapping={"x": "vector_name"} +) +``` + +Or, vectors can be instantiated and added to a record directly, like this: + +```python +dataset.records.add( + [ + rg.Record( + fields={"text": "Hello World, how are you?"}, + vectors=[rg.Vector("embedding", [0.1, 0.2, 0.3])], + ) + ] +) +``` + +--- + +## Class Reference + +### `rg.Vector` + +::: argilla_sdk.vectors.Vector + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/search.md b/argilla-sdk/docs/reference/argilla_sdk/search.md new file mode 100644 index 0000000000..704d0598f2 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/search.md @@ -0,0 +1,54 @@ +# `rg.Query` + +To collect records based on searching criteria, you can use the `Query` and `Filter` classes. The `Query` class is used to define the search criteria, while the `Filter` class is used to filter the search results. `Filter` is passed to a `Query` object so you can combine multiple filters to create complex search queries. A `Query` object can also be passed to `Dataset.records` to fetch records based on the search criteria. + +## Usage Examples + +### Searching for records with terms + +To search for records with terms, you can use the `Dataset.records` attribute with a query string. The search terms are used to search for records that contain the terms in the text field. + +```python +for record in dataset.records(query="paris"): + print(record) + +``` + +### Filtering records by conditions + +Argilla allows you to filter records based on conditions. You can use the `Filter` class to define the conditions and pass them to the `Dataset.records` attribute to fetch records based on the conditions. Conditions include "==", ">=", "<=", or "in". Conditions can be combined with dot notation to filter records based on metadata, suggestions, or responses. + +```python + +# create a range from 10 to 20 +range_filter = rg.Filter( + [ + ("metadata.count", ">=", 10), + ("metadata.count", "<=", 20) + ] +) + +# query records with metadata count greater than 10 and less than 20 +query = rg.Query(filters=range_filter, query="paris") + +# iterate over the results +for record in dataset.records(query=query): + print(record) +``` + + +--- + +## Class Reference + +### `rg.Query` + +::: argilla_sdk.records._search.Query + options: + heading_level: 3 + +### `rg.Filter` + +::: argilla_sdk.records._search.Filter + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md new file mode 100644 index 0000000000..8f3bd04144 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md @@ -0,0 +1,40 @@ +# Fields + +Fields in Argilla are define the content of a record that will be reviewed by a user. + +## Usage Examples + +To define a field, instantiate the `TextField` class and pass it to the `fields` parameter of the `Settings` class. + +```python +text_field = rg.TextField(name="text") +markdown_field = rg.TextField(name="text", use_markdown=True) +``` + +The `fields` parameter of the `Settings` class can accept a list of fields, like this: + +```python +settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], +) + +data = rg.Dataset( + name="my_dataset", + settings=settings, +) + +``` + +> To add records with values for fields, refer to the [`rg.Dataset.records`](../records/records.md) documentation. + +--- + +## Class References + +### `rg.TextField` + +::: argilla_sdk.settings.TextField + options: + heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md new file mode 100644 index 0000000000..82a2287fea --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md @@ -0,0 +1,82 @@ +# Metadata Properties + +Metadata properties are used to define metadata fields in a dataset. Metadata fields are used to store additional information about the records in the dataset. For example, the category of a record, the price of a product, or any other information that is relevant to the record. + +## Usage Examples + +### Defining Metadata Property for a dataset + +We define metadata properties via type specific classes. The following example demonstrates how to define metadata properties as either a float, integer, or terms metadata property: + +`TermsMetadataProperty` is used to define a metadata field with a list of options. For example, a color field with options red, blue, and green. `FloatMetadataProperty` and `IntegerMetadataProperty` is used to define a metadata field with a float value. For example, a price field with a minimum value of 0.0 and a maximum value of 100.0. + + +```python +import argilla_sdk as rg + +# Define metadata properties as terms +metadata_field = rg.TermsMetadataProperty( + name="color", + options=["red", "blue", "green"], + title="Color", +) + +# Define metadata properties as float +float_ metadata_field = rg.FloatMetadataProperty( + name="price", + min=0.0, + max=100.0, + title="Price", +) + +# Define metadata properties as integer +int_metadata_field = rg.IntegerMetadataProperty( + name="quantity", + min=0, + max=100, + title="Quantity", +) +``` + +Metadata properties can be added to a dataset settings object: + +```python + +dataset = rg.Dataset( + name="my_dataset", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + metadata=[ + metadata_field, + float_metadata_field, + int_metadata_field, + ], + ), +) +``` + +> To add records with metadata, refer to the [`rg.Metadata`](../records/metadata.md) class documentation. + +--- + +## Class References + +### `rg.FloatMetadataProperty` + +::: argilla_sdk.settings.FloatMetadataProperty + options: + heading_level: 3 + +### `rg.IntegerMetadataProperty` + +::: argilla_sdk.settings.IntegerMetadataProperty + options: + heading_level: 3 + +### `rg.TermsMetadataProperty` + +::: argilla_sdk.settings.TermsMetadataProperty + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md new file mode 100644 index 0000000000..f27643a956 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md @@ -0,0 +1,88 @@ +# Questions + +Questions in Argilla are the questions that will be answered as feedback. They are used to define the questions that will be answered by users or models. + +## Usage Examples + +To define a label question, for example, instantiate the `LabelQuestion` class and pass it to the `Settings` class. + +```python +label_question = rg.LabelQuestion(name="label", labels=["positive", "negative"]) + +settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + label_question, + ], +) + +``` + +Questions can be combined in extensible ways based on the type of feedback you want to collect. For example, you can combine a label question with a text question to collect both a label and a text response. + +```python +label_question = rg.LabelQuestion(name="label", labels=["positive", "negative"]) +text_question = rg.TextQuestion(name="response") + +settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + label_question, + text_question, + ], +) + +dataset = rg.Dataset( + name="my_dataset", + settings=settings, +) + + +``` + +> To add records with responses to questions, refer to the [`rg.Response`](../records/responses.md) class documentation. + + +--- + +## Class References + +### `rg.LabelQuestion` + +::: argilla_sdk.settings.LabelQuestion + options: + heading_level: 3 + +### `rg.MultiLabelQuestion` + +::: argilla_sdk.settings.MultiLabelQuestion + options: + heading_level: 3 + +### `rg.RankingQuestion` + +::: argilla_sdk.settings.RankingQuestion + options: + heading_level: 3 + +### `rg.TextQuestion` + +::: argilla_sdk.settings.TextQuestion + options: + heading_level: 3 + +### `rg.RatingQuestion` + +::: argilla_sdk.settings.RatingQuestion + options: + heading_level: 3 + +### `rg.SpanQuestion` + +::: argilla_sdk.settings.SpanQuestion + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md new file mode 100644 index 0000000000..f945da4c72 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md @@ -0,0 +1,40 @@ +# `rg.Settings` + +`rg.Settings` is used to define the setttings of an Argilla `Dataset`. The settings can be used to configure the +behavior of the dataset, such as the fields, questions, guidelines, metadata, and vectors. The `Settings` class is +passed to the `Dataset` class and used to create the dataset on the server. Once created, the settings of a dataset +cannot be changed. + +## Usage Examples + +### Creating a new dataset with settings + +To create a new dataset with settings, instantiate the `Settings` class and pass it to the `Dataset` class. + +```python +import argilla_sdk as rg + +settings = rg.Settings( + guidelines="Select the sentiment of the prompt.", + fields=[rg.TextField(name="prompt", use_markdown=True)], + questions=[rg.LabelQuestion(name="sentiment", labels=["positive", "negative"])], +) + +dataset = rg.Dataset(name="sentiment_analysis", settings=settings) + +# Create the dataset on the server +dataset.create() + +``` + +> To define the settings for fields, questions, metadata, or vectors, refer to the [`rg.TextField`](fields.md), [`rg.LabelQuestion`](questions.md), [`rg.TermsMetadataProperty`](metadata_property.md), and [`rg.VectorField`](vectors.md) class documentation. + +--- + +## Class Reference + +### `rg.Settings` + +::: argilla_sdk.settings.Settings + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md new file mode 100644 index 0000000000..52292587fb --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md @@ -0,0 +1,34 @@ +# Vectors + +Vector fields in Argilla are used to define the vector form of a record that will be reviewed by a user. + +## Usage Examples + +To define a vector field, instantiate the `VectorField` class with a name and dimenstions, then pass it to the `vectors` parameter of the `Settings` class. + +```python +settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + vectors=[ + rg.VectorField( + name="my_vector", + dimension=768, + title="Document Embedding", + ), + ], +) +``` + +> To add records with vectors, refer to the [`rg.Vector`](../records/vectors.md) class documentation. + +--- + +## Class Reference + +### `rg.VectorField` + +::: argilla_sdk.settings.VectorField + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/users.md b/argilla-sdk/docs/reference/argilla_sdk/users.md new file mode 100644 index 0000000000..076cc2d466 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/users.md @@ -0,0 +1,34 @@ +# `rg.User` + +A user in Argilla is a profile that uses the SDK or UI. Their profile can be used to track their feedback activity and to manage their access to the Argilla server. + +## Usage Examples + +To create a new user, instantiate the `User` object with the client and the username: + +```python +user = rg.User(username="my_username", password="my_password") +user.create() +``` + +Existing users can be retrieved by their username: + +```python +user = client.users("my_username") +``` + +The current user of the `rg.Argilla` client can be accessed using the `me` attribute: + +```python +client.me +``` + +--- + +## Class Reference + +### `rg.User` + +::: argilla_sdk.users.User + options: + heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/workspaces.md b/argilla-sdk/docs/reference/argilla_sdk/workspaces.md new file mode 100644 index 0000000000..0227e746a0 --- /dev/null +++ b/argilla-sdk/docs/reference/argilla_sdk/workspaces.md @@ -0,0 +1,30 @@ +# `rg.Workspace` + + + +In Argilla, workspaces are used to organize datasets in to groups. For example, you might have a workspace for each project or team. + +## Usage Examples + +To create a new workspace, instantiate the `Workspace` object with the client and the name: + +```python +workspace = rg.Workspace(name="my_workspace") +workspace.create() +``` + +To retrieve an existing workspace, use the `client.workspaces` attribute: + +```python +workspace = client.workspaces("my_workspace") +``` + +--- + +## Class Reference + +### `rg.Workspace` + +::: argilla_sdk.workspaces.Workspace + options: + heading_level: 4 \ No newline at end of file diff --git a/argilla-sdk/docs/scripts/gen_ref_pages.py b/argilla-sdk/docs/scripts/gen_ref_pages.py new file mode 100644 index 0000000000..9cae49eb63 --- /dev/null +++ b/argilla-sdk/docs/scripts/gen_ref_pages.py @@ -0,0 +1,54 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from pathlib import Path + +import mkdocs_gen_files + +nav = mkdocs_gen_files.Nav() + +src = Path(__file__).parent.parent.parent / "src" +# Add here any files that shouldn't be taken into account +excluded = ["_"] + +for path in sorted(src.rglob("*.py")): + # remove leading with wildcard exclude + + if any(path.name.startswith("_") for exclude in excluded): + continue + if any(path.name.__contains__(exclude) for exclude in excluded): + continue + module_path = path.relative_to(src).with_suffix("") + doc_path = path.relative_to(src).with_suffix(".md") + full_doc_path = Path("reference", doc_path) + + parts = tuple(module_path.parts) + + if parts[-1] == "__init__": + parts = parts[:-1] + doc_path = doc_path.with_name("index.md") + full_doc_path = full_doc_path.with_name("index.md") + elif parts[-1] == "__main__": + continue + + nav[parts] = doc_path.as_posix() + + with mkdocs_gen_files.open(full_doc_path, "w") as fd: + ident = ".".join(parts) + fd.write(f"::: {ident}") + + mkdocs_gen_files.set_edit_path(full_doc_path, path) + +with mkdocs_gen_files.open("reference/SUMMARY.md", "w") as nav_file: + nav_file.writelines(nav.build_literate_nav()) diff --git a/argilla-sdk/docs/stylesheets/extra.css b/argilla-sdk/docs/stylesheets/extra.css new file mode 100644 index 0000000000..9f9a792feb --- /dev/null +++ b/argilla-sdk/docs/stylesheets/extra.css @@ -0,0 +1,29 @@ +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..600&display=swap'); + +:root { + --md-text-font: "Inter"; +} + +[data-md-color-scheme="default"] { + --md-typeset-a-code-color: var(--md-default-fg-color--light); + --md-accent-typeset-a-code-color: var(--md-default-fg-color--lighter); + --md-typeset-a-color: #5859c0; + --md-accent-fg-color: #6366fa; +} + +[data-md-color-scheme="slate"] { + --md-primary-fg-color: hsla(var(--md-hue), 15%, 9%, 1); + --md-primary-fg-color--dark: hsla(var(--md-hue), 15%, 9%, 1); + --md-typeset-a-code-color: var(--md-accent-bg-color); + --md-accent-typeset-a-code-color: var(--md-default-fg-color); + --md-typeset-a-color: #8384cc; + --md-accent-fg-color: #7f81f3; +} + +.md-typeset a code { + color: var(--md-typeset-a-code-color); +} + +.md-typeset a:hover code { + color: var(--md-accent-typeset-a-code-color); +} \ No newline at end of file diff --git a/argilla-sdk/docs/stylesheets/fonts/FontAwesome.otf b/argilla-sdk/docs/stylesheets/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 GIT binary patch literal 134808 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.eot b/argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 GIT binary patch literal 165742 zcmd443w)Ht)jvM-T=tf|Uz5#kH`z;W1W0z103j^*Tev7F2#5hiQ9w~aka}5_DkxP1 zRJ3Y?7YePlysh?CD|XvjdsAv#YOS?>W2@EHO9NV8h3u2x_sp}KECIB>@9+Qn{FBV{ zJTr4<=FH5QnRCvZnOu5{#2&j@Vw_3r#2?PKa|-F4dtx{Ptp0P(#$Rn88poKQO<|X@ zOW8U$o^4<&*p=|D!J9EVI}`7V*m|~_En`<8B*M-{$Q6LOSfmND1Z!lia3ffVHQ_mu zwE*t)c_Na~v9UCh+1x2p=FeL7+|;L;bTeUAHg(eEDN-*};9m=WXwJOhO^lgVEPBX5Gh_bo8QSSFY{vM^4hsD-mzHX!X?>-tpg$&tfe27?V1mUAbb} z1dVewCjIN7C5$=lXROG% zX4%HIa)VTc_%^_YE?u@}#b58a4S8RL@|2s`UUucWZ{P9NJxp5Fi!#@Xx+(mZ+kdt3 zobw#*|6)Z(BxCGw^Gi+ncRvs|a|3xz=tRA9@HDV~1eqD)`^`KTPEg`UdXhq18})-@}JTHp30^)`L{?* z;c)alkYAc@67|W!7RDPu6Tsy@xJCK8{2T9-fJw6?@=A(w^}KCVjwlOd=JTO=3Zr+< zIdd?1zo-M^76}Jf!cpLfH`+2q=}d5id5XLcPw#xVocH5RVG7;@@%R>Sxpy8{(H9JH zY1V)?J1-AIeIxKhoG1%;AWq7C50ok3DSe?!Gatbry_zpS*VoS6`$~lK9E?(!mcrm1 z^cLZ1fmx5Ds`-ethCvMtDTz zMd=G1)gR$jic|1SaTLaL-{ePJOFkUs%j634IMp}dnR5yGMtsXmA$+JDyxRuSq*)bk zt3tSN2(J<@ooh3|!(R%VsE#5%U{m-mB7fcy&h(8kC(#>yA(JCmQ6|O1<=_U=0+$AY zC)@~M`UboR6Xm2?$e8Z$r#u8)TEP0~`viw@@+){#874R?kHRP|IU4&!?+9Cy52v^I zPV4Xd{9yc;)#l?0VS#6g@ z`#y))03Laq@^6Z#Z*uvzpl{$JzFJgn&xHlNBS|Eb!E@}~Z$^m!a9k34KX zT|VETZ;B_E$Ai8J#t5#kATCAUlqbr&P~-s)k^FfWyz}iK@`B$FI6L0u1uz5fgfqgU zRBmB>F8s_qp1HWm1!aXOEbpf`U?X|>{F`8Md500U3i;Mh9Kvbd(CeuC>077ww4g^h zKgM(A48W`XEDE~N*Th^NqP#S7&^w2Vpq+df2#@A*&4u~I+>t)9&GYcop9OtUo=;2d zGSq?IMBAYZffMC1v^|Z|AWdQ38UdJS4(H(nFI<|%=>0iAn3lvcSjIR(^7r7QuQI0a zm+@Z9QXmf!efG1**%Ryq_G-AQs-mi^*WO#v+tE9_cWLjXz1Q{L-uqzh z-Vb`UBlaT|M;ecG9GQJ&>5)s1TzBO5BM%;V{K#`h4juXPkq?e&N9{)|j&>ZKeRS#3 zOOIZ6^!B3<9)0}ib4L#y{qxZe{ss8}C5PC)Atkb2XK%PS)jPMht9Na0x_5hTckhAT zOz+FRJ-xk0*b(QE(2)^GQb*<<={mCZNczb3Bi%<19LXGc`AE-^-lOcO^Jw^J>ge2~ zT}Rg*O&{HUwEO6RqnV>GAMK$M`~TX%q<>-my#5LOBmex)pWgq|V@{jX>a;k`PLtE< zG&ohK;*_0|<6n-C93MK4I*vGc9shKE;CSEhp5tA|KOBE|yyJM=@i)g?jyD~Db^OKg zhNH*vXUCr$uRH$ec+K$#$E%LtJ6>`8&T-iBTicKH)SNMZS zB8UG!{1{Y=QL&oLMgLzR(}0Y>sN0TqgG|kLqv_VcVSLD)aJ?AC^D!bLa6K5Ut1)YA zghRXq;YBrYhrzOK23vXorq6v~v*CBb?*bYw$l-3J@cY5H}8Gr;t8{e8!J}L*5e>!hOQnM3g=8eoXDiYZBlmBW?=(Qvo;ib;hP4-|5>J zo6*MD%*UW90?aI=ncV;fJZB$fY|a73<^rd=!0(I%TsLE9TH#hRHV<&~b~82~@n<2= z1-*oTQL{zWh}4H zGjX>}SbW{R;(k^VBouiebp<&Q9S1P`GIlM(uLaz7TNt~37h`FJ-B1j-jj@}iF}B$Yhy1^cv|oM`3X|20-GXwq z0QapK#%@FUZ9ik|D}cWpad#li_7EK6?wrrq4l5kOc5H@2*p5ENc6Pxb%`OEl1=q{i zU1`Sdjxcu562^8fWbEEDi1(A=o?`5)DC_=i#vVX^45ZpSrpE35`g>WA+_QYDo!1%Byk?;4A*Y^%H_McC{^)mJp(mf6Mr$1rr8Klp< z@9$&m+0Bd{OfmMH!q^XxU*>tneq@E)#@LU6-}5Nz`DYpXi4*QA#$MRP*w045^)U8x zl=XAu_Y36n%QPIqUi^r$mjH7JWgdEmv0oiv>}BNj>jtO;GSSiGr=LO--M;f3$4%-kcdA5=kp1;?w1)iU%_3WyqWQmjf@AcVZ3xc<7I~# zFHgbYU4b-}3LN4>NEZft6=17@TlH$jBZ!NjjQC2%Yu;hJu9NWwZ@DynQp=tBj8Wjw$e9<5A{>pD{iW zZqogXPX_!HxT$LypN98z;4>ox_a@^r4>R7`&G@Wh#%HG(p9^;e{AczsK5r7^^FxfE z1>DZ=f&=UVl(8@Y2be_)+!n?cUjPUAC8+bcuQI+Aab3F@Uxu=lJpt$oQq38DE=X{7U3=m6P!eKVy6&>UK5q-?WYKFCon} zcwbuv_Xy+HBi;48;XYwJy_)eGknfFvzbOHS_{~WFRt)zJ zijpU?=0x zkwe%IkXL3J<39wBKYX6?A1iQgGX8uw<3E|t_zN{~?=k)}E8{7uHGX6%I@xLJ5o5hU3g}A@9GyXR4dV3$^??m7ZGyeD0jQ;~={sZ6d0>}3fa8JQ~ z#Q6Kj>z^jLM;Px_;9g|>2lp6?Oy32JW8UD|ZH#LugXW9=mzl&9Ov2uUBsVZgS;-{zFeKKwOfnbOFe$i&Nu~HMe}YLB^Wk1(Qs^2cg^_pF zV@!&4GARo9*fb`^0bBDClWMmysSaUvuQREB7n2(BZbV*M)y$0@8CXG!nX&m5FyO}f|^_bYrq)EtQ3jEW$ z;E;a$iwt`}|2xOlf`@fNIFLzjYz@1@vMcQB;TbKpR_b1>hK{W@uw#sVI6JqW86H;C ztQ;P%k-Nf8ey^cATop^SG>2V0mP~Z;=5SL5H#}UQ-NIABSS;9=rYBEjx70^!0%|%? z6H%vBBRb1si5UK{xwWyrI#6mdl~NhlB{DFSQ4f#HYnQ4Tr9_9++!S!BCwdbtt-PhV z2|9^MD=%7f(aK494ZCcz4t6dY`X;_62ywrIPovV+sT0pH?+{mwxjh%^> zh_?T`uiv2^KX}>z4HVY!Y%V1QDcBvi>!sD@MEbj99(bg@lcBxTD9~gYzfIm>7jFFl;^hEgOD8Clhu+6jw>0z&OhJ=2DoJ42R3QaA zWOOLCseE6;o!xG!?ra~f^>o~D+1yBE?qxT0^k{Eo?@YU;MW)Dk7u-Ja^-t=jry`Nm z^!iU;|I=I9eR|&CLf`eUDtM5Q2iZ}-MO8dOpsgMv)7Ge`r77T1(I!FduCuw%>+xyh zv~lQApLDjitE7#8{D!C9^9KL8O}^S6)E?BVMw_qP`rdoia-YG@KjOf%Qh4Bnt8Mcoi9h#JRYY3kEvn*UVbReO50BrmV+ z;MZw4c4)uX7XS38vL%mZ(`R5ww4GL|?R_+gqd5vmpyBRdmy(bdo1(0=sB8@yxdn)~lxbJjigu9=)pPhNBHJ@OCr@Hfy7 zMKpelG=3bck_~6$*c^5qw$ra?cd)OqZ$smlOvLJWm7$z_{bM*t_;dW+m52!n&yhSI z0)LYKbKpO(yrBb!r(;1ei=F17uvjq5XquDp?1L{4s1~Hu@I46id3j>UeJTcx0fQ!$ z&o9RBJJn}4D52n3P@|_Z2y%SzQ!WJ22E$LC;WNiX*{T?@;Pj!}DC|#~nZ>-HpIS<2 za>P22_kUiz%sLYqOLTT7B=H>lmeZ$;kr+*xoe54)>BRz1U!muO7@@$$G=552gn*!9 zJ(lYeq-%(OX#D?e|IqRz)>flsYTDXrc#58b-%`5Jmp#FEV%&+o&w?z>k%vUF^x&@! zd}aqf<-yN_(1OoX0~BNi5+XV}sW1Mo_rky5sw&#MPqeg*Iv+ow^-qi|g!>=1)d@|( zIJ=tJ4Yw%YfhiFbenxIIR1N1mmKeveFq!eFI?k+2%4<3`YlV3hM zS45R<;g^uVtW5iZbSGet@1^}8sBUEktA@_c>)?i}IE-EQTR@N-j%b9$Syc1{S3U?8e~d3B1?Lij0H27USiF&gR}A>wG-vBGIPuh*4ry;{Khxekv}wCTm%_>vhFZSJ)Pw2iv6Q4YVoQ`J2w?yCkiavVTWeVa)j|q=T9@J0pTtcQX!VHnIM6Al- z^*7Og!1y$xN4)5fYK&2X5x-Om4A;1k20|=O+$wl^1T}IRHkcq<^P$a{C0fAii(ypB z{ef1n(U1a&g|>5}zY?N{!tOqN_uYr3yPejjJ>KeR7IW!#ztw(g!*Hj~SpH|bkC%t5kd^Q2w*f{D8tJPwQ z++kT&2yEHVY_jXXBg!P7SUbSC;y1@rj$sqoMWF2=y$%ua1S%Nn_dvGwR*;O^!Fd?1 z8#WkKL1{>+GcdW?sX2^RC#k8D;~{~1M4#fpPxGDbOWPf?oRS^(Y!}arFj}-9Ta5B$ zZhP0#34P$Fx`;w}a*AU%t?#oPQ+U$umO}+(WIxS!wnBcQuM;%yiYhbKnNwXa7LiRjmf+(2(ZG}wiz%sgWJi>jgGIsPnZ=KfX?8mJ2^L!4-hBx#UR zZa((80+3k2t!n9h@La(dm&Qrs_teRTeB}Y= zShqm6zJdPGS+juA6^_Mu3_1sz1Hvx#*|M6pnqz`jk<&F@Wt;g%i&gunm7lM5)wE@q zvbn6Q=6IU;C_@UMWs|fmylAcBqr(MowarQT7@9BsXzyH534G z1e0`Rlnqb_RAIW{M7dQoxdg$ z;&VZRA?1jrgF9nN0lg?)7VU>c#YI}iVKVtMV&I^SUL2sA9Xn2<8mY@_)qZF;^OV!$ z;QVMjZTMUtC^eDXuo)DkX75sJ*#d6g{w?U1!Fbwid(nlSiF_z zStRqVrV`8MJBg{|ZM^Kzrps2`fI(Eq&qUZ%VCjWLQn)GthGkFz0LcT(tUy)_i~PWb ze1obC@Hu0-n}r4LO@8%lp3+uoAMDWnx#|WFhG&pQo@eXSCzjp(&Xl4$kfY60LiIx^ zs+SA=sm(K<-^V>WxOdf!NXC0qN&86q?xh#r;L)>)B|KXvOuO+4*98HO?4jfcxpk`^ zU^8+npM|PWn*7Nj9O_U%@pt)^gcu2m|17^}h}J6KWCJ>t zv@Qsc2z0711@V0%PDVqW?i)a)=GC>nC+Kx~*FeS}p5iNes=&dpY_lv9^<|K`GOJMG zE5^7&yqgjFK*qz6I-su3QFo4`PbRSbk|gNIa3+>jPUVH}5I6C)+!U&5lUe4HyYIe4 z>&a$lqL(n;XP)9F?USc6ZA6!;oE+i8ksYGTfe8;xbPFg9e&VVdrRpkO9Zch#cxJH7 z%@Bt~=_%2;shO9|R5K-|zrSznwM%ZBp3!<;&S0$4H~PJ&S3PrGtf}StbLZKDF_le= z9k)|^Do10}k~3$n&#EP*_H_-3h8^ZuQ2JXaU@zY|dW@$oQAY%Z@s0V8+F~YQ=#aqp z=je#~nV5}oI1J`wLIQ^&`Mj01oDZ;O`V>BvWCRJd%56g!((T@-{aY6fa;a0Vs+v@O z0IK2dXum&DKB?-ese^F~xB8#t6TFirdTy3(-MedKc;2cI&D}ztv4^I%ThCj* ziyQ90UpuyI`FYm%sUlWqP(!Qcg-7n%dk-&uY15{cw0HD+gbuz}CQP*u8*(+KCYFiz80m1pT=kmx0(q(xrCPMsUH1k{mefDSp) zD5G^q?m1N%Jbl&_iz65-uBs{~7YjNpQ%+H^=H7i%nHnwimHSGDPZ(Z;cWG1wcZw|v z%*juq&!(bo!`O7T>Wkon^QZ-rLvkd_^z#)5Hg zxufObryg!`lzZc#{xRRv6592P5fce0Hl-xEm^*nBcP$v z0`KR64y6=xK{a*oNxW9jv+9)$I9SxN-Oig_c%UK7hZDj_WEb$BDlO#*M?@b>eU7 zxN!%UE+w#Wg$bqFfc# zeDOpwnoY)%(93rx(=q9nQKg6?XKJZrRP#oo(u>h_l6NOMld)_IF( zs6M+iRmTC+ALc}C7V>JEuRjk9o)*YO8Y}oKQNl2t?D;qFLv4U`StSyoFzFYuq>i@C zEa1!N?B0BK0gjTwsL04McVmu=$6B!!-4bi1u_j7ZpCQm-l2u7AlYMmx zH!4a*@eEhENs{b-gUMy{c*AjMjcwAWGv@lW4YQtoQvvf*jQ2wL8+EGF4rQjAc;uiEzG%4uf z9wX{X3(U5*s$>6M z)n+q=_&#l6nEa|4ez8YOb9q{(?8h1|AYN<53x+g()8?U_N+)sEV;tdoV{pJ^DTD)ZvO|;^t&(V6L2z~TSiWu zI&#bLG#NGMHVY^mJXXH_jBGA?Np1q;)EYzS3U=1VKn3aXyU}xGihu`L8($R|e#HpJ zzo`QozgXO&25>bM*l>oHk|GV&2I+U-2>)u7C$^yP7gAuth~}8}eO^2>X_8+G@2GX0 zUG8;wZgm*=I4#ww{Ufg2!~-Uu*`{`!$+eE)in1}WPMJ%i|32CjmFLR8);bg^+jrF* zW0A!Zuas6whwVl!G+Vp(ysAHq9%glv8)6>Sr8w=pzPe1s`fRb9oO^yGOQW^-OZ=5? zNNaJk+iSAxa}{PtjC&tu_+{8J_cw=JiFhMqFC!}FHB@j}@Q$b&*h-^U)Y&U$fDWad zC!K&D&RZgww6M(~`@DA92;#vDM1_`->Ss*g8*57^PdIP-=;>u#;wD4g#4|T7ZytTY zx(Q8lO+5Ris0v-@GZXC@|&A*DPrZ51ZeSyziwc>%X>dNyCAL zOSDTJAwK7d2@UOGmtsjCPM9{#I9Gbb7#z25{*;Tyl-Zho(Oh~-u(5CLQl;2ot%#Nl z_cf{VEA=LuSylKv$-{%A=U+QBv0&8bP;vDOcU|zc3n!Nu{9=5j6^6DL&6tm-J4|~) z9#1w(@m3N|G3n9Xf)O<|NO+P)+F(TgqN3E#F8`eIrDZn0=@MQ%cDBb8e*D_eBUXH+ zOtn|s5j9y2W~uaQm*j{3fV=j|wxar?@^xjmPHKMYy0eTPkG*<=QA$Wf)g`tfRlZ0v ztEyRwH(8<%&+zbQ+pg>z^Ucf8Jj>x$N*h{buawh;61^S+&ZX>H^j?#nw!}!~35^Z# zqU|=INy-tBD+E^RCJdtvC_M2+Bx*2%C6nTfGS!1b*MJvhKZZPkBfkjIFf@kLBCdo) zszai4sxmBgklbZ>Iqddc=N%2_4$qxi==t>5E!Ll+-y(NJc+^l)uMgMZH+KM<|+cUS^t~AUy&z{UpW?AA~QO;;xntfuA^Rj7SU%j)& zVs~)K>u%=e(ooP|$In{9cdb}2l?KYZinZ8o+i;N-baM#CG$-JMDcX1$y9-L(TsuaT zfPY9MCb3xN8WGxNDB@4sjvZ10JTUS1Snvy5l9QPbZJ1#AG@_xCVXxndg&0Cz99x`Z zKvV%^1YbB2L)tU+ww(e6EZYzc6gI5g;!?*}TsL=hotb0Mow8kxW*HVdXfdVep4yL` zdfTcM*7nwv5)3M-)^@ASp~`(sR`IsMgXV>xPx0&5!lR8(L&vn@?_Oi2EXy)sj?Q8S$Mm zP{=PsbQ)rJtxy*+R9EqNek1fupF(7d1z|uHBZdEQMm`l!QnDTsJ_DX2E=_R?o*D5) z4}Rh2eEvVeTQ^UXfsDXgAf@6dtaXG>!t?(&-a~B^KF@z*dl$BLVOt|yVElz!`rm5n z&%<$O{7{?+>7|f%3ctTlD}Sc0Zs_hY;YO-&eOIT+Kh%FJdM|_@8b7qIL;aj#^MhF1 z(>x4_KPKYTl+AOj0Q$t3La4&;o`HP%m8bgb`*0vs83ZT@J#{j%7e8dKm;){k%rMw* zG9eKbw_mh1PHLUB$7VNcJ=oL;nV~#W;r|rv;ISD5+Q-FH5g~=&gD`RrnNm>lGJ1GE zw`K+PW!P*uxsEyAzhLvBOEUkj>)1sV6q-RhP*nGS(JD%Z$|wijTm)a5S+oj03MzBz zPjp$XjyM!3`cFtv`8wrA`EpL(8Soof9J(X7wr2l^Y-+>){TrmrhW&h}yVPonlai>; zrF!_zz4@5^8y@95z(7+GLY@+~o<>}!RDp|@N4vi4Y-r@AF@6Q7ET8d9j~&O$3l#Yuo`voKB12v8pK*p3sJO+k{- zak5sNppfOFju-S9tC#^&UI}&^S-3TB^fmi<0$e%==MK3AqBrn!K@ZCzuah-}pRZc{ z?&7p`mEU5_{>6x=RAFr4-F+FYOMN%GSL@mvX-UT3jRI;_TJH7}l*La_ztFn+GQ3;r zNk;eb?nh&>e?Z$I<$LDON!e1tJ26yLILq`~hFYrCA|rj2uGJHxzz@8b<} z&bETBnbLPG9E*iz!<03Ld4q;C140%fzRO5j*Ql#XY*C-ELCtp24zs*#$X0ZhlF~Qj zq$4Nq9U@=qSTzHghxD(IcI0@hO0e}l7_PKLX|J5jQe+67(8W~90a!?QdAYyLs6f^$ zgAUsZ6%aIOhqZ;;;WG@EpL1!Mxhc_XD!cTY%MEAnbR^8{!>s|QGte5Y=ivx6=T9Ei zP_M&x-e`XKwm+O(fpg~P{^7QV&DZPW)$j@GX#kClVjXN6u+n=I$K0{Y-O4?f;0vgV zY+%5cgK;dNK1}{#_x-Zyaw9sN`r9jST(^5&m&8IY?IBml#h0G3e?uSWfByzKHLe8) z9oCU{cfd~u97`w2ATe{wQPagk*)FX|S+YdySpplm-DSKB*|c>@nSp$=zj{v3WyAgw zqtk_K3c5J|0pC zSpww86>3JZSitYm_b*{%7cv?=elhCFy1v6m)^n?211803vG_;TRU3WPV`g7=>ywvsW6B76c-kXXYuS7~J+@Lc zSf%7^`HIJ4D|VX9{BlBG~IV;M->JId%#U?}jR@kQ&o5A3HyYDx}6Nc^pMjj0Jeun)M=&7-NLZ9@2 z)j60}@#z8oft^qhO`qgPG;Gf4Q@Zbq!Fx_DP1GkX<}_%EF`!5fg*xCsir}$yMH#85 zT3Y4bdV)bucC=X;w24>D>XjaA@K`En^++$6E!jmvauA$rc9F%b=P&f^I7M+{{--HM z0JXFl21+}*Oz8zr@T8JQp9Td0TZ7rr0+&rWePPKdaG}l-^)$@O*ON;2pkAjf4ZSg# zy{PLo>hhTUUK_q5L{o!vKb^7AIkbXB zm3BG{rbFE>fKfZsL4iKVYubQMO_AvYWH<3F_@;7*b}ss*4!r5a-5Mr{qoVbpXW1cja+YCd!nQ3xt*CEBq_FNhDc93rhj=>>F59=AN5 zoRmKmL))oDox0VF;gltwNSdcF9cb*OX3{Gx?X{Q-krC~b9}_3yG8Bn{`W6m}6YD#q zAkEzk)zB|ZA2Ao`dW^gC77j#kXk7>zOYg~2Y0NyG9@9L)X=yRL!=`tj7; z^S=K3l)dWTz%eniebMP!Z)q@7d(l_cR;2OvPv7I~Va{X>R@4XXh- zOMOMef=}m)U?`>^E`qUO(+Ng$xKwZ1|FQ|>X41&zvAf`(9 zj3GGCzGHqa8_lMGV+Q3A(d5seacFHJ92meB0vj+?SfQ~dL#3UE!1{}wjz|HPWCEHI zW{zYTeA(UwAEq6F%|@%!oD5ebM$D`kG45gkQ6COfjjk-==^@y6=Tp0-#~0px=I@H# z7Z|LQii;EBSfjse{lo}m?iuTG`$i6*F?L9m*kGMV_JUqsuT##HNJkrNL~cklwZK&3 zgesq4oycISoHuCg>Jo;0K(3&I(n-j7+uaf)NPK7+@p8+z!=r!xa45cmV`Mna1hT=i zAkgv-=xDHofR+dHn7FZvghtoxVqmi^U=Tk5i*(?UbiEGt9|mBN4tXfwT0b zIQSzTbod84Y<){2C!IJja=k65vqPM|!xFS?-HOK!3%&6=!T(Z$<>g6+rTpioPBf57 z$!8fVo=}&Z?KB-UB4$>vfxffiJ*^StPHhnl@7Fw@3-N|6BAyp|HhmV#(r=Ll2Y3af zNJ44J*!nZfs0Z5o%Qy|_7UzOtMt~9CA*sTy5=4c0Q9mP-JJ+p-7G&*PyD$6sj+4b>6a~%2eXf~A?KRzL4v_GQ!SRxsdZi`B(7Jx*fGf@DK z&P<|o9z*F!kX>I*;y78= z>JB#p1zld#NFeK3{?&UgU*1uzsxF7qYP34!>yr;jKktE5CNZ3N_W+965o=}3S?jx3 zv`#Wqn;l-4If#|AeD6_oY2Y||U?Fss}Sa>HvkP$9_KPcb_jB*Jc;M0XIE+qhbP$U2d z&;h?{>;H=Sp?W2>Uc{rF29ML>EiCy?fyim_mQtrgMA~^uv?&@WN@gUOPn(379I}U4Vg~Qo)jwJb7e_Pg^`Gmp+s5vF{tNzJVhBQ z$VB8M@`XJsXC!-){6wetDsTY94 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.ttf b/argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 zcmd4434D~*)jxjkv&@#+*JQHIB(r2Agk&ZO5W=u;0Z~v85Ce*$fTDsRbs2>!AXP+E zv})s8XszXKwXa&S)7IKescosX*7l99R$G?_w7v?NC%^Bx&rC7|(E7f=|L^lpa-Zk9 z`?>d?d+s^so_oVMW6Z|VOlEVZPMtq{)pOIHX3~v25n48F@|3AkA5-983xDXec_W** zHg8HX#uvihecqa7Yb`$*a~)&Wy^KjmE?joS+JOO-B;B|Y@umw`Uvs>da>d0W;5qQ!4Qz zJxL+bkEIe8*8}j>Q>BETG1+ht-^o+}utRA<*p2#Ix&jHe=hB??wf3sZuV5(_`d1DH zgI+ncCI1s*Tuw6@6DFOB@-mE3%l-{_4z<*f9!g8!dcoz@f1eyoO9;V5yN|*Pk0}XYPFk z!g(%@Qka**;2iW8;b{R|Dg0FbU_E9^hd3H%a#EV5;HVvgVS_k;c*=`1YN*`2lhZm3 zqOTF2Pfz8N%lA<(eJUSDWevumUJ;MocT>zZ5W08%2JkP2szU{CP(((>LmzOmB>ZOpelu zIw>A5mu@gGU}>QA1RKFi-$*aQL_KL1GNuOxs0@)VEz%g?77_AY_{e55-&2X`IC z!*9krPH>;hA+4QUe(ZB_4Z@L!DgUN;`X-m}3;G6(Mf9flyest6ciunvokm)?oZmzF z@?{e2C{v;^ys6AQy_IN=B99>#C*fPn3ra`%a_!FN6aIXi^rn1ymrrZ@gw3bA$$zqb zqOxiHDSsYDDkGmZpD$nT@HfSi%fmt6l*S0Iupll)-&7{*yFioy4w3x%GVEpx@jWf@QO?itTs?#7)d3a-Ug&FLt_)FMnmOp5gGJy@z7B*(^RVW^e1dkQ zkMHw*dK%Ayu_({yrG6RifN!GjP=|nt${60CMrjDAK)0HZCYpnJB&8QF&0_TaoF9-S zu?&_mPAU0&@X=Qpc>I^~UdvKIk0usk``F{`3HAbeHC$CyQPtgN@2lwR?3>fKwC|F> zYx{2LyT9-8zVGxM?E7=y2YuRM`{9bijfXoA&pEvG@Fj<@J$%dI`wu^U__@Oe5C8e_ z2ZyyI_9GQXI*-gbvh>I$N3K0`%aQw!JbvW4BL|QC`N#+Vf_#9QLu~J`8d;ySFWi^v zo7>mjx3(|cx3jOOZ+~B=@8!PUzP`iku=8-}aMR(`;kk#q53fC(KD_gA&*A-tGlyS3 z+m)8@1~El#u3as^j;LR~)}{9CG~D_9MNw(aQga zKO~TeK}MY%7{tgG{veXj;r|am2GwFztR{2O|5v~?px`g+cB0=PQ}aFOx^-}vA95F5 zA7=4<%*Y5_FJ|j%P>qdnh_@iTs0Qv3Shg)-OV0=S+zU1vekc4cfZ>81?nWLD;PJf5 zm^TgA&zNr~$ZdkLfD=nH@)f_xSjk$*;M3uDgT;zqnj*X$`6@snD%LSpiMm2N;QAN~ z_kcBPVyrp@Qi?Q@UdCdRu{^&CvWYrt=QCD^e09&FD^N$nM_`>%e`5*`?~&bbh->n~ zJ(9*nTC4`EGNEOm%t%U8(?hP3%1b;hjQAV0Nc?8hxeG3 zaPKiTHp5uQTE@n~b#}l3uJMQ)kGfOHpF%kkn&43O#D#F5Fg6KwPr4VR9c4{M`YDK; z3jZ{uoAx?m(^2k>9gNLvXKdDEjCCQ+Y~-2K00%hd9AfOW{fx~8OmhL>=?SSyfsZaC!Gt-z(=`WU+-&Dfn0#_n3e*q()q-CYLpelpxsjC~b#-P^<1eJJmK#NGc1 zV_&XPb2-)pD^|e^5@<6_cHeE7RC;w7<*1(><1_>^E_ievcm0P?8kubdDQj%vyA=3 z3HKCZFYIRQXH9UujQt#S{T$`}0_FTN4TrE7KVs}9q&bK>55B|Lul6(cGRpdO1Kd`| zeq(~e`?pp&g#Y$EXw}*o`yJwccQ0eFbi*Ov?^iSS>U6j#82bal{s6dMn-2#V{#Xo$ zI$lq~{fx0cA?=^g&OdKq?7tBAUym`?3z*+P_+QpC_SX>Hn~c4gX6!Ab|67K!w~_Ac z_ZWKz;eUUXv46n53-{h3#@>IKu@7En?4O7`qA>R1M~r=hy#Got_OTNVaQ-*)f3gq` zWqlf9>?rCwhC2Ie;GSYEYlZ8Edx9~|1c$Hz6P6|~v_elnBK`=R&nMuzUuN8VKI0ZA z+#be@iW#>ma1S$XYhc_CQta5uxC`H|9>(1-GVW=IdlO`OC*!^vIHdJ2gzINKkYT)d z3*#jl84q5~c0(mMGIK+jJFO2k6NLvlqs#h}}L0klN#8)z2^A6*6 zU5q!Nj7Gdit%LiB@#bE}TbkhZGoIMXcoN~QNYfU9dezGK=;@4)al-X6K6WSL9b4dD zWqdqfOo0cRfI27sjPXfulka7G3er!7o3@tm>3GioJTpUZZ!$jX5aV4vjL$A+d`^n- zxp1e$e?~9k^CmMsKg9T%fbFbqIHX;GIu<72kYZMzEPZ`#55myqXbyss&PdzkU-kng%ZaGx-qUd{ORDE9`W-<*I${1)W@@_xo| z#P?RjZA0Ge?Tp_{4)ER51-F;+Tjw*r6ZPHZW&C#J-;MVj3S2+qccSdOkoNAY8NUbR z-HUYhnc!Y!{C@9;sxqIIma{CrC z{*4;OzZrsik@3eKWBglt8Gju9$G0;6ZPfp5`1hya;Q!vUjQ{6qsNQ=S2c6;1ApV)% zjDJ4@_b}tnn&43HfiA|MBZsgbpsdVv#(xMHfA~D(KUU!0Wc>La#(y%O@fT{~-ede{ zR>pr0_Y2hXOT@kS3F8L=^RH0;%c~jx_4$nd=5@w@I~NXdzuUt2E2!)DYvKACfAu5A zUwe%4KcdXn;r@iOKr8s4QQm)bG5$uH@xLJ7o5hU3g}A?UF#a~+dV4S9??m7ZG5+_} zjQ<05{sZ6d0><|ea8JQ~#Q6It>z^jLhZ*lv;9g|>Fxqwm@O+4TAHKu*zfkVS4R9I8 z{~NIVcQ50g0KQKVb`<_&>lp7xn*Q?{2i@S=9gJ(JgXqP;%S_@4CSmVFk{g($tYngU z2omdDCYcd#!MC-SNwz*FIf|L&M40PMCV4uTQXRtTUT0GMZYDM0-H5Up z-(yk}+^8)~YEHrRGpXe%CMDJ}DT(-2W~^` zjDf-D4fq2U%2=tnQ*LW*>*Q@NeQ=U48Xk01IuzADy1ym0rit^WHK~^SwU449k4??k zJX|$cO-EBU&+R{a*)XQ6t~;?kuP)y%}DA(=%g4sNM$ z8a1k^e#^m%NS4_=9;HTdn_VW0>ap!zx91UcR50pxM}wo(NA}d;)_n~5mQGZt41J8L zZE5Hkn1U{CRFZ(Oxk3tb${0}UQ~92RJG;|T-PJKt>+QV$(z%hy+)Jz~xmNJS#48TFsM{-?LHd-bxvg|X{pRq&u74~nC4i>i16LEAiprfpGA zYjeP(qECX_9cOW$*W=U1YvVDXKItrNcS$?{_zh2o=MDaGyL^>DsNJtwjW%Do^}YA3 z3HS=f@249Yh{jnme5ZRV>tcdeh+=o(;eXg_-64c@tJ&As=oIrFZ& z*Gx&Lr>wdAF8POg_#5blBAP!&nm-O!$wspA>@;>RyOdqWZe?F%--gC9nTXZ%DnmK< z`p0sh@aOosD-jbIoje0ec`&&fWsK?xPdf*L)Qp(MwKKIOtB+EDn(3w-9Ns9O~i z7MwnG8-?RZlv&XIJZUK*;)r!1@Bh4bnRO*JmgwqANa8v4EvHWvBQYYGT?tN4>BRz1 zf1&5N7@@!g89ym5LO{@=9>;Y8=^ExA9{+#aKfFGPwby8wn)db@o}%Z_x0EjQWsmb6 zA9uX(vr-n8$U~x9dhk~VKeI!h^3Z2NXu;>n6BHB%6e2u2VJ!ZykHWv-t19}tU-Yz$ zHXl2#_m7V&O!q(RtK+(Yads868*Wm*!~EzJtW!oq)kw}`iSZl@lNpanZn&u|+px84 zZrN7t&ayK4;4x_@`Q;;XMO4{VelhvW%CtX7w;>J6y=346)vfGe)zJBQ9o$eAhcOPy zjwRa6$CvN-8qHjFi;}h1wAb{Kcnn{;+ITEi`fCUk^_(hJ&q1Z=yo*jRs<94E#yX67 zRj)s)V&gd0VVZGcLALQ|_Lp<4{XEBIF-*yma#;%V*m^xSuqeG?H-7=M0Cq%%W9`2Oe>Ov)OMv8yKrI^mZ$ql{A!!3mw_27Y zE=V#cA@HopguAWPAMhKDb__-Z_(TN7;*A`XxrMefxoz4{Seu)$%$=sPf{vT@Pf_T`RlrC#CPDl$#FnvU|VBC$0(E>+3EG z&3xsml}L_UE3bNGX6T~2dV6S%_M9{`E9kgHPa+9mas{tj$S<&{z?nRzH2b4~4m^Wc zVF+o4`w9BO_!IohZO_=<;=$8j?7KUk(S5llK6wfy9m$GsiN5*e{q(ZS6vU4l6&{s5 zXrJJ@giK>(m%yKhRT;egW||O~pGJ&`7b8-QIchNCms)}88aL8Jh{cIp1uu`FMo!ZP z1fne;+5#%k3SM7Kqe|`%w1JI=6hJJrog4j?5Iq!j=b=0AJS5%ev_9?eR!_H>OLzLM z_U#QLoi=0npY1+gHmde37Kgp)+PKl=nC>pM|EJCAEPBRXQZvb74&LUs*^WCT5Q%L-{O+y zQKgd4Cek)Gjy~OLwb&xJT2>V%wrprI+4aOtWs*;<9pGE>o8u|RvPtYh;P$XlhlqF_ z77X`$AlrH?NJj1CJdEBA8;q*JG-T8nm>hL#38U9ZYO3UTNWdO3rg-pEe5d= zw3Xi@nV)1`P%F?Y4s9yVPgPYT9d#3SLD{*L0U{ z;TtVh?Wb0Lp4MH{o@L6GvhJE=Y2u>{DI_hMtZgl~^3m3#ZUrkn?-5E3A!m!Z>183- zpkovvg1$mQawcNKoQ*tW=gtZqYGqCd)D#K;$p113iB1uE#USvWT}QQ7kM7!al-C^P zmmk!=rY+UJcJLry#vkO%BuM>pb)46x!{DkRYY7wGNK$v=np_sv7nfHZO_=eyqLSK zA6ebf$Bo&P&CR_C*7^|cA>zl^hJ7z0?xu#wFzN=D8 zxm(>@s?z1E;|!Py8HuyHM}_W5*Ff>m5U0Jhy?txDx{jjLGNXs}(CVxgu9Q4tPgE+Hm z*9ll7bz80456xzta(cX+@W!t7xTWR-OgnG_>YM~t&_#5vzC`Mp5aKlXsbO7O0HKAC z2iQF2_|0d6y4$Pu5P-bfZMRzac(Yl{IQgfa0V>u;BJRL(o0$1wD7WOWjKwP)2-6y$ zlPcRhIyDY>{PFLvIr0!VoCe;c_}dp>U-X z`pii$Ju=g+Wy~f|R7yuZZjYAv4AYJT}Ct-OfF$ZUBa> zOiKl0HSvn=+j1=4%5yD}dAq5^vgI~n>UcXZJGkl671v`D74kC?HVsgEVUZNBihyAm zQUE~mz%na<71JU=u_51}DT92@IPPX)0eiDweVeDWmD&fpw12L;-h=5Gq?za0HtmUJ zH@-8qs1E38^OR8g5Q^sI0)J}rOyKu$&o1s=bpx{TURBaQ(!P7i1=oA@B4P>8wu#ek zxZHJqz$1GoJ3_W^(*tZqZsoJlG*66B5j&D6kx@x^m6KxfD?_tCIgCRc?kD~(zmgCm zLGhpE_YBio<-2T9r;^qM0TO{u_N5@cU&P7is8f9-5vh4~t?zMqUEV!d@P{Y)%APE6 zC@k9|i%k6)6t2uJRQQTHt`P5Lgg%h*Fr*Hst8>_$J{ZI{mNBjN$^2t?KP8*6_xXu5xx8ufMp5R?P(R-t`{n6c{!t+*z zh;|Ek#vYp1VLf;GZf>~uUhU}a<>y*ErioacK@F{%7aq0y(Ytu@OPe;mq`jlJD+HtQ zUhr^&Zeh93@tZASEHr)@YqdxFu69(=VFRCysjBoGqZ!U;W1gn5D$myEAmK|$NsF>Z zoV+w>31}eE0iAN9QAY2O+;g%zc>2t#7Dq5vTvb&}E*5lHrkrj!I1b0=@+&c(qJcmok6 zSZAuQ496j<&@a6?K6ox1vRks+RqYD< zT9On_zdVf}IStW^#13*WV8wHQWz$L;0cm)|JDbh|f~*LV8N$;2oL|R99**#AT1smo zob=4dB_WB-D3}~I!ATFHzdW%WacH{qwv5Go2WzQzwRrv)ZajWMp{13T_u;Rz^V-VF z@#62k@#FD#t@v9ye*A%@ODWm-@oM_$_3Cy1BS+(+ujzNF@8a7?`$B^{iX2A-2_nA? zfi2=05XV^;D_2G}Up$eFW|Ofb^zuE)bWHkXR4Jm!Sz0O?)x6QD^kOufR`*v0=|sS?#*ZCvvr^VkV!zhLF3}FHf%+=#@ae1Qq<4~Y1EGYK$Ib1 zg!s~&&u27X&4Ks^(L3%}Npx!_-A)We=0v#yzv03fzxKZ8iV6KIX5U&?>^E?%iIUZ4 z2sD^vRg%kOU!B5@iV{&gBNc9vB)i{Wa@joIa2#4=oAl|-xqj_~$h33%zgk*UWGUV# zf3>{T#2buK?AZH?)h>10N)#VHvOV}%c|wR%HF|pgm8k`*=1l5P8ttZ1Ly@=C5?d9s z)R>B@43V`}=0??4tp?Y}Ox0$SH)yg(!|@V7H^}C-GyAXHFva04omv@`|LCuFRM2`U zxCM>41^p9U3cR>W>`h`{m^VWSL0SNz27{ske7TN1dTpM|P6Hn!^*}+fr>rJ*+GQN{ ziKp9Zda}CgnbNv#9^^&{MChK=E|Wr}tk?tP#Q?iZ%$2k;Eo9~}^tmv?g~PW^C$`N)|awe=5m{Xqd!M=ST?2~(mWjdOsXK#yVMN(qP6`q#tg+rQexf|*BeIU)a z^WuJyPR4WVsATp2E{*y77*kZ9 zEB{*SRHSVGm8ThtES`9!v{E``H)^3d+TG_?{b|eytE1cy^QbPxY3KFTWh&NZi`C?O z;777FMti@+U+IRl7B{=SCc93nKp`>jeW38muw(9T3AqySM#x@9G|p?N;IiNy(KN7? zMz3hIS5SaXrGqD(NIR0ZMnJT%%^~}|cG(Ez!3#)*o{{QjPUIVFOQ%dccgC0*WnAJW zL*1k^HZ5-%bN;%C&2vpW`=;dB5iu4SR48yF$;K8{SY`7mu6c z@q{10W=zwHuav3wid&;5tHCUlUgeVf&>wKuUfEVuUsS%XZ2RPvr>;HI=<(RACmN-M zR8(DJD^lePC9|rUrFgR?>hO#VkFo8}zA@jt{ERalZl$!LP4-GTT`1w}QNUcvuEFRv z`)NyzRG!e-04~~Y1DK>70lGq9rD4J}>V(1*UxcCtBUmyi-Y8Q$NOTQ&VfJIlBRI;7 z5Dr6QNIl|8NTfO>Jf|kZVh7n>hL^)`@3r1BaPIKjxrLrjf8A>RDaI{wYlKG)6-7R~ zsZQ}Kk{T~BDVLo#Zm@cc<&x{X<~boVS5(zfvp1s3RbASf6EKpp>+IFV9s`#Yx#+I& zMz5zL9IUgaqrnG*_=_qm|JBcwfl`bw=c=uU^R>Nm%k4_TeDjy|&K2eKwx!u8 z9&lbdJ?yJ@)>!NgE_vN8+*}$8+Uxk4EBNje>!s2_nOCtE+ie>zl!9&!!I)?QPMD&P zm$5sb#Le|%L<#tZbz%~WWv&yUZH6NLl>OK#CBOp{e~$&fuqQd03DJfLrcWa}IvMu* zy;z7L)WxyINd`m}Fh=l&6EWmHUGLkeP{6Vc;Xq->+AS`1T*b9>SJ#<2Cf!N<)o7Ms z!Gj)CiteiY$f@_OT4C*IODVyil4|R)+8nCf&tw%_BEv!z3RSN|pG(k%hYGrU_Ec^& zNRpzS-nJ*v_QHeHPu}Iub>F_}G1*vdGR~ZSdaG(JEwXM{Df;~AK)j(<_O<)u)`qw* zQduoY)s+$7NdtxaGEAo-cGn7Z5yN#ApXWD1&-5uowpb7bR54QcA7kWG@gybdQQa&cxCKxup2Av3_#{04Z^J#@M&a}P$M<((Zx{A8 z!Ue=%xTpWEzWzKIhsO_xc?e$$ai{S63-$76>gtB?9usV&`qp=Kn*GE5C&Tx`^uyza zw{^ImGi-hkYkP`^0r5vgoSL$EjuxaoKBh2L;dk#~x%`TgefEDi7^(~cmE)UEw*l#i+5f-;!v^P%ZowUbhH*3Av)CifOJX7KS6#d|_83fqJ#8VL=h2KMI zGYTbGm=Q=0lfc{$IDTn;IxIgLZ(Z?)#!mln$0r3A(um zzBIGw6?zmj=H#CkvRoT+C{T=_kfQQ!%8T;loQ5;tH?lZ%M{aG+z75&bhJE`sNSO`$ z`0eget1V7SqB@uA;kQ4UkJ-235xxryG*uzwDPikrWOi1;8WASslh$U4RY{JHgggsL zMaZ|PI2Ise8dMEpuPnW`XYJY^W$n>4PxVOPCO#DnHKfqe+Y7BA6(=QJn}un5MkM7S zkL?&Gvnj|DI!4xt6BV*t)Zv0YV-+(%$}7QcBMZ01jlLEiPk>A3;M^g%K=cNDF6d!7 z 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

+ +- :material-clock-fast:{ .lg .middle } __Few-shot text classification with SetFit__ + + --- + + In this tutorial, you will learn how to use bulk labeling with semantic search from [`sentence-transformers`](#) embeddings and how to fine-tune a [`SetFit`](#) model for classification. + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Zero-shot token classification with GliNER__ + + --- + + In this tutorial, you will learn how to use zero-shot predictions from [`GliNER`](#) to fine-tune a span classification model with [`SpanMarker`](#). + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Bootstrap projects using LLMs__ + + --- + + In this tutorial, you will learn how to use LLMs to bootstrap projects for tasks like text classification, token classification, relationship extraction and summarization using [`spacy-llm`](#) + + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Multi-modal projects__ + + --- + + In this tutorial, you will learn how to use Argilla for basic multi-modal projects with PDFs, images, video and audio. We will bulk label using [`sentence-transformers`](#) CLIP embeddings and fine-tune a model with [`transformers`](#). + + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + + +- :material-clock-fast:{ .lg .middle } __Monitor for data and model drift__ + + --- + + In this tutorial, you will learn you can keep track of model performance and data quality using [`BerTopic`](#) and [`text-descriptives`](#). + + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __RAG: retrievers and reranker__ + + --- + + In this tutorial, you will learn how to monitor and optimize retrieval and reranking models in a RAG pipeline using [`haystack`](#) and [`sentence-transformers`](#). + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __RAG: LLMs__ + + --- + + In this tutorial, you will learn how to monitor and optimize generative LLMs in a RAG pipeline using [`haystack`](#) and [`trl`](#). + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Instruction-tuning an LLM__ + + --- + + In this tutorial, we will curate data for supervised fine-tuning (SFT) and fine-tune an LLM using [`trl`](#). + + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + +- :material-clock-fast:{ .lg .middle } __Preference tuning an LLM__ + + --- + + In this tutorial, we will curate data for preference alignment of an LLM in order to fine-tune using [`trl`](#) and the DPO algorithm. + + + [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) + + +
\ No newline at end of file diff --git a/argilla-sdk/docs/tutorials/rag_llm.md b/argilla-sdk/docs/tutorials/rag_llm.md new file mode 100644 index 0000000000..be4ffb1551 --- /dev/null +++ b/argilla-sdk/docs/tutorials/rag_llm.md @@ -0,0 +1,13 @@ +--- +status: new +description: This tutorial demonstrates how to create a pipeline for the LLM model using the RAG architecture. +tags: + - level:advanced + - type:generative + - technique:RAG +links: + - plugins/search.md + - insiders/index.md#how-to-become-a-sponso +--- + +# RAG: Optimizing LLM for generation \ No newline at end of file diff --git a/argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md b/argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md new file mode 100644 index 0000000000..fbca3da79f --- /dev/null +++ b/argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md @@ -0,0 +1,7 @@ +--- +description: This tutorial demonstrates how to create a pipeline for the LLM model using the RAG architecture. +tags: + - level:intermediate + - type:predictive + - technique:RAG +--- \ No newline at end of file diff --git a/argilla-sdk/mkdocs.yml b/argilla-sdk/mkdocs.yml new file mode 100644 index 0000000000..913de53861 --- /dev/null +++ b/argilla-sdk/mkdocs.yml @@ -0,0 +1,149 @@ +# Project information +site_name: Argilla Docs +site_url: https://argilla-io.github.io/argilla-python +site_author: Argilla, Inc. +site_description: The Argilla python server SDK +copyright: Copyright © 2017 - 2024 Argilla + +# Repository +repo_name: argilla-io/argilla-python +repo_url: https://github.com/argilla-io/argilla-python + +extra: + version: + provider: mike + social: + - icon: fontawesome/brands/linkedin + link: https://www.linkedin.com/company/argilla-io + - icon: fontawesome/brands/x-twitter + link: https://twitter.com/argilla_io + - icon: fontawesome/brands/youtube + link: https://www.youtube.com/channel/UCAIz8TmvQQrLqbD7sd-5S2A + - icon: fontawesome/brands/slack + link: https://join.slack.com/t/rubrixworkspace/shared_invite/zt-20wllqq29-Z11~kp2SeFYjJ0qevJRiPg + +extra_css: + - stylesheets/extra.css + +theme: + name: material + logo: assets/logo.svg + favicon: assets/favicon.ico + features: + - navigation.instant + - navigation.tabs + - toc.follow + - content.code.copy + - content.code.annotate + icon: + repo: fontawesome/brands/github + palette: + - media: "(prefers-color-scheme)" + primary: white + toggle: + icon: material/brightness-auto + name: Switch to light mode + + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: white + toggle: + icon: material/brightness-7 + name: Switch to dark mode + + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: custom + toggle: + icon: material/brightness-4 + name: Switch to system preference + +watch: + - src/argilla_sdk + +# Extensions +markdown_extensions: + - attr_list + - md_in_html + - admonition + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - footnotes + - tables + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + # activating permalink: true makes the anchor link works in the notebooks + - toc: + permalink: true + + +plugins: + - search + - open-in-new-tab + # - gen-files: + # scripts: + # - docs/scripts/gen_ref_pages.py + - literate-nav: + nav_file: SUMMARY.md + - section-index + - mkdocstrings: + handlers: + python: + selection: + inherited_members: true # Allow looking up inherited methods + rendering: + show_root_heading: true # actually display anything at all... + # show_root_full_path: true # display "diffrax.asdf" not just "asdf" + show_if_no_docstring: true + show_signature_annotations: true + show_source: false # don't include source code + members_order: source # order methods according to their order of definition in the source code, not alphabetical order + heading_level: 4 + # hide private members + private: true + - social + - mknotebooks + - tags: + tags_file: tutorials/index.md + + +nav: + - Argilla: index.md + - Getting started: + - Quickstart: getting_started/quickstart.md + - Installation: getting_started/installation.md + # - FAQ: getting_started/faq.md + - How-to guides: + - how_to_guides/index.md + - Manage users and credentials: how_to_guides/user.md + - Manage workspaces: how_to_guides/workspace.md + - Manage and create datasets: how_to_guides/dataset.md + - Add, update, and delete records: how_to_guides/record.md + - Query, filter, and export records: how_to_guides/query_export.md + # - Distribute annotation work: how_to_guides/distribute.md + # - Compute metrics and KPIs: + # - how_to_guides/metrics/index.md + # - Dataset progress: how_to_guides/metrics/dataset.md + # - Model performance: how_to_guides/metrics/model.md + # - Annotator performance: how_to_guides/metrics/annotator.md + # - Fine-tune a model: fine_tune.md + # - Tutorials: + # - tutorials/index.md + # - tutorials/rag_llm.md + # - tutorials/rag_rankers_and_retrievers.md + # - Integrations: + # - integrations/index.md + - API Reference: + - Python SDK: reference/argilla_sdk/ + - UI Demo ↗: + - https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA== diff --git a/argilla-sdk/pdm.lock b/argilla-sdk/pdm.lock new file mode 100644 index 0000000000..8cafdb1606 --- /dev/null +++ b/argilla-sdk/pdm.lock @@ -0,0 +1,2539 @@ +# This file is @generated by PDM. +# It is not intended for manual editing. + +[metadata] +groups = ["default", "dev"] +strategy = ["cross_platform", "inherit_metadata"] +lock_version = "4.4.1" +content_hash = "sha256:9833bffcf7bc5d794c2a0baa88d38e5f0d42dc87516c36fbd10905620c55d9c4" + +[[package]] +name = "aiohttp" +version = "3.9.5" +requires_python = ">=3.8" +summary = "Async http client/server framework (asyncio)" +groups = ["dev"] +dependencies = [ + "aiosignal>=1.1.2", + "async-timeout<5.0,>=4.0; python_version < \"3.11\"", + "attrs>=17.3.0", + "frozenlist>=1.1.1", + "multidict<7.0,>=4.5", + "yarl<2.0,>=1.0", +] +files = [ + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcde4c397f673fdec23e6b05ebf8d4751314fa7c24f93334bf1f1364c1c69ac7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d6b3f1fabe465e819aed2c421a6743d8debbde79b6a8600739300630a01bf2c"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ae79c1bc12c34082d92bf9422764f799aee4746fd7a392db46b7fd357d4a17a"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d3ebb9e1316ec74277d19c5f482f98cc65a73ccd5430540d6d11682cd857430"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84dabd95154f43a2ea80deffec9cb44d2e301e38a0c9d331cc4aa0166fe28ae3"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a02fbeca6f63cb1f0475c799679057fc9268b77075ab7cf3f1c600e81dd46b"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c26959ca7b75ff768e2776d8055bf9582a6267e24556bb7f7bd29e677932be72"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:714d4e5231fed4ba2762ed489b4aec07b2b9953cf4ee31e9871caac895a839c0"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7a6a8354f1b62e15d48e04350f13e726fa08b62c3d7b8401c0a1314f02e3558"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c413016880e03e69d166efb5a1a95d40f83d5a3a648d16486592c49ffb76d0db"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ff84aeb864e0fac81f676be9f4685f0527b660f1efdc40dcede3c251ef1e867f"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ad7f2919d7dac062f24d6f5fe95d401597fbb015a25771f85e692d043c9d7832"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:702e2c7c187c1a498a4e2b03155d52658fdd6fda882d3d7fbb891a5cf108bb10"}, + {file = "aiohttp-3.9.5-cp310-cp310-win32.whl", hash = "sha256:67c3119f5ddc7261d47163ed86d760ddf0e625cd6246b4ed852e82159617b5fb"}, + {file = "aiohttp-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:471f0ef53ccedec9995287f02caf0c068732f026455f07db3f01a46e49d76bbb"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66331d00fb28dc90aa606d9a54304af76b335ae204d1836f65797d6fe27f1ca2"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff550491f5492ab5ed3533e76b8567f4b37bd2995e780a1f46bca2024223233"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f22eb3a6c1080d862befa0a89c380b4dafce29dc6cd56083f630073d102eb595"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a81b1143d42b66ffc40a441379387076243ef7b51019204fd3ec36b9f69e77d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f64fd07515dad67f24b6ea4a66ae2876c01031de91c93075b8093f07c0a2d93d"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:93e22add827447d2e26d67c9ac0161756007f152fdc5210277d00a85f6c92323"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:55b39c8684a46e56ef8c8d24faf02de4a2b2ac60d26cee93bc595651ff545de9"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4715a9b778f4293b9f8ae7a0a7cef9829f02ff8d6277a39d7f40565c737d3771"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afc52b8d969eff14e069a710057d15ab9ac17cd4b6753042c407dcea0e40bf75"}, + {file = "aiohttp-3.9.5-cp311-cp311-win32.whl", hash = "sha256:b3df71da99c98534be076196791adca8819761f0bf6e08e07fd7da25127150d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:88e311d98cc0bf45b62fc46c66753a83445f5ab20038bcc1b8a1cc05666f428a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1732102949ff6087589408d76cd6dea656b93c896b011ecafff418c9661dc4ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c6021d296318cb6f9414b48e6a439a7f5d1f665464da507e8ff640848ee2a58a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:239f975589a944eeb1bad26b8b140a59a3a320067fb3cd10b75c3092405a1372"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b7b30258348082826d274504fbc7c849959f1989d86c29bc355107accec6cfb"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2adf5c87ff6d8b277814a28a535b59e20bfea40a101db6b3bdca7e9926bc24"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a3d838441bebcf5cf442700e3963f58b5c33f015341f9ea86dcd7d503c07e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3a1ae66e3d0c17cf65c08968a5ee3180c5a95920ec2731f53343fac9bad106"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c69e77370cce2d6df5d12b4e12bdcca60c47ba13d1cbbc8645dd005a20b738b"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf56238f4bbf49dab8c2dc2e6b1b68502b1e88d335bea59b3f5b9f4c001475"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d1469f228cd9ffddd396d9948b8c9cd8022b6d1bf1e40c6f25b0fb90b4f893ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:45731330e754f5811c314901cebdf19dd776a44b31927fa4b4dbecab9e457b0c"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3fcb4046d2904378e3aeea1df51f697b0467f2aac55d232c87ba162709478c46"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8cf142aa6c1a751fcb364158fd710b8a9be874b81889c2bd13aa8893197455e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-win32.whl", hash = "sha256:7b179eea70833c8dee51ec42f3b4097bd6370892fa93f510f76762105568cf09"}, + {file = "aiohttp-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:38d80498e2e169bc61418ff36170e0aad0cd268da8b38a17c4cf29d254a8b3f1"}, + {file = "aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551"}, +] + +[[package]] +name = "aiosignal" +version = "1.3.1" +requires_python = ">=3.7" +summary = "aiosignal: a list of registered asynchronous callbacks" +groups = ["dev"] +dependencies = [ + "frozenlist>=1.1.0", +] +files = [ + {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, + {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, +] + +[[package]] +name = "annotated-types" +version = "0.6.0" +requires_python = ">=3.8" +summary = "Reusable constraint types to use with typing.Annotated" +groups = ["default"] +files = [ + {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, + {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, +] + +[[package]] +name = "anyio" +version = "4.3.0" +requires_python = ">=3.8" +summary = "High level compatibility layer for multiple asynchronous event loop implementations" +groups = ["default", "dev"] +dependencies = [ + "exceptiongroup>=1.0.2; python_version < \"3.11\"", + "idna>=2.8", + "sniffio>=1.1", + "typing-extensions>=4.1; python_version < \"3.11\"", +] +files = [ + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, +] + +[[package]] +name = "asttokens" +version = "2.4.1" +summary = "Annotate AST trees with source code positions" +groups = ["dev"] +dependencies = [ + "six>=1.12.0", +] +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[[package]] +name = "async-timeout" +version = "4.0.3" +requires_python = ">=3.7" +summary = "Timeout context manager for asyncio programs" +groups = ["dev"] +marker = "python_version < \"3.11\"" +files = [ + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, +] + +[[package]] +name = "attrs" +version = "23.2.0" +requires_python = ">=3.7" +summary = "Classes Without Boilerplate" +groups = ["dev"] +files = [ + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, +] + +[[package]] +name = "babel" +version = "2.14.0" +requires_python = ">=3.7" +summary = "Internationalization utilities" +groups = ["dev"] +files = [ + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +requires_python = ">=3.6.0" +summary = "Screen-scraping library" +groups = ["dev"] +dependencies = [ + "soupsieve>1.2", +] +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[[package]] +name = "black" +version = "24.3.0" +requires_python = ">=3.8" +summary = "The uncompromising code formatter." +groups = ["dev"] +dependencies = [ + "click>=8.0.0", + "mypy-extensions>=0.4.3", + "packaging>=22.0", + "pathspec>=0.9.0", + "platformdirs>=2", + "tomli>=1.1.0; python_version < \"3.11\"", + "typing-extensions>=4.0.1; python_version < \"3.11\"", +] +files = [ + {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"}, + {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"}, + {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"}, + {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"}, + {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"}, + {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"}, + {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"}, + {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"}, + {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"}, + {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"}, +] + +[[package]] +name = "bleach" +version = "6.1.0" +requires_python = ">=3.8" +summary = "An easy safelist-based HTML-sanitizing tool." +groups = ["dev"] +dependencies = [ + "six>=1.9.0", + "webencodings", +] +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] + +[[package]] +name = "build" +version = "1.1.1" +requires_python = ">= 3.7" +summary = "A simple, correct Python build frontend" +groups = ["dev"] +dependencies = [ + "colorama; os_name == \"nt\"", + "importlib-metadata>=4.6; python_full_version < \"3.10.2\"", + "packaging>=19.0", + "pyproject-hooks", + "tomli>=1.1.0; python_version < \"3.11\"", +] +files = [ + {file = "build-1.1.1-py3-none-any.whl", hash = "sha256:8ed0851ee76e6e38adce47e4bee3b51c771d86c64cf578d0c2245567ee200e73"}, + {file = "build-1.1.1.tar.gz", hash = "sha256:8eea65bb45b1aac2e734ba2cc8dad3a6d97d97901a395bd0ed3e7b46953d2a31"}, +] + +[[package]] +name = "cairocffi" +version = "1.6.1" +requires_python = ">=3.7" +summary = "cffi-based cairo bindings for Python" +groups = ["dev"] +dependencies = [ + "cffi>=1.1.0", +] +files = [ + {file = "cairocffi-1.6.1-py3-none-any.whl", hash = "sha256:aa78ee52b9069d7475eeac457389b6275aa92111895d78fbaa2202a52dac112e"}, + {file = "cairocffi-1.6.1.tar.gz", hash = "sha256:78e6bbe47357640c453d0be929fa49cd05cce2e1286f3d2a1ca9cbda7efdb8b7"}, +] + +[[package]] +name = "cairosvg" +version = "2.7.1" +requires_python = ">=3.5" +summary = "A Simple SVG Converter based on Cairo" +groups = ["dev"] +dependencies = [ + "cairocffi", + "cssselect2", + "defusedxml", + "pillow", + "tinycss2", +] +files = [ + {file = "CairoSVG-2.7.1-py3-none-any.whl", hash = "sha256:8a5222d4e6c3f86f1f7046b63246877a63b49923a1cd202184c3a634ef546b3b"}, + {file = "CairoSVG-2.7.1.tar.gz", hash = "sha256:432531d72347291b9a9ebfb6777026b607563fd8719c46ee742db0aef7271ba0"}, +] + +[[package]] +name = "certifi" +version = "2024.2.2" +requires_python = ">=3.6" +summary = "Python package for providing Mozilla's CA Bundle." +groups = ["default", "dev"] +files = [ + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +requires_python = ">=3.8" +summary = "Foreign Function Interface for Python calling C code." +groups = ["dev"] +dependencies = [ + "pycparser", +] +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +requires_python = ">=3.8" +summary = "Validate configuration and produce human readable error messages." +groups = ["dev"] +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +requires_python = ">=3.7.0" +summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +groups = ["dev"] +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +requires_python = ">=3.7" +summary = "Composable command line interface toolkit" +groups = ["dev"] +dependencies = [ + "colorama; platform_system == \"Windows\"", +] +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +summary = "Cross-platform colored terminal text." +groups = ["dev"] +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cssselect2" +version = "0.7.0" +requires_python = ">=3.7" +summary = "CSS selectors for Python ElementTree" +groups = ["dev"] +dependencies = [ + "tinycss2", + "webencodings", +] +files = [ + {file = "cssselect2-0.7.0-py3-none-any.whl", hash = "sha256:fd23a65bfd444595913f02fc71f6b286c29261e354c41d722ca7a261a49b5969"}, + {file = "cssselect2-0.7.0.tar.gz", hash = "sha256:1ccd984dab89fc68955043aca4e1b03e0cf29cad9880f6e28e3ba7a74b14aa5a"}, +] + +[[package]] +name = "datasets" +version = "2.19.1" +requires_python = ">=3.8.0" +summary = "HuggingFace community-driven open-source library of datasets" +groups = ["dev"] +dependencies = [ + "aiohttp", + "dill<0.3.9,>=0.3.0", + "filelock", + "fsspec[http]<=2024.3.1,>=2023.1.0", + "huggingface-hub>=0.21.2", + "multiprocess", + "numpy>=1.17", + "packaging", + "pandas", + "pyarrow-hotfix", + "pyarrow>=12.0.0", + "pyyaml>=5.1", + "requests>=2.19.0", + "tqdm>=4.62.1", + "xxhash", +] +files = [ + {file = "datasets-2.19.1-py3-none-any.whl", hash = "sha256:f7a78d15896f45004ccac1c298f3c7121f92f91f6f2bfbd4e4f210f827e6e411"}, + {file = "datasets-2.19.1.tar.gz", hash = "sha256:0df9ef6c5e9138cdb996a07385220109ff203c204245578b69cca905eb151d3a"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +requires_python = ">=3.5" +summary = "Decorators for Humans" +groups = ["dev"] +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +summary = "XML bomb protection for Python stdlib modules" +groups = ["dev"] +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "dill" +version = "0.3.8" +requires_python = ">=3.8" +summary = "serialize all of Python" +groups = ["dev"] +files = [ + {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, + {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, +] + +[[package]] +name = "distlib" +version = "0.3.8" +summary = "Distribution utilities" +groups = ["dev"] +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.0" +requires_python = ">=3.7" +summary = "Backport of PEP 654 (exception groups)" +groups = ["default", "dev"] +marker = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, +] + +[[package]] +name = "executing" +version = "2.0.1" +requires_python = ">=3.5" +summary = "Get the currently executing AST node of a frame, and other information" +groups = ["dev"] +files = [ + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, +] + +[[package]] +name = "fastjsonschema" +version = "2.19.1" +summary = "Fastest Python implementation of JSON schema" +groups = ["dev"] +files = [ + {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, + {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, +] + +[[package]] +name = "filelock" +version = "3.13.1" +requires_python = ">=3.8" +summary = "A platform independent file lock." +groups = ["dev"] +files = [ + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, +] + +[[package]] +name = "flake8" +version = "7.0.0" +requires_python = ">=3.8.1" +summary = "the modular source code checker: pep8 pyflakes and co" +groups = ["dev"] +dependencies = [ + "mccabe<0.8.0,>=0.7.0", + "pycodestyle<2.12.0,>=2.11.0", + "pyflakes<3.3.0,>=3.2.0", +] +files = [ + {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"}, + {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"}, +] + +[[package]] +name = "frozenlist" +version = "1.4.1" +requires_python = ">=3.8" +summary = "A list-like structure which implements collections.abc.MutableSequence" +groups = ["dev"] +files = [ + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, + {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, + {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, + {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, + {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, + {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, + {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, + {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, + {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, +] + +[[package]] +name = "fsspec" +version = "2024.3.1" +requires_python = ">=3.8" +summary = "File-system specification" +groups = ["dev"] +files = [ + {file = "fsspec-2024.3.1-py3-none-any.whl", hash = "sha256:918d18d41bf73f0e2b261824baeb1b124bcf771767e3a26425cd7dec3332f512"}, + {file = "fsspec-2024.3.1.tar.gz", hash = "sha256:f39780e282d7d117ffb42bb96992f8a90795e4d0fb0f661a70ca39fe9c43ded9"}, +] + +[[package]] +name = "fsspec" +version = "2024.3.1" +extras = ["http"] +requires_python = ">=3.8" +summary = "File-system specification" +groups = ["dev"] +dependencies = [ + "aiohttp!=4.0.0a0,!=4.0.0a1", + "fsspec==2024.3.1", +] +files = [ + {file = "fsspec-2024.3.1-py3-none-any.whl", hash = "sha256:918d18d41bf73f0e2b261824baeb1b124bcf771767e3a26425cd7dec3332f512"}, + {file = "fsspec-2024.3.1.tar.gz", hash = "sha256:f39780e282d7d117ffb42bb96992f8a90795e4d0fb0f661a70ca39fe9c43ded9"}, +] + +[[package]] +name = "ghp-import" +version = "2.1.0" +summary = "Copy your docs directly to the gh-pages branch." +groups = ["dev"] +dependencies = [ + "python-dateutil>=2.8.1", +] +files = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] + +[[package]] +name = "gitdb" +version = "4.0.11" +requires_python = ">=3.7" +summary = "Git Object Database" +groups = ["dev"] +dependencies = [ + "smmap<6,>=3.0.1", +] +files = [ + {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, + {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, +] + +[[package]] +name = "gitpython" +version = "3.1.42" +requires_python = ">=3.7" +summary = "GitPython is a Python library used to interact with Git repositories" +groups = ["dev"] +dependencies = [ + "gitdb<5,>=4.0.1", +] +files = [ + {file = "GitPython-3.1.42-py3-none-any.whl", hash = "sha256:1bf9cd7c9e7255f77778ea54359e54ac22a72a5b51288c457c881057b7bb9ecd"}, + {file = "GitPython-3.1.42.tar.gz", hash = "sha256:2d99869e0fef71a73cbd242528105af1d6c1b108c60dfabd994bf292f76c3ceb"}, +] + +[[package]] +name = "griffe" +version = "0.42.1" +requires_python = ">=3.8" +summary = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." +groups = ["dev"] +dependencies = [ + "colorama>=0.4", +] +files = [ + {file = "griffe-0.42.1-py3-none-any.whl", hash = "sha256:7e805e35617601355edcac0d3511cedc1ed0cb1f7645e2d336ae4b05bbae7b3b"}, + {file = "griffe-0.42.1.tar.gz", hash = "sha256:57046131384043ed078692b85d86b76568a686266cc036b9b56b704466f803ce"}, +] + +[[package]] +name = "h11" +version = "0.14.0" +requires_python = ">=3.7" +summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +groups = ["default", "dev"] +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.4" +requires_python = ">=3.8" +summary = "A minimal low-level HTTP client." +groups = ["default", "dev"] +dependencies = [ + "certifi", + "h11<0.15,>=0.13", +] +files = [ + {file = "httpcore-1.0.4-py3-none-any.whl", hash = "sha256:ac418c1db41bade2ad53ae2f3834a3a0f5ae76b56cf5aa497d2d033384fc7d73"}, + {file = "httpcore-1.0.4.tar.gz", hash = "sha256:cb2839ccfcba0d2d3c1131d3c3e26dfc327326fbe7a5dc0dbfe9f6c9151bb022"}, +] + +[[package]] +name = "httpx" +version = "0.27.0" +requires_python = ">=3.8" +summary = "The next generation HTTP client." +groups = ["default", "dev"] +dependencies = [ + "anyio", + "certifi", + "httpcore==1.*", + "idna", + "sniffio", +] +files = [ + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, +] + +[[package]] +name = "huggingface-hub" +version = "0.23.2" +requires_python = ">=3.8.0" +summary = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" +groups = ["dev"] +dependencies = [ + "filelock", + "fsspec>=2023.5.0", + "packaging>=20.9", + "pyyaml>=5.1", + "requests", + "tqdm>=4.42.1", + "typing-extensions>=3.7.4.3", +] +files = [ + {file = "huggingface_hub-0.23.2-py3-none-any.whl", hash = "sha256:48727a16e704d409c4bb5913613308499664f22a99743435dc3a13b23c485827"}, + {file = "huggingface_hub-0.23.2.tar.gz", hash = "sha256:f6829b62d5fdecb452a76fdbec620cba4c1573655a8d710c1df71735fd9edbd2"}, +] + +[[package]] +name = "identify" +version = "2.5.35" +requires_python = ">=3.8" +summary = "File identification library for Python" +groups = ["dev"] +files = [ + {file = "identify-2.5.35-py2.py3-none-any.whl", hash = "sha256:c4de0081837b211594f8e877a6b4fad7ca32bbfc1a9307fdd61c28bfe923f13e"}, + {file = "identify-2.5.35.tar.gz", hash = "sha256:10a7ca245cfcd756a554a7288159f72ff105ad233c7c4b9c6f0f4d108f5f6791"}, +] + +[[package]] +name = "idna" +version = "3.6" +requires_python = ">=3.5" +summary = "Internationalized Domain Names in Applications (IDNA)" +groups = ["default", "dev"] +files = [ + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, +] + +[[package]] +name = "importlib-metadata" +version = "7.0.2" +requires_python = ">=3.8" +summary = "Read metadata from Python packages" +groups = ["dev"] +dependencies = [ + "zipp>=0.5", +] +files = [ + {file = "importlib_metadata-7.0.2-py3-none-any.whl", hash = "sha256:f4bc4c0c070c490abf4ce96d715f68e95923320370efb66143df00199bb6c100"}, + {file = "importlib_metadata-7.0.2.tar.gz", hash = "sha256:198f568f3230878cb1b44fbd7975f87906c22336dba2e4a7f05278c281fbd792"}, +] + +[[package]] +name = "importlib-resources" +version = "6.3.2" +requires_python = ">=3.8" +summary = "Read resources from Python packages" +groups = ["dev"] +dependencies = [ + "zipp>=3.1.0; python_version < \"3.10\"", +] +files = [ + {file = "importlib_resources-6.3.2-py3-none-any.whl", hash = "sha256:f41f4098b16cd140a97d256137cfd943d958219007990b2afb00439fc623f580"}, + {file = "importlib_resources-6.3.2.tar.gz", hash = "sha256:963eb79649252b0160c1afcfe5a1d3fe3ad66edd0a8b114beacffb70c0674223"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +requires_python = ">=3.7" +summary = "brain-dead simple config-ini parsing" +groups = ["dev"] +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipython" +version = "8.18.1" +requires_python = ">=3.9" +summary = "IPython: Productive Interactive Computing" +groups = ["dev"] +dependencies = [ + "colorama; sys_platform == \"win32\"", + "decorator", + "exceptiongroup; python_version < \"3.11\"", + "jedi>=0.16", + "matplotlib-inline", + "pexpect>4.3; sys_platform != \"win32\"", + "prompt-toolkit<3.1.0,>=3.0.41", + "pygments>=2.4.0", + "stack-data", + "traitlets>=5", + "typing-extensions; python_version < \"3.10\"", +] +files = [ + {file = "ipython-8.18.1-py3-none-any.whl", hash = "sha256:e8267419d72d81955ec1177f8a29aaa90ac80ad647499201119e2f05e99aa397"}, + {file = "ipython-8.18.1.tar.gz", hash = "sha256:ca6f079bb33457c66e233e4580ebfc4128855b4cf6370dddd73842a9563e8a27"}, +] + +[[package]] +name = "jedi" +version = "0.19.1" +requires_python = ">=3.6" +summary = "An autocompletion tool for Python that can be used for text editors." +groups = ["dev"] +dependencies = [ + "parso<0.9.0,>=0.8.3", +] +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] + +[[package]] +name = "jinja2" +version = "3.1.3" +requires_python = ">=3.7" +summary = "A very fast and expressive template engine." +groups = ["dev"] +dependencies = [ + "MarkupSafe>=2.0", +] +files = [ + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, +] + +[[package]] +name = "jsonschema" +version = "4.21.1" +requires_python = ">=3.8" +summary = "An implementation of JSON Schema validation for Python" +groups = ["dev"] +dependencies = [ + "attrs>=22.2.0", + "jsonschema-specifications>=2023.03.6", + "referencing>=0.28.4", + "rpds-py>=0.7.1", +] +files = [ + {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, + {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, +] + +[[package]] +name = "jsonschema-specifications" +version = "2023.12.1" +requires_python = ">=3.8" +summary = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +groups = ["dev"] +dependencies = [ + "referencing>=0.31.0", +] +files = [ + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, +] + +[[package]] +name = "jupyter-client" +version = "8.6.1" +requires_python = ">=3.8" +summary = "Jupyter protocol implementation and client libraries" +groups = ["dev"] +dependencies = [ + "importlib-metadata>=4.8.3; python_version < \"3.10\"", + "jupyter-core!=5.0.*,>=4.12", + "python-dateutil>=2.8.2", + "pyzmq>=23.0", + "tornado>=6.2", + "traitlets>=5.3", +] +files = [ + {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"}, + {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"}, +] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +requires_python = ">=3.8" +summary = "Jupyter core package. A base package on which Jupyter projects rely." +groups = ["dev"] +dependencies = [ + "platformdirs>=2.5", + "pywin32>=300; sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"", + "traitlets>=5.3", +] +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +requires_python = ">=3.8" +summary = "Pygments theme using JupyterLab CSS variables" +groups = ["dev"] +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "markdown" +version = "3.5.2" +requires_python = ">=3.8" +summary = "Python implementation of John Gruber's Markdown." +groups = ["dev"] +dependencies = [ + "importlib-metadata>=4.4; python_version < \"3.10\"", +] +files = [ + {file = "Markdown-3.5.2-py3-none-any.whl", hash = "sha256:d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd"}, + {file = "Markdown-3.5.2.tar.gz", hash = "sha256:e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8"}, +] + +[[package]] +name = "markupsafe" +version = "2.1.5" +requires_python = ">=3.7" +summary = "Safely add untrusted strings to HTML/XML markup." +groups = ["dev"] +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "matplotlib-inline" +version = "0.1.6" +requires_python = ">=3.5" +summary = "Inline Matplotlib backend for Jupyter" +groups = ["dev"] +dependencies = [ + "traitlets", +] +files = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] + +[[package]] +name = "mccabe" +version = "0.7.0" +requires_python = ">=3.6" +summary = "McCabe checker, plugin for flake8" +groups = ["dev"] +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +requires_python = ">=3.6" +summary = "A deep merge function for 🐍." +groups = ["dev"] +files = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] + +[[package]] +name = "mike" +version = "2.0.0" +summary = "Manage multiple versions of your MkDocs-powered documentation" +groups = ["dev"] +dependencies = [ + "importlib-metadata", + "importlib-resources", + "jinja2>=2.7", + "mkdocs>=1.0", + "pyparsing>=3.0", + "pyyaml>=5.1", + "verspec", +] +files = [ + {file = "mike-2.0.0-py3-none-any.whl", hash = "sha256:87f496a65900f93ba92d72940242b65c86f3f2f82871bc60ebdcffc91fad1d9e"}, + {file = "mike-2.0.0.tar.gz", hash = "sha256:566f1cab1a58cc50b106fb79ea2f1f56e7bfc8b25a051e95e6eaee9fba0922de"}, +] + +[[package]] +name = "mistune" +version = "3.0.2" +requires_python = ">=3.7" +summary = "A sane and fast Markdown parser with useful plugins and renderers" +groups = ["dev"] +files = [ + {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, + {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, +] + +[[package]] +name = "mkdocs" +version = "1.6.0" +requires_python = ">=3.8" +summary = "Project documentation with Markdown." +groups = ["dev"] +dependencies = [ + "click>=7.0", + "colorama>=0.4; platform_system == \"Windows\"", + "ghp-import>=1.0", + "importlib-metadata>=4.4; python_version < \"3.10\"", + "jinja2>=2.11.1", + "markdown>=3.3.6", + "markupsafe>=2.0.1", + "mergedeep>=1.3.4", + "mkdocs-get-deps>=0.2.0", + "packaging>=20.5", + "pathspec>=0.11.1", + "pyyaml-env-tag>=0.1", + "pyyaml>=5.1", + "watchdog>=2.0", +] +files = [ + {file = "mkdocs-1.6.0-py3-none-any.whl", hash = "sha256:1eb5cb7676b7d89323e62b56235010216319217d4af5ddc543a91beb8d125ea7"}, + {file = "mkdocs-1.6.0.tar.gz", hash = "sha256:a73f735824ef83a4f3bcb7a231dcab23f5a838f88b7efc54a0eef5fbdbc3c512"}, +] + +[[package]] +name = "mkdocs-autorefs" +version = "1.0.1" +requires_python = ">=3.8" +summary = "Automatically link across pages in MkDocs." +groups = ["dev"] +dependencies = [ + "Markdown>=3.3", + "markupsafe>=2.0.1", + "mkdocs>=1.1", +] +files = [ + {file = "mkdocs_autorefs-1.0.1-py3-none-any.whl", hash = "sha256:aacdfae1ab197780fb7a2dac92ad8a3d8f7ca8049a9cbe56a4218cd52e8da570"}, + {file = "mkdocs_autorefs-1.0.1.tar.gz", hash = "sha256:f684edf847eced40b570b57846b15f0bf57fb93ac2c510450775dcf16accb971"}, +] + +[[package]] +name = "mkdocs-gen-files" +version = "0.5.0" +requires_python = ">=3.7" +summary = "MkDocs plugin to programmatically generate documentation pages during the build" +groups = ["dev"] +dependencies = [ + "mkdocs>=1.0.3", +] +files = [ + {file = "mkdocs_gen_files-0.5.0-py3-none-any.whl", hash = "sha256:7ac060096f3f40bd19039e7277dd3050be9a453c8ac578645844d4d91d7978ea"}, + {file = "mkdocs_gen_files-0.5.0.tar.gz", hash = "sha256:4c7cf256b5d67062a788f6b1d035e157fc1a9498c2399be9af5257d4ff4d19bc"}, +] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +requires_python = ">=3.8" +summary = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" +groups = ["dev"] +dependencies = [ + "importlib-metadata>=4.3; python_version < \"3.10\"", + "mergedeep>=1.3.4", + "platformdirs>=2.2.0", + "pyyaml>=5.1", +] +files = [ + {file = "mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134"}, + {file = "mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c"}, +] + +[[package]] +name = "mkdocs-literate-nav" +version = "0.6.1" +requires_python = ">=3.7" +summary = "MkDocs plugin to specify the navigation in Markdown instead of YAML" +groups = ["dev"] +dependencies = [ + "mkdocs>=1.0.3", +] +files = [ + {file = "mkdocs_literate_nav-0.6.1-py3-none-any.whl", hash = "sha256:e70bdc4a07050d32da79c0b697bd88e9a104cf3294282e9cb20eec94c6b0f401"}, + {file = "mkdocs_literate_nav-0.6.1.tar.gz", hash = "sha256:78a7ab6d878371728acb0cdc6235c9b0ffc6e83c997b037f4a5c6ff7cef7d759"}, +] + +[[package]] +name = "mkdocs-material" +version = "9.5.21" +requires_python = ">=3.8" +summary = "Documentation that simply works" +groups = ["dev"] +dependencies = [ + "babel~=2.10", + "colorama~=0.4", + "jinja2~=3.0", + "markdown~=3.2", + "mkdocs-material-extensions~=1.3", + "mkdocs~=1.6", + "paginate~=0.5", + "pygments~=2.16", + "pymdown-extensions~=10.2", + "regex>=2022.4", + "requests~=2.26", +] +files = [ + {file = "mkdocs_material-9.5.21-py3-none-any.whl", hash = "sha256:210e1f179682cd4be17d5c641b2f4559574b9dea2f589c3f0e7c17c5bd1959bc"}, + {file = "mkdocs_material-9.5.21.tar.gz", hash = "sha256:049f82770f40559d3c2aa2259c562ea7257dbb4aaa9624323b5ef27b2d95a450"}, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +requires_python = ">=3.8" +summary = "Extension pack for Python Markdown and MkDocs Material." +groups = ["dev"] +files = [ + {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, + {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, +] + +[[package]] +name = "mkdocs-open-in-new-tab" +version = "1.0.3" +requires_python = ">=3.7" +summary = "MkDocs plugin to open outgoing links and PDFs in new tab." +groups = ["dev"] +dependencies = [ + "mkdocs", +] +files = [ + {file = "mkdocs-open-in-new-tab-1.0.3.tar.gz", hash = "sha256:a40231901b12f01a1d4b798112712d475741356e550d8f3adf3ca23e332a7d2c"}, + {file = "mkdocs_open_in_new_tab-1.0.3-py3-none-any.whl", hash = "sha256:e2ddfa02f53d7c16d8430f5c0b3d98c4b98c82e1b8aa6fbdc91c78e89bbeb5f1"}, +] + +[[package]] +name = "mkdocs-section-index" +version = "0.3.8" +requires_python = ">=3.7" +summary = "MkDocs plugin to allow clickable sections that lead to an index page" +groups = ["dev"] +dependencies = [ + "mkdocs>=1.2", +] +files = [ + {file = "mkdocs_section_index-0.3.8-py3-none-any.whl", hash = "sha256:823d298d78bc1e73e23678ff60889f3c369c2167b03dba73fea88bd0e268a60d"}, + {file = "mkdocs_section_index-0.3.8.tar.gz", hash = "sha256:bbd209f0da79441baf136ef3a9c40665bb9681d1fb62c73ca2f116fd1388a404"}, +] + +[[package]] +name = "mkdocstrings" +version = "0.24.1" +requires_python = ">=3.8" +summary = "Automatic documentation from sources, for MkDocs." +groups = ["dev"] +dependencies = [ + "Jinja2>=2.11.1", + "Markdown>=3.3", + "MarkupSafe>=1.1", + "click>=7.0", + "importlib-metadata>=4.6; python_version < \"3.10\"", + "mkdocs-autorefs>=0.3.1", + "mkdocs>=1.4", + "platformdirs>=2.2.0", + "pymdown-extensions>=6.3", + "typing-extensions>=4.1; python_version < \"3.10\"", +] +files = [ + {file = "mkdocstrings-0.24.1-py3-none-any.whl", hash = "sha256:b4206f9a2ca8a648e222d5a0ca1d36ba7dee53c88732818de183b536f9042b5d"}, + {file = "mkdocstrings-0.24.1.tar.gz", hash = "sha256:cc83f9a1c8724fc1be3c2fa071dd73d91ce902ef6a79710249ec8d0ee1064401"}, +] + +[[package]] +name = "mkdocstrings-python" +version = "1.9.0" +requires_python = ">=3.8" +summary = "A Python handler for mkdocstrings." +groups = ["dev"] +dependencies = [ + "griffe>=0.37", + "markdown<3.6,>=3.3", + "mkdocstrings>=0.20", +] +files = [ + {file = "mkdocstrings_python-1.9.0-py3-none-any.whl", hash = "sha256:fad27d7314b4ec9c0359a187b477fb94c65ef561fdae941dca1b717c59aae96f"}, + {file = "mkdocstrings_python-1.9.0.tar.gz", hash = "sha256:6e1a442367cf75d30cf69774cbb1ad02aebec58bfff26087439df4955efecfde"}, +] + +[[package]] +name = "mkdocstrings" +version = "0.24.1" +extras = ["python"] +requires_python = ">=3.8" +summary = "Automatic documentation from sources, for MkDocs." +groups = ["dev"] +dependencies = [ + "mkdocstrings-python>=0.5.2", + "mkdocstrings==0.24.1", +] +files = [ + {file = "mkdocstrings-0.24.1-py3-none-any.whl", hash = "sha256:b4206f9a2ca8a648e222d5a0ca1d36ba7dee53c88732818de183b536f9042b5d"}, + {file = "mkdocstrings-0.24.1.tar.gz", hash = "sha256:cc83f9a1c8724fc1be3c2fa071dd73d91ce902ef6a79710249ec8d0ee1064401"}, +] + +[[package]] +name = "mknotebooks" +version = "0.8.0" +summary = "Plugin for mkdocs to generate markdown documents from jupyter notebooks." +groups = ["dev"] +dependencies = [ + "gitpython", + "jupyter-client", + "markdown>=3.3.3", + "mkdocs>=1.5.0", + "nbconvert>=6.0.0", +] +files = [ + {file = "mknotebooks-0.8.0-py3-none-any.whl", hash = "sha256:4a9b998260c09bcc311455a19a44cc395a30ee82dc1e86e3316dd09f2445ebd3"}, +] + +[[package]] +name = "multidict" +version = "6.0.5" +requires_python = ">=3.7" +summary = "multidict implementation" +groups = ["dev"] +files = [ + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, + {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, + {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, + {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, + {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, + {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, + {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, + {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, + {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, +] + +[[package]] +name = "multiprocess" +version = "0.70.16" +requires_python = ">=3.8" +summary = "better multiprocessing and multithreading in Python" +groups = ["dev"] +dependencies = [ + "dill>=0.3.8", +] +files = [ + {file = "multiprocess-0.70.16-pp310-pypy310_pp73-macosx_10_13_x86_64.whl", hash = "sha256:476887be10e2f59ff183c006af746cb6f1fd0eadcfd4ef49e605cbe2659920ee"}, + {file = "multiprocess-0.70.16-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d951bed82c8f73929ac82c61f01a7b5ce8f3e5ef40f5b52553b4f547ce2b08ec"}, + {file = "multiprocess-0.70.16-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37b55f71c07e2d741374998c043b9520b626a8dddc8b3129222ca4f1a06ef67a"}, + {file = "multiprocess-0.70.16-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba8c31889abf4511c7308a8c52bb4a30b9d590e7f58523302ba00237702ca054"}, + {file = "multiprocess-0.70.16-pp39-pypy39_pp73-macosx_10_13_x86_64.whl", hash = "sha256:0dfd078c306e08d46d7a8d06fb120313d87aa43af60d66da43ffff40b44d2f41"}, + {file = "multiprocess-0.70.16-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e7b9d0f307cd9bd50851afaac0dba2cb6c44449efff697df7c7645f7d3f2be3a"}, + {file = "multiprocess-0.70.16-py310-none-any.whl", hash = "sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02"}, + {file = "multiprocess-0.70.16-py311-none-any.whl", hash = "sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a"}, + {file = "multiprocess-0.70.16-py39-none-any.whl", hash = "sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3"}, + {file = "multiprocess-0.70.16.tar.gz", hash = "sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +requires_python = ">=3.5" +summary = "Type system extensions for programs checked with the mypy type checker." +groups = ["dev"] +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nbclient" +version = "0.10.0" +requires_python = ">=3.8.0" +summary = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +groups = ["dev"] +dependencies = [ + "jupyter-client>=6.1.12", + "jupyter-core!=5.0.*,>=4.12", + "nbformat>=5.1", + "traitlets>=5.4", +] +files = [ + {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"}, + {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"}, +] + +[[package]] +name = "nbconvert" +version = "7.16.2" +requires_python = ">=3.8" +summary = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +groups = ["dev"] +dependencies = [ + "beautifulsoup4", + "bleach!=5.0.0", + "defusedxml", + "importlib-metadata>=3.6; python_version < \"3.10\"", + "jinja2>=3.0", + "jupyter-core>=4.7", + "jupyterlab-pygments", + "markupsafe>=2.0", + "mistune<4,>=2.0.3", + "nbclient>=0.5.0", + "nbformat>=5.7", + "packaging", + "pandocfilters>=1.4.1", + "pygments>=2.4.1", + "tinycss2", + "traitlets>=5.1", +] +files = [ + {file = "nbconvert-7.16.2-py3-none-any.whl", hash = "sha256:0c01c23981a8de0220255706822c40b751438e32467d6a686e26be08ba784382"}, + {file = "nbconvert-7.16.2.tar.gz", hash = "sha256:8310edd41e1c43947e4ecf16614c61469ebc024898eb808cce0999860fc9fb16"}, +] + +[[package]] +name = "nbformat" +version = "5.10.3" +requires_python = ">=3.8" +summary = "The Jupyter Notebook format" +groups = ["dev"] +dependencies = [ + "fastjsonschema", + "jsonschema>=2.6", + "jupyter-core", + "traitlets>=5.1", +] +files = [ + {file = "nbformat-5.10.3-py3-none-any.whl", hash = "sha256:d9476ca28676799af85385f409b49d95e199951477a159a576ef2a675151e5e8"}, + {file = "nbformat-5.10.3.tar.gz", hash = "sha256:60ed5e910ef7c6264b87d644f276b1b49e24011930deef54605188ddeb211685"}, +] + +[[package]] +name = "nodeenv" +version = "1.8.0" +requires_python = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +summary = "Node.js virtual environment builder" +groups = ["dev"] +dependencies = [ + "setuptools", +] +files = [ + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, +] + +[[package]] +name = "numpy" +version = "1.26.4" +requires_python = ">=3.9" +summary = "Fundamental package for array computing in Python" +groups = ["dev"] +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "packaging" +version = "24.0" +requires_python = ">=3.7" +summary = "Core utilities for Python packages" +groups = ["dev"] +files = [ + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, +] + +[[package]] +name = "paginate" +version = "0.5.6" +summary = "Divides large result sets into pages for easier browsing" +groups = ["dev"] +files = [ + {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, +] + +[[package]] +name = "pandas" +version = "2.2.2" +requires_python = ">=3.9" +summary = "Powerful data structures for data analysis, time series, and statistics" +groups = ["dev"] +dependencies = [ + "numpy>=1.22.4; python_version < \"3.11\"", + "numpy>=1.23.2; python_version == \"3.11\"", + "python-dateutil>=2.8.2", + "pytz>=2020.1", + "tzdata>=2022.7", +] +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, +] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +summary = "Utilities for writing pandoc filters in python" +groups = ["dev"] +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.3" +requires_python = ">=3.6" +summary = "A Python Parser" +groups = ["dev"] +files = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +requires_python = ">=3.8" +summary = "Utility library for gitignore style pattern matching of file paths." +groups = ["dev"] +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +summary = "Pexpect allows easy control of interactive console applications." +groups = ["dev"] +marker = "sys_platform != \"win32\"" +dependencies = [ + "ptyprocess>=0.5", +] +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[[package]] +name = "pillow" +version = "10.2.0" +requires_python = ">=3.8" +summary = "Python Imaging Library (Fork)" +groups = ["dev"] +files = [ + {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, + {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, + {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, + {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, + {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, + {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, + {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.0" +requires_python = ">=3.8" +summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +groups = ["dev"] +files = [ + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, +] + +[[package]] +name = "pluggy" +version = "1.4.0" +requires_python = ">=3.8" +summary = "plugin and hook calling mechanisms for python" +groups = ["dev"] +files = [ + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, +] + +[[package]] +name = "pre-commit" +version = "3.6.2" +requires_python = ">=3.9" +summary = "A framework for managing and maintaining multi-language pre-commit hooks." +groups = ["dev"] +dependencies = [ + "cfgv>=2.0.0", + "identify>=1.0.0", + "nodeenv>=0.11.1", + "pyyaml>=5.1", + "virtualenv>=20.10.0", +] +files = [ + {file = "pre_commit-3.6.2-py2.py3-none-any.whl", hash = "sha256:ba637c2d7a670c10daedc059f5c49b5bd0aadbccfcd7ec15592cf9665117532c"}, + {file = "pre_commit-3.6.2.tar.gz", hash = "sha256:c3ef34f463045c88658c5b99f38c1e297abdcc0ff13f98d3370055fbbfabc67e"}, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.43" +requires_python = ">=3.7.0" +summary = "Library for building powerful interactive command lines in Python" +groups = ["dev"] +dependencies = [ + "wcwidth", +] +files = [ + {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, + {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +summary = "Run a subprocess in a pseudo terminal" +groups = ["dev"] +marker = "sys_platform != \"win32\"" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.2" +summary = "Safely evaluate AST nodes without side effects" +groups = ["dev"] +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] + +[[package]] +name = "pyarrow" +version = "16.1.0" +requires_python = ">=3.8" +summary = "Python library for Apache Arrow" +groups = ["dev"] +dependencies = [ + "numpy>=1.16.6", +] +files = [ + {file = "pyarrow-16.1.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:17e23b9a65a70cc733d8b738baa6ad3722298fa0c81d88f63ff94bf25eaa77b9"}, + {file = "pyarrow-16.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4740cc41e2ba5d641071d0ab5e9ef9b5e6e8c7611351a5cb7c1d175eaf43674a"}, + {file = "pyarrow-16.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98100e0268d04e0eec47b73f20b39c45b4006f3c4233719c3848aa27a03c1aef"}, + {file = "pyarrow-16.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f68f409e7b283c085f2da014f9ef81e885d90dcd733bd648cfba3ef265961848"}, + {file = "pyarrow-16.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:a8914cd176f448e09746037b0c6b3a9d7688cef451ec5735094055116857580c"}, + {file = "pyarrow-16.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:48be160782c0556156d91adbdd5a4a7e719f8d407cb46ae3bb4eaee09b3111bd"}, + {file = "pyarrow-16.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9cf389d444b0f41d9fe1444b70650fea31e9d52cfcb5f818b7888b91b586efff"}, + {file = "pyarrow-16.1.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:d0ebea336b535b37eee9eee31761813086d33ed06de9ab6fc6aaa0bace7b250c"}, + {file = "pyarrow-16.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e73cfc4a99e796727919c5541c65bb88b973377501e39b9842ea71401ca6c1c"}, + {file = "pyarrow-16.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf9251264247ecfe93e5f5a0cd43b8ae834f1e61d1abca22da55b20c788417f6"}, + {file = "pyarrow-16.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddf5aace92d520d3d2a20031d8b0ec27b4395cab9f74e07cc95edf42a5cc0147"}, + {file = "pyarrow-16.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:25233642583bf658f629eb230b9bb79d9af4d9f9229890b3c878699c82f7d11e"}, + {file = "pyarrow-16.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a33a64576fddfbec0a44112eaf844c20853647ca833e9a647bfae0582b2ff94b"}, + {file = "pyarrow-16.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:185d121b50836379fe012753cf15c4ba9638bda9645183ab36246923875f8d1b"}, + {file = "pyarrow-16.1.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:18da9b76a36a954665ccca8aa6bd9f46c1145f79c0bb8f4f244f5f8e799bca55"}, + {file = "pyarrow-16.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:99f7549779b6e434467d2aa43ab2b7224dd9e41bdde486020bae198978c9e05e"}, + {file = "pyarrow-16.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f07fdffe4fd5b15f5ec15c8b64584868d063bc22b86b46c9695624ca3505b7b4"}, + {file = "pyarrow-16.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddfe389a08ea374972bd4065d5f25d14e36b43ebc22fc75f7b951f24378bf0b5"}, + {file = "pyarrow-16.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:3b20bd67c94b3a2ea0a749d2a5712fc845a69cb5d52e78e6449bbd295611f3aa"}, + {file = "pyarrow-16.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:ba8ac20693c0bb0bf4b238751d4409e62852004a8cf031c73b0e0962b03e45e3"}, + {file = "pyarrow-16.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:31a1851751433d89a986616015841977e0a188662fcffd1a5677453f1df2de0a"}, + {file = "pyarrow-16.1.0.tar.gz", hash = "sha256:15fbb22ea96d11f0b5768504a3f961edab25eaf4197c341720c4a387f6c60315"}, +] + +[[package]] +name = "pyarrow-hotfix" +version = "0.6" +requires_python = ">=3.5" +summary = "" +groups = ["dev"] +files = [ + {file = "pyarrow_hotfix-0.6-py3-none-any.whl", hash = "sha256:dcc9ae2d220dff0083be6a9aa8e0cdee5182ad358d4931fce825c545e5c89178"}, + {file = "pyarrow_hotfix-0.6.tar.gz", hash = "sha256:79d3e030f7ff890d408a100ac16d6f00b14d44a502d7897cd9fc3e3a534e9945"}, +] + +[[package]] +name = "pycodestyle" +version = "2.11.1" +requires_python = ">=3.8" +summary = "Python style guide checker" +groups = ["dev"] +files = [ + {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, + {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, +] + +[[package]] +name = "pycparser" +version = "2.21" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +summary = "C parser in Python" +groups = ["dev"] +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] + +[[package]] +name = "pydantic" +version = "2.6.4" +requires_python = ">=3.8" +summary = "Data validation using Python type hints" +groups = ["default"] +dependencies = [ + "annotated-types>=0.4.0", + "pydantic-core==2.16.3", + "typing-extensions>=4.6.1", +] +files = [ + {file = "pydantic-2.6.4-py3-none-any.whl", hash = "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5"}, + {file = "pydantic-2.6.4.tar.gz", hash = "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"}, +] + +[[package]] +name = "pydantic-core" +version = "2.16.3" +requires_python = ">=3.8" +summary = "" +groups = ["default"] +dependencies = [ + "typing-extensions!=4.7.0,>=4.6.0", +] +files = [ + {file = "pydantic_core-2.16.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4"}, + {file = "pydantic_core-2.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:162e498303d2b1c036b957a1278fa0899d02b2842f1ff901b6395104c5554a45"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f583bd01bbfbff4eaee0868e6fc607efdfcc2b03c1c766b06a707abbc856187"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b926dd38db1519ed3043a4de50214e0d600d404099c3392f098a7f9d75029ff8"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:716b542728d4c742353448765aa7cdaa519a7b82f9564130e2b3f6766018c9ec"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4ad7f7ee1a13d9cb49d8198cd7d7e3aa93e425f371a68235f784e99741561f"}, + {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd87f48924f360e5d1c5f770d6155ce0e7d83f7b4e10c2f9ec001c73cf475c99"}, + {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0df446663464884297c793874573549229f9eca73b59360878f382a0fc085979"}, + {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4df8a199d9f6afc5ae9a65f8f95ee52cae389a8c6b20163762bde0426275b7db"}, + {file = "pydantic_core-2.16.3-cp310-none-win32.whl", hash = "sha256:456855f57b413f077dff513a5a28ed838dbbb15082ba00f80750377eed23d132"}, + {file = "pydantic_core-2.16.3-cp310-none-win_amd64.whl", hash = "sha256:732da3243e1b8d3eab8c6ae23ae6a58548849d2e4a4e03a1924c8ddf71a387cb"}, + {file = "pydantic_core-2.16.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:bda1ee3e08252b8d41fa5537413ffdddd58fa73107171a126d3b9ff001b9b820"}, + {file = "pydantic_core-2.16.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:21b888c973e4f26b7a96491c0965a8a312e13be108022ee510248fe379a5fa23"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be0ec334369316fa73448cc8c982c01e5d2a81c95969d58b8f6e272884df0074"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5b6079cc452a7c53dd378c6f881ac528246b3ac9aae0f8eef98498a75657805"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee8d5f878dccb6d499ba4d30d757111847b6849ae07acdd1205fffa1fc1253c"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7233d65d9d651242a68801159763d09e9ec96e8a158dbf118dc090cd77a104c9"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6119dc90483a5cb50a1306adb8d52c66e447da88ea44f323e0ae1a5fcb14256"}, + {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:578114bc803a4c1ff9946d977c221e4376620a46cf78da267d946397dc9514a8"}, + {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d8f99b147ff3fcf6b3cc60cb0c39ea443884d5559a30b1481e92495f2310ff2b"}, + {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4ac6b4ce1e7283d715c4b729d8f9dab9627586dafce81d9eaa009dd7f25dd972"}, + {file = "pydantic_core-2.16.3-cp39-none-win32.whl", hash = "sha256:e7774b570e61cb998490c5235740d475413a1f6de823169b4cf94e2fe9e9f6b2"}, + {file = "pydantic_core-2.16.3-cp39-none-win_amd64.whl", hash = "sha256:9091632a25b8b87b9a605ec0e61f241c456e9248bfdcf7abdf344fdb169c81cf"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:36fa178aacbc277bc6b62a2c3da95226520da4f4e9e206fdf076484363895d2c"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:dcca5d2bf65c6fb591fff92da03f94cd4f315972f97c21975398bd4bd046854a"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a72fb9963cba4cd5793854fd12f4cfee731e86df140f59ff52a49b3552db241"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b60cc1a081f80a2105a59385b92d82278b15d80ebb3adb200542ae165cd7d183"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cbcc558401de90a746d02ef330c528f2e668c83350f045833543cd57ecead1ad"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:fee427241c2d9fb7192b658190f9f5fd6dfe41e02f3c1489d2ec1e6a5ab1e04a"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f4cb85f693044e0f71f394ff76c98ddc1bc0953e48c061725e540396d5c8a2e1"}, + {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b29eeb887aa931c2fcef5aa515d9d176d25006794610c264ddc114c053bf96fe"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a425479ee40ff021f8216c9d07a6a3b54b31c8267c6e17aa88b70d7ebd0e5e5b"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5c5cbc703168d1b7a838668998308018a2718c2130595e8e190220238addc96f"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99b6add4c0b39a513d323d3b93bc173dac663c27b99860dd5bf491b240d26137"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f76ee558751746d6a38f89d60b6228fa174e5172d143886af0f85aa306fd89"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:287073c66748f624be4cef893ef9174e3eb88fe0b8a78dc22e88eca4bc357ca6"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ed25e1835c00a332cb10c683cd39da96a719ab1dfc08427d476bce41b92531fc"}, + {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:86b3d0033580bd6bbe07590152007275bd7af95f98eaa5bd36f3da219dcd93da"}, + {file = "pydantic_core-2.16.3.tar.gz", hash = "sha256:1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad"}, +] + +[[package]] +name = "pyflakes" +version = "3.2.0" +requires_python = ">=3.8" +summary = "passive checker of Python programs" +groups = ["dev"] +files = [ + {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, + {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, +] + +[[package]] +name = "pygments" +version = "2.17.2" +requires_python = ">=3.7" +summary = "Pygments is a syntax highlighting package written in Python." +groups = ["dev"] +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] + +[[package]] +name = "pymdown-extensions" +version = "10.7.1" +requires_python = ">=3.8" +summary = "Extension pack for Python Markdown." +groups = ["dev"] +dependencies = [ + "markdown>=3.5", + "pyyaml", +] +files = [ + {file = "pymdown_extensions-10.7.1-py3-none-any.whl", hash = "sha256:f5cc7000d7ff0d1ce9395d216017fa4df3dde800afb1fb72d1c7d3fd35e710f4"}, + {file = "pymdown_extensions-10.7.1.tar.gz", hash = "sha256:c70e146bdd83c744ffc766b4671999796aba18842b268510a329f7f64700d584"}, +] + +[[package]] +name = "pyparsing" +version = "3.1.2" +requires_python = ">=3.6.8" +summary = "pyparsing module - Classes and methods to define and execute parsing grammars" +groups = ["dev"] +files = [ + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, +] + +[[package]] +name = "pyproject-hooks" +version = "1.0.0" +requires_python = ">=3.7" +summary = "Wrappers to call pyproject.toml-based build backend hooks." +groups = ["dev"] +dependencies = [ + "tomli>=1.1.0; python_version < \"3.11\"", +] +files = [ + {file = "pyproject_hooks-1.0.0-py3-none-any.whl", hash = "sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8"}, + {file = "pyproject_hooks-1.0.0.tar.gz", hash = "sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5"}, +] + +[[package]] +name = "pytest" +version = "8.1.1" +requires_python = ">=3.8" +summary = "pytest: simple powerful testing with Python" +groups = ["dev"] +dependencies = [ + "colorama; sys_platform == \"win32\"", + "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", + "iniconfig", + "packaging", + "pluggy<2.0,>=1.4", + "tomli>=1; python_version < \"3.11\"", +] +files = [ + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, +] + +[[package]] +name = "pytest-httpx" +version = "0.30.0" +requires_python = ">=3.9" +summary = "Send responses to httpx." +groups = ["dev"] +dependencies = [ + "httpx==0.27.*", + "pytest<9,>=7", +] +files = [ + {file = "pytest-httpx-0.30.0.tar.gz", hash = "sha256:755b8edca87c974dd4f3605c374fda11db84631de3d163b99c0df5807023a19a"}, + {file = "pytest_httpx-0.30.0-py3-none-any.whl", hash = "sha256:6d47849691faf11d2532565d0c8e0e02b9f4ee730da31687feae315581d7520c"}, +] + +[[package]] +name = "pytest-mock" +version = "3.12.0" +requires_python = ">=3.8" +summary = "Thin-wrapper around the mock package for easier use with pytest" +groups = ["dev"] +dependencies = [ + "pytest>=5.0", +] +files = [ + {file = "pytest-mock-3.12.0.tar.gz", hash = "sha256:31a40f038c22cad32287bb43932054451ff5583ff094bca6f675df2f8bc1a6e9"}, + {file = "pytest_mock-3.12.0-py3-none-any.whl", hash = "sha256:0972719a7263072da3a21c7f4773069bcc7486027d7e8e1f81d98a47e701bc4f"}, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +summary = "Extensions to the standard Python datetime module" +groups = ["dev"] +dependencies = [ + "six>=1.5", +] +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[[package]] +name = "pytz" +version = "2024.1" +summary = "World timezone definitions, modern and historical" +groups = ["dev"] +files = [ + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, +] + +[[package]] +name = "pywin32" +version = "306" +summary = "Python for Window Extensions" +groups = ["dev"] +marker = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +requires_python = ">=3.6" +summary = "YAML parser and emitter for Python" +groups = ["dev"] +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +requires_python = ">=3.6" +summary = "A custom YAML tag for referencing environment variables in YAML files. " +groups = ["dev"] +dependencies = [ + "pyyaml", +] +files = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] + +[[package]] +name = "pyzmq" +version = "25.1.2" +requires_python = ">=3.6" +summary = "Python bindings for 0MQ" +groups = ["dev"] +dependencies = [ + "cffi; implementation_name == \"pypy\"", +] +files = [ + {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4"}, + {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75"}, + {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6"}, + {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979"}, + {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08"}, + {file = "pyzmq-25.1.2-cp310-cp310-win32.whl", hash = "sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886"}, + {file = "pyzmq-25.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314"}, + {file = "pyzmq-25.1.2.tar.gz", hash = "sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226"}, +] + +[[package]] +name = "referencing" +version = "0.34.0" +requires_python = ">=3.8" +summary = "JSON Referencing + Python" +groups = ["dev"] +dependencies = [ + "attrs>=22.2.0", + "rpds-py>=0.7.0", +] +files = [ + {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"}, + {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"}, +] + +[[package]] +name = "regex" +version = "2023.12.25" +requires_python = ">=3.7" +summary = "Alternative regular expression module, to replace re." +groups = ["dev"] +files = [ + {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5"}, + {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8"}, + {file = "regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f"}, + {file = "regex-2023.12.25-cp310-cp310-win32.whl", hash = "sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630"}, + {file = "regex-2023.12.25-cp310-cp310-win_amd64.whl", hash = "sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105"}, + {file = "regex-2023.12.25.tar.gz", hash = "sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5"}, +] + +[[package]] +name = "requests" +version = "2.31.0" +requires_python = ">=3.7" +summary = "Python HTTP for Humans." +groups = ["dev"] +dependencies = [ + "certifi>=2017.4.17", + "charset-normalizer<4,>=2", + "idna<4,>=2.5", + "urllib3<3,>=1.21.1", +] +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[[package]] +name = "rpds-py" +version = "0.18.0" +requires_python = ">=3.8" +summary = "Python bindings to Rust's persistent data structures (rpds)" +groups = ["dev"] +files = [ + {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, + {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, + {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, + {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, +] + +[[package]] +name = "ruff" +version = "0.3.3" +requires_python = ">=3.7" +summary = "An extremely fast Python linter and code formatter, written in Rust." +groups = ["dev"] +files = [ + {file = "ruff-0.3.3-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:973a0e388b7bc2e9148c7f9be8b8c6ae7471b9be37e1cc732f8f44a6f6d7720d"}, + {file = "ruff-0.3.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:cfa60d23269d6e2031129b053fdb4e5a7b0637fc6c9c0586737b962b2f834493"}, + {file = "ruff-0.3.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1eca7ff7a47043cf6ce5c7f45f603b09121a7cc047447744b029d1b719278eb5"}, + {file = "ruff-0.3.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7d3f6762217c1da954de24b4a1a70515630d29f71e268ec5000afe81377642d"}, + {file = "ruff-0.3.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b24c19e8598916d9c6f5a5437671f55ee93c212a2c4c569605dc3842b6820386"}, + {file = "ruff-0.3.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5a6cbf216b69c7090f0fe4669501a27326c34e119068c1494f35aaf4cc683778"}, + {file = "ruff-0.3.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:352e95ead6964974b234e16ba8a66dad102ec7bf8ac064a23f95371d8b198aab"}, + {file = "ruff-0.3.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d6ab88c81c4040a817aa432484e838aaddf8bfd7ca70e4e615482757acb64f8"}, + {file = "ruff-0.3.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79bca3a03a759cc773fca69e0bdeac8abd1c13c31b798d5bb3c9da4a03144a9f"}, + {file = "ruff-0.3.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2700a804d5336bcffe063fd789ca2c7b02b552d2e323a336700abb8ae9e6a3f8"}, + {file = "ruff-0.3.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:fd66469f1a18fdb9d32e22b79f486223052ddf057dc56dea0caaf1a47bdfaf4e"}, + {file = "ruff-0.3.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:45817af234605525cdf6317005923bf532514e1ea3d9270acf61ca2440691376"}, + {file = "ruff-0.3.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0da458989ce0159555ef224d5b7c24d3d2e4bf4c300b85467b08c3261c6bc6a8"}, + {file = "ruff-0.3.3-py3-none-win32.whl", hash = "sha256:f2831ec6a580a97f1ea82ea1eda0401c3cdf512cf2045fa3c85e8ef109e87de0"}, + {file = "ruff-0.3.3-py3-none-win_amd64.whl", hash = "sha256:be90bcae57c24d9f9d023b12d627e958eb55f595428bafcb7fec0791ad25ddfc"}, + {file = "ruff-0.3.3-py3-none-win_arm64.whl", hash = "sha256:0171aab5fecdc54383993389710a3d1227f2da124d76a2784a7098e818f92d61"}, + {file = "ruff-0.3.3.tar.gz", hash = "sha256:38671be06f57a2f8aba957d9f701ea889aa5736be806f18c0cd03d6ff0cbca8d"}, +] + +[[package]] +name = "setuptools" +version = "69.2.0" +requires_python = ">=3.8" +summary = "Easily download, build, install, upgrade, and uninstall Python packages" +groups = ["dev"] +files = [ + {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"}, + {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"}, +] + +[[package]] +name = "six" +version = "1.16.0" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +summary = "Python 2 and 3 compatibility utilities" +groups = ["dev"] +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "smmap" +version = "5.0.1" +requires_python = ">=3.7" +summary = "A pure Python implementation of a sliding window memory map manager" +groups = ["dev"] +files = [ + {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, + {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +requires_python = ">=3.7" +summary = "Sniff out which async library your code is running under" +groups = ["default", "dev"] +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +requires_python = ">=3.8" +summary = "A modern CSS selector implementation for Beautiful Soup." +groups = ["dev"] +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +summary = "Extract data from python stack frames and tracebacks for informative displays" +groups = ["dev"] +dependencies = [ + "asttokens>=2.1.0", + "executing>=1.2.0", + "pure-eval", +] +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[[package]] +name = "tinycss2" +version = "1.2.1" +requires_python = ">=3.7" +summary = "A tiny CSS parser" +groups = ["dev"] +dependencies = [ + "webencodings>=0.4", +] +files = [ + {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, + {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, +] + +[[package]] +name = "tomli" +version = "2.0.1" +requires_python = ">=3.7" +summary = "A lil' TOML parser" +groups = ["dev"] +marker = "python_version < \"3.11\"" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "tornado" +version = "6.4" +requires_python = ">= 3.8" +summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +groups = ["dev"] +files = [ + {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, + {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, + {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, + {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, + {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, +] + +[[package]] +name = "tqdm" +version = "4.66.4" +requires_python = ">=3.7" +summary = "Fast, Extensible Progress Meter" +groups = ["dev"] +dependencies = [ + "colorama; platform_system == \"Windows\"", +] +files = [ + {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, + {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, +] + +[[package]] +name = "traitlets" +version = "5.14.2" +requires_python = ">=3.8" +summary = "Traitlets Python configuration system" +groups = ["dev"] +files = [ + {file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"}, + {file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"}, +] + +[[package]] +name = "typing-extensions" +version = "4.10.0" +requires_python = ">=3.8" +summary = "Backported and Experimental Type Hints for Python 3.8+" +groups = ["default", "dev"] +files = [ + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +requires_python = ">=2" +summary = "Provider of IANA time zone data" +groups = ["dev"] +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "urllib3" +version = "2.2.1" +requires_python = ">=3.8" +summary = "HTTP library with thread-safe connection pooling, file post, and more." +groups = ["dev"] +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[[package]] +name = "verspec" +version = "0.1.0" +summary = "Flexible version handling" +groups = ["dev"] +files = [ + {file = "verspec-0.1.0-py3-none-any.whl", hash = "sha256:741877d5633cc9464c45a469ae2a31e801e6dbbaa85b9675d481cda100f11c31"}, + {file = "verspec-0.1.0.tar.gz", hash = "sha256:c4504ca697b2056cdb4bfa7121461f5a0e81809255b41c03dda4ba823637c01e"}, +] + +[[package]] +name = "virtualenv" +version = "20.25.1" +requires_python = ">=3.7" +summary = "Virtual Python Environment builder" +groups = ["dev"] +dependencies = [ + "distlib<1,>=0.3.7", + "filelock<4,>=3.12.2", + "platformdirs<5,>=3.9.1", +] +files = [ + {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, + {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, +] + +[[package]] +name = "watchdog" +version = "4.0.0" +requires_python = ">=3.8" +summary = "Filesystem events monitoring" +groups = ["dev"] +files = [ + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"}, + {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"}, + {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"}, + {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"}, + {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"}, + {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"}, + {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"}, + {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"}, +] + +[[package]] +name = "wcwidth" +version = "0.2.13" +summary = "Measures the displayed width of unicode strings in a terminal" +groups = ["dev"] +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +summary = "Character encoding aliases for legacy web content" +groups = ["dev"] +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "xxhash" +version = "3.4.1" +requires_python = ">=3.7" +summary = "Python binding for xxHash" +groups = ["dev"] +files = [ + {file = "xxhash-3.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:91dbfa55346ad3e18e738742236554531a621042e419b70ad8f3c1d9c7a16e7f"}, + {file = "xxhash-3.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:665a65c2a48a72068fcc4d21721510df5f51f1142541c890491afc80451636d2"}, + {file = "xxhash-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb11628470a6004dc71a09fe90c2f459ff03d611376c1debeec2d648f44cb693"}, + {file = "xxhash-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bef2a7dc7b4f4beb45a1edbba9b9194c60a43a89598a87f1a0226d183764189"}, + {file = "xxhash-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c0f7b2d547d72c7eda7aa817acf8791f0146b12b9eba1d4432c531fb0352228"}, + {file = "xxhash-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00f2fdef6b41c9db3d2fc0e7f94cb3db86693e5c45d6de09625caad9a469635b"}, + {file = "xxhash-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23cfd9ca09acaf07a43e5a695143d9a21bf00f5b49b15c07d5388cadf1f9ce11"}, + {file = "xxhash-3.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6a9ff50a3cf88355ca4731682c168049af1ca222d1d2925ef7119c1a78e95b3b"}, + {file = "xxhash-3.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f1d7c69a1e9ca5faa75546fdd267f214f63f52f12692f9b3a2f6467c9e67d5e7"}, + {file = "xxhash-3.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:672b273040d5d5a6864a36287f3514efcd1d4b1b6a7480f294c4b1d1ee1b8de0"}, + {file = "xxhash-3.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4178f78d70e88f1c4a89ff1ffe9f43147185930bb962ee3979dba15f2b1cc799"}, + {file = "xxhash-3.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9804b9eb254d4b8cc83ab5a2002128f7d631dd427aa873c8727dba7f1f0d1c2b"}, + {file = "xxhash-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c09c49473212d9c87261d22c74370457cfff5db2ddfc7fd1e35c80c31a8c14ce"}, + {file = "xxhash-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:ebbb1616435b4a194ce3466d7247df23499475c7ed4eb2681a1fa42ff766aff6"}, + {file = "xxhash-3.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:25dc66be3db54f8a2d136f695b00cfe88018e59ccff0f3b8f545869f376a8a46"}, + {file = "xxhash-3.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:58c49083801885273e262c0f5bbeac23e520564b8357fbb18fb94ff09d3d3ea5"}, + {file = "xxhash-3.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b526015a973bfbe81e804a586b703f163861da36d186627e27524f5427b0d520"}, + {file = "xxhash-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36ad4457644c91a966f6fe137d7467636bdc51a6ce10a1d04f365c70d6a16d7e"}, + {file = "xxhash-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:248d3e83d119770f96003271fe41e049dd4ae52da2feb8f832b7a20e791d2920"}, + {file = "xxhash-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2070b6d5bbef5ee031666cf21d4953c16e92c2f8a24a94b5c240f8995ba3b1d0"}, + {file = "xxhash-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2746035f518f0410915e247877f7df43ef3372bf36cfa52cc4bc33e85242641"}, + {file = "xxhash-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a8ba6181514681c2591840d5632fcf7356ab287d4aff1c8dea20f3c78097088"}, + {file = "xxhash-3.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aac5010869240e95f740de43cd6a05eae180c59edd182ad93bf12ee289484fa"}, + {file = "xxhash-3.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4cb11d8debab1626181633d184b2372aaa09825bde709bf927704ed72765bed1"}, + {file = "xxhash-3.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b29728cff2c12f3d9f1d940528ee83918d803c0567866e062683f300d1d2eff3"}, + {file = "xxhash-3.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:a15cbf3a9c40672523bdb6ea97ff74b443406ba0ab9bca10ceccd9546414bd84"}, + {file = "xxhash-3.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6e66df260fed01ed8ea790c2913271641c58481e807790d9fca8bfd5a3c13844"}, + {file = "xxhash-3.4.1-cp311-cp311-win32.whl", hash = "sha256:e867f68a8f381ea12858e6d67378c05359d3a53a888913b5f7d35fbf68939d5f"}, + {file = "xxhash-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:200a5a3ad9c7c0c02ed1484a1d838b63edcf92ff538770ea07456a3732c577f4"}, + {file = "xxhash-3.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:1d03f1c0d16d24ea032e99f61c552cb2b77d502e545187338bea461fde253583"}, + {file = "xxhash-3.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6127813abc1477f3a83529b6bbcfeddc23162cece76fa69aee8f6a8a97720562"}, + {file = "xxhash-3.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef2e194262f5db16075caea7b3f7f49392242c688412f386d3c7b07c7733a70a"}, + {file = "xxhash-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71be94265b6c6590f0018bbf73759d21a41c6bda20409782d8117e76cd0dfa8b"}, + {file = "xxhash-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10e0a619cdd1c0980e25eb04e30fe96cf8f4324758fa497080af9c21a6de573f"}, + {file = "xxhash-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa122124d2e3bd36581dd78c0efa5f429f5220313479fb1072858188bc2d5ff1"}, + {file = "xxhash-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17032f5a4fea0a074717fe33477cb5ee723a5f428de7563e75af64bfc1b1e10"}, + {file = "xxhash-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca7783b20e3e4f3f52f093538895863f21d18598f9a48211ad757680c3bd006f"}, + {file = "xxhash-3.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d77d09a1113899fad5f354a1eb4f0a9afcf58cefff51082c8ad643ff890e30cf"}, + {file = "xxhash-3.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:21287bcdd299fdc3328cc0fbbdeaa46838a1c05391264e51ddb38a3f5b09611f"}, + {file = "xxhash-3.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:dfd7a6cc483e20b4ad90224aeb589e64ec0f31e5610ab9957ff4314270b2bf31"}, + {file = "xxhash-3.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:543c7fcbc02bbb4840ea9915134e14dc3dc15cbd5a30873a7a5bf66039db97ec"}, + {file = "xxhash-3.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fe0a98d990e433013f41827b62be9ab43e3cf18e08b1483fcc343bda0d691182"}, + {file = "xxhash-3.4.1-cp39-cp39-win32.whl", hash = "sha256:b9097af00ebf429cc7c0e7d2fdf28384e4e2e91008130ccda8d5ae653db71e54"}, + {file = "xxhash-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:d699b921af0dcde50ab18be76c0d832f803034d80470703700cb7df0fbec2832"}, + {file = "xxhash-3.4.1-cp39-cp39-win_arm64.whl", hash = "sha256:2be491723405e15cc099ade1280133ccfbf6322d2ef568494fb7d07d280e7eee"}, + {file = "xxhash-3.4.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:431625fad7ab5649368c4849d2b49a83dc711b1f20e1f7f04955aab86cd307bc"}, + {file = "xxhash-3.4.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc6dbd5fc3c9886a9e041848508b7fb65fd82f94cc793253990f81617b61fe49"}, + {file = "xxhash-3.4.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3ff8dbd0ec97aec842476cb8ccc3e17dd288cd6ce3c8ef38bff83d6eb927817"}, + {file = "xxhash-3.4.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef73a53fe90558a4096e3256752268a8bdc0322f4692ed928b6cd7ce06ad4fe3"}, + {file = "xxhash-3.4.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:450401f42bbd274b519d3d8dcf3c57166913381a3d2664d6609004685039f9d3"}, + {file = "xxhash-3.4.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a162840cf4de8a7cd8720ff3b4417fbc10001eefdd2d21541a8226bb5556e3bb"}, + {file = "xxhash-3.4.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b736a2a2728ba45017cb67785e03125a79d246462dfa892d023b827007412c52"}, + {file = "xxhash-3.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d0ae4c2e7698adef58710d6e7a32ff518b66b98854b1c68e70eee504ad061d8"}, + {file = "xxhash-3.4.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6322c4291c3ff174dcd104fae41500e75dad12be6f3085d119c2c8a80956c51"}, + {file = "xxhash-3.4.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:dd59ed668801c3fae282f8f4edadf6dc7784db6d18139b584b6d9677ddde1b6b"}, + {file = "xxhash-3.4.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:92693c487e39523a80474b0394645b393f0ae781d8db3474ccdcead0559ccf45"}, + {file = "xxhash-3.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4603a0f642a1e8d7f3ba5c4c25509aca6a9c1cc16f85091004a7028607ead663"}, + {file = "xxhash-3.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fa45e8cbfbadb40a920fe9ca40c34b393e0b067082d94006f7f64e70c7490a6"}, + {file = "xxhash-3.4.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:595b252943b3552de491ff51e5bb79660f84f033977f88f6ca1605846637b7c6"}, + {file = "xxhash-3.4.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:562d8b8f783c6af969806aaacf95b6c7b776929ae26c0cd941d54644ea7ef51e"}, + {file = "xxhash-3.4.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:41ddeae47cf2828335d8d991f2d2b03b0bdc89289dc64349d712ff8ce59d0647"}, + {file = "xxhash-3.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c44d584afdf3c4dbb3277e32321d1a7b01d6071c1992524b6543025fb8f4206f"}, + {file = "xxhash-3.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd7bddb3a5b86213cc3f2c61500c16945a1b80ecd572f3078ddbbe68f9dabdfb"}, + {file = "xxhash-3.4.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9ecb6c987b62437c2f99c01e97caf8d25660bf541fe79a481d05732e5236719c"}, + {file = "xxhash-3.4.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:696b4e18b7023527d5c50ed0626ac0520edac45a50ec7cf3fc265cd08b1f4c03"}, + {file = "xxhash-3.4.1.tar.gz", hash = "sha256:0379d6cf1ff987cd421609a264ce025e74f346e3e145dd106c0cc2e3ec3f99a9"}, +] + +[[package]] +name = "yarl" +version = "1.9.4" +requires_python = ">=3.7" +summary = "Yet another URL library" +groups = ["dev"] +dependencies = [ + "idna>=2.0", + "multidict>=4.0", +] +files = [ + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, + {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, + {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, + {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, + {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"}, + {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"}, + {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"}, + {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, + {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, +] + +[[package]] +name = "zipp" +version = "3.18.1" +requires_python = ">=3.8" +summary = "Backport of pathlib-compatible object wrapper for zip files" +groups = ["dev"] +files = [ + {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, + {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, +] diff --git a/argilla-sdk/pyproject.toml b/argilla-sdk/pyproject.toml new file mode 100644 index 0000000000..45bc717838 --- /dev/null +++ b/argilla-sdk/pyproject.toml @@ -0,0 +1,70 @@ +[project] +name = "argilla-sdk" +description = "The Argilla python server SDK" +authors = [ + {name = "Argilla", email = "contact@argilla.io"}, +] +requires-python = ">=3.9,<3.12" +readme = "README.md" +license = {text = "Apache 2.0"} + +dynamic = ["version"] + +dependencies = [ + "httpx>=0.26.0", + "pydantic>=2.6.0, <3.0.0", +] + +[project.optional-dependencies] +io = [ + "datasets>=2.0.0", +] + +[build-system] +requires = ["pdm-backend"] +build-backend = "pdm.backend" + +[tool.ruff] +line-length = 120 + +[tool.black] +line-length = 120 + +[tool.pdm] +distribution = true + +[tool.pdm.version] +source = "file" +path = "src/argilla_sdk/__init__.py" + +[tool.pdm.dev-dependencies] +dev = [ + "ipython>=8.12.3", + "pytest>=7.4.4", + "flake8>=5.0.4", + "ruff>=0.1.12", + "pytest-mock>=3.12.0", + "pytest-httpx>=0.26.0", + "black>=23.12.1", + "build>=1.0.3", + "pre-commit>=3.5.0", + "mkdocs-material >= 9.5.17", + "mkdocstrings[python] >= 0.24.0", + "mkdocs-literate-nav >= 0.6.1", + "mkdocs-section-index >= 0.3.8", + "mkdocs-gen-files >= 0.5.0", + "mkdocs-open-in-new-tab >= 1.0.3", + "mike >= 2.0.0", + "Pillow >= 9.5.0", + "CairoSVG >= 2.7.1", + "mknotebooks >= 0.8.0", + "datasets>=2.19.1", +] + +[tool.pdm.scripts] +test = "pytest tests" +lint = "ruff check" +format = "black ." +all = {composite = ["format", "lint", "test"]} + + diff --git a/argilla-sdk/src/argilla_sdk/__init__.py b/argilla-sdk/src/argilla_sdk/__init__.py new file mode 100644 index 0000000000..e9f096b034 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/__init__.py @@ -0,0 +1,26 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk.client import * # noqa +from argilla_sdk.datasets import * # noqa +from argilla_sdk.workspaces._resource import * # noqa +from argilla_sdk.users._resource import * # noqa +from argilla_sdk.settings import * # noqa +from argilla_sdk.suggestions import * # noqa +from argilla_sdk.responses import * # noqa +from argilla_sdk.records import * # noqa +from argilla_sdk.vectors import * # noqa + + +__version__ = "2.0.0a0.dev0" diff --git a/argilla-sdk/src/argilla_sdk/_api/__init__.py b/argilla-sdk/src/argilla_sdk/_api/__init__.py new file mode 100644 index 0000000000..f4789efdc8 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/__init__.py @@ -0,0 +1,22 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._api._datasets import * # noqa 403 +from argilla_sdk._api._http import * # noqa 403 +from argilla_sdk._api._workspaces import * # noqa 403 +from argilla_sdk._api._users import * # noqa 403 +from argilla_sdk._api._client import * # noqa 403 +from argilla_sdk._api._fields import * # noqa 403 +from argilla_sdk._api._records import * # noqa 403 +from argilla_sdk._api._questions import * # noqa 403 diff --git a/argilla-sdk/src/argilla_sdk/_api/_base.py b/argilla-sdk/src/argilla_sdk/_api/_base.py new file mode 100644 index 0000000000..0a535aa9bd --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_base.py @@ -0,0 +1,60 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from datetime import datetime +from typing import Generic, TYPE_CHECKING, TypeVar +from uuid import UUID + +from argilla_sdk._helpers._mixins import LoggingMixin + + +if TYPE_CHECKING: + from httpx import Client + + +__all__ = ["ResourceAPI"] + +T = TypeVar("T") + + +# TODO: Use ABC and align all the abstract method for the different resources APIs +# See comment https://github.com/argilla-io/argilla-python/pull/33#discussion_r1532079989 +class ResourceAPI(LoggingMixin, Generic[T]): + """Base class for all API resources that contains common methods.""" + + def __init__(self, http_client: "Client") -> None: + self.http_client = http_client + + ################ + # CRUD methods # + ################ + + def get(self, id: UUID) -> T: + raise NotImplementedError + + def create(self, resource: T) -> T: + raise NotImplementedError + + def delete(self, id: UUID) -> None: + raise NotImplementedError + + def update(self, resource: T) -> T: + return resource + + #################### + # Utility methods # + #################### + + def _date_from_iso_format(self, date: str) -> datetime: + return datetime.fromisoformat(date) diff --git a/argilla-sdk/src/argilla_sdk/_api/_client.py b/argilla-sdk/src/argilla_sdk/_api/_client.py new file mode 100644 index 0000000000..a4bbeb0ab4 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_client.py @@ -0,0 +1,135 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import logging +import os +from typing import Optional + +import httpx + +from argilla_sdk._api import HTTPClientConfig, create_http_client +from argilla_sdk._api._datasets import DatasetsAPI +from argilla_sdk._api._fields import FieldsAPI +from argilla_sdk._api._metadata import MetadataAPI +from argilla_sdk._api._questions import QuestionsAPI +from argilla_sdk._api._records import RecordsAPI +from argilla_sdk._api._users import UsersAPI +from argilla_sdk._api._vectors import VectorsAPI +from argilla_sdk._api._workspaces import WorkspacesAPI +from argilla_sdk._constants import _DEFAULT_API_KEY, _DEFAULT_API_URL + +__all__ = ["APIClient"] + + +ARGILLA_API_URL = os.getenv(key="ARGILLA_API_URL", default=_DEFAULT_API_URL) +ARGILLA_API_KEY = os.getenv(key="ARGILLA_API_KEY", default=_DEFAULT_API_KEY) +DEFAULT_HTTP_CONFIG = HTTPClientConfig(api_url=ARGILLA_API_URL, api_key=ARGILLA_API_KEY) + + +class ArgillaAPI: + """Argilla API access object.""" + + def __init__(self, http_client: httpx.Client): + self.http_client = http_client + + self.__workspaces = WorkspacesAPI(http_client=self.http_client) + self.__datasets = DatasetsAPI(http_client=self.http_client) + self.__users = UsersAPI(http_client=self.http_client) + self.__fields = FieldsAPI(http_client=self.http_client) + self.__questions = QuestionsAPI(http_client=self.http_client) + self.__records = RecordsAPI(http_client=self.http_client) + self.__vectors = VectorsAPI(http_client=self.http_client) + self.__metadata = MetadataAPI(http_client=self.http_client) + + @property + def workspaces(self) -> "WorkspacesAPI": + return self.__workspaces + + @property + def users(self) -> "UsersAPI": + return self.__users + + @property + def datasets(self) -> "DatasetsAPI": + return self.__datasets + + @property + def fields(self) -> "FieldsAPI": + return self.__fields + + @property + def questions(self) -> "QuestionsAPI": + return self.__questions + + @property + def records(self) -> "RecordsAPI": + return self.__records + + @property + def vectors(self) -> "VectorsAPI": + return self.__vectors + + @property + def metadata(self) -> "MetadataAPI": + return self.__metadata + + +class APIClient: + """Initialize the SDK with the given API URL and API key. + This class is used to create an instance of the Argilla API client. + + Args: + api_url (str, optional): The URL of the Argilla API. Defaults to the value of + the `ARGILLA_API_URL` environment variable. + api_key (str, optional): The API key to authenticate with the Argilla API. Defaults to + the value of the `ARGILLA_API_KEY` environment variable. + timeout (int, optional): The timeout in seconds for the HTTP requests. Defaults to 60. + **http_client_args: Additional keyword arguments to pass to the httpx.Client instance. + See https://www.python-httpx.org/api/#client for more information. + """ + + def __init__( + self, + api_url: Optional[str] = DEFAULT_HTTP_CONFIG.api_url, + api_key: Optional[str] = DEFAULT_HTTP_CONFIG.api_key, + timeout: int = DEFAULT_HTTP_CONFIG.timeout, + **http_client_args, + ): + http_client_args = http_client_args or {} + http_client_args["timeout"] = timeout + + self.api_url = api_url + self.api_key = api_key + self._http_client_args = http_client_args + + @property + def http_client(self) -> httpx.Client: + return create_http_client( + api_url=self.api_url, # type: ignore + api_key=self.api_key, # type: ignore + **self._http_client_args, + ) + + @property + def api(self) -> "ArgillaAPI": + return ArgillaAPI(http_client=self.http_client) + + ############################## + # Utility methods + ############################## + + def log(self, message: str, level: int = logging.INFO) -> None: + class_name = self.__class__.__name__ + message = f"{class_name}: {message}" + logging.log(level=level, msg=message) diff --git a/argilla-sdk/src/argilla_sdk/_api/_datasets.py b/argilla-sdk/src/argilla_sdk/_api/_datasets.py new file mode 100644 index 0000000000..9fff950d5a --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_datasets.py @@ -0,0 +1,122 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Optional, Dict +from uuid import UUID + +import httpx +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions._api import api_error_handler +from argilla_sdk._models import DatasetModel + +__all__ = ["DatasetsAPI"] + + +class DatasetsAPI(ResourceAPI[DatasetModel]): + """Manage datasets via the API""" + + http_client: httpx.Client + url_stub = "/api/v1/datasets" + + ################ + # CRUD methods # + ################ + + @api_error_handler + def create(self, dataset: "DatasetModel") -> "DatasetModel": + json_body = dataset.model_dump() + response = self.http_client.post( + url=self.url_stub, + json=json_body, + ) + response.raise_for_status() + response_json = response.json() + dataset = self._model_from_json(response_json=response_json) + self.log(message=f"Created dataset {dataset.name}") + return dataset + + @api_error_handler + def update(self, dataset: "DatasetModel") -> "DatasetModel": + json_body = dataset.model_dump() + dataset_id = json_body["id"] # type: ignore + response = self.http_client.patch(f"{self.url_stub}/{dataset_id}", json=json_body) + response.raise_for_status() + response_json = response.json() + dataset = self._model_from_json(response_json=response_json) + self.log(message=f"Updated dataset {dataset.url}") + return dataset + + @api_error_handler + def get(self, dataset_id: UUID) -> "DatasetModel": + response = self.http_client.get(url=f"{self.url_stub}/{dataset_id}") + response.raise_for_status() + response_json = response.json() + dataset = self._model_from_json(response_json=response_json) + self.log(message=f"Got dataset {dataset.url}") + return dataset + + @api_error_handler + def delete(self, dataset_id: UUID) -> None: + response = self.http_client.delete(f"{self.url_stub}/{dataset_id}") + response.raise_for_status() + self.log(message=f"Deleted dataset {dataset_id}") + + def exists(self, dataset_id: UUID) -> bool: + response = self.http_client.get(f"{self.url_stub}/{dataset_id}") + return response.status_code == 200 + + #################### + # Utility methods # + #################### + + @api_error_handler + def publish(self, dataset_id: UUID) -> "DatasetModel": + response = self.http_client.put(url=f"{self.url_stub}/{dataset_id}/publish") + response.raise_for_status() + response_json = response.json() + self.log(message=f"Published dataset {dataset_id}") + return self._model_from_json(response_json=response_json) + + @api_error_handler + def list(self, workspace_id: Optional[UUID] = None) -> List["DatasetModel"]: + response = self.http_client.get("/api/v1/me/datasets") + response.raise_for_status() + response_json = response.json() + datasets = self._model_from_jsons(response_jsons=response_json["items"]) + if workspace_id: + datasets = [dataset for dataset in datasets if dataset.workspace_id == workspace_id] + self.log(message=f"Listed {len(datasets)} datasets") + return datasets + + def get_by_name_and_workspace_id(self, name: str, workspace_id: UUID) -> Optional["DatasetModel"]: + datasets = self.list(workspace_id=workspace_id) + for dataset in datasets: + if dataset.name == name: + self.log(message=f"Got dataset {dataset.name}") + return dataset + + def name_exists(self, name: str, workspace_id: UUID) -> bool: + return bool(self.get_by_name_and_workspace_id(name=name, workspace_id=workspace_id)) + + #################### + # Private methods # + #################### + + def _model_from_json(self, response_json: Dict) -> "DatasetModel": + response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) + response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) + return DatasetModel(**response_json) + + def _model_from_jsons(self, response_jsons: List[Dict]) -> List["DatasetModel"]: + return list(map(self._model_from_json, response_jsons)) diff --git a/argilla-sdk/src/argilla_sdk/_api/_fields.py b/argilla-sdk/src/argilla_sdk/_api/_fields.py new file mode 100644 index 0000000000..7d34600017 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_fields.py @@ -0,0 +1,96 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Dict +from uuid import UUID + +import httpx +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions import api_error_handler +from argilla_sdk._models import FieldBaseModel, TextFieldModel, FieldModel + +__all__ = ["FieldsAPI"] + + +class FieldsAPI(ResourceAPI[FieldBaseModel]): + """Manage datasets via the API""" + + http_client: httpx.Client + + ################ + # CRUD methods # + ################ + + @api_error_handler + def create(self, dataset_id: UUID, field: FieldModel) -> FieldModel: + url = f"/api/v1/datasets/{dataset_id}/fields" + response = self.http_client.post(url=url, json=field.model_dump()) + response.raise_for_status() + response_json = response.json() + field_model = self._model_from_json(response_json=response_json) + self.log(message=f"Created field {field_model.name} in dataset {dataset_id}") + return field_model + + @api_error_handler + def update(self, field: FieldModel) -> FieldModel: + # TODO: Implement update method for fields with server side ID + raise NotImplementedError + + @api_error_handler + def delete(self, dataset_id: UUID) -> None: + # TODO: Implement delete method for fields with server side ID + raise NotImplementedError + + #################### + # Utility methods # + #################### + + def create_many(self, dataset_id: UUID, fields: List[FieldModel]) -> List[FieldModel]: + field_models = [] + for field in fields: + field_model = self.create(dataset_id=dataset_id, field=field) + field_models.append(field_model) + return field_models + + @api_error_handler + def list(self, dataset_id: UUID) -> List[FieldModel]: + response = self.http_client.get(f"/api/v1/datasets/{dataset_id}/fields") + response.raise_for_status() + response_json = response.json() + field_models = self._model_from_jsons(response_jsons=response_json["items"]) + return field_models + + #################### + # Private methods # + #################### + + def _model_from_json(self, response_json: Dict) -> FieldModel: + response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) + response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) + return self._get_model_from_response(response_json=response_json) + + def _model_from_jsons(self, response_jsons: List[Dict]) -> List[FieldModel]: + return list(map(self._model_from_json, response_jsons)) + + def _get_model_from_response(self, response_json: Dict) -> FieldModel: + try: + field_type = response_json.get("settings", {}).get("type") + except Exception as e: + raise ValueError("Invalid response type: missing 'settings.type' in response") from e + if field_type == "text": + # TODO: Avoid apply validations here (check_fields=False?) + return TextFieldModel(**response_json) + else: + # TODO: Add more field types + raise ValueError(f"Invalid field type: {field_type}") diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py b/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py new file mode 100644 index 0000000000..801129e2be --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py @@ -0,0 +1,16 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._api._http._client import * # noqa F401, F403 +from argilla_sdk._api._http._helpers import * # noqa F401, F403 diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/_client.py b/argilla-sdk/src/argilla_sdk/_api/_http/_client.py new file mode 100644 index 0000000000..6fcf092456 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_http/_client.py @@ -0,0 +1,44 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from dataclasses import dataclass +from typing import Optional + +import httpx + +from argilla_sdk._constants import _DEFAULT_API_URL, _DEFAULT_API_KEY + + +@dataclass +class HTTPClientConfig: + """Basic configuration for the HTTP client.""" + + api_url: Optional[str] = None + api_key: Optional[str] = None + timeout: int = None + + def __post_init__(self): + self.api_url = self.api_url or _DEFAULT_API_URL + self.api_key = self.api_key or _DEFAULT_API_KEY + self.timeout = self.timeout or 60 + + +def create_http_client(api_url: str, api_key: str, **client_args) -> httpx.Client: + """Initialize the SDK with the given API URL and API key.""" + # This piece of code is needed to make old sdk works in combination with new one + + headers = client_args.pop("headers", {}) + headers["X-Argilla-Api-Key"] = api_key + + return httpx.Client(base_url=api_url, headers=headers, **client_args) diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py b/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py new file mode 100644 index 0000000000..c955f9e827 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py @@ -0,0 +1,32 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import httpx +from httpx import HTTPStatusError + + +__all__ = ["raise_for_status"] + + +def raise_for_status(response: httpx.Response) -> None: + """Raise an exception if the response status code is not a 2xx code.""" + try: + response.raise_for_status() + except httpx.HTTPStatusError as e: + if e.response.is_client_error: + message = (f"{e.response.json()} {e!r}",) + else: + message = f"{e!r}. Response: {e.response.content!r}" + + raise HTTPStatusError(message=message, request=e.request, response=e.response) from e diff --git a/argilla-sdk/src/argilla_sdk/_api/_metadata.py b/argilla-sdk/src/argilla_sdk/_api/_metadata.py new file mode 100644 index 0000000000..07491296c1 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_metadata.py @@ -0,0 +1,94 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Dict +from uuid import UUID + +import httpx +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions import api_error_handler +from argilla_sdk._models import MetadataFieldModel + +__all__ = ["MetadataAPI"] + + +class MetadataAPI(ResourceAPI[MetadataFieldModel]): + """Manage metadata via the API""" + + http_client: httpx.Client + + ################ + # CRUD methods # + ################ + + @api_error_handler + def create(self, dataset_id: UUID, metadata_field: MetadataFieldModel) -> MetadataFieldModel: + url = f"/api/v1/datasets/{dataset_id}/metadata-properties" + response = self.http_client.post(url=url, json=metadata_field.model_dump()) + response.raise_for_status() + response_json = response.json() + metadata_field_model = self._model_from_json(response_json=response_json) + self.log(message=f"Created metadata field {metadata_field_model.name} in dataset {dataset_id}") + return metadata_field_model + + @api_error_handler + def update(self, metadata_field: MetadataFieldModel) -> MetadataFieldModel: + url = f"/api/v1/metadata-properties/{metadata_field.id}" + response = self.http_client.patch(url=url, json=metadata_field.model_dump()) + response.raise_for_status() + response_json = response.json() + metadata_field_model = self._model_from_json(response_json=response_json) + self.log(message=f"Updated field {metadata_field_model.name}") + return metadata_field_model + + @api_error_handler + def delete(self, id: UUID) -> None: + url = f"/api/v1/metadata-properties/{id}" + self.http_client.delete(url=url).raise_for_status() + self.log(message=f"Deleted field {id}") + + @api_error_handler + def get(self, id: UUID) -> MetadataFieldModel: + raise NotImplementedError() + + #################### + # Utility methods # + #################### + + def create_many(self, dataset_id: UUID, metadata_fields: List[MetadataFieldModel]) -> List[MetadataFieldModel]: + metadata_field_models = [] + for metadata_field in metadata_fields: + metadata_field_model = self.create(dataset_id=dataset_id, metadata_field=metadata_field) + metadata_field_models.append(metadata_field_model) + return metadata_field_models + + @api_error_handler + def list(self, dataset_id: UUID) -> List[MetadataFieldModel]: + response = self.http_client.get(f"/api/v1/me/datasets/{dataset_id}/metadata-properties") + response.raise_for_status() + response_json = response.json() + metadata_field_model = self._model_from_jsons(response_jsons=response_json["items"]) + return metadata_field_model + + #################### + # Private methods # + #################### + + def _model_from_json(self, response_json: Dict) -> MetadataFieldModel: + response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) + response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) + return MetadataFieldModel(**response_json) + + def _model_from_jsons(self, response_jsons: List[Dict]) -> List[MetadataFieldModel]: + return list(map(self._model_from_json, response_jsons)) diff --git a/argilla-sdk/src/argilla_sdk/_api/_questions.py b/argilla-sdk/src/argilla_sdk/_api/_questions.py new file mode 100644 index 0000000000..5e29c3e9a7 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_questions.py @@ -0,0 +1,123 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Dict +from uuid import UUID + +import httpx +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions import api_error_handler +from argilla_sdk._models import ( + TextQuestionModel, + LabelQuestionModel, + MultiLabelQuestionModel, + RankingQuestionModel, + RatingQuestionModel, + SpanQuestionModel, + QuestionBaseModel, + QuestionModel, +) + +__all__ = ["QuestionsAPI"] + + +class QuestionsAPI(ResourceAPI[QuestionBaseModel]): + """Manage datasets via the API""" + + http_client: httpx.Client + + _TYPE_TO_MODEL_CLASS = { + "text": TextQuestionModel, + "label_selection": LabelQuestionModel, + "multi_label_selection": MultiLabelQuestionModel, + "ranking": RankingQuestionModel, + "rating": RatingQuestionModel, + "span": SpanQuestionModel, + } + + ################ + # CRUD methods # + ################ + + @api_error_handler + def create( + self, + dataset_id: UUID, + question: QuestionModel, + ) -> QuestionModel: + url = f"/api/v1/datasets/{dataset_id}/questions" + response = self.http_client.post(url=url, json=question.model_dump()) + response.raise_for_status() + response_json = response.json() + question_model = self._model_from_json(response_json=response_json) + self.log(message=f"Created question {question_model.name} in dataset {dataset_id}") + return question_model + + @api_error_handler + def update( + self, + question: QuestionModel, + ) -> QuestionModel: + # TODO: Implement update method for fields with server side ID + raise NotImplementedError + + @api_error_handler + def delete(self, question_id: UUID) -> None: + # TODO: Implement delete method for fields with server side ID + raise NotImplementedError + + #################### + # Utility methods # + #################### + + def create_many(self, dataset_id: UUID, questions: List[QuestionModel]) -> List[QuestionModel]: + response_models = [] + for question in questions: + response_model = self.create(dataset_id=dataset_id, question=question) + response_models.append(response_model) + return response_models + + @api_error_handler + def list(self, dataset_id: UUID) -> List[QuestionModel]: + response = self.http_client.get(f"/api/v1/datasets/{dataset_id}/questions") + response.raise_for_status() + response_json = response.json() + response_models = self._model_from_jsons(response_jsons=response_json["items"]) + return response_models + + #################### + # Private methods # + #################### + + def _model_from_json(self, response_json: Dict) -> QuestionModel: + response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) + response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) + return self._get_model_from_response(response_json=response_json) + + def _model_from_jsons(self, response_jsons: List[Dict]) -> List[QuestionModel]: + return list(map(self._model_from_json, response_jsons)) + + def _get_model_from_response(self, response_json: Dict) -> QuestionModel: + """Get the model from the response""" + try: + question_type = response_json.get("settings", {}).get("type") + except Exception as e: + raise ValueError("Invalid field type: missing 'settings.type' in response") from e + + question_class = self._TYPE_TO_MODEL_CLASS.get(question_type) + if question_class is None: + self.log(message=f"Unknown question type: {question_type}") + question_class = QuestionBaseModel + + return question_class(**response_json, check_fields=False) diff --git a/argilla-sdk/src/argilla_sdk/_api/_records.py b/argilla-sdk/src/argilla_sdk/_api/_records.py new file mode 100644 index 0000000000..ef3cd6eaba --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_records.py @@ -0,0 +1,237 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Dict, Tuple, Union, Optional +from uuid import UUID + +import httpx +from typing_extensions import deprecated + +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions import api_error_handler +from argilla_sdk._models import RecordModel, UserResponseModel, SearchQueryModel + +__all__ = ["RecordsAPI"] + + +class RecordsAPI(ResourceAPI[RecordModel]): + """Manage datasets via the API""" + + MAX_RECORDS_PER_CREATE_BULK = 500 + MAX_RECORDS_PER_UPSERT_BULK = 500 + + http_client: httpx.Client + + ################ + # CRUD methods # + ################ + @api_error_handler + def get(self, record_id: UUID) -> RecordModel: + response = self.http_client.get(f"/api/v1/records/{record_id}") + response.raise_for_status() + response_json = response.json() + return self._model_from_json(response_json=response_json) + + @api_error_handler + def update(self, record: RecordModel) -> RecordModel: + response = self.http_client.patch( + url=f"/api/v1/records/{record.id}", + json=record.model_dump(), + ) + response.raise_for_status() + response_json = response.json() + return self._model_from_json(response_json=response_json) + + @api_error_handler + def delete(self, record_id: UUID) -> None: + response = self.http_client.delete(f"/api/v1/records/{record_id}") + response.raise_for_status() + self.log(message=f"Deleted record {record_id}") + + #################### + # Utility methods # + #################### + @api_error_handler + def list( + self, + dataset_id: UUID, + offset: int = 0, + limit: int = 100, + with_suggestions: bool = True, + with_responses: bool = True, + with_vectors: Optional[Union[List, bool]] = None, + ) -> List[RecordModel]: + """List records in a dataset + Args: + dataset_id: The ID of the dataset + offset: The offset to start from + limit: The number of records to return + with_vectors: The name of vectors to include + with_suggestions: Whether to include suggestions + with_responses: Whether to include responses + """ + include = [] + if with_suggestions: + include.append("suggestions") + if with_responses: + include.append("responses") + if with_vectors: + include.append(self._represent_vectors_to_include(with_vectors)) + + params = { + "offset": offset, + "limit": limit, + "include": include, + } + + response = self.http_client.get(f"/api/v1/datasets/{dataset_id}/records", params=params) + response.raise_for_status() + response_json = response.json() + json_records = response_json["items"] + return self._model_from_jsons(json_records) + + @api_error_handler + def search( + self, + dataset_id: UUID, + query: SearchQueryModel, + offset: int = 0, + limit: int = 100, + with_suggestions: bool = True, + with_responses: bool = True, + # TODO: Add support for `with_vectors` + ) -> Tuple[List[Tuple[RecordModel, float]], int]: + include = [] + if with_suggestions: + include.append("suggestions") + if with_responses: + include.append("responses") + params = { + "offset": offset, + "limit": limit, + "include": include, + } + response = self.http_client.post( + f"/api/v1/datasets/{dataset_id}/records/search", json=query.model_dump(by_alias=True), params=params + ) + response.raise_for_status() + response_json = response.json() + json_items = response_json["items"] + total = response_json["total"] + return [(self._model_from_json(item["record"]), item["query_score"]) for item in json_items], total + + @api_error_handler + @deprecated("Use `bulk_create` or `bulk_upsert` instead") + def create_many(self, dataset_id: UUID, records: List[RecordModel]) -> None: + record_dicts = [record.model_dump() for record in records] + response = self.http_client.post( + url=f"/api/v1/datasets/{dataset_id}/records", + json={"items": record_dicts}, + ) + response.raise_for_status() + self.log(message=f"Created {len(records)} records in dataset {dataset_id}") + # TODO: Once server returns the records, return them here + + @api_error_handler + @deprecated("Use `bulk_create` or `bulk_upsert` instead") + def update_many(self, dataset_id: UUID, records: List[RecordModel]) -> None: + record_dicts = [record.model_dump() for record in records] + response = self.http_client.patch( + url=f"/api/v1/datasets/{dataset_id}/records", + json={"items": record_dicts}, + ) + response.raise_for_status() + self.log(message=f"Updated {len(records)} records in dataset {dataset_id}") + + @api_error_handler + def bulk_create( + self, dataset_id: UUID, records: List[RecordModel] + ) -> Union[List[RecordModel], Tuple[List[RecordModel], int]]: + if len(records) > self.MAX_RECORDS_PER_CREATE_BULK: + raise ValueError(f"Cannot create more than {self.MAX_RECORDS_PER_CREATE_BULK} records at once") + record_dicts = [record.model_dump() for record in records] + response = self.http_client.post( + url=f"/api/v1/datasets/{dataset_id}/records/bulk", + json={"items": record_dicts}, + ) + response.raise_for_status() + response_json = response.json() + self.log(message=f"Created {len(records)} in dataset {dataset_id}") + return self._model_from_jsons(response_jsons=response_json["items"]) + + @api_error_handler + def bulk_upsert(self, dataset_id: UUID, records: List[RecordModel]) -> Tuple[List[RecordModel], int]: + if len(records) > self.MAX_RECORDS_PER_UPSERT_BULK: + raise ValueError(f"Cannot upsert more than {self.MAX_RECORDS_PER_UPSERT_BULK} records at once") + record_dicts = [record.model_dump() for record in records] + response = self.http_client.put( + url=f"/api/v1/datasets/{dataset_id}/records/bulk", + json={"items": record_dicts}, + ) + response.raise_for_status() + response_json = response.json() + updated = len(response_json.get("updated_item_ids", [])) + self.log( + message=f"Updated {updated} records and create {len(records) - updated} records in dataset {dataset_id}" + ) + return self._model_from_jsons(response_jsons=response_json["items"]), updated + + #################### + # Response methods # + #################### + + @api_error_handler + def create_record_response(self, record_id: UUID, user_response: UserResponseModel) -> None: + self.http_client.post( + url=f"/api/v1/records/{record_id}/responses", + json=user_response.model_dump(), + ).raise_for_status() + + def create_record_responses(self, record: RecordModel) -> None: + if not record.responses: + return + if not record.id: + raise ValueError("Record must have an ID to create responses") + for record_response in record.responses: + self.create_record_response(record_id=record.id, user_response=record_response) + + #################### + # Private methods # + #################### + + def _model_from_json(self, response_json: Dict) -> RecordModel: + response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) + response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) + if "vectors" in response_json: + response_json["vectors"] = [ + {"name": key, "vector_values": value} for key, value in response_json["vectors"].items() + ] + return RecordModel(**response_json) + + def _model_from_jsons(self, response_jsons: List[Dict]) -> List[RecordModel]: + return list(map(self._model_from_json, response_jsons)) + + def _represent_vectors_to_include(self, with_vectors: Union[List, str, bool]) -> Union[str, None]: + """Represent the vectors to include in the API request""" + vector_stub = "vectors" + if with_vectors is True: + return vector_stub + elif not with_vectors: + return None + elif isinstance(with_vectors, str): + return f"{vector_stub}:{with_vectors}" + elif isinstance(with_vectors, list): + return f"{vector_stub}:{','.join(with_vectors)}" + else: + raise ValueError(f"Invalid value for with_vectors: {with_vectors}") diff --git a/argilla-sdk/src/argilla_sdk/_api/_users.py b/argilla-sdk/src/argilla_sdk/_api/_users.py new file mode 100644 index 0000000000..7105bf0b57 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_users.py @@ -0,0 +1,119 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List +from uuid import UUID + +import httpx + +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions import api_error_handler +from argilla_sdk._models._user import UserModel + +__all__ = ["UsersAPI"] + + +class UsersAPI(ResourceAPI[UserModel]): + """Manage users via the API""" + + http_client: httpx.Client + url_stub = "api/v1/users" + + ################ + # CRUD methods # + ################ + + @api_error_handler + def create(self, user: UserModel) -> UserModel: + json_body = user.model_dump() + response = self.http_client.post("/api/users", json=json_body).raise_for_status() + user_created = self._model_from_json(response_json=response.json()) + self.log(message=f"Created user {user_created.username}") + + return user_created + + @api_error_handler + def get(self, user_id: UUID) -> UserModel: + # TODO: Implement this endpoint in the API + response = self.http_client.get(url=f"/api/v1/users/{user_id}") + response.raise_for_status() + response_json = response.json() + user = self._model_from_json(response_json=response_json) + self.log(message=f"Got user {user.username}") + return user + + def exist(self, user_id: UUID) -> bool: + # TODO: Implement this endpoint in the API + response = self.http_client.get(url=f"/api/v1/users/{user_id}") + return response.status_code == 200 + + @api_error_handler + def delete(self, user_id: UUID) -> None: + self.http_client.delete(url=f"/api/users/{user_id}").raise_for_status() + self.log(message=f"Deleted user {id}") + + #################### + # V0 API methods # + #################### + + @api_error_handler + def list(self) -> List[UserModel]: + response = self.http_client.get(url="/api/users") + response.raise_for_status() + response_json = response.json() + users = self._model_from_jsons(response_jsons=response_json) + self.log(message=f"Listed {len(users)} users") + return users + + @api_error_handler + def list_by_workspace_id(self, workspace_id: UUID) -> List[UserModel]: + response = self.http_client.get(url=f"/api/workspaces/{workspace_id}/users") + response.raise_for_status() + response_json = response.json() + users = self._model_from_jsons(response_jsons=response_json) + self.log(message=f"Listed {len(users)} users") + return users + + @api_error_handler + def get_me(self) -> UserModel: + response = self.http_client.get("/api/me") + response.raise_for_status() + response_json = response.json() + user = self._model_from_json(response_json=response_json) + self.log(message=f"Got user {user.username}") + return user + + @api_error_handler + def add_to_workspace(self, workspace_id: UUID, user_id: UUID) -> "UserModel": + response = self.http_client.post(url=f"/api/workspaces/{workspace_id}/users/{user_id}").raise_for_status() + self.log(message=f"Added user {user_id} to workspace {workspace_id}") + return self._model_from_json(response_json=response.json()) + + @api_error_handler + def delete_from_workspace(self, workspace_id: UUID, user_id: UUID) -> "UserModel": + response = self.http_client.delete(url=f"/api/workspaces/{workspace_id}/users/{user_id}").raise_for_status() + self.log(message=f"Deleted user {user_id} from workspace {workspace_id}") + return self._model_from_json(response_json=response.json()) + + #################### + # Private methods # + #################### + + def _model_from_json(self, response_json) -> UserModel: + response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) + response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) + return UserModel(**response_json) + + def _model_from_jsons(self, response_jsons) -> List[UserModel]: + return list(map(self._model_from_json, response_jsons)) diff --git a/argilla-sdk/src/argilla_sdk/_api/_vectors.py b/argilla-sdk/src/argilla_sdk/_api/_vectors.py new file mode 100644 index 0000000000..c375bbe41e --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_vectors.py @@ -0,0 +1,84 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Dict +from uuid import UUID + +import httpx +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions import api_error_handler +from argilla_sdk._models import VectorFieldModel + +__all__ = ["VectorsAPI"] + + +class VectorsAPI(ResourceAPI[VectorFieldModel]): + """Manage vectors via the API""" + + http_client: httpx.Client + + ################ + # CRUD methods # + ################ + + @api_error_handler + def create(self, dataset_id: UUID, vector: VectorFieldModel) -> VectorFieldModel: + url = f"/api/v1/datasets/{dataset_id}/vectors-settings" + response = self.http_client.post(url=url, json=vector.model_dump()) + response.raise_for_status() + response_json = response.json() + vector_model = self._model_from_json(response_json=response_json) + self.log(message=f"Created vector {vector_model.name} in dataset {dataset_id}") + return vector_model + + @api_error_handler + def update(self, vector: VectorFieldModel) -> VectorFieldModel: + # TODO: Implement update method for vectors with server side ID + raise NotImplementedError + + @api_error_handler + def delete(self, vector_id: UUID) -> None: + # TODO: Implement delete method for vectors with server side ID + raise NotImplementedError + + #################### + # Utility methods # + #################### + + def create_many(self, dataset_id: UUID, vectors: List[VectorFieldModel]) -> List[VectorFieldModel]: + vector_models = [] + for vector in vectors: + vector_model = self.create(dataset_id=dataset_id, vector=vector) + vector_models.append(vector_model) + return vector_models + + @api_error_handler + def list(self, dataset_id: UUID) -> List[VectorFieldModel]: + response = self.http_client.get(f"/api/v1/datasets/{dataset_id}/vectors-settings") + response.raise_for_status() + response_json = response.json() + vector_models = self._model_from_jsons(response_jsons=response_json["items"]) + return vector_models + + #################### + # Private methods # + #################### + + def _model_from_json(self, response_json: Dict) -> VectorFieldModel: + response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) + response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) + return VectorFieldModel(**response_json) + + def _model_from_jsons(self, response_jsons: List[Dict]) -> List[VectorFieldModel]: + return list(map(self._model_from_json, response_jsons)) diff --git a/argilla-sdk/src/argilla_sdk/_api/_workspaces.py b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py new file mode 100644 index 0000000000..89c8becf57 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py @@ -0,0 +1,127 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Dict, List, Optional +from uuid import UUID + +import httpx + +from argilla_sdk._api._base import ResourceAPI +from argilla_sdk._exceptions._api import api_error_handler +from argilla_sdk._models._workspace import WorkspaceModel + +__all__ = ["WorkspacesAPI"] + + +class WorkspacesAPI(ResourceAPI[WorkspaceModel]): + http_client: httpx.Client + url_stub = "/api/v1/workspaces" + + ################ + # CRUD methods # + ################ + + @api_error_handler + def create(self, workspace: WorkspaceModel) -> WorkspaceModel: + # TODO: Unify API endpoint + response = self.http_client.post(url="/api/workspaces", json={"name": workspace.name}) + response.raise_for_status() + response_json = response.json() + workspace = self._model_from_json(json_workspace=response_json) + self.log(message=f"Created workspace {workspace.name}") + return workspace + + @api_error_handler + def get(self, workspace_id: UUID) -> WorkspaceModel: + response = self.http_client.get(url=f"{self.url_stub}/{workspace_id}") + response.raise_for_status() + response_json = response.json() + workspace = self._model_from_json(json_workspace=response_json) + return workspace + + @api_error_handler + def delete(self, workspace_id: UUID) -> None: + response = self.http_client.delete(url=f"{self.url_stub}/{workspace_id}") + response.raise_for_status() + + def exists(self, workspace_id: UUID) -> bool: + response = self.http_client.get(url=f"{self.url_stub}/{workspace_id}") + return response.status_code == 200 + + #################### + # Utility methods # + #################### + + @api_error_handler + def list(self) -> List[WorkspaceModel]: + response = self.http_client.get(url="/api/v1/me/workspaces") + response.raise_for_status() + response_json = response.json() + workspaces = self._model_from_jsons(json_workspaces=response_json["items"]) + self.log(message=f"Got {len(workspaces)} workspaces") + return workspaces + + @api_error_handler + def list_by_user_id(self, user_id: UUID) -> List[WorkspaceModel]: + response = self.http_client.get(f"/api/v1/users/{user_id}/workspaces") + response.raise_for_status() + response_json = response.json() + workspaces = self._model_from_jsons(json_workspaces=response_json["items"]) + self.log(message=f"Got {len(workspaces)} workspaces") + return workspaces + + @api_error_handler + def list_current_user_workspaces(self) -> List[WorkspaceModel]: + response = self.http_client.get(url="/api/v1/me/workspaces") + response.raise_for_status() + response_json = response.json() + workspaces = self._model_from_jsons(json_workspaces=response_json["items"]) + self.log(message=f"Got {len(workspaces)} workspaces") + return workspaces + + @api_error_handler + def get_by_name(self, name: str) -> Optional[WorkspaceModel]: + for workspace in self.list(): + if workspace.name == name: + self.log(message=f"Got workspace {workspace.name}") + return workspace + + @api_error_handler + def add_user(self, workspace_id: UUID, user_id: UUID) -> None: + # TODO: This method is already defined in UsersAPI and should be removed from here + response = self.http_client.post(f"{self.url_stub}/{workspace_id}/users/{user_id}") + response.raise_for_status() + self.log(message=f"Added user {user_id} to workspace {workspace_id}") + + @api_error_handler + def remove_user(self, workspace_id: UUID, user_id: UUID) -> None: + # TODO: This method is already defined in UsersAPI and should be removed from here + response = self.http_client.delete(f"{self.url_stub}/{workspace_id}/users/{user_id}") + response.raise_for_status() + self.log(message=f"Removed user {user_id} from workspace {workspace_id}") + + #################### + # Private methods # + #################### + + def _model_from_json(self, json_workspace: Dict) -> WorkspaceModel: + return WorkspaceModel( + id=UUID(json_workspace["id"]), + name=json_workspace["name"], + inserted_at=self._date_from_iso_format(date=json_workspace["inserted_at"]), + updated_at=self._date_from_iso_format(date=json_workspace["updated_at"]), + ) + + def _model_from_jsons(self, json_workspaces: List[Dict]) -> List[WorkspaceModel]: + return list(map(self._model_from_json, json_workspaces)) diff --git a/argilla-sdk/src/argilla_sdk/_constants.py b/argilla-sdk/src/argilla_sdk/_constants.py new file mode 100644 index 0000000000..7e28f0fc57 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_constants.py @@ -0,0 +1,16 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +_DEFAULT_API_KEY = "argilla.apikey" +_DEFAULT_API_URL = "http://localhost:6900" diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py b/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py new file mode 100644 index 0000000000..dafd682bba --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py @@ -0,0 +1,18 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._exceptions._api import * # noqa: F403 +from argilla_sdk._exceptions._metadata import * # noqa: F403 +from argilla_sdk._exceptions._serialization import * # noqa: F403 +from argilla_sdk._exceptions._settings import * # noqa: F403 diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_api.py b/argilla-sdk/src/argilla_sdk/_exceptions/_api.py new file mode 100644 index 0000000000..c37787cf7f --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_api.py @@ -0,0 +1,85 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from httpx import HTTPStatusError + +from argilla_sdk._exceptions._base import ArgillaErrorBase + + +class ArgillaAPIError(ArgillaErrorBase): + pass + + +class BadRequestError(ArgillaAPIError): + message = "Bad request to the server" + + +class ForbiddenError(ArgillaAPIError): + message = "Forbidden request to the server" + + +class NotFoundError(ArgillaAPIError): + message = "Resource or entity not found on the server" + + +class ConflictError(ArgillaAPIError): + message = "Conflict with the server. Resource or entity already exists" + + +class UnprocessableEntityError(ArgillaAPIError): + message = "Unprocessable entity. The server cannot process the request" + + +class InternalServerError(ArgillaAPIError): + message = "Internal server error" + + +class UnauthorizedError(ArgillaAPIError): + message = "Unauthorized user request to the server" + + +def api_error_handler(func): + """Decorator to handle API errors from ResourceAPI methods + and raise the appropriate exception. + Args: func: the request method to decorate + + Example: + ```python + + @api_error_handler + def get(self, workspace_id: UUID) -> WorkspaceModel: + ... # same code as before + ``` + """ + + def _error_switch(status_code: int, error_detail: str): + switch = { + 400: BadRequestError, + 401: UnauthorizedError, + 403: ForbiddenError, + 404: NotFoundError, + 409: ConflictError, + 422: UnprocessableEntityError, + 500: InternalServerError, + } + exception_class = switch.get(status_code, ArgillaAPIError) + raise exception_class(f"{exception_class.message}. Details: {error_detail}") + + def _handler_wrapper(*args, **kwargs): + try: + return func(*args, **kwargs) + except HTTPStatusError as e: + _error_switch(status_code=e.response.status_code, error_detail=e.response.text) + + return _handler_wrapper diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_base.py b/argilla-sdk/src/argilla_sdk/_exceptions/_base.py new file mode 100644 index 0000000000..8d08488d4a --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_base.py @@ -0,0 +1,33 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +class ArgillaErrorBase(Exception): + message_stub = "Argilla SDK error" + message: str = message_stub + + def __init__(self, message: str = message, status_code: int = 500): + """Base class for all Argilla exceptions + Args: + message (str): The message to display when the exception is raised + status_code (int): The status code of the response that caused the exception + """ + super().__init__(message) + self.status_code = status_code + + def __str__(self): + return f"{self.message_stub}: {self.__class__.__name__}: {super().__str__()}" + + def __repr__(self): + return f"{self.message_stub}: {self.__class__.__name__}: {super().__repr__()}" diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py b/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py new file mode 100644 index 0000000000..125dd7f6f9 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py @@ -0,0 +1,19 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._exceptions._base import ArgillaErrorBase + + +class MetadataError(ArgillaErrorBase): + message: str = "Error defining dataset metadata settings" diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py b/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py new file mode 100644 index 0000000000..31a8321281 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py @@ -0,0 +1,19 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._exceptions._base import ArgillaErrorBase + + +class ArgillaSerializeError(ArgillaErrorBase): + pass diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py b/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py new file mode 100644 index 0000000000..c23424706a --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py @@ -0,0 +1,19 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._exceptions._base import ArgillaErrorBase + + +class SettingsError(ArgillaErrorBase): + pass diff --git a/argilla-sdk/src/argilla_sdk/_helpers/__init__.py b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py new file mode 100644 index 0000000000..474f7bf4ef --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from ._dataclasses import * # noqa +from ._iterator import * # noqa diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py b/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py new file mode 100644 index 0000000000..d05df25fd7 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py @@ -0,0 +1,28 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from dataclasses import fields, dataclass +from typing import Type, TypeVar + +__all__ = ["dataclass_instance_from_dict"] + +T = TypeVar("T", bound=dataclass) + + +def dataclass_instance_from_dict(cls: Type[T], data: dict) -> T: + """Create a dataclass instance from a dictionary, ignoring extra keys found in the dictionary.""" + + field_names = set(f.name for f in fields(cls)) + return cls(**{k: v for k, v in data.items() if k in field_names}) diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py b/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py new file mode 100644 index 0000000000..58422e8ea6 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py @@ -0,0 +1,37 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Generic, List, TypeVar + +__all__ = ["GenericIterator"] + +Item = TypeVar("Item") + + +class GenericIterator(Generic[Item]): + """Generic iterator for any collection of items.""" + + def __init__(self, collection: List[Item]): + self._collection = [v for v in collection] + self._index = 0 + + def __iter__(self): + return self + + def __next__(self): + if self._index < len(self._collection): + result = self._collection[self._index] + self._index += 1 + return result + raise StopIteration diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_log.py b/argilla-sdk/src/argilla_sdk/_helpers/_log.py new file mode 100644 index 0000000000..a8fc36c48e --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_helpers/_log.py @@ -0,0 +1,34 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import logging + +LOG_LEVEL_MAP = { + "debug": logging.DEBUG, + "info": logging.INFO, + "warning": logging.WARNING, + "error": logging.ERROR, + "critical": logging.CRITICAL, +} + + +def log(message: str, level: str = "info") -> None: + """Log a message at the specified level. + Args: + message (str): The message to log. + level (str): The log level to use. Defaults to "info". + """ + level_int = LOG_LEVEL_MAP.get(level, logging.INFO) + logging.log(level=level_int, msg=message) diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py b/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py new file mode 100644 index 0000000000..c5b4aefc5a --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py @@ -0,0 +1,71 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional, Union +from uuid import UUID + +from argilla_sdk._helpers._log import log + + +class LoggingMixin: + """A utility mixin for logging.""" + + def log(self, message: str, level: str = "info") -> None: + class_name = self.__class__.__name__ + message = f"{class_name}: {message}" + log(level=level, message=message) + + +class UUIDMixin: + """A utility mixin for UUID operations with error handling.""" + + def _uuid_as_str(self, uuid: UUID) -> str: + """Converts UUID to string + Args: + uuid (UUID): The UUID to convert + Returns: + str: The converted string + """ + try: + return str(uuid) + except AttributeError as e: + raise ValueError(f"Invalid UUID to be converted into string: {uuid}") from e + + def _str_as_uuid(self, uuid: str) -> UUID: + """Converts string to UUID with and without hyphens. + Args: + uuid (str): The string to convert + Returns: + UUID: The converted UUID + """ + try: + return UUID(uuid) + except AttributeError as e: + raise ValueError(f"Invalid str to be converted into UUID: {uuid}") from e + + def _convert_optional_uuid(self, uuid: Optional[Union[UUID, str]]) -> Optional[UUID]: + """Converts optional UUID to UUID or leaves as none + Args: + uuid (Optional[Union[UUID, str]]): The UUID to convert + Returns: + Optional[UUID]: The converted UUID or None + """ + if isinstance(uuid, UUID): + return uuid + elif uuid is None: + return None + elif isinstance(uuid, str): + return self._str_as_uuid(uuid) + else: + raise ValueError(f"Invalid type for UUID: {type(uuid)}") diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py b/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py new file mode 100644 index 0000000000..f1f3e89baf --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py @@ -0,0 +1,72 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any, Dict + +from IPython.display import HTML + + +RESOURCE_REPR_CONFIG = { + "Dataset": { + "columns": ["name", "id", "workspace_id", "updated_at"], + "table_name": "Datasets", + # "len_column": "records", + }, + "Workspace": { + "columns": ["name", "id", "updated_at"], + "table_name": "Workspaces", + # "len_column": "datasets", + }, + "User": {"columns": ["username", "id", "role", "updated_at"], "table_name": "Users"}, +} + + +class ResourceHTMLReprMixin: + def _resource_to_table_row(self, resource) -> Dict[str, Any]: + row = {} + dumped_resource_model = resource._model.model_dump() + resource_name = resource.__class__.__name__ + config = RESOURCE_REPR_CONFIG[resource_name].copy() + len_column = config.pop("len_column", None) + columns = config["columns"] + if len_column is not None: + row[len_column] = len(resource) + columns = [column for column in columns if column != len_column] + + for column in columns: + row[column] = dumped_resource_model[column] + + return row + + def _resource_to_table_name(self, resource) -> str: + resource_name = resource.__class__.__name__ + return RESOURCE_REPR_CONFIG[resource_name]["table_name"] + + def _represent_as_html(self, resources) -> HTML: + table_name = self._resource_to_table_name(resources[0]) + table_rows = [self._resource_to_table_row(resource) for resource in resources] + + html_table = f"

{table_name}

" + for column in table_rows[0]: + html_table += f"" + html_table += "" + + for row in table_rows: + html_table += "" + for column in row: + html_table += f"" + html_table += "" + + html_table += "
{column}
{row[column]}
" + return HTML(html_table)._repr_html_() diff --git a/argilla-sdk/src/argilla_sdk/_models/__init__.py b/argilla-sdk/src/argilla_sdk/_models/__init__.py new file mode 100644 index 0000000000..f8de4d78a6 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/__init__.py @@ -0,0 +1,63 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# We skip the flake8 check because we are importing all the models and the import order is important +# flake8: noqa +from argilla_sdk._models._resource import ResourceModel +from argilla_sdk._models._workspace import WorkspaceModel +from argilla_sdk._models._user import UserModel, Role +from argilla_sdk._models._dataset import DatasetModel +from argilla_sdk._models._record._record import RecordModel +from argilla_sdk._models._record._suggestion import SuggestionModel +from argilla_sdk._models._record._response import UserResponseModel, ResponseStatus +from argilla_sdk._models._record._vector import VectorModel +from argilla_sdk._models._record._metadata import MetadataModel, MetadataValue +from argilla_sdk._models._search import ( + SearchQueryModel, + AndFilterModel, + FilterModel, + RangeFilterModel, + TermsFilterModel, + ScopeModel, +) +from argilla_sdk._models._settings._fields import ( + TextFieldModel, + FieldSettings, + FieldBaseModel, + FieldModel, +) +from argilla_sdk._models._settings._questions import ( + LabelQuestionModel, + LabelQuestionSettings, + MultiLabelQuestionModel, + QuestionBaseModel, + QuestionModel, + QuestionSettings, + RankingQuestionModel, + RatingQuestionModel, + SpanQuestionModel, + SpanQuestionSettings, + TextQuestionModel, + TextQuestionSettings, +) +from argilla_sdk._models._settings._metadata import ( + MetadataFieldModel, + MetadataPropertyType, + BaseMetadataPropertySettings, + TermsMetadataPropertySettings, + NumericMetadataPropertySettings, + FloatMetadataPropertySettings, + IntegerMetadataPropertySettings, +) +from argilla_sdk._models._settings._vectors import VectorFieldModel diff --git a/argilla-sdk/src/argilla_sdk/_models/_base.py b/argilla-sdk/src/argilla_sdk/_models/_base.py new file mode 100644 index 0000000000..5cefb69557 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_base.py @@ -0,0 +1,35 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional +from datetime import datetime +from uuid import UUID, uuid4 + +from pydantic import BaseModel, field_serializer + + +class ResourceModel(BaseModel): + """Base model for all resources (DatasetModel, WorkspaceModel, UserModel, etc.)""" + + id: Optional[UUID] = uuid4() + inserted_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + + @field_serializer("inserted_at", "updated_at", when_used="unless-none") + def serialize_datetime(self, value: datetime) -> str: + return value.isoformat() + + @field_serializer("id", when_used="unless-none") + def serialize_id(self, value: UUID) -> str: + return str(value) diff --git a/argilla-sdk/src/argilla_sdk/_models/_dataset.py b/argilla-sdk/src/argilla_sdk/_models/_dataset.py new file mode 100644 index 0000000000..931df96c49 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_dataset.py @@ -0,0 +1,48 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional +from datetime import datetime +from uuid import UUID +from typing import Literal + +from pydantic import field_serializer + +from argilla_sdk._models import ResourceModel + +__all__ = ["DatasetModel"] + + +class DatasetModel(ResourceModel): + name: str + status: Literal["draft", "ready"] = "draft" + + guidelines: Optional[str] = None + allow_extra_metadata: bool = True # Ideally, the default value should be provided by the server + + workspace_id: Optional[UUID] = None + last_activity_at: Optional[datetime] = None + url: Optional[str] = None + + class Config: + validate_assignment = True + str_strip_whitespace = True + + @field_serializer("last_activity_at", when_used="unless-none") + def serialize_last_activity_at(self, value: datetime) -> str: + return value.isoformat() + + @field_serializer("workspace_id", when_used="unless-none") + def serialize_workspace_id(self, value: UUID) -> str: + return str(value) diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py new file mode 100644 index 0000000000..749d13b87d --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py b/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py new file mode 100644 index 0000000000..c8124894b6 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py @@ -0,0 +1,27 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Annotated, Union, List + +from pydantic import BaseModel + + +MetadataValue = Annotated[Union[str, List[str], float, int, None], "The value of the metadata field dictionary"] + + +class MetadataModel(BaseModel): + """Schema for the metadata of a `Dataset`""" + + name: Annotated[str, "The name of the metadata field or key in the metadata dictionary"] + value: MetadataValue diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_record.py b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py new file mode 100644 index 0000000000..252befe74c --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py @@ -0,0 +1,59 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any, Dict, List, Optional, Tuple, Union + +from pydantic import Field, field_serializer, field_validator + +from argilla_sdk._models._resource import ResourceModel +from argilla_sdk._models._record._metadata import MetadataModel, MetadataValue +from argilla_sdk._models._record._response import UserResponseModel +from argilla_sdk._models._record._suggestion import SuggestionModel +from argilla_sdk._models._record._vector import VectorModel + + +class RecordModel(ResourceModel): + """Schema for the records of a `Dataset`""" + + fields: Dict[str, Union[str, None]] + metadata: Optional[Union[List[MetadataModel], Dict[str, MetadataValue]]] = Field(default_factory=dict) + vectors: Optional[List[VectorModel]] = Field(default_factory=list) + responses: Optional[List[UserResponseModel]] = Field(default_factory=list) + suggestions: Optional[Union[Tuple[SuggestionModel], List[SuggestionModel]]] = Field(default_factory=tuple) + + external_id: Optional[Any] = None + + @field_serializer("external_id", when_used="unless-none") + def serialize_external_id(self, value: str) -> str: + return str(value) + + @field_serializer("vectors", when_used="unless-none") + def serialize_vectors(self, value: List[VectorModel]) -> Dict[str, List[float]]: + dumped_vectors = [vector.model_dump() for vector in value] + return {vector["name"]: vector["vector_values"] for vector in dumped_vectors} + + @field_serializer("metadata", when_used="unless-none") + def serialize_metadata(self, value: List[MetadataModel]) -> Dict[str, Any]: + """Serialize metadata to a dictionary of key-value pairs based on the metadata name and value.""" + return {metadata.name: metadata.value for metadata in value} + + @field_validator("metadata", mode="before") + @classmethod + def validate_metadata(cls, metadata: Union[List[MetadataModel], dict]) -> List[MetadataModel]: + """Ensure metadata is a list of MetadataModel instances when provided as a dict.""" + if not metadata: + return [] + if isinstance(metadata, dict): + return [MetadataModel(name=key, value=value) for key, value in metadata.items()] + return metadata diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_response.py b/argilla-sdk/src/argilla_sdk/_models/_record/_response.py new file mode 100644 index 0000000000..7b685ca0d1 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_response.py @@ -0,0 +1,52 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import warnings +from enum import Enum +from typing import Dict, Optional, Union, Any +from uuid import UUID + +from pydantic import BaseModel, field_serializer, field_validator, Field + + +class ResponseStatus(str, Enum): + draft = "draft" + submitted = "submitted" + discarded = "discarded" + + +class UserResponseModel(BaseModel): + """Schema for the `FeedbackRecord` user response.""" + + values: Union[Dict[str, Dict[str, Any]], None] + status: ResponseStatus + user_id: Optional[UUID] = Field(None, validate_default=True) + + class Config: + validate_assignment = True + + @field_validator("user_id") + @classmethod + def user_id_must_have_value(cls, user_id: Optional[UUID]): + if not user_id: + warnings.warn( + "`user_id` not provided, so it will be set to `None`. Which is not an" + " issue, unless you're planning to log the response in Argilla, as" + " it will be automatically set to the active `user_id`.", + ) + return user_id + + @field_serializer("user_id", when_used="always") + def serialize_user_id(value: UUID) -> str: + return str(value) diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py b/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py new file mode 100644 index 0000000000..8723849573 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py @@ -0,0 +1,39 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any, Optional, Literal, Union, List +from uuid import UUID, uuid4 + +from pydantic import BaseModel, field_serializer + + +class SuggestionModel(BaseModel): + """Schema for the suggestions for the questions related to the record.""" + + value: Any + + question_name: Optional[str] = None + type: Optional[Literal["model", "human"]] = None + score: Union[float, List[float], None] = None + agent: Optional[str] = None + id: Optional[UUID] = uuid4() + question_id: Optional[UUID] = None + + @field_serializer("id", when_used="unless-none") + def serialize_id(self, value: UUID) -> str: + return str(value) + + @field_serializer("question_id", when_used="unless-none") + def serialize_question_id(self, value: UUID) -> str: + return str(value) diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py b/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py new file mode 100644 index 0000000000..2b46f0c9b5 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py @@ -0,0 +1,34 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from typing import List + +from argilla_sdk._models import ResourceModel + +import re +from pydantic import field_validator + +__all__ = ["VectorModel"] + + +class VectorModel(ResourceModel): + name: str + vector_values: List[float] + + @field_validator("name") + @classmethod + def validate_name(cls, value): + """Validate the name of the vector is url safe""" + if not re.match(r"^[a-zA-Z0-9_-]+$", value): + raise ValueError("Vector name must be url safe") + return value diff --git a/argilla-sdk/src/argilla_sdk/_models/_resource.py b/argilla-sdk/src/argilla_sdk/_models/_resource.py new file mode 100644 index 0000000000..f048b3de39 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_resource.py @@ -0,0 +1,38 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from datetime import datetime +from typing import Optional +from uuid import UUID + +from pydantic import BaseModel, field_serializer + + +class ResourceModel(BaseModel): + """Base model for all resources (DatasetModel, WorkspaceModel, UserModel, etc.)""" + + id: Optional[UUID] = None + inserted_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + + @field_serializer("inserted_at", "updated_at", when_used="unless-none") + def serialize_datetime(value: datetime) -> str: + return value.isoformat() + + @field_serializer("id", when_used="unless-none") + def serialize_id(self, value: UUID) -> str: + return str(value) + + def __hash__(self) -> int: + return hash(self.model_dump_json()) diff --git a/argilla-sdk/src/argilla_sdk/_models/_search.py b/argilla-sdk/src/argilla_sdk/_models/_search.py new file mode 100644 index 0000000000..f62dbff0b7 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_search.py @@ -0,0 +1,104 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Any, Union, Literal, Annotated + +from pydantic import BaseModel, Field + + +class ResponseFilterScopeModel(BaseModel): + """Filter scope for filtering on a response entity.""" + + entity: Literal["response"] = "response" + question: Union[str, None] = None + property: Union[Literal["status"], None] = None + + +class SuggestionFilterScopeModel(BaseModel): + """Filter scope for filtering on a suggestion entity.""" + + entity: Literal["suggestion"] = "suggestion" + question: str + property: Union[Literal["value"], Literal["agent"], Literal["score"], None] = "value" + + +class MetadataFilterScopeModel(BaseModel): + """Filter scope for filtering on a metadata entity.""" + + entity: Literal["metadata"] = "metadata" + metadata_property: str + + +ScopeModel = Annotated[ + Union[ + ResponseFilterScopeModel, + SuggestionFilterScopeModel, + MetadataFilterScopeModel, + ], + Field(discriminator="entity"), +] + + +class TermsFilterModel(BaseModel): + """Filter model for terms filter.""" + + type: Literal["terms"] = "terms" + values: List[str] + scope: ScopeModel + + +class RangeFilterModel(BaseModel): + """Filter model for range filter.""" + + type: Literal["range"] = "range" + ge: Union[Any, None] = None + le: Union[Any, None] = None + scope: ScopeModel + + +FilterModel = Annotated[ + Union[ + TermsFilterModel, + RangeFilterModel, + ], + Field(discriminator="type"), +] + + +class AndFilterModel(BaseModel): + """And filter model.""" + + type: Literal["and"] = "and" + + and_: List["FilterModel"] = Field(alias="and") + + +class TextQueryModel(BaseModel): + """Text query model.""" + + q: str + field: Union[str, None] = None + + +class QueryModel(BaseModel): + """Query part of the search query model""" + + text: TextQueryModel + + +class SearchQueryModel(BaseModel): + """The main search query model.""" + + query: Union[QueryModel, None] = None + filters: Union[AndFilterModel, None] = None diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py new file mode 100644 index 0000000000..749d13b87d --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py new file mode 100644 index 0000000000..d698d4bf7c --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py @@ -0,0 +1,60 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional +from uuid import UUID + +from pydantic import BaseModel, field_serializer, field_validator, Field +from pydantic_core.core_schema import ValidationInfo + +from argilla_sdk._helpers._log import log + + +class FieldSettings(BaseModel): + type: str = Field(validate_default=True) + use_markdown: Optional[bool] = False + + +class FieldBaseModel(BaseModel): + id: Optional[UUID] = None + name: str + + title: Optional[str] = None + required: bool = True + description: Optional[str] = None + + @field_validator("name") + @classmethod + def __name_lower(cls, name): + formatted_name = name.lower().replace(" ", "_") + return formatted_name + + @field_validator("title") + @classmethod + def __title_default(cls, title: str, info: ValidationInfo) -> str: + data = info.data + validated_title = title or data["name"] + log(f"TextField title is {validated_title}") + return validated_title + + @field_serializer("id", when_used="unless-none") + def serialize_id(self, value: UUID) -> str: + return str(value) + + +class TextFieldModel(FieldBaseModel): + settings: FieldSettings = FieldSettings(type="text", use_markdown=False) + + +FieldModel = TextFieldModel diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py new file mode 100644 index 0000000000..5fff8e19fb --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py @@ -0,0 +1,129 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from enum import Enum +from typing import List, Literal, Optional, Union, Annotated +from uuid import UUID + +from pydantic import BaseModel, Field, field_serializer, field_validator, model_validator + +from argilla_sdk._exceptions import MetadataError + + +class MetadataPropertyType(str, Enum): + terms = "terms" + integer = "integer" + float = "float" + + +class BaseMetadataPropertySettings(BaseModel): + type: MetadataPropertyType + visible_for_annotators: Optional[bool] = True + + +class TermsMetadataPropertySettings(BaseMetadataPropertySettings): + type: Literal[MetadataPropertyType.terms] + values: Optional[List[str]] = None + + @field_validator( + "values", + ) + @classmethod + def __validate_values(cls, values): + if values is None: + return None + if not isinstance(values, list): + raise ValueError(f"values must be a list, got {type(values)}") + elif not all(isinstance(value, str) for value in values): + raise ValueError("All values must be strings for terms metadata.") + return values + + +class NumericMetadataPropertySettings(BaseMetadataPropertySettings): + min: Optional[Union[int, float]] = None + max: Optional[Union[int, float]] = None + + @model_validator(mode="before") + @classmethod + def __validate_min_max(cls, values): + min_value = values.get("min") + max_value = values.get("max") + + if min_value is not None and max_value is not None: + if min_value >= max_value: + raise MetadataError("min must be less than max.") + return values + + +class IntegerMetadataPropertySettings(NumericMetadataPropertySettings): + type: Literal[MetadataPropertyType.integer] + + @model_validator(mode="before") + @classmethod + def __validate_min_max(cls, values): + min_value = values.get("min") + max_value = values.get("max") + + if not all(isinstance(value, int) or value is None for value in [min_value, max_value]): + raise MetadataError("min and max must be integers.") + return values + + +class FloatMetadataPropertySettings(NumericMetadataPropertySettings): + type: Literal[MetadataPropertyType.float] + + +MetadataPropertySettings = Annotated[ + Union[ + TermsMetadataPropertySettings, + IntegerMetadataPropertySettings, + FloatMetadataPropertySettings, + ], + Field(..., discriminator="type"), +] + + +class MetadataFieldModel(BaseModel): + """The schema definition of a metadata field in an Argilla dataset.""" + + id: Optional[UUID] = None + name: str + settings: MetadataPropertySettings + + type: Optional[MetadataPropertyType] = Field(None, validate_default=True) + title: Optional[str] = None + visible_for_annotators: Optional[bool] = True + + @field_validator("name") + @classmethod + def __name_lower(cls, name): + formatted_name = name.lower().replace(" ", "_") + return formatted_name + + @field_validator("title") + @classmethod + def __title_default(cls, title, values): + validated_title = title or values.data["name"] + return validated_title + + @field_serializer("id", when_used="unless-none") + def serialize_id(self, value: UUID) -> str: + return str(value) + + @field_validator("type", mode="plain") + @classmethod + def __validate_type(cls, type, values): + if type is None: + return values.data["settings"].type + return type diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py new file mode 100644 index 0000000000..8d9dcc0aee --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py @@ -0,0 +1,35 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# flake8: noqa +from typing import Union + +from argilla_sdk._models._settings._questions._label_selection import LabelQuestionModel, LabelQuestionSettings +from argilla_sdk._models._settings._questions._multi_label_selection import ( + MultiLabelQuestionModel, + MultiLabelQuestionSettings, +) +from argilla_sdk._models._settings._questions._rating import RatingQuestionModel, RatingQuestionSettings +from argilla_sdk._models._settings._questions._ranking import RankingQuestionModel, RankingQuestionSettings +from argilla_sdk._models._settings._questions._text import TextQuestionModel, TextQuestionSettings +from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings +from argilla_sdk._models._settings._questions._span import SpanQuestionModel, SpanQuestionSettings + +QuestionModel = Union[ + LabelQuestionModel, + RatingQuestionModel, + TextQuestionModel, + MultiLabelQuestionModel, + RankingQuestionModel, + QuestionBaseModel, +] diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py new file mode 100644 index 0000000000..b235bf83e4 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py @@ -0,0 +1,62 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from datetime import datetime +from typing import Optional +from uuid import UUID + +from pydantic import BaseModel, field_serializer, field_validator, Field +from pydantic_core.core_schema import ValidationInfo + + +class QuestionSettings(BaseModel, validate_assignment=True): + type: str + + +class QuestionBaseModel(BaseModel, validate_assignment=True): + id: Optional[UUID] = None + name: str + settings: QuestionSettings + + title: str = Field(None, validate_default=True) + description: Optional[str] = Field(None, validate_default=True) + required: bool = True + inserted_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + + @field_validator("name") + @classmethod + def __name_lower(cls, name: str, info: ValidationInfo): + formatted_name = name.lower().replace(" ", "_") + return formatted_name + + @field_validator("title", mode="before") + @classmethod + def __title_default(cls, title, info: ValidationInfo): + validated_title = title or info.data["name"] + return validated_title + + @field_validator("description") + @classmethod + def __description_default(cls, description, info: ValidationInfo) -> Optional[str]: + data = info.data + return description or data["title"] + + @field_serializer("inserted_at", "updated_at", when_used="unless-none") + def serialize_datetime(self, value: datetime) -> str: + return value.isoformat() + + @field_serializer("id", when_used="unless-none") + def serialize_id(self, value: UUID) -> str: + return str(value) diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py new file mode 100644 index 0000000000..717460e1f9 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py @@ -0,0 +1,53 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Dict, List, Optional, ClassVar + +from pydantic import field_validator, Field, model_validator + +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel + +try: + from typing import Self +except ImportError: + from typing_extensions import Self + + +class LabelQuestionSettings(QuestionSettings): + type: str = "label_selection" + + _MIN_VISIBLE_OPTIONS: ClassVar[int] = 3 + + options: List[Dict[str, Optional[str]]] = Field(default_factory=list, validate_default=True) + visible_options: Optional[int] = Field(None, validate_default=True, ge=_MIN_VISIBLE_OPTIONS) + + @field_validator("options", mode="before") + @classmethod + def __labels_are_unique(cls, options: List[Dict[str, Optional[str]]]) -> List[Dict[str, Optional[str]]]: + """Ensure that labels are unique""" + + unique_labels = list(set([option["value"] for option in options])) + if len(unique_labels) != len(options): + raise ValueError("All labels must be unique") + return options + + @model_validator(mode="after") + def __validate_visible_options(self) -> "Self": + if self.visible_options is None and self.options and len(self.options) >= self._MIN_VISIBLE_OPTIONS: + self.visible_options = len(self.options) + return self + + +class LabelQuestionModel(QuestionBaseModel): + settings: LabelQuestionSettings diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py new file mode 100644 index 0000000000..0084b06cb8 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py @@ -0,0 +1,33 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from enum import Enum + +from pydantic import Field + +from argilla_sdk._models._settings._questions._label_selection import LabelQuestionSettings, LabelQuestionModel + + +class OptionsOrder(str, Enum): + natural = "natural" + suggestion = "suggestion" + + +class MultiLabelQuestionSettings(LabelQuestionSettings): + type: str = "multi_label_selection" + options_order: OptionsOrder = Field(OptionsOrder.natural, description="The order of the labels in the UI.") + + +class MultiLabelQuestionModel(LabelQuestionModel): + settings: MultiLabelQuestionSettings diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py new file mode 100644 index 0000000000..70f43bedc5 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py @@ -0,0 +1,40 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Dict, List, Optional + +from pydantic import field_validator, Field + +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel + + +class RankingQuestionSettings(QuestionSettings): + type: str = "ranking" + + options: List[Dict[str, Optional[str]]] = Field(default_factory=list, validate_default=True) + + @field_validator("options", mode="before") + @classmethod + def __values_are_unique(cls, options: List[Dict[str, Optional[str]]]) -> List[Dict[str, Optional[str]]]: + """Ensure that values are unique""" + + unique_values = list(set([option["value"] for option in options])) + if len(unique_values) != len(options): + raise ValueError("All values must be unique") + + return options + + +class RankingQuestionModel(QuestionBaseModel): + settings: RankingQuestionSettings diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py new file mode 100644 index 0000000000..39ade0c29a --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py @@ -0,0 +1,40 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List + +from pydantic import field_validator, Field + +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel + + +class RatingQuestionSettings(QuestionSettings): + type: str = "rating" + + options: List[dict] = Field(..., validate_default=True) + + @field_validator("options", mode="before") + @classmethod + def __values_are_unique(cls, options: List[dict]) -> List[dict]: + """Ensure that values are unique""" + + unique_values = list(set([option["value"] for option in options])) + if len(unique_values) != len(options): + raise ValueError("All values must be unique") + + return options + + +class RatingQuestionModel(QuestionBaseModel): + settings: RatingQuestionSettings diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py new file mode 100644 index 0000000000..bd66428843 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py @@ -0,0 +1,56 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Dict, List, Optional, ClassVar + +from pydantic import field_validator, Field, model_validator + +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel + +try: + from typing import Self +except ImportError: + from typing_extensions import Self + + +class SpanQuestionSettings(QuestionSettings): + type: str = "span" + + _MIN_VISIBLE_OPTIONS: ClassVar[int] = 3 + + allow_overlapping: bool = False + field: Optional[str] = None + options: List[Dict[str, Optional[str]]] = Field(default_factory=list, validate_default=True) + visible_options: Optional[int] = Field(None, validate_default=True, ge=_MIN_VISIBLE_OPTIONS) + + @field_validator("options", mode="before") + @classmethod + def __values_are_unique(cls, options: List[Dict[str, Optional[str]]]) -> List[Dict[str, Optional[str]]]: + """Ensure that values are unique""" + + unique_values = list(set([option["value"] for option in options])) + if len(unique_values) != len(options): + raise ValueError("All values must be unique") + + return options + + @model_validator(mode="after") + def __validate_visible_options(self) -> "Self": + if self.visible_options is None and self.options and len(self.options) >= self._MIN_VISIBLE_OPTIONS: + self.visible_options = len(self.options) + return self + + +class SpanQuestionModel(QuestionBaseModel): + settings: SpanQuestionSettings diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py new file mode 100644 index 0000000000..2d3ecaf89c --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py @@ -0,0 +1,25 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel + + +class TextQuestionSettings(QuestionSettings): + type: str = "text" + + use_markdown: bool = False + + +class TextQuestionModel(QuestionBaseModel): + settings: TextQuestionSettings diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py new file mode 100644 index 0000000000..c518809d2c --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py @@ -0,0 +1,55 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional +from uuid import UUID + +from pydantic import BaseModel, field_validator, field_serializer +from pydantic_core.core_schema import ValidationInfo + +from argilla_sdk._helpers._log import log + + +class VectorFieldModel(BaseModel): + name: str + title: Optional[str] = None + dimensions: int + + id: Optional[UUID] = None + dataset_id: Optional[UUID] = None + + @field_serializer("id", "dataset_id", when_used="unless-none") + def serialize_id(self, value: UUID) -> str: + return str(value) + + @field_validator("name") + @classmethod + def _name_lower(cls, name): + formatted_name = name.lower().replace(" ", "_") + return formatted_name + + @field_validator("title") + @classmethod + def _title_default(cls, title: str, info: ValidationInfo) -> str: + data = info.data + validated_title = title or data["name"] + log(f"TextField title is {validated_title}") + return validated_title + + @field_validator("dimensions") + @classmethod + def _dimension_gt_zero(cls, dimensions): + if dimensions <= 0: + raise ValueError("dimensions must be greater than 0") + return dimensions diff --git a/argilla-sdk/src/argilla_sdk/_models/_user.py b/argilla-sdk/src/argilla_sdk/_models/_user.py new file mode 100644 index 0000000000..3e4bc9dd96 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_user.py @@ -0,0 +1,58 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from enum import Enum +from typing import Optional + +from pydantic import field_validator + +from argilla_sdk._models import ResourceModel + +__all__ = ["UserModel", "Role"] + + +class Role(str, Enum): + annotator = "annotator" + admin = "admin" + owner = "owner" + + +class UserModel(ResourceModel): + username: str + role: Role = Role.annotator + + first_name: Optional[str] = None + last_name: Optional[str] = None + password: Optional[str] = None + + class Config: + validate_assignment = True + str_strip_whitespace = True + + @field_validator("first_name") + @classmethod + def __validate_first_name(cls, v, values): + """Set first_name to username if not provided""" + if isinstance(v, str): + return v + elif not v: + return values["username"] + + @field_validator("username", mode="before") + @classmethod + def __validate_username(cls, username: str): + """Ensure that the username is not empty""" + if not username: + raise ValueError("Username cannot be empty") + return username diff --git a/argilla-sdk/src/argilla_sdk/_models/_workspace.py b/argilla-sdk/src/argilla_sdk/_models/_workspace.py new file mode 100644 index 0000000000..b06bd141de --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_models/_workspace.py @@ -0,0 +1,36 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk._models import ResourceModel + +import re +from pydantic import field_validator + +__all__ = ["WorkspaceModel"] + + +class WorkspaceModel(ResourceModel): + name: str + + class Config: + validate_assignment = True + str_strip_whitespace = True + + @field_validator("name") + @classmethod + def validate_name(cls, value): + """Validate the name of the workspace is url safe""" + if not re.match(r"^[a-zA-Z0-9_-]+$", value): + raise ValueError("Workspace name must be url safe") + return value diff --git a/argilla-sdk/src/argilla_sdk/_resource.py b/argilla-sdk/src/argilla_sdk/_resource.py new file mode 100644 index 0000000000..4603cf7bd6 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/_resource.py @@ -0,0 +1,141 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from datetime import datetime +from typing import Any, TYPE_CHECKING, Optional +from uuid import UUID + +from argilla_sdk._exceptions import ArgillaSerializeError +from argilla_sdk._helpers._mixins import LoggingMixin, UUIDMixin + +if TYPE_CHECKING: + from argilla_sdk.client import Argilla + from argilla_sdk._models import ResourceModel + from argilla_sdk._api._base import ResourceAPI + + +class Resource(LoggingMixin, UUIDMixin): + """Base class for all resources (Dataset, Workspace, User, etc.)""" + + _model: "ResourceModel" + _client: "Argilla" + _api: "ResourceAPI" + + _MAX_OUTDATED_RETENTION = 30 + + def __init__(self, api: Optional["ResourceAPI"] = None, client: Optional["Argilla"] = None) -> None: + self._client = client + self._api = api + + self._last_api_call = None + + def __repr__(self) -> str: + return f"{self.__class__.__name__}({self._model})" + + def __eq__(self, other) -> bool: + if not isinstance(other, Resource): + return False + if not hasattr(other, "_model"): + return super().__eq__(other) + return self._model == other._model + + @property + def id(self) -> Optional[UUID]: + return self._model.id + + @id.setter + def id(self, value: UUID) -> None: + self._model.id = value + + @property + def is_outdated(self) -> bool: + """Checks if the resource is outdated based on the last API call + Returns: + bool: True if the resource is outdated, False otherwise + """ + seconds = self._seconds_from_last_api_call() + if seconds is None: + return True + return seconds > self._MAX_OUTDATED_RETENTION + + def api_model(self): + """Returns the model that is used to interact with the API""" + return self._model + + ############################ + # CRUD operations + ############################ + + def create(self) -> "Resource": + response_model = self._api.create(self._model) + self._sync(response_model) + self._update_last_api_call() + self.log(f"Resource created: {self}") + return self + + def get(self) -> "Resource": + response_model = self._api.get(self._model.id) + self._sync(response_model) + self._update_last_api_call() + self.log(f"Resource fetched: {self}") + return self + + def update(self) -> "Resource": + response_model = self._api.update(self._model) + self._sync(response_model) + self._update_last_api_call() + self.log(f"Resource updated: {self}") + return self + + def delete(self) -> None: + self._api.delete(self._model.id) + self._update_last_api_call() + self.log(f"Resource deleted: {self}") + + ############################ + # Serialization + ############################ + + def serialize(self) -> dict[str, Any]: + try: + return self._model.model_dump() + except Exception as e: + raise ArgillaSerializeError(f"Failed to serialize the resource. {e.__class__.__name__}") from e + + def serialize_json(self) -> str: + try: + return self._model.model_dump_json() + except Exception as e: + raise ArgillaSerializeError(f"Failed to serialize the resource. {e.__class__.__name__}") from e + + def _sync(self, model: "ResourceModel"): + """Updates the resource with the ClientAPI that is used to interact with + Argilla and adds an updated model to the resource. + Args: + model (Union[WorkspaceModel, UserModel, DatasetModel]): The updated model + Returns: + Self: The updated resource + """ + self._model = model + # set all attributes from the model to the resource + for field in self._model.model_fields: + setattr(self, field, getattr(self._model, field)) + return self + + def _update_last_api_call(self): + self._last_api_call = datetime.utcnow() + + def _seconds_from_last_api_call(self) -> Optional[float]: + if self._last_api_call: + return (datetime.utcnow() - self._last_api_call).total_seconds() diff --git a/argilla-sdk/src/argilla_sdk/client.py b/argilla-sdk/src/argilla_sdk/client.py new file mode 100644 index 0000000000..14b0e4c4f3 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/client.py @@ -0,0 +1,333 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import warnings +from abc import abstractmethod +from collections.abc import Sequence +from typing import TYPE_CHECKING, overload, List, Optional, Union + +from argilla_sdk import _api +from argilla_sdk._api._client import DEFAULT_HTTP_CONFIG +from argilla_sdk._helpers import GenericIterator +from argilla_sdk._helpers._resource_repr import ResourceHTMLReprMixin +from argilla_sdk._models import UserModel, WorkspaceModel, DatasetModel + +if TYPE_CHECKING: + from argilla_sdk import Workspace + from argilla_sdk import Dataset + from argilla_sdk import User + + from IPython.display import HTML + +__all__ = ["Argilla"] + + +class Argilla(_api.APIClient): + """Argilla API client. This is the main entry point to interact with the API. + + Attributes: + workspaces: A collection of workspaces. + datasets: A collection of datasets. + users: A collection of users. + me: The current user. + + """ + + # Default instance of Argilla + _default_client: Optional["Argilla"] = None + + def __init__( + self, + api_url: Optional[str] = DEFAULT_HTTP_CONFIG.api_url, + api_key: Optional[str] = DEFAULT_HTTP_CONFIG.api_key, + timeout: int = DEFAULT_HTTP_CONFIG.timeout, + **http_client_args, + ) -> None: + super().__init__(api_url=api_url, api_key=api_key, timeout=timeout, **http_client_args) + + self._set_default(self) + + @property + def workspaces(self) -> "Workspaces": + """A collection of workspaces on the server.""" + return Workspaces(client=self) + + @property + def datasets(self) -> "Datasets": + """A collection of datasets on the server.""" + return Datasets(client=self) + + @property + def users(self) -> "Users": + """A collection of users on the server.""" + return Users(client=self) + + @property + def me(self) -> "User": + """The current user.""" + from argilla_sdk import User + + return User(client=self, _model=self.api.users.get_me()) + + ############################ + # Private methods + ############################ + + @classmethod + def _set_default(cls, client: "Argilla") -> None: + """Set the default instance of Argilla.""" + cls._default_client = client + + @classmethod + def _get_default(cls) -> "Argilla": + """Get the default instance of Argilla. If it doesn't exist, create a new one.""" + if cls._default_client is None: + cls._default_client = Argilla() + return cls._default_client + + +class Users(Sequence["User"], ResourceHTMLReprMixin): + """A collection of users. It can be used to create a new user or to get an existing one.""" + + class _Iterator(GenericIterator["User"]): + pass + + def __init__(self, client: "Argilla") -> None: + self._client = client + self._api = client.api.users + + def __call__(self, username: str, **kwargs) -> "User": + from argilla_sdk.users import User + + user_models = self._api.list() + for model in user_models: + if model.username == username: + return User(_model=model, client=self._client) + warnings.warn(f"User {username} not found. Creating a new user. Do `user.create()` to create the user.") + return User(username=username, client=self._client, **kwargs) + + def __iter__(self): + return self._Iterator(self.list()) + + @overload + @abstractmethod + def __getitem__(self, index: int) -> "User": + ... + + @overload + @abstractmethod + def __getitem__(self, index: slice) -> Sequence["User"]: + ... + + def __getitem__(self, index): + model = self._api.list()[index] + return self._from_model(model) + + def __len__(self) -> int: + return len(self._api.list()) + + def add(self, user: "User") -> "User": + """Add a new user to the Argilla platform. + + Args: + user: User object. + + Returns: + User: The created user. + """ + user._client = self._client + return user.create() + + @overload + def list(self) -> List["User"]: + ... + + @overload + def list(self, workspace: "Workspace") -> List["User"]: + ... + + def list(self, workspace: Optional["Workspace"] = None) -> List["User"]: + """List all users.""" + if workspace is not None: + models = self._api.list_by_workspace_id(workspace.id) + else: + models = self._api.list() + + return [self._from_model(model) for model in models] + + ############################ + # Private methods + ############################ + + def _repr_html_(self) -> "HTML": + return self._represent_as_html(resources=self.list()) + + def _from_model(self, model: UserModel) -> "User": + from argilla_sdk.users import User + + return User(client=self._client, _model=model) + + +class Workspaces(Sequence["Workspace"], ResourceHTMLReprMixin): + """A collection of workspaces. It can be used to create a new workspace or to get an existing one.""" + + class _Iterator(GenericIterator["Workspace"]): + pass + + def __init__(self, client: "Argilla") -> None: + self._client = client + self._api = client.api.workspaces + + def __call__(self, name: str, **kwargs) -> "Workspace": + from argilla_sdk.workspaces import Workspace + + workspace_models = self._api.list() + + for model in workspace_models: + if model.name == name: + return Workspace(_model=model, client=self._client) + warnings.warn( + f"Workspace {name} not found. Creating a new workspace. Do `workspace.create()` to create the workspace." + ) + return Workspace(name=name, client=self._client, **kwargs) + + def __iter__(self): + return self._Iterator(self.list()) + + @overload + @abstractmethod + def __getitem__(self, index: int) -> "Workspace": + ... + + @overload + @abstractmethod + def __getitem__(self, index: slice) -> Sequence["Workspace"]: + ... + + def __getitem__(self, index) -> "Workspace": + model = self._api.list()[index] + return self._from_model(model) + + def __len__(self) -> int: + return len(self._api.list()) + + def add(self, workspace: "Workspace") -> "Workspace": + """Add a new workspace to the Argilla platform. + Args: + workspace: Workspace object. + + Returns: + Workspace: The created workspace. + """ + workspace._client = self._client + return workspace.create() + + def list(self) -> List["Workspace"]: + return [self._from_model(model) for model in self._api.list()] + + ############################ + # Properties + ############################ + + @property + def default(self) -> "Workspace": + """The default workspace.""" + return self[0] + + ############################ + # Private methods + ############################ + + def _repr_html_(self) -> "HTML": + return self._represent_as_html(resources=self.list()) + + def _from_model(self, model: WorkspaceModel) -> "Workspace": + from argilla_sdk.workspaces import Workspace + + return Workspace(client=self._client, _model=model) + + +class Datasets(Sequence["Dataset"], ResourceHTMLReprMixin): + """A collection of datasets. It can be used to create a new dataset or to get an existing one.""" + + class _Iterator(GenericIterator["Dataset"]): + pass + + def __init__(self, client: "Argilla") -> None: + self._client = client + self._api = client.api.datasets + + def __call__(self, name: str, workspace: Optional[Union["Workspace", str]] = None, **kwargs) -> "Dataset": + from argilla_sdk.datasets import Dataset + + if isinstance(workspace, str): + workspace = self._client.workspaces(workspace) + elif workspace is None: + workspace = self._client.workspaces[0] + + for dataset in workspace.datasets: + if dataset.name == name: + return dataset + warnings.warn(f"Dataset {name} not found. Creating a new dataset. Do `dataset.create()` to create the dataset.") + return Dataset(name=name, workspace=workspace, client=self._client, **kwargs) + + def __iter__(self): + return self._Iterator(self.list()) + + @overload + @abstractmethod + def __getitem__(self, index: int) -> "Dataset": + ... + + @overload + @abstractmethod + def __getitem__(self, index: slice) -> Sequence["Dataset"]: + ... + + def __getitem__(self, index) -> "Dataset": + model = self._api.list()[index] + return self._from_model(model) + + def __len__(self) -> int: + return len(self._api.list()) + + def add(self, dataset: "Dataset") -> "Dataset": + """ + Add a new dataset to the Argilla platform + + Args: + dataset: Dataset object. + + Returns: + Dataset: The created dataset. + """ + dataset._client = self._client + dataset.create() + + return dataset + + def list(self) -> List["Dataset"]: + return [self._from_model(model) for model in self._api.list()] + + ############################ + # Private methods + ############################ + + def _repr_html_(self) -> "HTML": + return self._represent_as_html(resources=self.list()) + + def _from_model(self, model: DatasetModel) -> "Dataset": + from argilla_sdk.datasets import Dataset + + return Dataset(client=self._client, _model=model) diff --git a/argilla-sdk/src/argilla_sdk/datasets/__init__.py b/argilla-sdk/src/argilla_sdk/datasets/__init__.py new file mode 100644 index 0000000000..a1bf2af414 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/datasets/__init__.py @@ -0,0 +1,17 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk.datasets._resource import Dataset # noqa + +__all__ = ["Dataset"] diff --git a/argilla-sdk/src/argilla_sdk/datasets/_export.py b/argilla-sdk/src/argilla_sdk/datasets/_export.py new file mode 100644 index 0000000000..b597c1fcad --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/datasets/_export.py @@ -0,0 +1,140 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from abc import ABC +import json +import logging +import os +from pathlib import Path +import warnings +from typing import Optional, Union, TYPE_CHECKING, Tuple, Type +from uuid import uuid4 + +from argilla_sdk._models import DatasetModel +from argilla_sdk.client import Argilla +from argilla_sdk.settings import Settings +from argilla_sdk.workspaces._resource import Workspace + + +if TYPE_CHECKING: + from argilla_sdk import Dataset + + +class DiskImportExportMixin(ABC): + """A mixin for exporting and importing datasets to and from disk.""" + + _model: DatasetModel + _default_settings_path = "settings.json" + _default_records_path = "records.json" + _default_dataset_path = "dataset.json" + + def to_disk(self: "Dataset", path: str) -> str: + """Exports the dataset to disk in the given path. The dataset is exported as a directory containing the dataset model, settings and records as json files. + + Args: + path (str): The path to export the dataset to. Must be an empty directory. + """ + dataset_path, settings_path, records_path = self._define_child_paths(path=path) + logging.info(f"Loading dataset from {dataset_path}") + logging.info(f"Loading settings from {settings_path}") + logging.info(f"Loading records from {records_path}") + # Export the dataset model, settings and records + self._persist_dataset_model(path=dataset_path) + self.settings.to_json(path=settings_path) + if self.exists(): + self.records.to_json(path=records_path) + return path + + @classmethod + def from_disk( + cls: Type["Dataset"], + path: str, + target_workspace: Optional[Union["Workspace", str]] = None, + target_name: Optional[str] = None, + client: Optional["Argilla"] = None, + ) -> "Dataset": + """Imports a dataset from disk as a directory containing the dataset model, settings and records. + The directory should be defined using the `to_disk` method. + + Parameters: + path (str): The path to the directory containing the dataset model, settings and records. + target_workspace (Union[Workspace, str], optional): The workspace to import the dataset to. Defaults to None and default workspace is used. + target_name (str, optional): The name to assign to the new dataset. Defaults to None and the dataset's source name is used, unless it already exists, in which case a unique UUID is appended. + client (Argilla, optional): The client to use for the import. Defaults to None and the default client is used. + """ + + client = client or Argilla._get_default() + + dataset_path, settings_path, records_path = cls._define_child_paths(path=path) + logging.info(f"Loading dataset from {dataset_path}") + logging.info(f"Loading settings from {settings_path}") + logging.info(f"Loading records from {records_path}") + dataset_model = cls._load_dataset_model(path=dataset_path) + + # Get the relevant workspace_id of the incoming dataset + if isinstance(target_workspace, str): + workspace_id = client.workspaces(target_workspace).id + elif isinstance(target_workspace, Workspace): + workspace_id = target_workspace.id + else: + warnings.warn("Workspace not provided. Using default workspace.") + workspace_id = client.workspaces.default.id + dataset_model.workspace_id = workspace_id + + # Get a relevant and unique name for the incoming dataset. + if target_name: + logging.warning(f"Changing dataset name from {dataset_model.name} to {target_name}") + dataset_model.name = target_name + elif client.api.datasets.name_exists(name=dataset_model.name, workspace_id=workspace_id): + logging.warning(f"Loaded dataset name {dataset_model.name} already exists. Changing to unique UUID.") + dataset_model.name = f"{dataset_model.name}_{uuid4()}" + + # Create the dataset and load the settings and records + dataset = cls.from_model(model=dataset_model, client=client) + dataset.settings = Settings.from_json(path=settings_path) + dataset.create() + if os.path.exists(records_path): + dataset.records.from_json(path=records_path) + return dataset + + ############################ + # Utility methods + ############################ + + def _persist_dataset_model(self, path: Path): + """Persists the dataset model to disk.""" + if path.exists(): + raise FileExistsError(f"Dataset already exists at {path}") + with open(file=path, mode="w") as f: + json.dump(self._model.model_dump(), f) + + @classmethod + def _load_dataset_model(cls, path: Path): + """Loads the dataset model from disk.""" + if not os.path.exists(path): + raise FileNotFoundError(f"Dataset model not found at {path}") + with open(file=path, mode="r") as f: + dataset_model = json.load(f) + dataset_model = DatasetModel(**dataset_model) + return dataset_model + + @classmethod + def _define_child_paths(cls, path: Union[Path, str]) -> Tuple[Path, Path, Path]: + path = Path(path) + if not path.is_dir(): + raise NotADirectoryError(f"Path {path} is not a directory") + dataset_path = path / cls._default_dataset_path + settings_path = path / cls._default_settings_path + records_path = path / cls._default_records_path + return dataset_path, settings_path, records_path diff --git a/argilla-sdk/src/argilla_sdk/datasets/_resource.py b/argilla-sdk/src/argilla_sdk/datasets/_resource.py new file mode 100644 index 0000000000..781bdf6506 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/datasets/_resource.py @@ -0,0 +1,226 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import warnings +from typing import Optional, Union +from uuid import UUID, uuid4 + +from argilla_sdk._api import DatasetsAPI +from argilla_sdk._exceptions import NotFoundError, SettingsError +from argilla_sdk._models import DatasetModel +from argilla_sdk._resource import Resource +from argilla_sdk.client import Argilla +from argilla_sdk.datasets._export import DiskImportExportMixin +from argilla_sdk.records import DatasetRecords +from argilla_sdk.settings import Settings +from argilla_sdk.workspaces._resource import Workspace + +__all__ = ["Dataset"] + + +class Dataset(Resource, DiskImportExportMixin): + """Class for interacting with Argilla Datasets + + Attributes: + name: Name of the dataset. + records (DatasetRecords): The records object for the dataset. Used to interact with the records of the dataset by iterating, searching, etc. + settings (Settings): The settings object of the dataset. Used to configure the dataset with fields, questions, guidelines, etc. + fields (list): The fields of the dataset, for example the `rg.TextField` of the dataset. Defined in the settings. + questions (list): The questions of the dataset defined in the settings. For example, the `rg.TextQuestion` that you want labelers to answer. + guidelines (str): The guidelines of the dataset defined in the settings. Used to provide instructions to labelers. + allow_extra_metadata (bool): True if extra metadata is allowed, False otherwise. + """ + + name: str + id: Optional[UUID] + + _api: "DatasetsAPI" + _model: "DatasetModel" + + def __init__( + self, + name: Optional[str] = None, + workspace: Optional[Union["Workspace", str]] = None, + settings: Optional[Settings] = None, + client: Optional["Argilla"] = None, + _model: Optional[DatasetModel] = None, + ) -> None: + """Initializes a new Argilla Dataset object with the given parameters. + + Parameters: + name (str): Name of the dataset. Replaced by random UUID if not assigned. + workspace (UUID): Workspace of the dataset. Default is the first workspace found in the server. + settings (Settings): Settings class to be used to configure the dataset. + client (Argilla): Instance of Argilla to connect with the server. Default is the default client. + _model (DatasetModel): Model of the dataset. Used to create the dataset from an existing model. + """ + client = client or Argilla._get_default() + super().__init__(client=client, api=client.api.datasets) + if name is None: + name = f"dataset_{uuid4()}" + self.log(f"Settings dataset name to unique UUID: {name}") + + self.workspace_id = ( + _model.workspace_id + if _model and _model.workspace_id + else self.__workspace_id_from_name(workspace=workspace) + ) + self._model = _model or DatasetModel( + name=name, + workspace_id=self._convert_optional_uuid(uuid=self.workspace_id), + ) + self._settings = self.__configure_settings_for_dataset(settings=settings) + self.__records = DatasetRecords(client=self._client, dataset=self) + + ##################### + # Properties # + ##################### + + @property + def name(self) -> str: + return self._model.name + + @name.setter + def name(self, value: str) -> None: + self._model.name = value + + @property + def records(self) -> "DatasetRecords": + return self.__records + + @property + def settings(self) -> Settings: + if self.__is_published() and self._settings.is_outdated: + self._settings.get() + return self._settings + + @settings.setter + def settings(self, value: Settings) -> None: + self._settings = self.__configure_settings_for_dataset(settings=value) + + @property + def fields(self) -> list: + return self.settings.fields + + @property + def questions(self) -> list: + return self.settings.questions + + @property + def guidelines(self) -> str: + return self.settings.guidelines + + @guidelines.setter + def guidelines(self, value: str) -> None: + self.settings.guidelines = value + + @property + def allow_extra_metadata(self) -> bool: + return self.settings.allow_extra_metadata + + @allow_extra_metadata.setter + def allow_extra_metadata(self, value: bool) -> None: + self.settings.allow_extra_metadata = value + + @property + def schema(self) -> dict: + return self.settings.schema + + ##################### + # Core methods # + ##################### + + def exists(self) -> bool: + """Checks if the dataset exists on the server + + Returns: + bool: True if the dataset exists, False otherwise + """ + return self.id and self._api.exists(self.id) + + def create(self) -> "Dataset": + """Creates the dataset on the server with the `Settings` configuration. + + Returns: + Dataset: The created dataset object. + """ + super().create() + try: + return self._publish() + except Exception as e: + self.log(message=f"Error creating dataset: {e}", level="error") + self.__rollback_dataset_creation() + raise SettingsError from e + + @classmethod + def from_model(cls, model: DatasetModel, client: "Argilla") -> "Dataset": + return cls(client=client, _model=model) + + ##################### + # Utility methods # + ##################### + + def _sync(self, model: "DatasetModel") -> "Dataset": + # We only need to update the model. Maybe in the future the + # _sync method makes less sense for those resources defining getter/setters + self._model = model + return self + + def _publish(self) -> "Dataset": + self.settings.validate() + self._settings.create() + self._api.publish(dataset_id=self._model.id) + + return self.get() # type: ignore + + def __configure_settings_for_dataset( + self, + settings: Optional[Settings] = None, + ) -> Settings: + if settings is None: + settings = Settings(_dataset=self) + warnings.warn( + message="Settings not provided. Using empty settings for the dataset. \ + Define the settings before creating the dataset.", + stacklevel=2, + ) + else: + settings.dataset = self + return settings + + def __workspace_id_from_name(self, workspace: Optional[Union["Workspace", str]]) -> UUID: + if workspace is None: + available_workspaces = self._client.workspaces + ws = available_workspaces[0] # type: ignore + warnings.warn(f"Workspace not provided. Using default workspace: {ws.name} id: {ws.id}") + elif isinstance(workspace, str): + available_workspace_names = [ws.name for ws in self._client.workspaces] + ws = self._client.workspaces(workspace) + if not ws.exists(): + self.log( + message=f"Workspace with name {workspace} not found. \ + Available workspaces: {available_workspace_names}", + level="error", + ) + raise NotFoundError() + else: + ws = workspace + return ws.id + + def __rollback_dataset_creation(self): + if self.exists() and not self.__is_published(): + self.delete() + + def __is_published(self) -> bool: + return self.exists() and self._model.status == "ready" diff --git a/argilla-sdk/src/argilla_sdk/records/__init__.py b/argilla-sdk/src/argilla_sdk/records/__init__.py new file mode 100644 index 0000000000..bb25d4798a --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/__init__.py @@ -0,0 +1,19 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk.records._dataset_records import DatasetRecords +from argilla_sdk.records._resource import Record +from argilla_sdk.records._search import Query, Filter, Condition + +__all__ = ["Record", "DatasetRecords", "Query", "Filter", "Condition"] diff --git a/argilla-sdk/src/argilla_sdk/records/_dataset_records.py b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py new file mode 100644 index 0000000000..add363c866 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py @@ -0,0 +1,504 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import warnings +from collections import defaultdict +from pathlib import Path +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Sequence, Union +from uuid import UUID + +from argilla_sdk._api import RecordsAPI +from argilla_sdk._helpers._mixins import LoggingMixin +from argilla_sdk._models import RecordModel +from argilla_sdk.client import Argilla +from argilla_sdk.records._io import HFDatasetsIO, GenericIO, JsonIO, HFDataset +from argilla_sdk.records._resource import Record +from argilla_sdk.records._search import Query +from argilla_sdk.responses import Response +from argilla_sdk.settings import MetadataType, QuestionType, TextField, VectorField +from argilla_sdk.suggestions import Suggestion +from argilla_sdk.vectors import Vector + +if TYPE_CHECKING: + from argilla_sdk.datasets import Dataset + + +class DatasetRecordsIterator: + """This class is used to iterate over records in a dataset""" + + def __init__( + self, + dataset: "Dataset", + client: "Argilla", + query: Optional[Query] = None, + start_offset: int = 0, + batch_size: Optional[int] = None, + with_suggestions: bool = False, + with_responses: bool = False, + with_vectors: Optional[Union[str, List[str], bool]] = None, + ): + self.__dataset = dataset + self.__client = client + self.__query = query or Query() + self.__offset = start_offset or 0 + self.__batch_size = batch_size or 100 + self.__with_suggestions = with_suggestions + self.__with_responses = with_responses + self.__with_vectors = with_vectors + self.__records_batch = [] + + def __iter__(self): + return self + + def __next__(self) -> Record: + if not self._has_local_records(): + self._fetch_next_batch() + if not self._has_local_records(): + raise StopIteration() + return self._next_record() + + def _next_record(self) -> Record: + return self.__records_batch.pop(0) + + def _has_local_records(self) -> bool: + return len(self.__records_batch) > 0 + + def _fetch_next_batch(self) -> None: + self.__records_batch = list(self._list()) + self.__offset += len(self.__records_batch) + + def _list(self) -> Sequence[Record]: + for record_model in self._fetch_from_server(): + yield Record.from_model(model=record_model, dataset=self.__dataset) + + def _fetch_from_server(self) -> List[RecordModel]: + if not self.__dataset.exists(): + raise ValueError(f"Dataset {self.__dataset.name} does not exist on the server.") + if self._is_search_query(): + return self._fetch_from_server_with_search() + return self._fetch_from_server_with_list() + + def _fetch_from_server_with_list(self) -> List[RecordModel]: + return self.__client.api.records.list( + dataset_id=self.__dataset.id, + limit=self.__batch_size, + offset=self.__offset, + with_responses=self.__with_responses, + with_suggestions=self.__with_suggestions, + with_vectors=self.__with_vectors, + ) + + def _fetch_from_server_with_search(self) -> List[RecordModel]: + search_items, total = self.__client.api.records.search( + dataset_id=self.__dataset.id, + query=self.__query.model, + limit=self.__batch_size, + offset=self.__offset, + with_responses=self.__with_responses, + with_suggestions=self.__with_suggestions, + ) + return [record_model for record_model, _ in search_items] + + def _is_search_query(self) -> bool: + return bool(self.__query and (self.__query.query or self.__query.filter)) + + +class DatasetRecords(Iterable[Record], LoggingMixin): + """This class is used to work with records from a dataset and is accessed via `Dataset.records`. + The responsibility of this class is to provide an interface to interact with records in a dataset, + by adding, updating, fetching, querying, deleting, and exporting records. + + Attributes: + client (Argilla): The Argilla client object. + dataset (Dataset): The dataset object. + """ + + _api: RecordsAPI + + DEFAULT_BATCH_SIZE = 256 + + def __init__(self, client: "Argilla", dataset: "Dataset"): + """Initializes a DatasetRecords object with a client and a dataset. + Args: + client: An Argilla client object. + dataset: A Dataset object. + """ + self.__client = client + self.__dataset = dataset + self._api = self.__client.api.records + + def __iter__(self): + return DatasetRecordsIterator(self.__dataset, self.__client) + + def __call__( + self, + query: Optional[Union[str, Query]] = None, + batch_size: Optional[int] = DEFAULT_BATCH_SIZE, + start_offset: int = 0, + with_suggestions: bool = True, + with_responses: bool = True, + with_vectors: Optional[Union[List, bool, str]] = None, + ): + """Returns an iterator over the records in the dataset on the server. + + Parameters: + query: A string or a Query object to filter the records. + batch_size: The number of records to fetch in each batch. The default is 256. + start_offset: The offset from which to start fetching records. The default is 0. + with_suggestions: Whether to include suggestions in the records. The default is True. + with_responses: Whether to include responses in the records. The default is True. + with_vectors: A list of vector names to include in the records. The default is None. + If a list is provided, only the specified vectors will be included. + If True is provided, all vectors will be included. + + Returns: + An iterator over the records in the dataset on the server. + + """ + if query and isinstance(query, str): + query = Query(query=query) + + if with_vectors: + self._validate_vector_names(vector_names=with_vectors) + + return DatasetRecordsIterator( + self.__dataset, + self.__client, + query=query, + batch_size=batch_size, + start_offset=start_offset, + with_suggestions=with_suggestions, + with_responses=with_responses, + with_vectors=with_vectors, + ) + + def __repr__(self) -> str: + return f"{self.__class__.__name__}({self.__dataset})" + + ############################ + # Public methods + ############################ + + def add( + self, + records: Union[dict, List[dict], Record, List[Record], HFDataset], + mapping: Optional[Dict[str, str]] = None, + user_id: Optional[UUID] = None, + batch_size: int = DEFAULT_BATCH_SIZE, + ) -> List[Record]: + """ + Add new records to a dataset on the server. + + Parameters: + records: A dictionary or a list of dictionaries representing the records + to be added to the dataset. Records are defined as dictionaries + with keys corresponding to the fields in the dataset schema. + mapping: A dictionary that maps the keys in the records to the fields in the dataset schema. + user_id: The user id to be associated with the records. If not provided, the current user id is used. + batch_size: The number of records to send in each batch. The default is 256. + + Returns: + A list of Record objects representing the added records. + + Examples: + + Add generic records to a dataset as dictionaries: + + """ + record_models = self._ingest_records(records=records, mapping=mapping, user_id=user_id or self.__client.me.id) + batch_size = self._normalize_batch_size( + batch_size=batch_size, + records_length=len(record_models), + max_value=self._api.MAX_RECORDS_PER_CREATE_BULK, + ) + + created_records = [] + for batch in range(0, len(record_models), batch_size): + self.log(message=f"Sending records from {batch} to {batch + batch_size}.") + batch_records = record_models[batch : batch + batch_size] + models = self._api.bulk_create(dataset_id=self.__dataset.id, records=batch_records) + created_records.extend([Record.from_model(model=model, dataset=self.__dataset) for model in models]) + + self.log( + message=f"Added {len(created_records)} records to dataset {self.__dataset.name}", + level="info", + ) + + return created_records + + def update( + self, + records: Union[dict, List[dict], Record, List[Record], HFDataset], + mapping: Optional[Dict[str, str]] = None, + user_id: Optional[UUID] = None, + batch_size: int = DEFAULT_BATCH_SIZE, + ) -> List[Record]: + """Update records in a dataset on the server using the provided records + and matching based on the external_id or id. + + Parameters: + records: A dictionary or a list of dictionaries representing the records + to be updated in the dataset. Records are defined as dictionaries + with keys corresponding to the fields in the dataset schema. Ids or + external_ids should be provided to identify the records to be updated. + mapping: A dictionary that maps the keys in the records to the fields in the dataset schema. + user_id: The user id to be associated with the records. If not provided, the current user id is used. + batch_size: The number of records to send in each batch. The default is 256. + + Returns: + A list of Record objects representing the updated records. + + """ + record_models = self._ingest_records(records=records, mapping=mapping, user_id=user_id or self.__client.me.id) + batch_size = self._normalize_batch_size( + batch_size=batch_size, + records_length=len(record_models), + max_value=self._api.MAX_RECORDS_PER_UPSERT_BULK, + ) + + created_or_updated = [] + records_updated = 0 + for batch in range(0, len(records), batch_size): + self.log(message=f"Sending records from {batch} to {batch + batch_size}.") + batch_records = record_models[batch : batch + batch_size] + models, updated = self._api.bulk_upsert(dataset_id=self.__dataset.id, records=batch_records) + created_or_updated.extend([Record.from_model(model=model, dataset=self.__dataset) for model in models]) + records_updated += updated + + records_created = len(created_or_updated) - records_updated + self.log( + message=f"Updated {records_updated} records and added {records_created} records to dataset {self.__dataset.name}", + level="info", + ) + + return created_or_updated + + def to_dict(self, flatten: bool = False, orient: str = "names") -> Dict[str, Any]: + """ + Return the records as a dictionary. This is a convenient shortcut for dataset.records(...).to_dict(). + + Parameters: + flatten (bool): The structure of the exported dictionary. + - True: The record fields, metadata, suggestions and responses will be flattened. + - False: The record fields, metadata, suggestions and responses will be nested. + orient (str): The orientation of the exported dictionary. + - "names": The keys of the dictionary will be the names of the fields, metadata, suggestions and responses. + - "index": The keys of the dictionary will be the id of the records. + Returns: + A dictionary of records. + + """ + records = list(self(with_suggestions=True, with_responses=True)) + data = GenericIO.to_dict(records=records, flatten=flatten, orient=orient) + return data + + def to_list(self, flatten: bool = False) -> List[Dict[str, Any]]: + """ + Return the records as a list of dictionaries. This is a convenient shortcut for dataset.records(...).to_list(). + + Parameters: + flatten (bool): Whether to flatten the dictionary and use dot notation for nested keys like suggestions and responses. + + Returns: + A list of dictionaries of records. + """ + records = list(self(with_suggestions=True, with_responses=True)) + data = GenericIO.to_list(records=records, flatten=flatten) + return data + + def to_json(self, path: Union[Path, str]) -> Path: + """ + Export the records to a file on disk. + + Parameters: + path (str): The path to the file to save the records. + orient (str): The structure of the exported dictionary. + + Returns: + The path to the file where the records were saved. + + """ + records = list(self(with_suggestions=True, with_responses=True)) + return JsonIO.to_json(records=records, path=path) + + def from_json(self, path: Union[Path, str]) -> "DatasetRecords": + """Creates a DatasetRecords object from a disk path to a JSON file. + The JSON file should be defined by `DatasetRecords.to_json`. + + Args: + path (str): The path to the file containing the records. + + Returns: + DatasetRecords: The DatasetRecords object created from the disk path. + + """ + records = JsonIO._records_from_json(path=path) + return self.update(records=records) + return self + + def to_datasets(self) -> HFDataset: + """ + Export the records to a file on disk. + + Parameters: + path (str): The path to the file to save the records. + orient (str): The structure of the exported dictionary. + + Returns: + The path to the file where the records were saved. + + """ + records = list(self(with_suggestions=True, with_responses=True)) + return HFDatasetsIO.to_datasets(records=records) + + ############################ + # Private methods + ############################ + + def _ingest_records( + self, + records: Union[List[Dict[str, Any]], Dict[str, Any], List[Record], Record, HFDataset], + mapping: Optional[Dict[str, str]] = None, + user_id: Optional[UUID] = None, + ) -> List[RecordModel]: + if isinstance(records, (Record, dict)): + records = [records] + if HFDatasetsIO._is_hf_dataset(dataset=records): + records = HFDatasetsIO._record_dicts_from_datasets(dataset=records) + if all(map(lambda r: isinstance(r, dict), records)): + # Records as flat dicts of values to be matched to questions as suggestion or response + records = [self._infer_record_from_mapping(data=r, mapping=mapping, user_id=user_id) for r in records] # type: ignore + elif all(map(lambda r: isinstance(r, Record), records)): + for record in records: + record.dataset = self.__dataset + else: + raise ValueError( + "Records should be a dictionary, a list of dictionaries, a Record instance, " + "a list of Record instances, or `datasets.Dataset`." + ) + return [record.api_model() for record in records] + + def _normalize_batch_size(self, batch_size: int, records_length, max_value: int): + norm_batch_size = min(batch_size, records_length, max_value) + + if batch_size != norm_batch_size: + self.log( + message=f"The provided batch size {batch_size} was normalized. Using value {norm_batch_size}.", + level="warning", + ) + + return norm_batch_size + + def _validate_vector_names(self, vector_names: Union[List[str], str]) -> None: + if not isinstance(vector_names, list): + vector_names = [vector_names] + for vector_name in vector_names: + if isinstance(vector_name, bool): + continue + if vector_name not in self.__dataset.schema: + raise ValueError(f"Vector field {vector_name} not found in dataset schema.") + + def _infer_record_from_mapping( + self, + data: dict, + mapping: Optional[Dict[str, str]] = None, + user_id: Optional[UUID] = None, + ) -> "Record": + """Converts a mapped record dictionary to a Record object for use by the add or update methods. + Args: + dataset: The dataset object to which the record belongs. + data: A dictionary representing the record. + mapping: A dictionary mapping source data keys to Argilla fields, questions, and ids. + user_id: The user id to associate with the record responses. + Returns: + A Record object. + """ + fields: Dict[str, str] = {} + responses: List[Response] = [] + record_id: Optional[str] = None + suggestion_values = defaultdict(dict) + vectors: List[Vector] = [] + metadata: Dict[str, MetadataValue] = {} + + schema = self.__dataset.schema + + for attribute, value in data.items(): + schema_item = schema.get(attribute) + attribute_type = None + sub_attribute = None + + # Map source data keys using the mapping + if mapping and attribute in mapping: + attribute_mapping = mapping.get(attribute) + attribute_mapping = attribute_mapping.split(".") + attribute = attribute_mapping[0] + schema_item = schema.get(attribute) + if len(attribute_mapping) > 1: + attribute_type = attribute_mapping[1] + if len(attribute_mapping) > 2: + sub_attribute = attribute_mapping[2] + elif schema_item is mapping is None and attribute != "id": + warnings.warn( + message=f"""Record attribute {attribute} is not in the schema so skipping. + Define a mapping to map source data fields to Argilla Fields, Questions, and ids + """ + ) + continue + + if attribute == "id": + record_id = value + continue + + # Add suggestion values to the suggestions + if attribute_type == "suggestion": + if sub_attribute in ["score", "agent"]: + suggestion_values[attribute][sub_attribute] = value + + elif sub_attribute is None: + suggestion_values[attribute].update( + {"value": value, "question_name": attribute, "question_id": schema_item.id} + ) + else: + warnings.warn( + message=f"Record attribute {sub_attribute} is not a valid suggestion sub_attribute so skipping." + ) + continue + + # Assign the value to question, field, or response based on schema item + if isinstance(schema_item, TextField): + fields[attribute] = value + elif isinstance(schema_item, QuestionType) and attribute_type == "response": + responses.append(Response(question_name=attribute, value=value, user_id=user_id)) + elif isinstance(schema_item, QuestionType) and attribute_type is None: + suggestion_values[attribute].update( + {"value": value, "question_name": attribute, "question_id": schema_item.id} + ) + elif isinstance(schema_item, VectorField): + vectors.append(Vector(name=attribute, values=value)) + elif isinstance(schema_item, MetadataType): + metadata[attribute] = value + else: + warnings.warn(message=f"Record attribute {attribute} is not in the schema or mapping so skipping.") + continue + + suggestions = [Suggestion(**suggestion_dict) for suggestion_dict in suggestion_values.values()] + + return Record( + id=record_id, + fields=fields, + suggestions=suggestions, + responses=responses, + vectors=vectors, + metadata=metadata, + _dataset=self.__dataset, + ) diff --git a/argilla-sdk/src/argilla_sdk/records/_io/__init__.py b/argilla-sdk/src/argilla_sdk/records/_io/__init__.py new file mode 100644 index 0000000000..d91bc90c35 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/_io/__init__.py @@ -0,0 +1,18 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk.records._io._datasets import HFDatasetsIO # noqa: F401 +from argilla_sdk.records._io._generic import GenericIO # noqa: F401 +from argilla_sdk.records._io._json import JsonIO # noqa: F401 +from argilla_sdk.records._io._datasets import HFDataset # noqa: F401 diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py b/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py new file mode 100644 index 0000000000..030610f38f --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py @@ -0,0 +1,79 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Dict, List, Union, Optional, Type + +from argilla_sdk.records._io._generic import GenericIO + + +def _resolve_hf_datasets_type() -> Optional[Type]: + """This function resolves the `datasets.Dataset` type safely in case the datasets package is not installed. + + Returns: + Optional[Type]: The Dataset class definition in case the datasets package is installed. Otherwise, None. + """ + try: + from datasets import Dataset as HFDataset + + return HFDataset + except ImportError: + return None + + +HFDataset = _resolve_hf_datasets_type() + + +class HFDatasetsIO: + @staticmethod + def _is_hf_dataset(dataset: HFDataset) -> bool: + """Check if the object is a Hugging Face dataset. + + Parameters: + dataset (Dataset): The object to check. + + Returns: + bool: True if the object is a Hugging Face dataset, False otherwise. + """ + HFDataset = _resolve_hf_datasets_type() + return isinstance(dataset, HFDataset) + + @staticmethod + def to_datasets(records: List["Record"]) -> HFDataset: + """ + Export the records to a Hugging Face dataset. + + Returns: + The dataset containing the records. + """ + HFDataset = _resolve_hf_datasets_type() + if HFDataset is None: + raise ImportError("Hugging Face datasets is not installed. Please install it using `pip install datasets`.") + record_dicts = GenericIO.to_list(records, flatten=True) + dataset = HFDataset.from_list(record_dicts) + return dataset + + @staticmethod + def _record_dicts_from_datasets(dataset: HFDataset) -> List[Dict[str, Union[str, float, int, list]]]: + """Creates a dictionaries from a HF dataset that can be passed to DatasetRecords.add or DatasetRecords.update. + + Parameters: + dataset (Dataset): The dataset containing the records. + + Returns: + Generator[Dict[str, Union[str, float, int, list]], None, None]: A generator of dictionaries to be passed to DatasetRecords.add or DatasetRecords.update. + """ + record_dicts = [] + for example in dataset.to_iterable_dataset(): + record_dicts.append(example) + return record_dicts diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_generic.py b/argilla-sdk/src/argilla_sdk/records/_io/_generic.py new file mode 100644 index 0000000000..eb135de8e7 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/_io/_generic.py @@ -0,0 +1,109 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from collections import defaultdict +from typing import Any, Dict, List, TYPE_CHECKING, Union + +if TYPE_CHECKING: + from argilla_sdk import Record + + +class GenericIO: + """This is a mixin class for DatasetRecords and Export classes. + It handles methods for exporting records to generic python formats.""" + + @staticmethod + def to_list(records: List["Record"], flatten: bool = False) -> List[Dict[str, Union[str, float, int, list]]]: + """Export records to a list of dictionaries with either names or record index as keys. + Args: + flatten (bool): The structure of the exported dictionary. + - True: The record fields, metadata, suggestions and responses will be flattened. + - False: The record fields, metadata, suggestions and responses will be nested. + Returns: + dataset_records (List[Dict[str, Union[str, float, int, list]]]): The exported records in a list of dictionaries format. + """ + dataset_records: list = [] + for record in records: + dataset_records.append(GenericIO._record_to_dict(record=record, flatten=flatten)) + return dataset_records + + @staticmethod + def to_dict( + records: List["Record"], flatten: bool = False, orient: str = "names" + ) -> Dict[str, Union[str, float, int, list]]: + """Export records to a dictionary with either names or record index as keys. + Args: + flatten (bool): The structure of the exported dictionary. + - True: The record fields, metadata, suggestions and responses will be flattened. + - False: The record fields, metadata, suggestions and responses will be nested. + orient (str): The orientation of the exported dictionary. + - "names": The keys of the dictionary will be the names of the fields, metadata, suggestions and responses. + - "index": The keys of the dictionary will be the id of the records. + Returns: + dataset_records (Dict[str, Union[str, float, int, list]]): The exported records in a dictionary format. + """ + if orient == "names": + dataset_records: dict = defaultdict(list) + for record in records: + for key, value in GenericIO._record_to_dict(record=record, flatten=flatten).items(): + dataset_records[key].append(value) + elif orient == "index": + dataset_records: dict = {} + for record in records: + dataset_records[record.id] = GenericIO._record_to_dict(record=record, flatten=flatten) + else: + raise ValueError(f"Invalid value for orient parameter: {orient}") + return dict(dataset_records) + + ############################ + # Private methods + ############################ + + @staticmethod + def _record_to_dict(record: "Record", flatten=False) -> Dict[str, Any]: + """Converts a Record object to a dictionary for export. + Args: + record (Record): The Record object to convert. + flatten (bool): The structure of the exported dictionary. + - True: The record fields, metadata, suggestions and responses will be flattened + so that their keys becomes the keys of the record dictionary, using + dot notation for nested keys. i.e. `label.suggestion` and `label.response` + - False: The record fields, metadata, suggestions and responses will be nested as + dictionaries within the record dictionary. i.e. `label: {suggestion: ..., response: ...}` + Returns: + A dictionary representing the record. + """ + record_dict = record.to_dict() + if flatten: + responses: dict = record_dict.pop("responses") + suggestions: dict = record_dict.pop("suggestions") + fields: dict = record_dict.pop("fields") + metadata: dict = record_dict.pop("metadata") + record_dict.update(fields) + record_dict.update(metadata) + question_names = set(suggestions.keys()).union(responses.keys()) + for question_name in question_names: + _suggestion: Union[Dict, None] = suggestions.get(question_name) + if _suggestion: + record_dict[f"{question_name}.suggestion"] = _suggestion.pop("value") + record_dict.update( + {f"{question_name}.suggestion.{key}": value for key, value in _suggestion.items()} + ) + for _response in responses.get(question_name, []): + user_id = _response.pop("user_id") + record_dict[f"{question_name}.response.{user_id}"] = _response.pop("value") + record_dict.update( + {f"{question_name}.response.{user_id}.{key}": value for key, value in _response.items()} + ) + return record_dict diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_json.py b/argilla-sdk/src/argilla_sdk/records/_io/_json.py new file mode 100644 index 0000000000..6d67627242 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/_io/_json.py @@ -0,0 +1,59 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import json +from pathlib import Path +from typing import List, Union + +from argilla_sdk.records._resource import Record +from argilla_sdk.records._io import GenericIO + + +class JsonIO: + @staticmethod + def to_json(records: List["Record"], path: Union[Path, str]) -> Path: + """ + Export the records to a file on disk. This is a convenient shortcut for dataset.records(...).to_disk(). + + Parameters: + path (str): The path to the file to save the records. + orient (str): The structure of the exported dictionary. + + Returns: + The path to the file where the records were saved. + + """ + if isinstance(path, str): + path = Path(path) + if path.exists(): + raise FileExistsError(f"File {path} already exists.") + record_dicts = GenericIO.to_list(records, flatten=False) + with open(path, "w") as f: + json.dump(record_dicts, f) + return path + + @staticmethod + def _records_from_json(path: Union[Path, str]) -> List["Record"]: + """Creates a DatasetRecords object from a disk path. + + Parameters: + path (str): The path to the file containing the records. + + Returns: + DatasetRecords: The DatasetRecords object created from the disk path. + + """ + with open(path, "r") as f: + record_dicts = json.load(f) + records = [Record.from_dict(record_dict) for record_dict in record_dicts] + return records diff --git a/argilla-sdk/src/argilla_sdk/records/_resource.py b/argilla-sdk/src/argilla_sdk/records/_resource.py new file mode 100644 index 0000000000..4074485cad --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/_resource.py @@ -0,0 +1,409 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from collections import defaultdict +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, Iterable +from uuid import UUID, uuid4 + +from argilla_sdk._models import ( + MetadataModel, + RecordModel, + UserResponseModel, + SuggestionModel, + VectorModel, + MetadataValue, +) +from argilla_sdk._resource import Resource +from argilla_sdk.responses import Response, UserResponse +from argilla_sdk.suggestions import Suggestion +from argilla_sdk.vectors import Vector + +if TYPE_CHECKING: + from argilla_sdk.datasets import Dataset + + +class Record(Resource): + """The class for interacting with Argilla Records. A `Record` is a single sample + in a dataset. Records receives feedback in the form of responses and suggestions. + Records contain fields, metadata, and vectors. + + Attributes: + id (Union[str, UUID]): The id of the record. + fields (RecordFields): The fields of the record. + metadata (RecordMetadata): The metadata of the record. + vectors (RecordVectors): The vectors of the record. + responses (RecordResponses): The responses of the record. + suggestions (RecordSuggestions): The suggestions of the record. + dataset (Dataset): The dataset to which the record belongs. + _server_id (UUID): An id for the record generated by the Argilla server. + """ + + _model: RecordModel + + def __init__( + self, + id: Optional[Union[UUID, str]] = None, + fields: Dict[str, Union[str, None]] = None, + metadata: Optional[Dict[str, MetadataValue]] = None, + vectors: Optional[List[Vector]] = None, + responses: Optional[List[Response]] = None, + suggestions: Optional[List[Suggestion]] = None, + _server_id: Optional[UUID] = None, + _dataset: Optional["Dataset"] = None, + ): + """Initializes a Record with fields, metadata, vectors, responses, suggestions, external_id, and id. + Records are typically defined as flat dictionary objects with fields, metadata, vectors, responses, and suggestions + and passed to Dataset.DatasetRecords.add() as a list of dictionaries. + + Args: + id: An id for the record. If not provided, a UUID will be generated. + fields: A dictionary of fields for the record. + metadata: A dictionary of metadata for the record. + vectors: A dictionary of vectors for the record. + responses: A list of Response objects for the record. + suggestions: A list of Suggestion objects for the record. + _server_id: An id for the record. (Read-only and set by the server) + _dataset: The dataset object to which the record belongs. + """ + self._dataset = _dataset + + self._model = RecordModel( + fields=fields, + external_id=id or uuid4(), + id=_server_id, + ) + # TODO: All this code blocks could be define as property setters + # Initialize the fields + self.__fields = RecordFields(fields=self._model.fields) + # Initialize the vectors + self.__vectors = RecordVectors(vectors=vectors, record=self) + # Initialize the metadata + self.__metadata = RecordMetadata(metadata=metadata) + self.__responses = RecordResponses(responses=responses, record=self) + self.__suggestions = RecordSuggestions(suggestions=suggestions, record=self) + + def __repr__(self) -> str: + return ( + f"Record(id={self.id},fields={self.fields},metadata={self.metadata}," + f"suggestions={self.suggestions},responses={self.responses})" + ) + + ############################ + # Properties + ############################ + + @property + def id(self) -> str: + return self._model.external_id + + @id.setter + def id(self, value: str) -> None: + self._model.external_id = value + + @property + def dataset(self) -> "Dataset": + return self._dataset + + @dataset.setter + def dataset(self, value: "Dataset") -> None: + self._dataset = value + + @property + def fields(self) -> "RecordFields": + return self.__fields + + @property + def responses(self) -> "RecordResponses": + return self.__responses + + @property + def suggestions(self) -> "RecordSuggestions": + return self.__suggestions + + @property + def metadata(self) -> "RecordMetadata": + return self.__metadata + + @property + def vectors(self) -> "RecordVectors": + return self.__vectors + + @property + def _server_id(self) -> Optional[UUID]: + return self._model.id + + ############################ + # Public methods + ############################ + + def api_model(self) -> RecordModel: + return RecordModel( + id=self._model.id, + external_id=self._model.external_id, + fields=self.fields.to_dict(), + metadata=self.metadata.models, + vectors=self.vectors.models, + responses=self.responses.api_models(), + suggestions=self.suggestions.api_models(), + ) + + def serialize(self) -> Dict[str, Any]: + """Serializes the Record to a dictionary for interaction with the API""" + serialized_model = self._model.model_dump() + serialized_suggestions = [suggestion.serialize() for suggestion in self.__suggestions] + serialized_responses = [response.serialize() for response in self.__responses] + serialized_model["responses"] = serialized_responses + serialized_model["suggestions"] = serialized_suggestions + return serialized_model + + def to_dict(self) -> Dict[str, Dict]: + """Converts a Record object to a dictionary for export. + Returns: + A dictionary representing the record where the keys are "fields", + "metadata", "suggestions", and "responses". Each field and question is + represented as a key-value pair in the dictionary of the respective key. i.e. + `{"fields": {"prompt": "...", "response": "..."}, "responses": {"rating": "..."}, + """ + fields = self.fields.to_dict() + metadata = dict(self.metadata) + suggestions = self.suggestions.to_dict() + responses = self.responses.to_dict() + vectors = self.vectors.to_dict() + return { + "id": self.id, + "fields": fields, + "metadata": metadata, + "suggestions": suggestions, + "responses": responses, + "vectors": vectors, + "_server_id": str(self._model.id) if self._model.id else None, + } + + @classmethod + def from_dict(cls, data: Dict[str, Dict], dataset: Optional["Dataset"] = None) -> "Record": + """Converts a dictionary to a Record object. + Args: + data: A dictionary representing the record. + dataset: The dataset object to which the record belongs. + Returns: + A Record object. + """ + fields = data.get("fields", {}) + metadata = data.get("metadata", {}) + suggestions = data.get("suggestions", {}) + responses = data.get("responses", {}) + vectors = data.get("vectors", {}) + record_id = data.get("id", None) + _server_id = data.get("_server_id", None) + + suggestions = [Suggestion(question_name=question_name, **value) for question_name, value in suggestions.items()] + responses = [ + Response(question_name=question_name, **value) + for question_name, _responses in responses.items() + for value in _responses + ] + vectors = [Vector(name=vector_name, values=values) for vector_name, values in vectors.items()] + + return cls( + id=record_id, + fields=fields, + suggestions=suggestions, + responses=responses, + vectors=vectors, + metadata=metadata, + _dataset=dataset, + _server_id=_server_id, + ) + + @classmethod + def from_model(cls, model: RecordModel, dataset: "Dataset") -> "Record": + """Converts a RecordModel object to a Record object. + Args: + model: A RecordModel object. + dataset: The dataset object to which the record belongs. + Returns: + A Record object. + """ + return cls( + id=model.external_id, + fields=model.fields, + metadata={meta.name: meta.value for meta in model.metadata}, + vectors=[Vector.from_model(model=vector) for vector in model.vectors], + # Responses and their models are not aligned 1-1. + responses=[ + response + for response_model in model.responses + for response in UserResponse.from_model(response_model, dataset=dataset) + ], + suggestions=[Suggestion.from_model(model=suggestion, dataset=dataset) for suggestion in model.suggestions], + _dataset=dataset, + _server_id=model.id, + ) + + +class RecordFields: + """This is a container class for the fields of a Record. + It allows for accessing fields by attribute and iterating over them. + """ + + def __init__(self, fields: Dict[str, Union[str, None]]) -> None: + self.__fields = fields or {} + for key, value in self.__fields.items(): + setattr(self, key, value) + + def __getitem__(self, key: str) -> Optional[str]: + return self.__fields.get(key) + + def __iter__(self): + return iter(self.__fields) + + def to_dict(self) -> Dict[str, Union[str, None]]: + return self.__fields + + def __repr__(self) -> str: + return self.to_dict().__repr__() + + +class RecordResponses(Iterable[Response]): + """This is a container class for the responses of a Record. + It allows for accessing responses by attribute and iterating over them. + A record can have multiple responses per question so we set the response + in a list default dictionary with the question name as the key. + """ + + def __init__(self, responses: List[Response], record: Record) -> None: + self.record = record + self.__responses_by_question_name = defaultdict(list) + + self.__responses = responses or [] + for response in self.__responses: + response.record = self.record + self.__responses_by_question_name[response.question_name].append(response) + + def api_models(self) -> List[UserResponseModel]: + """Returns a list of ResponseModel objects.""" + + responses_by_user_id = defaultdict(list) + for response in self.__responses: + responses_by_user_id[response.user_id].append(response) + + return [ + UserResponse(user_id=user_id, answers=responses, _record=self.record).api_model() + for user_id, responses in responses_by_user_id.items() + ] + + def __iter__(self): + return iter(self.__responses) + + def __getitem__(self, index: int): + return self.__responses[index] + + def __getattr__(self, name) -> List[Response]: + return self.__responses_by_question_name[name] + + def to_dict(self) -> Dict[str, List[Dict]]: + """Converts the responses to a dictionary. + Returns: + A dictionary of responses. + """ + response_dict = defaultdict(list) + for response in self.__responses: + response_dict[response.question_name].append({"value": response.value, "user_id": response.user_id}) + return response_dict + + def __repr__(self) -> str: + return {k: [{"value": v["value"]} for v in values] for k, values in self.to_dict().items()}.__repr__() + + +class RecordSuggestions(Iterable[Suggestion]): + """This is a container class for the suggestions of a Record. + It allows for accessing suggestions by attribute and iterating over them. + """ + + def __init__(self, suggestions: List[Suggestion], record: Record) -> None: + self.record = record + + self.__suggestions = suggestions or [] + for suggestion in self.__suggestions: + suggestion.record = self.record + setattr(self, suggestion.question_name, suggestion) + + def api_models(self) -> List[SuggestionModel]: + return [suggestion.api_model() for suggestion in self.__suggestions] + + def __iter__(self): + return iter(self.__suggestions) + + def __getitem__(self, index: int): + return self.__suggestions[index] + + def to_dict(self) -> Dict[str, List[str]]: + """Converts the suggestions to a dictionary. + Returns: + A dictionary of suggestions. + """ + suggestion_dict: dict = {} + for suggestion in self.__suggestions: + suggestion_dict[suggestion.question_name] = { + "value": suggestion.value, + "score": suggestion.score, + "agent": suggestion.agent, + } + return suggestion_dict + + def __repr__(self) -> str: + return self.to_dict().__repr__() + + +class RecordVectors: + """This is a container class for the vectors of a Record. + It allows for accessing suggestions by attribute and iterating over them. + """ + + def __init__(self, vectors: List[Vector], record: Record) -> None: + self.__vectors = vectors or [] + self.record = record + for vector in self.__vectors: + setattr(self, vector.name, vector.values) + + def __repr__(self) -> str: + return {vector.name: f"{len(vector.values)}" for vector in self.__vectors}.__repr__() + + @property + def models(self) -> List[VectorModel]: + return [vector.api_model() for vector in self.__vectors] + + def to_dict(self) -> Dict[str, List[float]]: + """Converts the vectors to a dictionary. + Returns: + A dictionary of vectors. + """ + return {vector.name: list(map(float, vector.values)) for vector in self.__vectors} + + +class RecordMetadata(dict): + """This is a container class for the metadata of a Record.""" + + def __init__(self, metadata: Optional[Dict[str, MetadataValue]] = None) -> None: + super().__init__(metadata or {}) + + def __getattr__(self, item: str): + return self[item] + + def __setattr__(self, key: str, value: MetadataValue): + self[key] = value + + @property + def models(self) -> List[MetadataModel]: + return [MetadataModel(name=key, value=value) for key, value in self.items()] diff --git a/argilla-sdk/src/argilla_sdk/records/_search.py b/argilla-sdk/src/argilla_sdk/records/_search.py new file mode 100644 index 0000000000..bbcb341b47 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/records/_search.py @@ -0,0 +1,129 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional, List, Any, Union, Tuple + +from argilla_sdk._models import SearchQueryModel +from argilla_sdk._models._search import ( + TextQueryModel, + ResponseFilterScopeModel, + SuggestionFilterScopeModel, + MetadataFilterScopeModel, + ScopeModel, + RangeFilterModel, + TermsFilterModel, + FilterModel, + AndFilterModel, + QueryModel, +) + + +class Condition(Tuple[str, str, Any]): + """This class is used to map user conditions to the internal filter models""" + + @property + def model(self) -> FilterModel: + field, operator, value = self + + field = field.strip() + scope = self._extract_filter_scope(field) + + operator = operator.strip() + if operator == "==": + return TermsFilterModel(values=[value], scope=scope) + elif operator == "in": + return TermsFilterModel(values=value, scope=scope) + elif operator in [">="]: + return RangeFilterModel(ge=value, scope=scope) + elif operator == "<=": + return RangeFilterModel(le=value, scope=scope) + else: + raise ValueError(f"Unknown operator: {operator}") + + @staticmethod + def _extract_filter_scope(field: str) -> ScopeModel: + field = field.strip() + + if field == "status": + return ResponseFilterScopeModel(property="status") + elif "metadata" in field: + _, md_property = field.split(".") + return MetadataFilterScopeModel(metadata_property=md_property) + elif "suggestion" in field: + question, _ = field.split(".") + return SuggestionFilterScopeModel(question=question) + elif "score" in field: + question, _ = field.split(".") + return SuggestionFilterScopeModel(question=question, property="score") + elif "response" in field: + question, _ = field.split(".") + return ResponseFilterScopeModel(question=question) + else: # Question field -> Suggestion + return SuggestionFilterScopeModel(question=field) + + +class Filter: + """This class is used to map user filters to the internal filter models""" + + def __init__(self, conditions: Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None] = None): + """ Create a filter object for use in Argilla search requests. + + Parameters: + conditions (Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None], optional): \ + The conditions that will be used to filter the search results. \ + The conditions should be a list of tuples where each tuple contains \ + the field, operator, and value. For example `("label", "in", ["positive","happy"])`.\ + + """ + + if isinstance(conditions, tuple): + conditions = [conditions] + self.conditions = [Condition(condition) for condition in conditions] + + @property + def model(self) -> AndFilterModel: + return AndFilterModel.parse_obj({"and": [condition.model for condition in self.conditions]}) + + +class Query: + """This class is used to map user queries to the internal query models""" + + query: Optional[str] = None + + def __init__(self, *, query: Union[str, None] = None, filter: Union[Filter, None] = None): + """Create a query object for use in Argilla search requests.add() + + Parameters: + query (Union[str, None], optional): The query string that will be used to search. + filter (Union[Filter, None], optional): The filter object that will be used to filter the search results. + """ + + self.query = query + self.filter = filter + + @property + def model(self) -> SearchQueryModel: + model = SearchQueryModel() + + if self.query is not None: + text_query = TextQueryModel(q=self.query) + model.query = QueryModel(text=text_query) + + if self.filter is not None: + model.filters = self.filter.model + + return model + + +__all__ = ["Query", "Filter", "Condition"] diff --git a/argilla-sdk/src/argilla_sdk/responses.py b/argilla-sdk/src/argilla_sdk/responses.py new file mode 100644 index 0000000000..1f02fbbc26 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/responses.py @@ -0,0 +1,193 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any, TYPE_CHECKING, List, Dict, Optional, Iterable +from uuid import UUID + +from argilla_sdk._models import UserResponseModel, ResponseStatus +from argilla_sdk._resource import Resource +from argilla_sdk.settings import RankingQuestion + +if TYPE_CHECKING: + from argilla_sdk import Argilla, Dataset, Record + +__all__ = ["Response", "UserResponse"] + + +class Response: + """Class for interacting with Argilla Responses of records. Responses are answers to questions by a user. + Therefore, a recod question can have multiple responses, one for each user that has answered the question. + A `Response` is typically created by a user in the UI or consumed from a data source as a label, + unlike a `Suggestion` which is typically created by a model prediction. + + """ + + def __init__( + self, + question_name: str, + value: Any, + user_id: UUID, + _record: Optional["Record"] = None, + ) -> None: + """Initializes a `Response` for a `Record` with a user_id and value""" + + if question_name is None: + raise ValueError("question_name is required") + if value is None: + raise ValueError("value is required") + if user_id is None: + raise ValueError("user_id is required") + + self.record = _record + self.question_name = question_name + self.value = value + self.user_id = user_id + + def serialize(self) -> dict[str, Any]: + """Serializes the Response to a dictionary. This is principally used for sending the response to the API, \ + but can be used for data wrangling or manual export. + + Returns: + dict[str, Any]: The serialized response as a dictionary with keys `question_name`, `value`, and `user_id`. + + Examples: + + ```python + response = rg.Response("label", "negative", user_id=user.id) + response.serialize() + ``` + """ + return { + "question_name": self.question_name, + "value": self.value, + "user_id": self.user_id, + } + + ##################### + # Private Interface # + ##################### + + +class UserResponse(Resource): + """ + Class for interacting with Argilla User Responses of records. The UserResponse class is a collection + of responses to questions for a given user. UserResponses are typically created by a user in the UI and + are defined by ingesting a list of responses from a third-party data source. + + In most cases users will interact with the `UserResponse` class through the `Record` class when + collected from the server or when creating new records. + + Attributes: + status (ResponseStatus): The status of the UserResponse (draft, submitted, etc.) + user_id (UUID): The user_id of the UserResponse (the user who answered the questions) + answers (List[Response]): A list of responses to questions for the user + + """ + + _model: UserResponseModel + + def __init__( + self, + user_id: UUID, + answers: List[Response], + status: ResponseStatus = "draft", + client: Optional["Argilla"] = None, + _record: Optional["Record"] = None, + ) -> None: + """Initializes a UserResponse with a user and a set of question answers""" + + super().__init__(client=client) + + self._record = _record + self._model = UserResponseModel( + values=self.__responses_as_model_values(answers), + status=status, + user_id=user_id, + ) + + def __iter__(self) -> Iterable[Response]: + return iter(self.answers) + + @property + def status(self) -> ResponseStatus: + """Returns the status of the UserResponse""" + return self._model.status + + @status.setter + def status(self, status: ResponseStatus) -> None: + """Sets the status of the UserResponse""" + self._model.status = status + + @property + def user_id(self) -> UUID: + """Returns the user_id of the UserResponse""" + return self._model.user_id + + @user_id.setter + def user_id(self, user_id: UUID) -> None: + """Sets the user_id of the UserResponse""" + self._model.user_id = user_id + + @property + def answers(self) -> List[Response]: + """Returns the list of responses""" + return self.__model_as_response_list(self._model) + + @classmethod + def from_model(cls, model: UserResponseModel, dataset: "Dataset") -> "UserResponse": + """Creates a UserResponse from a ResponseModel""" + answers = cls.__model_as_response_list(model) + + for answer in answers: + question = dataset.settings.question_by_name(answer.question_name) + if isinstance(question, RankingQuestion): + answer.value = cls.__ranking_from_model_value(answer.value) # type: ignore + + return cls(user_id=model.user_id, answers=answers, status=model.status) + + def api_model(self): + """Returns the model that is used to interact with the API""" + + values = self.__responses_as_model_values(self.answers) + for question_name, value in values.items(): + question = self._record.dataset.settings.question_by_name(question_name) + if isinstance(question, RankingQuestion): + value["value"] = self.__ranking_to_model_value(value["value"]) + + return UserResponseModel(values=values, status=self._model.status, user_id=self._model.user_id) + + def to_dict(self) -> Dict[str, Any]: + """Returns the UserResponse as a dictionary""" + return self._model.dict() + + @staticmethod + def __responses_as_model_values(answers: List[Response]) -> Dict[str, Dict[str, Any]]: + """Creates a dictionary of response values from a list of Responses""" + return {answer.question_name: {"value": answer.value} for answer in answers} + + @staticmethod + def __model_as_response_list(model: UserResponseModel) -> List[Response]: + """Creates a list of Responses from a UserResponseModel""" + return [ + Response(question_name=question_name, value=value["value"], user_id=model.user_id) + for question_name, value in model.values.items() + ] + + @classmethod + def __ranking_from_model_value(cls, value: List[Dict[str, Any]]) -> List[str]: + return [v["value"] for v in value] + + @classmethod + def __ranking_to_model_value(cls, value: List[str]) -> List[Dict[str, str]]: + return [{"value": v} for v in value] diff --git a/argilla-sdk/src/argilla_sdk/settings/__init__.py b/argilla-sdk/src/argilla_sdk/settings/__init__.py new file mode 100644 index 0000000000..122130d4ed --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/settings/__init__.py @@ -0,0 +1,18 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk.settings._field import * # noqa: F403 +from argilla_sdk.settings._metadata import * # noqa: F403 +from argilla_sdk.settings._question import * # noqa: F403 +from argilla_sdk.settings._resource import * # noqa: F403 diff --git a/argilla-sdk/src/argilla_sdk/settings/_common.py b/argilla-sdk/src/argilla_sdk/settings/_common.py new file mode 100644 index 0000000000..24ee4a63ca --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/settings/_common.py @@ -0,0 +1,89 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any, Optional, Union, List, Dict + +from argilla_sdk._models import FieldBaseModel, QuestionBaseModel +from argilla_sdk._resource import Resource + +__all__ = ["SettingsPropertyBase"] + + +class SettingsPropertyBase(Resource): + """Base class for dataset fields or questions in Settings class""" + + _model: Union[FieldBaseModel, QuestionBaseModel] + + def __repr__(self) -> str: + return ( + f"{self.__class__.__name__}(name={self.name}, title={self.title}, description={self.description}, " + f"type={self.type}, required={self.required}) \n" + ) + + @property + def name(self) -> str: + return self._model.name + + @property + def title(self) -> Optional[str]: + return self._model.title + + @property + def required(self) -> bool: + return self._model.required + + @property + def description(self) -> Optional[str]: + return self._model.description + + @property + def type(self) -> str: + return self._model.settings.type + + def serialize(self) -> dict[str, Any]: + serialized_model = super().serialize() + serialized_model["type"] = self.type + return serialized_model + + ############################## + # Private methods + ############################## + + @staticmethod + def _render_values_as_options(values: Union[List[str], List[int], Dict[str, str]]) -> List[Dict[str, str]]: + """Render values as options for the question so that the model conforms to the API schema""" + if isinstance(values, dict): + return [{"text": value, "value": key} for key, value in values.items()] + elif isinstance(values, list) and all(isinstance(value, str) for value in values): + return [{"text": label, "value": label} for label in values] + elif isinstance(values, list) and all(isinstance(value, int) for value in values): + return [{"value": value} for value in values] + else: + raise ValueError("Invalid labels format. Please provide a list of strings or a list of dictionaries.") + + @staticmethod + def _render_options_as_values(options: List[dict]) -> Dict[str, str]: + """Render options as values for the question so that the model conforms to the API schema""" + values = {} + for option in options: + if "text" in option: + values[option["value"]] = option["text"] + else: + values[option["value"]] = option["value"] + return values + + @staticmethod + def _render_options_as_labels(options: List[Dict[str, str]]) -> List[str]: + """Render values as labels for the question so that they can be returned as a list of strings""" + return list(SettingsPropertyBase._render_options_as_values(options=options).keys()) diff --git a/argilla-sdk/src/argilla_sdk/settings/_field.py b/argilla-sdk/src/argilla_sdk/settings/_field.py new file mode 100644 index 0000000000..14483eb84e --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/settings/_field.py @@ -0,0 +1,159 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional, Union + +from argilla_sdk._models import FieldSettings, MetadataFieldModel, TextFieldModel, VectorFieldModel +from argilla_sdk.settings._common import SettingsPropertyBase +from argilla_sdk.settings._metadata import MetadataField, MetadataType + +__all__ = ["TextField", "FieldType", "VectorField"] + + +class TextField(SettingsPropertyBase): + """Text field for use in Argilla `Dataset` `Settings`""" + + _model: TextFieldModel + + def __init__( + self, + name: str, + title: Optional[str] = None, + use_markdown: Optional[bool] = False, + required: Optional[bool] = True, + description: Optional[str] = None, + ) -> None: + """Text field for use in Argilla `Dataset` `Settings` + Parameters: + name (str): The name of the field + title (Optional[str], optional): The title of the field. Defaults to None. + use_markdown (Optional[bool], optional): Whether to use markdown. Defaults to False. + required (Optional[bool], optional): Whether the field is required. Defaults to True. + description (Optional[str], optional): The description of the field. Defaults to None. + + """ + self._model = TextFieldModel( + name=name, + title=title, + required=required or True, + description=description, + settings=FieldSettings(type="text", use_markdown=use_markdown), + ) + + @property + def use_markdown(self) -> Optional[bool]: + return self._model.settings.use_markdown + + @classmethod + def from_model(cls, model: TextFieldModel) -> "TextField": + instance = cls(name=model.name) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "TextField": + model = TextFieldModel(**data) + return cls.from_model(model=model) + + +class VectorField(SettingsPropertyBase): + """Vector field for use in Argilla `Dataset` `Settings`""" + + _model: VectorFieldModel + + def __init__( + self, + name: str, + dimensions: int, + title: Optional[str] = None, + ) -> None: + """Vector field for use in Argilla `Dataset` `Settings` + + Parameters: + name (str): The name of the field + dimensions (int): The number of dimensions in the vector + title (Optional[str], optional): The title of the field. Defaults to None. + """ + self._model = VectorFieldModel( + name=name, + title=title, + dimensions=dimensions, + ) + + @classmethod + def from_model(cls, model: VectorFieldModel) -> "VectorField": + instance = cls(name=model.name, dimensions=model.dimensions) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "VectorField": + model = VectorFieldModel(**data) + return cls.from_model(model=model) + + @property + def dimensions(self) -> int: + return self._model.dimensions + + @property + def title(self) -> Optional[str]: + return self._model.title + + @property + def name(self) -> str: + return self._model.name + + @property + def description(self) -> Optional[str]: + # TODO: Setting resources should be aligned at the API level + return None + + @property + def required(self) -> bool: + # TODO: Setting resources should be aligned at the API level + return False + + @property + def type(self) -> str: + # TODO: Setting resources should be aligned at the API level + return "vector" + + +FieldType = Union[TextField, VectorField, MetadataType] + + +def field_from_model(model: Union[TextFieldModel, VectorFieldModel, MetadataFieldModel]) -> FieldType: + """Create a field instance from a field model""" + if isinstance(model, TextFieldModel): + return TextField.from_model(model) + elif isinstance(model, VectorFieldModel): + return VectorField.from_model(model) + elif isinstance(model, MetadataFieldModel): + return MetadataField.from_model(model) + else: + raise ValueError(f"Unsupported field model type: {type(model)}") + + +def field_from_dict(data: dict) -> FieldType: + """Create a field instance from a field dictionary""" + if data["type"] == "text": + return TextField.from_dict(data) + elif data["type"] == "vector": + return VectorField.from_dict(data) + elif data["type"] == "metadata": + return MetadataField.from_dict(data) + else: + raise ValueError(f"Unsupported field type: {data['type']}") diff --git a/argilla-sdk/src/argilla_sdk/settings/_metadata.py b/argilla-sdk/src/argilla_sdk/settings/_metadata.py new file mode 100644 index 0000000000..d69eebee30 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/settings/_metadata.py @@ -0,0 +1,238 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional, Union, List + +from argilla_sdk._exceptions import MetadataError +from argilla_sdk._models import ( + MetadataPropertyType, + TermsMetadataPropertySettings, + FloatMetadataPropertySettings, + IntegerMetadataPropertySettings, + MetadataFieldModel, +) +from argilla_sdk.settings._common import SettingsPropertyBase + + +__all__ = [ + "TermsMetadataProperty", + "FloatMetadataProperty", + "IntegerMetadataProperty", + "MetadataType", +] + + +class MetadataPropertyBase(SettingsPropertyBase): + _model: MetadataFieldModel + + @property + def required(self) -> bool: + # This attribute is not present in the MetadataFieldModel + return False + + @property + def description(self) -> Optional[str]: + # This attribute is not present in the MetadataFieldModel + return None + + @property + def visible_for_annotators(self) -> Optional[bool]: + return self._model.visible_for_annotators + + @visible_for_annotators.setter + def visible_for_annotators(self, value: Optional[bool]) -> None: + self._model.visible_for_annotators = value + + +class TermsMetadataProperty(MetadataPropertyBase): + def __init__( + self, + name: str, + options: Optional[List[str]] = None, + title: Optional[str] = None, + visible_for_annotators: Optional[bool] = True, + ) -> None: + """Create a metadata field with terms settings. + + Parameters: + name (str): The name of the metadata field + options (Optional[List[str]]): The list of options + title (Optional[str]): The title of the metadata field + visible_for_annotators (Optional[bool]): Whether the metadata field is visible for annotators + Raises: + MetadataError: If an error occurs while defining metadata settings + """ + super().__init__() + + try: + settings = TermsMetadataPropertySettings(values=options, type=MetadataPropertyType.terms) + except ValueError as e: + raise MetadataError(f"Error defining metadata settings for {name}") from e + + self._model = MetadataFieldModel( + name=name, + type=MetadataPropertyType.terms, + title=title, + settings=settings, + visible_for_annotators=visible_for_annotators, + ) + + @property + def options(self) -> Optional[List[str]]: + return self._model.settings.values + + @options.setter + def options(self, value: list[str]) -> None: + self._model.settings.values = value + + @classmethod + def from_model(cls, model: MetadataFieldModel) -> "TermsMetadataProperty": + instance = TermsMetadataProperty(name=model.name) + instance._model = model + + return instance + + +class FloatMetadataProperty(MetadataPropertyBase): + def __init__( + self, name: str, min: Optional[float] = None, max: Optional[float] = None, title: Optional[str] = None + ) -> None: + """Create a metadata field with float settings. + + Parameters: + name (str): The name of the metadata field + min (Optional[float]): The minimum value + max (Optional[float]): The maximum value + title (Optional[str]): The title of the metadata field + Raises: + MetadataError: If an error occurs while defining metadata settings + + + """ + try: + settings = FloatMetadataPropertySettings(min=min, max=max, type=MetadataPropertyType.float) + except ValueError as e: + raise MetadataError(f"Error defining metadata settings for {name}") from e + + self._model = MetadataFieldModel( + name=name, + type=MetadataPropertyType.float, + title=title, + settings=settings, + ) + + @property + def min(self) -> Optional[int]: + return self._model.settings.min + + @min.setter + def min(self, value: Optional[int]) -> None: + self._model.settings.min = value + + @property + def max(self) -> Optional[int]: + return self._model.settings.max + + @max.setter + def max(self, value: Optional[int]) -> None: + self._model.settings.max = value + + @classmethod + def from_model(cls, model: MetadataFieldModel) -> "FloatMetadataProperty": + instance = FloatMetadataProperty(name=model.name) + instance._model = model + + return instance + + +class IntegerMetadataProperty(MetadataPropertyBase): + def __init__( + self, name: str, min: Optional[int] = None, max: Optional[int] = None, title: Optional[str] = None + ) -> None: + """Create a metadata field with integer settings. + + Parameters: + name (str): The name of the metadata field + min (Optional[int]): The minimum value + max (Optional[int]): The maximum value + title (Optional[str]): The title of the metadata field + Raises: + MetadataError: If an error occurs while defining metadata settings + """ + + try: + settings = IntegerMetadataPropertySettings(min=min, max=max, type=MetadataPropertyType.integer) + except ValueError as e: + raise MetadataError(f"Error defining metadata settings for {name}") from e + + self._model = MetadataFieldModel( + name=name, + type=MetadataPropertyType.integer, + title=title, + settings=settings, + ) + + @property + def min(self) -> Optional[int]: + return self._model.settings.min + + @min.setter + def min(self, value: Optional[int]) -> None: + self._model.settings.min = value + + @property + def max(self) -> Optional[int]: + return self._model.settings.max + + @max.setter + def max(self, value: Optional[int]) -> None: + self._model.settings.max = value + + @classmethod + def from_model(cls, model: MetadataFieldModel) -> "IntegerMetadataProperty": + instance = IntegerMetadataProperty(name=model.name) + instance._model = model + + return instance + + +MetadataType = Union[TermsMetadataProperty, FloatMetadataProperty, IntegerMetadataProperty] + + +class MetadataField: + @classmethod + def from_model(cls, model: MetadataFieldModel) -> MetadataType: + switch = { + MetadataPropertyType.terms: TermsMetadataProperty, + MetadataPropertyType.float: FloatMetadataProperty, + MetadataPropertyType.integer: IntegerMetadataProperty, + } + metadata_type = model.type + try: + return switch[metadata_type].from_model(model) + except KeyError as e: + raise MetadataError(f"Unknown metadata property type: {metadata_type}") from e + + @classmethod + def from_dict(cls, data: dict) -> MetadataType: + switch = { + MetadataPropertyType.terms: TermsMetadataProperty, + MetadataPropertyType.float: FloatMetadataProperty, + MetadataPropertyType.integer: IntegerMetadataProperty, + } + metadata_type = data["type"] + try: + return switch[metadata_type](**data) + except KeyError as e: + raise MetadataError(f"Unknown metadata property type: {metadata_type}") from e diff --git a/argilla-sdk/src/argilla_sdk/settings/_question.py b/argilla-sdk/src/argilla_sdk/settings/_question.py new file mode 100644 index 0000000000..0b330ac44e --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/settings/_question.py @@ -0,0 +1,445 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, Optional, Union + +from argilla_sdk._models._settings._questions import ( + LabelQuestionModel, + LabelQuestionSettings, + MultiLabelQuestionModel, + RankingQuestionModel, + TextQuestionModel, + TextQuestionSettings, + RatingQuestionModel, + QuestionModel, + SpanQuestionSettings, + SpanQuestionModel, + RatingQuestionSettings, + MultiLabelQuestionSettings, + RankingQuestionSettings, +) +from argilla_sdk.settings._common import SettingsPropertyBase + +__all__ = [ + "LabelQuestion", + "MultiLabelQuestion", + "RankingQuestion", + "TextQuestion", + "RatingQuestion", + "SpanQuestion", + "QuestionType", +] + + +class LabelQuestion(SettingsPropertyBase): + _model: LabelQuestionModel + + def __init__( + self, + name: str, + labels: List[str], + title: Optional[str] = None, + description: Optional[str] = None, + required: bool = True, + visible_labels: Optional[int] = None, + ) -> None: + """ Define a new label question for `Settings` of a `Dataset`. A label \ + question is a question where the user can select one label from \ + a list of available labels. + + Parameters: + name: str: The name of the question to be used as a reference. + labels: List[str]: The list of available labels for the question. + title: Optional[str]: The title of the question to be shown in the UI. + description: Optional[str]: The description of the question to be shown in the UI. + required: bool: If the question is required for a record to be valid. + visible_labels: Optional[int]: The number of visible labels for the question. + """ + self._model = LabelQuestionModel( + name=name, + title=title, + description=description, + required=required, + settings=LabelQuestionSettings( + options=self._render_values_as_options(labels), visible_options=visible_labels + ), + ) + + @classmethod + def from_model(cls, model: LabelQuestionModel) -> "LabelQuestion": + instance = cls(name=model.name, labels=cls._render_options_as_values(model.settings.options)) + instance._model = model + return instance + + @classmethod + def from_dict(cls, data: dict) -> "LabelQuestion": + model = LabelQuestionModel(**data) + return cls.from_model(model=model) + + ############################## + # Public properties + ############################## + + @property + def labels(self) -> List[str]: + return self._render_options_as_labels(self._model.settings.options) + + @labels.setter + def labels(self, labels: List[str]) -> None: + self._model.settings.options = self._render_values_as_options(labels) + + @property + def visible_labels(self) -> Optional[int]: + return self._model.settings.visible_options + + @visible_labels.setter + def visible_labels(self, visible_labels: Optional[int]) -> None: + self._model.settings.visible_options = visible_labels + + ############################## + # Private methods + ############################## + + +class MultiLabelQuestion(LabelQuestion): + _model: MultiLabelQuestionModel + + def __init__( + self, + name: str, + labels: List[str], + visible_labels: Optional[int] = None, + labels_order: str = "natural", + title: Optional[str] = None, + description: Optional[str] = None, + required: bool = True, + ) -> None: + """Create a new multilabel question for `Settings` of a `Dataset`. A \ + multilabel question is a question where the user can select multiple \ + labels from a list of available labels. + + Parameters: + name: str: The name of the question to be used as a reference. + labels: List[str]: The list of available labels for the question. + title: Optional[str]: The title of the question to be shown in the UI. + description: Optional[str]: The description of the question to be shown in the UI. + required: bool: If the question is required for a record to be valid. + visible_labels: Optional[int]: The number of visible labels for the question. + labels_order: str: The order of the labels in the UI. Can be either "natural" or "suggestion". Default is "natural". + """ + self._model = MultiLabelQuestionModel( + name=name, + title=title, + description=description, + required=required, + settings=MultiLabelQuestionSettings( + options=self._render_values_as_options(labels), + visible_options=visible_labels, + options_order=labels_order, + ), + ) + + @classmethod + def from_model(cls, model: MultiLabelQuestionModel) -> "MultiLabelQuestion": + instance = cls( + name=model.name, + labels=cls._render_options_as_values(model.settings.options), + labels_order=model.settings.options_order, + ) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "MultiLabelQuestion": + model = MultiLabelQuestionModel(**data) + return cls.from_model(model=model) + + +class TextQuestion(SettingsPropertyBase): + _model: TextQuestionModel + + def __init__( + self, + name: str, + title: Optional[str] = None, + description: Optional[str] = None, + required: bool = True, + use_markdown: bool = False, + ) -> None: + """Create a new text question for `Settings` of a `Dataset`. A text question \ + is a question where the user can input text. + + Parameters: + name: str: The name of the question to be used as a reference. + title: Optional[str]: The title of the question to be shown in the UI. + description: Optional[str]: The description of the question to be shown in the UI. + required: bool: If the question is required for a record to be valid. + use_markdown: bool: If the question should use markdown for the description. + """ + self._model = TextQuestionModel( + name=name, + title=title, + description=description, + required=required, + settings=TextQuestionSettings(use_markdown=use_markdown), + ) + + @classmethod + def from_model(cls, model: TextQuestionModel) -> "TextQuestion": + instance = cls(name=model.name) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "TextQuestion": + model = TextQuestionModel(**data) + return cls.from_model(model=model) + + @property + def use_markdown(self) -> bool: + return self._model.settings.use_markdown + + @use_markdown.setter + def use_markdown(self, use_markdown: bool) -> None: + self._model.settings.use_markdown = use_markdown + + +class RatingQuestion(SettingsPropertyBase): + _model: RatingQuestionModel + + def __init__( + self, + name: str, + values: List[int], + title: Optional[str] = None, + description: Optional[str] = None, + required: bool = True, + ) -> None: + """Create a new rating question for `Settings` of a `Dataset`. A rating question \ + is a question where the user can select a value from a sequential list of options. + + Parameters: + name: str: The name of the question to be used as a reference. + values: List[int]: The list of available values for the question. + title: Optional[str]: The title of the question to be shown in the UI. + description: Optional[str]: The description of the question to be shown in the UI. + required: bool: If the question is required for a record to be valid. + """ + self._model = RatingQuestionModel( + name=name, + title=title, + description=description, + required=required, + values=values, + settings=RatingQuestionSettings(options=self._render_values_as_options(values)), + ) + + @classmethod + def from_model(cls, model: RatingQuestionModel) -> "RatingQuestion": + instance = cls(name=model.name, values=cls._render_options_as_values(model.settings.options)) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "RatingQuestion": + model = RatingQuestionModel(**data) + return cls.from_model(model=model) + + @property + def values(self) -> List[int]: + return self._render_options_as_labels(self._model.settings.options) + + @values.setter + def values(self, values: List[int]) -> None: + self._model.values = self._render_values_as_options(values) + + +class RankingQuestion(SettingsPropertyBase): + _model: RankingQuestionModel + + def __init__( + self, + name: str, + values: List[str], + title: Optional[str] = None, + description: Optional[str] = None, + required: bool = True, + ) -> None: + """Create a new ranking question for `Settings` of a `Dataset`. A ranking question \ + is a question where the user can rank a list of options. + + Parameters: + name: str: The name of the question to be used as a reference. + values: List[str]: The list of available values for the question. + title: Optional[str]: The title of the question to be shown in the UI. + description: Optional[str]: The description of the question to be shown in the UI. + required: bool: If the question is required for a record to be valid. + """ + self._model = RankingQuestionModel( + name=name, + title=title, + description=description, + required=required, + settings=RankingQuestionSettings(options=self._render_values_as_options(values)), + ) + + @classmethod + def from_model(cls, model: RankingQuestionModel) -> "RankingQuestion": + instance = cls(name=model.name, values=cls._render_options_as_values(model.settings.options)) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "RankingQuestion": + model = RankingQuestionModel(**data) + return cls.from_model(model=model) + + @property + def values(self) -> List[str]: + return self._render_options_as_labels(self._model.settings.options) + + @values.setter + def values(self, values: List[int]) -> None: + self._model.settings.options = self._render_values_as_options(values) + + +class SpanQuestion(SettingsPropertyBase): + _model: SpanQuestionModel + + def __init__( + self, + name: str, + field: str, + labels: List[str], + allow_overlapping: bool = False, + visible_labels: Optional[int] = None, + title: Optional[str] = None, + description: Optional[str] = None, + required: bool = True, + ): + """ Create a new span question for `Settings` of a `Dataset`. A span question \ + is a question where the user can select a section of text within a text field \ + and assign it a label. + + Parameters: + name: str: The name of the question to be used as a reference. + field: str: The name of the text field to apply the span question to. + labels: List[str]: The list of available labels for the question. + allow_overlapping: bool: If the user can select overlapping spans. + visible_labels: Optional[int]: The number of labels to show at once. + title: Optional[str]: The title of the question to be shown in the UI. + description: Optional[str]: The description of the question to be shown in the UI. + required: bool: If the question is required for a record to be valid. + """ + self._model = SpanQuestionModel( + name=name, + title=title, + description=description, + required=required, + settings=SpanQuestionSettings( + field=field, + allow_overlapping=allow_overlapping, + visible_options=visible_labels, + options=self._render_values_as_options(labels), + ), + ) + + @property + def name(self): + return self._model.name + + @property + def field(self): + return self._model.settings.field + + @field.setter + def field(self, field: str): + self._model.settings.field = field + + @property + def allow_overlapping(self): + return self._model.settings.allow_overlapping + + @allow_overlapping.setter + def allow_overlapping(self, allow_overlapping: bool): + self._model.settings.allow_overlapping = allow_overlapping + + @property + def visible_labels(self) -> Optional[int]: + return self._model.settings.visible_options + + @visible_labels.setter + def visible_labels(self, visible_labels: Optional[int]) -> None: + self._model.settings.visible_options = visible_labels + + @property + def labels(self) -> List[str]: + return self._render_options_as_labels(self._model.settings.options) + + @labels.setter + def labels(self, labels: List[str]) -> None: + self._model.settings.options = self._render_values_as_options(labels) + + @classmethod + def from_model(cls, model: SpanQuestionModel) -> "SpanQuestion": + instance = cls( + name=model.name, + field=model.settings.field, + labels=cls._render_options_as_values(model.settings.options), + ) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "SpanQuestion": + model = SpanQuestionModel(**data) + return cls.from_model(model=model) + + +QuestionType = Union[ + LabelQuestion, + MultiLabelQuestion, + RankingQuestion, + TextQuestion, + RatingQuestion, + SpanQuestion, +] + +_TYPE_TO_CLASS = { + "label_selection": LabelQuestion, + "multi_label_selection": MultiLabelQuestion, + "ranking": RankingQuestion, + "text": TextQuestion, + "rating": RatingQuestion, + "span": SpanQuestion, +} + + +def question_from_model(model: QuestionModel) -> QuestionType: + try: + return _TYPE_TO_CLASS[model.settings.type].from_model(model) + except KeyError: + raise ValueError(f"Unsupported question model type: {model.settings.type}") + + +def question_from_dict(data: dict) -> QuestionType: + try: + return _TYPE_TO_CLASS[data["settings"]["type"]].from_dict(data) + except KeyError: + raise ValueError(f"Unsupported question model type: {data['settings']['type']}") diff --git a/argilla-sdk/src/argilla_sdk/settings/_resource.py b/argilla-sdk/src/argilla_sdk/settings/_resource.py new file mode 100644 index 0000000000..1c3068d1db --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/settings/_resource.py @@ -0,0 +1,401 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import os +from functools import cached_property +from pathlib import Path +from typing import List, Optional, TYPE_CHECKING, Dict, Union +from uuid import UUID + +from argilla_sdk._exceptions import SettingsError, ArgillaAPIError, ArgillaSerializeError +from argilla_sdk._models import TextFieldModel, TextQuestionModel, DatasetModel +from argilla_sdk._resource import Resource +from argilla_sdk.settings._field import FieldType, VectorField, field_from_model, field_from_dict +from argilla_sdk.settings._metadata import MetadataType +from argilla_sdk.settings._question import QuestionType, question_from_model, question_from_dict + +if TYPE_CHECKING: + from argilla_sdk.datasets import Dataset + + +__all__ = ["Settings"] + + +class Settings(Resource): + """ + Settings class for Argilla Datasets. + + This class is used to define the representation of a Dataset within the UI. + """ + + def __init__( + self, + fields: Optional[List[FieldType]] = None, + questions: Optional[List[QuestionType]] = None, + vectors: Optional[List[VectorField]] = None, + metadata: Optional[List[MetadataType]] = None, + guidelines: Optional[str] = None, + allow_extra_metadata: bool = False, + _dataset: Optional["Dataset"] = None, + ) -> None: + """ + Args: + fields (List[TextField]): A list of TextField objects that represent the fields in the Dataset. + questions (List[Union[LabelQuestion, MultiLabelQuestion, RankingQuestion, TextQuestion, RatingQuestion]]): A list of Question objects that represent the questions in the Dataset. + vectors (List[VectorField]): A list of VectorField objects that represent the vectors in the Dataset. + metadata (List[MetadataField]): A list of MetadataField objects that represent the metadata in the Dataset. + guidelines (str): A string containing the guidelines for the Dataset. + allow_extra_metadata (bool): A boolean that determines whether or not extra metadata is allowed in the Dataset. Defaults to False. + """ + super().__init__(client=_dataset._client if _dataset else None) + + self.__questions = questions or [] + self.__fields = fields or [] + self.__vectors = vectors or [] + self.__metadata = metadata or [] + + self.__guidelines = self.__process_guidelines(guidelines) + self.__allow_extra_metadata = allow_extra_metadata + + self._dataset = _dataset + + ##################### + # Properties # + ##################### + + @property + def fields(self) -> List[FieldType]: + return self.__fields + + @fields.setter + def fields(self, fields: List[FieldType]): + self.__fields = fields + + @property + def questions(self) -> List[QuestionType]: + return self.__questions + + @questions.setter + def questions(self, questions: List[QuestionType]): + self.__questions = questions + + @property + def guidelines(self) -> str: + return self.__guidelines + + @guidelines.setter + def guidelines(self, guidelines: str): + self.__guidelines = self.__process_guidelines(guidelines) + + @property + def vectors(self) -> List[VectorField]: + return self.__vectors + + @vectors.setter + def vectors(self, vectors: List[VectorField]): + self.__vectors = vectors + + @property + def metadata(self) -> List[MetadataType]: + return self.__metadata + + @metadata.setter + def metadata(self, metadata: List[MetadataType]): + self.__metadata = metadata + + @property + def allow_extra_metadata(self) -> bool: + return self.__allow_extra_metadata + + @allow_extra_metadata.setter + def allow_extra_metadata(self, value: bool): + self.__allow_extra_metadata = value + + @property + def dataset(self) -> "Dataset": + return self._dataset + + @dataset.setter + def dataset(self, dataset: "Dataset"): + self._dataset = dataset + self._client = dataset._client + + @cached_property + def schema(self) -> dict: + schema_dict = {} + + for field in self.fields: + schema_dict[field.name] = field + + for question in self.questions: + schema_dict[question.name] = question + + for vector in self.vectors: + schema_dict[vector.name] = vector + + for metadata in self.metadata: + schema_dict[metadata.name] = metadata + + return schema_dict + + @cached_property + def schema_by_id(self) -> Dict[UUID, Union[FieldType, QuestionType]]: + return {v.id: v for v in self.schema.values()} + + def validate(self) -> None: + self._validate_empty_settings() + self._validate_duplicate_names() + + ##################### + # Public methods # + ##################### + + def get(self) -> "Settings": + self.__fetch_fields() + self.__fetch_questions() + self.__fetch_vectors() + self.__fetch_metadata() + self.__get_dataset_related_attributes() + + self._update_last_api_call() + return self + + def create(self) -> "Settings": + self.__upsert_fields() + self.__upsert_questions() + self.__upsert_vectors() + self.__upsert_metadata() + self.__update_dataset_related_attributes() + + self._update_last_api_call() + return self + + def question_by_name(self, question_name: str) -> QuestionType: + for question in self.questions: + if question.name == question_name: + return question + raise ValueError(f"Question with name {question_name} not found") + + def question_by_id(self, question_id: UUID) -> QuestionType: + property = self.schema_by_id.get(question_id) + if isinstance(property, QuestionType): + return property + raise ValueError(f"Question with id {question_id} not found") + + def serialize(self): + try: + return { + "guidelines": self.guidelines, + "fields": self.__serialize_fields(fields=self.fields), + "questions": self.__serialize_questions(questions=self.questions), + "allow_extra_metadata": self.allow_extra_metadata, + } + except Exception as e: + raise ArgillaSerializeError(f"Failed to serialize the settings. {e.__class__.__name__}") from e + + def to_json(self, path: Union[Path, str]) -> None: + """Save the settings to a file on disk + + Parameters: + path (str): The path to save the settings to + """ + if not isinstance(path, Path): + path = Path(path) + if path.exists(): + raise FileExistsError(f"File {path} already exists") + with open(path, "w") as file: + json.dump(self.serialize(), file) + + @classmethod + def from_json(cls, path: Union[Path, str]) -> "Settings": + """Load the settings from a file on disk""" + + with open(path, "r") as file: + settings_dict = json.load(file) + + guidelines = settings_dict.get("guidelines") + fields = settings_dict.get("fields") + questions = settings_dict.get("questions") + allow_extra_metadata = settings_dict.get("allow_extra_metadata") + + fields = [field_from_dict(field) for field in fields] + questions = [question_from_dict(question) for question in questions] + + return cls( + guidelines=guidelines, + fields=fields, + questions=questions, + allow_extra_metadata=allow_extra_metadata, + ) + + def __eq__(self, other: "Settings") -> bool: + return self.serialize() == other.serialize() # TODO: Create proper __eq__ methods for fields and questions + + ##################### + # Repr Methods # + ##################### + + def __repr__(self) -> str: + return ( + f"Settings(guidelines={self.guidelines}, allow_extra_metadata={self.allow_extra_metadata}, " + f"fields={self.fields}, questions={self.questions}, vectors={self.vectors}, metadata={self.metadata})" + ) + + ##################### + # Private methods # + ##################### + + def __fetch_fields(self) -> List[FieldType]: + models = self._client.api.fields.list(dataset_id=self._dataset.id) + self.__fields = [field_from_model(model) for model in models] + + return self.__fields + + def __fetch_questions(self) -> List[QuestionType]: + models = self._client.api.questions.list(dataset_id=self._dataset.id) + self.__questions = [question_from_model(model) for model in models] + + return self.__questions + + def __fetch_vectors(self) -> List[VectorField]: + models = self._client.api.vectors.list(dataset_id=self._dataset.id) + self.__vectors = [field_from_model(model) for model in models] + + return self.__vectors + + def __fetch_metadata(self) -> List[MetadataType]: + models = self._client.api.metadata.list(dataset_id=self._dataset.id) + self.__metadata = [field_from_model(model) for model in models] + + return self.__metadata + + def __get_dataset_related_attributes(self): + # This flow may be a bit weird, but it's the only way to update the dataset related attributes + # Everything is point that we should have several settings-related endpoints in the API to handle this. + # POST /api/v1/datasets/{dataset_id}/settings + # { + # "guidelines": ...., + # "allow_extra_metadata": ...., + # } + # But this is not implemented yet, so we need to update the dataset model directly + dataset_model = self._client.api.datasets.get(self._dataset.id) + + self.guidelines = dataset_model.guidelines + self.allow_extra_metadata = dataset_model.allow_extra_metadata + + def __update_dataset_related_attributes(self): + # This flow may be a bit weird, but it's the only way to update the dataset related attributes + # Everything is point that we should have several settings-related endpoints in the API to handle this. + # POST /api/v1/datasets/{dataset_id}/settings + # { + # "guidelines": ...., + # "allow_extra_metadata": ...., + # } + # But this is not implemented yet, so we need to update the dataset model directly + dataset_model = DatasetModel( + id=self._dataset.id, + name=self._dataset.name, + guidelines=self.guidelines, + allow_extra_metadata=self.allow_extra_metadata, + ) + self._client.api.datasets.update(dataset_model) + + def __upsert_questions(self) -> None: + for question in self.__questions: + try: + question_model = self._client.api.questions.create( + dataset_id=self._dataset.id, question=question._model + ) + question._model = question_model + except ArgillaAPIError as e: + raise SettingsError(f"Failed to create question {question.name}") from e + + def __upsert_fields(self) -> None: + for field in self.__fields: + try: + field_model = self._client.api.fields.create(dataset_id=self._dataset.id, field=field._model) + field._model = field_model + except ArgillaAPIError as e: + raise SettingsError(f"Failed to create field {field.name}") from e + + def __upsert_vectors(self) -> None: + for vector in self.__vectors: + try: + vector_model = self._client.api.vectors.create(dataset_id=self._dataset.id, vector=vector._model) + vector._model = vector_model + except ArgillaAPIError as e: + raise SettingsError(f"Failed to create vector {vector.name}") from e + + def __upsert_metadata(self) -> None: + for metadata in self.__metadata: + metadata_model = self._client.api.metadata.create( + dataset_id=self._dataset.id, metadata_field=metadata._model + ) + metadata._model = metadata_model + + def _validate_empty_settings(self): + if not all([self.fields, self.questions]): + message = "Fields and questions are required" + raise SettingsError(message=message) + + def _validate_duplicate_names(self) -> None: + dataset_properties_by_name = {} + + for prop in self.fields + self.questions + self.vectors + self.metadata: + if prop.name in dataset_properties_by_name: + raise SettingsError( + f"names of dataset settings must be unique, " + f"but the name {prop.name!r} is used by {type(prop).__name__!r} and {type(dataset_properties_by_name[prop.name]).__name__!r} " + ) + dataset_properties_by_name[prop.name] = prop + + def __process_fields(self, fields: List[FieldType]) -> List["TextFieldModel"]: + processed_fields = [] + for field in fields: + try: + processed_field = field._model + except Exception as e: + raise SettingsError(f"Failed to process field {field.name}") from e + processed_fields.append(processed_field) + return processed_fields + + def __process_questions(self, questions: List[QuestionType]) -> List["TextQuestionModel"]: + processed_questions = [] + for question in questions: + try: + processed_question = question._model + except Exception as e: + raise SettingsError(f"Failed to process question {question.name}") from e + processed_questions.append(processed_question) + return processed_questions + + def __process_guidelines(self, guidelines): + if guidelines is None: + return guidelines + + if not isinstance(guidelines, str): + raise SettingsError("Guidelines must be a string or a path to a file") + + if os.path.exists(guidelines): + with open(guidelines, "r") as file: + return file.read() + + return guidelines + + def __serialize_fields(self, fields: List[FieldType]): + return [field.serialize() for field in fields] + + def __serialize_questions(self, questions: List[QuestionType]): + return [question.serialize() for question in questions] diff --git a/argilla-sdk/src/argilla_sdk/suggestions.py b/argilla-sdk/src/argilla_sdk/suggestions.py new file mode 100644 index 0000000000..7d37a7527e --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/suggestions.py @@ -0,0 +1,163 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from typing import Any, Optional, Literal, Union, List, TYPE_CHECKING, Dict +from uuid import UUID + +from argilla_sdk._models import SuggestionModel +from argilla_sdk._resource import Resource +from argilla_sdk.settings import RankingQuestion + +if TYPE_CHECKING: + from argilla_sdk import QuestionType, Record, Dataset + +__all__ = ["Suggestion"] + + +class Suggestion(Resource): + """Class for interacting with Argilla Suggestions. Suggestions are typically model predictions for records. + Suggestions are rendered in the user interfaces as 'hints' or 'suggestions' for the user to review and accept or reject. + + Attributes: + value (str): The value of the suggestion.add() + question_name (str): The name of the question that the suggestion is for. + type (str): The type of suggestion, either 'model' or 'human'. + score (float): The score of the suggestion. For example, the probability of the model prediction. + agent (str): The agent that created the suggestion. For example, the model name. + question_id (UUID): The ID of the question that the suggestion is for. + + """ + + _model: SuggestionModel + + def __init__( + self, + question_name: str, + value: Any, + score: Union[float, List[float], None] = None, + agent: Optional[str] = None, + type: Optional[Literal["model", "human"]] = None, + id: Optional[UUID] = None, + question_id: Optional[UUID] = None, + _record: Optional["Record"] = None, + ) -> None: + super().__init__() + + if question_name is None: + raise ValueError("question_name is required") + if value is None: + raise ValueError("value is required") + + self.record = _record + self._model = SuggestionModel( + id=id, + question_name=question_name, + question_id=question_id, + value=value, + type=type, + score=score, + agent=agent, + ) + + ############################## + # Properties + ############################## + + @property + def value(self) -> Any: + """The value of the suggestion.""" + return self._model.value + + @property + def question_name(self) -> Optional[str]: + """The name of the question that the suggestion is for.""" + return self._model.question_name + + @question_name.setter + def question_name(self, value: str) -> None: + self._model.question_name = value + + @property + def question_id(self) -> Optional[UUID]: + """The ID of the question that the suggestion is for.""" + return self._model.question_id + + @question_id.setter + def question_id(self, value: UUID) -> None: + self._model.question_id = value + + @property + def type(self) -> Optional[Literal["model", "human"]]: + """The type of suggestion, either 'model' or 'human'.""" + return self._model.type + + @property + def score(self) -> Optional[Union[float, List[float]]]: + """The score of the suggestion.""" + return self._model.score + + @score.setter + def score(self, value: float) -> None: + self._model.score = value + + @property + def agent(self) -> Optional[str]: + """The agent that created the suggestion.""" + return self._model.agent + + @agent.setter + def agent(self, value: str) -> None: + self._model.agent = value + + @classmethod + def from_model(cls, model: SuggestionModel, dataset: "Dataset") -> "Suggestion": + question = dataset.settings.question_by_id(model.question_id) + model.question_name = question.name + model.value = cls.__from_model_value(model.value, question) + + return cls(**model.dict()) + + def api_model(self) -> SuggestionModel: + if self.record is None or self.record.dataset is None: + return self._model + + question = self.record.dataset.settings.question_by_name(self.question_name) + return SuggestionModel( + value=self.__to_model_value(self.value, question), + question_name=self.question_name, + question_id=self.question_id or question.id, + type=self._model.type, + score=self._model.score, + agent=self._model.agent, + id=self._model.id, + ) + + @classmethod + def __to_model_value(cls, value: Any, question: "QuestionType") -> Any: + if isinstance(question, RankingQuestion): + return cls.__ranking_to_model_value(value) + return value + + @classmethod + def __from_model_value(cls, value: Any, question: "QuestionType") -> Any: + if isinstance(question, RankingQuestion): + return cls.__ranking_from_model_value(value) + return value + + @classmethod + def __ranking_from_model_value(cls, value: List[Dict[str, Any]]) -> List[str]: + return [v["value"] for v in value] + + @classmethod + def __ranking_to_model_value(cls, value: List[str]) -> List[Dict[str, str]]: + return [{"value": str(v)} for v in value] diff --git a/argilla-sdk/src/argilla_sdk/users/__init__.py b/argilla-sdk/src/argilla_sdk/users/__init__.py new file mode 100644 index 0000000000..c40fb8bce2 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/users/__init__.py @@ -0,0 +1,17 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk.users._resource import User + +__all__ = ["User"] diff --git a/argilla-sdk/src/argilla_sdk/users/_resource.py b/argilla-sdk/src/argilla_sdk/users/_resource.py new file mode 100644 index 0000000000..8177cc1144 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/users/_resource.py @@ -0,0 +1,193 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional +from uuid import UUID + +from argilla_sdk import Workspace +from argilla_sdk._api import UsersAPI +from argilla_sdk._models import UserModel, Role +from argilla_sdk._resource import Resource +from argilla_sdk.client import Argilla + + +class User(Resource): + """Class for interacting with Argilla users in the Argilla server. User profiles \ + are used to manage access to the Argilla server and track responses to records. + + Attributes: + username (str): The username of the user. + first_name (str): The first name of the user. + last_name (str): The last name of the user. + role (str): The role of the user, either 'annotator' or 'admin'. + password (str): The password of the user. + id (UUID): The ID of the user. + """ + + _model: UserModel + _api: UsersAPI + + def __init__( + self, + username: Optional[str] = None, + first_name: Optional[str] = None, + last_name: Optional[str] = None, + role: Optional[str] = None, + password: Optional[str] = None, + client: Optional["Argilla"] = None, + id: Optional[UUID] = None, + _model: Optional[UserModel] = None, + ) -> None: + """Initializes a User object with a client and a username + + Parameters: + username (str): The username of the user + first_name (str): The first name of the user + last_name (str): The last name of the user + role (str): The role of the user, either 'annotator', admin, or 'owner' + password (str): The password of the user. If not provided, a random password will be generated + client (Argilla): The client used to interact with Argilla + + Returns: + User: The initialized user object + ``` + """ + client = client or Argilla._get_default() + super().__init__(client=client, api=client.api.users) + + if _model is None: + _model = UserModel( + username=username, + password=password or self._generate_random_password(), + first_name=first_name or username, + last_name=last_name, + role=role or Role.annotator, + id=id, + ) + self.log(f"Initialized user with username {username}") + self._sync(model=_model) + + def create(self) -> "User": + """Creates the user in Argilla. After creating a user, it will be able to log in to the Argilla server. + + Returns: + User: The user that was created in Argilla. + + """ + model_create = self.api_model() + model = self._api.create(model_create) + # The password is not returned in the response + model.password = model_create.password + self._sync(model=model) + return self + + def delete(self) -> None: + """Deletes the user from Argilla. After deleting a user, it will no longer be able to log in to the Argilla server.""" + super().delete() + # exists relies on the id, so we need to set it to None + self._model = UserModel(username=self.username) + + def exists(self) -> bool: + """Checks if the user exists in Argilla + + Returns: + bool: True if the user exists, False otherwise. + """ + # TODO - Implement the exist method in the API + return self.id is not None + + def add_to_workspace(self, workspace: "Workspace") -> "User": + """Adds the user to a workspace. After adding a user to a workspace, it will have access to the datasets + in the workspace. + + Args: + workspace (Workspace): The workspace to add the user to. + + Returns: + User: The user that was added to the workspace. + """ + model = self._api.add_to_workspace(workspace.id, self.id) + self._sync(model=model) + return self + + def remove_from_workspace(self, workspace: "Workspace") -> "User": + """Removes the user from a workspace. After removing a user from a workspace, it will no longer have access to + the datasets in the workspace. + + Args: + workspace (Workspace): The workspace to remove the user from. + + Returns: + User: The user that was removed from the workspace. + + """ + model = self._api.delete_from_workspace(workspace.id, self.id) + self._sync(model=model) + + return self + + ############################ + # Properties + ############################ + @property + def username(self) -> str: + return self._model.username + + @username.setter + def username(self, value: str) -> None: + self._model.username = value + + @property + def password(self) -> str: + return self._model.password + + @password.setter + def password(self, value: str) -> None: + self._model.password = value + + @property + def first_name(self) -> str: + return self._model.first_name + + @first_name.setter + def first_name(self, value: str) -> None: + self._model.first_name = value + + @property + def last_name(self) -> str: + return self._model.last_name + + @last_name.setter + def last_name(self, value: str) -> None: + self._model.last_name = value + + @property + def role(self) -> Role: + return self._model.role + + @role.setter + def role(self, value: Role) -> None: + self._model.role = value + + ############################ + # Private methods + ############################ + + @staticmethod + def _generate_random_password(n: int = 12) -> str: + """Generates a random password for the user""" + import random + import string + + return "".join(random.choices(string.ascii_letters + string.digits, k=n)) diff --git a/argilla-sdk/src/argilla_sdk/vectors.py b/argilla-sdk/src/argilla_sdk/vectors.py new file mode 100644 index 0000000000..17f83b7ebd --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/vectors.py @@ -0,0 +1,83 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any + +from argilla_sdk._models import VectorModel +from argilla_sdk._resource import Resource + +__all__ = ["Vector"] + + +class Vector(Resource): + """ Class for interacting with Argilla Vectors. Vectors are typically used to represent \ + embeddings or features of records. The `Vector` class is used to deliver vectors to the Argilla server. + + Attributes: + name (str): The name of the vector. + values (list[float]): The values of the vector. + """ + + _model: VectorModel + + def __init__( + self, + name: str, + values: list[float], + ) -> None: + """Initializes a Vector with a name and values that can be used to search in the Argilla ui. + + Parameters: + name (str): Name of the vector + values (list[float]): List of float values + + """ + self._model = VectorModel( + name=name, + vector_values=values, + ) + + def __repr__(self) -> str: + return repr(f"{self.__class__.__name__}({self._model})") + + ############################## + # Properties + ############################## + + @property + def name(self) -> str: + """Name of the vector that corresponds to the name of the vector in the dataset's `Settings`""" + return self._model.name + + @property + def values(self) -> list[float]: + """List of float values that represent the vector.""" + return self._model.vector_values + + ############################## + # Methods + ############################## + + @classmethod + def from_model(cls, model: VectorModel) -> "Vector": + return cls( + name=model.name, + values=model.vector_values, + ) + + def serialize(self) -> dict[str, Any]: + dumped_model = self._model.model_dump() + name = dumped_model.pop("name") + values = dumped_model.pop("vector_values") + return {name: values} diff --git a/argilla-sdk/src/argilla_sdk/workspaces/__init__.py b/argilla-sdk/src/argilla_sdk/workspaces/__init__.py new file mode 100644 index 0000000000..f833ea9e96 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/workspaces/__init__.py @@ -0,0 +1,17 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk.workspaces._resource import Workspace + +__all__ = ["Workspace"] diff --git a/argilla-sdk/src/argilla_sdk/workspaces/_resource.py b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py new file mode 100644 index 0000000000..9b8a077a47 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py @@ -0,0 +1,201 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List, TYPE_CHECKING, Optional, overload, Union, Sequence +from uuid import UUID + +from argilla_sdk._api._workspaces import WorkspacesAPI +from argilla_sdk._helpers import GenericIterator +from argilla_sdk._helpers._mixins import LoggingMixin +from argilla_sdk._models import WorkspaceModel +from argilla_sdk._resource import Resource +from argilla_sdk.client import Argilla + +if TYPE_CHECKING: + from argilla_sdk import Dataset, User + + +class Workspace(Resource): + """Class for interacting with Argilla workspaces. Workspaces are used to organize datasets in the Argilla server. + + Attributes: + name (str): The name of the workspace. + id (UUID): The ID of the workspace. This is a unique identifier for the workspace in the server. + datasets (List[Dataset]): A list of all datasets in the workspace. + users (WorkspaceUsers): A list of all users in the workspace. + """ + + name: Optional[str] + + _api: "WorkspacesAPI" + + def __init__( + self, + name: Optional[str] = None, + id: Optional[UUID] = None, + client: Optional["Argilla"] = None, + _model: Optional[WorkspaceModel] = None, + ) -> None: + """Initializes a Workspace object with a client and a name or id + + Parameters: + client (Argilla): The client used to interact with Argilla + name (str): The name of the workspace + id (UUID): The id of the workspace + _model (WorkspaceModel): The internal Pydantic model of the workspace from/to the server + Returns: + Workspace: The initialized workspace object + """ + client = client or Argilla._get_default() + super().__init__(client=client, api=client.api.workspaces) + self._sync(model=WorkspaceModel(name=name, id=id) if not _model else _model) + + def exists(self) -> bool: + """ + Checks if the workspace exists in the server + + Returns: + bool: True if the workspace exists, False otherwise + """ + return self._api.exists(self.id) + + def add_user(self, user: Union["User", str]) -> "User": + """Adds a user to the workspace. After adding a user to the workspace, it will have access to the datasets + in the workspace. + + Args: + user (Union[User, str]): The user to add to the workspace. Can be a User object or a username. + + Returns: + User: The user that was added to the workspace + """ + return self.users.add(user) + + def remove_user(self, user: Union["User", str]) -> "User": + """Removes a user from the workspace. After removing a user from the workspace, it will no longer have access + + Args: + user (Union[User, str]): The user to remove from the workspace. Can be a User object or a username. + + Returns: + User: The user that was removed from the workspace. + """ + return self.users.delete(user) + + # TODO: Make this method private + def list_datasets(self) -> List["Dataset"]: + from argilla_sdk.datasets import Dataset + + datasets = self._client.api.datasets.list(self.id) + self.log(f"Got {len(datasets)} datasets for workspace {self.id}") + return [Dataset.from_model(model=dataset, client=self._client) for dataset in datasets] + + ############################ + # Properties + ############################ + + @property + def name(self) -> Optional[str]: + return self._model.name + + @name.setter + def name(self, value: str) -> None: + self._model.name = value + + @property + def datasets(self) -> List["Dataset"]: + """List all datasets in the workspace + + Returns: + List[Dataset]: A list of all datasets in the workspace + """ + return self.list_datasets() + + @property + def users(self) -> "WorkspaceUsers": + """List all users in the workspace + + Returns: + WorkspaceUsers: A list of all users in the workspace + + """ + return WorkspaceUsers(workspace=self) + + ############################ + # Private methods + ############################ + + +class WorkspaceUsers(Sequence["User"], LoggingMixin): + class _Iterator(GenericIterator["User"]): + pass + + def __init__(self, workspace: "Workspace") -> None: + self._workspace = workspace + + @overload + def add(self, user: "User") -> "User": + ... + + @overload + def add(self, user: str) -> "User": + ... + + def add(self, user: Union["User", str]) -> "User": + if isinstance(user, str): + return self._add_user_by_username(username=user) + return user.add_to_workspace(workspace=self._workspace) + + @overload + def delete(self, user: "User") -> "User": + ... + + @overload + def delete(self, user: str) -> "User": + ... + + def delete(self, user: Union["User", str]) -> "User": + if isinstance(user, str): + return self._delete_user_by_username(username=user) + return user.remove_from_workspace(workspace=self._workspace) + + def __iter__(self): + return self._Iterator(self._list_users()) + + def __getitem__(self, index: int) -> "User": + return self._list_users()[index] + + def __len__(self) -> int: + return len(self._list_users()) + + #################### + # Private methods + #################### + + def _list_users(self) -> List["User"]: + users = self._workspace._client.users.list(workspace=self._workspace) + self.log(f"Got {len(users)} users for workspace {self._workspace.id}") + return users + + def _delete_user_by_username(self, username: str) -> "User": + user = self._workspace._client.users(username=username) + if not user.exists(): + raise ValueError(f"User {username} does not exist") + return user.remove_from_workspace(workspace=self._workspace) + + def _add_user_by_username(self, username: str) -> "User": + user = self._workspace._client.users(username=username) + if not user.exists(): + raise ValueError(f"User {username} does not exist") + return user.add_to_workspace(workspace=self._workspace) diff --git a/argilla-sdk/tests/integration/conftest.py b/argilla-sdk/tests/integration/conftest.py new file mode 100644 index 0000000000..44b9e177f8 --- /dev/null +++ b/argilla-sdk/tests/integration/conftest.py @@ -0,0 +1,36 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +import argilla_sdk as rg + + +@pytest.fixture(scope="session") +def client() -> rg.Argilla: + client = rg.Argilla() + yield client + + +@pytest.fixture(autouse=True) +def cleanup(client: rg.Argilla): + for workspace in client.workspaces: + if workspace.name.startswith("test_"): + for dataset in workspace.datasets: + dataset.delete() + workspace.delete() + + for user in client.users: + if user.username.startswith("test_"): + user.delete() diff --git a/argilla-sdk/tests/integration/test_add_records.py b/argilla-sdk/tests/integration/test_add_records.py new file mode 100644 index 0000000000..9fb918b128 --- /dev/null +++ b/argilla-sdk/tests/integration/test_add_records.py @@ -0,0 +1,668 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random +import uuid +from datetime import datetime + + +import argilla_sdk as rg +from argilla_sdk import Argilla + + +def test_create_dataset(client): + workspace = client.workspaces[0] + mock_dataset_name = f"test_create_dataset{datetime.now().strftime('%Y%m%d%H%M%S')}" + dataset = rg.Dataset( + name=mock_dataset_name, + workspace=workspace, + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), + client=client, + ) + dataset.create() + gotten_dataset = dataset.get() + assert dataset.id == gotten_dataset.id + assert dataset.name == mock_dataset_name + + +def test_add_records(client): + mock_dataset_name = f"test_add_records{datetime.now().strftime('%Y%m%d%H%M%S')}" + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="comment", use_markdown=False), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + dataset.create() + dataset.records.add(records=mock_data) + + dataset_records = list(dataset.records) + + assert dataset.name == mock_dataset_name + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[1].id == str(mock_data[1]["id"]) + assert dataset_records[2].id == str(mock_data[2]["id"]) + assert dataset_records[0].fields.text == mock_data[0]["text"] + assert dataset_records[1].fields.text == mock_data[1]["text"] + assert dataset_records[2].fields.text == mock_data[2]["text"] + + +def test_add_dict_records(client: Argilla): + ws = client.workspaces("new_ws") + if not ws.exists(): + ws.create() + + ds = client.datasets("new_ds", workspace=ws) + if ds.exists(): + ds.delete() + + ds.settings = rg.Settings( + fields=[rg.TextField(name="text")], + questions=[rg.TextQuestion(name="label")], + ) + + ds.create() + + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": "1", + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": "2", + }, + {"text": "Hello World, how are you?", "label": "negative", "id": "3"}, + ] + + # Now the dataset is published and is ready for annotate + ds.records.add(mock_data) + + for record, data in zip(ds.records, mock_data): + assert record.id == data["id"] + assert record.fields.text == data["text"] + assert "label" not in record.__dict__ + + for record, data in zip(ds.records(batch_size=1, with_suggestions=True), mock_data): + assert record.id == data["id"] + assert record.suggestions.label.value == data["label"] + + +def test_add_single_record(client: Argilla): + new_ws = client.workspaces("new_ws") + if not new_ws.exists(): + new_ws.create() + + ds = client.datasets("new_ds", workspace=new_ws) + if ds.exists(): + ds.delete() + + ds.settings = rg.Settings( + fields=[rg.TextField(name="text")], + questions=[rg.TextQuestion(name="label")], + ) + + ds.create() + + data = { + "text": "Hello World, how are you?", + "label": "positive", + "id": "1", + } + + # Now the dataset is published and is ready for annotate + ds.records.add(data) + + records = list(ds.records) + assert len(records) == 1 + + record = records[0] + assert record.id == data["id"] + assert record.fields.text == data["text"] + + +def test_add_records_with_suggestions(client) -> None: + mock_dataset_name = f"test_add_record_with_suggestions {datetime.now().strftime('%Y%m%d%H%M%S')}" + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "comment": "I'm doing great, thank you!", + "topics": ["topic1", "topic2"], + "topics.score": [0.9, 0.8], + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + "comment": "I'm doing great, thank you!", + "topics": ["topic3"], + "topics.score": [0.9], + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "comment": "I'm doing great, thank you!", + "topics": ["topic1", "topic2", "topic3"], + "topics.score": [0.9, 0.8, 0.7], + }, + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="comment", use_markdown=False), + rg.MultiLabelQuestion(name="topics", labels=["topic1", "topic2", "topic3"], labels_order="suggestion"), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + dataset.create() + dataset.records.add( + mock_data, + mapping={ + "comment": "comment.suggestion", + "topics": "topics.suggestion", + "topics.score": "topics.suggestion.score", + }, + ) + assert dataset.name == mock_dataset_name + + dataset_records = list(dataset.records(with_suggestions=True)) + + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[0].suggestions.comment.value == "I'm doing great, thank you!" + assert dataset_records[0].suggestions.comment.score is None + assert dataset_records[0].suggestions.topics.value == ["topic1", "topic2"] + assert dataset_records[0].suggestions.topics.score == [0.9, 0.8] + + assert dataset_records[1].fields.text == mock_data[1]["text"] + assert dataset_records[1].suggestions.comment.value == "I'm doing great, thank you!" + assert dataset_records[1].suggestions.comment.score is None + assert dataset_records[1].suggestions.topics.value == ["topic3"] + assert dataset_records[1].suggestions.topics.score == [0.9] + + assert dataset_records[2].suggestions.comment.value == "I'm doing great, thank you!" + assert dataset_records[2].suggestions.comment.score is None + assert dataset_records[2].suggestions.topics.value == ["topic1", "topic2", "topic3"] + assert dataset_records[2].suggestions.topics.score == [0.9, 0.8, 0.7] + + +def test_add_records_with_responses(client) -> None: + mock_dataset_name = f"test_modify_record_responses_locally {uuid.uuid4()}" + mock_data = [ + { + "text": "Hello World, how are you?", + "my_label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "my_label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "my_label": "negative", + "id": uuid.uuid4(), + }, + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + user = rg.User( + username=f"test_{random.randint(0, 1000)}", + first_name="test", + password="testtesttest", + client=client, + ) + user.create() + dataset.create() + dataset.records.add( + records=mock_data, + user_id=user.id, + mapping={ + "my_label": "label.response", + }, + ) + assert dataset.name == mock_dataset_name + + dataset_records = list(dataset.records(with_responses=True)) + + for record, mock_record in zip(dataset_records, mock_data): + assert record.id == str(mock_record["id"]) + assert record.fields.text == mock_record["text"] + assert record.responses.label[0].value == mock_record["my_label"] + assert record.responses.label[0].user_id == user.id + + +def test_add_records_with_responses_and_suggestions(client) -> None: + mock_dataset_name = f"test_modify_record_responses_locally {uuid.uuid4()}" + mock_data = [ + { + "text": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "id": uuid.uuid4(), + }, + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + user = rg.User( + username=f"test_{random.randint(0, 1000)}", + first_name="test", + password="testtesttest", + client=client, + ) + user.create() + dataset.create() + dataset.records.add( + records=mock_data, + user_id=user.id, + mapping={ + "my_label": "label.response", + "my_guess": "label.suggestion", + }, + ) + assert dataset.name == mock_dataset_name + + dataset_records = list(dataset.records(with_suggestions=True)) + + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[1].fields.text == mock_data[1]["text"] + assert dataset_records[2].suggestions.label.value == "positive" + assert dataset_records[2].responses.label[0].value == "negative" + assert dataset_records[2].responses.label[0].user_id == user.id + + +def test_add_records_with_fields_mapped(client) -> None: + mock_dataset_name = f"test_modify_record_responses_locally {uuid.uuid4()}" + mock_data = [ + { + "x": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "id": uuid.uuid4(), + "score": 0.5, + }, + { + "x": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "id": uuid.uuid4(), + "score": 0.5, + }, + { + "x": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "id": uuid.uuid4(), + "score": 0.5, + }, + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + user = rg.User( + username=f"test_{random.randint(0, 1000)}", + first_name="test", + password="testtesttest", + client=client, + ) + user.create() + dataset.create() + dataset.records.add( + records=mock_data, + user_id=user.id, + mapping={ + "my_label": "label.response", + "my_guess": "label.suggestion", + "x": "text", + "score": "label.suggestion.score", + }, + ) + assert dataset.name == mock_dataset_name + + dataset_records = list(dataset.records(with_suggestions=True)) + + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[1].fields.text == mock_data[1]["x"] + assert dataset_records[2].suggestions.label.value == "positive" + assert dataset_records[2].suggestions.label.score == 0.5 + assert dataset_records[2].responses.label[0].value == "negative" + assert dataset_records[2].responses.label[0].value == "negative" + assert dataset_records[2].responses.label[0].user_id == user.id + + +def test_add_records_with_id_mapped(client) -> None: + mock_dataset_name = f"test_modify_record_responses_locally {uuid.uuid4()}" + mock_data = [ + { + "x": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "uuid": uuid.uuid4(), + }, + { + "x": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "uuid": uuid.uuid4(), + }, + { + "x": "Hello World, how are you?", + "my_label": "negative", + "my_guess": "positive", + "uuid": uuid.uuid4(), + }, + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + user = rg.User( + username=f"test_{random.randint(0, 1000)}", + first_name="test", + password="testtesttest", + client=client, + ) + user.create() + dataset.create() + dataset.records.add( + records=mock_data, + user_id=user.id, + mapping={"my_label": "label.response", "my_guess": "label.suggestion", "x": "text", "uuid": "id"}, + ) + assert dataset.name == mock_dataset_name + + dataset_records = list(dataset.records(with_suggestions=True)) + + assert dataset_records[0].id == str(mock_data[0]["uuid"]) + assert dataset_records[1].fields.text == mock_data[1]["x"] + assert dataset_records[2].suggestions.label.value == "positive" + assert dataset_records[2].responses.label[0].value == "negative" + assert dataset_records[2].responses.label[0].user_id == user.id + + +def test_add_record_resources(client): + user_id = client.users[0].id + mock_dataset_name = f"test_add_records{datetime.now().strftime('%Y%m%d%H%M%S')}" + mock_resources = [ + rg.Record( + fields={"text": "Hello World, how are you?"}, + suggestions=[ + rg.Suggestion("label", "positive", score=0.9), + rg.Suggestion("topics", ["topic1", "topic2"], score=[0.9, 0.8]), + ], + responses=[rg.Response("label", "positive", user_id=user_id)], + id=str(uuid.uuid4()), + ), + rg.Record( + fields={"text": "Hello World, how are you?"}, + suggestions=[ + rg.Suggestion("label", "positive", score=0.9), + rg.Suggestion("topics", ["topic1", "topic2"], score=[0.9, 0.8]), + ], + responses=[rg.Response("label", "positive", user_id=user_id)], + id=str(uuid.uuid4()), + ), + rg.Record( + fields={"text": "Hello World, how are you?"}, + suggestions=[ + rg.Suggestion("label", "positive", score=0.9), + rg.Suggestion("topics", ["topic1", "topic2"], score=[0.9, 0.8]), + ], + responses=[rg.Response("label", "positive", user_id=user_id)], + id=str(uuid.uuid4()), + ), + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + rg.MultiLabelQuestion(name="topics", labels=["topic1", "topic2", "topic3"]), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + dataset.create() + dataset.records.add(records=mock_resources) + + dataset_records = list(dataset.records(with_suggestions=True)) + + assert dataset.name == mock_dataset_name + + assert dataset_records[0].id == str(mock_resources[0].id) + assert dataset_records[0].suggestions.label.value == "positive" + assert dataset_records[0].suggestions.label.score == 0.9 + assert dataset_records[0].suggestions.topics.value == ["topic1", "topic2"] + assert dataset_records[0].suggestions.topics.score == [0.9, 0.8] + + assert dataset_records[1].id == str(mock_resources[1].id) + assert dataset_records[1].suggestions.label.value == "positive" + assert dataset_records[1].suggestions.label.score == 0.9 + assert dataset_records[1].suggestions.topics.value == ["topic1", "topic2"] + assert dataset_records[1].suggestions.topics.score == [0.9, 0.8] + + assert dataset_records[2].id == str(mock_resources[2].id) + assert dataset_records[2].suggestions.label.value == "positive" + assert dataset_records[2].suggestions.label.score == 0.9 + assert dataset_records[2].suggestions.topics.value == ["topic1", "topic2"] + assert dataset_records[2].suggestions.topics.score == [0.9, 0.8] + + +def test_add_records_with_responses_and_same_schema_name(client: Argilla): + mock_dataset_name = f"test_modify_record_responses_locally {uuid.uuid4()}" + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "negative", + }, + { + "text": "Hello World, how are you?", + "label": "negative", + }, + { + "text": "Hello World, how are you?", + "label": "negative", + }, + ] + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + user = rg.User( + username=f"test_{random.randint(0, 1000)}", + first_name="test", + password="testtesttest", + client=client, + ) + user.create() + dataset.create() + dataset.records.add( + records=mock_data, + user_id=user.id, + mapping={"label": "label.response", "text": "text"}, + ) + assert dataset.name == mock_dataset_name + + dataset_records = list(dataset.records(with_responses=True)) + + assert dataset_records[0].fields.text == mock_data[1]["text"] + assert dataset_records[1].responses.label[0].value == "negative" + assert dataset_records[1].responses.label[0].user_id == user.id + + +def test_add_records_objects_with_responses(client: Argilla): + mock_dataset_name = f"test_modify_record_responses_locally {uuid.uuid4()}" + + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="comment", use_markdown=False), + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + user = rg.User( + username=f"test_{random.randint(0, 1000)}", + first_name="test", + password="testtesttest", + client=client, + ) + user.create() + dataset.create() + + records = [ + rg.Record( + fields={"text": "Hello World, how are you?"}, + responses=[rg.Response("label", "negative", user_id=user.id)], + id=str(uuid.uuid4()), + ), + rg.Record( + fields={"text": "Hello World, how are you?"}, + responses=[rg.Response("label", "positive", user_id=user.id)], + id=str(uuid.uuid4()), + ), + rg.Record( + fields={"text": "Hello World, how are you?"}, + responses=[rg.Response("comment", "The comment", user_id=user.id)], + id=str(uuid.uuid4()), + ), + ] + + dataset.records.add(records) + + dataset_records = list(dataset.records()) + + assert dataset.name == mock_dataset_name + assert dataset_records[0].id == records[0].id + assert dataset_records[0].responses.label[0].value == "negative" + + assert dataset_records[1].id == records[1].id + assert dataset_records[1].responses.label[0].value == "positive" + + assert dataset_records[2].id == records[2].id + assert dataset_records[2].responses.comment[0].value == "The comment" diff --git a/argilla-sdk/tests/integration/test_create_datasets.py b/argilla-sdk/tests/integration/test_create_datasets.py new file mode 100644 index 0000000000..160f602bb6 --- /dev/null +++ b/argilla-sdk/tests/integration/test_create_datasets.py @@ -0,0 +1,94 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import uuid + +import pytest + +from argilla_sdk import Argilla, Dataset, Settings, TextField, RatingQuestion + + +@pytest.fixture(scope="session", autouse=True) +def clean_datasets(client: Argilla): + datasets = client.datasets + for dataset in datasets: + if dataset.name.startswith("test_"): + dataset.delete() + yield + + +class TestCreateDatasets: + def test_create_dataset(self, client: Argilla): + dataset_name = f"test_dataset_{uuid.uuid4()}" + dataset = Dataset( + name=dataset_name, + settings=Settings( + fields=[TextField(name="test_field")], + questions=[RatingQuestion(name="test_question", values=[1, 2, 3, 4, 5])], + ), + ) + client.datasets.add(dataset) + + assert dataset in client.datasets + assert dataset.exists() + + created_dataset = client.datasets(name=dataset_name) + assert created_dataset.settings == dataset.settings + + def test_create_multiple_dataset_with_same_settings(self, client: Argilla): + dataset_name = f"test_dataset_{uuid.uuid4()}" + + settings = Settings( + fields=[TextField(name="text")], + questions=[RatingQuestion(name="question", values=[1, 2, 3, 4, 5])], + ) + dataset = Dataset(name=dataset_name, settings=settings, client=client).create() + dataset2 = Dataset(name=f"{dataset_name}_2", settings=settings, client=client).create() + + assert dataset in client.datasets + assert dataset2 in client.datasets + + assert dataset.exists() + assert dataset2.exists() + + for ds in [dataset, dataset2]: + schema = client.datasets(name=ds.name).schema + + assert isinstance(schema["text"], TextField) + assert schema["text"].name == "text" + assert isinstance(schema["question"], RatingQuestion) + assert schema["question"].name == "question" + assert schema["question"].values == [1, 2, 3, 4, 5] + + def test_create_dataset_from_existing_dataset(self, client: Argilla): + dataset_name = f"test_dataset_{uuid.uuid4()}" + dataset = Dataset( + name=dataset_name, + settings=Settings( + fields=[TextField(name="text")], + questions=[RatingQuestion(name="question", values=[1, 2, 3, 4, 5])], + ), + ).create() + + assert dataset in client.datasets + created_dataset = client.datasets(dataset.name) + + dataset_copy = Dataset(name=f"{dataset.name}_copy", settings=created_dataset.settings, client=client).create() + assert dataset_copy in client.datasets + + schema = dataset_copy.schema + assert isinstance(schema["text"], TextField) + assert schema["text"].name == "text" + assert isinstance(schema["question"], RatingQuestion) + assert schema["question"].name == "question" + assert schema["question"].values == [1, 2, 3, 4, 5] diff --git a/argilla-sdk/tests/integration/test_dataset_workspace.py b/argilla-sdk/tests/integration/test_dataset_workspace.py new file mode 100644 index 0000000000..3faad1e57a --- /dev/null +++ b/argilla-sdk/tests/integration/test_dataset_workspace.py @@ -0,0 +1,153 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +import pytest + +import argilla_sdk as rg +from argilla_sdk._exceptions import NotFoundError + + +@pytest.fixture(autouse=True, scope="session") +def clean_test_datasets(client: rg.Argilla): + for dataset in client.datasets: + if dataset.name.startswith("test_"): + dataset.delete() + yield + for dataset in client.datasets: + if dataset.name.startswith("test_"): + dataset.delete() + + +@pytest.fixture +def dataset(client: rg.Argilla): + ws = client.workspaces[0] + dataset = rg.Dataset( + name=f"test_{random.randint(0, 1000)}", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), + workspace=ws, + client=client, + ) + dataset.create() + yield dataset + dataset.delete() + + +def test_dataset_with_workspace(client: rg.Argilla): + ws = client.workspaces[0] + dataset = rg.Dataset( + name=f"test_{random.randint(0, 1000)}", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), + workspace=ws, + client=client, + ) + dataset.create() + assert isinstance(dataset, rg.Dataset) + assert dataset.id is not None + assert dataset.exists() + assert dataset.workspace_id == ws.id + + +def test_dataset_with_workspace_name(client: rg.Argilla): + ws = client.workspaces[0] + dataset = rg.Dataset( + name=f"test_{random.randint(0, 1000)}", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), + workspace=ws.name, + client=client, + ) + dataset.create() + assert isinstance(dataset, rg.Dataset) + assert dataset.id is not None + assert dataset.exists() + assert dataset.workspace_id == ws.id + + +def test_dataset_with_incorrect_workspace_name(client: rg.Argilla): + with pytest.raises(expected_exception=NotFoundError): + rg.Dataset( + name=f"test_{random.randint(0, 1000)}", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), + workspace=f"non_existing_workspace_{random.randint(0, 1000)}", + client=client, + ) + + +def test_dataset_with_default_workspace(client: rg.Argilla): + dataset = rg.Dataset( + name=f"test_{random.randint(0, 1000)}", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), + client=client, + ) + dataset.create() + assert isinstance(dataset, rg.Dataset) + assert dataset.id is not None + assert dataset.exists() + assert dataset.workspace_id == client.workspaces[0].id + + +def test_retrieving_dataset(client: rg.Argilla, dataset: rg.Dataset): + ws = client.workspaces[0] + dataset = client.datasets(dataset.name, workspace=ws) + assert isinstance(dataset, rg.Dataset) + assert dataset.exists() + + +def test_retrieving_dataset_on_name(client: rg.Argilla, dataset: rg.Dataset): + ws = client.workspaces[0] + dataset = client.datasets(dataset.name, workspace=ws.name) + assert isinstance(dataset, rg.Dataset) + assert dataset.exists() + + +def test_retrieving_dataset_on_default(client: rg.Argilla, dataset: rg.Dataset): + dataset = client.datasets(dataset.name) + assert isinstance(dataset, rg.Dataset) + assert dataset.exists() diff --git a/argilla-sdk/tests/integration/test_empty_settings.py b/argilla-sdk/tests/integration/test_empty_settings.py new file mode 100644 index 0000000000..3b1305a68c --- /dev/null +++ b/argilla-sdk/tests/integration/test_empty_settings.py @@ -0,0 +1,81 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random +from string import ascii_lowercase + +import pytest + +from argilla_sdk import Argilla, Dataset, Settings, Workspace, TextQuestion, TextField +from argilla_sdk._exceptions import SettingsError + + +@pytest.fixture +def workspace(client: Argilla) -> Workspace: + workspace = client.workspaces("test-workspace") + if not workspace.exists(): + workspace.create() + yield workspace + + for dataset in workspace.list_datasets(): + client.api.datasets.delete(dataset.id) + + workspace.delete() + + +def test_dataset_empty_settings(client: Argilla, workspace: Workspace) -> Dataset: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings() + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + with pytest.raises(expected_exception=SettingsError): + dataset.create() + + +def test_dataset_no_fields(client: Argilla, workspace: Workspace) -> None: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings( + questions=[ + TextQuestion(name="text_question"), + ], + ) + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + with pytest.raises(expected_exception=SettingsError): + dataset.create() + + +def test_dataset_no_questions(client: Argilla, workspace: Workspace) -> Dataset: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings( + fields=[ + TextField(name="text_field"), + ], + ) + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + with pytest.raises(expected_exception=SettingsError): + dataset.create() diff --git a/argilla-sdk/tests/integration/test_export_dataset.py b/argilla-sdk/tests/integration/test_export_dataset.py new file mode 100644 index 0000000000..37031f80e7 --- /dev/null +++ b/argilla-sdk/tests/integration/test_export_dataset.py @@ -0,0 +1,125 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import os +import random +import uuid +from string import ascii_lowercase +from tempfile import TemporaryDirectory + +import pytest + +import argilla_sdk as rg + + +@pytest.fixture +def dataset(client) -> rg.Dataset: + mock_dataset_name = "".join(random.choices(ascii_lowercase, k=16)) + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="label", use_markdown=False), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + dataset.create() + yield dataset + dataset.delete() + + +def test_export_dataset_to_disk(dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "external_id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "external_id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "external_id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + + with TemporaryDirectory() as temp_dir: + output_dir = dataset.to_disk(path=temp_dir) + + records_path = os.path.join(output_dir, "records.json") + assert os.path.exists(records_path) + with open(records_path, "r") as f: + exported_records = json.load(f) + + settings_path = os.path.join(output_dir, "settings.json") + assert os.path.exists(settings_path) + with open(settings_path, "r") as f: + exported_settings = json.load(f) + + dataset_path = os.path.join(output_dir, "dataset.json") + assert os.path.exists(dataset_path) + with open(dataset_path, "r") as f: + exported_dataset = json.load(f) + + assert len(exported_records) == len(mock_data) + assert exported_records[0]["fields"]["text"] == "Hello World, how are you?" + assert exported_records[0]["suggestions"]["label"]["value"] == "positive" + + assert exported_settings["fields"][0]["name"] == "text" + assert exported_settings["questions"][0]["name"] == "label" + + assert exported_dataset["name"] == dataset.name + + +def test_import_dataset_from_disk(dataset: rg.Dataset, client): + mock_data = [ + { + "text": "1: Hello World, how are you?", + "label": "positive", + "external_id": uuid.uuid4(), + }, + { + "text": "2: Hello World, how are you?", + "label": "negative", + "external_id": uuid.uuid4(), + }, + { + "text": "3: Hello World, how are you?", + "label": "positive", + "external_id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + + with TemporaryDirectory() as temp_dir: + output_dir = dataset.to_disk(path=temp_dir) + new_dataset = rg.Dataset.from_disk(output_dir, client=client) + + for i, record in enumerate(new_dataset.records(with_suggestions=True)): + assert record.fields.text == mock_data[i]["text"] + assert record.suggestions.label.value == mock_data[i]["label"] + + assert new_dataset.settings.fields[0].name == "text" + assert new_dataset.settings.questions[0].name == "label" diff --git a/argilla-sdk/tests/integration/test_export_records.py b/argilla-sdk/tests/integration/test_export_records.py new file mode 100644 index 0000000000..09f99dc090 --- /dev/null +++ b/argilla-sdk/tests/integration/test_export_records.py @@ -0,0 +1,302 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import random +import uuid +from pathlib import Path +from string import ascii_lowercase +from tempfile import TemporaryDirectory + +import pytest +from datasets import Dataset as HFDataset + +import argilla_sdk as rg +from argilla_sdk import Argilla + + +@pytest.fixture +def dataset(client) -> rg.Dataset: + mock_dataset_name = "".join(random.choices(ascii_lowercase, k=16)) + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="label", use_markdown=False), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + settings=settings, + client=client, + ) + dataset.create() + yield dataset + dataset.delete() + + +def test_export_records_dict_flattened(client: Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + exported_records = dataset.records.to_dict(flatten=True) + assert isinstance(exported_records, dict) + assert isinstance(exported_records["id"], list) + assert isinstance(exported_records["text"], list) + assert isinstance(exported_records["label.suggestion"], list) + assert exported_records["text"] == ["Hello World, how are you?"] * 3 + + +def test_export_records_list_flattened(client: Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + exported_records = dataset.records.to_list(flatten=True) + assert len(exported_records) == len(mock_data) + assert isinstance(exported_records, list) + assert isinstance(exported_records[0], dict) + assert isinstance(exported_records[0]["id"], str) + assert isinstance(exported_records[0]["text"], str) + assert isinstance(exported_records[0]["label.suggestion"], str) + assert exported_records[0]["text"] == "Hello World, how are you?" + assert exported_records[0]["label.suggestion"] == "positive" + assert exported_records[0]["label.suggestion.score"] is None + + +def test_export_records_list_nested(client: Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + exported_records = dataset.records.to_list(flatten=False) + assert len(exported_records) == len(mock_data) + assert exported_records[0]["fields"]["text"] == "Hello World, how are you?" + assert exported_records[0]["suggestions"]["label"]["value"] == "positive" + assert exported_records[0]["suggestions"]["label"]["score"] is None + + +def test_export_records_dict_nested(client: Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + + dataset.records.add(records=mock_data) + exported_records = dataset.records.to_dict(flatten=False) + assert isinstance(exported_records, dict) + assert exported_records["fields"][0]["text"] == "Hello World, how are you?" + assert exported_records["suggestions"][0]["label"]["value"] == "positive" + + +def test_export_records_dict_nested_orient_index(client: Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + exported_records = dataset.records.to_dict(flatten=False, orient="index") + assert isinstance(exported_records, dict) + for mock_record, (id_, exported_record) in zip(mock_data, exported_records.items()): + assert id_ == exported_record["id"] + assert exported_record["fields"]["text"] == mock_record["text"] + assert exported_record["suggestions"]["label"]["value"] == mock_record["label"] + assert exported_record["id"] == str(mock_record["id"]) + + +def test_export_records_to_json(dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "external_id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "external_id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "external_id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + + with TemporaryDirectory() as temp_dir: + temp_file = Path(temp_dir) / "records.json" + dataset.records.to_json(path=temp_file) + with open(temp_file, "r") as f: + exported_records = json.load(f) + assert len(exported_records) == len(mock_data) + assert exported_records[0]["fields"]["text"] == "Hello World, how are you?" + assert exported_records[0]["suggestions"]["label"]["value"] == "positive" + + +def test_export_records_from_json(dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + + with TemporaryDirectory() as temp_dir: + temp_file = Path(temp_dir) / "records.json" + dataset.records.to_json(path=temp_file) + dataset.records.from_json(path=temp_file) + + for i, record in enumerate(dataset.records(with_suggestions=True)): + assert record.fields.text == mock_data[i]["text"] + assert record.suggestions.label.value == mock_data[i]["label"] + assert record.id == str(mock_data[i]["id"]) + + +def test_export_records_to_hf_datasets(dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + }, + ] + dataset.records.add(records=mock_data) + hf_dataset = dataset.records.to_datasets() + + assert isinstance(hf_dataset, HFDataset) + assert hf_dataset.num_rows == len(mock_data) + assert "text" in hf_dataset.column_names + assert "label.suggestion" in hf_dataset.column_names + assert hf_dataset["text"][0] == "Hello World, how are you?" + assert hf_dataset["id"][0] == str(mock_data[0]["id"]) + + +def test_import_records_from_hf_dataset(dataset: rg.Dataset) -> None: + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": str(uuid.uuid4()), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": str(uuid.uuid4()), + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": str(uuid.uuid4()), + }, + ] + mock_hf_dataset = HFDataset.from_list(mock_data) + dataset.records.add(records=mock_hf_dataset) + + for i, record in enumerate(dataset.records(with_suggestions=True)): + assert record.fields.text == mock_data[i]["text"] + assert record.suggestions.label.value == mock_data[i]["label"] + assert record.id == str(mock_data[i]["id"]) diff --git a/argilla-sdk/tests/integration/test_list_records.py b/argilla-sdk/tests/integration/test_list_records.py new file mode 100644 index 0000000000..eb7885e272 --- /dev/null +++ b/argilla-sdk/tests/integration/test_list_records.py @@ -0,0 +1,88 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random +from string import ascii_lowercase + +import pytest + +from argilla_sdk import Argilla, Dataset, Settings, TextField, TextQuestion, Workspace, LabelQuestion + + +@pytest.fixture +def workspace(client: Argilla) -> Workspace: + workspace = client.workspaces("test-workspace") + if not workspace.exists(): + workspace.create() + yield workspace + + for dataset in workspace.list_datasets(): + client.api.datasets.delete(dataset.id) + + workspace.delete() + + +@pytest.fixture +def dataset(client: Argilla, workspace: Workspace) -> Dataset: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings( + fields=[TextField(name="text")], + questions=[ + TextQuestion(name="comment", use_markdown=False), + LabelQuestion(name="sentiment", labels=["positive", "negative"], required=False), + ], + ) + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + dataset.create() + yield dataset + dataset.delete() + + +def test_list_records_with_start_offset(client: Argilla, dataset: Dataset): + dataset.records.add( + [ + {"text": "The record text field", "id": 1}, + {"text": "The record text field", "id": 2}, + ] + ) + + records = list(dataset.records(start_offset=1)) + assert len(records) == 1 + + +def test_list_records_with_responses(client: Argilla, dataset: Dataset): + dataset.records.add( + [ + {"text": "The record text field", "id": 1, "comment": "The comment", "sentiment": "positive"}, + {"text": "The record text field", "id": 2, "comment": "The comment", "sentiment": "negative"}, + ], + mapping={ + "comment": "comment.response", + "sentiment": "sentiment.response", + }, + ) + + records = list(dataset.records(with_responses=True)) + assert len(records) == 2 + + assert records[0].responses.comment[0].value == "The comment" + assert records[0].responses.sentiment[0].value == "positive" + + assert records[1].responses.comment[0].value == "The comment" + assert records[1].responses.sentiment[0].value == "negative" diff --git a/argilla-sdk/tests/integration/test_listing_datasets.py b/argilla-sdk/tests/integration/test_listing_datasets.py new file mode 100644 index 0000000000..18376c9d03 --- /dev/null +++ b/argilla-sdk/tests/integration/test_listing_datasets.py @@ -0,0 +1,35 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk import Argilla, Dataset, Settings, TextField, TextQuestion, Workspace + + +class TestDatasetsList: + def test_list_datasets(self, client: Argilla): + workspace = Workspace(name="test_workspace", client=client) + workspace.create() + + dataset = Dataset( + name="test_dataset", + workspace=workspace.name, + settings=Settings(fields=[TextField(name="text")], questions=[TextQuestion(name="text_question")]), + client=client, + ) + dataset.create() + datasets = client.datasets + assert len(datasets) > 0, "No datasets were found" + + for ds in datasets: + if ds.name == "test_dataset": + assert ds == dataset, "The dataset was not loaded properly" diff --git a/argilla-sdk/tests/integration/test_manage_users.py b/argilla-sdk/tests/integration/test_manage_users.py new file mode 100644 index 0000000000..da5f15247f --- /dev/null +++ b/argilla-sdk/tests/integration/test_manage_users.py @@ -0,0 +1,42 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +from argilla_sdk import User, Argilla + + +@pytest.fixture(scope="session", autouse=True) +def clean_environment(client: Argilla): + for user in client.users: + if user.username.startswith("test"): + user.delete() + yield + for user in client.users: + if user.username.startswith("test"): + user.delete() + + +class TestManageUsers: + def test_create_user(self, client: Argilla): + user = User(username="test_user", password="test_password") + client.users.add(user) + assert user.id is not None + assert client.users(username=user.username).id == user.id + + def test_delete_user(self, client: Argilla): + user = User(username="test_delete_user", password="test_password") + client.users.add(user) + user.delete() + assert not user.exists() diff --git a/argilla-sdk/tests/integration/test_manage_workspaces.py b/argilla-sdk/tests/integration/test_manage_workspaces.py new file mode 100644 index 0000000000..7f9989577e --- /dev/null +++ b/argilla-sdk/tests/integration/test_manage_workspaces.py @@ -0,0 +1,55 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from argilla_sdk import Argilla, Workspace + + +class TestWorkspacesManagement: + def test_create_workspace(self, client: Argilla): + workspace = Workspace(name="test_workspace") + client.workspaces.add(workspace) + + assert workspace in client.workspaces + assert workspace.exists() + + def test_create_and_delete_workspace(self, client: Argilla): + workspace = client.workspaces(name="test_workspace") + if workspace.exists(): + for dataset in workspace.datasets: + dataset.delete() + workspace.delete() + + workspace.create() + assert workspace.exists() + + workspace.delete() + assert not workspace.exists() + + def test_add_and_remove_users_to_workspace(self, client: Argilla): + workspace = client.workspaces(name="test_workspace") + + test_user = client.users(username="test_user") + if test_user.exists(): + test_user.delete() + + workspace.create() + + test_user.password = "test_password" + test_user.create() + + user = workspace.add_user(user=test_user.username) + assert user in workspace.users + + user = workspace.remove_user(user=user) + assert user not in workspace.users diff --git a/argilla-sdk/tests/integration/test_metadata.py b/argilla-sdk/tests/integration/test_metadata.py new file mode 100644 index 0000000000..ce8048cf6b --- /dev/null +++ b/argilla-sdk/tests/integration/test_metadata.py @@ -0,0 +1,142 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random +from string import ascii_lowercase + +import pytest + +import argilla_sdk as rg +from argilla_sdk import Argilla, Dataset, Settings, TextField, Workspace, LabelQuestion + + +@pytest.fixture +def workspace(client: Argilla) -> Workspace: + workspace = client.workspaces("test-workspace") + if not workspace.exists(): + workspace.create() + yield workspace + + for dataset in workspace.list_datasets(): + client.api.datasets.delete(dataset.id) + + workspace.delete() + + +@pytest.fixture +def dataset_with_metadata(client: Argilla, workspace: Workspace) -> Dataset: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings( + fields=[TextField(name="text")], + questions=[LabelQuestion(name="label", labels=["positive", "negative"])], + metadata=[ + rg.TermsMetadataProperty(name="category", options=["A", "B", "C"]), + ], + ) + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + dataset.create() + dataset.get() + return dataset + + +def test_create_dataset_with_metadata(client: Argilla, workspace: Workspace) -> Dataset: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings( + fields=[TextField(name="text")], + questions=[LabelQuestion(name="label", labels=["positive", "negative"])], + metadata=[ + rg.TermsMetadataProperty(name="category", options=["A", "B", "C"]), + ], + ) + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + dataset.create() + dataset.get() + + assert dataset.settings.metadata[0].name == "category" + + +@pytest.mark.parametrize( + "min, max, type", + [ + (0, 1, rg.FloatMetadataProperty), + (None, None, rg.FloatMetadataProperty), + (0, 1, rg.IntegerMetadataProperty), + (None, None, rg.IntegerMetadataProperty), + ], +) +def test_create_dataset_with_numerical_metadata(client: Argilla, workspace: Workspace, min, max, type) -> Dataset: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings( + fields=[TextField(name="text")], + questions=[LabelQuestion(name="label", labels=["positive", "negative"])], + metadata=[ + type(name="price", min=min, max=max), + ], + ) + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + dataset.create() + gotten_dataset = dataset.get() + + assert gotten_dataset.settings.metadata[0].name == "price" + assert gotten_dataset.settings.metadata[0].min == min + assert gotten_dataset.settings.metadata[0].max == max + + +def test_add_record_with_metadata(dataset_with_metadata: Dataset): + records = [ + {"text": "text", "label": "positive", "category": "A"}, + {"text": "text", "label": "negative", "category": "B"}, + ] + + dataset_with_metadata.records.add(records) + + for idx, record in enumerate(dataset_with_metadata.records): + assert record.metadata.category == records[idx]["category"] + assert record.metadata["category"] == records[idx]["category"] + assert len(record.metadata) == 1 + models = record.metadata.models + assert models[0].value == records[idx]["category"] + assert models[0].name == "category" + + +def test_add_record_with_mapped_metadata(dataset_with_metadata: Dataset): + records = [ + {"text": "text", "label": "positive", "my_category": "A"}, + {"text": "text", "label": "negative", "my_category": "B"}, + ] + + dataset_with_metadata.records.add(records, mapping={"my_category": "category"}) + + for idx, record in enumerate(dataset_with_metadata.records): + assert record.metadata.category == records[idx]["my_category"] + assert record.metadata["category"] == records[idx]["my_category"] + assert len(record.metadata) == 1 + models = record.metadata.models + assert models[0].value == records[idx]["my_category"] + assert models[0].name == "category" diff --git a/argilla-sdk/tests/integration/test_publish_datasets.py b/argilla-sdk/tests/integration/test_publish_datasets.py new file mode 100644 index 0000000000..de4fa524db --- /dev/null +++ b/argilla-sdk/tests/integration/test_publish_datasets.py @@ -0,0 +1,76 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from argilla_sdk import ( + Argilla, + Settings, + TextField, + TextQuestion, + SpanQuestion, + LabelQuestion, + MultiLabelQuestion, + RatingQuestion, + RankingQuestion, + TermsMetadataProperty, + IntegerMetadataProperty, + FloatMetadataProperty, +) + + +def test_publish_dataset(client: "Argilla"): + new_ws = client.workspaces("new_ws") + if not new_ws.exists(): + new_ws.create() + + assert new_ws.exists(), "The workspace was not created" + + ds = client.datasets("new_ds", workspace=new_ws) + if ds.exists(): + ds.delete() + + assert not ds.exists(), "The dataset was not deleted" + + ds.settings = Settings( + guidelines="This is a test dataset", + allow_extra_metadata=True, + fields=[TextField(name="text-field")], + questions=[ + TextQuestion(name="text-question"), + RatingQuestion(name="rating-question", values=[1, 2, 3, 4, 5]), + RankingQuestion(name="ranking-question", values=["rank1", "rank2", "rank3"]), + LabelQuestion(name="label-question", labels=["A", "B", "C"]), + MultiLabelQuestion(name="multi-label-question", labels=["A", "B", "C"]), + SpanQuestion(name="span-question", field="text-field", labels=["label1", "label2"]), + ], + metadata=[ + TermsMetadataProperty(name="metadata-property", options=["term1", "term2"]), + TermsMetadataProperty(name="term-property"), + IntegerMetadataProperty(name="metadata-property-2", min=0, max=10), + FloatMetadataProperty(name="metadata-property-3", min=0, max=10), + ], + ) + + ds.create() + + created_dataset = client.datasets(name=ds.name, workspace=new_ws) + assert created_dataset.exists(), "The dataset was not found" + assert created_dataset == ds + assert created_dataset.settings == ds.settings, "The settings were not saved" + + assert created_dataset.guidelines == ds.guidelines + assert created_dataset.allow_extra_metadata == ds.allow_extra_metadata + assert created_dataset.fields == ds.fields + assert created_dataset.questions == ds.questions + assert created_dataset.schema == ds.schema diff --git a/argilla-sdk/tests/integration/test_query_records.py b/argilla-sdk/tests/integration/test_query_records.py new file mode 100644 index 0000000000..193de14b6d --- /dev/null +++ b/argilla-sdk/tests/integration/test_query_records.py @@ -0,0 +1,119 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random +from string import ascii_lowercase + +import pytest + +import argilla_sdk as rg +from argilla_sdk import Argilla, Dataset, Settings, TextField, Workspace, LabelQuestion + + +@pytest.fixture +def workspace(client: Argilla) -> Workspace: + workspace = client.workspaces("test-workspace") + if not workspace.exists(): + workspace.create() + yield workspace + + for dataset in workspace.list_datasets(): + client.api.datasets.delete(dataset.id) + + workspace.delete() + + +@pytest.fixture +def dataset(client: Argilla, workspace: Workspace) -> Dataset: + name = "".join(random.choices(ascii_lowercase, k=16)) + settings = Settings( + fields=[TextField(name="text")], + questions=[LabelQuestion(name="label", labels=["positive", "negative"])], + ) + dataset = Dataset( + name=name, + workspace=workspace.name, + settings=settings, + client=client, + ) + dataset.create() + yield dataset + dataset.delete() + + +def test_query_records_by_text(client: Argilla, dataset: Dataset): + dataset.records.add( + [ + {"text": "First record", "id": 1}, + {"text": "Second record", "id": 2}, + ] + ) + + records = list(dataset.records(query="first")) + + assert len(records) == 1 + assert records[0].id == "1" + assert records[0].fields.text == "First record" + + records = list(dataset.records(query="second")) + assert len(records) == 1 + assert records[0].id == "2" + assert records[0].fields.text == "Second record" + + records = list(dataset.records(query="record")) + assert len(records) == 2 + + +def test_query_records_by_suggestion_value(client: Argilla, dataset: Dataset): + data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": 1, + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": 2, + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": 3, + }, + ] + + dataset.records.add(data) + + query = rg.Query(filter=rg.Filter([("label", "==", "positive")])) + records = list(dataset.records(query=query)) + + assert len(records) == 2 + assert records[0].id == "1" + assert records[1].id == "3" + + query = rg.Query(filter=rg.Filter(("label", "==", "negative"))) + records = list(dataset.records(query=query)) + + assert len(records) == 1 + assert records[0].id == "2" + + query = rg.Query(filter=rg.Filter(("label", "in", ["positive", "negative"]))) + records = list(dataset.records(query=query)) + assert len(records) == 3 + + test_filter = rg.Filter([("label", "==", "positive"), ("label", "==", "negative")]) + query = rg.Query(filter=test_filter) + records = list(dataset.records(query=query)) + assert len(records) == 0 diff --git a/argilla-sdk/tests/integration/test_ranking_questions.py b/argilla-sdk/tests/integration/test_ranking_questions.py new file mode 100644 index 0000000000..0ebc92fba3 --- /dev/null +++ b/argilla-sdk/tests/integration/test_ranking_questions.py @@ -0,0 +1,61 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +import pytest + +import argilla_sdk as rg + + +@pytest.fixture +def dataset(client: rg.Argilla): + ws = client.workspaces[0] + settings = rg.Settings( + guidelines=f"my_dataset_{random.randint(1, 100)}", + fields=[rg.TextField(name="text", required=True, title="Text")], + questions=[ + rg.LabelQuestion(name="label", title="Label", labels=["positive", "negative"]), + rg.RankingQuestion(name="ranking", title="Ranking", values=["1", "2", "3"]), + ], + ) + + ds = rg.Dataset( + name=f"my_dataset_{random.randint(1, 100)}", + settings=settings, + client=client, + workspace=ws, + ) + ds.create() + yield ds + ds.delete() + + +def test_ranking_question_with_suggestions(dataset: rg.Dataset): + dataset.records.add( + [ + {"text": "This is a test text", "label": "positive", "ranking": ["2", "1", "3"]}, + ], + ) + assert next(iter(dataset.records(with_suggestions=True))).suggestions.ranking.value == ["2", "1", "3"] + + +def test_ranking_question_with_responses(dataset: rg.Dataset): + dataset.records.add( + [ + {"text": "This is a test text", "label": "positive", "ranking_": ["2"]}, + ], + mapping={"ranking_": "ranking.response"}, + ) + assert next(iter(dataset.records(with_responses=True))).responses.ranking[0].value == ["2"] diff --git a/argilla-sdk/tests/integration/test_update_records.py b/argilla-sdk/tests/integration/test_update_records.py new file mode 100644 index 0000000000..bcfa328ce9 --- /dev/null +++ b/argilla-sdk/tests/integration/test_update_records.py @@ -0,0 +1,128 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random +import uuid +from string import ascii_lowercase + +import pytest + +import argilla_sdk as rg +from argilla_sdk import Record +from argilla_sdk._models import RecordModel + + +@pytest.fixture +def dataset(client: rg.Argilla) -> rg.Dataset: + workspace = client.workspaces[0] + mock_dataset_name = "".join(random.choices(ascii_lowercase, k=16)) + settings = rg.Settings( + allow_extra_metadata=True, + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="label", use_markdown=False), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + workspace=workspace.name, + settings=settings, + client=client, + ) + dataset.create() + return dataset + + +def test_update_records_separately(client: rg.Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + ] + updated_mock_data = [ + { + "text": r["text"], + "label": "positive", + "id": r["id"], + } + for r in mock_data + ] + + dataset.records.add(records=mock_data) + dataset.records.update(records=updated_mock_data) + dataset_records = list(dataset.records) + + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[1].id == str(mock_data[1]["id"]) + assert dataset_records[2].id == str(mock_data[2]["id"]) + for record in dataset.records(with_suggestions=True): + assert record.suggestions[0].value == "positive" + + +def test_update_records_partially(client: rg.Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + ] + updated_mock_data = mock_data.copy() + updated_mock_data[0]["label"] = "positive" + dataset.records.add(records=mock_data) + dataset.records.update(records=updated_mock_data) + + for i, record in enumerate(dataset.records(with_suggestions=True)): + assert record.suggestions[0].value == updated_mock_data[i]["label"] + + +def test_update_records_by_server_id(client: rg.Argilla, dataset: rg.Dataset): + record = Record.from_model( + RecordModel(fields={"text": "Hello World, how are you?"}, metadata={"key": "value"}), + dataset=dataset, + ) + created_record = dataset.records.add(record)[0] + + created_record.metadata["new-key"] = "new-value" + dataset.records.update([created_record]) + + assert len(list(dataset.records)) == 1 + + updated_record = list(dataset.records)[0] + assert updated_record.metadata["new-key"] == "new-value" + assert updated_record._server_id == created_record._server_id diff --git a/argilla-sdk/tests/integration/test_vectors.py b/argilla-sdk/tests/integration/test_vectors.py new file mode 100644 index 0000000000..2b7a4726c0 --- /dev/null +++ b/argilla-sdk/tests/integration/test_vectors.py @@ -0,0 +1,143 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random +import uuid +from datetime import datetime + +import pytest + +import argilla_sdk as rg + + +@pytest.fixture +def dataset(client: rg.Argilla) -> rg.Dataset: + workspace = client.workspaces[0] + mock_dataset_name = f"test_add_records{datetime.now().strftime('%Y%m%d%H%M%S')}" + settings = rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.LabelQuestion(name="label", labels=["positive", "negative"]), + ], + vectors=[ + rg.VectorField(name="vector", dimensions=10), + ], + ) + dataset = rg.Dataset( + name=mock_dataset_name, + workspace=workspace, + settings=settings, + client=client, + ) + dataset.create() + yield dataset + dataset.delete() + + +def test_vectors(client: rg.Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + ] + dataset.records.add(records=mock_data) + + dataset_records = list(dataset.records(with_responses=True, with_suggestions=True, with_vectors=["vector"])) + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[1].id == str(mock_data[1]["id"]) + assert dataset_records[2].id == str(mock_data[2]["id"]) + assert dataset_records[0].vectors.vector == mock_data[0]["vector"] + assert dataset_records[1].vectors.vector == mock_data[1]["vector"] + assert dataset_records[2].vectors.vector == mock_data[2]["vector"] + + +def test_vectors_return_with_bool(client: rg.Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + ] + dataset.records.add(records=mock_data) + + dataset_records = list(dataset.records(with_responses=True, with_suggestions=True, with_vectors=True)) + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[1].id == str(mock_data[1]["id"]) + assert dataset_records[2].id == str(mock_data[2]["id"]) + assert dataset_records[0].vectors.vector == mock_data[0]["vector"] + assert dataset_records[1].vectors.vector == mock_data[1]["vector"] + assert dataset_records[2].vectors.vector == mock_data[2]["vector"] + + +def test_vectors_return_with_name(client: rg.Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + { + "text": "Hello World, how are you?", + "label": "positive", + "id": uuid.uuid4(), + "vector": [random.random() for _ in range(10)], + }, + ] + dataset.records.add(records=mock_data) + + dataset_records = list(dataset.records(with_responses=True, with_suggestions=True, with_vectors="vector")) + assert dataset_records[0].id == str(mock_data[0]["id"]) + assert dataset_records[1].id == str(mock_data[1]["id"]) + assert dataset_records[2].id == str(mock_data[2]["id"]) + assert dataset_records[0].vectors.vector == mock_data[0]["vector"] + assert dataset_records[1].vectors.vector == mock_data[1]["vector"] + assert dataset_records[2].vectors.vector == mock_data[2]["vector"] diff --git a/argilla-sdk/tests/unit/api/http/test_http_client.py b/argilla-sdk/tests/unit/api/http/test_http_client.py new file mode 100644 index 0000000000..3a65d710a7 --- /dev/null +++ b/argilla-sdk/tests/unit/api/http/test_http_client.py @@ -0,0 +1,64 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from httpx import Timeout + +from argilla_sdk import Argilla + + +class TestHTTPClient: + def test_create_default_client(self): + http_client = Argilla().http_client + + assert http_client is not None + assert http_client.base_url == "http://localhost:6900" + assert http_client.timeout == Timeout(60) + assert http_client.headers["X-Argilla-Api-Key"] == "argilla.apikey" + + def test_create_client_with_custom_timeout(self): + http_client = Argilla(timeout=30).http_client + + assert http_client is not None + assert http_client.base_url == "http://localhost:6900" + assert http_client.timeout == Timeout(30) + assert http_client.headers["X-Argilla-Api-Key"] == "argilla.apikey" + + def test_create_client_with_custom_api_url(self): + http_client = Argilla(api_url="http://localhost:8000").http_client + + assert http_client is not None + assert http_client.base_url == "http://localhost:8000" + + def test_create_client_with_custom_api_key(self): + http_client = Argilla(api_key="custom.apikey").http_client + + assert http_client is not None + assert http_client.base_url == "http://localhost:6900" + assert http_client.headers["X-Argilla-Api-Key"] == "custom.apikey" + + def test_create_client_with_extra_headers(self): + http_client = Argilla(headers={"X-Custom-Header": "Custom value"}).http_client + + assert http_client is not None + assert http_client.base_url == "http://localhost:6900" + assert http_client.headers["X-Argilla-Api-Key"] == "argilla.apikey" + assert http_client.headers["X-Custom-Header"] == "Custom value" + + def test_create_client_with_extra_cookies(self): + http_client = Argilla(cookies={"session": "session_id"}).http_client + + assert http_client is not None + assert http_client.base_url == "http://localhost:6900" + assert http_client.headers["X-Argilla-Api-Key"] == "argilla.apikey" + assert http_client.cookies["session"] == "session_id" diff --git a/argilla-sdk/tests/unit/conftest.py b/argilla-sdk/tests/unit/conftest.py new file mode 100644 index 0000000000..e27f091979 --- /dev/null +++ b/argilla-sdk/tests/unit/conftest.py @@ -0,0 +1,21 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +# @pytest.fixture(scope="function", autouse=True) +# def mock_httpx_client(mocker) -> Generator[httpx.Client, None, None]: +# mock_client = mocker.Mock(httpx.Client) +# argilla_sdk.DEFAULT_HTTP_CLIENT = mock_client + +# return mock_client diff --git a/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py b/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py new file mode 100644 index 0000000000..5c9c93f89d --- /dev/null +++ b/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py @@ -0,0 +1,67 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import uuid + +import pytest + +import argilla_sdk as rg +from argilla_sdk.records._resource import Record + + +@pytest.fixture +def user_id(): + return str(uuid.uuid4()) + + +@pytest.fixture +def record(user_id): + return rg.Record( + fields={"text": "Hello World, how are you?"}, + suggestions=[ + rg.Suggestion("label", "positive", score=0.9), + rg.Suggestion("topics", ["topic1", "topic2"], score=[0.9, 0.8]), + ], + responses=[rg.Response("label", "positive", user_id=user_id)], + metadata={"source": "twitter", "language": "en"}, + vectors=[rg.Vector("text", [0, 0, 0])], + id=str(uuid.uuid4()), + ) + + +def test_export_record_to_from_dict(record): + record_dict = record.to_dict() + imported_record = rg.Record.from_dict(record_dict) + + assert record.responses[0].value == imported_record.responses[0].value + assert record.suggestions[0].value == imported_record.suggestions[0].value + for key, value in record.metadata.items(): + assert imported_record.metadata[key] == value + assert record.fields.text == imported_record.fields.text + assert record.id == imported_record.id + + +def test_export_generic_io_via_json(record): + record_dict = record.to_dict() + record_dict = json.dumps(record_dict) + record_dict = json.loads(record_dict) + imported_record = Record.from_dict(record_dict) + + assert record.responses[0].value == imported_record.responses[0].value + assert record.suggestions[0].value == imported_record.suggestions[0].value + for key, value in record.metadata.items(): + assert imported_record.metadata[key] == value + assert record.fields.text == imported_record.fields.text + assert record.vectors.text == imported_record.vectors.text diff --git a/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py new file mode 100644 index 0000000000..c72ccdde0b --- /dev/null +++ b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py @@ -0,0 +1,85 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +import uuid +from datetime import datetime +from tempfile import TemporaryDirectory + +import httpx +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg + + +@pytest.fixture +def settings(): + settings = rg.Settings( + fields=[ + rg.TextField(name="text", title="text"), + ], + metadata=[ + rg.FloatMetadataProperty("source"), + ], + questions=[ + rg.LabelQuestion(name="label", title="text", labels=["positive", "negative"]), + ], + vectors=[rg.VectorField(name="text_vector", dimensions=3)], + ) + return settings + + +@pytest.fixture +def dataset(httpx_mock: HTTPXMock, settings) -> rg.Dataset: + api_url = "http://test_url" + client = rg.Argilla(api_url) + workspace_id = uuid.uuid4() + workspace_name = "workspace-01" + mock_workspace = { + "id": str(workspace_id), + "name": workspace_name, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + json={"items": [mock_workspace]}, + url=f"{api_url}/api/v1/me/workspaces", + method="GET", + status_code=200, + ) + + httpx_mock.add_response( + url=f"{api_url}/api/v1/workspaces/{workspace_id}", + method="GET", + status_code=200, + json=mock_workspace, + ) + + with httpx.Client(): + dataset = rg.Dataset( + client=client, + name=f"dataset_{uuid.uuid4()}", + settings=settings, + workspace=workspace_name, + ) + yield dataset + + +def test_export_settings_from_disk(settings): + with TemporaryDirectory() as temp_dir: + temp_file_path = f"{temp_dir}/settings.json" + settings.to_json(temp_file_path) + loaded_settings = rg.Settings.from_json(temp_file_path) + + assert settings == loaded_settings diff --git a/argilla-sdk/tests/unit/helpers/test_resource_repr.py b/argilla-sdk/tests/unit/helpers/test_resource_repr.py new file mode 100644 index 0000000000..82659678c4 --- /dev/null +++ b/argilla-sdk/tests/unit/helpers/test_resource_repr.py @@ -0,0 +1,57 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid + +import argilla_sdk as rg +from argilla_sdk._helpers._resource_repr import ResourceHTMLReprMixin +from argilla_sdk._models import DatasetModel + + +class TestResourceHTMLReprMixin: + def test_represent_workspaces_as_html(self): + client = rg.Argilla() + workspaces = [ + rg.Workspace(name="workspace1", id=uuid.uuid4()), + rg.Workspace(name="workspace2", id=uuid.uuid4()), + ] + + assert ( + ResourceHTMLReprMixin()._represent_as_html(workspaces) == "

Workspaces

" + "" + "" + f"" + f"" + "
nameidupdated_at
workspace1{str(workspaces[0].id)}None
workspace2{str(workspaces[1].id)}None
" + "" + ) + + workspace = rg.Workspace(name="workspace1", id=uuid.uuid4()) + datasets = [ + rg.Dataset.from_model( + DatasetModel(id=uuid.uuid4(), name="dataset1", workspace_id=workspace.id), client=client + ), + rg.Dataset.from_model( + DatasetModel(id=uuid.uuid4(), name="dataset2", workspace_id=workspace.id), client=client + ), + ] + + assert ( + ResourceHTMLReprMixin()._represent_as_html(datasets) == "

Datasets

" + "" + "" + f"" + f"" + "
nameidworkspace_idupdated_at
dataset1{str(datasets[0].id)}{str(workspace.id)}None
dataset2{str(datasets[1].id)}{str(workspace.id)}None
" + ) diff --git a/argilla-sdk/tests/unit/test_interface.py b/argilla-sdk/tests/unit/test_interface.py new file mode 100644 index 0000000000..41066b67fc --- /dev/null +++ b/argilla-sdk/tests/unit/test_interface.py @@ -0,0 +1,36 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest import mock + +import argilla_sdk as rg + + +class TestArgilla: + def test_default_client(self): + with mock.patch("argilla_sdk.Argilla") as mock_client: + mock_client.return_value.api_url = "http://localhost:6900" + mock_client.return_value.api_key = "admin.apikey" + mock_client.return_value.workspace = "argilla" + + client = rg.Argilla(api_url="http://localhost:6900", api_key="admin.apikey") + assert client.api_url == "http://localhost:6900" + assert client.api_key == "admin.apikey" + + def test_multiple_clients(self): + with mock.patch("argilla_sdk.client._api.APIClient.http_client"): + local_client = rg.Argilla(api_url="http://localhost:6900", api_key="admin.apikey") + remote_client = rg.Argilla(api_url="http://argilla.production.net", api_key="admin.apikey") + assert local_client.api_url == "http://localhost:6900" + assert remote_client.api_url == "http://argilla.production.net" diff --git a/argilla-sdk/tests/unit/test_record_ingestion.py b/argilla-sdk/tests/unit/test_record_ingestion.py new file mode 100644 index 0000000000..54c41d06fe --- /dev/null +++ b/argilla-sdk/tests/unit/test_record_ingestion.py @@ -0,0 +1,225 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from uuid import uuid4 + +import pytest + +import argilla_sdk as rg + + +@pytest.fixture +def dataset(): + settings = rg.Settings( + fields=[rg.TextField(name="prompt")], + questions=[rg.LabelQuestion(name="label", labels=["negative", "positive"])], + metadata=[rg.FloatMetadataProperty(name="score")], + vectors=[rg.VectorField(name="vector", dimensions=3)], + ) + workspace = rg.Workspace(name="workspace", id=uuid4()) + return rg.Dataset( + name="test_dataset", + settings=settings, + workspace=workspace, + ) + + +def test_ingest_record_from_dict(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "What is the capital of France?", + "label": "positive", + }, + ) + + assert record.fields.prompt == "What is the capital of France?" + assert record.suggestions.label.value == "positive" + + +def test_ingest_record_from_dict_with_mapping(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "my_prompt": "What is the capital of France?", + "label": "positive", + }, + mapping={ + "my_prompt": "prompt", + }, + ) + + assert record.fields.prompt == "What is the capital of France?" + assert record.suggestions.label.value == "positive" + + +def test_ingest_record_from_dict_with_suggestions(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.suggestions.label.value == "negative" + + +def test_ingest_record_from_dict_with_suggestions_scores(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "score": 0.9, + "model": "model_name", + }, + mapping={ + "score": "label.suggestion.score", + "model": "label.suggestion.agent", + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.suggestions.label.value == "negative" + assert record.suggestions.label.score == 0.9 + assert record.suggestions.label.agent == "model_name" + + +def test_ingest_record_from_dict_with_suggestions_scores_and_agent(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "score": 0.9, + "model": "model_name", + }, + mapping={ + "score": "label.suggestion.score", + "model": "label.suggestion.agent", + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.suggestions.label.value == "negative" + assert record.suggestions.label.score == 0.9 + assert record.suggestions.label.agent == "model_name" + + +def test_ingest_record_from_dict_with_responses(dataset): + user_id = uuid4() + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + }, + mapping={ + "label": "label.response", + }, + user_id=user_id, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.responses.label[0].value == "negative" + assert record.responses.label[0].user_id == user_id + + +def test_ingest_record_from_dict_with_id_as_id(dataset): + record_id = uuid4() + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "id": record_id, + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.id == record_id + + +def test_ingest_record_from_dict_with_id_and_mapping(dataset): + record_id = uuid4() + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "test_id": record_id, + }, + mapping={ + "test_id": "id", + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.id == record_id + + +def test_ingest_record_from_dict_with_metadata(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "score": 0.9, + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.suggestions.label.value == "negative" + assert record.metadata["score"] == 0.9 + + +def test_ingest_record_from_dict_with_metadata_and_mapping(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "test_score": 0.9, + }, + mapping={ + "test_score": "score", + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.suggestions.label.value == "negative" + assert record.metadata["score"] == 0.9 + + +def test_ingest_record_from_dict_with_vectors(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "vector": [1, 2, 3], + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.suggestions.label.value == "negative" + assert record.vectors.vector == [1, 2, 3] + + +def test_ingest_record_from_dict_with_vectors_and_mapping(dataset): + record = dataset.records._infer_record_from_mapping( + data={ + "prompt": "Hello World, how are you?", + "label": "negative", + "test_vector": [1, 2, 3], + }, + mapping={ + "test_vector": "vector", + }, + ) + + assert record.fields.prompt == "Hello World, how are you?" + assert record.suggestions.label.value == "negative" + assert record.vectors.vector == [1, 2, 3] diff --git a/argilla-sdk/tests/unit/test_record_responses.py b/argilla-sdk/tests/unit/test_record_responses.py new file mode 100644 index 0000000000..b6f57ee3fd --- /dev/null +++ b/argilla-sdk/tests/unit/test_record_responses.py @@ -0,0 +1,132 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import uuid + +import pytest + +from argilla_sdk import Response, User, Dataset, Settings, TextQuestion, TextField, Workspace +from argilla_sdk.records._resource import RecordResponses, Record + + +@pytest.fixture +def record(): + workspace = Workspace(name="workspace", id=uuid.uuid4()) + dataset = Dataset( + workspace=workspace, + settings=Settings( + fields=[TextField(name="name")], + allow_extra_metadata=True, + questions=[ + TextQuestion(name="question_a"), + TextQuestion(name="question_b"), + TextQuestion(name="question_c"), + ], + ), + ) + return Record(fields={"name": "John Doe"}, metadata={"age": 30}, _dataset=dataset) + + +class TestRecordResponses: + def test_create_record_responses_for_single_user(self, record: Record): + user = User(username="johndoe", id=uuid.uuid4()) + + responses = [ + Response(question_name="question_a", value="answer_a", user_id=user.id), + Response(question_name="question_b", value="answer_b", user_id=user.id), + Response(question_name="question_c", value="answer_c", user_id=user.id), + ] + + record_responses = RecordResponses(responses, record) + + assert record_responses.question_a[0].value == "answer_a" + assert record_responses.question_a[0].user_id == user.id + assert record_responses.question_b[0].value == "answer_b" + assert record_responses.question_b[0].user_id == user.id + assert record_responses.question_c[0].value == "answer_c" + assert record_responses.question_c[0].user_id == user.id + + def test_create_record_responses_for_multiple_users(self, record: Record): + user_a = User(username="johndoe", id=uuid.uuid4()) + user_b = User(username="janedoe", id=uuid.uuid4()) + + responses = [ + Response(question_name="question_a", value="answer_a", user_id=user_a.id), + Response(question_name="question_a", value="answer_a", user_id=user_b.id), + Response(question_name="question_b", value="answer_b", user_id=user_a.id), + Response(question_name="question_b", value="answer_b", user_id=user_b.id), + ] + + record_responses = RecordResponses(responses, record) + + assert record_responses.question_a[0].value == "answer_a" + assert record_responses.question_a[0].user_id == user_a.id + assert record_responses.question_a[1].value == "answer_a" + assert record_responses.question_a[1].user_id == user_b.id + assert record_responses.question_b[0].value == "answer_b" + assert record_responses.question_b[0].user_id == user_a.id + + def test_generate_responses_models_for_record_responses(self, record: Record): + user = User(username="johndoe", id=uuid.uuid4()) + + record_responses = RecordResponses( + responses=[ + Response(question_name="question_a", value="answer_a", user_id=user.id), + Response(question_name="question_b", value="answer_b", user_id=user.id), + ], + record=record, + ) + + models = record_responses.api_models() + assert len(models) == 1 + assert models[0].model_dump() == { + "user_id": str(user.id), + "values": { + "question_a": {"value": "answer_a"}, + "question_b": {"value": "answer_b"}, + }, + "status": "draft", + } + + def test_generate_response_models_for_record_responses_with_multiple_users(self, record: Record): + user_a = User(username="johndoe", id=uuid.uuid4()) + user_b = User(username="janedoe", id=uuid.uuid4()) + + record_responses = RecordResponses( + responses=[ + Response(question_name="question_a", value="answer_a", user_id=user_a.id), + Response(question_name="question_a", value="answer_a", user_id=user_b.id), + Response(question_name="question_b", value="answer_b", user_id=user_a.id), + Response(question_name="question_b", value="answer_b", user_id=user_b.id), + ], + record=record, + ) + + models = record_responses.api_models() + assert len(models) == 2 + assert models[0].model_dump() == { + "user_id": str(user_a.id), + "values": { + "question_a": {"value": "answer_a"}, + "question_b": {"value": "answer_b"}, + }, + "status": "draft", + } + assert models[1].model_dump() == { + "user_id": str(user_b.id), + "values": { + "question_a": {"value": "answer_a"}, + "question_b": {"value": "answer_b"}, + }, + "status": "draft", + } diff --git a/argilla-sdk/tests/unit/test_record_suggestions.py b/argilla-sdk/tests/unit/test_record_suggestions.py new file mode 100644 index 0000000000..8ce6105b02 --- /dev/null +++ b/argilla-sdk/tests/unit/test_record_suggestions.py @@ -0,0 +1,40 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +from argilla_sdk import Record, Suggestion +from argilla_sdk.records._resource import RecordSuggestions + + +@pytest.fixture +def record(): + return Record(fields={"name": "John Doe"}, metadata={"age": 30}) + + +class TestRecordSuggestions: + def test_create_record_suggestions(self, record: Record): + suggestions = RecordSuggestions( + suggestions=[ + Suggestion("name", "John Doe", score=0.9), + Suggestion("label", ["A", "B"], score=[0.8, 0.9]), + ], + record=record, + ) + + assert suggestions.record == record + assert suggestions.name.value == "John Doe" + assert suggestions.name.score == 0.9 + assert suggestions.label.value == ["A", "B"] + assert suggestions.label.score == [0.8, 0.9] diff --git a/argilla-sdk/tests/unit/test_resources/test_datasets.py b/argilla-sdk/tests/unit/test_resources/test_datasets.py new file mode 100644 index 0000000000..80f0b1b037 --- /dev/null +++ b/argilla-sdk/tests/unit/test_resources/test_datasets.py @@ -0,0 +1,318 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid +from datetime import datetime + +import httpx +import pytest +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg +from argilla_sdk._exceptions import ( + BadRequestError, + ConflictError, + ForbiddenError, + InternalServerError, + NotFoundError, + UnprocessableEntityError, +) + + +@pytest.fixture +def dataset(httpx_mock: HTTPXMock) -> rg.Dataset: + api_url = "http://test_url" + client = rg.Argilla(api_url) + workspace_id = uuid.uuid4() + workspace_name = "workspace-01" + mock_workspace = { + "id": str(workspace_id), + "name": workspace_name, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + json={"items": [mock_workspace]}, + url=f"{api_url}/api/v1/me/workspaces", + method="GET", + status_code=200, + ) + + httpx_mock.add_response( + url=f"{api_url}/api/v1/workspaces/{workspace_id}", + method="GET", + status_code=200, + json=mock_workspace, + ) + + with httpx.Client(): + dataset = rg.Dataset( + client=client, + name=f"dataset_{uuid.uuid4()}", + settings=rg.Settings( + fields=[ + rg.TextField(name="text"), + ], + questions=[ + rg.TextQuestion(name="response"), + ], + ), + workspace=workspace_name, + ) + yield dataset + + +class TestDatasets: + def mock_dataset_settings(self, httpx_mock: HTTPXMock, dataset_id: uuid.UUID, dataset_dict: dict): + mock_field = { + "id": str(uuid.uuid4()), + "name": "text", + "settings": {"type": "text", "use_markdown": True}, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + mock_question = { + "id": str(uuid.uuid4()), + "name": "response", + "settings": {"type": "text", "use_markdown": True}, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + json=dataset_dict, + url=self.url(f"/api/v1/datasets/{dataset_id}"), + method="PATCH", + status_code=200, + ) + httpx_mock.add_response( + json=mock_field, url=self.url(f"/api/v1/datasets/{dataset_id}/fields"), method="POST", status_code=200 + ) + httpx_mock.add_response( + json=mock_question, url=self.url(f"/api/v1/datasets/{dataset_id}/questions"), method="POST", status_code=200 + ) + + def url(self, path: str) -> str: + return f"http://test_url{path}" + + @pytest.mark.parametrize( + "status_code, expected_exception, expected_message", + [ + (200, None, None), + (400, BadRequestError, "BadRequestError"), + (403, ForbiddenError, "ForbiddenError"), + (404, NotFoundError, "NotFoundError"), + (409, ConflictError, "ConflictError"), + (422, UnprocessableEntityError, "UnprocessableEntityError"), + (500, InternalServerError, "InternalServerError"), + ], + ) + def test_create_dataset(self, httpx_mock: HTTPXMock, status_code, expected_exception, expected_message, dataset): + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "id": str(mock_dataset_id), + "name": "dataset-01", + "status": "draft", + "allow_extra_metadata": False, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + + httpx_mock.add_response( + json=mock_return_value, + url=self.url("/api/v1/datasets"), + method="POST", + status_code=status_code, + ) + + if status_code == 200: + httpx_mock.add_response( + json=mock_return_value, + url=self.url(f"/api/v1/datasets/{mock_dataset_id}"), + method="GET", + status_code=200, + ) + httpx_mock.add_response( + json=mock_return_value, + url=self.url(f"/api/v1/datasets/{mock_dataset_id}/publish"), + method="PUT", + status_code=200, + ) + self.mock_dataset_settings(httpx_mock, mock_dataset_id, mock_return_value) + with httpx.Client(): + if expected_exception: + with pytest.raises(expected_exception=expected_exception) as excinfo: + dataset.create() + assert expected_message in str(excinfo.value) + else: + dataset.create() + assert dataset.name == mock_return_value["name"] + + @pytest.mark.parametrize( + "status_code, expected_exception, expected_message", + [ + (200, None, None), + (400, BadRequestError, "BadRequestError"), + (403, ForbiddenError, "ForbiddenError"), + (404, NotFoundError, "NotFoundError"), + (409, ConflictError, "ConflictError"), + (422, UnprocessableEntityError, "UnprocessableEntityError"), + (500, InternalServerError, "InternalServerError"), + ], + ) + def test_update_dataset(self, httpx_mock: HTTPXMock, status_code, expected_exception, expected_message, dataset): + mock_dataset_id = uuid.uuid4() + mock_workspace_id = uuid.uuid4() + mock_patch_return_value = { + "id": str(mock_dataset_id), + "name": "new_name", + "workspace_id": str(mock_workspace_id), + "guidelines": "guidelines", + "allow_extra_metadata": False, + "last_activity_at": datetime.utcnow().isoformat(), + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + json=mock_patch_return_value, + url=self.url(f"/api/v1/datasets/{mock_dataset_id}"), + method="PATCH", + status_code=status_code, + ) + + dataset.id = mock_dataset_id + with httpx.Client(): + if expected_exception: + with pytest.raises(expected_exception=expected_exception) as excinfo: + dataset.name = "new_name" + dataset.update() + assert expected_message in str(excinfo.value) + else: + dataset.name = "new_name" + dataset = dataset.update() + assert dataset.name == "new_name" + + @pytest.mark.parametrize( + "status_code, expected_exception, expected_message", + [ + (200, None, None), + (400, BadRequestError, "BadRequestError"), + (403, ForbiddenError, "ForbiddenError"), + (404, NotFoundError, "NotFoundError"), + (409, ConflictError, "ConflictError"), + (422, UnprocessableEntityError, "UnprocessableEntityError"), + (500, InternalServerError, "InternalServerError"), + ], + ) + def test_delete_dataset(self, httpx_mock: HTTPXMock, status_code, expected_exception, expected_message, dataset): + mock_dataset_id = dataset.id + mock_return_value = dataset.serialize() + api_url = "http://test_url" + httpx_mock.add_response( + json=mock_return_value, + url=f"{api_url}/api/v1/datasets/{mock_dataset_id}", + method="DELETE", + status_code=status_code, + ) + with httpx.Client(): + if expected_exception: + with pytest.raises(expected_exception=expected_exception) as excinfo: + dataset.delete() + assert expected_message in str(excinfo.value) + else: + dataset.delete() + assert dataset.name == mock_return_value["name"] + + +class TestDatasetsAPI: + def test_delete_dataset(self, httpx_mock: HTTPXMock): + # TODO: Add a test for the delete method in client + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "id": str(mock_dataset_id), + "name": "dataset-01", + "status": "draft", + "allow_extra_metadata": False, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + json=mock_return_value, + url=f"http://test_url/api/v1/datasets/{mock_dataset_id}", + method="DELETE", + status_code=200, + ) + with httpx.Client() as client: + client = rg.Argilla("http://test_url") + client.api.datasets.delete(mock_dataset_id) + pytest.raises(httpx.HTTPError, client.api.datasets.get, mock_dataset_id) + + def test_publish_dataset(self, httpx_mock: HTTPXMock): + # TODO: Add a test for the publish method in client when dataset is finished + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "id": str(mock_dataset_id), + "name": "dataset-01", + "status": "ready", + "allow_extra_metadata": False, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + json=mock_return_value, + url=f"http://test_url/api/v1/datasets/{mock_dataset_id}/publish", + method="PUT", + status_code=200, + ) + httpx_mock.add_response( + json=mock_return_value, + url=f"http://test_url/api/v1/datasets/{mock_dataset_id}", + method="GET", + status_code=200, + ) + with httpx.Client() as client: + client = rg.Argilla("http://test_url") + client.api.datasets.publish(mock_dataset_id) + dataset = client.api.datasets.get(mock_dataset_id) + assert dataset.status == "ready" + assert dataset.id == mock_dataset_id + assert dataset.name == "dataset-01" + + def test_get_by_name_and_workspace_id(self, httpx_mock: HTTPXMock): + mock_workspace_id = uuid.uuid4() + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "items": [ + { + "id": mock_dataset_id.hex, + "name": "dataset-01", + "status": "ready", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + "workspace_id": mock_workspace_id.hex, + } + ] + } + api_url = "http://test_url" + httpx_mock.add_response( + json=mock_return_value, url=f"{api_url}/api/v1/me/datasets", method="GET", status_code=200 + ) + with httpx.Client(): + client = rg.Argilla(api_url) + dataset = client.api.datasets.get_by_name_and_workspace_id("dataset-01", mock_workspace_id) + assert mock_dataset_id.hex == mock_return_value["items"][0]["id"] + assert dataset.name == mock_return_value["items"][0]["name"] + assert dataset.status == mock_return_value["items"][0]["status"] + assert dataset.workspace_id.hex == mock_return_value["items"][0]["workspace_id"] + assert dataset.inserted_at.isoformat() == mock_return_value["items"][0]["inserted_at"] + assert dataset.updated_at.isoformat() == mock_return_value["items"][0]["updated_at"] diff --git a/argilla-sdk/tests/unit/test_resources/test_fields.py b/argilla-sdk/tests/unit/test_resources/test_fields.py new file mode 100644 index 0000000000..1064556fb7 --- /dev/null +++ b/argilla-sdk/tests/unit/test_resources/test_fields.py @@ -0,0 +1,54 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid +from datetime import datetime + +import httpx +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg +from argilla_sdk._models import TextFieldModel + + +class TestFieldsAPI: + def test_create_many_fields(self, httpx_mock: HTTPXMock): + # TODO: Add a test for the delete method in client + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "name": "string", + "title": "string", + "required": True, + "settings": {"type": "text", "use_markdown": False}, + "dataset_id": str(mock_dataset_id), + "inserted_at": datetime.now().isoformat(), + "updated_at": datetime.now().isoformat(), + } + mock_field = { + "name": "5044cv0wu5", + "title": "string", + "required": True, + "settings": {"type": "text", "use_markdown": False}, + } + mock_field = TextFieldModel(**mock_field) + httpx_mock.add_response( + json=mock_return_value, + url=f"http://test_url/api/v1/datasets/{mock_dataset_id}/fields", + method="POST", + status_code=200, + ) + with httpx.Client() as client: + client = rg.Argilla(api_url="http://test_url") + client.api.fields.create_many(dataset_id=mock_dataset_id, fields=[mock_field]) diff --git a/argilla-sdk/tests/unit/test_resources/test_questions.py b/argilla-sdk/tests/unit/test_resources/test_questions.py new file mode 100644 index 0000000000..0b28b2fefe --- /dev/null +++ b/argilla-sdk/tests/unit/test_resources/test_questions.py @@ -0,0 +1,142 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid +from datetime import datetime + +import httpx +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg +from argilla_sdk._models import TextQuestionModel, LabelQuestionModel +from argilla_sdk._models._settings._questions import SpanQuestionModel + + +class TestQuestionsAPI: + def test_create_many_questions(self, httpx_mock: HTTPXMock): + # TODO: Add a test for the delete method in client + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "name": "string", + "title": "string", + "required": True, + "settings": {"type": "text", "use_markdown": False}, + "dataset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "inserted_at": datetime.now().isoformat(), + "updated_at": datetime.now().isoformat(), + } + mock_question = { + "name": "5044cv0wu5", + "title": "string", + "description": "string", + "required": True, + "settings": {"type": "text", "use_markdown": False}, + } + mock_question = TextQuestionModel(**mock_question) + httpx_mock.add_response( + json=mock_return_value, + url=f"http://test_url/api/v1/datasets/{mock_dataset_id}/questions", + method="POST", + status_code=200, + ) + with httpx.Client() as client: + client = rg.Argilla(api_url="http://test_url") + client.api.questions.create_many(dataset_id=mock_dataset_id, questions=[mock_question]) + + def test_create_many_label_questions(self, httpx_mock: HTTPXMock): + # TODO: Add a test for the delete method in client + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "name": "string", + "title": "string", + "required": True, + "settings": {"type": "labels", "options": [{"text": "positive", "value": "positive"}]}, + "dataset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "inserted_at": datetime.now().isoformat(), + "updated_at": datetime.now().isoformat(), + } + mock_question = { + "name": "5044cv0wu5", + "title": "string", + "description": "string", + "required": True, + "settings": { + "type": "label", + "options": [{"text": "negative", "value": "negative"}, {"text": "positive", "value": "positive"}], + }, + } + mock_question = LabelQuestionModel(**mock_question) + httpx_mock.add_response( + json=mock_return_value, + url=f"http://test_url/api/v1/datasets/{mock_dataset_id}/questions", + method="POST", + status_code=200, + ) + with httpx.Client() as client: + client = rg.Argilla(api_url="http://test_url") + client.api.questions.create_many(dataset_id=mock_dataset_id, questions=[mock_question]) + + def test_create_span_question(self, httpx_mock: HTTPXMock): + mock_dataset_id = uuid.uuid4() + mock_return_value = { + "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "name": "string", + "title": "string", + "required": True, + "settings": { + "type": "span", + "allow_overlapping": True, + "field": "text", + "visible_options": 3, + "options": [ + {"value": "value 1", "text": "Value 1"}, + {"value": "value 2", "text": "Value 2"}, + {"value": "value 3", "text": "Value 3"}, + ], + }, + "inserted_at": datetime.now().isoformat(), + "updated_at": datetime.now().isoformat(), + } + + httpx_mock.add_response( + json=mock_return_value, + url=f"http://test_url/api/v1/datasets/{mock_dataset_id}/questions", + method="POST", + status_code=200, + ) + + with httpx.Client() as _: + question = SpanQuestionModel( + name="5044cv0wu5", + title="string", + description="string", + required=True, + settings={ + "type": "span", + "allow_overlapping": True, + "field": "text", + "visible_options": 3, + "options": [ + {"value": "value 1", "text": "Value 1"}, + {"value": "value 2", "text": "Value 2"}, + {"value": "value 3", "text": "Value 3"}, + ], + }, + ) + + client = rg.Argilla(api_url="http://test_url") + created_question = client.api.questions.create(dataset_id=mock_dataset_id, question=question) + assert created_question.model_dump(exclude_unset=True) == mock_return_value diff --git a/argilla-sdk/tests/unit/test_resources/test_records.py b/argilla-sdk/tests/unit/test_resources/test_records.py new file mode 100644 index 0000000000..4366766d47 --- /dev/null +++ b/argilla-sdk/tests/unit/test_resources/test_records.py @@ -0,0 +1,62 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid + +from argilla_sdk import Record, Suggestion, Response +from argilla_sdk._models import MetadataModel + + +class TestRecords: + def test_record_repr(self): + record_id = uuid.uuid4() + user_id = uuid.uuid4() + record = Record( + id=record_id, + fields={"name": "John", "age": "30"}, + metadata={"key": "value"}, + suggestions=[Suggestion(question_name="question", value="answer")], + responses=[Response(question_name="question", value="answer", user_id=user_id)], + ) + assert ( + record.__repr__() == f"Record(id={record_id}," + "fields={'name': 'John', 'age': '30'}," + "metadata={'key': 'value'}," + "suggestions={'question': {'value': 'answer', 'score': None, 'agent': None}}," + f"responses={{'question': [{{'value': 'answer'}}]}})" + ) + + def test_update_record_metadata_by_key(self): + record = Record(fields={"name": "John", "age": "30"}, metadata={"key": "value"}) + + record.metadata["key"] = "new_value" + record.metadata["new-key"] = "new_value" + + assert record.metadata == {"key": "new_value", "new-key": "new_value"} + assert record.metadata.models == [ + MetadataModel(name="key", value="new_value"), + MetadataModel(name="new-key", value="new_value"), + ] + + def test_update_record_metadata_by_attribute(self): + record = Record(fields={"name": "John", "age": "30"}, metadata={"key": "value"}) + + record.metadata.key = "new_value" + record.metadata.new_key = "new_value" + + assert record.metadata == {"key": "new_value", "new_key": "new_value"} + assert record.metadata.models == [ + MetadataModel(name="key", value="new_value"), + MetadataModel(name="new_key", value="new_value"), + ] diff --git a/argilla-sdk/tests/unit/test_resources/test_users.py b/argilla-sdk/tests/unit/test_resources/test_users.py new file mode 100644 index 0000000000..b8c87ef59f --- /dev/null +++ b/argilla-sdk/tests/unit/test_resources/test_users.py @@ -0,0 +1,284 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import uuid +from datetime import datetime + +import httpx +import pytest +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg +from argilla_sdk._exceptions import ( + BadRequestError, + ConflictError, + ForbiddenError, + InternalServerError, + NotFoundError, + UnprocessableEntityError, +) +from argilla_sdk._models import UserModel + + +class TestUserSerialization: + def test_serialize(self): + user = rg.User( + id=uuid.uuid4(), + username="test-user", + first_name="Test", + last_name="User", + ) + + assert user.serialize()["username"] == "test-user" + + def test_json_serialize(self): + mock_uuid = uuid.uuid4() + user = rg.User( + id=mock_uuid, + username="test-user", + first_name="Test", + last_name="User", + ) + + user_from_json = json.loads(user.serialize_json()) + assert user_from_json["username"] == "test-user" + assert user_from_json["id"] == str(mock_uuid) + + def test_model_from_json(self): + user_id = uuid.uuid4() + user_json = { + "id": user_id, + "username": "test-user", + "first_name": "Test", + "last_name": "User", + "role": "admin", + } + user = rg.User(**user_json) + assert user.username == user_json["username"] + assert str(user.id) == str(user_json["id"]) + + +class TestUsers: + @pytest.mark.parametrize( + "status_code, expected_exception, expected_message", + [ + (200, None, None), + (400, BadRequestError, "BadRequestError"), + (403, ForbiddenError, "ForbiddenError"), + (404, NotFoundError, "NotFoundError"), + (409, ConflictError, "ConflictError"), + (422, UnprocessableEntityError, "UnprocessableEntityError"), + (500, InternalServerError, "InternalServerError"), + ], + ) + def test_create_user(self, httpx_mock: HTTPXMock, status_code, expected_exception, expected_message): + user_id = uuid.uuid4().hex + mock_return_value = { + "id": str(user_id), + "username": "test-user", + "password": "test-password", + "first_name": "Test", + "last_name": "User", + "role": "admin", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + + api_url = "http://test_url" + httpx_mock.add_response( + json=mock_return_value, url=f"{api_url}/api/users", method="POST", status_code=status_code + ) + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + user = rg.User( + username="test-user", + client=client, + ) + if expected_exception: + with pytest.raises(expected_exception, match=expected_message): + user.create() + else: + created_user = user.create() + assert user.username == created_user.username + assert user.id == created_user.id + + @pytest.mark.parametrize( + "status_code, expected_exception, expected_message", + [ + (200, None, None), + (400, BadRequestError, "BadRequestError"), + (403, ForbiddenError, "ForbiddenError"), + (404, NotFoundError, "NotFoundError"), + (409, ConflictError, "ConflictError"), + (422, UnprocessableEntityError, "UnprocessableEntityError"), + (500, InternalServerError, "InternalServerError"), + ], + ) + def test_get_user(self, httpx_mock: HTTPXMock, status_code, expected_exception, expected_message): + user_id = uuid.uuid4() + mock_return_value = { + "id": str(user_id), + "username": "test-user", + "password": "test-password", + "first_name": "Test", + "last_name": "User", + "role": "admin", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + + api_url = "http://test_url" + httpx_mock.add_response( + json=mock_return_value, url=f"{api_url}/api/users", method="POST", status_code=status_code + ) + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + user = rg.User( + username="test-user", + client=client, + ) + if expected_exception: + with pytest.raises(expected_exception, match=expected_message): + user.create() + else: + gotten_user = user.create() + assert user.username == gotten_user.username + assert user.id == gotten_user.id + + def test_list_users(self, httpx_mock: HTTPXMock): + mock_return_value = [ + { + "id": str(uuid.uuid4()), + "username": "test-user", + "first_name": "Test", + "last_name": "User", + "role": "admin", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + { + "id": str(uuid.uuid4()), + "username": "another-test-user", + "role": "annotator", + "first_name": "First", + "last_name": "Last", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + ] + api_url = "http://test_url" + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/users") + with httpx.Client(): + client = rg.Argilla(api_url="http://test_url", api_key="admin.apikey") + users = client.users + assert len(users) == 2 + for i in range(len(users)): + assert users[i].username == mock_return_value[i]["username"] + assert users[i].role == mock_return_value[i]["role"] + assert users[i].id == uuid.UUID(mock_return_value[i]["id"]) + + +class TestUsersAPI: + def test_get_me(self, httpx_mock: HTTPXMock): + mock_return_value = { + "id": str(uuid.uuid4()), + "username": "test-user", + "first_name": "Test", + "last_name": "User", + "role": "admin", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + + api_url = "http://test_url" + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/me") + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + user = client.api.users.get_me() + assert user.username == mock_return_value["username"] + assert user.id == uuid.UUID(mock_return_value["id"]) + assert user.role == mock_return_value["role"] + + def test_remove_user_from_workspace(self, httpx_mock: HTTPXMock): + user_id = uuid.uuid4() + workspace_id = uuid.uuid4() + httpx_mock.add_response( + url=f"http://test_url/api/v1/workspaces/{workspace_id}/users/{user_id}", method="DELETE" + ) + with httpx.Client(): + client = rg.Argilla(api_url="http://test_url", api_key="admin.apikey") + client.api.workspaces.remove_user(workspace_id, user_id) + + def test_delete_user(self, httpx_mock: HTTPXMock): + user_id = uuid.uuid4() + httpx_mock.add_response(url=f"http://test_url/api/users/{user_id}", method="DELETE") + with httpx.Client(): + client = rg.Argilla(api_url="http://test_url", api_key="admin.apikey") + client.api.users.delete(user_id) + + def test_list_workspace_users(self, httpx_mock: HTTPXMock): + workspace_id = uuid.uuid4() + mock_return_value = [ + { + "id": str(uuid.uuid4()), + "username": "test-user", + "first_name": "Test", + "last_name": "User", + "role": "admin", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + { + "id": str(uuid.uuid4()), + "username": "another-test-user", + "first_name": "Another", + "last_name": "User", + "role": "admin", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + ] + + api_url = "http://test_url" + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/workspaces/{workspace_id}/users") + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + users = client.api.users.list_by_workspace_id(workspace_id) + assert len(users) == 2 + for i in range(len(users)): + assert users[i].username == mock_return_value[i]["username"] + assert users[i].id == uuid.UUID(mock_return_value[i]["id"]) + + def test_create_user(self, httpx_mock: HTTPXMock): + user_id = uuid.uuid4() + mock_return_value = { + "id": str(user_id), + "username": "test-user", + "first_name": "Test", + "last_name": "User", + "role": "admin", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + api_url = "http://test_url" + + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/users", method="POST", status_code=200) + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + user_create = UserModel(username="test-user", password="test-password") + user = client.api.users.create(user_create) + assert user.id == user_id + assert user.username == "test-user" + assert user.password is None diff --git a/argilla-sdk/tests/unit/test_resources/test_workspaces.py b/argilla-sdk/tests/unit/test_resources/test_workspaces.py new file mode 100644 index 0000000000..a430b1aba0 --- /dev/null +++ b/argilla-sdk/tests/unit/test_resources/test_workspaces.py @@ -0,0 +1,248 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid +from datetime import datetime + +import httpx +import pytest +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg +from argilla_sdk._exceptions import ( + BadRequestError, + ConflictError, + ForbiddenError, + InternalServerError, + NotFoundError, + UnprocessableEntityError, +) + + +class TestWorkspacesSerialization: + def test_serialize(self): + ws = rg.Workspace( + name="test-workspace", + id=uuid.uuid4(), + ) + + assert ws.name == ws.serialize()["name"] + + def test_json_serialize_raise_typeerror(self): + with pytest.raises(TypeError): + rg.Workspace( + name="test-workspace", + id=uuid.uuid4(), + inserted_at=datetime.utcnow(), + updated_at=datetime.utcnow(), + ) + + +class TestWorkspaces: + @pytest.mark.parametrize( + "status_code, expected_exception, expected_message", + [ + (200, None, None), + (400, BadRequestError, "BadRequestError"), + (403, ForbiddenError, "ForbiddenError"), + (404, NotFoundError, "NotFoundError"), + (409, ConflictError, "ConflictError"), + (422, UnprocessableEntityError, "UnprocessableEntityError"), + (500, InternalServerError, "InternalServerError"), + ], + ) + def test_create_workspace(self, httpx_mock: HTTPXMock, status_code, expected_exception, expected_message): + mock_name = "test-workspace" + mock_return_value = { + "id": str(uuid.uuid4()), + "name": mock_name, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + api_url = "http://test_url" + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/workspaces", status_code=status_code) + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + if expected_exception: + with pytest.raises(expected_exception, match=expected_message): + ws = rg.Workspace(name="test-workspace", id=uuid.uuid4(), client=client) + ws.create() + else: + ws = rg.Workspace(name="test-workspace", id=uuid.uuid4(), client=client) + created_workspace = ws.create() + assert created_workspace.name == mock_name + assert created_workspace.id == uuid.UUID(mock_return_value["id"]) + + @pytest.mark.parametrize( + "status_code, expected_exception, expected_message", + [ + (200, None, None), + (400, BadRequestError, "BadRequestError"), + (403, ForbiddenError, "ForbiddenError"), + (404, NotFoundError, "NotFoundError"), + (409, ConflictError, "ConflictError"), + (422, UnprocessableEntityError, "UnprocessableEntityError"), + (500, InternalServerError, "InternalServerError"), + ], + ) + def test_get_workspace(self, httpx_mock: HTTPXMock, status_code, expected_exception, expected_message): + workspace_id = uuid.uuid4() + mock_return_value = { + "id": workspace_id.hex, + "name": "test-workspace", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + api_url = "http://test_url" + httpx_mock.add_response( + json=mock_return_value, url=f"{api_url}/api/v1/workspaces/{workspace_id}", status_code=status_code + ) + with httpx.Client(): + client = rg.Argilla(api_url="http://test_url", api_key="admin.apikey") + + if expected_exception: + with pytest.raises(expected_exception, match=expected_message): + workspace = rg.Workspace(name="test-workspace", id=workspace_id, client=client) + workspace = workspace.get() + else: + workspace = rg.Workspace(name="test-workspace", id=workspace_id, client=client) + workspace = workspace.get() + assert workspace.name == mock_return_value["name"] + assert workspace.id == workspace_id + + def test_list_workspaces(self, httpx_mock: HTTPXMock): + mock_return_value = { + "items": [ + { + "id": str(uuid.uuid4()), + "name": "test-workspace", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + { + "id": str(uuid.uuid4()), + "name": "another-test-workspace", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + ] + } + api_url = "http://test_url" + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/v1/me/workspaces") + with httpx.Client(): + client = rg.Argilla(api_url="http://test_url", api_key="admin.apikey") + workspaces = client.workspaces + assert len(workspaces) == 2 + for i in range(len(workspaces)): + assert workspaces[i].name == mock_return_value["items"][i]["name"] + assert workspaces[i].id == uuid.UUID(mock_return_value["items"][i]["id"]) + + +class TestWorkspacesAPI: + def test_get_workspace_by_name(self, httpx_mock: HTTPXMock): + mock_return_value = { + "items": [ + { + "id": str(uuid.uuid4()), + "name": "test-workspace", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + { + "id": str(uuid.uuid4()), + "name": "other-workspace", + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + ] + } + api_url = "http://test_url" + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/v1/me/workspaces") + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + ws = client.api.workspaces.get_by_name("test-workspace") + assert ws is not None + assert ws.name == "test-workspace" + assert ws.id == uuid.UUID(mock_return_value["items"][0]["id"]) + + def test_multiple_clients_create_workspace(self, httpx_mock: HTTPXMock): + mock_uuid = str(uuid.uuid4()) + mock_name = "local-test-workspace" + mock_return = { + "id": mock_uuid, + "name": mock_name, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + url="http://localhost:6900/api/workspaces", + json=mock_return, + ) + httpx_mock.add_response( + url="http://argilla.production.net/api/workspaces", + json=mock_return, + ) + with httpx.Client(): + local_client = rg.Argilla(api_url="http://localhost:6900", api_key="admin.apikey") + remote_client = rg.Argilla(api_url="http://argilla.production.net", api_key="admin.apikey") + assert local_client.api_url == "http://localhost:6900" + assert remote_client.api_url == "http://argilla.production.net" + local_workspace = rg.Workspace(name="local-test-workspace", client=local_client) + local_workspace = local_workspace.create() + remote_workspace = rg.Workspace(name="remote-test-workspace", client=remote_client) + remote_workspace = remote_workspace.create() + + def test_delete_workspace(self, httpx_mock: HTTPXMock): + workspace_id = uuid.uuid4() + api_url = "http://test_url" + httpx_mock.add_response(url=f"{api_url}/api/v1/workspaces/{workspace_id}", status_code=204) + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + client.api.workspaces.delete(workspace_id) + + def test_list_workspace_datasets(self, httpx_mock: HTTPXMock): + workspace_id = uuid.uuid4() + mock_return_value = { + "items": [ + { + "id": str(uuid.uuid4()), + "name": "test-dataset", + "status": "ready", + "guidelines": "test-guidelines", + "allow_extra_metadata": True, + "workspace_id": str(workspace_id), + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + { + "id": str(uuid.uuid4()), + "name": "another-test-dataset", + "status": "ready", + "guidelines": "test-guidelines", + "allow_extra_metadata": True, + "workspace_id": str(workspace_id), + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + ] + } + api_url = "http://test_url" + httpx_mock.add_response(json=mock_return_value, url=f"{api_url}/api/v1/me/datasets") + with httpx.Client(): + client = rg.Argilla(api_url=api_url, api_key="admin.apikey") + datasets = client.api.datasets.list(workspace_id) + assert len(datasets) == 2 + for i in range(len(datasets)): + assert datasets[i].name == mock_return_value["items"][i]["name"] + assert datasets[i].id == uuid.UUID(mock_return_value["items"][i]["id"]) diff --git a/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py b/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py new file mode 100644 index 0000000000..4818f61c5a --- /dev/null +++ b/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py @@ -0,0 +1,35 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argilla_sdk as rg + + +class TestMultiLabelQuestions: + def test_create_question(self): + question = rg.MultiLabelQuestion(name="span_question", labels=["label1", "label2", "label3"]) + assert question.name == "span_question" + assert question.labels == ["label1", "label2", "label3"] + assert question.visible_labels == 3 + + def test_change_labels_value(self): + question = rg.MultiLabelQuestion(name="span_question", labels=["label1", "label2", "label3"]) + question.labels = ["label1", "label2"] + assert question.labels == ["label1", "label2"] + assert question.visible_labels == 3 + + def test_update_visible_labels(self): + question = rg.MultiLabelQuestion(name="span_question", labels=["label1", "label2", "label3", "label4"]) + assert question.visible_labels == 4 + question.visible_labels = 3 + assert question.visible_labels == 3 diff --git a/argilla-sdk/tests/unit/test_settings/test_settings.py b/argilla-sdk/tests/unit/test_settings/test_settings.py new file mode 100644 index 0000000000..c39230f728 --- /dev/null +++ b/argilla-sdk/tests/unit/test_settings/test_settings.py @@ -0,0 +1,106 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import pytest + +import argilla_sdk as rg +from argilla_sdk._exceptions import SettingsError + + +class TestSettings: + def test_init_settings(self): + settings = rg.Settings() + assert settings.fields == [] + assert settings.questions == [] + + def test_with_guidelines(self): + mock_guidelines = "This is a guideline" + settings = rg.Settings( + guidelines=mock_guidelines, + ) + assert settings.guidelines == mock_guidelines + + def test_with_guidelines_attribute(self): + mock_guidelines = "This is a guideline" + settings = rg.Settings() + settings.guidelines = mock_guidelines + assert settings.guidelines == mock_guidelines + + def test_with_text_field(self): + mock_name = "prompt" + mock_use_markdown = True + settings = rg.Settings(fields=[rg.TextField(name=mock_name, use_markdown=mock_use_markdown)]) + assert settings.fields[0].name == mock_name + assert settings.fields[0].use_markdown == mock_use_markdown + + def test_with_text_field_attribute(self): + settings = rg.Settings() + mock_name = "prompt" + mock_use_markdown = True + settings.fields = [rg.TextField(name=mock_name, use_markdown=mock_use_markdown)] + assert settings.fields[0].name == mock_name + assert settings.fields[0].use_markdown == mock_use_markdown + + def test_with_label_question(self): + settings = rg.Settings(questions=[rg.LabelQuestion(name="sentiment", labels=["positive", "negative"])]) + assert settings.questions[0].name == "sentiment" + assert settings.questions[0].labels == ["positive", "negative"] + + def test_with_label_question_attribute(self): + settings = rg.Settings() + settings.questions = [rg.LabelQuestion(name="sentiment", labels=["positive", "negative"])] + assert settings.questions[0].name == "sentiment" + assert settings.questions[0].labels == ["positive", "negative"] + + def test_settings_repr(self): + settings = rg.Settings( + fields=[ + rg.TextField(name="text", title="text"), + ], + metadata=[ + rg.FloatMetadataProperty("source"), + ], + questions=[ + rg.LabelQuestion(name="label", title="text", labels=["positive", "negative"]), + ], + vectors=[rg.VectorField(name="text", dimensions=3)], + ) + + assert ( + settings.__repr__() + == f"""Settings(guidelines=None, allow_extra_metadata=False, fields={settings.fields}, questions={settings.questions}, vectors={settings.vectors}, metadata={settings.metadata})""" + ) + + def test_settings_validation_with_duplicated_names(self): + settings = rg.Settings( + fields=[rg.TextField(name="text", title="text")], + metadata=[rg.FloatMetadataProperty("source")], + questions=[rg.LabelQuestion(name="label", title="text", labels=["positive", "negative"])], + vectors=[rg.VectorField(name="text", dimensions=3)], + ) + + with pytest.raises(SettingsError, match="names of dataset settings must be unique"): + settings.validate() + + +class TestSettingsSerialization: + def test_serialize(self): + settings = rg.Settings( + guidelines="This is a guideline", + fields=[rg.TextField(name="prompt", use_markdown=True)], + questions=[rg.LabelQuestion(name="sentiment", labels=["positive", "negative"])], + ) + settings_serialized = settings.serialize() + assert settings_serialized["guidelines"] == "This is a guideline" + assert settings_serialized["fields"][0]["name"] == "prompt" + assert settings_serialized["fields"][0]["settings"]["use_markdown"] is True diff --git a/argilla-sdk/tests/unit/test_settings/test_settings_fields.py b/argilla-sdk/tests/unit/test_settings/test_settings_fields.py new file mode 100644 index 0000000000..917521f4ef --- /dev/null +++ b/argilla-sdk/tests/unit/test_settings/test_settings_fields.py @@ -0,0 +1,65 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +import argilla_sdk as rg + + +class TestTextField: + def test_init_text_field(self): + mock_name = "prompt" + mock_use_markdown = True + text_field = rg.TextField(name=mock_name, use_markdown=mock_use_markdown) + assert text_field.name == mock_name + assert text_field.use_markdown == mock_use_markdown + assert text_field.title == mock_name + assert text_field.required is True + + def test_init_text_field_with_title(self): + mock_name = "prompt" + mock_use_markdown = True + mock_title = "Prompt" + text_field = rg.TextField(name=mock_name, use_markdown=mock_use_markdown, title=mock_title) + assert text_field.name == mock_name + assert text_field.use_markdown == mock_use_markdown + assert text_field.title == mock_title + assert text_field.required is True + + @pytest.mark.parametrize( + "name, expected", + [ + ("prompt", "prompt"), + ("Prompt", "prompt"), + ("Prompt Name", "prompt_name"), + ("Prompt Name 2", "prompt_name_2"), + ("Prompt Name 2", "prompt_name_2"), + ], + ) + def test_name_validator(self, name, expected, mocker): + mock_use_markdown = True + text_field = rg.TextField(name=name, use_markdown=mock_use_markdown) + assert text_field.name == expected + + @pytest.mark.parametrize( + "title, name, expected", + [ + (None, "prompt", "prompt"), + ("Prompt", "prompt", "Prompt"), + ("Prompt", "prompt", "Prompt"), + ], + ) + def test_title_validator(self, title, name, expected, mocker): + mock_use_markdown = True + text_field = rg.TextField(name=name, use_markdown=mock_use_markdown, title=title) + assert text_field.title == expected diff --git a/argilla-sdk/tests/unit/test_settings/test_settings_questions.py b/argilla-sdk/tests/unit/test_settings/test_settings_questions.py new file mode 100644 index 0000000000..cec8ad1a6c --- /dev/null +++ b/argilla-sdk/tests/unit/test_settings/test_settings_questions.py @@ -0,0 +1,72 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argilla_sdk as rg + + +class TestQuestions: + def test_label_question_init(self): + labels = ["label1", "label2", "label3"] + question = rg.LabelQuestion(name="label_question", labels=labels) + assert question.name == "label_question" + assert question.labels == ["label1", "label2", "label3"] + + def test_label_question_init_with_dict(self): + labels = {"label1": "1", "label2": "2", "label3": "3"} + question = rg.LabelQuestion(name="label_question", labels=labels) + assert question.name == "label_question" + assert question.labels == ["label1", "label2", "label3"] + text_of_labels = [label["text"] for label in question._model.settings.options] + for i in range(len(labels)): + assert text_of_labels[i] == list(labels.values())[i] + + def test_rating_question_init(self): + question = rg.RatingQuestion(name="rating_question", values=[1, 2, 3]) + assert question.name == "rating_question" + assert question.values == [1, 2, 3] + + def test_text_question_init(self): + question = rg.TextQuestion(name="text_question", use_markdown=True) + assert question.name == "text_question" + assert question.use_markdown is True + + def test_multi_label_question_init(self): + labels = ["label1", "label2", "label3"] + question = rg.MultiLabelQuestion(name="multi_label_question", labels=labels, visible_labels=3) + assert question.name == "multi_label_question" + assert question.labels == ["label1", "label2", "label3"] + assert question.visible_labels == 3 + + def test_multi_label_question_init_with_dict(self): + labels = {"label1": "1", "label2": "2", "label3": "3"} + question = rg.MultiLabelQuestion(name="multi_label_question", labels=labels, visible_labels=3) + assert question.name == "multi_label_question" + assert question.labels == ["label1", "label2", "label3"] + assert question.visible_labels == 3 + + def test_multi_label_question_init_ordered(self): + question = rg.MultiLabelQuestion( + name="multi_label_question", + labels=["label1", "label2", "label3"], + visible_labels=3, + labels_order="suggestion", + ) + assert question.name == "multi_label_question" + assert question.labels == ["label1", "label2", "label3"] + assert question.visible_labels == 3 + + def test_ranking_question_init(self): + question = rg.RankingQuestion(name="ranking_question", values=["rank-a", "rank-b"]) + assert question.name == "ranking_question" + assert question.values == ["rank-a", "rank-b"] diff --git a/argilla-sdk/tests/unit/test_settings/test_span_question.py b/argilla-sdk/tests/unit/test_settings/test_span_question.py new file mode 100644 index 0000000000..67168d8b3c --- /dev/null +++ b/argilla-sdk/tests/unit/test_settings/test_span_question.py @@ -0,0 +1,49 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argilla_sdk as rg + + +class TestSpanQuestions: + def test_create_question(self): + question = rg.SpanQuestion( + name="span_question", field="field", allow_overlapping=True, labels=["label1", "label2", "label3"] + ) + assert question.name == "span_question" + assert question.field == "field" + assert question.allow_overlapping is True + assert question.labels == ["label1", "label2", "label3"] + assert question.visible_labels == 3 + + def test_change_field_value(self): + question = rg.SpanQuestion( + name="span_question", field="field", allow_overlapping=True, labels=["label1", "label2"] + ) + question.field = "new_field" + assert question.field == "new_field" + + def test_change_allow_overlapping_value(self): + question = rg.SpanQuestion( + name="span_question", field="field", allow_overlapping=True, labels=["label1", "label2"] + ) + question.allow_overlapping = False + assert question.allow_overlapping is False + + def test_change_labels_value(self): + question = rg.SpanQuestion( + name="span_question", field="field", allow_overlapping=True, labels=["label1", "label2", "label3"] + ) + question.labels = ["label1", "label2"] + assert question.labels == ["label1", "label2"] + assert question.visible_labels == 3 diff --git a/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py new file mode 100644 index 0000000000..d4eda709c9 --- /dev/null +++ b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py @@ -0,0 +1,77 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid + +import argilla_sdk as rg +from argilla_sdk._models import MetadataFieldModel, TermsMetadataPropertySettings + + +class TestTermsMetadata: + def test_create_metadata_terms(self): + property = rg.TermsMetadataProperty( + title="A metadata property", name="metadata", options=["option1", "option2"] + ) + + assert property._model.type == "terms" + assert property.title == "A metadata property" + assert property.name == "metadata" + assert property.visible_for_annotators is True + assert property.options == ["option1", "option2"] + + assert property.api_model().model_dump() == { + "id": None, + "name": "metadata", + "settings": {"type": "terms", "values": ["option1", "option2"], "visible_for_annotators": True}, + "title": "A metadata property", + "type": "terms", + "visible_for_annotators": True, + } + + def test_create_terms_metadata_without_options(self): + property = rg.TermsMetadataProperty(name="metadata") + + assert property.title == "metadata" + assert property.name == "metadata" + assert property.visible_for_annotators is True + assert property.options is None + + model = property.api_model() + assert model.type == "terms" + assert model.model_dump() == { + "id": None, + "name": "metadata", + "title": "metadata", + "settings": {"type": "terms", "values": None, "visible_for_annotators": True}, + "type": "terms", + "visible_for_annotators": True, + } + + def test_create_from_model(self): + model = MetadataFieldModel( + id=uuid.uuid4(), + name="metadata", + title="A metadata property", + type="terms", + settings=TermsMetadataPropertySettings(values=["option1", "option2"], type="terms"), + visible_for_annotators=True, + ) + + property = rg.TermsMetadataProperty.from_model(model) + + assert property.id == model.id + assert property.title == "A metadata property" + assert property.name == "metadata" + assert property.visible_for_annotators is True + assert property.options == ["option1", "option2"] From 36606706a2e12422dae6838b3ae4c73ba8fa212e Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 11:15:15 +0200 Subject: [PATCH 02/17] chore: Move argilla-sdk workflows --- {argilla-sdk/.github => .github}/workflows/argilla-sdk.yml | 0 {argilla-sdk/.github => .github}/workflows/docs.yml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {argilla-sdk/.github => .github}/workflows/argilla-sdk.yml (100%) rename {argilla-sdk/.github => .github}/workflows/docs.yml (100%) diff --git a/argilla-sdk/.github/workflows/argilla-sdk.yml b/.github/workflows/argilla-sdk.yml similarity index 100% rename from argilla-sdk/.github/workflows/argilla-sdk.yml rename to .github/workflows/argilla-sdk.yml diff --git a/argilla-sdk/.github/workflows/docs.yml b/.github/workflows/docs.yml similarity index 100% rename from argilla-sdk/.github/workflows/docs.yml rename to .github/workflows/docs.yml From bdd52ef6e8305fac6dc7db38f6a5e06c3a86865d Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 11:19:34 +0200 Subject: [PATCH 03/17] ci: Configure argilla-sdk pipeline --- .github/workflows/argilla-sdk.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/argilla-sdk.yml b/.github/workflows/argilla-sdk.yml index 1ec8e64110..fe799f9e33 100644 --- a/.github/workflows/argilla-sdk.yml +++ b/.github/workflows/argilla-sdk.yml @@ -14,15 +14,23 @@ on: default: false push: - branches: [ "main" ] + paths: + - "argilla-sdk/**" + branches: [ "develop" ] pull_request: - branches: [ "main" ] + paths: + - "argilla-sdk/**" + branches: [ "develop" ] release: types: - "published" +defaults: + run: + working-directory: argilla-sdk + jobs: build: services: @@ -71,7 +79,7 @@ jobs: if: ${{ matrix.python-version == '3.8' }} with: name: argilla-sdk - path: dist + path: argilla-sdk/dist # This job will publish argilla-sdk package into PyPI repository publish_release: @@ -101,7 +109,7 @@ jobs: uses: actions/download-artifact@v4 with: name: argilla-sdk - path: dist + path: argilla-sdk/dist - name: Setup PDM uses: pdm-project/setup-pdm@v4 From 202629cadb82ea6be527b95c9b9fb42195e138ed Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 09:22:30 +0000 Subject: [PATCH 04/17] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- argilla-sdk/.pre-commit-config.yaml | 2 +- argilla-sdk/README.md | 4 +-- .../docs/getting_started/quickstart.md | 4 +-- argilla-sdk/docs/how_to_guides/dataset.md | 4 +-- argilla-sdk/docs/how_to_guides/record.md | 14 ++++----- argilla-sdk/docs/how_to_guides/workspace.md | 4 +-- .../docs/reference/argilla_sdk/client.md | 4 +-- .../argilla_sdk/datasets/dataset_records.md | 4 +-- .../argilla_sdk/datasets/datasets.md | 2 +- .../reference/argilla_sdk/records/records.md | 12 ++++---- .../argilla_sdk/records/responses.md | 2 +- .../argilla_sdk/records/suggestions.md | 2 +- .../reference/argilla_sdk/records/vectors.md | 2 +- .../docs/reference/argilla_sdk/search.md | 6 ++-- .../reference/argilla_sdk/settings/fields.md | 2 +- .../argilla_sdk/settings/metadata_property.md | 8 ++--- .../argilla_sdk/settings/questions.md | 12 ++++---- .../argilla_sdk/settings/settings.md | 2 +- .../reference/argilla_sdk/settings/vectors.md | 4 +-- .../docs/reference/argilla_sdk/users.md | 2 +- argilla-sdk/docs/scripts/gen_ref_pages.py | 2 ++ argilla-sdk/src/argilla_sdk/__init__.py | 2 ++ argilla-sdk/src/argilla_sdk/_api/__init__.py | 2 ++ argilla-sdk/src/argilla_sdk/_api/_base.py | 5 ++-- argilla-sdk/src/argilla_sdk/_api/_client.py | 2 ++ argilla-sdk/src/argilla_sdk/_api/_datasets.py | 5 +++- argilla-sdk/src/argilla_sdk/_api/_fields.py | 7 +++-- .../src/argilla_sdk/_api/_http/__init__.py | 2 ++ .../src/argilla_sdk/_api/_http/_client.py | 4 ++- .../src/argilla_sdk/_api/_http/_helpers.py | 3 +- argilla-sdk/src/argilla_sdk/_api/_metadata.py | 5 +++- .../src/argilla_sdk/_api/_questions.py | 11 ++++--- argilla-sdk/src/argilla_sdk/_api/_records.py | 6 ++-- argilla-sdk/src/argilla_sdk/_api/_users.py | 2 ++ argilla-sdk/src/argilla_sdk/_api/_vectors.py | 5 +++- .../src/argilla_sdk/_api/_workspaces.py | 2 ++ argilla-sdk/src/argilla_sdk/_constants.py | 2 ++ .../src/argilla_sdk/_exceptions/__init__.py | 2 ++ .../src/argilla_sdk/_exceptions/_api.py | 2 ++ .../src/argilla_sdk/_exceptions/_base.py | 2 ++ .../src/argilla_sdk/_exceptions/_metadata.py | 2 ++ .../argilla_sdk/_exceptions/_serialization.py | 2 ++ .../src/argilla_sdk/_exceptions/_settings.py | 2 ++ .../src/argilla_sdk/_helpers/__init__.py | 2 ++ .../src/argilla_sdk/_helpers/_dataclasses.py | 4 ++- .../src/argilla_sdk/_helpers/_iterator.py | 2 ++ argilla-sdk/src/argilla_sdk/_helpers/_log.py | 2 ++ .../src/argilla_sdk/_helpers/_mixins.py | 2 ++ .../argilla_sdk/_helpers/_resource_repr.py | 3 +- .../src/argilla_sdk/_models/__init__.py | 2 ++ argilla-sdk/src/argilla_sdk/_models/_base.py | 4 ++- .../src/argilla_sdk/_models/_dataset.py | 5 ++-- .../argilla_sdk/_models/_record/__init__.py | 2 ++ .../argilla_sdk/_models/_record/_metadata.py | 5 ++-- .../argilla_sdk/_models/_record/_record.py | 4 ++- .../argilla_sdk/_models/_record/_response.py | 6 ++-- .../_models/_record/_suggestion.py | 4 ++- .../argilla_sdk/_models/_record/_vector.py | 8 +++-- .../src/argilla_sdk/_models/_resource.py | 2 ++ .../src/argilla_sdk/_models/_search.py | 4 ++- .../argilla_sdk/_models/_settings/__init__.py | 2 ++ .../argilla_sdk/_models/_settings/_fields.py | 4 ++- .../_models/_settings/_metadata.py | 4 ++- .../_models/_settings/_questions/__init__.py | 2 ++ .../_models/_settings/_questions/_base.py | 4 ++- .../_settings/_questions/_label_selection.py | 8 +++-- .../_questions/_multi_label_selection.py | 4 ++- .../_models/_settings/_questions/_ranking.py | 6 ++-- .../_models/_settings/_questions/_rating.py | 6 ++-- .../_models/_settings/_questions/_span.py | 8 +++-- .../_models/_settings/_questions/_text.py | 4 ++- .../argilla_sdk/_models/_settings/_vectors.py | 4 ++- argilla-sdk/src/argilla_sdk/_models/_user.py | 2 ++ .../src/argilla_sdk/_models/_workspace.py | 7 +++-- argilla-sdk/src/argilla_sdk/_resource.py | 8 +++-- argilla-sdk/src/argilla_sdk/client.py | 12 ++++---- .../src/argilla_sdk/datasets/__init__.py | 2 ++ .../src/argilla_sdk/datasets/_export.py | 9 +++--- .../src/argilla_sdk/datasets/_resource.py | 2 ++ .../src/argilla_sdk/records/__init__.py | 4 ++- .../argilla_sdk/records/_dataset_records.py | 6 ++-- .../src/argilla_sdk/records/_io/__init__.py | 8 +++-- .../src/argilla_sdk/records/_io/_datasets.py | 4 ++- .../src/argilla_sdk/records/_io/_generic.py | 4 ++- .../src/argilla_sdk/records/_io/_json.py | 4 ++- .../src/argilla_sdk/records/_resource.py | 8 +++-- .../src/argilla_sdk/records/_search.py | 22 +++++++------- argilla-sdk/src/argilla_sdk/responses.py | 12 ++++---- .../src/argilla_sdk/settings/__init__.py | 2 ++ .../src/argilla_sdk/settings/_common.py | 4 ++- .../src/argilla_sdk/settings/_field.py | 2 ++ .../src/argilla_sdk/settings/_metadata.py | 9 +++--- .../src/argilla_sdk/settings/_question.py | 30 ++++++++++--------- .../src/argilla_sdk/settings/_resource.py | 12 ++++---- argilla-sdk/src/argilla_sdk/suggestions.py | 6 ++-- argilla-sdk/src/argilla_sdk/users/__init__.py | 2 ++ .../src/argilla_sdk/users/_resource.py | 6 ++-- argilla-sdk/src/argilla_sdk/vectors.py | 2 ++ .../src/argilla_sdk/workspaces/__init__.py | 2 ++ .../src/argilla_sdk/workspaces/_resource.py | 4 ++- argilla-sdk/tests/integration/conftest.py | 5 ++-- .../tests/integration/test_add_records.py | 3 +- .../tests/integration/test_create_datasets.py | 5 ++-- .../integration/test_dataset_workspace.py | 5 ++-- .../tests/integration/test_empty_settings.py | 5 ++-- .../tests/integration/test_export_dataset.py | 5 ++-- .../tests/integration/test_export_records.py | 7 +++-- .../tests/integration/test_list_records.py | 5 ++-- .../integration/test_listing_datasets.py | 2 ++ .../tests/integration/test_manage_users.py | 5 ++-- .../integration/test_manage_workspaces.py | 2 ++ .../tests/integration/test_metadata.py | 7 +++-- .../integration/test_publish_datasets.py | 16 +++++----- .../tests/integration/test_query_records.py | 7 +++-- .../integration/test_ranking_questions.py | 5 ++-- .../tests/integration/test_update_records.py | 5 ++-- argilla-sdk/tests/integration/test_vectors.py | 5 ++-- .../tests/unit/api/http/test_http_client.py | 5 ++-- argilla-sdk/tests/unit/conftest.py | 2 ++ ...est_record_export_import_compatibillity.py | 5 ++-- ...t_settings_export_import_compatibillity.py | 7 +++-- .../tests/unit/helpers/test_resource_repr.py | 2 ++ argilla-sdk/tests/unit/test_interface.py | 2 ++ .../tests/unit/test_record_ingestion.py | 5 ++-- .../tests/unit/test_record_responses.py | 7 +++-- .../tests/unit/test_record_suggestions.py | 3 +- .../unit/test_resources/test_datasets.py | 7 +++-- .../tests/unit/test_resources/test_fields.py | 7 +++-- .../unit/test_resources/test_questions.py | 9 +++--- .../tests/unit/test_resources/test_records.py | 4 ++- .../tests/unit/test_resources/test_users.py | 7 +++-- .../unit/test_resources/test_workspaces.py | 7 +++-- .../test_multi_label_question.py | 2 ++ .../tests/unit/test_settings/test_settings.py | 5 ++-- .../test_settings/test_settings_fields.py | 4 ++- .../test_settings/test_settings_questions.py | 2 ++ .../unit/test_settings/test_span_question.py | 2 ++ .../unit/test_settings/test_terms_metadata.py | 2 ++ 138 files changed, 443 insertions(+), 234 deletions(-) diff --git a/argilla-sdk/.pre-commit-config.yaml b/argilla-sdk/.pre-commit-config.yaml index 5bc2b29a18..1279c1de62 100644 --- a/argilla-sdk/.pre-commit-config.yaml +++ b/argilla-sdk/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: args: - --fix - id: ruff-format - + - repo: https://github.com/kynan/nbstripout rev: 0.7.1 hooks: diff --git a/argilla-sdk/README.md b/argilla-sdk/README.md index 92c8a80709..95d8036a5c 100644 --- a/argilla-sdk/README.md +++ b/argilla-sdk/README.md @@ -1,4 +1,4 @@ -## `argilla-sdk` +## `argilla-sdk` The argilla-sdk is an experimental project to rebuild Argilla's python client in a simpler and friendlier way. The goal is to have a minimal set of core features that are easy to use and understand, but also contribute to feedback task that build quality data. @@ -50,6 +50,6 @@ To generate the docs you will need to install the development dependencies, and mkdocs serve ``` -You will find the built documentation in `http://localhost:8000/argilla-python/`. +You will find the built documentation in `http://localhost:8000/argilla-python/`. The docs will be deployed for pull request branches automatically. diff --git a/argilla-sdk/docs/getting_started/quickstart.md b/argilla-sdk/docs/getting_started/quickstart.md index 7cdf892a5c..b55d03b1ec 100644 --- a/argilla-sdk/docs/getting_started/quickstart.md +++ b/argilla-sdk/docs/getting_started/quickstart.md @@ -20,7 +20,7 @@ To work with Argilla datasets, you need to use the Argilla SDK. You can install ```console pip install git+https://github.com/argilla-io/argilla-python.git -``` +``` ### Run the Argilla server @@ -115,7 +115,7 @@ Now you can add the data to your dataset. Use `mapping` to indicate which keys i ```python # Add records to the dataset dataset.records.add(records=data, mapping={"text": "review"}) -``` +``` 🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. diff --git a/argilla-sdk/docs/how_to_guides/dataset.md b/argilla-sdk/docs/how_to_guides/dataset.md index c7cc308ee0..53a4240179 100644 --- a/argilla-sdk/docs/how_to_guides/dataset.md +++ b/argilla-sdk/docs/how_to_guides/dataset.md @@ -206,7 +206,7 @@ To collect feedback for your dataset, you need to formulate questions that annot === "Ranking" A `RankingQuestion` asks annotators to order a list of options. It is useful to gather information on the preference or relevance of a set of options. Ties are allowed and all options will need to be ranked. It has the following configuration: - + - `name`: The name of the question. - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value. - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. @@ -308,7 +308,7 @@ To collect feedback for your dataset, you need to formulate questions that annot Metadata properties allow you to configure the use of metadata information for the filtering and sorting features available in the UI and Python SDK. There exist three types of metadata you can add: `TermsMetadataProperty`, `IntegerMetadataProperty` and `FloatMetadataProperty`. === "Terms" - A `TermsMetadataProperty` allows to add a list of strings as metadata options. It has the following configuration: + A `TermsMetadataProperty` allows to add a list of strings as metadata options. It has the following configuration: - `name`: The name of the metadata property. - `title` (optional): The name of the metadata property, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. diff --git a/argilla-sdk/docs/how_to_guides/record.md b/argilla-sdk/docs/how_to_guides/record.md index 42cf7a211a..79894e198c 100644 --- a/argilla-sdk/docs/how_to_guides/record.md +++ b/argilla-sdk/docs/how_to_guides/record.md @@ -49,7 +49,7 @@ You can add records to a dataset in two different ways: either by using a dictio You can add the data directly as a dictionary, where the keys correspond to the names of fields, questions, metadata or vectors in the dataset and the values are the data to be added. However, you can also use a `mapping` to indicate which keys in the source data correspond to the dataset fields. - ```python + ```python import argilla_sdk as rg client = rg.Argilla(api_url="", api_key="") @@ -110,13 +110,13 @@ You can add records to a dataset in two different ways: either by using a dictio dataset.records.add(records=records) - ``` + ``` === "As a `Record` object" You can also add records to a dataset by initializing a `Record` object directly. - ```python + ```python import argilla_sdk as rg client = rg.Argilla(api_url="", api_key="") @@ -172,7 +172,7 @@ You can add records to a dataset in two different ways: either by using a dictio ] dataset.records.add(records) - ``` + ``` ### Metadata @@ -413,8 +413,8 @@ To list records in a dataset, you can use the `records` method on the `Dataset` ```python for record in dataset.records( - with_suggestions=True, - with_responses=True, + with_suggestions=True, + with_responses=True, with_vectors=True ): @@ -459,7 +459,7 @@ dataset.records.update(records=updated_data) # With metadata.update record.metadata.update({"my_metadata": "new_value", "my_new_metadata": "new_value"}) - + updated_records.append(record) dataset.records.update(records=updated_records) diff --git a/argilla-sdk/docs/how_to_guides/workspace.md b/argilla-sdk/docs/how_to_guides/workspace.md index feeffeb9a7..e4ca6a4aaf 100644 --- a/argilla-sdk/docs/how_to_guides/workspace.md +++ b/argilla-sdk/docs/how_to_guides/workspace.md @@ -18,9 +18,9 @@ A **workspace** is a *space* inside your Argilla instance where authorized users Argilla provides a default workspace to help you get started in Python and the UI. The name of this workspace varies depending on the server configuration. -| Environment | Name | +| Environment | Name | |-------------------------------|----------| -| Quickstart Docker and HF Space | admin | +| Quickstart Docker and HF Space | admin | | Server image | argilla | !!! info "Main Class" diff --git a/argilla-sdk/docs/reference/argilla_sdk/client.md b/argilla-sdk/docs/reference/argilla_sdk/client.md index 188b8f8385..ccd5beef39 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/client.md +++ b/argilla-sdk/docs/reference/argilla_sdk/client.md @@ -39,12 +39,12 @@ for dataset in my_workspace.datasets: ``` ---- +--- ## Class Reference ### `rg.Argilla` ::: argilla_sdk.client.Argilla - options: + options: heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md index 2c4edb9e99..476a772a0a 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md @@ -37,7 +37,7 @@ dataset.records.add( "answer": "Paris" # 'answer' matches the `rg.TextQuestion` name }, { - "question": "What is the capital of Germany?", + "question": "What is the capital of Germany?", "answer": "Berlin" }, ]) @@ -128,5 +128,5 @@ dataset.records.to_list() ### `rg.Dataset.records` ::: argilla_sdk.records.DatasetRecords - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md index 224f10a6b3..bd35a1610c 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md @@ -41,5 +41,5 @@ dataset = client.datasets("my_dataset") ### `rg.Dataset` ::: argilla_sdk.datasets.Dataset - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/records.md b/argilla-sdk/docs/reference/argilla_sdk/records/records.md index 706c4e76db..83f733bee5 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/records.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/records.md @@ -6,13 +6,13 @@ The `Record` object is used to represent a single record in Argilla. It contains ### Creating a Record -To add records, you can pass dictionaries to the `Dataset.records.add` method. Argilla will instantiate the `Record` class based on the input data and `mapping` property. The input data keys must match the names in `rg.Settings` object, or be mapped via the dictionary passed to the `mapping` parameter. +To add records, you can pass dictionaries to the `Dataset.records.add` method. Argilla will instantiate the `Record` class based on the input data and `mapping` property. The input data keys must match the names in `rg.Settings` object, or be mapped via the dictionary passed to the `mapping` parameter. ```python dataset.records.add( records=[ { - "question": "What is the capital of France?", + "question": "What is the capital of France?", "answer": "Paris" }, ]) @@ -36,9 +36,9 @@ The `Record` object has suggestions, responses, metadata, and vectors attributes ```python for record in dataset.records( - with_suggestions=True, - with_responses=True, - with_metadata=True, + with_suggestions=True, + with_responses=True, + with_metadata=True, with_vectors=True ): print(record.suggestions) @@ -64,5 +64,5 @@ For changes to take effect, the user must call the `update` method on the `Datas ### `rg.Record` ::: argilla_sdk.records.Record - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/responses.md b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md index 9d7b46862e..c370abbc83 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/responses.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md @@ -62,5 +62,5 @@ for record in dataset.records: ### `rg.Response` ::: argilla_sdk.responses.Response - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md index f4ee4fc281..5f2b7d2ba1 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md @@ -71,5 +71,5 @@ for record in dataset.records(with_suggestions=True): ### `rg.Suggestion` ::: argilla_sdk.suggestions.Suggestion - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md index 53e8b5ef7b..5d6ee59388 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md @@ -70,5 +70,5 @@ dataset.records.add( ### `rg.Vector` ::: argilla_sdk.vectors.Vector - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/search.md b/argilla-sdk/docs/reference/argilla_sdk/search.md index 704d0598f2..701d13fc73 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/search.md +++ b/argilla-sdk/docs/reference/argilla_sdk/search.md @@ -44,11 +44,11 @@ for record in dataset.records(query=query): ### `rg.Query` ::: argilla_sdk.records._search.Query - options: + options: heading_level: 3 ### `rg.Filter` -::: argilla_sdk.records._search.Filter - options: +::: argilla_sdk.records._search.Filter + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md index 8f3bd04144..194f9a4074 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md @@ -36,5 +36,5 @@ data = rg.Dataset( ### `rg.TextField` ::: argilla_sdk.settings.TextField - options: + options: heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md index 82a2287fea..ad2686fc3f 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md @@ -1,4 +1,4 @@ -# Metadata Properties +# Metadata Properties Metadata properties are used to define metadata fields in a dataset. Metadata fields are used to store additional information about the records in the dataset. For example, the category of a record, the price of a product, or any other information that is relevant to the record. @@ -66,17 +66,17 @@ dataset = rg.Dataset( ### `rg.FloatMetadataProperty` ::: argilla_sdk.settings.FloatMetadataProperty - options: + options: heading_level: 3 ### `rg.IntegerMetadataProperty` ::: argilla_sdk.settings.IntegerMetadataProperty - options: + options: heading_level: 3 ### `rg.TermsMetadataProperty` ::: argilla_sdk.settings.TermsMetadataProperty - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md index f27643a956..e874a2ed79 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md @@ -54,35 +54,35 @@ dataset = rg.Dataset( ### `rg.LabelQuestion` ::: argilla_sdk.settings.LabelQuestion - options: + options: heading_level: 3 ### `rg.MultiLabelQuestion` ::: argilla_sdk.settings.MultiLabelQuestion - options: + options: heading_level: 3 ### `rg.RankingQuestion` ::: argilla_sdk.settings.RankingQuestion - options: + options: heading_level: 3 ### `rg.TextQuestion` ::: argilla_sdk.settings.TextQuestion - options: + options: heading_level: 3 ### `rg.RatingQuestion` ::: argilla_sdk.settings.RatingQuestion - options: + options: heading_level: 3 ### `rg.SpanQuestion` ::: argilla_sdk.settings.SpanQuestion - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md index f945da4c72..29d557adb8 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md @@ -36,5 +36,5 @@ dataset.create() ### `rg.Settings` ::: argilla_sdk.settings.Settings - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md index 52292587fb..890ec9653f 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md @@ -1,6 +1,6 @@ # Vectors -Vector fields in Argilla are used to define the vector form of a record that will be reviewed by a user. +Vector fields in Argilla are used to define the vector form of a record that will be reviewed by a user. ## Usage Examples @@ -30,5 +30,5 @@ settings = rg.Settings( ### `rg.VectorField` ::: argilla_sdk.settings.VectorField - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/users.md b/argilla-sdk/docs/reference/argilla_sdk/users.md index 076cc2d466..f4c76293d1 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/users.md +++ b/argilla-sdk/docs/reference/argilla_sdk/users.md @@ -30,5 +30,5 @@ client.me ### `rg.User` ::: argilla_sdk.users.User - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/scripts/gen_ref_pages.py b/argilla-sdk/docs/scripts/gen_ref_pages.py index 9cae49eb63..41cfa60c28 100644 --- a/argilla-sdk/docs/scripts/gen_ref_pages.py +++ b/argilla-sdk/docs/scripts/gen_ref_pages.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/__init__.py b/argilla-sdk/src/argilla_sdk/__init__.py index e9f096b034..f055b40b9f 100644 --- a/argilla-sdk/src/argilla_sdk/__init__.py +++ b/argilla-sdk/src/argilla_sdk/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/__init__.py b/argilla-sdk/src/argilla_sdk/_api/__init__.py index f4789efdc8..601fddf156 100644 --- a/argilla-sdk/src/argilla_sdk/_api/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_api/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_base.py b/argilla-sdk/src/argilla_sdk/_api/_base.py index 0a535aa9bd..c43eeff186 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_base.py +++ b/argilla-sdk/src/argilla_sdk/_api/_base.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,12 +15,11 @@ # limitations under the License. from datetime import datetime -from typing import Generic, TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING, Generic, TypeVar from uuid import UUID from argilla_sdk._helpers._mixins import LoggingMixin - if TYPE_CHECKING: from httpx import Client diff --git a/argilla-sdk/src/argilla_sdk/_api/_client.py b/argilla-sdk/src/argilla_sdk/_api/_client.py index a4bbeb0ab4..9c575a3444 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_client.py +++ b/argilla-sdk/src/argilla_sdk/_api/_client.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_datasets.py b/argilla-sdk/src/argilla_sdk/_api/_datasets.py index 9fff950d5a..4e07419939 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_datasets.py +++ b/argilla-sdk/src/argilla_sdk/_api/_datasets.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,10 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Optional, Dict +from typing import Dict, List, Optional from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions._api import api_error_handler from argilla_sdk._models import DatasetModel diff --git a/argilla-sdk/src/argilla_sdk/_api/_fields.py b/argilla-sdk/src/argilla_sdk/_api/_fields.py index 7d34600017..942c2ebb8d 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_fields.py +++ b/argilla-sdk/src/argilla_sdk/_api/_fields.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,13 +14,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Dict +from typing import Dict, List from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler -from argilla_sdk._models import FieldBaseModel, TextFieldModel, FieldModel +from argilla_sdk._models import FieldBaseModel, FieldModel, TextFieldModel __all__ = ["FieldsAPI"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py b/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py index 801129e2be..f148982dd0 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/_client.py b/argilla-sdk/src/argilla_sdk/_api/_http/_client.py index 6fcf092456..e98d35bbce 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_http/_client.py +++ b/argilla-sdk/src/argilla_sdk/_api/_http/_client.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,7 +19,7 @@ import httpx -from argilla_sdk._constants import _DEFAULT_API_URL, _DEFAULT_API_KEY +from argilla_sdk._constants import _DEFAULT_API_KEY, _DEFAULT_API_URL @dataclass diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py b/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py index c955f9e827..e55a1efe33 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py +++ b/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +17,6 @@ import httpx from httpx import HTTPStatusError - __all__ = ["raise_for_status"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_metadata.py b/argilla-sdk/src/argilla_sdk/_api/_metadata.py index 07491296c1..451ad4fdae 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_api/_metadata.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,10 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Dict +from typing import Dict, List from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import MetadataFieldModel diff --git a/argilla-sdk/src/argilla_sdk/_api/_questions.py b/argilla-sdk/src/argilla_sdk/_api/_questions.py index 5e29c3e9a7..f6ae80cee7 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_questions.py +++ b/argilla-sdk/src/argilla_sdk/_api/_questions.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,21 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Dict +from typing import Dict, List from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import ( - TextQuestionModel, LabelQuestionModel, MultiLabelQuestionModel, + QuestionBaseModel, + QuestionModel, RankingQuestionModel, RatingQuestionModel, SpanQuestionModel, - QuestionBaseModel, - QuestionModel, + TextQuestionModel, ) __all__ = ["QuestionsAPI"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_records.py b/argilla-sdk/src/argilla_sdk/_api/_records.py index ef3cd6eaba..7c681015c2 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_records.py +++ b/argilla-sdk/src/argilla_sdk/_api/_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Dict, Tuple, Union, Optional +from typing import Dict, List, Optional, Tuple, Union from uuid import UUID import httpx @@ -20,7 +22,7 @@ from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler -from argilla_sdk._models import RecordModel, UserResponseModel, SearchQueryModel +from argilla_sdk._models import RecordModel, SearchQueryModel, UserResponseModel __all__ = ["RecordsAPI"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_users.py b/argilla-sdk/src/argilla_sdk/_api/_users.py index 7105bf0b57..e0539be02d 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_users.py +++ b/argilla-sdk/src/argilla_sdk/_api/_users.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_vectors.py b/argilla-sdk/src/argilla_sdk/_api/_vectors.py index c375bbe41e..4eba635f79 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_vectors.py +++ b/argilla-sdk/src/argilla_sdk/_api/_vectors.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,10 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Dict +from typing import Dict, List from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import VectorFieldModel diff --git a/argilla-sdk/src/argilla_sdk/_api/_workspaces.py b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py index 89c8becf57..5eba9a1564 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_workspaces.py +++ b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_constants.py b/argilla-sdk/src/argilla_sdk/_constants.py index 7e28f0fc57..9b55a64089 100644 --- a/argilla-sdk/src/argilla_sdk/_constants.py +++ b/argilla-sdk/src/argilla_sdk/_constants.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py b/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py index dafd682bba..c46e594e96 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_api.py b/argilla-sdk/src/argilla_sdk/_exceptions/_api.py index c37787cf7f..64584a73d2 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_api.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_api.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_base.py b/argilla-sdk/src/argilla_sdk/_exceptions/_base.py index 8d08488d4a..3eb65cf298 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_base.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_base.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py b/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py index 125dd7f6f9..a255298cf7 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py b/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py index 31a8321281..e2b0802485 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py b/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py index c23424706a..04f567f871 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/__init__.py b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py index 474f7bf4ef..e4d0b3851d 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py b/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py index d05df25fd7..a556ed9024 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,7 +15,7 @@ # limitations under the License. -from dataclasses import fields, dataclass +from dataclasses import dataclass, fields from typing import Type, TypeVar __all__ = ["dataclass_instance_from_dict"] diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py b/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py index 58422e8ea6..9a1a558958 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_log.py b/argilla-sdk/src/argilla_sdk/_helpers/_log.py index a8fc36c48e..d880c47232 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_log.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_log.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py b/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py index c5b4aefc5a..7c17e3e375 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py b/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py index f1f3e89baf..7b32c3b057 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +18,6 @@ from IPython.display import HTML - RESOURCE_REPR_CONFIG = { "Dataset": { "columns": ["name", "id", "workspace_id", "updated_at"], diff --git a/argilla-sdk/src/argilla_sdk/_models/__init__.py b/argilla-sdk/src/argilla_sdk/_models/__init__.py index f8de4d78a6..2098a77773 100644 --- a/argilla-sdk/src/argilla_sdk/_models/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/__init__.py @@ -1,3 +1,5 @@ +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # Copyright 2024-present, Argilla, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/argilla-sdk/src/argilla_sdk/_models/_base.py b/argilla-sdk/src/argilla_sdk/_models/_base.py index 5cefb69557..8bb6b1a8df 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_base.py +++ b/argilla-sdk/src/argilla_sdk/_models/_base.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,8 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional from datetime import datetime +from typing import Optional from uuid import UUID, uuid4 from pydantic import BaseModel, field_serializer diff --git a/argilla-sdk/src/argilla_sdk/_models/_dataset.py b/argilla-sdk/src/argilla_sdk/_models/_dataset.py index 931df96c49..409a00e026 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_dataset.py +++ b/argilla-sdk/src/argilla_sdk/_models/_dataset.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,10 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional from datetime import datetime +from typing import Literal, Optional from uuid import UUID -from typing import Literal from pydantic import field_serializer diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py index 749d13b87d..ca5c925445 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py b/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py index c8124894b6..71ce838a99 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,11 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Annotated, Union, List +from typing import Annotated, List, Union from pydantic import BaseModel - MetadataValue = Annotated[Union[str, List[str], float, int, None], "The value of the metadata field dictionary"] diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_record.py b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py index 252befe74c..fb9db60a95 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_record.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,11 +18,11 @@ from pydantic import Field, field_serializer, field_validator -from argilla_sdk._models._resource import ResourceModel from argilla_sdk._models._record._metadata import MetadataModel, MetadataValue from argilla_sdk._models._record._response import UserResponseModel from argilla_sdk._models._record._suggestion import SuggestionModel from argilla_sdk._models._record._vector import VectorModel +from argilla_sdk._models._resource import ResourceModel class RecordModel(ResourceModel): diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_response.py b/argilla-sdk/src/argilla_sdk/_models/_record/_response.py index 7b685ca0d1..8c9c649ac0 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_response.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_response.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,10 +16,10 @@ import warnings from enum import Enum -from typing import Dict, Optional, Union, Any +from typing import Any, Dict, Optional, Union from uuid import UUID -from pydantic import BaseModel, field_serializer, field_validator, Field +from pydantic import BaseModel, Field, field_serializer, field_validator class ResponseStatus(str, Enum): diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py b/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py index 8723849573..a34281ff10 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Any, Optional, Literal, Union, List +from typing import Any, List, Literal, Optional, Union from uuid import UUID, uuid4 from pydantic import BaseModel, field_serializer diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py b/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py index 2b46f0c9b5..1dcb38d1ed 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -11,13 +13,13 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import re from typing import List -from argilla_sdk._models import ResourceModel - -import re from pydantic import field_validator +from argilla_sdk._models import ResourceModel + __all__ = ["VectorModel"] diff --git a/argilla-sdk/src/argilla_sdk/_models/_resource.py b/argilla-sdk/src/argilla_sdk/_models/_resource.py index f048b3de39..92553f9a6f 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_resource.py +++ b/argilla-sdk/src/argilla_sdk/_models/_resource.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_search.py b/argilla-sdk/src/argilla_sdk/_models/_search.py index f62dbff0b7..a44e5e1126 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_search.py +++ b/argilla-sdk/src/argilla_sdk/_models/_search.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Any, Union, Literal, Annotated +from typing import Annotated, Any, List, Literal, Union from pydantic import BaseModel, Field diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py index 749d13b87d..ca5c925445 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py index d698d4bf7c..d207456770 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +17,7 @@ from typing import Optional from uuid import UUID -from pydantic import BaseModel, field_serializer, field_validator, Field +from pydantic import BaseModel, Field, field_serializer, field_validator from pydantic_core.core_schema import ValidationInfo from argilla_sdk._helpers._log import log diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py index 5fff8e19fb..13639af9b7 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,7 +15,7 @@ # limitations under the License. from enum import Enum -from typing import List, Literal, Optional, Union, Annotated +from typing import Annotated, List, Literal, Optional, Union from uuid import UUID from pydantic import BaseModel, Field, field_serializer, field_validator, model_validator diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py index 8d9dcc0aee..f5a9458dfd 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py index b235bf83e4..acee680237 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +18,7 @@ from typing import Optional from uuid import UUID -from pydantic import BaseModel, field_serializer, field_validator, Field +from pydantic import BaseModel, Field, field_serializer, field_validator from pydantic_core.core_schema import ValidationInfo diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py index 717460e1f9..393307d89e 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,11 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List, Optional, ClassVar +from typing import ClassVar, Dict, List, Optional -from pydantic import field_validator, Field, model_validator +from pydantic import Field, field_validator, model_validator -from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel +from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings try: from typing import Self diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py index 0084b06cb8..5e5c1692a2 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +18,7 @@ from pydantic import Field -from argilla_sdk._models._settings._questions._label_selection import LabelQuestionSettings, LabelQuestionModel +from argilla_sdk._models._settings._questions._label_selection import LabelQuestionModel, LabelQuestionSettings class OptionsOrder(str, Enum): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py index 70f43bedc5..f41694098d 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +16,9 @@ from typing import Dict, List, Optional -from pydantic import field_validator, Field +from pydantic import Field, field_validator -from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel +from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings class RankingQuestionSettings(QuestionSettings): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py index 39ade0c29a..dac4cd7cf0 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +16,9 @@ from typing import List -from pydantic import field_validator, Field +from pydantic import Field, field_validator -from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel +from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings class RatingQuestionSettings(QuestionSettings): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py index bd66428843..44bdba2207 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,11 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List, Optional, ClassVar +from typing import ClassVar, Dict, List, Optional -from pydantic import field_validator, Field, model_validator +from pydantic import Field, field_validator, model_validator -from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel +from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings try: from typing import Self diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py index 2d3ecaf89c..801fe8e75c 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel +from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings class TextQuestionSettings(QuestionSettings): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py index c518809d2c..c6a59838df 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +17,7 @@ from typing import Optional from uuid import UUID -from pydantic import BaseModel, field_validator, field_serializer +from pydantic import BaseModel, field_serializer, field_validator from pydantic_core.core_schema import ValidationInfo from argilla_sdk._helpers._log import log diff --git a/argilla-sdk/src/argilla_sdk/_models/_user.py b/argilla-sdk/src/argilla_sdk/_models/_user.py index 3e4bc9dd96..47f61f06d3 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_user.py +++ b/argilla-sdk/src/argilla_sdk/_models/_user.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_workspace.py b/argilla-sdk/src/argilla_sdk/_models/_workspace.py index b06bd141de..0003597907 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_workspace.py +++ b/argilla-sdk/src/argilla_sdk/_models/_workspace.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,11 +14,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -from argilla_sdk._models import ResourceModel - import re + from pydantic import field_validator +from argilla_sdk._models import ResourceModel + __all__ = ["WorkspaceModel"] diff --git a/argilla-sdk/src/argilla_sdk/_resource.py b/argilla-sdk/src/argilla_sdk/_resource.py index 4603cf7bd6..558be8558e 100644 --- a/argilla-sdk/src/argilla_sdk/_resource.py +++ b/argilla-sdk/src/argilla_sdk/_resource.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,16 +15,16 @@ # limitations under the License. from datetime import datetime -from typing import Any, TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from uuid import UUID from argilla_sdk._exceptions import ArgillaSerializeError from argilla_sdk._helpers._mixins import LoggingMixin, UUIDMixin if TYPE_CHECKING: - from argilla_sdk.client import Argilla - from argilla_sdk._models import ResourceModel from argilla_sdk._api._base import ResourceAPI + from argilla_sdk._models import ResourceModel + from argilla_sdk.client import Argilla class Resource(LoggingMixin, UUIDMixin): diff --git a/argilla-sdk/src/argilla_sdk/client.py b/argilla-sdk/src/argilla_sdk/client.py index 14b0e4c4f3..8ef161cc08 100644 --- a/argilla-sdk/src/argilla_sdk/client.py +++ b/argilla-sdk/src/argilla_sdk/client.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,21 +17,19 @@ import warnings from abc import abstractmethod from collections.abc import Sequence -from typing import TYPE_CHECKING, overload, List, Optional, Union +from typing import TYPE_CHECKING, List, Optional, Union, overload from argilla_sdk import _api from argilla_sdk._api._client import DEFAULT_HTTP_CONFIG from argilla_sdk._helpers import GenericIterator from argilla_sdk._helpers._resource_repr import ResourceHTMLReprMixin -from argilla_sdk._models import UserModel, WorkspaceModel, DatasetModel +from argilla_sdk._models import DatasetModel, UserModel, WorkspaceModel if TYPE_CHECKING: - from argilla_sdk import Workspace - from argilla_sdk import Dataset - from argilla_sdk import User - from IPython.display import HTML + from argilla_sdk import Dataset, User, Workspace + __all__ = ["Argilla"] diff --git a/argilla-sdk/src/argilla_sdk/datasets/__init__.py b/argilla-sdk/src/argilla_sdk/datasets/__init__.py index a1bf2af414..79cf7d453b 100644 --- a/argilla-sdk/src/argilla_sdk/datasets/__init__.py +++ b/argilla-sdk/src/argilla_sdk/datasets/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/datasets/_export.py b/argilla-sdk/src/argilla_sdk/datasets/_export.py index b597c1fcad..4b5cafba32 100644 --- a/argilla-sdk/src/argilla_sdk/datasets/_export.py +++ b/argilla-sdk/src/argilla_sdk/datasets/_export.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,13 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from abc import ABC import json import logging import os -from pathlib import Path import warnings -from typing import Optional, Union, TYPE_CHECKING, Tuple, Type +from abc import ABC +from pathlib import Path +from typing import TYPE_CHECKING, Optional, Tuple, Type, Union from uuid import uuid4 from argilla_sdk._models import DatasetModel @@ -26,7 +28,6 @@ from argilla_sdk.settings import Settings from argilla_sdk.workspaces._resource import Workspace - if TYPE_CHECKING: from argilla_sdk import Dataset diff --git a/argilla-sdk/src/argilla_sdk/datasets/_resource.py b/argilla-sdk/src/argilla_sdk/datasets/_resource.py index 781bdf6506..488fd98cc8 100644 --- a/argilla-sdk/src/argilla_sdk/datasets/_resource.py +++ b/argilla-sdk/src/argilla_sdk/datasets/_resource.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/records/__init__.py b/argilla-sdk/src/argilla_sdk/records/__init__.py index bb25d4798a..9278c95fb9 100644 --- a/argilla-sdk/src/argilla_sdk/records/__init__.py +++ b/argilla-sdk/src/argilla_sdk/records/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,6 +16,6 @@ from argilla_sdk.records._dataset_records import DatasetRecords from argilla_sdk.records._resource import Record -from argilla_sdk.records._search import Query, Filter, Condition +from argilla_sdk.records._search import Condition, Filter, Query __all__ = ["Record", "DatasetRecords", "Query", "Filter", "Condition"] diff --git a/argilla-sdk/src/argilla_sdk/records/_dataset_records.py b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py index add363c866..443c2bcb14 100644 --- a/argilla-sdk/src/argilla_sdk/records/_dataset_records.py +++ b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,7 +23,7 @@ from argilla_sdk._helpers._mixins import LoggingMixin from argilla_sdk._models import RecordModel from argilla_sdk.client import Argilla -from argilla_sdk.records._io import HFDatasetsIO, GenericIO, JsonIO, HFDataset +from argilla_sdk.records._io import GenericIO, HFDataset, HFDatasetsIO, JsonIO from argilla_sdk.records._resource import Record from argilla_sdk.records._search import Query from argilla_sdk.responses import Response @@ -449,7 +451,7 @@ def _infer_record_from_mapping( sub_attribute = attribute_mapping[2] elif schema_item is mapping is None and attribute != "id": warnings.warn( - message=f"""Record attribute {attribute} is not in the schema so skipping. + message=f"""Record attribute {attribute} is not in the schema so skipping. Define a mapping to map source data fields to Argilla Fields, Questions, and ids """ ) diff --git a/argilla-sdk/src/argilla_sdk/records/_io/__init__.py b/argilla-sdk/src/argilla_sdk/records/_io/__init__.py index d91bc90c35..a4755ffbdf 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/__init__.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -from argilla_sdk.records._io._datasets import HFDatasetsIO # noqa: F401 +from argilla_sdk.records._io._datasets import ( + HFDataset, # noqa: F401 + HFDatasetsIO, # noqa: F401 +) from argilla_sdk.records._io._generic import GenericIO # noqa: F401 from argilla_sdk.records._io._json import JsonIO # noqa: F401 -from argilla_sdk.records._io._datasets import HFDataset # noqa: F401 diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py b/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py index 030610f38f..291872d193 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List, Union, Optional, Type +from typing import Dict, List, Optional, Type, Union from argilla_sdk.records._io._generic import GenericIO diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_generic.py b/argilla-sdk/src/argilla_sdk/records/_io/_generic.py index eb135de8e7..98df6fa92b 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/_generic.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/_generic.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,7 +15,7 @@ # limitations under the License. from collections import defaultdict -from typing import Any, Dict, List, TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Dict, List, Union if TYPE_CHECKING: from argilla_sdk import Record diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_json.py b/argilla-sdk/src/argilla_sdk/records/_io/_json.py index 6d67627242..ddc472c055 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/_json.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/_json.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,8 +17,8 @@ from pathlib import Path from typing import List, Union -from argilla_sdk.records._resource import Record from argilla_sdk.records._io import GenericIO +from argilla_sdk.records._resource import Record class JsonIO: diff --git a/argilla-sdk/src/argilla_sdk/records/_resource.py b/argilla-sdk/src/argilla_sdk/records/_resource.py index 4074485cad..2b10fc1aa0 100644 --- a/argilla-sdk/src/argilla_sdk/records/_resource.py +++ b/argilla-sdk/src/argilla_sdk/records/_resource.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,16 +15,16 @@ # limitations under the License. from collections import defaultdict -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, Iterable +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Union from uuid import UUID, uuid4 from argilla_sdk._models import ( MetadataModel, + MetadataValue, RecordModel, - UserResponseModel, SuggestionModel, + UserResponseModel, VectorModel, - MetadataValue, ) from argilla_sdk._resource import Resource from argilla_sdk.responses import Response, UserResponse diff --git a/argilla-sdk/src/argilla_sdk/records/_search.py b/argilla-sdk/src/argilla_sdk/records/_search.py index bbcb341b47..dfe6951483 100644 --- a/argilla-sdk/src/argilla_sdk/records/_search.py +++ b/argilla-sdk/src/argilla_sdk/records/_search.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,20 +14,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional, List, Any, Union, Tuple +from typing import Any, List, Optional, Tuple, Union from argilla_sdk._models import SearchQueryModel from argilla_sdk._models._search import ( - TextQueryModel, - ResponseFilterScopeModel, - SuggestionFilterScopeModel, + AndFilterModel, + FilterModel, MetadataFilterScopeModel, - ScopeModel, + QueryModel, RangeFilterModel, + ResponseFilterScopeModel, + ScopeModel, + SuggestionFilterScopeModel, TermsFilterModel, - FilterModel, - AndFilterModel, - QueryModel, + TextQueryModel, ) @@ -78,13 +80,13 @@ class Filter: def __init__(self, conditions: Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None] = None): """ Create a filter object for use in Argilla search requests. - + Parameters: conditions (Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None], optional): \ The conditions that will be used to filter the search results. \ The conditions should be a list of tuples where each tuple contains \ the field, operator, and value. For example `("label", "in", ["positive","happy"])`.\ - + """ if isinstance(conditions, tuple): diff --git a/argilla-sdk/src/argilla_sdk/responses.py b/argilla-sdk/src/argilla_sdk/responses.py index 1f02fbbc26..dd9cac99b7 100644 --- a/argilla-sdk/src/argilla_sdk/responses.py +++ b/argilla-sdk/src/argilla_sdk/responses.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,10 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Any, TYPE_CHECKING, List, Dict, Optional, Iterable +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional from uuid import UUID -from argilla_sdk._models import UserResponseModel, ResponseStatus +from argilla_sdk._models import ResponseStatus, UserResponseModel from argilla_sdk._resource import Resource from argilla_sdk.settings import RankingQuestion @@ -57,12 +59,12 @@ def __init__( def serialize(self) -> dict[str, Any]: """Serializes the Response to a dictionary. This is principally used for sending the response to the API, \ but can be used for data wrangling or manual export. - + Returns: dict[str, Any]: The serialized response as a dictionary with keys `question_name`, `value`, and `user_id`. - + Examples: - + ```python response = rg.Response("label", "negative", user_id=user.id) response.serialize() diff --git a/argilla-sdk/src/argilla_sdk/settings/__init__.py b/argilla-sdk/src/argilla_sdk/settings/__init__.py index 122130d4ed..e6bb6a976f 100644 --- a/argilla-sdk/src/argilla_sdk/settings/__init__.py +++ b/argilla-sdk/src/argilla_sdk/settings/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/settings/_common.py b/argilla-sdk/src/argilla_sdk/settings/_common.py index 24ee4a63ca..0d39594e22 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_common.py +++ b/argilla-sdk/src/argilla_sdk/settings/_common.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Any, Optional, Union, List, Dict +from typing import Any, Dict, List, Optional, Union from argilla_sdk._models import FieldBaseModel, QuestionBaseModel from argilla_sdk._resource import Resource diff --git a/argilla-sdk/src/argilla_sdk/settings/_field.py b/argilla-sdk/src/argilla_sdk/settings/_field.py index 14483eb84e..4572365f9b 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_field.py +++ b/argilla-sdk/src/argilla_sdk/settings/_field.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/settings/_metadata.py b/argilla-sdk/src/argilla_sdk/settings/_metadata.py index d69eebee30..7de5a1bdb7 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/settings/_metadata.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,19 +14,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional, Union, List +from typing import List, Optional, Union from argilla_sdk._exceptions import MetadataError from argilla_sdk._models import ( - MetadataPropertyType, - TermsMetadataPropertySettings, FloatMetadataPropertySettings, IntegerMetadataPropertySettings, MetadataFieldModel, + MetadataPropertyType, + TermsMetadataPropertySettings, ) from argilla_sdk.settings._common import SettingsPropertyBase - __all__ = [ "TermsMetadataProperty", "FloatMetadataProperty", diff --git a/argilla-sdk/src/argilla_sdk/settings/_question.py b/argilla-sdk/src/argilla_sdk/settings/_question.py index 0b330ac44e..601b3e15b9 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_question.py +++ b/argilla-sdk/src/argilla_sdk/settings/_question.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,16 +20,16 @@ LabelQuestionModel, LabelQuestionSettings, MultiLabelQuestionModel, + MultiLabelQuestionSettings, + QuestionModel, RankingQuestionModel, - TextQuestionModel, - TextQuestionSettings, + RankingQuestionSettings, RatingQuestionModel, - QuestionModel, - SpanQuestionSettings, - SpanQuestionModel, RatingQuestionSettings, - MultiLabelQuestionSettings, - RankingQuestionSettings, + SpanQuestionModel, + SpanQuestionSettings, + TextQuestionModel, + TextQuestionSettings, ) from argilla_sdk.settings._common import SettingsPropertyBase @@ -57,7 +59,7 @@ def __init__( """ Define a new label question for `Settings` of a `Dataset`. A label \ question is a question where the user can select one label from \ a list of available labels. - + Parameters: name: str: The name of the question to be used as a reference. labels: List[str]: The list of available labels for the question. @@ -128,7 +130,7 @@ def __init__( """Create a new multilabel question for `Settings` of a `Dataset`. A \ multilabel question is a question where the user can select multiple \ labels from a list of available labels. - + Parameters: name: str: The name of the question to be used as a reference. labels: List[str]: The list of available labels for the question. @@ -136,7 +138,7 @@ def __init__( description: Optional[str]: The description of the question to be shown in the UI. required: bool: If the question is required for a record to be valid. visible_labels: Optional[int]: The number of visible labels for the question. - labels_order: str: The order of the labels in the UI. Can be either "natural" or "suggestion". Default is "natural". + labels_order: str: The order of the labels in the UI. Can be either "natural" or "suggestion". Default is "natural". """ self._model = MultiLabelQuestionModel( name=name, @@ -180,7 +182,7 @@ def __init__( ) -> None: """Create a new text question for `Settings` of a `Dataset`. A text question \ is a question where the user can input text. - + Parameters: name: str: The name of the question to be used as a reference. title: Optional[str]: The title of the question to be shown in the UI. @@ -230,7 +232,7 @@ def __init__( ) -> None: """Create a new rating question for `Settings` of a `Dataset`. A rating question \ is a question where the user can select a value from a sequential list of options. - + Parameters: name: str: The name of the question to be used as a reference. values: List[int]: The list of available values for the question. @@ -281,7 +283,7 @@ def __init__( ) -> None: """Create a new ranking question for `Settings` of a `Dataset`. A ranking question \ is a question where the user can rank a list of options. - + Parameters: name: str: The name of the question to be used as a reference. values: List[str]: The list of available values for the question. @@ -335,7 +337,7 @@ def __init__( """ Create a new span question for `Settings` of a `Dataset`. A span question \ is a question where the user can select a section of text within a text field \ and assign it a label. - + Parameters: name: str: The name of the question to be used as a reference. field: str: The name of the text field to apply the span question to. diff --git a/argilla-sdk/src/argilla_sdk/settings/_resource.py b/argilla-sdk/src/argilla_sdk/settings/_resource.py index 1c3068d1db..d11c52772a 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_resource.py +++ b/argilla-sdk/src/argilla_sdk/settings/_resource.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,15 +18,15 @@ import os from functools import cached_property from pathlib import Path -from typing import List, Optional, TYPE_CHECKING, Dict, Union +from typing import TYPE_CHECKING, Dict, List, Optional, Union from uuid import UUID -from argilla_sdk._exceptions import SettingsError, ArgillaAPIError, ArgillaSerializeError -from argilla_sdk._models import TextFieldModel, TextQuestionModel, DatasetModel +from argilla_sdk._exceptions import ArgillaAPIError, ArgillaSerializeError, SettingsError +from argilla_sdk._models import DatasetModel, TextFieldModel, TextQuestionModel from argilla_sdk._resource import Resource -from argilla_sdk.settings._field import FieldType, VectorField, field_from_model, field_from_dict +from argilla_sdk.settings._field import FieldType, VectorField, field_from_dict, field_from_model from argilla_sdk.settings._metadata import MetadataType -from argilla_sdk.settings._question import QuestionType, question_from_model, question_from_dict +from argilla_sdk.settings._question import QuestionType, question_from_dict, question_from_model if TYPE_CHECKING: from argilla_sdk.datasets import Dataset diff --git a/argilla-sdk/src/argilla_sdk/suggestions.py b/argilla-sdk/src/argilla_sdk/suggestions.py index 7d37a7527e..b4bbf39fea 100644 --- a/argilla-sdk/src/argilla_sdk/suggestions.py +++ b/argilla-sdk/src/argilla_sdk/suggestions.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -11,7 +13,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from typing import Any, Optional, Literal, Union, List, TYPE_CHECKING, Dict +from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Union from uuid import UUID from argilla_sdk._models import SuggestionModel @@ -19,7 +21,7 @@ from argilla_sdk.settings import RankingQuestion if TYPE_CHECKING: - from argilla_sdk import QuestionType, Record, Dataset + from argilla_sdk import Dataset, QuestionType, Record __all__ = ["Suggestion"] diff --git a/argilla-sdk/src/argilla_sdk/users/__init__.py b/argilla-sdk/src/argilla_sdk/users/__init__.py index c40fb8bce2..a46c3fb235 100644 --- a/argilla-sdk/src/argilla_sdk/users/__init__.py +++ b/argilla-sdk/src/argilla_sdk/users/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/users/_resource.py b/argilla-sdk/src/argilla_sdk/users/_resource.py index 8177cc1144..cffe599ac1 100644 --- a/argilla-sdk/src/argilla_sdk/users/_resource.py +++ b/argilla-sdk/src/argilla_sdk/users/_resource.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,7 +19,7 @@ from argilla_sdk import Workspace from argilla_sdk._api import UsersAPI -from argilla_sdk._models import UserModel, Role +from argilla_sdk._models import Role, UserModel from argilla_sdk._resource import Resource from argilla_sdk.client import Argilla @@ -25,7 +27,7 @@ class User(Resource): """Class for interacting with Argilla users in the Argilla server. User profiles \ are used to manage access to the Argilla server and track responses to records. - + Attributes: username (str): The username of the user. first_name (str): The first name of the user. diff --git a/argilla-sdk/src/argilla_sdk/vectors.py b/argilla-sdk/src/argilla_sdk/vectors.py index 17f83b7ebd..d286dfd1e0 100644 --- a/argilla-sdk/src/argilla_sdk/vectors.py +++ b/argilla-sdk/src/argilla_sdk/vectors.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/workspaces/__init__.py b/argilla-sdk/src/argilla_sdk/workspaces/__init__.py index f833ea9e96..4fb8d83773 100644 --- a/argilla-sdk/src/argilla_sdk/workspaces/__init__.py +++ b/argilla-sdk/src/argilla_sdk/workspaces/__init__.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/workspaces/_resource.py b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py index 9b8a077a47..5911c349d4 100644 --- a/argilla-sdk/src/argilla_sdk/workspaces/_resource.py +++ b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, TYPE_CHECKING, Optional, overload, Union, Sequence +from typing import TYPE_CHECKING, List, Optional, Sequence, Union, overload from uuid import UUID from argilla_sdk._api._workspaces import WorkspacesAPI diff --git a/argilla-sdk/tests/integration/conftest.py b/argilla-sdk/tests/integration/conftest.py index 44b9e177f8..d20ec1f81d 100644 --- a/argilla-sdk/tests/integration/conftest.py +++ b/argilla-sdk/tests/integration/conftest.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,9 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest - import argilla_sdk as rg +import pytest @pytest.fixture(scope="session") diff --git a/argilla-sdk/tests/integration/test_add_records.py b/argilla-sdk/tests/integration/test_add_records.py index 9fb918b128..10333c4cd6 100644 --- a/argilla-sdk/tests/integration/test_add_records.py +++ b/argilla-sdk/tests/integration/test_add_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +18,6 @@ import uuid from datetime import datetime - import argilla_sdk as rg from argilla_sdk import Argilla diff --git a/argilla-sdk/tests/integration/test_create_datasets.py b/argilla-sdk/tests/integration/test_create_datasets.py index 160f602bb6..975b469acf 100644 --- a/argilla-sdk/tests/integration/test_create_datasets.py +++ b/argilla-sdk/tests/integration/test_create_datasets.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,8 +16,7 @@ import uuid import pytest - -from argilla_sdk import Argilla, Dataset, Settings, TextField, RatingQuestion +from argilla_sdk import Argilla, Dataset, RatingQuestion, Settings, TextField @pytest.fixture(scope="session", autouse=True) diff --git a/argilla-sdk/tests/integration/test_dataset_workspace.py b/argilla-sdk/tests/integration/test_dataset_workspace.py index 3faad1e57a..4004ce58da 100644 --- a/argilla-sdk/tests/integration/test_dataset_workspace.py +++ b/argilla-sdk/tests/integration/test_dataset_workspace.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +16,8 @@ import random -import pytest - import argilla_sdk as rg +import pytest from argilla_sdk._exceptions import NotFoundError diff --git a/argilla-sdk/tests/integration/test_empty_settings.py b/argilla-sdk/tests/integration/test_empty_settings.py index 3b1305a68c..ab5b42f5fc 100644 --- a/argilla-sdk/tests/integration/test_empty_settings.py +++ b/argilla-sdk/tests/integration/test_empty_settings.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,8 +18,7 @@ from string import ascii_lowercase import pytest - -from argilla_sdk import Argilla, Dataset, Settings, Workspace, TextQuestion, TextField +from argilla_sdk import Argilla, Dataset, Settings, TextField, TextQuestion, Workspace from argilla_sdk._exceptions import SettingsError diff --git a/argilla-sdk/tests/integration/test_export_dataset.py b/argilla-sdk/tests/integration/test_export_dataset.py index 37031f80e7..45f18ccb91 100644 --- a/argilla-sdk/tests/integration/test_export_dataset.py +++ b/argilla-sdk/tests/integration/test_export_dataset.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,9 +21,8 @@ from string import ascii_lowercase from tempfile import TemporaryDirectory -import pytest - import argilla_sdk as rg +import pytest @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_export_records.py b/argilla-sdk/tests/integration/test_export_records.py index 09f99dc090..baa47d64c2 100644 --- a/argilla-sdk/tests/integration/test_export_records.py +++ b/argilla-sdk/tests/integration/test_export_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,11 +21,10 @@ from string import ascii_lowercase from tempfile import TemporaryDirectory -import pytest -from datasets import Dataset as HFDataset - import argilla_sdk as rg +import pytest from argilla_sdk import Argilla +from datasets import Dataset as HFDataset @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_list_records.py b/argilla-sdk/tests/integration/test_list_records.py index eb7885e272..0e837237b4 100644 --- a/argilla-sdk/tests/integration/test_list_records.py +++ b/argilla-sdk/tests/integration/test_list_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,8 +18,7 @@ from string import ascii_lowercase import pytest - -from argilla_sdk import Argilla, Dataset, Settings, TextField, TextQuestion, Workspace, LabelQuestion +from argilla_sdk import Argilla, Dataset, LabelQuestion, Settings, TextField, TextQuestion, Workspace @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_listing_datasets.py b/argilla-sdk/tests/integration/test_listing_datasets.py index 18376c9d03..573d6bb2b3 100644 --- a/argilla-sdk/tests/integration/test_listing_datasets.py +++ b/argilla-sdk/tests/integration/test_listing_datasets.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/integration/test_manage_users.py b/argilla-sdk/tests/integration/test_manage_users.py index da5f15247f..d20e620f80 100644 --- a/argilla-sdk/tests/integration/test_manage_users.py +++ b/argilla-sdk/tests/integration/test_manage_users.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,8 +15,7 @@ # limitations under the License. import pytest - -from argilla_sdk import User, Argilla +from argilla_sdk import Argilla, User @pytest.fixture(scope="session", autouse=True) diff --git a/argilla-sdk/tests/integration/test_manage_workspaces.py b/argilla-sdk/tests/integration/test_manage_workspaces.py index 7f9989577e..adf3f93715 100644 --- a/argilla-sdk/tests/integration/test_manage_workspaces.py +++ b/argilla-sdk/tests/integration/test_manage_workspaces.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/integration/test_metadata.py b/argilla-sdk/tests/integration/test_metadata.py index ce8048cf6b..bb1f653c30 100644 --- a/argilla-sdk/tests/integration/test_metadata.py +++ b/argilla-sdk/tests/integration/test_metadata.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,10 +17,9 @@ import random from string import ascii_lowercase -import pytest - import argilla_sdk as rg -from argilla_sdk import Argilla, Dataset, Settings, TextField, Workspace, LabelQuestion +import pytest +from argilla_sdk import Argilla, Dataset, LabelQuestion, Settings, TextField, Workspace @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_publish_datasets.py b/argilla-sdk/tests/integration/test_publish_datasets.py index de4fa524db..c4cacb8292 100644 --- a/argilla-sdk/tests/integration/test_publish_datasets.py +++ b/argilla-sdk/tests/integration/test_publish_datasets.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,17 +17,17 @@ from argilla_sdk import ( Argilla, - Settings, - TextField, - TextQuestion, - SpanQuestion, + FloatMetadataProperty, + IntegerMetadataProperty, LabelQuestion, MultiLabelQuestion, - RatingQuestion, RankingQuestion, + RatingQuestion, + Settings, + SpanQuestion, TermsMetadataProperty, - IntegerMetadataProperty, - FloatMetadataProperty, + TextField, + TextQuestion, ) diff --git a/argilla-sdk/tests/integration/test_query_records.py b/argilla-sdk/tests/integration/test_query_records.py index 193de14b6d..a1c66342dd 100644 --- a/argilla-sdk/tests/integration/test_query_records.py +++ b/argilla-sdk/tests/integration/test_query_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,10 +17,9 @@ import random from string import ascii_lowercase -import pytest - import argilla_sdk as rg -from argilla_sdk import Argilla, Dataset, Settings, TextField, Workspace, LabelQuestion +import pytest +from argilla_sdk import Argilla, Dataset, LabelQuestion, Settings, TextField, Workspace @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_ranking_questions.py b/argilla-sdk/tests/integration/test_ranking_questions.py index 0ebc92fba3..04f3381aa0 100644 --- a/argilla-sdk/tests/integration/test_ranking_questions.py +++ b/argilla-sdk/tests/integration/test_ranking_questions.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +16,8 @@ import random -import pytest - import argilla_sdk as rg +import pytest @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_update_records.py b/argilla-sdk/tests/integration/test_update_records.py index bcfa328ce9..3e86675094 100644 --- a/argilla-sdk/tests/integration/test_update_records.py +++ b/argilla-sdk/tests/integration/test_update_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,9 +18,8 @@ import uuid from string import ascii_lowercase -import pytest - import argilla_sdk as rg +import pytest from argilla_sdk import Record from argilla_sdk._models import RecordModel diff --git a/argilla-sdk/tests/integration/test_vectors.py b/argilla-sdk/tests/integration/test_vectors.py index 2b7a4726c0..ea1bde03c4 100644 --- a/argilla-sdk/tests/integration/test_vectors.py +++ b/argilla-sdk/tests/integration/test_vectors.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,9 +18,8 @@ import uuid from datetime import datetime -import pytest - import argilla_sdk as rg +import pytest @pytest.fixture diff --git a/argilla-sdk/tests/unit/api/http/test_http_client.py b/argilla-sdk/tests/unit/api/http/test_http_client.py index 3a65d710a7..bb3c4d9f6c 100644 --- a/argilla-sdk/tests/unit/api/http/test_http_client.py +++ b/argilla-sdk/tests/unit/api/http/test_http_client.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,9 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from httpx import Timeout - from argilla_sdk import Argilla +from httpx import Timeout class TestHTTPClient: diff --git a/argilla-sdk/tests/unit/conftest.py b/argilla-sdk/tests/unit/conftest.py index e27f091979..f242ef6356 100644 --- a/argilla-sdk/tests/unit/conftest.py +++ b/argilla-sdk/tests/unit/conftest.py @@ -1,3 +1,5 @@ +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # Copyright 2024-present, Argilla, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py b/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py index 5c9c93f89d..87b3102fbc 100644 --- a/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py +++ b/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,9 +17,8 @@ import json import uuid -import pytest - import argilla_sdk as rg +import pytest from argilla_sdk.records._resource import Record diff --git a/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py index c72ccdde0b..01c5d13e29 100644 --- a/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py +++ b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,16 +14,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest import uuid from datetime import datetime from tempfile import TemporaryDirectory +import argilla_sdk as rg import httpx +import pytest from pytest_httpx import HTTPXMock -import argilla_sdk as rg - @pytest.fixture def settings(): diff --git a/argilla-sdk/tests/unit/helpers/test_resource_repr.py b/argilla-sdk/tests/unit/helpers/test_resource_repr.py index 82659678c4..9cd215427f 100644 --- a/argilla-sdk/tests/unit/helpers/test_resource_repr.py +++ b/argilla-sdk/tests/unit/helpers/test_resource_repr.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_interface.py b/argilla-sdk/tests/unit/test_interface.py index 41066b67fc..711b24950e 100644 --- a/argilla-sdk/tests/unit/test_interface.py +++ b/argilla-sdk/tests/unit/test_interface.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_record_ingestion.py b/argilla-sdk/tests/unit/test_record_ingestion.py index 54c41d06fe..57b75413d8 100644 --- a/argilla-sdk/tests/unit/test_record_ingestion.py +++ b/argilla-sdk/tests/unit/test_record_ingestion.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +16,8 @@ from uuid import uuid4 -import pytest - import argilla_sdk as rg +import pytest @pytest.fixture diff --git a/argilla-sdk/tests/unit/test_record_responses.py b/argilla-sdk/tests/unit/test_record_responses.py index b6f57ee3fd..0e534ffc9f 100644 --- a/argilla-sdk/tests/unit/test_record_responses.py +++ b/argilla-sdk/tests/unit/test_record_responses.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +16,8 @@ import uuid import pytest - -from argilla_sdk import Response, User, Dataset, Settings, TextQuestion, TextField, Workspace -from argilla_sdk.records._resource import RecordResponses, Record +from argilla_sdk import Dataset, Response, Settings, TextField, TextQuestion, User, Workspace +from argilla_sdk.records._resource import Record, RecordResponses @pytest.fixture diff --git a/argilla-sdk/tests/unit/test_record_suggestions.py b/argilla-sdk/tests/unit/test_record_suggestions.py index 8ce6105b02..f2f215e4a7 100644 --- a/argilla-sdk/tests/unit/test_record_suggestions.py +++ b/argilla-sdk/tests/unit/test_record_suggestions.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,7 +15,6 @@ # limitations under the License. import pytest - from argilla_sdk import Record, Suggestion from argilla_sdk.records._resource import RecordSuggestions diff --git a/argilla-sdk/tests/unit/test_resources/test_datasets.py b/argilla-sdk/tests/unit/test_resources/test_datasets.py index 80f0b1b037..e05c6ff59b 100644 --- a/argilla-sdk/tests/unit/test_resources/test_datasets.py +++ b/argilla-sdk/tests/unit/test_resources/test_datasets.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,11 +17,9 @@ import uuid from datetime import datetime +import argilla_sdk as rg import httpx import pytest -from pytest_httpx import HTTPXMock - -import argilla_sdk as rg from argilla_sdk._exceptions import ( BadRequestError, ConflictError, @@ -28,6 +28,7 @@ NotFoundError, UnprocessableEntityError, ) +from pytest_httpx import HTTPXMock @pytest.fixture diff --git a/argilla-sdk/tests/unit/test_resources/test_fields.py b/argilla-sdk/tests/unit/test_resources/test_fields.py index 1064556fb7..ed0d919e8d 100644 --- a/argilla-sdk/tests/unit/test_resources/test_fields.py +++ b/argilla-sdk/tests/unit/test_resources/test_fields.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,11 +17,10 @@ import uuid from datetime import datetime -import httpx -from pytest_httpx import HTTPXMock - import argilla_sdk as rg +import httpx from argilla_sdk._models import TextFieldModel +from pytest_httpx import HTTPXMock class TestFieldsAPI: diff --git a/argilla-sdk/tests/unit/test_resources/test_questions.py b/argilla-sdk/tests/unit/test_resources/test_questions.py index 0b28b2fefe..614c56b6a8 100644 --- a/argilla-sdk/tests/unit/test_resources/test_questions.py +++ b/argilla-sdk/tests/unit/test_resources/test_questions.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,12 +17,11 @@ import uuid from datetime import datetime -import httpx -from pytest_httpx import HTTPXMock - import argilla_sdk as rg -from argilla_sdk._models import TextQuestionModel, LabelQuestionModel +import httpx +from argilla_sdk._models import LabelQuestionModel, TextQuestionModel from argilla_sdk._models._settings._questions import SpanQuestionModel +from pytest_httpx import HTTPXMock class TestQuestionsAPI: diff --git a/argilla-sdk/tests/unit/test_resources/test_records.py b/argilla-sdk/tests/unit/test_resources/test_records.py index 4366766d47..5c49ca8b48 100644 --- a/argilla-sdk/tests/unit/test_resources/test_records.py +++ b/argilla-sdk/tests/unit/test_resources/test_records.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +16,7 @@ import uuid -from argilla_sdk import Record, Suggestion, Response +from argilla_sdk import Record, Response, Suggestion from argilla_sdk._models import MetadataModel diff --git a/argilla-sdk/tests/unit/test_resources/test_users.py b/argilla-sdk/tests/unit/test_resources/test_users.py index b8c87ef59f..4c23033843 100644 --- a/argilla-sdk/tests/unit/test_resources/test_users.py +++ b/argilla-sdk/tests/unit/test_resources/test_users.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,11 +18,9 @@ import uuid from datetime import datetime +import argilla_sdk as rg import httpx import pytest -from pytest_httpx import HTTPXMock - -import argilla_sdk as rg from argilla_sdk._exceptions import ( BadRequestError, ConflictError, @@ -30,6 +30,7 @@ UnprocessableEntityError, ) from argilla_sdk._models import UserModel +from pytest_httpx import HTTPXMock class TestUserSerialization: diff --git a/argilla-sdk/tests/unit/test_resources/test_workspaces.py b/argilla-sdk/tests/unit/test_resources/test_workspaces.py index a430b1aba0..90c3424599 100644 --- a/argilla-sdk/tests/unit/test_resources/test_workspaces.py +++ b/argilla-sdk/tests/unit/test_resources/test_workspaces.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,11 +17,9 @@ import uuid from datetime import datetime +import argilla_sdk as rg import httpx import pytest -from pytest_httpx import HTTPXMock - -import argilla_sdk as rg from argilla_sdk._exceptions import ( BadRequestError, ConflictError, @@ -28,6 +28,7 @@ NotFoundError, UnprocessableEntityError, ) +from pytest_httpx import HTTPXMock class TestWorkspacesSerialization: diff --git a/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py b/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py index 4818f61c5a..fc095a7fa3 100644 --- a/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py +++ b/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_settings/test_settings.py b/argilla-sdk/tests/unit/test_settings/test_settings.py index c39230f728..cda3f6e707 100644 --- a/argilla-sdk/tests/unit/test_settings/test_settings.py +++ b/argilla-sdk/tests/unit/test_settings/test_settings.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -11,9 +13,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import pytest - import argilla_sdk as rg +import pytest from argilla_sdk._exceptions import SettingsError diff --git a/argilla-sdk/tests/unit/test_settings/test_settings_fields.py b/argilla-sdk/tests/unit/test_settings/test_settings_fields.py index 917521f4ef..f4a17ae510 100644 --- a/argilla-sdk/tests/unit/test_settings/test_settings_fields.py +++ b/argilla-sdk/tests/unit/test_settings/test_settings_fields.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,8 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest import argilla_sdk as rg +import pytest class TestTextField: diff --git a/argilla-sdk/tests/unit/test_settings/test_settings_questions.py b/argilla-sdk/tests/unit/test_settings/test_settings_questions.py index cec8ad1a6c..e07bc91c37 100644 --- a/argilla-sdk/tests/unit/test_settings/test_settings_questions.py +++ b/argilla-sdk/tests/unit/test_settings/test_settings_questions.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_settings/test_span_question.py b/argilla-sdk/tests/unit/test_settings/test_span_question.py index 67168d8b3c..e3890a6406 100644 --- a/argilla-sdk/tests/unit/test_settings/test_span_question.py +++ b/argilla-sdk/tests/unit/test_settings/test_span_question.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py index d4eda709c9..de0c77805a 100644 --- a/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py +++ b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py @@ -1,4 +1,6 @@ # Copyright 2024-present, Argilla, Inc. +# TODO: This license is not consistent with the license used in the project. +# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 32dace520b8457dc2795d30ddf782d7e7060201b Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 11:26:04 +0200 Subject: [PATCH 05/17] ci: Configure argilla-sdk docs pipeline --- .../{docs.yml => argilla-sdk.docs.yml} | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) rename .github/workflows/{docs.yml => argilla-sdk.docs.yml} (84%) diff --git a/.github/workflows/docs.yml b/.github/workflows/argilla-sdk.docs.yml similarity index 84% rename from .github/workflows/docs.yml rename to .github/workflows/argilla-sdk.docs.yml index 6389bc0379..32990da050 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/argilla-sdk.docs.yml @@ -6,13 +6,18 @@ concurrency: on: push: + paths: + - "argilla-sdk/**" branches: - - main - - gh-pages + - "main" + - "develop" + - "gh-pages" tags: - "**" pull_request: + paths: + - "argilla-sdk/**" types: - opened - edited @@ -20,7 +25,13 @@ on: - synchronize - ready_for_review branches: - - main + - "main" + - "develop" + - "feat/**" + +defaults: + run: + working-directory: argilla-sdk jobs: publish: @@ -28,7 +39,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10"] + python-version: [ "3.10" ] steps: - name: checkout docs-site @@ -44,7 +55,7 @@ jobs: python-version: ${{ matrix.python-version }} cache: true cache-dependency-path: | - pyproject.toml + argilla-sdk/pyproject.toml - name: Install dependencies run: | From f5097ca116bba8f870eed81bdd60734456b9ccfe Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 11:27:04 +0200 Subject: [PATCH 06/17] ci: Configure conditions for build --- .github/workflows/argilla-sdk.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/argilla-sdk.yml b/.github/workflows/argilla-sdk.yml index fe799f9e33..f3da01d6f3 100644 --- a/.github/workflows/argilla-sdk.yml +++ b/.github/workflows/argilla-sdk.yml @@ -16,12 +16,17 @@ on: push: paths: - "argilla-sdk/**" - branches: [ "develop" ] + branches: + - "develop" + - "main" pull_request: paths: - "argilla-sdk/**" - branches: [ "develop" ] + branches: + - "develop" + - "main" + - "feat/**" release: types: From 0fd47cbc1493d9fbb7d63a1db2b62e2d087cf0b8 Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 11:30:39 +0200 Subject: [PATCH 07/17] fix: set proper path for pyproject.toml --- .github/workflows/argilla-sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/argilla-sdk.yml b/.github/workflows/argilla-sdk.yml index f3da01d6f3..b8b397a44d 100644 --- a/.github/workflows/argilla-sdk.yml +++ b/.github/workflows/argilla-sdk.yml @@ -62,7 +62,7 @@ jobs: python-version: ${{ matrix.python-version }} cache: true cache-dependency-path: | - pyproject.toml + argilla-sdk/pyproject.toml - name: Install dependencies run: | pdm install From be8095579ce8374637f289ccca694e852d9fb93a Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 14:52:24 +0200 Subject: [PATCH 08/17] chore: Configure base precommit only for argilla --- .pre-commit-config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7aaee7ffe9..b332c67035 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: hooks: - id: insert-license name: "Insert license header in Python source files" - files: \.py$ + files: '^argilla/.*\.py' args: - --license-filepath - license_header.txt @@ -33,6 +33,7 @@ repos: hooks: # Simulate isort via (the much faster) ruff - id: ruff + files: '^argilla/.*\.py' args: - --select=I - --fix From 84afc608115d059b27773d31081ebeb425a87e38 Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 14:53:02 +0200 Subject: [PATCH 09/17] chore: Rsync argilla-sdk from argilla-python --- argilla-sdk/.pre-commit-config.yaml | 2 +- argilla-sdk/README.md | 4 +- .../docs/getting_started/quickstart.md | 4 +- argilla-sdk/docs/how_to_guides/dataset.md | 4 +- argilla-sdk/docs/how_to_guides/record.md | 14 ++-- argilla-sdk/docs/how_to_guides/workspace.md | 4 +- .../docs/reference/argilla_sdk/client.md | 4 +- .../argilla_sdk/datasets/dataset_records.md | 4 +- .../argilla_sdk/datasets/datasets.md | 2 +- .../reference/argilla_sdk/records/records.md | 12 ++-- .../argilla_sdk/records/responses.md | 2 +- .../argilla_sdk/records/suggestions.md | 2 +- .../reference/argilla_sdk/records/vectors.md | 2 +- .../docs/reference/argilla_sdk/search.md | 6 +- .../reference/argilla_sdk/settings/fields.md | 2 +- .../argilla_sdk/settings/metadata_property.md | 8 +-- .../argilla_sdk/settings/questions.md | 12 ++-- .../argilla_sdk/settings/settings.md | 2 +- .../reference/argilla_sdk/settings/vectors.md | 4 +- .../docs/reference/argilla_sdk/users.md | 2 +- argilla-sdk/docs/scripts/gen_ref_pages.py | 2 - argilla-sdk/src/argilla_sdk/__init__.py | 2 - argilla-sdk/src/argilla_sdk/_api/__init__.py | 2 - argilla-sdk/src/argilla_sdk/_api/_base.py | 5 +- argilla-sdk/src/argilla_sdk/_api/_client.py | 2 - argilla-sdk/src/argilla_sdk/_api/_datasets.py | 5 +- argilla-sdk/src/argilla_sdk/_api/_fields.py | 7 +- .../src/argilla_sdk/_api/_http/__init__.py | 2 - .../src/argilla_sdk/_api/_http/_client.py | 4 +- .../src/argilla_sdk/_api/_http/_helpers.py | 3 +- argilla-sdk/src/argilla_sdk/_api/_metadata.py | 5 +- .../src/argilla_sdk/_api/_questions.py | 11 ++- argilla-sdk/src/argilla_sdk/_api/_records.py | 6 +- argilla-sdk/src/argilla_sdk/_api/_users.py | 2 - argilla-sdk/src/argilla_sdk/_api/_vectors.py | 5 +- .../src/argilla_sdk/_api/_workspaces.py | 2 - argilla-sdk/src/argilla_sdk/_constants.py | 2 - .../src/argilla_sdk/_exceptions/__init__.py | 2 - .../src/argilla_sdk/_exceptions/_api.py | 2 - .../src/argilla_sdk/_exceptions/_base.py | 2 - .../src/argilla_sdk/_exceptions/_metadata.py | 2 - .../argilla_sdk/_exceptions/_serialization.py | 2 - .../src/argilla_sdk/_exceptions/_settings.py | 2 - .../src/argilla_sdk/_helpers/__init__.py | 2 - .../src/argilla_sdk/_helpers/_dataclasses.py | 4 +- .../src/argilla_sdk/_helpers/_iterator.py | 2 - argilla-sdk/src/argilla_sdk/_helpers/_log.py | 2 - .../src/argilla_sdk/_helpers/_mixins.py | 2 - .../argilla_sdk/_helpers/_resource_repr.py | 3 +- .../src/argilla_sdk/_models/__init__.py | 2 - argilla-sdk/src/argilla_sdk/_models/_base.py | 4 +- .../src/argilla_sdk/_models/_dataset.py | 5 +- .../argilla_sdk/_models/_record/__init__.py | 2 - .../argilla_sdk/_models/_record/_metadata.py | 5 +- .../argilla_sdk/_models/_record/_record.py | 4 +- .../argilla_sdk/_models/_record/_response.py | 6 +- .../_models/_record/_suggestion.py | 4 +- .../argilla_sdk/_models/_record/_vector.py | 8 +-- .../src/argilla_sdk/_models/_resource.py | 2 - .../src/argilla_sdk/_models/_search.py | 4 +- .../argilla_sdk/_models/_settings/__init__.py | 2 - .../argilla_sdk/_models/_settings/_fields.py | 4 +- .../_models/_settings/_metadata.py | 4 +- .../_models/_settings/_questions/__init__.py | 2 - .../_models/_settings/_questions/_base.py | 4 +- .../_settings/_questions/_label_selection.py | 8 +-- .../_questions/_multi_label_selection.py | 4 +- .../_models/_settings/_questions/_ranking.py | 6 +- .../_models/_settings/_questions/_rating.py | 6 +- .../_models/_settings/_questions/_span.py | 8 +-- .../_models/_settings/_questions/_text.py | 4 +- .../argilla_sdk/_models/_settings/_vectors.py | 4 +- argilla-sdk/src/argilla_sdk/_models/_user.py | 2 - .../src/argilla_sdk/_models/_workspace.py | 7 +- argilla-sdk/src/argilla_sdk/_resource.py | 8 +-- argilla-sdk/src/argilla_sdk/client.py | 12 ++-- .../src/argilla_sdk/datasets/__init__.py | 2 - .../src/argilla_sdk/datasets/_export.py | 9 ++- .../src/argilla_sdk/datasets/_resource.py | 2 - .../src/argilla_sdk/records/__init__.py | 4 +- .../argilla_sdk/records/_dataset_records.py | 18 ++--- .../src/argilla_sdk/records/_io/__init__.py | 8 +-- .../src/argilla_sdk/records/_io/_datasets.py | 4 +- .../src/argilla_sdk/records/_io/_generic.py | 4 +- .../src/argilla_sdk/records/_io/_json.py | 4 +- .../src/argilla_sdk/records/_resource.py | 8 +-- .../src/argilla_sdk/records/_search.py | 22 +++--- argilla-sdk/src/argilla_sdk/responses.py | 12 ++-- .../src/argilla_sdk/settings/__init__.py | 2 - .../src/argilla_sdk/settings/_common.py | 36 +--------- .../src/argilla_sdk/settings/_field.py | 2 - .../src/argilla_sdk/settings/_metadata.py | 9 ++- .../src/argilla_sdk/settings/_question.py | 72 +++++++++++++------ .../src/argilla_sdk/settings/_resource.py | 14 ++-- argilla-sdk/src/argilla_sdk/suggestions.py | 6 +- argilla-sdk/src/argilla_sdk/users/__init__.py | 2 - .../src/argilla_sdk/users/_resource.py | 6 +- argilla-sdk/src/argilla_sdk/vectors.py | 2 - .../src/argilla_sdk/workspaces/__init__.py | 2 - .../src/argilla_sdk/workspaces/_resource.py | 4 +- argilla-sdk/tests/integration/conftest.py | 5 +- .../tests/integration/test_add_records.py | 3 +- .../tests/integration/test_create_datasets.py | 5 +- .../integration/test_dataset_workspace.py | 5 +- .../tests/integration/test_empty_settings.py | 5 +- .../tests/integration/test_export_dataset.py | 5 +- .../tests/integration/test_export_records.py | 7 +- .../tests/integration/test_list_records.py | 5 +- .../integration/test_listing_datasets.py | 2 - .../tests/integration/test_manage_users.py | 5 +- .../integration/test_manage_workspaces.py | 2 - .../tests/integration/test_metadata.py | 7 +- .../integration/test_publish_datasets.py | 16 ++--- .../tests/integration/test_query_records.py | 7 +- .../integration/test_ranking_questions.py | 5 +- .../tests/integration/test_update_records.py | 5 +- argilla-sdk/tests/integration/test_vectors.py | 5 +- .../tests/unit/api/http/test_http_client.py | 5 +- argilla-sdk/tests/unit/conftest.py | 2 - ...est_record_export_import_compatibillity.py | 5 +- ...t_settings_export_import_compatibillity.py | 7 +- .../tests/unit/helpers/test_resource_repr.py | 2 - argilla-sdk/tests/unit/test_interface.py | 2 - .../tests/unit/test_record_ingestion.py | 5 +- .../tests/unit/test_record_responses.py | 7 +- .../tests/unit/test_record_suggestions.py | 3 +- .../unit/test_resources/test_datasets.py | 7 +- .../tests/unit/test_resources/test_fields.py | 7 +- .../unit/test_resources/test_questions.py | 9 ++- .../tests/unit/test_resources/test_records.py | 4 +- .../tests/unit/test_resources/test_users.py | 7 +- .../unit/test_resources/test_workspaces.py | 7 +- .../test_multi_label_question.py | 2 - .../tests/unit/test_settings/test_settings.py | 5 +- .../test_settings/test_settings_fields.py | 4 +- .../test_settings/test_settings_questions.py | 2 - .../unit/test_settings/test_span_question.py | 2 - .../unit/test_settings/test_terms_metadata.py | 2 - 138 files changed, 278 insertions(+), 487 deletions(-) diff --git a/argilla-sdk/.pre-commit-config.yaml b/argilla-sdk/.pre-commit-config.yaml index 1279c1de62..5bc2b29a18 100644 --- a/argilla-sdk/.pre-commit-config.yaml +++ b/argilla-sdk/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: args: - --fix - id: ruff-format - + - repo: https://github.com/kynan/nbstripout rev: 0.7.1 hooks: diff --git a/argilla-sdk/README.md b/argilla-sdk/README.md index 95d8036a5c..92c8a80709 100644 --- a/argilla-sdk/README.md +++ b/argilla-sdk/README.md @@ -1,4 +1,4 @@ -## `argilla-sdk` +## `argilla-sdk` The argilla-sdk is an experimental project to rebuild Argilla's python client in a simpler and friendlier way. The goal is to have a minimal set of core features that are easy to use and understand, but also contribute to feedback task that build quality data. @@ -50,6 +50,6 @@ To generate the docs you will need to install the development dependencies, and mkdocs serve ``` -You will find the built documentation in `http://localhost:8000/argilla-python/`. +You will find the built documentation in `http://localhost:8000/argilla-python/`. The docs will be deployed for pull request branches automatically. diff --git a/argilla-sdk/docs/getting_started/quickstart.md b/argilla-sdk/docs/getting_started/quickstart.md index b55d03b1ec..7cdf892a5c 100644 --- a/argilla-sdk/docs/getting_started/quickstart.md +++ b/argilla-sdk/docs/getting_started/quickstart.md @@ -20,7 +20,7 @@ To work with Argilla datasets, you need to use the Argilla SDK. You can install ```console pip install git+https://github.com/argilla-io/argilla-python.git -``` +``` ### Run the Argilla server @@ -115,7 +115,7 @@ Now you can add the data to your dataset. Use `mapping` to indicate which keys i ```python # Add records to the dataset dataset.records.add(records=data, mapping={"text": "review"}) -``` +``` 🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. diff --git a/argilla-sdk/docs/how_to_guides/dataset.md b/argilla-sdk/docs/how_to_guides/dataset.md index 53a4240179..c7cc308ee0 100644 --- a/argilla-sdk/docs/how_to_guides/dataset.md +++ b/argilla-sdk/docs/how_to_guides/dataset.md @@ -206,7 +206,7 @@ To collect feedback for your dataset, you need to formulate questions that annot === "Ranking" A `RankingQuestion` asks annotators to order a list of options. It is useful to gather information on the preference or relevance of a set of options. Ties are allowed and all options will need to be ranked. It has the following configuration: - + - `name`: The name of the question. - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value. - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. @@ -308,7 +308,7 @@ To collect feedback for your dataset, you need to formulate questions that annot Metadata properties allow you to configure the use of metadata information for the filtering and sorting features available in the UI and Python SDK. There exist three types of metadata you can add: `TermsMetadataProperty`, `IntegerMetadataProperty` and `FloatMetadataProperty`. === "Terms" - A `TermsMetadataProperty` allows to add a list of strings as metadata options. It has the following configuration: + A `TermsMetadataProperty` allows to add a list of strings as metadata options. It has the following configuration: - `name`: The name of the metadata property. - `title` (optional): The name of the metadata property, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. diff --git a/argilla-sdk/docs/how_to_guides/record.md b/argilla-sdk/docs/how_to_guides/record.md index 79894e198c..42cf7a211a 100644 --- a/argilla-sdk/docs/how_to_guides/record.md +++ b/argilla-sdk/docs/how_to_guides/record.md @@ -49,7 +49,7 @@ You can add records to a dataset in two different ways: either by using a dictio You can add the data directly as a dictionary, where the keys correspond to the names of fields, questions, metadata or vectors in the dataset and the values are the data to be added. However, you can also use a `mapping` to indicate which keys in the source data correspond to the dataset fields. - ```python + ```python import argilla_sdk as rg client = rg.Argilla(api_url="", api_key="") @@ -110,13 +110,13 @@ You can add records to a dataset in two different ways: either by using a dictio dataset.records.add(records=records) - ``` + ``` === "As a `Record` object" You can also add records to a dataset by initializing a `Record` object directly. - ```python + ```python import argilla_sdk as rg client = rg.Argilla(api_url="", api_key="") @@ -172,7 +172,7 @@ You can add records to a dataset in two different ways: either by using a dictio ] dataset.records.add(records) - ``` + ``` ### Metadata @@ -413,8 +413,8 @@ To list records in a dataset, you can use the `records` method on the `Dataset` ```python for record in dataset.records( - with_suggestions=True, - with_responses=True, + with_suggestions=True, + with_responses=True, with_vectors=True ): @@ -459,7 +459,7 @@ dataset.records.update(records=updated_data) # With metadata.update record.metadata.update({"my_metadata": "new_value", "my_new_metadata": "new_value"}) - + updated_records.append(record) dataset.records.update(records=updated_records) diff --git a/argilla-sdk/docs/how_to_guides/workspace.md b/argilla-sdk/docs/how_to_guides/workspace.md index e4ca6a4aaf..feeffeb9a7 100644 --- a/argilla-sdk/docs/how_to_guides/workspace.md +++ b/argilla-sdk/docs/how_to_guides/workspace.md @@ -18,9 +18,9 @@ A **workspace** is a *space* inside your Argilla instance where authorized users Argilla provides a default workspace to help you get started in Python and the UI. The name of this workspace varies depending on the server configuration. -| Environment | Name | +| Environment | Name | |-------------------------------|----------| -| Quickstart Docker and HF Space | admin | +| Quickstart Docker and HF Space | admin | | Server image | argilla | !!! info "Main Class" diff --git a/argilla-sdk/docs/reference/argilla_sdk/client.md b/argilla-sdk/docs/reference/argilla_sdk/client.md index ccd5beef39..188b8f8385 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/client.md +++ b/argilla-sdk/docs/reference/argilla_sdk/client.md @@ -39,12 +39,12 @@ for dataset in my_workspace.datasets: ``` ---- +--- ## Class Reference ### `rg.Argilla` ::: argilla_sdk.client.Argilla - options: + options: heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md index 476a772a0a..2c4edb9e99 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md @@ -37,7 +37,7 @@ dataset.records.add( "answer": "Paris" # 'answer' matches the `rg.TextQuestion` name }, { - "question": "What is the capital of Germany?", + "question": "What is the capital of Germany?", "answer": "Berlin" }, ]) @@ -128,5 +128,5 @@ dataset.records.to_list() ### `rg.Dataset.records` ::: argilla_sdk.records.DatasetRecords - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md index bd35a1610c..224f10a6b3 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md @@ -41,5 +41,5 @@ dataset = client.datasets("my_dataset") ### `rg.Dataset` ::: argilla_sdk.datasets.Dataset - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/records.md b/argilla-sdk/docs/reference/argilla_sdk/records/records.md index 83f733bee5..706c4e76db 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/records.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/records.md @@ -6,13 +6,13 @@ The `Record` object is used to represent a single record in Argilla. It contains ### Creating a Record -To add records, you can pass dictionaries to the `Dataset.records.add` method. Argilla will instantiate the `Record` class based on the input data and `mapping` property. The input data keys must match the names in `rg.Settings` object, or be mapped via the dictionary passed to the `mapping` parameter. +To add records, you can pass dictionaries to the `Dataset.records.add` method. Argilla will instantiate the `Record` class based on the input data and `mapping` property. The input data keys must match the names in `rg.Settings` object, or be mapped via the dictionary passed to the `mapping` parameter. ```python dataset.records.add( records=[ { - "question": "What is the capital of France?", + "question": "What is the capital of France?", "answer": "Paris" }, ]) @@ -36,9 +36,9 @@ The `Record` object has suggestions, responses, metadata, and vectors attributes ```python for record in dataset.records( - with_suggestions=True, - with_responses=True, - with_metadata=True, + with_suggestions=True, + with_responses=True, + with_metadata=True, with_vectors=True ): print(record.suggestions) @@ -64,5 +64,5 @@ For changes to take effect, the user must call the `update` method on the `Datas ### `rg.Record` ::: argilla_sdk.records.Record - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/responses.md b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md index c370abbc83..9d7b46862e 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/responses.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md @@ -62,5 +62,5 @@ for record in dataset.records: ### `rg.Response` ::: argilla_sdk.responses.Response - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md index 5f2b7d2ba1..f4ee4fc281 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md @@ -71,5 +71,5 @@ for record in dataset.records(with_suggestions=True): ### `rg.Suggestion` ::: argilla_sdk.suggestions.Suggestion - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md index 5d6ee59388..53e8b5ef7b 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md @@ -70,5 +70,5 @@ dataset.records.add( ### `rg.Vector` ::: argilla_sdk.vectors.Vector - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/search.md b/argilla-sdk/docs/reference/argilla_sdk/search.md index 701d13fc73..704d0598f2 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/search.md +++ b/argilla-sdk/docs/reference/argilla_sdk/search.md @@ -44,11 +44,11 @@ for record in dataset.records(query=query): ### `rg.Query` ::: argilla_sdk.records._search.Query - options: + options: heading_level: 3 ### `rg.Filter` -::: argilla_sdk.records._search.Filter - options: +::: argilla_sdk.records._search.Filter + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md index 194f9a4074..8f3bd04144 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md @@ -36,5 +36,5 @@ data = rg.Dataset( ### `rg.TextField` ::: argilla_sdk.settings.TextField - options: + options: heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md index ad2686fc3f..82a2287fea 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md @@ -1,4 +1,4 @@ -# Metadata Properties +# Metadata Properties Metadata properties are used to define metadata fields in a dataset. Metadata fields are used to store additional information about the records in the dataset. For example, the category of a record, the price of a product, or any other information that is relevant to the record. @@ -66,17 +66,17 @@ dataset = rg.Dataset( ### `rg.FloatMetadataProperty` ::: argilla_sdk.settings.FloatMetadataProperty - options: + options: heading_level: 3 ### `rg.IntegerMetadataProperty` ::: argilla_sdk.settings.IntegerMetadataProperty - options: + options: heading_level: 3 ### `rg.TermsMetadataProperty` ::: argilla_sdk.settings.TermsMetadataProperty - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md index e874a2ed79..f27643a956 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md @@ -54,35 +54,35 @@ dataset = rg.Dataset( ### `rg.LabelQuestion` ::: argilla_sdk.settings.LabelQuestion - options: + options: heading_level: 3 ### `rg.MultiLabelQuestion` ::: argilla_sdk.settings.MultiLabelQuestion - options: + options: heading_level: 3 ### `rg.RankingQuestion` ::: argilla_sdk.settings.RankingQuestion - options: + options: heading_level: 3 ### `rg.TextQuestion` ::: argilla_sdk.settings.TextQuestion - options: + options: heading_level: 3 ### `rg.RatingQuestion` ::: argilla_sdk.settings.RatingQuestion - options: + options: heading_level: 3 ### `rg.SpanQuestion` ::: argilla_sdk.settings.SpanQuestion - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md index 29d557adb8..f945da4c72 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md @@ -36,5 +36,5 @@ dataset.create() ### `rg.Settings` ::: argilla_sdk.settings.Settings - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md index 890ec9653f..52292587fb 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md @@ -1,6 +1,6 @@ # Vectors -Vector fields in Argilla are used to define the vector form of a record that will be reviewed by a user. +Vector fields in Argilla are used to define the vector form of a record that will be reviewed by a user. ## Usage Examples @@ -30,5 +30,5 @@ settings = rg.Settings( ### `rg.VectorField` ::: argilla_sdk.settings.VectorField - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/users.md b/argilla-sdk/docs/reference/argilla_sdk/users.md index f4c76293d1..076cc2d466 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/users.md +++ b/argilla-sdk/docs/reference/argilla_sdk/users.md @@ -30,5 +30,5 @@ client.me ### `rg.User` ::: argilla_sdk.users.User - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/scripts/gen_ref_pages.py b/argilla-sdk/docs/scripts/gen_ref_pages.py index 41cfa60c28..9cae49eb63 100644 --- a/argilla-sdk/docs/scripts/gen_ref_pages.py +++ b/argilla-sdk/docs/scripts/gen_ref_pages.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/__init__.py b/argilla-sdk/src/argilla_sdk/__init__.py index f055b40b9f..e9f096b034 100644 --- a/argilla-sdk/src/argilla_sdk/__init__.py +++ b/argilla-sdk/src/argilla_sdk/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/__init__.py b/argilla-sdk/src/argilla_sdk/_api/__init__.py index 601fddf156..f4789efdc8 100644 --- a/argilla-sdk/src/argilla_sdk/_api/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_api/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_base.py b/argilla-sdk/src/argilla_sdk/_api/_base.py index c43eeff186..0a535aa9bd 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_base.py +++ b/argilla-sdk/src/argilla_sdk/_api/_base.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,11 +13,12 @@ # limitations under the License. from datetime import datetime -from typing import TYPE_CHECKING, Generic, TypeVar +from typing import Generic, TYPE_CHECKING, TypeVar from uuid import UUID from argilla_sdk._helpers._mixins import LoggingMixin + if TYPE_CHECKING: from httpx import Client diff --git a/argilla-sdk/src/argilla_sdk/_api/_client.py b/argilla-sdk/src/argilla_sdk/_api/_client.py index 9c575a3444..a4bbeb0ab4 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_client.py +++ b/argilla-sdk/src/argilla_sdk/_api/_client.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_datasets.py b/argilla-sdk/src/argilla_sdk/_api/_datasets.py index 4e07419939..9fff950d5a 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_datasets.py +++ b/argilla-sdk/src/argilla_sdk/_api/_datasets.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,11 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List, Optional +from typing import List, Optional, Dict from uuid import UUID import httpx - from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions._api import api_error_handler from argilla_sdk._models import DatasetModel diff --git a/argilla-sdk/src/argilla_sdk/_api/_fields.py b/argilla-sdk/src/argilla_sdk/_api/_fields.py index 942c2ebb8d..7d34600017 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_fields.py +++ b/argilla-sdk/src/argilla_sdk/_api/_fields.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,14 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List +from typing import List, Dict from uuid import UUID import httpx - from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler -from argilla_sdk._models import FieldBaseModel, FieldModel, TextFieldModel +from argilla_sdk._models import FieldBaseModel, TextFieldModel, FieldModel __all__ = ["FieldsAPI"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py b/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py index f148982dd0..801129e2be 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_api/_http/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/_client.py b/argilla-sdk/src/argilla_sdk/_api/_http/_client.py index e98d35bbce..6fcf092456 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_http/_client.py +++ b/argilla-sdk/src/argilla_sdk/_api/_http/_client.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,7 +17,7 @@ import httpx -from argilla_sdk._constants import _DEFAULT_API_KEY, _DEFAULT_API_URL +from argilla_sdk._constants import _DEFAULT_API_URL, _DEFAULT_API_KEY @dataclass diff --git a/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py b/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py index e55a1efe33..c955f9e827 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py +++ b/argilla-sdk/src/argilla_sdk/_api/_http/_helpers.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,6 +15,7 @@ import httpx from httpx import HTTPStatusError + __all__ = ["raise_for_status"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_metadata.py b/argilla-sdk/src/argilla_sdk/_api/_metadata.py index 451ad4fdae..07491296c1 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_api/_metadata.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,11 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List +from typing import List, Dict from uuid import UUID import httpx - from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import MetadataFieldModel diff --git a/argilla-sdk/src/argilla_sdk/_api/_questions.py b/argilla-sdk/src/argilla_sdk/_api/_questions.py index f6ae80cee7..5e29c3e9a7 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_questions.py +++ b/argilla-sdk/src/argilla_sdk/_api/_questions.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,22 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List +from typing import List, Dict from uuid import UUID import httpx - from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import ( + TextQuestionModel, LabelQuestionModel, MultiLabelQuestionModel, - QuestionBaseModel, - QuestionModel, RankingQuestionModel, RatingQuestionModel, SpanQuestionModel, - TextQuestionModel, + QuestionBaseModel, + QuestionModel, ) __all__ = ["QuestionsAPI"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_records.py b/argilla-sdk/src/argilla_sdk/_api/_records.py index 7c681015c2..ef3cd6eaba 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_records.py +++ b/argilla-sdk/src/argilla_sdk/_api/_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List, Optional, Tuple, Union +from typing import List, Dict, Tuple, Union, Optional from uuid import UUID import httpx @@ -22,7 +20,7 @@ from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler -from argilla_sdk._models import RecordModel, SearchQueryModel, UserResponseModel +from argilla_sdk._models import RecordModel, UserResponseModel, SearchQueryModel __all__ = ["RecordsAPI"] diff --git a/argilla-sdk/src/argilla_sdk/_api/_users.py b/argilla-sdk/src/argilla_sdk/_api/_users.py index e0539be02d..7105bf0b57 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_users.py +++ b/argilla-sdk/src/argilla_sdk/_api/_users.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_api/_vectors.py b/argilla-sdk/src/argilla_sdk/_api/_vectors.py index 4eba635f79..c375bbe41e 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_vectors.py +++ b/argilla-sdk/src/argilla_sdk/_api/_vectors.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,11 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List +from typing import List, Dict from uuid import UUID import httpx - from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import VectorFieldModel diff --git a/argilla-sdk/src/argilla_sdk/_api/_workspaces.py b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py index 5eba9a1564..89c8becf57 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_workspaces.py +++ b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_constants.py b/argilla-sdk/src/argilla_sdk/_constants.py index 9b55a64089..7e28f0fc57 100644 --- a/argilla-sdk/src/argilla_sdk/_constants.py +++ b/argilla-sdk/src/argilla_sdk/_constants.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py b/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py index c46e594e96..dafd682bba 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_api.py b/argilla-sdk/src/argilla_sdk/_exceptions/_api.py index 64584a73d2..c37787cf7f 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_api.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_api.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_base.py b/argilla-sdk/src/argilla_sdk/_exceptions/_base.py index 3eb65cf298..8d08488d4a 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_base.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_base.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py b/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py index a255298cf7..125dd7f6f9 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_metadata.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py b/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py index e2b0802485..31a8321281 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_serialization.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py b/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py index 04f567f871..c23424706a 100644 --- a/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py +++ b/argilla-sdk/src/argilla_sdk/_exceptions/_settings.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/__init__.py b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py index e4d0b3851d..474f7bf4ef 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py b/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py index a556ed9024..d05df25fd7 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_dataclasses.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +13,7 @@ # limitations under the License. -from dataclasses import dataclass, fields +from dataclasses import fields, dataclass from typing import Type, TypeVar __all__ = ["dataclass_instance_from_dict"] diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py b/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py index 9a1a558958..58422e8ea6 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_iterator.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_log.py b/argilla-sdk/src/argilla_sdk/_helpers/_log.py index d880c47232..a8fc36c48e 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_log.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_log.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py b/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py index 7c17e3e375..c5b4aefc5a 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py b/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py index 7b32c3b057..f1f3e89baf 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_resource_repr.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,6 +16,7 @@ from IPython.display import HTML + RESOURCE_REPR_CONFIG = { "Dataset": { "columns": ["name", "id", "workspace_id", "updated_at"], diff --git a/argilla-sdk/src/argilla_sdk/_models/__init__.py b/argilla-sdk/src/argilla_sdk/_models/__init__.py index 2098a77773..f8de4d78a6 100644 --- a/argilla-sdk/src/argilla_sdk/_models/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/__init__.py @@ -1,5 +1,3 @@ -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # Copyright 2024-present, Argilla, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/argilla-sdk/src/argilla_sdk/_models/_base.py b/argilla-sdk/src/argilla_sdk/_models/_base.py index 8bb6b1a8df..5cefb69557 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_base.py +++ b/argilla-sdk/src/argilla_sdk/_models/_base.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from datetime import datetime from typing import Optional +from datetime import datetime from uuid import UUID, uuid4 from pydantic import BaseModel, field_serializer diff --git a/argilla-sdk/src/argilla_sdk/_models/_dataset.py b/argilla-sdk/src/argilla_sdk/_models/_dataset.py index 409a00e026..931df96c49 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_dataset.py +++ b/argilla-sdk/src/argilla_sdk/_models/_dataset.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +from typing import Optional from datetime import datetime -from typing import Literal, Optional from uuid import UUID +from typing import Literal from pydantic import field_serializer diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py index ca5c925445..749d13b87d 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py b/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py index 71ce838a99..c8124894b6 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_metadata.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,10 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Annotated, List, Union +from typing import Annotated, Union, List from pydantic import BaseModel + MetadataValue = Annotated[Union[str, List[str], float, int, None], "The value of the metadata field dictionary"] diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_record.py b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py index fb9db60a95..252befe74c 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_record.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,11 +16,11 @@ from pydantic import Field, field_serializer, field_validator +from argilla_sdk._models._resource import ResourceModel from argilla_sdk._models._record._metadata import MetadataModel, MetadataValue from argilla_sdk._models._record._response import UserResponseModel from argilla_sdk._models._record._suggestion import SuggestionModel from argilla_sdk._models._record._vector import VectorModel -from argilla_sdk._models._resource import ResourceModel class RecordModel(ResourceModel): diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_response.py b/argilla-sdk/src/argilla_sdk/_models/_record/_response.py index 8c9c649ac0..7b685ca0d1 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_response.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_response.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,10 +14,10 @@ import warnings from enum import Enum -from typing import Any, Dict, Optional, Union +from typing import Dict, Optional, Union, Any from uuid import UUID -from pydantic import BaseModel, Field, field_serializer, field_validator +from pydantic import BaseModel, field_serializer, field_validator, Field class ResponseStatus(str, Enum): diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py b/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py index a34281ff10..8723849573 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_suggestion.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Any, List, Literal, Optional, Union +from typing import Any, Optional, Literal, Union, List from uuid import UUID, uuid4 from pydantic import BaseModel, field_serializer diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py b/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py index 1dcb38d1ed..2b46f0c9b5 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_vector.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,13 +11,13 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import re from typing import List -from pydantic import field_validator - from argilla_sdk._models import ResourceModel +import re +from pydantic import field_validator + __all__ = ["VectorModel"] diff --git a/argilla-sdk/src/argilla_sdk/_models/_resource.py b/argilla-sdk/src/argilla_sdk/_models/_resource.py index 92553f9a6f..f048b3de39 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_resource.py +++ b/argilla-sdk/src/argilla_sdk/_models/_resource.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_search.py b/argilla-sdk/src/argilla_sdk/_models/_search.py index a44e5e1126..f62dbff0b7 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_search.py +++ b/argilla-sdk/src/argilla_sdk/_models/_search.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Annotated, Any, List, Literal, Union +from typing import List, Any, Union, Literal, Annotated from pydantic import BaseModel, Field diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py index ca5c925445..749d13b87d 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py index d207456770..d698d4bf7c 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,7 +15,7 @@ from typing import Optional from uuid import UUID -from pydantic import BaseModel, Field, field_serializer, field_validator +from pydantic import BaseModel, field_serializer, field_validator, Field from pydantic_core.core_schema import ValidationInfo from argilla_sdk._helpers._log import log diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py index 13639af9b7..5fff8e19fb 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +13,7 @@ # limitations under the License. from enum import Enum -from typing import Annotated, List, Literal, Optional, Union +from typing import List, Literal, Optional, Union, Annotated from uuid import UUID from pydantic import BaseModel, Field, field_serializer, field_validator, model_validator diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py index f5a9458dfd..8d9dcc0aee 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py index acee680237..b235bf83e4 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_base.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,7 +16,7 @@ from typing import Optional from uuid import UUID -from pydantic import BaseModel, Field, field_serializer, field_validator +from pydantic import BaseModel, field_serializer, field_validator, Field from pydantic_core.core_schema import ValidationInfo diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py index 393307d89e..717460e1f9 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_label_selection.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,11 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import ClassVar, Dict, List, Optional +from typing import Dict, List, Optional, ClassVar -from pydantic import Field, field_validator, model_validator +from pydantic import field_validator, Field, model_validator -from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel try: from typing import Self diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py index 5e5c1692a2..0084b06cb8 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_multi_label_selection.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,7 +16,7 @@ from pydantic import Field -from argilla_sdk._models._settings._questions._label_selection import LabelQuestionModel, LabelQuestionSettings +from argilla_sdk._models._settings._questions._label_selection import LabelQuestionSettings, LabelQuestionModel class OptionsOrder(str, Enum): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py index f41694098d..70f43bedc5 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_ranking.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,9 +14,9 @@ from typing import Dict, List, Optional -from pydantic import Field, field_validator +from pydantic import field_validator, Field -from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel class RankingQuestionSettings(QuestionSettings): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py index dac4cd7cf0..39ade0c29a 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_rating.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,9 +14,9 @@ from typing import List -from pydantic import Field, field_validator +from pydantic import field_validator, Field -from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel class RatingQuestionSettings(QuestionSettings): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py index 44bdba2207..bd66428843 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_span.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,11 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import ClassVar, Dict, List, Optional +from typing import Dict, List, Optional, ClassVar -from pydantic import Field, field_validator, model_validator +from pydantic import field_validator, Field, model_validator -from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel try: from typing import Self diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py index 801fe8e75c..2d3ecaf89c 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_questions/_text.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from argilla_sdk._models._settings._questions._base import QuestionBaseModel, QuestionSettings +from argilla_sdk._models._settings._questions._base import QuestionSettings, QuestionBaseModel class TextQuestionSettings(QuestionSettings): diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py index c6a59838df..c518809d2c 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,7 +15,7 @@ from typing import Optional from uuid import UUID -from pydantic import BaseModel, field_serializer, field_validator +from pydantic import BaseModel, field_validator, field_serializer from pydantic_core.core_schema import ValidationInfo from argilla_sdk._helpers._log import log diff --git a/argilla-sdk/src/argilla_sdk/_models/_user.py b/argilla-sdk/src/argilla_sdk/_models/_user.py index 47f61f06d3..3e4bc9dd96 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_user.py +++ b/argilla-sdk/src/argilla_sdk/_models/_user.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/_models/_workspace.py b/argilla-sdk/src/argilla_sdk/_models/_workspace.py index 0003597907..b06bd141de 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_workspace.py +++ b/argilla-sdk/src/argilla_sdk/_models/_workspace.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,12 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -import re +from argilla_sdk._models import ResourceModel +import re from pydantic import field_validator -from argilla_sdk._models import ResourceModel - __all__ = ["WorkspaceModel"] diff --git a/argilla-sdk/src/argilla_sdk/_resource.py b/argilla-sdk/src/argilla_sdk/_resource.py index 558be8558e..4603cf7bd6 100644 --- a/argilla-sdk/src/argilla_sdk/_resource.py +++ b/argilla-sdk/src/argilla_sdk/_resource.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,16 +13,16 @@ # limitations under the License. from datetime import datetime -from typing import TYPE_CHECKING, Any, Optional +from typing import Any, TYPE_CHECKING, Optional from uuid import UUID from argilla_sdk._exceptions import ArgillaSerializeError from argilla_sdk._helpers._mixins import LoggingMixin, UUIDMixin if TYPE_CHECKING: - from argilla_sdk._api._base import ResourceAPI - from argilla_sdk._models import ResourceModel from argilla_sdk.client import Argilla + from argilla_sdk._models import ResourceModel + from argilla_sdk._api._base import ResourceAPI class Resource(LoggingMixin, UUIDMixin): diff --git a/argilla-sdk/src/argilla_sdk/client.py b/argilla-sdk/src/argilla_sdk/client.py index 8ef161cc08..14b0e4c4f3 100644 --- a/argilla-sdk/src/argilla_sdk/client.py +++ b/argilla-sdk/src/argilla_sdk/client.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,18 +15,20 @@ import warnings from abc import abstractmethod from collections.abc import Sequence -from typing import TYPE_CHECKING, List, Optional, Union, overload +from typing import TYPE_CHECKING, overload, List, Optional, Union from argilla_sdk import _api from argilla_sdk._api._client import DEFAULT_HTTP_CONFIG from argilla_sdk._helpers import GenericIterator from argilla_sdk._helpers._resource_repr import ResourceHTMLReprMixin -from argilla_sdk._models import DatasetModel, UserModel, WorkspaceModel +from argilla_sdk._models import UserModel, WorkspaceModel, DatasetModel if TYPE_CHECKING: - from IPython.display import HTML + from argilla_sdk import Workspace + from argilla_sdk import Dataset + from argilla_sdk import User - from argilla_sdk import Dataset, User, Workspace + from IPython.display import HTML __all__ = ["Argilla"] diff --git a/argilla-sdk/src/argilla_sdk/datasets/__init__.py b/argilla-sdk/src/argilla_sdk/datasets/__init__.py index 79cf7d453b..a1bf2af414 100644 --- a/argilla-sdk/src/argilla_sdk/datasets/__init__.py +++ b/argilla-sdk/src/argilla_sdk/datasets/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/datasets/_export.py b/argilla-sdk/src/argilla_sdk/datasets/_export.py index 4b5cafba32..b597c1fcad 100644 --- a/argilla-sdk/src/argilla_sdk/datasets/_export.py +++ b/argilla-sdk/src/argilla_sdk/datasets/_export.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,13 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. +from abc import ABC import json import logging import os -import warnings -from abc import ABC from pathlib import Path -from typing import TYPE_CHECKING, Optional, Tuple, Type, Union +import warnings +from typing import Optional, Union, TYPE_CHECKING, Tuple, Type from uuid import uuid4 from argilla_sdk._models import DatasetModel @@ -28,6 +26,7 @@ from argilla_sdk.settings import Settings from argilla_sdk.workspaces._resource import Workspace + if TYPE_CHECKING: from argilla_sdk import Dataset diff --git a/argilla-sdk/src/argilla_sdk/datasets/_resource.py b/argilla-sdk/src/argilla_sdk/datasets/_resource.py index 488fd98cc8..781bdf6506 100644 --- a/argilla-sdk/src/argilla_sdk/datasets/_resource.py +++ b/argilla-sdk/src/argilla_sdk/datasets/_resource.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/records/__init__.py b/argilla-sdk/src/argilla_sdk/records/__init__.py index 9278c95fb9..bb25d4798a 100644 --- a/argilla-sdk/src/argilla_sdk/records/__init__.py +++ b/argilla-sdk/src/argilla_sdk/records/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,6 +14,6 @@ from argilla_sdk.records._dataset_records import DatasetRecords from argilla_sdk.records._resource import Record -from argilla_sdk.records._search import Condition, Filter, Query +from argilla_sdk.records._search import Query, Filter, Condition __all__ = ["Record", "DatasetRecords", "Query", "Filter", "Condition"] diff --git a/argilla-sdk/src/argilla_sdk/records/_dataset_records.py b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py index 443c2bcb14..8f567b044c 100644 --- a/argilla-sdk/src/argilla_sdk/records/_dataset_records.py +++ b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,13 +19,15 @@ from argilla_sdk._api import RecordsAPI from argilla_sdk._helpers._mixins import LoggingMixin -from argilla_sdk._models import RecordModel +from argilla_sdk._models import RecordModel, MetadataValue from argilla_sdk.client import Argilla -from argilla_sdk.records._io import GenericIO, HFDataset, HFDatasetsIO, JsonIO +from argilla_sdk.records._io import HFDatasetsIO, GenericIO, JsonIO, HFDataset from argilla_sdk.records._resource import Record from argilla_sdk.records._search import Query from argilla_sdk.responses import Response -from argilla_sdk.settings import MetadataType, QuestionType, TextField, VectorField +from argilla_sdk.settings import TextField, VectorField +from argilla_sdk.settings._metadata import MetadataPropertyBase +from argilla_sdk.settings._question import QuestionPropertyBase from argilla_sdk.suggestions import Suggestion from argilla_sdk.vectors import Vector @@ -451,7 +451,7 @@ def _infer_record_from_mapping( sub_attribute = attribute_mapping[2] elif schema_item is mapping is None and attribute != "id": warnings.warn( - message=f"""Record attribute {attribute} is not in the schema so skipping. + message=f"""Record attribute {attribute} is not in the schema so skipping. Define a mapping to map source data fields to Argilla Fields, Questions, and ids """ ) @@ -479,15 +479,15 @@ def _infer_record_from_mapping( # Assign the value to question, field, or response based on schema item if isinstance(schema_item, TextField): fields[attribute] = value - elif isinstance(schema_item, QuestionType) and attribute_type == "response": + elif isinstance(schema_item, QuestionPropertyBase) and attribute_type == "response": responses.append(Response(question_name=attribute, value=value, user_id=user_id)) - elif isinstance(schema_item, QuestionType) and attribute_type is None: + elif isinstance(schema_item, QuestionPropertyBase) and attribute_type is None: suggestion_values[attribute].update( {"value": value, "question_name": attribute, "question_id": schema_item.id} ) elif isinstance(schema_item, VectorField): vectors.append(Vector(name=attribute, values=value)) - elif isinstance(schema_item, MetadataType): + elif isinstance(schema_item, MetadataPropertyBase): metadata[attribute] = value else: warnings.warn(message=f"Record attribute {attribute} is not in the schema or mapping so skipping.") diff --git a/argilla-sdk/src/argilla_sdk/records/_io/__init__.py b/argilla-sdk/src/argilla_sdk/records/_io/__init__.py index a4755ffbdf..d91bc90c35 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/__init__.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from argilla_sdk.records._io._datasets import ( - HFDataset, # noqa: F401 - HFDatasetsIO, # noqa: F401 -) +from argilla_sdk.records._io._datasets import HFDatasetsIO # noqa: F401 from argilla_sdk.records._io._generic import GenericIO # noqa: F401 from argilla_sdk.records._io._json import JsonIO # noqa: F401 +from argilla_sdk.records._io._datasets import HFDataset # noqa: F401 diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py b/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py index 291872d193..030610f38f 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/_datasets.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List, Optional, Type, Union +from typing import Dict, List, Union, Optional, Type from argilla_sdk.records._io._generic import GenericIO diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_generic.py b/argilla-sdk/src/argilla_sdk/records/_io/_generic.py index 98df6fa92b..eb135de8e7 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/_generic.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/_generic.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +13,7 @@ # limitations under the License. from collections import defaultdict -from typing import TYPE_CHECKING, Any, Dict, List, Union +from typing import Any, Dict, List, TYPE_CHECKING, Union if TYPE_CHECKING: from argilla_sdk import Record diff --git a/argilla-sdk/src/argilla_sdk/records/_io/_json.py b/argilla-sdk/src/argilla_sdk/records/_io/_json.py index ddc472c055..6d67627242 100644 --- a/argilla-sdk/src/argilla_sdk/records/_io/_json.py +++ b/argilla-sdk/src/argilla_sdk/records/_io/_json.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,8 +15,8 @@ from pathlib import Path from typing import List, Union -from argilla_sdk.records._io import GenericIO from argilla_sdk.records._resource import Record +from argilla_sdk.records._io import GenericIO class JsonIO: diff --git a/argilla-sdk/src/argilla_sdk/records/_resource.py b/argilla-sdk/src/argilla_sdk/records/_resource.py index 2b10fc1aa0..4074485cad 100644 --- a/argilla-sdk/src/argilla_sdk/records/_resource.py +++ b/argilla-sdk/src/argilla_sdk/records/_resource.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,16 +13,16 @@ # limitations under the License. from collections import defaultdict -from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, Iterable from uuid import UUID, uuid4 from argilla_sdk._models import ( MetadataModel, - MetadataValue, RecordModel, - SuggestionModel, UserResponseModel, + SuggestionModel, VectorModel, + MetadataValue, ) from argilla_sdk._resource import Resource from argilla_sdk.responses import Response, UserResponse diff --git a/argilla-sdk/src/argilla_sdk/records/_search.py b/argilla-sdk/src/argilla_sdk/records/_search.py index dfe6951483..bbcb341b47 100644 --- a/argilla-sdk/src/argilla_sdk/records/_search.py +++ b/argilla-sdk/src/argilla_sdk/records/_search.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,20 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Any, List, Optional, Tuple, Union +from typing import Optional, List, Any, Union, Tuple from argilla_sdk._models import SearchQueryModel from argilla_sdk._models._search import ( - AndFilterModel, - FilterModel, - MetadataFilterScopeModel, - QueryModel, - RangeFilterModel, + TextQueryModel, ResponseFilterScopeModel, - ScopeModel, SuggestionFilterScopeModel, + MetadataFilterScopeModel, + ScopeModel, + RangeFilterModel, TermsFilterModel, - TextQueryModel, + FilterModel, + AndFilterModel, + QueryModel, ) @@ -80,13 +78,13 @@ class Filter: def __init__(self, conditions: Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None] = None): """ Create a filter object for use in Argilla search requests. - + Parameters: conditions (Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None], optional): \ The conditions that will be used to filter the search results. \ The conditions should be a list of tuples where each tuple contains \ the field, operator, and value. For example `("label", "in", ["positive","happy"])`.\ - + """ if isinstance(conditions, tuple): diff --git a/argilla-sdk/src/argilla_sdk/responses.py b/argilla-sdk/src/argilla_sdk/responses.py index dd9cac99b7..1f02fbbc26 100644 --- a/argilla-sdk/src/argilla_sdk/responses.py +++ b/argilla-sdk/src/argilla_sdk/responses.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,10 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional +from typing import Any, TYPE_CHECKING, List, Dict, Optional, Iterable from uuid import UUID -from argilla_sdk._models import ResponseStatus, UserResponseModel +from argilla_sdk._models import UserResponseModel, ResponseStatus from argilla_sdk._resource import Resource from argilla_sdk.settings import RankingQuestion @@ -59,12 +57,12 @@ def __init__( def serialize(self) -> dict[str, Any]: """Serializes the Response to a dictionary. This is principally used for sending the response to the API, \ but can be used for data wrangling or manual export. - + Returns: dict[str, Any]: The serialized response as a dictionary with keys `question_name`, `value`, and `user_id`. - + Examples: - + ```python response = rg.Response("label", "negative", user_id=user.id) response.serialize() diff --git a/argilla-sdk/src/argilla_sdk/settings/__init__.py b/argilla-sdk/src/argilla_sdk/settings/__init__.py index e6bb6a976f..122130d4ed 100644 --- a/argilla-sdk/src/argilla_sdk/settings/__init__.py +++ b/argilla-sdk/src/argilla_sdk/settings/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/settings/_common.py b/argilla-sdk/src/argilla_sdk/settings/_common.py index 0d39594e22..59fd1147df 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_common.py +++ b/argilla-sdk/src/argilla_sdk/settings/_common.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Any, Dict, List, Optional, Union +from typing import Any, Optional, Union from argilla_sdk._models import FieldBaseModel, QuestionBaseModel from argilla_sdk._resource import Resource @@ -57,35 +55,3 @@ def serialize(self) -> dict[str, Any]: serialized_model = super().serialize() serialized_model["type"] = self.type return serialized_model - - ############################## - # Private methods - ############################## - - @staticmethod - def _render_values_as_options(values: Union[List[str], List[int], Dict[str, str]]) -> List[Dict[str, str]]: - """Render values as options for the question so that the model conforms to the API schema""" - if isinstance(values, dict): - return [{"text": value, "value": key} for key, value in values.items()] - elif isinstance(values, list) and all(isinstance(value, str) for value in values): - return [{"text": label, "value": label} for label in values] - elif isinstance(values, list) and all(isinstance(value, int) for value in values): - return [{"value": value} for value in values] - else: - raise ValueError("Invalid labels format. Please provide a list of strings or a list of dictionaries.") - - @staticmethod - def _render_options_as_values(options: List[dict]) -> Dict[str, str]: - """Render options as values for the question so that the model conforms to the API schema""" - values = {} - for option in options: - if "text" in option: - values[option["value"]] = option["text"] - else: - values[option["value"]] = option["value"] - return values - - @staticmethod - def _render_options_as_labels(options: List[Dict[str, str]]) -> List[str]: - """Render values as labels for the question so that they can be returned as a list of strings""" - return list(SettingsPropertyBase._render_options_as_values(options=options).keys()) diff --git a/argilla-sdk/src/argilla_sdk/settings/_field.py b/argilla-sdk/src/argilla_sdk/settings/_field.py index 4572365f9b..14483eb84e 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_field.py +++ b/argilla-sdk/src/argilla_sdk/settings/_field.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/settings/_metadata.py b/argilla-sdk/src/argilla_sdk/settings/_metadata.py index 7de5a1bdb7..d69eebee30 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/settings/_metadata.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,18 +12,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Optional, Union +from typing import Optional, Union, List from argilla_sdk._exceptions import MetadataError from argilla_sdk._models import ( + MetadataPropertyType, + TermsMetadataPropertySettings, FloatMetadataPropertySettings, IntegerMetadataPropertySettings, MetadataFieldModel, - MetadataPropertyType, - TermsMetadataPropertySettings, ) from argilla_sdk.settings._common import SettingsPropertyBase + __all__ = [ "TermsMetadataProperty", "FloatMetadataProperty", diff --git a/argilla-sdk/src/argilla_sdk/settings/_question.py b/argilla-sdk/src/argilla_sdk/settings/_question.py index 601b3e15b9..b4679bcb35 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_question.py +++ b/argilla-sdk/src/argilla_sdk/settings/_question.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,22 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List, Optional, Union +from typing import List, Optional, Union, Dict from argilla_sdk._models._settings._questions import ( LabelQuestionModel, LabelQuestionSettings, MultiLabelQuestionModel, - MultiLabelQuestionSettings, - QuestionModel, RankingQuestionModel, - RankingQuestionSettings, - RatingQuestionModel, - RatingQuestionSettings, - SpanQuestionModel, - SpanQuestionSettings, TextQuestionModel, TextQuestionSettings, + RatingQuestionModel, + QuestionModel, + SpanQuestionSettings, + SpanQuestionModel, + RatingQuestionSettings, + MultiLabelQuestionSettings, + RankingQuestionSettings, ) from argilla_sdk.settings._common import SettingsPropertyBase @@ -44,7 +42,37 @@ ] -class LabelQuestion(SettingsPropertyBase): +class QuestionPropertyBase(SettingsPropertyBase): + @staticmethod + def _render_values_as_options(values: Union[List[str], List[int], Dict[str, str]]) -> List[Dict[str, str]]: + """Render values as options for the question so that the model conforms to the API schema""" + if isinstance(values, dict): + return [{"text": value, "value": key} for key, value in values.items()] + elif isinstance(values, list) and all(isinstance(value, str) for value in values): + return [{"text": label, "value": label} for label in values] + elif isinstance(values, list) and all(isinstance(value, int) for value in values): + return [{"value": value} for value in values] + else: + raise ValueError("Invalid labels format. Please provide a list of strings or a list of dictionaries.") + + @staticmethod + def _render_options_as_values(options: List[dict]) -> Dict[str, str]: + """Render options as values for the question so that the model conforms to the API schema""" + values = {} + for option in options: + if "text" in option: + values[option["value"]] = option["text"] + else: + values[option["value"]] = option["value"] + return values + + @classmethod + def _render_options_as_labels(cls, options: List[Dict[str, str]]) -> List[str]: + """Render values as labels for the question so that they can be returned as a list of strings""" + return list(cls._render_options_as_values(options=options).keys()) + + +class LabelQuestion(QuestionPropertyBase): _model: LabelQuestionModel def __init__( @@ -59,7 +87,7 @@ def __init__( """ Define a new label question for `Settings` of a `Dataset`. A label \ question is a question where the user can select one label from \ a list of available labels. - + Parameters: name: str: The name of the question to be used as a reference. labels: List[str]: The list of available labels for the question. @@ -130,7 +158,7 @@ def __init__( """Create a new multilabel question for `Settings` of a `Dataset`. A \ multilabel question is a question where the user can select multiple \ labels from a list of available labels. - + Parameters: name: str: The name of the question to be used as a reference. labels: List[str]: The list of available labels for the question. @@ -138,7 +166,7 @@ def __init__( description: Optional[str]: The description of the question to be shown in the UI. required: bool: If the question is required for a record to be valid. visible_labels: Optional[int]: The number of visible labels for the question. - labels_order: str: The order of the labels in the UI. Can be either "natural" or "suggestion". Default is "natural". + labels_order: str: The order of the labels in the UI. Can be either "natural" or "suggestion". Default is "natural". """ self._model = MultiLabelQuestionModel( name=name, @@ -169,7 +197,7 @@ def from_dict(cls, data: dict) -> "MultiLabelQuestion": return cls.from_model(model=model) -class TextQuestion(SettingsPropertyBase): +class TextQuestion(QuestionPropertyBase): _model: TextQuestionModel def __init__( @@ -182,7 +210,7 @@ def __init__( ) -> None: """Create a new text question for `Settings` of a `Dataset`. A text question \ is a question where the user can input text. - + Parameters: name: str: The name of the question to be used as a reference. title: Optional[str]: The title of the question to be shown in the UI. @@ -219,7 +247,7 @@ def use_markdown(self, use_markdown: bool) -> None: self._model.settings.use_markdown = use_markdown -class RatingQuestion(SettingsPropertyBase): +class RatingQuestion(QuestionPropertyBase): _model: RatingQuestionModel def __init__( @@ -232,7 +260,7 @@ def __init__( ) -> None: """Create a new rating question for `Settings` of a `Dataset`. A rating question \ is a question where the user can select a value from a sequential list of options. - + Parameters: name: str: The name of the question to be used as a reference. values: List[int]: The list of available values for the question. @@ -270,7 +298,7 @@ def values(self, values: List[int]) -> None: self._model.values = self._render_values_as_options(values) -class RankingQuestion(SettingsPropertyBase): +class RankingQuestion(QuestionPropertyBase): _model: RankingQuestionModel def __init__( @@ -283,7 +311,7 @@ def __init__( ) -> None: """Create a new ranking question for `Settings` of a `Dataset`. A ranking question \ is a question where the user can rank a list of options. - + Parameters: name: str: The name of the question to be used as a reference. values: List[str]: The list of available values for the question. @@ -320,7 +348,7 @@ def values(self, values: List[int]) -> None: self._model.settings.options = self._render_values_as_options(values) -class SpanQuestion(SettingsPropertyBase): +class SpanQuestion(QuestionPropertyBase): _model: SpanQuestionModel def __init__( @@ -337,7 +365,7 @@ def __init__( """ Create a new span question for `Settings` of a `Dataset`. A span question \ is a question where the user can select a section of text within a text field \ and assign it a label. - + Parameters: name: str: The name of the question to be used as a reference. field: str: The name of the text field to apply the span question to. diff --git a/argilla-sdk/src/argilla_sdk/settings/_resource.py b/argilla-sdk/src/argilla_sdk/settings/_resource.py index d11c52772a..2a1ff7724d 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_resource.py +++ b/argilla-sdk/src/argilla_sdk/settings/_resource.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,15 +16,15 @@ import os from functools import cached_property from pathlib import Path -from typing import TYPE_CHECKING, Dict, List, Optional, Union +from typing import List, Optional, TYPE_CHECKING, Dict, Union from uuid import UUID -from argilla_sdk._exceptions import ArgillaAPIError, ArgillaSerializeError, SettingsError -from argilla_sdk._models import DatasetModel, TextFieldModel, TextQuestionModel +from argilla_sdk._exceptions import SettingsError, ArgillaAPIError, ArgillaSerializeError +from argilla_sdk._models import TextFieldModel, TextQuestionModel, DatasetModel from argilla_sdk._resource import Resource -from argilla_sdk.settings._field import FieldType, VectorField, field_from_dict, field_from_model +from argilla_sdk.settings._field import FieldType, VectorField, field_from_model, field_from_dict from argilla_sdk.settings._metadata import MetadataType -from argilla_sdk.settings._question import QuestionType, question_from_dict, question_from_model +from argilla_sdk.settings._question import QuestionType, question_from_model, question_from_dict, QuestionPropertyBase if TYPE_CHECKING: from argilla_sdk.datasets import Dataset @@ -192,7 +190,7 @@ def question_by_name(self, question_name: str) -> QuestionType: def question_by_id(self, question_id: UUID) -> QuestionType: property = self.schema_by_id.get(question_id) - if isinstance(property, QuestionType): + if isinstance(property, QuestionPropertyBase): return property raise ValueError(f"Question with id {question_id} not found") diff --git a/argilla-sdk/src/argilla_sdk/suggestions.py b/argilla-sdk/src/argilla_sdk/suggestions.py index b4bbf39fea..7d37a7527e 100644 --- a/argilla-sdk/src/argilla_sdk/suggestions.py +++ b/argilla-sdk/src/argilla_sdk/suggestions.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Union +from typing import Any, Optional, Literal, Union, List, TYPE_CHECKING, Dict from uuid import UUID from argilla_sdk._models import SuggestionModel @@ -21,7 +19,7 @@ from argilla_sdk.settings import RankingQuestion if TYPE_CHECKING: - from argilla_sdk import Dataset, QuestionType, Record + from argilla_sdk import QuestionType, Record, Dataset __all__ = ["Suggestion"] diff --git a/argilla-sdk/src/argilla_sdk/users/__init__.py b/argilla-sdk/src/argilla_sdk/users/__init__.py index a46c3fb235..c40fb8bce2 100644 --- a/argilla-sdk/src/argilla_sdk/users/__init__.py +++ b/argilla-sdk/src/argilla_sdk/users/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/users/_resource.py b/argilla-sdk/src/argilla_sdk/users/_resource.py index cffe599ac1..8177cc1144 100644 --- a/argilla-sdk/src/argilla_sdk/users/_resource.py +++ b/argilla-sdk/src/argilla_sdk/users/_resource.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,7 +17,7 @@ from argilla_sdk import Workspace from argilla_sdk._api import UsersAPI -from argilla_sdk._models import Role, UserModel +from argilla_sdk._models import UserModel, Role from argilla_sdk._resource import Resource from argilla_sdk.client import Argilla @@ -27,7 +25,7 @@ class User(Resource): """Class for interacting with Argilla users in the Argilla server. User profiles \ are used to manage access to the Argilla server and track responses to records. - + Attributes: username (str): The username of the user. first_name (str): The first name of the user. diff --git a/argilla-sdk/src/argilla_sdk/vectors.py b/argilla-sdk/src/argilla_sdk/vectors.py index d286dfd1e0..17f83b7ebd 100644 --- a/argilla-sdk/src/argilla_sdk/vectors.py +++ b/argilla-sdk/src/argilla_sdk/vectors.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/workspaces/__init__.py b/argilla-sdk/src/argilla_sdk/workspaces/__init__.py index 4fb8d83773..f833ea9e96 100644 --- a/argilla-sdk/src/argilla_sdk/workspaces/__init__.py +++ b/argilla-sdk/src/argilla_sdk/workspaces/__init__.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/src/argilla_sdk/workspaces/_resource.py b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py index 5911c349d4..9b8a077a47 100644 --- a/argilla-sdk/src/argilla_sdk/workspaces/_resource.py +++ b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import TYPE_CHECKING, List, Optional, Sequence, Union, overload +from typing import List, TYPE_CHECKING, Optional, overload, Union, Sequence from uuid import UUID from argilla_sdk._api._workspaces import WorkspacesAPI diff --git a/argilla-sdk/tests/integration/conftest.py b/argilla-sdk/tests/integration/conftest.py index d20ec1f81d..44b9e177f8 100644 --- a/argilla-sdk/tests/integration/conftest.py +++ b/argilla-sdk/tests/integration/conftest.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -import argilla_sdk as rg import pytest +import argilla_sdk as rg + @pytest.fixture(scope="session") def client() -> rg.Argilla: diff --git a/argilla-sdk/tests/integration/test_add_records.py b/argilla-sdk/tests/integration/test_add_records.py index 10333c4cd6..9fb918b128 100644 --- a/argilla-sdk/tests/integration/test_add_records.py +++ b/argilla-sdk/tests/integration/test_add_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,6 +16,7 @@ import uuid from datetime import datetime + import argilla_sdk as rg from argilla_sdk import Argilla diff --git a/argilla-sdk/tests/integration/test_create_datasets.py b/argilla-sdk/tests/integration/test_create_datasets.py index 975b469acf..160f602bb6 100644 --- a/argilla-sdk/tests/integration/test_create_datasets.py +++ b/argilla-sdk/tests/integration/test_create_datasets.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +14,8 @@ import uuid import pytest -from argilla_sdk import Argilla, Dataset, RatingQuestion, Settings, TextField + +from argilla_sdk import Argilla, Dataset, Settings, TextField, RatingQuestion @pytest.fixture(scope="session", autouse=True) diff --git a/argilla-sdk/tests/integration/test_dataset_workspace.py b/argilla-sdk/tests/integration/test_dataset_workspace.py index 4004ce58da..3faad1e57a 100644 --- a/argilla-sdk/tests/integration/test_dataset_workspace.py +++ b/argilla-sdk/tests/integration/test_dataset_workspace.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,8 +14,9 @@ import random -import argilla_sdk as rg import pytest + +import argilla_sdk as rg from argilla_sdk._exceptions import NotFoundError diff --git a/argilla-sdk/tests/integration/test_empty_settings.py b/argilla-sdk/tests/integration/test_empty_settings.py index ab5b42f5fc..3b1305a68c 100644 --- a/argilla-sdk/tests/integration/test_empty_settings.py +++ b/argilla-sdk/tests/integration/test_empty_settings.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,7 +16,8 @@ from string import ascii_lowercase import pytest -from argilla_sdk import Argilla, Dataset, Settings, TextField, TextQuestion, Workspace + +from argilla_sdk import Argilla, Dataset, Settings, Workspace, TextQuestion, TextField from argilla_sdk._exceptions import SettingsError diff --git a/argilla-sdk/tests/integration/test_export_dataset.py b/argilla-sdk/tests/integration/test_export_dataset.py index 45f18ccb91..37031f80e7 100644 --- a/argilla-sdk/tests/integration/test_export_dataset.py +++ b/argilla-sdk/tests/integration/test_export_dataset.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,9 +19,10 @@ from string import ascii_lowercase from tempfile import TemporaryDirectory -import argilla_sdk as rg import pytest +import argilla_sdk as rg + @pytest.fixture def dataset(client) -> rg.Dataset: diff --git a/argilla-sdk/tests/integration/test_export_records.py b/argilla-sdk/tests/integration/test_export_records.py index baa47d64c2..09f99dc090 100644 --- a/argilla-sdk/tests/integration/test_export_records.py +++ b/argilla-sdk/tests/integration/test_export_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,11 +19,12 @@ from string import ascii_lowercase from tempfile import TemporaryDirectory -import argilla_sdk as rg import pytest -from argilla_sdk import Argilla from datasets import Dataset as HFDataset +import argilla_sdk as rg +from argilla_sdk import Argilla + @pytest.fixture def dataset(client) -> rg.Dataset: diff --git a/argilla-sdk/tests/integration/test_list_records.py b/argilla-sdk/tests/integration/test_list_records.py index 0e837237b4..eb7885e272 100644 --- a/argilla-sdk/tests/integration/test_list_records.py +++ b/argilla-sdk/tests/integration/test_list_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,7 +16,8 @@ from string import ascii_lowercase import pytest -from argilla_sdk import Argilla, Dataset, LabelQuestion, Settings, TextField, TextQuestion, Workspace + +from argilla_sdk import Argilla, Dataset, Settings, TextField, TextQuestion, Workspace, LabelQuestion @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_listing_datasets.py b/argilla-sdk/tests/integration/test_listing_datasets.py index 573d6bb2b3..18376c9d03 100644 --- a/argilla-sdk/tests/integration/test_listing_datasets.py +++ b/argilla-sdk/tests/integration/test_listing_datasets.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/integration/test_manage_users.py b/argilla-sdk/tests/integration/test_manage_users.py index d20e620f80..da5f15247f 100644 --- a/argilla-sdk/tests/integration/test_manage_users.py +++ b/argilla-sdk/tests/integration/test_manage_users.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +13,8 @@ # limitations under the License. import pytest -from argilla_sdk import Argilla, User + +from argilla_sdk import User, Argilla @pytest.fixture(scope="session", autouse=True) diff --git a/argilla-sdk/tests/integration/test_manage_workspaces.py b/argilla-sdk/tests/integration/test_manage_workspaces.py index adf3f93715..7f9989577e 100644 --- a/argilla-sdk/tests/integration/test_manage_workspaces.py +++ b/argilla-sdk/tests/integration/test_manage_workspaces.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/integration/test_metadata.py b/argilla-sdk/tests/integration/test_metadata.py index bb1f653c30..ce8048cf6b 100644 --- a/argilla-sdk/tests/integration/test_metadata.py +++ b/argilla-sdk/tests/integration/test_metadata.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,9 +15,10 @@ import random from string import ascii_lowercase -import argilla_sdk as rg import pytest -from argilla_sdk import Argilla, Dataset, LabelQuestion, Settings, TextField, Workspace + +import argilla_sdk as rg +from argilla_sdk import Argilla, Dataset, Settings, TextField, Workspace, LabelQuestion @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_publish_datasets.py b/argilla-sdk/tests/integration/test_publish_datasets.py index c4cacb8292..de4fa524db 100644 --- a/argilla-sdk/tests/integration/test_publish_datasets.py +++ b/argilla-sdk/tests/integration/test_publish_datasets.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,17 +15,17 @@ from argilla_sdk import ( Argilla, - FloatMetadataProperty, - IntegerMetadataProperty, + Settings, + TextField, + TextQuestion, + SpanQuestion, LabelQuestion, MultiLabelQuestion, - RankingQuestion, RatingQuestion, - Settings, - SpanQuestion, + RankingQuestion, TermsMetadataProperty, - TextField, - TextQuestion, + IntegerMetadataProperty, + FloatMetadataProperty, ) diff --git a/argilla-sdk/tests/integration/test_query_records.py b/argilla-sdk/tests/integration/test_query_records.py index a1c66342dd..193de14b6d 100644 --- a/argilla-sdk/tests/integration/test_query_records.py +++ b/argilla-sdk/tests/integration/test_query_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,9 +15,10 @@ import random from string import ascii_lowercase -import argilla_sdk as rg import pytest -from argilla_sdk import Argilla, Dataset, LabelQuestion, Settings, TextField, Workspace + +import argilla_sdk as rg +from argilla_sdk import Argilla, Dataset, Settings, TextField, Workspace, LabelQuestion @pytest.fixture diff --git a/argilla-sdk/tests/integration/test_ranking_questions.py b/argilla-sdk/tests/integration/test_ranking_questions.py index 04f3381aa0..0ebc92fba3 100644 --- a/argilla-sdk/tests/integration/test_ranking_questions.py +++ b/argilla-sdk/tests/integration/test_ranking_questions.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,9 +14,10 @@ import random -import argilla_sdk as rg import pytest +import argilla_sdk as rg + @pytest.fixture def dataset(client: rg.Argilla): diff --git a/argilla-sdk/tests/integration/test_update_records.py b/argilla-sdk/tests/integration/test_update_records.py index 3e86675094..bcfa328ce9 100644 --- a/argilla-sdk/tests/integration/test_update_records.py +++ b/argilla-sdk/tests/integration/test_update_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,8 +16,9 @@ import uuid from string import ascii_lowercase -import argilla_sdk as rg import pytest + +import argilla_sdk as rg from argilla_sdk import Record from argilla_sdk._models import RecordModel diff --git a/argilla-sdk/tests/integration/test_vectors.py b/argilla-sdk/tests/integration/test_vectors.py index ea1bde03c4..2b7a4726c0 100644 --- a/argilla-sdk/tests/integration/test_vectors.py +++ b/argilla-sdk/tests/integration/test_vectors.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,9 +16,10 @@ import uuid from datetime import datetime -import argilla_sdk as rg import pytest +import argilla_sdk as rg + @pytest.fixture def dataset(client: rg.Argilla) -> rg.Dataset: diff --git a/argilla-sdk/tests/unit/api/http/test_http_client.py b/argilla-sdk/tests/unit/api/http/test_http_client.py index bb3c4d9f6c..3a65d710a7 100644 --- a/argilla-sdk/tests/unit/api/http/test_http_client.py +++ b/argilla-sdk/tests/unit/api/http/test_http_client.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,9 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from argilla_sdk import Argilla from httpx import Timeout +from argilla_sdk import Argilla + class TestHTTPClient: def test_create_default_client(self): diff --git a/argilla-sdk/tests/unit/conftest.py b/argilla-sdk/tests/unit/conftest.py index f242ef6356..e27f091979 100644 --- a/argilla-sdk/tests/unit/conftest.py +++ b/argilla-sdk/tests/unit/conftest.py @@ -1,5 +1,3 @@ -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # Copyright 2024-present, Argilla, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py b/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py index 87b3102fbc..5c9c93f89d 100644 --- a/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py +++ b/argilla-sdk/tests/unit/export/test_record_export_import_compatibillity.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,8 +15,9 @@ import json import uuid -import argilla_sdk as rg import pytest + +import argilla_sdk as rg from argilla_sdk.records._resource import Record diff --git a/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py index 01c5d13e29..c72ccdde0b 100644 --- a/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py +++ b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,15 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. +import pytest import uuid from datetime import datetime from tempfile import TemporaryDirectory -import argilla_sdk as rg import httpx -import pytest from pytest_httpx import HTTPXMock +import argilla_sdk as rg + @pytest.fixture def settings(): diff --git a/argilla-sdk/tests/unit/helpers/test_resource_repr.py b/argilla-sdk/tests/unit/helpers/test_resource_repr.py index 9cd215427f..82659678c4 100644 --- a/argilla-sdk/tests/unit/helpers/test_resource_repr.py +++ b/argilla-sdk/tests/unit/helpers/test_resource_repr.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_interface.py b/argilla-sdk/tests/unit/test_interface.py index 711b24950e..41066b67fc 100644 --- a/argilla-sdk/tests/unit/test_interface.py +++ b/argilla-sdk/tests/unit/test_interface.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_record_ingestion.py b/argilla-sdk/tests/unit/test_record_ingestion.py index 57b75413d8..54c41d06fe 100644 --- a/argilla-sdk/tests/unit/test_record_ingestion.py +++ b/argilla-sdk/tests/unit/test_record_ingestion.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,9 +14,10 @@ from uuid import uuid4 -import argilla_sdk as rg import pytest +import argilla_sdk as rg + @pytest.fixture def dataset(): diff --git a/argilla-sdk/tests/unit/test_record_responses.py b/argilla-sdk/tests/unit/test_record_responses.py index 0e534ffc9f..b6f57ee3fd 100644 --- a/argilla-sdk/tests/unit/test_record_responses.py +++ b/argilla-sdk/tests/unit/test_record_responses.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,8 +14,9 @@ import uuid import pytest -from argilla_sdk import Dataset, Response, Settings, TextField, TextQuestion, User, Workspace -from argilla_sdk.records._resource import Record, RecordResponses + +from argilla_sdk import Response, User, Dataset, Settings, TextQuestion, TextField, Workspace +from argilla_sdk.records._resource import RecordResponses, Record @pytest.fixture diff --git a/argilla-sdk/tests/unit/test_record_suggestions.py b/argilla-sdk/tests/unit/test_record_suggestions.py index f2f215e4a7..8ce6105b02 100644 --- a/argilla-sdk/tests/unit/test_record_suggestions.py +++ b/argilla-sdk/tests/unit/test_record_suggestions.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +13,7 @@ # limitations under the License. import pytest + from argilla_sdk import Record, Suggestion from argilla_sdk.records._resource import RecordSuggestions diff --git a/argilla-sdk/tests/unit/test_resources/test_datasets.py b/argilla-sdk/tests/unit/test_resources/test_datasets.py index e05c6ff59b..80f0b1b037 100644 --- a/argilla-sdk/tests/unit/test_resources/test_datasets.py +++ b/argilla-sdk/tests/unit/test_resources/test_datasets.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,9 +15,11 @@ import uuid from datetime import datetime -import argilla_sdk as rg import httpx import pytest +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg from argilla_sdk._exceptions import ( BadRequestError, ConflictError, @@ -28,7 +28,6 @@ NotFoundError, UnprocessableEntityError, ) -from pytest_httpx import HTTPXMock @pytest.fixture diff --git a/argilla-sdk/tests/unit/test_resources/test_fields.py b/argilla-sdk/tests/unit/test_resources/test_fields.py index ed0d919e8d..1064556fb7 100644 --- a/argilla-sdk/tests/unit/test_resources/test_fields.py +++ b/argilla-sdk/tests/unit/test_resources/test_fields.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +15,12 @@ import uuid from datetime import datetime -import argilla_sdk as rg import httpx -from argilla_sdk._models import TextFieldModel from pytest_httpx import HTTPXMock +import argilla_sdk as rg +from argilla_sdk._models import TextFieldModel + class TestFieldsAPI: def test_create_many_fields(self, httpx_mock: HTTPXMock): diff --git a/argilla-sdk/tests/unit/test_resources/test_questions.py b/argilla-sdk/tests/unit/test_resources/test_questions.py index 614c56b6a8..0b28b2fefe 100644 --- a/argilla-sdk/tests/unit/test_resources/test_questions.py +++ b/argilla-sdk/tests/unit/test_resources/test_questions.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,12 +15,13 @@ import uuid from datetime import datetime -import argilla_sdk as rg import httpx -from argilla_sdk._models import LabelQuestionModel, TextQuestionModel -from argilla_sdk._models._settings._questions import SpanQuestionModel from pytest_httpx import HTTPXMock +import argilla_sdk as rg +from argilla_sdk._models import TextQuestionModel, LabelQuestionModel +from argilla_sdk._models._settings._questions import SpanQuestionModel + class TestQuestionsAPI: def test_create_many_questions(self, httpx_mock: HTTPXMock): diff --git a/argilla-sdk/tests/unit/test_resources/test_records.py b/argilla-sdk/tests/unit/test_resources/test_records.py index 5c49ca8b48..4366766d47 100644 --- a/argilla-sdk/tests/unit/test_resources/test_records.py +++ b/argilla-sdk/tests/unit/test_resources/test_records.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +14,7 @@ import uuid -from argilla_sdk import Record, Response, Suggestion +from argilla_sdk import Record, Suggestion, Response from argilla_sdk._models import MetadataModel diff --git a/argilla-sdk/tests/unit/test_resources/test_users.py b/argilla-sdk/tests/unit/test_resources/test_users.py index 4c23033843..b8c87ef59f 100644 --- a/argilla-sdk/tests/unit/test_resources/test_users.py +++ b/argilla-sdk/tests/unit/test_resources/test_users.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,9 +16,11 @@ import uuid from datetime import datetime -import argilla_sdk as rg import httpx import pytest +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg from argilla_sdk._exceptions import ( BadRequestError, ConflictError, @@ -30,7 +30,6 @@ UnprocessableEntityError, ) from argilla_sdk._models import UserModel -from pytest_httpx import HTTPXMock class TestUserSerialization: diff --git a/argilla-sdk/tests/unit/test_resources/test_workspaces.py b/argilla-sdk/tests/unit/test_resources/test_workspaces.py index 90c3424599..a430b1aba0 100644 --- a/argilla-sdk/tests/unit/test_resources/test_workspaces.py +++ b/argilla-sdk/tests/unit/test_resources/test_workspaces.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,9 +15,11 @@ import uuid from datetime import datetime -import argilla_sdk as rg import httpx import pytest +from pytest_httpx import HTTPXMock + +import argilla_sdk as rg from argilla_sdk._exceptions import ( BadRequestError, ConflictError, @@ -28,7 +28,6 @@ NotFoundError, UnprocessableEntityError, ) -from pytest_httpx import HTTPXMock class TestWorkspacesSerialization: diff --git a/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py b/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py index fc095a7fa3..4818f61c5a 100644 --- a/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py +++ b/argilla-sdk/tests/unit/test_settings/test_multi_label_question.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_settings/test_settings.py b/argilla-sdk/tests/unit/test_settings/test_settings.py index cda3f6e707..c39230f728 100644 --- a/argilla-sdk/tests/unit/test_settings/test_settings.py +++ b/argilla-sdk/tests/unit/test_settings/test_settings.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,8 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import argilla_sdk as rg import pytest + +import argilla_sdk as rg from argilla_sdk._exceptions import SettingsError diff --git a/argilla-sdk/tests/unit/test_settings/test_settings_fields.py b/argilla-sdk/tests/unit/test_settings/test_settings_fields.py index f4a17ae510..917521f4ef 100644 --- a/argilla-sdk/tests/unit/test_settings/test_settings_fields.py +++ b/argilla-sdk/tests/unit/test_settings/test_settings_fields.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -import argilla_sdk as rg import pytest +import argilla_sdk as rg class TestTextField: diff --git a/argilla-sdk/tests/unit/test_settings/test_settings_questions.py b/argilla-sdk/tests/unit/test_settings/test_settings_questions.py index e07bc91c37..cec8ad1a6c 100644 --- a/argilla-sdk/tests/unit/test_settings/test_settings_questions.py +++ b/argilla-sdk/tests/unit/test_settings/test_settings_questions.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_settings/test_span_question.py b/argilla-sdk/tests/unit/test_settings/test_span_question.py index e3890a6406..67168d8b3c 100644 --- a/argilla-sdk/tests/unit/test_settings/test_span_question.py +++ b/argilla-sdk/tests/unit/test_settings/test_span_question.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py index de0c77805a..d4eda709c9 100644 --- a/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py +++ b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py @@ -1,6 +1,4 @@ # Copyright 2024-present, Argilla, Inc. -# TODO: This license is not consistent with the license used in the project. -# Delete the inconsistent license and above line and rerun pre-commit to insert a good license. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 2e315113f4d0480fc3be5494ed081696b3388cc4 Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Tue, 28 May 2024 14:57:21 +0200 Subject: [PATCH 10/17] chore: Configure pre-commit only for argilla project --- .pre-commit-config.yaml | 53 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b332c67035..49730dbe0e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,42 +1,83 @@ repos: + ############################################################################## + # argilla specific hooks + ############################################################################## - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: check-yaml + files: '^argilla/.*\.py$' - id: end-of-file-fixer + files: '^argilla/.*\.py$' exclude_types: [ text, jupyter ] - id: trailing-whitespace - + files: '^argilla/.*\.py$' - repo: https://github.com/Lucas-C/pre-commit-hooks rev: v1.5.4 hooks: - id: insert-license name: "Insert license header in Python source files" - files: '^argilla/.*\.py' + files: '^argilla/.*\.py$' args: - --license-filepath - license_header.txt - --fuzzy-match-generates-todo # - --remove-header - - repo: https://github.com/psf/black rev: 23.10.1 hooks: - id: black additional_dependencies: [ "typer==0.7.0" ] # only run for argilla/ files - files: '^argilla/.*\.py' + files: '^argilla/.*\.py$' args: [ --line-length=120 ] - - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.1.3 hooks: # Simulate isort via (the much faster) ruff - id: ruff - files: '^argilla/.*\.py' + files: '^argilla/.*\.py$' args: - --select=I - --fix + ############################################################################## + # argilla-sdk specific hooks + ############################################################################## + - repo: https://github.com/Lucas-C/pre-commit-hooks + rev: v1.5.4 + hooks: + - id: insert-license + name: "Insert license header in Python source files" + files: '^argilla-sdk/.*\.py$' + exclude: ^argilla-sdk/docs/snippets/ + args: + - --license-filepath + - argilla-sdk/LICENSE_HEADER + - --fuzzy-match-generates-todo + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.1.4 + hooks: + - id: ruff + files: '^argilla-sdk/.*\.py$' + args: + - --fix + - id: ruff-format + files: '^argilla-sdk/.*\.py$' + - repo: https://github.com/kynan/nbstripout + rev: 0.7.1 + hooks: + - id: nbstripout + files: '^argilla-sdk/.*\.ipynb$' + args: + - --keep-count + - --keep-output + # - --keep-prompt-number + # - --keep-cell-ids + # - --keep-markdown + # - --keep-output-timestamp + # - --keep-execution-count + # - --keep-metadata + # - --keep-version ci: autofix_commit_msg: | From 6142f48a2efe8d6a7d1348c17c4a53b80fb418c8 Mon Sep 17 00:00:00 2001 From: David Berenstein Date: Wed, 29 May 2024 18:37:12 +0200 Subject: [PATCH 11/17] Create gh-pages.yml --- .github/workflows/gh-pages.yml | 51 ++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/gh-pages.yml diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 0000000000..f28d19bb60 --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,51 @@ +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll with GitHub Pages dependencies preinstalled + +on: + # Runs on pushes targeting the default branch + push: + branches: ["feat/v2.0.0"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./argilla-sdk/ + destination: ./_site + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 From 74c7b81402184610f59e95d58021902775fe5386 Mon Sep 17 00:00:00 2001 From: David Berenstein Date: Wed, 29 May 2024 18:44:34 +0200 Subject: [PATCH 12/17] Delete .github/workflows/gh-pages.yml --- .github/workflows/gh-pages.yml | 51 ---------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 .github/workflows/gh-pages.yml diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index f28d19bb60..0000000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,51 +0,0 @@ -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll with GitHub Pages dependencies preinstalled - -on: - # Runs on pushes targeting the default branch - push: - branches: ["feat/v2.0.0"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Pages - uses: actions/configure-pages@v5 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@v1 - with: - source: ./argilla-sdk/ - destination: ./_site - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 From 6078606ff5ec4aeb0c8ed4746a093349b2c4ae1d Mon Sep 17 00:00:00 2001 From: davidberenstein1957 Date: Thu, 30 May 2024 10:45:57 +0200 Subject: [PATCH 13/17] Remove "main" and "develop" from on trigger --- .github/workflows/argilla-sdk.docs.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/argilla-sdk.docs.yml b/.github/workflows/argilla-sdk.docs.yml index 32990da050..04e2d42153 100644 --- a/.github/workflows/argilla-sdk.docs.yml +++ b/.github/workflows/argilla-sdk.docs.yml @@ -9,8 +9,8 @@ on: paths: - "argilla-sdk/**" branches: - - "main" - - "develop" + # - "main" + - "feat/**" - "gh-pages" tags: - "**" @@ -25,8 +25,8 @@ on: - synchronize - ready_for_review branches: - - "main" - - "develop" + # - "main" + # - "develop" - "feat/**" defaults: From ca8475bb933300492b9b740405fd73e601d0f110 Mon Sep 17 00:00:00 2001 From: davidberenstein1957 Date: Thu, 30 May 2024 10:58:49 +0200 Subject: [PATCH 14/17] Removed main branch deploy logic --- .github/workflows/argilla-sdk.docs.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/argilla-sdk.docs.yml b/.github/workflows/argilla-sdk.docs.yml index 04e2d42153..9f4a4f7688 100644 --- a/.github/workflows/argilla-sdk.docs.yml +++ b/.github/workflows/argilla-sdk.docs.yml @@ -67,15 +67,15 @@ jobs: git config --global user.email "${{ github.actor }}@users.noreply.github.com" - run: pdm run mike deploy dev --push - if: github.ref == 'refs/heads/main' + # if: github.ref == 'refs/heads/main' - - run: pdm run mike deploy ${{ github.ref_name }} latest --update-aliases --push - if: startsWith(github.ref, 'refs/tags/') + # - run: pdm run mike deploy ${{ github.ref_name }} latest --update-aliases --push + # if: startsWith(github.ref, 'refs/tags/') - - name: Extract branch name - shell: bash - run: echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" | sed 's/\//_/g' >> $GITHUB_OUTPUT - id: extract_branch_name + # - name: Extract branch name + # shell: bash + # run: echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" | sed 's/\//_/g' >> $GITHUB_OUTPUT + # id: extract_branch_name - - run: pdm run mike deploy ${{ steps.extract_branch_name.outputs.branch_name }} --push - if: startsWith(github.head_ref, 'docs/') + # - run: pdm run mike deploy ${{ steps.extract_branch_name.outputs.branch_name }} --push + # if: startsWith(github.head_ref, 'docs/') From 26ca7604907004989ae342b1d1a0db8c55405dc1 Mon Sep 17 00:00:00 2001 From: davidberenstein1957 Date: Thu, 30 May 2024 11:06:30 +0200 Subject: [PATCH 15/17] Add build commands for every branch --- .github/workflows/argilla-sdk.docs.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/argilla-sdk.docs.yml b/.github/workflows/argilla-sdk.docs.yml index 9f4a4f7688..7eed486382 100644 --- a/.github/workflows/argilla-sdk.docs.yml +++ b/.github/workflows/argilla-sdk.docs.yml @@ -67,15 +67,16 @@ jobs: git config --global user.email "${{ github.actor }}@users.noreply.github.com" - run: pdm run mike deploy dev --push - # if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/feat/v2.0.0' + # if: github.ref == 'refs/heads/main' - # - run: pdm run mike deploy ${{ github.ref_name }} latest --update-aliases --push - # if: startsWith(github.ref, 'refs/tags/') + - run: pdm run mike deploy ${{ github.ref_name }} latest --update-aliases --push + if: startsWith(github.ref, 'refs/tags/') - # - name: Extract branch name - # shell: bash - # run: echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" | sed 's/\//_/g' >> $GITHUB_OUTPUT - # id: extract_branch_name + - name: Extract branch name + shell: bash + run: echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" | sed 's/\//_/g' >> $GITHUB_OUTPUT + id: extract_branch_name - # - run: pdm run mike deploy ${{ steps.extract_branch_name.outputs.branch_name }} --push - # if: startsWith(github.head_ref, 'docs/') + - run: pdm run mike deploy ${{ steps.extract_branch_name.outputs.branch_name }} --push + # if: startsWith(github.head_ref, 'docs/') From da79f7b1b181f79713a06221c39f5aa7cc524d70 Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Mon, 3 Jun 2024 17:23:58 +0200 Subject: [PATCH 16/17] chore: Rsync with argilla-python repository --- .../community/contributing/argilla-slack.png | Bin 0 -> 292195 bytes .../community/contributing/channels.PNG | Bin 0 -> 38844 bytes .../contributing/compare-across-forks.PNG | Bin 0 -> 29675 bytes .../contributing/compare-pull-request.PNG | Bin 0 -> 14343 bytes .../contributing/create-branch-together.png | Bin 0 -> 249670 bytes .../community/contributing/create-branch.PNG | Bin 0 -> 4224 bytes .../community/contributing/create-fork.PNG | Bin 0 -> 51435 bytes .../community/contributing/edit-file.PNG | Bin 0 -> 10365 bytes .../community/contributing/fork-bar.PNG | Bin 0 -> 13792 bytes .../contributing/issue-feature-template.PNG | Bin 0 -> 119918 bytes .../community/contributing/issues-page.PNG | Bin 0 -> 129694 bytes .../contributing/pull-request-feature.PNG | Bin 0 -> 90942 bytes .../community/contributing/pull-request.PNG | Bin 0 -> 117557 bytes .../contributing/templates-issues.PNG | Bin 0 -> 49466 bytes argilla-sdk/docs/community/contributor.md | 218 ++++++++++++ argilla-sdk/docs/community/index.md | 45 +++ argilla-sdk/docs/getting_started/faq.md | 35 +- .../docs/getting_started/installation.md | 3 - .../docs/getting_started/quickstart.md | 35 +- .../{ => guides}/how_to_guides/dataset.md | 54 +-- .../docs/{ => guides}/how_to_guides/index.md | 1 + .../how_to_guides/query_export.md | 4 +- .../docs/{ => guides}/how_to_guides/record.md | 310 +++++++++--------- .../docs/{ => guides}/how_to_guides/user.md | 7 +- .../{ => guides}/how_to_guides/workspace.md | 10 +- argilla-sdk/docs/how_to_guides/fine_tune.md | 8 - .../docs/how_to_guides/metrics/annotator.md | 0 .../docs/how_to_guides/metrics/dataset.md | 0 .../docs/how_to_guides/metrics/model.md | 0 argilla-sdk/docs/index.md | 12 +- argilla-sdk/docs/integrations/index.md | 50 --- argilla-sdk/docs/overview/changelog.md | 7 - argilla-sdk/docs/overview/community.md | 13 - .../docs/overview/community/contributor.md | 13 - .../docs/overview/community/developer.md | 13 - argilla-sdk/docs/overview/community/index.md | 13 - argilla-sdk/docs/overview/concepts/index.md | 7 - .../docs/overview/installation/index.md | 7 - .../docs/overview/installation/telemetry.md | 7 - .../docs/reference/argilla_sdk/INDEX.md | 0 .../docs/reference/argilla_sdk/client.md | 7 +- .../argilla_sdk/datasets/dataset_records.md | 266 ++++++++++----- .../argilla_sdk/datasets/datasets.md | 7 +- .../reference/argilla_sdk/records/metadata.md | 5 +- .../reference/argilla_sdk/records/records.md | 32 +- .../argilla_sdk/records/responses.md | 9 +- .../argilla_sdk/records/suggestions.md | 11 +- .../reference/argilla_sdk/records/vectors.md | 11 +- .../docs/reference/argilla_sdk/search.md | 9 +- .../reference/argilla_sdk/settings/fields.md | 6 +- .../argilla_sdk/settings/metadata_property.md | 12 +- .../argilla_sdk/settings/questions.md | 16 +- .../argilla_sdk/settings/settings.md | 5 +- .../reference/argilla_sdk/settings/vectors.md | 7 +- .../docs/reference/argilla_sdk/users.md | 5 +- .../docs/reference/argilla_sdk/workspaces.md | 6 +- argilla-sdk/docs/tutorials/index.md | 90 ----- argilla-sdk/docs/tutorials/rag_llm.md | 13 - .../tutorials/rag_rankers_and_retrievers.md | 7 - argilla-sdk/mkdocs.yml | 49 ++- argilla-sdk/src/argilla_sdk/_api/_base.py | 2 +- argilla-sdk/src/argilla_sdk/_api/_datasets.py | 14 +- argilla-sdk/src/argilla_sdk/_api/_fields.py | 56 ++-- argilla-sdk/src/argilla_sdk/_api/_metadata.py | 50 ++- .../src/argilla_sdk/_api/_questions.py | 4 +- argilla-sdk/src/argilla_sdk/_api/_records.py | 10 +- argilla-sdk/src/argilla_sdk/_api/_users.py | 16 +- argilla-sdk/src/argilla_sdk/_api/_vectors.py | 33 +- .../src/argilla_sdk/_api/_workspaces.py | 14 +- .../src/argilla_sdk/_helpers/__init__.py | 3 + argilla-sdk/src/argilla_sdk/_helpers/_log.py | 11 +- .../_helpers/{_mixins.py => _uuid.py} | 26 +- .../src/argilla_sdk/_models/__init__.py | 5 +- .../argilla_sdk/_models/_record/_record.py | 9 +- .../argilla_sdk/_models/_settings/_fields.py | 28 +- .../_models/_settings/_metadata.py | 12 +- .../argilla_sdk/_models/_settings/_vectors.py | 11 +- argilla-sdk/src/argilla_sdk/_resource.py | 32 +- .../src/argilla_sdk/datasets/_resource.py | 25 +- .../argilla_sdk/records/_dataset_records.py | 104 ++---- .../src/argilla_sdk/records/_resource.py | 8 +- .../src/argilla_sdk/records/_search.py | 2 +- argilla-sdk/src/argilla_sdk/responses.py | 2 +- .../src/argilla_sdk/settings/__init__.py | 1 + .../src/argilla_sdk/settings/_common.py | 4 +- .../src/argilla_sdk/settings/_field.py | 119 ++----- .../src/argilla_sdk/settings/_metadata.py | 81 ++++- .../src/argilla_sdk/settings/_resource.py | 261 ++++++++------- .../src/argilla_sdk/settings/_vector.py | 100 ++++++ argilla-sdk/src/argilla_sdk/suggestions.py | 2 +- .../src/argilla_sdk/users/_resource.py | 13 +- .../src/argilla_sdk/workspaces/_resource.py | 10 +- .../tests/integration/test_add_records.py | 53 +-- .../tests/integration/test_export_dataset.py | 10 +- .../tests/integration/test_export_records.py | 18 +- .../tests/integration/test_list_records.py | 4 +- .../tests/integration/test_metadata.py | 4 +- .../tests/integration/test_query_records.py | 4 +- .../integration/test_ranking_questions.py | 4 +- .../test_update_dataset_settings.py | 52 +++ .../tests/integration/test_update_records.py | 40 ++- argilla-sdk/tests/integration/test_vectors.py | 6 +- ...t_settings_export_import_compatibillity.py | 16 + .../unit/test_resources/test_datasets.py | 78 +++-- .../tests/unit/test_resources/test_fields.py | 8 +- .../tests/unit/test_settings/test_settings.py | 4 +- .../unit/test_settings/test_terms_metadata.py | 6 + 107 files changed, 1564 insertions(+), 1256 deletions(-) create mode 100644 argilla-sdk/docs/assets/images/community/contributing/argilla-slack.png create mode 100644 argilla-sdk/docs/assets/images/community/contributing/channels.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/compare-across-forks.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/compare-pull-request.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/create-branch-together.png create mode 100644 argilla-sdk/docs/assets/images/community/contributing/create-branch.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/create-fork.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/edit-file.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/fork-bar.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/issue-feature-template.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/issues-page.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/pull-request-feature.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/pull-request.PNG create mode 100644 argilla-sdk/docs/assets/images/community/contributing/templates-issues.PNG create mode 100644 argilla-sdk/docs/community/contributor.md create mode 100644 argilla-sdk/docs/community/index.md rename argilla-sdk/docs/{ => guides}/how_to_guides/dataset.md (92%) rename argilla-sdk/docs/{ => guides}/how_to_guides/index.md (99%) rename argilla-sdk/docs/{ => guides}/how_to_guides/query_export.md (95%) rename argilla-sdk/docs/{ => guides}/how_to_guides/record.md (67%) rename argilla-sdk/docs/{ => guides}/how_to_guides/user.md (96%) rename argilla-sdk/docs/{ => guides}/how_to_guides/workspace.md (92%) delete mode 100644 argilla-sdk/docs/how_to_guides/fine_tune.md delete mode 100644 argilla-sdk/docs/how_to_guides/metrics/annotator.md delete mode 100644 argilla-sdk/docs/how_to_guides/metrics/dataset.md delete mode 100644 argilla-sdk/docs/how_to_guides/metrics/model.md delete mode 100644 argilla-sdk/docs/integrations/index.md delete mode 100644 argilla-sdk/docs/overview/changelog.md delete mode 100644 argilla-sdk/docs/overview/community.md delete mode 100644 argilla-sdk/docs/overview/community/contributor.md delete mode 100644 argilla-sdk/docs/overview/community/developer.md delete mode 100644 argilla-sdk/docs/overview/community/index.md delete mode 100644 argilla-sdk/docs/overview/concepts/index.md delete mode 100644 argilla-sdk/docs/overview/installation/index.md delete mode 100644 argilla-sdk/docs/overview/installation/telemetry.md delete mode 100644 argilla-sdk/docs/reference/argilla_sdk/INDEX.md delete mode 100644 argilla-sdk/docs/tutorials/index.md delete mode 100644 argilla-sdk/docs/tutorials/rag_llm.md delete mode 100644 argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md rename argilla-sdk/src/argilla_sdk/_helpers/{_mixins.py => _uuid.py} (74%) create mode 100644 argilla-sdk/src/argilla_sdk/settings/_vector.py create mode 100644 argilla-sdk/tests/integration/test_update_dataset_settings.py diff --git a/argilla-sdk/docs/assets/images/community/contributing/argilla-slack.png b/argilla-sdk/docs/assets/images/community/contributing/argilla-slack.png new file mode 100644 index 0000000000000000000000000000000000000000..04f718c248106e0790798fbef722dcb2269e3237 GIT binary patch literal 292195 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
St{vd*o78 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≈_*V>wCm|OTPf53 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 z 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 V_P-dlDT4tBJYD@<);T3K0RYi^^}YZA literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/community/contributing/compare-across-forks.PNG b/argilla-sdk/docs/assets/images/community/contributing/compare-across-forks.PNG new file mode 100644 index 0000000000000000000000000000000000000000..e799b21bb4725e5a4907ae25ebf46698882169df GIT binary patch literal 29675 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/community/contributing/compare-pull-request.PNG b/argilla-sdk/docs/assets/images/community/contributing/compare-pull-request.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ace5c010b93f39b884829c7e078ae3a0eb882a3d GIT binary patch literal 14343 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/community/contributing/create-branch-together.png b/argilla-sdk/docs/assets/images/community/contributing/create-branch-together.png new file mode 100644 index 0000000000000000000000000000000000000000..4f358362f93468b774c928d10c8314c81f0c1d6e GIT binary patch literal 249670 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%0A=!VF)?#i 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 OX#YGTz3!I z?WV0rc%G4++&P*8EHkSO!9Dh^2_m9^y6GBsZ{Bk6DyjIh1GVPoy2DNM3Ap~xM;N31 zkLRuG$VeY(p5-zSo7}Dt4|gA%)mbj!X*lDa!mdQtHY?LmktAdbF{|!rYiP(|KA!kw z_hDl7D`!+f35Z%^C6O@A_PE}Cc7ew=Sww%|?_8Oi-XdULPcXB)N#BralndKgA~s_2 z6(8SQg_Qn?Hh%)O%!?2k;Q65B~yXTK$;`=2T zy*}rB6_z&sPI=p_jX^!3?V4lA4g*ku3;Ap#Ja;QNC zE4?ma$t5_ZH=PZWYd}l%Tny7}L!{GD)IBB3(`bOY7p-sglHQ)U=lT1etG)<5$ZNiz zwl=o!F7>oKrLQmJz)czE@v2^;o3XB#@9`1Q88OaIi(8=SQ%e8YLF@@ykv{3O+5j!oL7F4t|%_d$*VmG3#>+?9_zEt}3&db3*7UMgKN zeD<}mBwUD?J3?8VN71T4T2flpKqZ~Gg*exXuWXQXtF`6|xJrD=os9YrOeKveQ%=gt zVnk}WA0-r0@!>WPzqQ?aW3X+HU!})MC%4KQo8&Q(-IuaU%IcF-jGL_#8=R40=5P~p zc~Kv_8|LJ-I@vVlo|Dx1;@N9i07QK0TCVB1t@uXeF+r(tXzve}h{tc~8kS8~c(&z$ zxhPx1V?`ptgWtL@s+edz-lbeky>Hc2so@U?QnmuHM7>@}XW}`;hk_?j`5AKX!8D zXkNyj-@2W&Xwl~TlJ{pES~_{2w1!6qPwR!7A-{W|5fx4P7hUkw@G0FygU=hL@6WRf zD*9*rf9J|vj7C47lfgz zx+x~b+G3dx$GPDp-BEcG2^{)^%7v7z_^V;|otml%ZQGLr!>{Aa@30^UBEE%IiMvY2 zhgej1fgSDH)cflS&Ww_4k!S%mnQ}?WIH{w`5baq(?qV^!v|P3h8 zfl7(X#-q!_Ne{Nh({xF}`|`)iV~%&-d{2E&#qH=1TYRzhLpiB*-PVor#n-FcRD=x) z9t-N&>$wdOPSZIQ9_I;!X+JkroRm!zG>^Sp4P;s?Z5DLVM5kVM!CCJ_jmOL*pL-Y5 zeTbqtI@?T*a)i6j{fWNliZ3->2gAykz$tA@gI5tc1zl245D2rb%)=+FUoK9lKVACZ z7%Mhdi1CT27~EesM}?Zr60_09@BAiTO=wsm=B*+}xmMfvsX`D12bxi#B)^i>a~y`; z0s>~RzK0yu=9Rv&u=@hZ=#)Q-_an{iS8quX4&^QQxso3H-#cy42#Y`zc(pp5O&qCi zfCi3ku;a49b*9obuHmc`aWGKqAunWo?e_5t{B&E*Xq(b;^k0`5$zD`P!=okbZKDeQd9NYfzS+?=YUNJ+KSqciQ{fus3h}v5Imoo5od1=z3--A-=0l89a;Vwr27e zNR#o?PrbS+d{Q09V?7Qsr1MzV=BAp@9|oyxP1MH)YEA3hR-wrGV8 z0xHa>22V0}CH&BTny(>EduKxkp34ZyR^qe{+*{Rf=j=j5(4lGaraSa#X;V9$7!=sT z6FCj*E|Ei5*}c{sC+lqPqJ8_i4un=oy^nv|(tZl9i2Hzr7oEl+)f1p>IQW@T=-?5> zE2|PA`1osnA#3&v!^AFg`j=+B|J7Ss#_b*VYn9-mc+Q%MxN^$+5mbT>{ZuIuIGh&a z-4YT>$dAx~XB|&F(zvS)4OriL9YJ{}#YS+_m@(TaFxjZ8H)l-(_&0tG3lrWWq}zay7tV1WszUts1O^E+VqWEs)H69uTX|06O`u01&9Xo0 zCI+VAfmC^G7E;5SHCAbVX6n0qegfiOhLV+Ggzh#KJY7-_au27Ae&vAz#o~6CzRZKD zKuwD5(4PMOH_G=!3o0@t94z2;xTGv4%u#~%D0TQqCl#e^S(RF%!_J=_*Ywv!6~A?< zt{Zx2Dap(&=cJ3s+96{N_Hf`O7_>$|3SG~O0i7V%#Z{X~H{K+!*aL>Q{!ImW(3ujl zc5Dmp-}z~6{^rh_@g?O>`vx;L))_I@-NSV3ro)dBFpHNZOn-t;aOnwabbtrX({jQk{4keo!dcry3dg_QU#?n6rHvVLXPjXNwB)c7w`$`lLa! z4Nt?aur0xyafu|ZS+?;)_VK9m`xMfY7ISq2lOp*&n8Y4Olx*(>jzJ*0vnzxY6CR-ezX<^Euhyg86d26`B1Pl|!FgcF*%e~$KVLTEYFnBvD zs{6%kcx~`8QT`(}i)haHDC%tXhIlEv<-z2+ouMcu_41e5nv}U#DCAtep+Tb1y&aXg zVx1>D>%gPrzYCftj-o))J429e`6%GQW=7kcvwFwfNI{rGBEw(AS(b43SQX~`lS345 zoJx3+))n`YJuz^Zgwja}#8pV>m>&;Dn~b2d7a_WAA>?pb z!#m8}_Dj_Jxdi2Cc`1!zmqPNN1QX5FoaX^vddaL3PpF2WbCprIF|gFf6`vG9-&hUn zea^7|p@4r3AEy}cmtj}&q~>+4<9N^#V6UWJA8@i(15BT1?_5ZzPYiU2JM7Gv&sCLS zzZonAvTs|S$gF+WyNeJc=9(1yyc82))$(_Qcs_R>gFV{O_H-?g5 z+}Oosjndm20oS8X!{Kxf5i)dNMa;|+lG(n>6nnZXp5t$)ZiJ(2L`_R7jVmq}T#j;x zDy<62NeQ4LGsL`BT&YlMx>+m42CFeyFx@1c`6E&ajFMbnCpp_0FQ67`LR%eed_hR1 zM44L%75X*0s9beRLZXvQnVPnWfKb8CBIvh5r|sbe>v&3Ce7v0SZHKR4r8G)8>B%Wj z1O*)>rCw~yqo_^ zuSu`)`36aE0JDxZGl{M0P)g&w>A&<`9Wsk6uZa&SIDol)8SjC`FsX#Hiu-mhqiwlqIXRYLLvrDtqvKzU-)oPFI@*@)SRa&oXG^x=;5bxYSM0dMICQIzQhQj z&p%c`RmWH;xLkdzkW+l1Ohu}s%jj?VkOWS>BOk?PAS#O$roVD@{Popk)_bDlB@A|GnWi998*?M4phu<3|YXhwTW7w46zrLiTjeUR@G zjR}r9MBCw)&bIPzp8jPxnu&Nvg)b@UyB%odh(x0xnx!)SNB%94eMRBpXqJhqu(5+O zp`l|?xPx_g5f69hwW7yKIXiF(fy(EVdv;g29Ghv>8r04_B>rqzL~XuBN0FTrmeW?W zP}heh6fi|xC^6ATsN3RrVtbMhGt~%Hb@M?k1&Ipo@c3cN(hmka5&a|g_H9*_G+z73 zsY$~Eh&nOj#&|wBK-HRbl2z>bv53O95M9rAcu$FOu!Cx(aWmIB!+TIVxVc5# zFaDP-t>VOMg>NI}qLg3YO#`DQ?8ZcgL=T9ah%cTAA7X!&dl7WKiD76ru>Fx;dNajP zIxK@@6^la1;tzpTYj0LI>pZX1_)No(p$mR-TU!xh`>*RYzJ5an_-^y;~d_hvV zq8&k<-*#y?y#5AU1YyZ_|HwBl<;oMm^ITOxz6Tv_%@7x zvi2x^GSA)nT~FUYWi>~!M8YRd4(ZX@fz2u@1^brL(2THdyu~j}ngP`(#FbWmJ^oa( zq44fq1#d7hF-Z2)w6!Y7e z(x7xm=Kw=Df~1r~H&O!9Ftl`c*MM}VbUAPy-uFGf&rg&KOpq2%7*4i#hOP$TS{%m=Wl> zpVH=g8cPHSWLtHp&ghvyB_^NRr2Jdm60PN)U&!7VoIuI7eVrf_$EL@J87*94kJs88 zHj?b6jU9qXB@bvk*JvG>ZeQsxyJWAhV>+=PT+Qk0?~%lI1* z`idB}fMZ+)6>mQT6B1phz7z+z$+SN{QkC3#cAzv#Zf~5Q2j?pZ3bP5NMzBA56@XTV zt9=`aMVeLtc?DP6KCqe?ln&L)!nNYD{UN78RFz|fygTEq5r; zJqdMGxzCeN&{`)`ML$EMOIm$|FUCgKk8vDh$(wz>Z8BZ=>_@t#Zn*b+g`@^iP|n2{ zqT~x!Hnz7iT&}{fRYq3)c8=k*fB&8&Urc|zp3jL!x-;aNb!klsLZYM~ostbk17oVH z(;QfS09O5bSZrz4=?gh=6wsew^n?|qO-&Xq6HOHlWCU~NCfIhS@}r}QV6JvlNEqyx zWXweZ%AI2nJonQ0h0XdXe|(!XSs6C=F;f(`M%Z1w?+Gpw$8%bN@x|P&S#2Kk-eGDX zXz?gB$)Bk_o38hg4GNp?RL8T_Ch=>Q__j%06Trqiy@Ntdw;I;%1+<~FTZg{}qnl0p z%YT{&ya)AC4d`1mqDI;0Q$U$p$^A^Jfj;568wWa}L4-XrS|rW+&$;U%mnZH`80_CJ zYnfIGxL<-gG$6YyY$3-lS+YQRz3S;I#SRrAeW=~R6#pc1XfDK_%S}y2EesR~!`pm@ zOtE~^4S9=cOxdcZc#9bKNZ!`AeGX4L4#Ntole{hy&ng;|?GDi$U#^8z4jb6G^YCFi8s!zE1XtyNjIdA*Ua0+j!u!_r3IO1l|d z0UknVZ>hhl8()?U9&j6SW$|{LTm;t*4sA~wkGK-ZqZQA=2CuVx z&jfl#rE^_#77>qqdZ|A6;B7C}(-hiR@!Wj12$0j^=;za!r&HQ`1o{pnFw<4ejOwV< z!{vpkTeKBZ=Y`L`XZVF_3BbAtTWC$h_XZ%nD9@!!ounM9Vn3(0MbyMk`tl_bM}-$V zBORb7*cRe@OxGvX6>R9a>rFcT=M<~Yc2F(aT*;o6VP@j%9#&2fpEdQ-< zR3RkBkD{cgwC9*B+24fWT5JR90<*E~Ad>SoF32ZBfew7H<{qo?a=_!Ep)H=EbzR@&vQVF-U#w(lgvi_!rL@WN{zzn;F3j`s!3HiGmSY}&tjA+>}#(n!i3 zFs8-t`(^wVE^~yGs>A|J@BraKu}IX4G_MGEjgBYCc3zZ|6^fanRaVE4Pi5S zDBkc3C|Bu=Am#Wwd#!=snss*QG=B$SaI8B#!ENQ= zwK+Z$g|t*MPj~~I+i|N@ztXbp36ToHnI&^tXRGQ%mt(a6(&J5mMB< znLAB`>(Oy&0e%0#jZx_9S$Zh37j7|7n=2r$U0)r*RUUgK{t zP`}C?N#jyKaIL`BX$2!H3ZTEuhmhYYEHA!7ttm6gD-xkDxqbnjpl21L2VK0s7zQ7q zIy?yG>zI6Aq@{igh?sj7PBOn$Y$)OR9*KS%NqqC9T)X?d6Avo#0Apr(2_X6Nd#zH1 zzL~_CH;bg{_oI7XGgrq)iIO~f{RG=bT3K}OBg$%gf%4*xzgFfZW| z^#y-XV0?YblpRqLom(?NmX}GunT)ngTH1GIVqoT{md5R>75&|Y`ySH?>OhTEJ)}zc zm8wU}EE705xbMnM4q4Bx-#|@}#FnDSXJceSAY=mHujekHlV{9VSzkknTZU*5eiui7 zm~GB8dIZ%MI0>Qy?y#rbbEqqXH$!_H;1aQ1a_RdwH^N(Zt^Uf?e9#5cjh_eZ0)dl- zTTkHH2rl@@B=vC;SC?lrbB9j=YF=ync0(tfQ;QWxXzeLxe^1g61^7j?=F#b-1wftG zu;|7fJ&Jf$>aU)0hZmIv)wCo}s%7)k-TOKOZ#WA~@ISV`q&x^8MKQhOoC8l*s@`oN zr5B3yMjM>Unu_ltzKY%t*T3bx3#1*i{}UZ~lf@;aWluFq z%>JarZ|XU72wUw`=c;d&CfJ#d1qkE|q?Z!k;F1-KZm*dkQ_BqC=Z$Ht^%4~IfCE;N z=HEK=&pyV=qkbd(*`B#$`A`EUzUS%j0spxI8g2(x%+s21wu--EO0SZE4;>K^t zlcv6Qu8;-P2ttOQq;03q_ae!n_O8_sUV}5b)e4!i=J7hY1Z?SCs&zfyumTl%Y*}`p_`s=jval4!q{SH9=%f(XInQ zZ1~dM&CCf9Zk`up`0qYwc&8li%?_S657#RJDP+wa9krlq!UeTZ`owgpq>R->O?vLn zpSuDl&>_+3DQ6{^RG7|huCNnQLCyE|EX;Xu+4pE?VJV!l13aX}Sy>}GrGzU}w2na|$JD+6;!Rzx!c_}V9DiOwOFrNmz zGG&8KYd^EU&xkX3dG4nccH$W3x!MTg5zXi_1wi|+fY5&o&^7U)YIA5v+iiaqHgG8n z6x9N_7b$n;Et5PbElbNiGbnOCShN5F^GCLIfSe4U`z?b>Gk`g?w^ubM&j97=xY~)W z{nkDMnAMelHcrCDj{0#jUQa{>4Nv!7vk}VEtER4Y06hW%kA2?Mi9p}Q_dktpA(zfn`9FaX z0LyCeS9P&&)k&qcOuqgt-gvf|O`(2%Xc3P+A6v&%>|S2ZDn6Hf!}V@4hnfF=_m4y54>HNwlY4 zZD+i?$a#CT?XKCm@5S8im^bit8h({4na?rqH>#rD>|7zGq|fFarKq65&Be;g%T8>o zp3aEB(gPq^7Z#`lO3gS~IBJ|n|G!UeX-hQ+)Bn$OcHWWc{k`Dj(YJjq>bsdBdV2b{ z#rFL_`OyOJU>RoSe3Ma}F#tc8oRyXm-J(UD302KW&!mi5drdu!S?tjcJxs zn%{^f+Ltnv5K)7}uWs{f(!o|pM4{9S(9-!q+aq}cyX5(`q>#%l;{mcZ5kQ#81Kv0n zn^)|*)s?dEZ(4vQ`nO+L9SRB`xaTcPdYm;Hmq&odbyfhN0=`Mct%#NA8yLW$Jr)Ny z1LYs%Ksyo+YJE1r6Gg(VGYjhDs;D4Q(gEl!Md>0wH~m-GM2MpX`9Fd#W=qXJn`Z(A zsZM6xww+k@b|n<8jM+dv3oW8=Xr@3U>yxhk7lDgn>+UoUBSxVZSgU#j7b5lsAjQ2)kr7pYX zTDdkg!#TjP_}p-3TO&Skdm5WPW;K9LhVxtmp?5ycu7NZulO`>*NLc{N^Ht9ij z3p{`Wp1h9wlWq~VNY3S$>%Agx7z508u>f#3sMK$Wth#z7Ve@$-h~lp!?5`d>@TjOZ zTy7hwvS3jH1)i~g8eQuPT%JxmHM37N z*O30*(NDF#&`2*TTSM3fuQQW4MY38IrzQvG&c%S$GhPqb1X*mSeasoGZJ9~lCwZp$F z9hEKvBt#Sh^6rwMmTBR*>GH`y(dKJ>?^Pnl5ueLG-WdZ{fN+O>1iS9gy#knzF~C+` z=SF7Q7Wm{7+KV2ptW=u=5GTd@Rnjkj2g2ouV@BVv2{6P_Y^*W z2PtU}@Md9WhYJeI+)(uWPo+`k300OI-8x10YCBZBasi$IRuK-R-5Gnjot^4p!e|-+ z5GFoV-TID~!ldr5ui?*&0WW&z=jC~_C5Hfx_~L&Ibr*-C!R z&JthmwAl+784$kx{r%h_?m!gq{Qb~ACTlwhXrjQT6b^V#=9Xs4^qH0KP)8??OLrPH zerNWT&c`ooOsMuk4S#QBydbHTwU=sW19G(TOTMW6CB0L?g~icwJ5;tY=ZBJ?E;fMT zK|udXGvCjRKj)@9&t>^&!ol*AO{T0&ZY|$B_OS`=!M@Q@ml34EEcLBOIBU zn(o}pyLk5q*;;on5-nm;|V*9V!y@$7cSUsc*K8R#D6xui~y z*XYlG>ut2@j;L@ccCT_hK=M{PZafQbHHmyT{god1&9V$IE!<|!SGw2`<$RGXVPhw? z*<0V*8USYJjXY9=a!c00T3(x({z|g}HseQ_pgj`+F|G%At?XIM9uz5KQ{bUz=bc`a z!a2|Z7V!zjCG(}}LS{F&M+3tLLi;*UWKDG_?}NQaK$FjI;WhB0+po9y-Kbwr-J>J` z2GJ|b3$F $4C!v;`_JRrpzAUmwegGWGu)N%e8Lxw$$wZ45Ga`Z1GHz=e`FEO(vJ zYVKG3q>YNKK3=muO^4zq}>zR81Luz(^hpO~NdCmcf0YpkhI~O2jkE!L-?@tva zN-e)6Ch320)XSk85ohnhPe6Z60QlLyUZ@TvmJR{nOFjX_ z9gEu+E-u^4;zCOR3&)n4b6nJA2RRfao(qcqe2YiT_zCm%j2;mQLMa1mG~5joq4!qi z$(sSy;un&Xs?jEdZCZ>Y5BGDC=O6?LhZbFx#Zb%xT@Hunx4SA4=@*x@6mzUr+w*vQ%;mqMOauEE^70G zQjHj)!QjwH%hldoW5I?uqwHl5@>B8CfU7FtzT-5y5_kLd*$IxVemsz*mp8D>m@NG? zFkJyU|E%NL@D4h?Fik0toDL<_0Dx}Tv@9e()lOS@PLC>sb)20eus;CFt9U@xlzkAx zS&ItO_ge4Jm~20724=Y3PM0t_cXf3q6KLey={v?hEsEfQftel?&UhR|NAp|zlTUk%?map<5J2MO+#}{wm2GG;(-gj{AohT zzS*mct+WB!aYQ8^M+*-D0@zc>0&J?(f}Q`p0>fPl92|>J3Ek#ZNO+eOexKF+^ zLgJ%N`XJ7Qpu_)nhO{)x$+#-*9n9~b^?r9%A?SE!NzP|mSK>9v$T~1SO9-#>IAxk^ zvPrZ>BINkCTP_d(*ob~3;E=VFA;#-BR#1?gVP$8p@;;zyG&?m9r}-Aax7q_cTJ&Ko zvYN((;0VIEsX=}il`i-`fDoeP0tU*l(o^L;N_3TlIM zkL=c%h3`+)eD=#u0ceG$GaKHBd>ZR;uBtDhw@$eIdgK=y?$bq{e`7Oa*5gcx+-Xp! z0MEDi{eQ3jBjw#6|8x6~DPISmD-Tx9L%(Hl;X=!KDBR-iJPt7}k^(GEnXJbW{jMi6 zi{Hn0v8WL*dRz*Ri{HkE78cq!8ySD9oW`I3A#6DSC~p(ff4>FBebsMtNdzEUpMa~s zu}uY_k^NNg*m%i0vP>_@C_-!z#PW?Dyk+$JwI@`1&xCYpkR{;~Fn*zTz~ zQ*|m~zL24fZGbH<)F<4*Lu>e~<%^$oyR}t6qLfJL6q&p43?o{x?~Ll09-o-VD=r?i zjjZIii^+q&u;=?|P@2g=VV!&x+nn_rmy&PXrYi{*7f)D`$S_~uohG1B1Gw$zN+?&E zOu|nv2%U3(M?~QX{Q7{SF3LgPxnL&^j7Cv+9P8s>eYLwTx6By zYxxF-2C6+PN~xeq0yyCkdw)mmgk1N_od{TF8(eH`7`k8Li9*eV+{DGR@}9o>!=xI_ zC;IyLijpo*KEm!#_YKoH-fJS&c-^VeI*kaV+}9i2T=^M}aiE;MNI5*AWD;X<09d)Z z+^OGAaCvW!iW9{q0&Y$yRxS%PZ^NXd;k!E(M<()d%}`pS=alu{-u}MI^)EmL6#35; z>EaUDFWO|bm|mhIQ$3B`R6c4kGAm_#=k;s?glgSeV~bgmY%pQYARIheId#Dz1jQe8 zn&st_X;8ngPnuH!?CoYtn4g!{i8nLK6?+)hVqU9u^Y*-3qv&I)=_Vc%M2KD{kLpob zdv(+Gj9q-1qg4{l*4e@DHZzvUmTJOq5FTzDz*xW+Ma_-$eFx}g!%4hOKL@9dTdDex z0c|ezq}&{Zw0i^@?7J5Vql=Rj0G5ug*0=}3eA)}(jS!idR;g7N8{$p;M-}x+xBNA7 zqLZcix@wbr9;}&_w$omWrvzqMsB$4tVCr_-*C7n_HA~5TB4>ojGP-d?`hH+Kz5g@u_IE?i&@Yx9{I&@jc26&SBDBrQ~h2{TQx(pP5bf zY5{|@8Cl5pcZJ_2Cc>6N9Z)qpX43|W3J}Y(503SFuWBm~ETKlE8 zZqo{pOb5TL^orE}w=&$C-MdZ`{%E(*Vj2JdmYtYo(B#Qi3*#7n%p-$owlTMNRk4=U zP)N<~Hl{qh(es0zA-6s%#KlI#I@9;BSys3l3M2XAL{+$n8D_Zdp;)5yVc-M%6Ti#S zbn87Eg>~yfGxI-xe7sx-PRzogBEm~9ZjG1wB`pldIUc$>YykfNbsEV7Deg@bI%!f) zgp&-`=bBxESCU!SOA-)AliFJemUH!yOFWGSG;KcNTf?l?hyT6G3|~)Vsgv%AS{ASw zHfU8w8zPt9CbIskvFMNoz+cEseshy@Eylaw%MmwO^qfCn`u5Ihe3nWB90j}M>uYbD@AgFp6u3^`)=CW` zmV@pHYE~ei9^wr2KY+Y|`wB(!W0F`lflokhmvg)2=KYq%0CCKeT*x;dzRG6CZoEVWpXe9B>MC+!sqneZihxN| zyar(?L86dPAQ?N1NkxZvoc$^rdsQ{+g0j7huL%$I!Q}@h zY#onA@M9@8zY>#yTRL`idZROM>cL!N?b-g^K-wXemxo9F=3p~wxKZIFB`}5x_`}pz zAw7#QwF&;5NhZ6-HKi&vstigX{8MSn40OQ70ysjc%RRzfzv?aE0-~WuDgNamC-cb^ z_2c!}%$vC9Gd3wDynQbqt1ArBAC{U?gUP}w(C`rlF^2NdW+Gz)qFM0_x3;jnooHpC~ht z*2hB>cHj#bWP)!H6CBxNNl6!cwkIm)d46cJM$vd!v|%&)c7n++ZE)6X$D`S!wVEvF z!9#KI)~+4Wr~$y8N`@-#A0y2n?;V?TbV`Ty8+-LH7fh5aZYWZ7BjRwkU`?Ln({`B7 zdUUHV(t8*9eB03}FR`eFJs}(IUBk{hp>1^| zO#Nb7!uVL1-=B|6dLk3EI)ZHkbZqXYRc{sFKCXnVF)@9nqflXjJVmG66txYyqtvYT zo(>Ua4`K$PImumw0cX3HdT00ClgBt&k6>pM>9vKFOJlwf`B6GbH*u+)APOfpYwK^- z9gOMWAy(vs7~E4B0NH{a4HI`#WXF1I9el_dS)Jjw=u!*l-XD%0OBNplT;v>-D|f3H zslw-Ij2~b4b|_|DXSj+zmo59GTRPQD2`nd^dul3Le6wnLU=6+pI(;)X7;9haLq<|- zElW}Jx<|CNvs#BGJuv9z>7vi=cD?5|nx0G}GZ&^B&8Ad;V5ovn zyXrREYHPi>H--kKo7B!K0kDVSMc{y#hP{&=(I2@mo* zKEM3f{cP>IZeHeVeiV=AAg|{jV-@}8+Fb+Zj&=PAD1&{}5*wfpeuD}P_K8+mB8X6K(+W{Fd5 zRDar#JkwcU^;);it@BaVB@tA8x3?*#UI4+g$>mkkK#bosEc2B&(t4(_XatODYgZTd z&VF&c^B15-?9+6m(Uz=bc;KqWznl8a2v;p@&SPf$#k#eQ?US%zT?VXfxpWc9-U%lrNP{+}w=e>?G*sII0jq=efhH(50zJX}Zd^KM-n2}1w<2%!Cv zxLldSmk7)s1~D#~9BxIpXG$M2Nq&`v4Og8MmaLxGV6lGJ4V)sM!?o=?0D| z5SEhBbe>j&bC|%fJ8KecH3Vz9paT{d`^>N(@L&82MYcYcGbI@IUDWWk*-fo9?t12= zweq6_&U<{b$8JVrpL{eCg|qmG_U-2{4|XqX?A*fCll}qv$I=5c_3F${Vk_kwZ#XJX zhmwWosXDQkz%IrnYwG}S=pC~Gz~uW4Ac0Tz?r%kf+!!lhu#-r8pMkVhEK>+N0MDr+ z>FcDN^PW*H3sLDvodiOQamhRuN$TVw>}Ktwq3G=}xj1}#p_2pwXq)cN@1V%jXCXXz ztew2g9RiVL1Y+8DEhs!EV|tomgC-r|hU}u&SN7YiBH{Yd z5svkQ$_3~`3=jR_clF1#$A8 zbrQtsJ4Q9TFJv)o>#=oETO#Uk0z;8ji{4#q8+OQ~Kgs8up(%m3o~ssEC}nckH=QR4 zd@VwYk^yx%L@;0xbbTRmJ6`P?m-VYN**YV2VTiE+vJA5nhO@jq74+N32`Iz6E16p% zC7Mo(o6wI@Hi+m&za#xBQK~*HeJtWof2t5N3~)S5Vl|gdy^%g;E#1m~;Oug#>Iima zYy-((xiVuT=sN=-!O83lN!-I%v9C$(D8MZRM5&EEut4k+mhrd|d7A)uDYU3>xM*%dWv?|j2hJ#D=-`ZMBX z+BMjNhmtog=#*5eMU}Q$QcQwMiVc9)HbmC;^EsC;Tgni~d}*y1*3zkTho5sU>&g6G z)A1(=JiP-#!`xhyJ>+A`ld$7y323jVP>d;4};5FRuF zw^*mXeL5w_kDx%7G9@KJ!zc&5!LlTsp2|XNl3+rZLGUj*yxf1sTK)_Tr9)kQsqDS0 z&XhnWK`ZFqiwy8;yF=Y7fMr7W=89^k!et>hM!@e!CyqQyDLa`UEct5zngp-Qnips% ziTRpp1ukHmy~zK1uYq@VSVW+Z-}#5A0DjHLEYLhUFZp|eB6J9{L-$tA{wDoyT@dRL zR%INa%q!^qh31^I>K7hxD^z8N1B@sO9gFn%<%(S_Mq zy4WHy^T%}T^Fkv*s%K!?K>NSb&21N#J7(h|!MFDyX|6J(STqb=g!e#%n zGE6i}B0=W#`t+So$lHBAgUMXk5}Kx)ZN0fgUlo}0LeU5$lrpp`!p%Sf{OdGK##&$d zEhb^bCz(tu_c0uQnym0!ekaQ;BzR2_p9T(%O zBtF)u-CO0_qkaq3xGUkH9j@~jTnn3~f3||<3oQQ3kh=ET{jbtY|CO&Onu2s3W-Fv$ zEHz!V<5aqjNeE%$b>9NDOxcZB;#UA6y6^U=nU&|KGXEBx(mSdoFgxj>;b&`8psXHp zJDD%a4nPihRCgn13}PSbUfELNgJF?tR9o+q7{<|s@As=JEseGtz%#H5z1ONZ%*Hx8 z4YmvAZB#!VHoBX#&svk^bP2SBduyHh)RK9ff~%hr(n9i9$Y}U|1Ex|D%HVxVpy6$L zPT)#h4#^4}Tn+RY%c0${Z#nN9{cDVPA?$%!fX7+R3A}3g!$90xGVLBQWq5Zc6aJy- zx&6FuV8`E;3k_i<47Yjb(p9^ErA>Ipp_ zrMN68C0e8{>lzuy!USH8lYZND*s#Y~qS25y=($?aQ#`^#i+3k>ChnYavdcOx1L*KI zmFj*}HBQwFV6n$uog`Lhr7|DNEi!$P!#Ms0L8xU$(35X>TVCUgFN6bBxZVE}ge$d= zwetRKK5hVf1DM$wvd)4bY+Mtfl>~t=en$Ymv{QMX>M>p@i8#8^p}6g`xjzb~@WJ|< zsYPZvEL3q+69Oy8XGwf;X%ZFziNb0dxcR9tb=iJM2d3&8V5P3W;s;d$y&5JUyu!z@ zenJ2PvmZCU}^RE{$GflfVC>3CX>(Q*Bs?3 zhs_XS32g5`ruz zsQNXuWI>%w_jleCAQYJz_Gp2WOw#^0U)LsPr$?#(?4W?dZ@WL0Q{9_SszuS6L}ajj z90+81Yy<9wF^?OMD$$#-9`?PXMkLr$#MZKG?h_zgxwif~W42nGrMAs3fDAY5QpkTP zupcp*5(+(a;SgW{e81cf>KP&5E#gEsQ*zkx%n3bUcRkfEW)LG;q!jjdA9|Z#7MVImq68a5WB@&vCWSANA5!6rRSl~m;aG9R`{VaGLOgXGODS=@6^J*>C z*Ib_gc?(=2l7A$n#Rvw@S8T1_-eieIi(H-Z+p=SZ#;`?x54ry=>VaMT zhY#U-bp^8-OF22p?1sx}l%}u_L$L&s=@CK4s~^{~*6l}8MbeWuKy1Mru7yP#%J>k1 zZSqk@;1EC|jL)CQ@9{woN*vN6Ldn4rYpZLo#QA;SpMDLa?f>V1Q91yFm=MH^eZ<_^ zbvQG8rV2O?hN%96+W;Mv)YTxU_3_OHP}w`4K`%{j-c)4v>aOQW^`l4kXL1nnk1ljk zj=qebmGNN618U){b%jZ+6Q`Sg zv0GPgkg76Bb#-yuU)Vameo^QEIIyC`)4af7SixFEaa4g+KjU=H3a&>W`>;&zSUsSE zSXYReZD@fS3G9ZSqRT=;u!)#@fw$VbRFK5q+LoL6rsU`$l|;ZV&|in0>rH76ZC05# z4MviJ@Gg`E$_*h;sAjR^usFe7axJx%D^J43ypEbK*@6s!9Yf7oBE$ri-r6SF6q?eZ zM1T`^;&oH#*Oz&Jg?TH&trmXKp&gA2(+5#Huq}@=bB9fSfxM?-j*@rnoWTUYR8 zE7oCHJuh5qv~Mw~Y4MrYup0aIDX1Xm%a^2}oK#N&eK8>}8l64gGwLzy&|!q=ZAHQh zn}biUtO*YSCuqh1(1-8zaKtP0$Dry0&b21rCeM?uGVd;A+Peea%zb7L;gzr66mZ4RNsLg^j{UX>9aAjg0X%sH>45C(3+50x^>h0bf&d#g|35- zRyrW;`&f;yzU@Z|9hR$XFnFSM)>xr|l(MV62m7*4;O+M1VMUOZ-zO*XQ&H{_#MQEw zA%8vtCGn-@zEAsun!aa1mzTx)NXk=ZT!!_2UPg#r(U-8SzJuo!$A^Tr3)I0TO5vAJ zyD5D7F57(kw?|+|5!88eYtmZt7u=QJTAKnzgzZZhE|mY~E3CJkP|MP5ytBKjTl?C; z=i01F6g`#G_j({9BZ~J&xf?RBI%Zq4|MLb;BB8Dr)n-FZDLFepKOV2Q%R}}l=*keR zaMW>Js+5K|IqGjFJ#=mF|7@^H|0FXh5ejOLxMiw|`pQQ}J4gQOtkYf5=qtncPgBGTvKiZf&PaV4`%UaCMR`Z@LXDH9@*mN@#e)rH`^_F5s7u|#* zvlQp~%-y2zHaIULI<9^;g}tNB+uHJNy<&RFyoSs5GS%h3$4~9On2+z_=Mm!hS}1&D zAmQU+OB+7hoilLo1Z~l60#S4|rIYu%=Jqj;oS%LEBai|LA@i=-K2VSue1u0Su~?cubV|H?aAf^xn) zOaJ~9P4puFZ4^%@VtL4lN;6jh5|RCH|0_f7FWzbg1DLQH+luVkkmGPrL1*f`w~W>+ zrCKxj#NHI%B6f*KA*`7&Um#*z&^i`2;WizylfeC4JlwOA7KF96A_y*bNO{5Qe@Y98 zcNHg<81f~^>U~^TT6gZZO4r$wAGxPW4?EZ%@5%&x>08ew?U`P24*uk2j~dShjE(sW6Y z8iAy@n2L4bEua0g-b42AHR<$rn-al%c_R=tLh=SYRGCcU!;Z0al&eShO4$1`9*2mu zVas<0mw4r>U{2q+D-qlQ*a#~t?j7C!F5ghB+r? zwEClqegw&vThb0!UdLQzGlQ6Jq+topQVi?w6K%1ci$#2nBnFX@aOzn;;a)P43}uhw zEwV}|iH2l?WRK1L9DFWJP!wvpaFVE+jumB!a-C|Md0sMF_)P0`eQGg=S6k*sie?FZ{B9M+{nBG>=EYR0rVXe+s;y=6TK^x44ZxM@LyE9EiJ0- zLWDW9$pSP@mnz{6MB?v43&^rj%IMfiXHz<*8}f-rvV4Wd;(q00BC{M&vK0Og2goXm z;dgC4-AMtFMB+ft0i>ov18Xb}ye)Uo<=fUAs-CNrTSE9tj=lfi7cFzw9~VK}V)qO+ zDxA}}?HF45SYv5-$YyBcxw;%I>_YKZBxUv>_MMMTESz%~MIPPcEV6dxd!8)3KJcRN3@H9nx%q`m*CE7;u|e zHcq3r(N!b!J*)mnIKHo5O=cDk&}&; zwYpaTg6I(BbUa$&*<>s20rv=eQv~t`o!x8~9lVyBNG$sF69T!eORkD6-j>j_wd>El zqbeWfenb+C5e}%i?3dr+Y#IIG>xbMEza-Iqv!tTa>_}M#X?Dcz4{(?A3G2*JR#cd} z8Mj~H5!!RNL`JwQPi~%x$JUzwolY-T(Rx1P>m??FWn1P8)tQMLuA?g2uZpb|**Bl; z4!AQ|$2yMtu_KflY+BUaGCbU2Up%lV%P+<&jW7r4-+zVa-}qZr0DV{?BZqn%lexUr zT0)821_pe9%31JWi|uB1B@L50y-Ly1WIW3nauLkuvX74=o|k7FjD+l6Z>HKe|L+Us zNbq}B4OF^4ZL`(w%aF|K^IFY~CEdgrR*@BV=|2rjbmbT5N*Zaw5RNf=tHQ#~cV-bX@eym_`k0SE?=Su1%MlH7)UI&T?UWbh{<8Fl7s$~W~PL&KF|B{^N zeW7&&*H>04C!rBy@-2V2O^G)fmJG!A#iDudE~c~@IG%J&e(;4SUA7ExsLhAe(iY;2 zE~2?JP+7Q^2v!ea_cXi%+m4WyDnA2bVB)zh{$(=8aX*cTd?)vbP>>H9XF_!VR`VcQ zXf~NR1&IU=!vwvf6#p`Rjo}?}xKJle<87ITgb0M6#4_z&2pz>V z9@cLm4r=C)Mvv^?rnY5;^N`MGvz?J=lkMR=t?ARyydM(O!itECM>vAHu+zI%29f+l zKy|CL(Y`YAO9|G4uvjuUaU16&@j%DbNoKXxU|^8Ir1=-P;B?fa(XCq@0r(eQfcgmd z=146#ch;Xs3{R~wnbJA`wg2IbpoJ2GRSQX@CU+fw+MpBfT?_Er)Q(~za3s_|p>VM} z!UXxqi)OhFzV?1uOW_N%b&?k)A+;IS-oyxeG@b}gap)` zc@j6+gB6eU5mH3hr&FI!E)&b7&rCg~M9!&)U*58;11Y4l{D=X2L?3b|gOGaP#YHBj zz0J_+n|<0qq6IttaB%(7+32;_g-izJtfI)wBWT-&{8L;OW*qeNt_Tyz5zOoX%Yk7of)#J4h z4E@nfAG@%rIj4^VU7RvkrJkcFefeP@c4szJ-P_B!8|jo}f!$5;U1L?Yp~3`% zIvW|xTYj@~dv`iCYC0L_D-&FKWE9#hrC~R6ZiCH4R&GL%AotQy_I%xwt|7SuWC2^wl2;HJly z%u6WwEuJ;UEthxh$UMsxZgj)>^+pAsY7ZO^qvN+*=ml{#|Lx+;SR}bW<&nR2onWs` znw3cD=%@Q~EDhc=5_g|of42BrlyAWlfQfD*XJQZJ|sJ3%VbeK zW1*v}t-j~&(`c;bHZ3Q zc{H^!v&{9z6D6%|S|D*@BB6-#Jcl+V_SWFl$ROBDn_P>f4A8SVhRs3bWVcIxS1b5u z?37U1H%j|o*2?iA#(@E`%uZ|+`wGKXzvy1E7{6D#kS%X9O-eeuUcOuJX8 z+KJucwfh_U>-{a-7$ESbjbeCe4YC(Gog3*-Y(6m~dPi7CGMoui435z1===Uf9cd#~ z4bTgelH2<8`KaT{pp7-$Myrh1n=Po@os9|DN%Dx#A}Ec3!isgVp~hvHLL0aK@}Pk4o+0GCTZ`yuOZ1l3=C&Ut zPK!G05q&1r1D#Vlxce~_CiV*XLY3)-ZNf2yVMh=_r&RW!JCnN>ba|=ed}so>E!uoa zO{x1p(b%7DmOPru&*o(icQ9$Fwn!c}+Kib~{U$sl0A>kCTXjh{OMRv^YdGe-}Kx;4@oR zetwVD9gKj03*0Fw2*b~zvV@(+okf}@HAhRyd_&XqpNE*KW`B=G z@{|e=4+OM7kuOY0%ybj)MB7!OXCB3hpx zE^414g+}*}&UZNpWcETye({X?TX0Pg2lx$axN_xRw>A(*cGi?R^NyqLVON5s9q+4? zQ+bA}?`!G=|IqyG6DFDB`(qI755v;Hpf6O-31<2RUkr1t>WwgwIiQ005mxkE=9U)z z)9}fi$f(w}#P3(0liT41`YPmcf+Hbz#X^Co&pb?GQWx;KElen}cp#8tFVrH%F$((V zGpo!9P;_v!Nq2sPep#z})Vwz2Io)L(NiqF9>tC*a%H5r_$7Q;@*+RWZqZG^mHSidT zI~G>(ttwLdmg%2gmXX5^85ZC8SGX(QEwdDPAx$z70YaN6lJD0-t!=2-AOn0aa`|J2 z$ZJ}hj~RLHv|rY??|*HEOemSSo{G<}xM%ar7KN$EU2FBQunP|blB;dPyQ8;Rr=3$o zP(Hd0kqval-`{-SQxCBwQdPav`J{`vVe+S1<=T7z2t^DPD(hAq;yrQLaLu^$wWK0w z3n6Q-AI98#zuR+#|07M@?JCS91eKcXKzd`z8U14PEc?C%vAmrnCwS37XEL5{6c=;Xh-C!49I4q!Aj!+?h%O2;! zC@gd&<4>%mTWecGED2t_9z(&tbUf?fv_C&x%jgZhKHUOZ5pPr9%+t+299;utzQ;Ja z(b&gmTl|G(TK2*3Jcnu(c;?+b}Ay=;2QfwB7Q# zsbtQ`3nv{E7-Zob5ohY)=Y(znvhaS!&XDZi67bJl3GIii{wNYNhqG-$C+n(dqQYIB zYCGtdDSUZSR!(l}G#~p!R!K>AG}~w7CFmEyxC5K9eDTr)Xs{Q*`cKg=e$COp`Py|- z(fj(Q1KQ#s$q&p_@eoJ)6M7XolFAFBCnPMLk3wGC+<))>R&7VXkgw<^53JBLPi}~X zGo#=GFRP9h(!RICF#O3Zgm4;7m=Qu3d{Xljzg+S7khfk-sHpeXmo2*Y=zBEjII}8; zeN-%LV7FATW&!6a>v`)1zx^VkJs>{-G&5ffGvR=P7T9&vxY0QB@=W)NS~B*UV8#XGCq*06OR0Tv1yj0W|Vzxp^;x4x#;@CL^cdy z90YT7HTquEy24NciG2^Be&XxnXqt)}ddp1ZUqeoh8>K^gMKYjK$ml&^)rrqkMlzZ? zXvw^fGQBReua6m`duv@djBU$(HB%Pdf+NX{R8@R#FY%AqNl@Wf7d=a;;cPj-bHA3j zS{GZVmcz;VSScgrB=FcYg;`UHWC;G8aQLmg3;h(=#mM_k&!Eusmiq(yBC46Ti(Y&` zI=_D%M`jz}@JrQqz_gf8pDr+a_!o3$!-0Ac4xlb|#v+S;Y5_yO+j47@^5)IUr53!`vjs5vs&++tx ztpqX-ferCUjA#ZprBCg(OXzJ z|E>0EFv2`uPFXqDd?+=wJg6@4huLcO^m+N6Toa)`xY?{Ip{CC7k4p%Aft9_Fxd@XC@vJ7a|~ZRTxqI39k7!Y&Gdj_UM2qfj$(#56-L>w&cP-1x ziZOGXv(G+zf4|T3c>qXLMzZO)mQgs5eldylN1$ls)L#&h;|{T*VW_xI?2 z)3EfK6q!!(#I+J2678R~JQgIz?4-ytm1BJ}gb5JK;|~n`8M5%07~9aJ-gEJvK{4JE zl61iq)N}MaSe=}y8()l#TNkMYEQA!R-Q{p$Sf97H(L(GUU_gZq$wreVCr3u4((y;3 zQiq}2&tVK!VjL~h120uW^q+vfHHBFLwCdTp#ZqcD*}k|w7R;nV=y?EUvL%-#R>H88 zH_6?V5!M&Y=yIx^E*~DKm2vzU9$#a*jlna}cCu4-UNogjn#C)_B6GoPHXxHmJg5{Q z$<&1>)6_{)v0T*;sXXDTWq%|^HA%}9_hC~^{}+{w@T&B7f|HR-`g6h~Gwp~u-y|yMOJVQr+TyehzB+P)0Yh>Fy@+UuaH5`TQw{%pvV}|70qY>u zj0$P*(_MS~S>T%ZUZX(7u4`=J9~!kpkFPt5J^pFw{*6gaCxelq_v79u5qDQn1_rrs z2Jukp-0NJg+E)36bk;1#FAJZ(r{&enS$MnIc)rL-iIMK0ZuGPD((A4jUCPeZxfRO{unU2n@1l-z9U$u_BG2%KlYiLa;J{q=Z!Ra^3?eZ5-jm zUa=@WL_FZA#RC<7P|IDdZ%vBx&BK+dUQJY%%JV zt;j0zg0srz_(IoWLTMkFn6NG>vaP# zUGYwzs!a!PEjnix<5BSGuVfBFsFBq+Ry?17^7U_-j#deYEf~#mkdwg@Ax&y&=8W67 zJ_T}zmvN!z7QNSSE$&|D?CGm=kjAtM93rwF^?UpRSZr%tfmI_CXvA8TpDxxeMxFyf zpyqtJH|b;wx8`80D5XVQWM!J?;RdaIigA#2@lDSr^|!MYSJk_dLz~1A8mGQTnN7f9 zVd4{ebW=2@`5o&Zx(lN`iI>8>K>)0lqtpKq1#F-aK1nxM^66?>LoHy{^ zLx_e3KAZ0r=0s-yMi+iS9Y$A`1lFbtBqBuvMr(zgzRA1!=_LP_#bc1sT1H`y*NSIt z9k_)D+IZCmf$}MjtBqKuQI^p|_|_I4m3$(q%t%l?qhX?4PU~i9=Y)+t=*_E^KY1{1 z?6SZY=!0$t{BmAswRkoG5Tx=B10ap|bk+_Ex^p&8Oi`<9+3Wf0-!`B;7p#>G=);W7 zz34v|OZIm?Vfy->;nb>uAU7E>-~1&XwMbMmo7`Nzwfdu%ba+4ZG>#)Y4QS$KR=vOD zj&k|7aOqKXo0;-do@AIW*=W^#;Yc%LCoZGi4iz#f(YMBg$UJpBBA1H{!=>Wnu+z75 z;o{tGrih?k^|AI`?u@LE-ohPNa;cS14#JDqsiA zZ%6Zq8qQ}we}O-#$=q1grzsA@TR2`+A6{8x>Np9Y4Rv{N`fJw?kCL1}=7)Gv+L`$gi_4FnvG-^MYxfoEfK0l-e70OA? zm3%Dze0#LuWASHSs;|I#XdwUKG^l2bm{nWfMoXs*H>&}pBbyzC;+DT0bOG43*?Kqp zUHaI!fjgCNhKxG9&4jPqs|F2#Wm;=mz-n4QF8-F(8d+%*!*yh654Obn9$g1-re>=Ut9|8!*_>CHKxsWixzu%SNHdE#1>8z7ND*Wu2e;!9my9 zC6T1Hkl^83PIy0~^OYhi(~K)*_@YE>>|0CF_%Z8dfqR zWS`}8ZO!2gr~U1FFc>w}aw{fHv2;g`$KiuCmIn!ngJjsO2OJY5kL=&P-c!j)1Q`Ny zz@@7A@yn+FECEW7hj^bB3btimw)o*`gqL+HC+89GR>m5t6Y7@NVxO@!2PH>I{f9_L z#f5uCD&qh=n93L%$BuXh%iv}Y$ARYlibB5|F3aFQW5-l4r#0&#m`1?&5Kz+v+<&8Z!54}&Be>ta6L^;+$P^v~z6 zpCfs{T%*>D3`l)_71P{7E)uClc(NHu_-E(2)n-B0#;8o}2D26-fpmA$0AlVvmzj@? zVO_yTJM(7CZ;VJN;lU_}V0kIDn1b`vGcZVn3f1;xZ-poL6=`m+uF>R=MF9YDWfiN? zZMxl%F$-GrN6&`lbdd#wm*WmXx;;Izxn)#(8C-{TE@v;js zc~jnX>`$La-uXvI3)Hlfk#7TYMkxcYE@PNW$3$csZYS*>;Foyaf&2x+)jwMJ$}o)D z^=Rlu&h)1*Vw)6*UpdfktOf{xAINmRvM3x*jxlLq0aPOHS&9I3XlsBqEXSAvegMf!X zi|FB7_8iK*RN%sZ&(m9~6$mcL1i0)202Dl6C9#~~4~8dvmwxWwzp zmJfN$Bp-x1ER`tW!kHQ%c`yq)lTX|2QUu@S_lct+_fsdk(Tg{eB8oe(c9{p`tl z3Ef9Lv2bmbhM`k+y0_JKBc}aT?9-M{4jvnnrHzNKvz>-_KSxq1k#Y!X>>&0y$C(L@ zC=Ae*_yib`+c(PJn!`5RoBQY^ott5SVd0S<>k5h*pKYnn_xR${h*8~P*qH2p-tfN3 zYK)Jgw zfUS_zbNnIDXGeuDRthhNo}}!S)34H5b3$Y-u(nY|Q!A53Lr>z?AFbLTi}YH&8SrS^ zIL#ck@9&5YNa!KC5AL^fzs-Y=Sd4VLH2GK9`+N!xMW4+-1ANYxJ))G;h@54z7~gLG zlJFfsLQw=+^_EVpz-qU{H_+7-y+z~eq_f#6$a#Y!{$gFFB)r&Ocv)9E;{}#=I59`r z@{1~VU3Czx8Z=AhSHVSTl%ye0lH6MZjE>d!Hy(E4z1^>sigk=XiK%ArAo0xle!!0U zYu&1Z!@;g4(QU4=j)!s2@ut)LGrUoEdidOOgDQ&}avp8nGthRGZ9BxnXg{8X00}?i zG=lS+9Bz&s8Qyd$!qX1n9Qs}~{l)#2?WdAcbILt2Oe1oRZ~;eo9^IbI`D;X-6QvW2 zKcCT!X+v)uWUkh)`!97@F;7#O=BlhFQdkYM9s1Bb^o;s~)2Vw{z6<7*t_T@9$!a$q z-h%4I#|ek}e(DT;YH~?UZyFrsV;yH+w{RL?XOtJkV`np0D>Kd9VEBwb312?7>Z_-U zPSxSpkK?(4W+>@;?ok5X+xbx^O_Z+}tD4k30mBO%> zf-&V)tG9LE$c$R;_v8{c4(h{48?Ik~IAyTpKOa4x8V{&}-aTLM+-Scie|l>a!NYfE zpS5&@47k3kBkwyE=S;}*t}Ra6$$yll^Tyu)e7F3j8Pxy{c{bR5#`*A6`tJ}n;AVTCcII(NLN3aN!rK7QeACo?HhD%KRaNUpX2=CX3M5~oqW?0p3 zgN70!vji%w`9dAo2%vreq-N8gAznytiL&Eobl-qgK%ht28R`dEA5?XweQ(36TRA$T zT>`V*-pg|_`qX@%&9ONB(^9@72LZRu$uHI(&XeQz zfi#;m>iV?jqyz}I=KLTdN-VphpVke4iU&i9Xf}zJB4IZGg zEN?m7$rR_2TDZZ;Z3JNP&gAA-Q8%m5Z02Nlgw~9sLhr+q;&)yzqyPpqCpBqisL*H3 z03P4~2yFtH5NY^{Z>7cN5%Qxq-+3kP!v(TS;Lu4t)C&@dkv^+R`XSA;U%PPtL|4!> zP*eTR#=`1jfc=5tBgUmW^Ho-PQ_w97(B>}m%kMZgeob|oOE0K>70;uXdbQOQ_x>sq z4ar2|&K+W_lLO63bfcK{=;tS$fjxQq%gtV%#jpE9C+%G*g8Q@%_-SmS1{|gYe5m5( z(_aUSSzuf6jm<&xq0Z^&XTsl_KxVM(g60~HWf0Ru-FtOIXQ9r4P{-^YxV8AUMUdKuj#Uk2E-jY`w#4064ru`2Moz{OWzEnJYL(B%5g*%Eh-YW6r57R^$ zHCPUgJjxPFtmYqbjdwX%f74Hc8iPlY8HW8Oc_eST7xPmc&<}>6FmrH-3b(jwT@c5MbV3pGDLR7D&B}dyXzb*O(i%9P0G5nw$BAiE%)< zC&K7{$kQPTGr}rV_*1cGRP<1V)_f);&3UfBc(O;aR)a!mxh628HNOcc)Npcw)1ogf zFvu@png6BWscekVgtD^7SRE-ORfoKy6_k2estHCZ+if4uo2S9e^uzFKsj^$hblxu- zWn_6LlH?so9@S!#4i0SWNbc5X=nV-ie;Cu;-nxfw%x}wsy=Zh{d4g~EsmvZLn zT?+ZN3dvNJN!!u3(aAbE;3A+U3U8zs6yV@fu^`U+MbbVg7^Q{;k3}KGM{K;wrwjHS zJPPJo7(4!NAvhBvfd$3Y!8#6UJJZ#v`9Z}{6F}0ZA{2Z!n!>yLSSg%a?LkT5Q4lSH zlNPB8crCjjOpy9cW~IV_#2vEv)5J((>lh{>#PI>v8RnzrausDhL#Y@lnCsT~Y@lTz z_2~onC@Q)bj3H|nS+lFZMJSO@wnj4XzL>uy)L@Z+@%6iAY>flE{QG(1@dol_pzUnQe~4`?^XnKELtnx!@j zU=Fjq zccHnJ&#;l&-l5b$8#9Y&|EZE?rWF;!<_&TIJgANgoEpDDTbrVfY7VjlqL`d)Vae{8`U5!M zKg0OJMS4q!CYtW~<}fue$x%XVUjJ7_cmNh2vg!Oaj1~5HRb?}%iF4v@ey)>&qUyN5sfhB_BU6A~sqOauT)_5h= zJn!oPcASZl>EB5M5#4i_8lYw`-7F#~@73AIj4#08hVQd=ZNVAnSe3m~<$usR>v@p)zF+I@akCKs zDHZ-@+JX*1K_w4Dm0%6tRqn z@Lm=Tye#!bn^sSX8XeD3Wn(@%cngm6&lfjH2|#>oOHoyse*qhO z2fxLQ|NEV_%IfOs9JePq_#MB&S^Wo3G5+~%CuaSfLUAm7X@voq@NvLoEEz2>)RL5} z;%P6ctaN5(VT~i4>RMSJqIFgHdy&ZVR(~flapMhNkqbJ)@F)c60KLYQdhEKdg1D(* zY}N}{3E#RG#gF#xQrW7y(e}GqScD>;x{GD-;%$7yTI($z{I3X|BJ+nCQ&?Q7VaD8e z;i;T5#&Iq~um1HUbT_Q;wZOTblf-a!bo~4kVN9pZXUZ2@wIVwU1~GN)!NT^4kpk7i zL;ydRB_JTksjM6wcc4}NovenC`+N;za4#IMu8VL!B*o-7bkkF(2e(-)08UU9*j9khLz%l{gQnt>&y-z3Ag&0jR z0{ALEeze)C#@Ju$U6Kgb{`wo1oQFDWw6?O^GejG*0t)aIW`k@~9~(}m=L8#Up1jg; zAs2Riar4$KHZoBbSY3QVlAOD{#_{|=7XyGXh5jRVE^AAI*fz*wPtSjYc5U<1e@|FM zFZM8dXBVS762|lQ+8_!s{wHvPjh29rz(&42t4&NUb$!d?-#?*h;eR8wU?BL@_DgJP zDs3HrNdAj}awq|S%|8feaAE6i!$U*Mv5NtwGc+u6fqNTRUYt9rT5#;z|0fo7H zFsWjA_=oQQoF8JH(XjCFxWIN;=$LSJwvLL^-{Nb*vllPoFLXg#KwNtuOh&GhexpA3 z{d*bP0U7>R`Wbib-VOfc`uD|k0=4TOl$Wpf=;DlD`mE^y74^tS-lrm{`QK`8UC$z~ zvbJ_(&ih=sfWBuIGjwvCoSQNZ4&~O!G6lTtc}DlTI^|6zFc|*a$J!>a+_5hY@vrj& zkVPNw%v}mH_ivJ1<`Ar`3>ypy=U$#}#5yenep^|Q5f$}jvXRs%prfasUg{cHkry3d zb9}WlkyGov|AR4)P*s`kQ1?n$M(4!!nDEaz&SMy<7H2Hb6IMC;K9xK8qi#_#EgIv( zm$&jvVC@$vDi(5R@Gr6rm#Lf+5tD4tTCoVY8$cyULl_4>xV{#x5y%nH}+H#=9o zXOm8EVX+a5K+uHBd~sZ86=EKzG->qfZb|D+72nX{Y}w)CPuFHY|FY2@pU~|quaZ0V zX>3vP&l`bU19$i2i_otGcUPF(g%x@Zc~!t2eusz%+3SO?(G^XRKpTRe{8qx5=&bDT zs9V;y(RNlU{BG6qMw8{etf65n9UYyzW+Va;cl4Q6u&EmO9fI9l+0+zFtK*8r@5i4D z$hT!66r3$$DpM}rj!r*jJP-YIs#W4drI}e+;wC32?N9C3jKqD?5)zVRWMo2{j+6A> zu%EcQ$0ns3W&HQi{otcnekNbV*ScTN8YM7Ut;2ZmB&i54{+t0Olt;!`;kvf~l=bh$ z{QD0l*QajqzZ3O;KU7(EQ2I*^{yV6^DK7X4(CL4F^}pX5{THVG_e%V}9+pr4=XU2C zFcAYI_!``btg&NH6L5*GJa7h>F&rPy!{J7ECsJVp{~51ALC2AP-dK&vE0HWo3U!2++{XYCr5<`MmWgp1p znbiBnmuSp8oZ3AjTOq6xY(c}daagVIHYnhwTG1{L& z1m^gW(CFx-(a{$LYNhF;A5`UrS?o48ViOY?zA!TrP!eJH^!C~`D2u9#kZ+9Clpbu( zPQzlaQEKe$ieUEp?5UG>usg4J|J4uCYx2s*aBle2;4r;h&bxP1ja|94{QMe#>ih7s zRK#^HPUZs=>?=cZq|b_qiXJwq_1_qJ%)y~_O}YgsOI%8Y`T5cc2+%A!IazG_b1m2? zz=cRM4=Qp*BH zni$|Dl*F(>=iNCShWS_7x5)r}&v{)xYwk-NqsgxloyDdS13hMh-i5LDC72k zQm9p+Ai&eiSs!UuP23mskd9-Jr(OtEIwhe^#E3tG@&j|V&!b@aaDP{Lf= zjpO0rHnZA2cvM(y?eVKZqcmhyZlWzSGjn236cbx}$ag`HZotTTqv&-y;s^@vvNg7| zZBkDtu|ykaUt;V;t;0#~K#0k#ltQYiS|-*ofPg0!xKjh&=(~a z^mw5h8)xHHFa+c%WpAd+GWl0aVbW-B$3G0FDjl+mwCj|wH%IwAOLQt}0ni|_ETGCxQjOK?j_bXf_zTjB5-liz;9*K7Cp z4eM0!zjt)OP}%pd>4Kido2hm^(U<$eD^_|ZVXt==L#{pAUu-X)GVr_v&no>GEts=T zK^D;xw*Pf0$n)f=&`CBMW?_LG7d{%9cupt(^LUR^Sq7saW@bkFdhJL4 z^wo3l^stJd19hRtQcpK#q`N}$?Q{KWrF5bxh1o*zC@LbklaFuzd;q2u!zv1Y=Rh`d z9rB`CBctNklPAUZr}m1Z5}fvOB&LSUx}xq^RW-xI>hC=71Wz9pE}v-h#jw4Kxd{VS z79&=zogG=-!h!24578T*Un!7Gyser#Y?_w)<7ijL;$_zl#)PjS+3jYRDod+PU_D<) zz-%+7a&r`~=Uz1)AZ;(Ty`gyM!FulZcP1U!cq41yS2fW?;Wlexh+=UBBB36r=z5K1 zRbNkmAn(TUvpnw?P@XM^$I;6r0)pw>o4j-n*&bOrdN8YOni{KHRvFJyG73SN;o=OB zzkTbbMjTB|9qj_Pjtr1|%aee#mdb9X;rrtwPIPn(!8Do&ZZ-g@6DpHq+&kuEZ+&Bn z-T`mCvBC&~dyoRhfRhAaU{D(@PjV1$-0<_Os0daEWJkJ92fs;3{NX#@aH~DEW&r!W zYZU^}qmu)@^$I%m&M{D0DcR_B!D2yam0I&fF?V3j+}1=G?ann-3lUh+mq#gE%7#_R zl{FJiWP@Gr*$5_fn22Q;NTfjiM3hnq&z~~L^hWt6=4F)IHF{^fpI{$vp#+QZqb>L2 zC`U|xS)*dKot}9aH>p(nrVrTYPkMSKuil#HWek;^Xhzvu-U3bXxFZSy_0+y}ZaMG6 zUOmkxAK6V9Qlh;xi;KO`v_zO*ki9Fy4vvo#TF`VEbye5vK{91gLcP|Bo3{YdJA#C} z$2!r+Zq!w;R^RWL&y|-IEWh^2Gg!?mBDG8<73+y^-Xgh$fAjBUIwiK=3$_+ zO)t6NwYx`tGIu5(=gB)=U@EJ;pzR607_N>-A2&9d;t-qV$4t$cKZ(2WuS_PV zLQ};acdBpQ)-AMy(@VbTnW~%|I6=3@e3`$*6 z`Mb2LY*}fgqT;WaRlP5ZAJS7sxgoasMm3h#LE;hbA{IvgcT8s_C41A^0Y}&62i3y9 z#c1`=Tz0=fEIW8YCjB0p*8pFKYHCvDbLadd_>fQZxe~OO1S)`DktV?R$^A zVdWzF`g%Mi{Z;Q9_rlKizc8}y%)I*)U^2Qsq2P0`;_OxL8s{o&H5UwX2LyhM^2b==Z!kMgv! z`5$!Nn*t{;&#d@M&%sO5!_Hc8eR8RWRC=Xw99PQTFxbBPT z_lQZ1i%z7@HFOM*;)y1OMbb^r5u@t-i{{)T$+KTz^?@uk%2T*|*p)uT#B!L4ulMRZ zKN*^zdPH$^u2FP(TQjx=JQd{JgD2~mtlZ8OY#?tUcP>8CV=(QBny&jsZkX%lXx+z| z?CNQmQpFR{D=;t$TL#Z6wx7rh2_z-ssO{Y7mb}_D^-kvRsY-#4SZy@cF;wS?RMxK| z{Htj&vz4YX(^G^;)vh%<@M>slOh5SLw(&(e-j^5qiFNj^9a@8S& zQl3Tp#Sbp2JmVlqY>1)KAha4~tHyyM@WX6_TPn$@)HH?XZ6rlQmNsmK`T=#@-Y=`J zNG=Dn>G9&dt6DvOcM%@8Jk zbr{`En$KRp=Gg(vy<*g96a%Cf`q!J7nrhy;hl+!D)sr<2;E>Pa*8#BJOX0=66>;aq zw~-zt0U>x(bx>#XR34k@lpErecTI9AASC9*G^KD(akxl?$L1GCleK{~qGUq2Cj2qX zM2R;myq0LEL5`OOa0_>M2$|u|o>xu3zFk|&2QIV9(g zl*0FD(_<>4tM$ddSrmJXiS9%>#UX#py3NG^?^G#~gJk?9x8=tJ6bl?^5(EzH&(suS zN99ijq(&ES+bq{>Dhg3PHin1Bh+eVk)xS8}%)qWYSTQg5RLuebtAaZXV0ob-AbyHU zhWy}?wGDH?FhVbfka?V!cNv4o6$W!qw{|fgcY3%ZJ9VuBAt zO$QJb18%Teh)p;HwkGzS-KMMN#-q)`y$`mxWVl~#zb!5gTBaO==Ti>jnsVD%TC72c zAx|M((iy*Mq$sNnUga!}us?Lf&cq23X2yWdN?-9R_XgGaKQFW1PzIWIvu~kY_u~K= zKD9LnB9@jf2Vs@0B%FYi8L&P;uXLMpmr6ff6J7z0x+-a6Wg?oV)aq22kRZvk=aTJl z61RvZxgn5Et2*fw$%9*{*c&)k=Uu`nk6HyZbFAo0DAq*#MDnS0XbUhyQE50MJupyl zpW7n+>#1-26f}_^8E21k5*~7V_4kMiz>vx<> zD#|jG^j;5T%}!=GrxXEIz9Hi$ZnJ^61}>uJTf+LjQ{E7RUyQ7Uxy++S?zUSwi7pp5h9<2B!Y`J89l=$&=)J`B6HCaB<4 zxsGQF!3uV9NH#L6nnnFR;iw@Tu!&Q{o0YFe(E&R5-9;wV9w{lWLyCv>eFLY2@pIvd)8 z6NriQ*6|9v4}W~r^D|QDEx;T6A?A+@DTisw(PWf~3uTu=zLl}|z<1EHNO*cUXr&@! zOT90)_PQ0l9|~W!=yjV3{n8-pg)r>At>xPaZ|xi;R(2SEUkSCitD$w<;SmY#6f%!% z&S!obaVdoW&F88S)O=zw=8J08-ss|?@zDStiN=-lQNlAR5|`hbew_anFrer)w1D1K zt{4b}1Ru8*X%r7`5mH0$cNY$N^R+?4Ad&W~w0)3S|AoMJpG~0;PEHaZMBlOVqfLVs z`}*78;~PegwZw-%6U`SJ6|r7u)W$FO-Cu59^T<)129*JvM<{SQsRKUcRVeP=NUHZH zYrus{w;8g_Ppl*ewCb_fAazj3p=f2O!)L${4^TOD& zOu?cRzfGAc2b~I5PPu^r&4W;b%f}2URNo30qO!!I4v!CkYx;G!d&4Qs!rMeg-=+Ci zo9GQME18x^WbBiQQO5|bEIOh?>VouTp3owmrJe5_!z52GDh5Tw!|N` z;XzEUoh}>1r5R5(N+_Q2+*!$6sekia=rqW+gTYt8(CziWd;!)5hM&iqlo;+FX-4S- zLx8e>*hFPjSkC@~u?@mQ{MxnoOYT9d9XRwOY^?Zosz;P${q%3#~&_)dci!JddN1m5?QrO*YMj}$TxH8=^19I&e4a2 z83fi(!otI>Gj5dJwKh5Bw=$rO12%vds3(l74VK(K*^0TDWK$~9B19p{)H>}}^#_+kKLAqS4tyQm^jrV;#3 z4_Wo~S)9xUtFa%oleU+lpkejsxXse*o%X01pSOor3*A$)`*b4wz|>8X9X2GL88b-R zAy5*`H_-%m&q(#`2<{q4YS~0284pqt+0zqaMM;WYW$y)bg}$T7EYgk>YO6-!h!lzl zJdI!Xju`TNm!4qr$4$gY@L#17lsZt!7eMHEY@O2@@}61_8M<;?j6#`7I8pV$b2@A` zxMUIQ;jvM)m%is7<<+B@2xmKfs2HjkMw?%*@U17`LN&##X~Zx&(AJ);Mc;9O_`(Tj z$0!UH=yH6GbPC&lXsW_dvCVRbjGMCc&X^C zZz4n2lY0!&ph~a`>ZKoUfmq>TALwW_W(TQ+Ap8>Xgi6}j+Lcm3DEN?-ZYvQgC=pLI z|4}c;*NLY{vC>P1Sfg&{JasQ!USF(|&PHF=wKZ5@Ky@d~ac8pp^LXXyiO*Hd`4MkR zId_KilTf&L4k+r0o3#3(5S4ehuro~F-wLNThF%1x5ttkehqL$mYCh9B+0D2d?Zg_= z6-6KGLV?;JNYEVs2%5_n{HwpT-=BK=TK4bm;y+6bCk@{~|A5!*RwqU31{T;3GqmT< z>yt_zN8fEMzN@E(NYe%qqu&{KZaW!h&beBCHJly;p#L9DmDy>RE7vIlp@9_Reug?U zmw4w>#ag`A)o~ncY|JT-`@^N>>4eOf(5lVNllmo?J)f2tB{YXx^Fv*=Du4^K z3hLj8d69O&)gz|^IfY+Ri)}uJR1Q#CVn8i&GP8By(nc4LkRLOTFleZ@IAVHY;{7P$ z^sP!YtBxuQtP+Vz zvTAvBT7T*vIx9!{w{t7^f-g@psoI7qM@c<%`q%M0NxymvdK^9WOKusdfw3BP{kaUp z{=cht4@(+~bXAz|zYdQ#L3r4^A$nj5cjRVf*62+4V}CIIe(ehedN$emiRhTqFO(T7 zeW2&`tcXwj!L%YGUHQA=NVXLIHSyiCOUF%v?)JdxwJkATO^;g?J>;Tn@v})=AkHuV zvJ)ml0uvwVS`YEXf$81jXxl;zv#tGXw~5hi<0qUP&H>YcUZCeNzCOuK`ga%Ha(N+t zJk{tP*O&2RP#JCMt<Jv;(yf&wy=u-k$dXdski(qQqb;*GTEn{* z^gh=mJsowd@Kg2CbmY((h_f}c@jUhQwtDX+eoqdGE(%=?cbS5)xP3>OSOs^$q~t)x zlQGCm;{*aBE5&Wp)FsdDNDrFF#j0ni1ru*MO~Q7h9#1TM3RuzHAx4)EEbpT9(Y{Xd zRr35b<5`-(MN9kH`YeX>@~btiuhpF6RxzjaplF8vn$N_tUHyqE8Jf1!N>9RGbK)8W zYl}qe#z_e&SEqI2AaS>-5v~(asFW?$D?$+mTj7}Fi>i#u`QGmO#O=HF z27CGJ#F#5_@K)G`vh9)RD_}1V+4=kvJLk{PwilIP^-77~3#2<6aTtJWYQKoNeDjd` z=ATxef=NoQRIg$P!Gr_ zY$^F~)Ur1FiL4-eOrdUh;7KlMm@wo&Cu*jR4X$|H-S;>quwGdhmI@5rJi{BSf3 z18hMc%$D54Jg^AyGFT;Q$rq%_0kx7b%p&GqEO-88!J+8e?b(K!s;eQRE^B$#K;9DZ z7g{MuyaH;l%AJ5b-EID*`%!$;VyDDQksl-+7|#=yJ7rK=r8^hWg0vE>G`KCNRizq%svept-?sQ=R%DXPU0@$X#e-ikTXLjBdTod6 zV|C*^INsN?#e{1|^W;(bbL<_@Uz+-pLhb)4q3kP#{*A++m}6jJj?G^Zn}7Xei^0T9 zf&Gt6NP4!NDS3uLSHQGgTG=}OnvXOsF*`S>^spCS7is3&jxw&_78>On#3vq)3zhSO z_}7XW<8A$-;#qvo=-8E2#A6c+jLI75#AHKCe5X+BNxmp10-7KYFkvvH4MH4ZKtXuQ zLmg1hH-VAqRE$O!LIE*_;JBtO+cmVAU^;)-gX;{v2n5T=L;k}=r;nP?eXr{ zix17-M7Am~4Z_=t!H(1^RK`CUS0vYI_HLuV*V&P%(1;^ZKEtLmc{1LV5lTNlY}$6Z zC^H+{b_}6x02nGbxLJuP!VP*S)=<`xz*TGNT3w`51Cl+t)G)ZL`?T_09XimyxtjVTDAh)P&=$WaZ zrRE_Nn!H&RONRnQRuT`|!B*BHH2dOeoV)82tTlg%N1S01o#N$t8KZ>1n^#EJ%?o5e+VHr+C@v6fR{Bv@d5@yiblYnyL;U+j_Sq=>cn4^f0D`Z8a8F(NM0 zilCsw<=6I{O%{RSI2{5FPdA#5)~$ z>!+WJP3E_HL?1`vkb3CQ*g-fU^pFL}k6KKdHhw0%=aNU+UeH0JzKpyTgvFYqGzyFz zojz(l=c3%;GiIU64=)oYG=I5~qK6jaSwT3jw6QX8X9l!n+^Q@s#&|zL{Q=IY!j8oM ziB*p27kMcgKu4-N#sm;4imX$4iQln)PJy>?PT{`MkpaD$sBd-ls zJ4;VzIkpOdIJFg%KYgDHKHRAtQr_X-7kqF!8sgGa`#qLEoHZ)~UPpBkl6f-*_fzCg zkt=(_68zWEkGg8}?1~<4jcZ(?8_oSLd#ts+r~F4|#D>jkCDB_dN#6^9pYHt?Sh5Gz z=6d70Ug{wa0{A{T6wwCWz;hk{LERJBf>oA*BVJDlec&tN`?byc^}w%BZZTAJ2@VRg ze8De5awzHUg_P453`1O2Q0k!=G+Zkwtc@JLHx4T4n57CVZ4+ zJLVH(E#lue5~c=U`{g?ebFy_lCX>5K_ps$&r^+?b9dti7GK(z6X??2GvVq)JR zox1nQJ7(gR&~kli)nt+I!PA%tyoI;#1exWGH3B$)>KG?ahFD=9F4pR2yaVK?>pkz^ z!uP1iwQ6lmS(y-4EGKHBw3VEfktlotngDibo4)pRM8vRmJLs;Z^PGWIg|szy`1sh5v-|si5&E z9RzgU>{)@u2>0+usR%9^!8i%BcLuo@H?RaR7EU-FhUrLw4fXbYPT11Y5*;tQ;lXl{1D;!hZp=Od%g6{3_!CrmhBlpa#A(GE_gV|+k;`L|6a5Irshl*~9;PB#3*_|5Hf$_r(g4U4Q5G ze-%6b9QI3G`UekWLC_2BwdeyhjdMf;FbP0uFyjfOg0pjFrRA(9Chq-*6Hyc_w31QR zVjgKpNy%5yDL5+%GV%$g{V6j0tNpo3*^;sG@pmqd_GqZ7MM3OnZt{3G;C{!Zr?YWz zaM*tS_hA0~W59he>m@EmmvEaT5D}Pkzo7>9LrOf(bg7y2 z$?`K`5LKW4E35lG)IquF1QPcq{xsmnJUa>BA{75RVoQk=baA-zc$Bze$P~_i{7mNT zXeZYoTatj{E`WpQDyyrL2#t*4Ks8x4s~;y3k z=UcNirOun9U#ts@ik?+e&Au$rW(Fhg=C0~T5%?D9%SMK03YY@agjtM7M@NV9^XEYL zc)}xODF90yTD=xq00xd6$db#IpRQ);NlZ%W1uCRs1#sR5rV8Rn=$ExRWx_ShyscA1^PpJ4)ctsuI07_KrGb#c zWY}dwCZpMl6<0%*xy%0R^32>v&l-@YAPP3*w4kPy*q_Qf?S>6iqm@tP<`P{v{Sud3 zTCHcO9BVyWAwk5Z&2&vMD^f3SgOMS*IXH&e*^o8T)11QWgMp=m6zK6FN&$zI*A|gW z{nUH=t@U#<&+GmU=olU^D$_-(T}DMh_lO4hNWz3`&LLJ*bu^xK!XqhBHjvd89crtGsjBa1J? zN4*QW;+a*xO%7!*e!RZyW?3f1<|kwM#-u}!dCtFJom?VbpRC00zb2K=pvcNHq8AX- z$ucB7+=T^Xc<8dQPpp;g5iqm##Z)Y5&k7=s!WE>G_J+ln*$0w1FI2ABUk4J(ym;0K z>!6>`K)yjnF&58O8i+s9&V0VMK1o;XRurFbN3#h-YnaF05^t8Qy}Q)Kd!xW7J+!nj zi7~pE?dDaX=_k7keWSSwVQ|;7sk}PjI_8@EeFO7z5lf7=Y2ee-)8FMa^L_;&tP~Wq z7$+y!N_awBNcDRVy8{@_=O6BxK~Uhsb)ZKP?tpCRsalCq z%WMB2<)c<>lCy7I+it+_Z2Eco+IxUViv~=7YarN-AFU>&YxZUgl_@EtObFc zpJ&H59NI8XeiZqo_$ILLdo0pB_724y6~2afqYYwh)B1GdA|=XeukmWahr3n%DLH-5gl!d;M?&OC}*?Io0Kzy*aIJTK7Pr z4p2y*9&WMTv+7;#cRYVp-M)zr@qUw&n7F6^&K2sJ&N&=l*H%7TGc@;hBMSw)RmHs8jJIGt1V$iUTNE||CX zTsH{=i>1fYtULiB9Vb<_39|Pp|4@!&x-7a8iQwG++4j|YZ^2OS<;!a4FYEw;6^T;N z&khMX9|Fo{HB)Y54fdz9H0~o%KVptO%9s=4v{G`=7|yrv?@WCB0^^!VJ6dIk?^N)% zWRK(JEbGk3n=6}ll@urnAI0w00+RN7JR{O9WfFuZIU3ALCgibSe!e23KTp31WaQv% zDWG67`r_jIqO^*meK1o^!B$+&d3ty&k&$xGoQVuIBwbt!JdkqcMH(#x45~c?Iuv8ks2WaGAre_Hg5B+-t}wjQPfJQNs_%3w^ELEMc|j#IRU}XN~fBg zEBF7iTPPjynYO-K`tbax9);O1ke9=MmGW#77(Q`{F9tUxCja^KHvTh^^c3BGJ*nXd zXgue$kz~#Y1t~NYHKpOLsElK;q6=WK{YzwiU0g=<7T4}#{B;OeA62=KGC?h{EPr$f zH4;CCZFCs2J&PP+9t9K*GI`0odc2$ximO|wEL4)Xy48#v&+}%ZBfpW%1%9`f$+al? zZgmH7wTEYXS-l||C+Xa3j$#Im=a+eZ_Dwkg=9e1w!C&)8(^7uD*28G0T_iLqTy?Bz z+&+mS)c@dK$qe^xy{G0Ns-0$>@PgjyF#$G9?QF6uPrYMvnnvKOYW4WAxmsG<2diSL zu@7ZsHUN#0&t_%gE#SS#8z#Oc_~8I}Pu*!`k*-rFG z`;u*jbZEGt(QgiLsdG8Ksm+QcB*kdu(g)~y)=LZ-)^0dP5mGVSf?mVA$MsS4yDE~H zTq%&b<;pwXhOyp3$!DZjgG{gbNUP+T^`k?%J|~2ZO@xm9l%=IV3DOEkX>7HZj%eK^ zTyfJ5e;Mv+jJEM_w;sEZ+XIGH4`So8HZNYqj@b)-+O2Kyj^MO)33~JJOdzX1qC`*M zzu1cRd8?AAc!xuAb}ZQ&e|Re39U?Cf53sEE&Bp-BZr8Ci007+jH~;J?`@a_r9zYG$ZM;-tManFt;C zo8elr+0|Y1E#n+FFT^0+LhkZXrkTo$xlor7)>S_8!4TWzFh7Gy4QvqjW$7|sqLQpX zof*Rp!j!CH0!c>cO$vQWgY$?|i=~QhGGeW(MoysfI#{^a8dPR&KcjGaQadB}_$c7D zi+a$coevLTZh@?B?Z^f*)pv4~-3w++36;;o*{JPfMu-wjDW3<&@^@7#Bh{LBw8VIv zGmj|z89-*P#1s4OxAUe&8X5HzM`BzjHgV<%EGbZ~Kh-gQn-208TQ!r3Xmj*0&5QQy+|GE4%^xJFYk9*b=Z{_9 zGd1x~3cbksJvTMrc|n&!*v6L6vw=L08jIAj_?p35F9@h1=~wlMl1r?xTDfRo_!H=Gsq)GnjjN7BV%c3~3y3JP|Xq zBHLEi)N_eV(wV~QLyt=MicLU{9#>Uad8`uvGH>~L);(d)qAVC!>8}PA`>>&pVRpB0 z@A+g@%!Egv+k}@_Vh#roNJh_?ZRJyM{p5kG?u3VL!miW&Cnt|bgPtU9HD&#hul>-S zoA6iCoP9I24W6FTTU4)=7Dwfr9m~;nsD|fW`NfJ(r+NfM$A$qXc}6NTV(IlP{Iywq z81>--6P@Bp@!fK)lGA0ibXCYOD)Z#MaF$qgh0Et%!xk+El`ZA2EeQz$Zx?A5P3KLz zY2H z{i`*CKNldS_%aF{v7*H`6*y$RLABd>sBmoK4;h8sA|N6P_ivD($GfwN5*rVj5)72y;>CoXz0X?SdAZ$3^RWO!aNB=W0~L0> z`bzD=So#g$2Cz}a>(Y%(#DY_eePt)Z8t|k3cgL(~w*N;6=q9)tY)3QBmqOm?*P6Lt zS2nq#egWNNnfdL_dcsn@O*~(Ytof2Z5VHtGf7*B1jyUfY0OLcohV_w=)Del6o?|K^ zT^11K7yW8rkU~8_&ky}hNJ`6Q+UncrlbOUUYld8+81>g<@{|UkBZ~JXI8;cOvy|eg zzJGY;tO@uzb{f82`g@DZrImms9lu>4(X7I4;6U&m@zxYe`Yjsk5?>)t-6nzCs=@o#4nN@BfO<~TQ@+#LxIE_ zBCldrq8~T6i}3W)n(_WGjnkB9B{oI|ljid+$-#VFdpdLfi@Gd=1=hwg?!7ZN0iTnT zD#cy){J`j=2*flVj>x4v##z5<zKVO7nCFSb)2en#yZ zv#B_r16B)jn6H~4oTJ<>(;fSW1FlvMA#o`Z_Tw!7UH4<3p{4*2#E!xCd>!=B36Gd6 zoz5hK)pAB+lWVa}IZibm@iF1!w^ME>3sNj8LtU$&NnJM#5XlTF<%*Ix$YSC^d_(fI zNuP177NXG-gTT`3hw>-EHLo(vT?Y{)wM<{=hkq9XVvw)&j)l4;&V=B#I@$qo+~7rN z$7ZfF#yo+v21o;tmSpxR8=-q@Z!xQM(97R{@ng1=<&@|6;dYJ(6L9)|_z|Toi+Gnd z?Oe%WLo8(Z#BPmZ(JXzkU2!GD-)nWi!4Xx)%s1C%@{qJTbuL5Gt99+;-~)60 z9R5p5+xhc;6)||;-j&2XJSYCLrhFFRPw(}quDk8hIKG2T8NlZNH|c2t*Jn{6XT1b$pWZ zq_wRBZf5?uV=B7*pQy63WaC|zsgrWbUJ~43Cjo}ECAVVh-1^BR>7+`4(LQjqD0-Tp zZm65|GZT2Bnf^X@>|&nGI+6Cx9j}Wy)1q$RX&~R7QrI0^sNOfARXCkzUld+V6%F>}8v zS()CFa5`R0%Xz{0i*99Mb;C`cFH|P%T&lrsh(3Li#havB(K(QO)I>M=-fnvPMF23Y9K>%*=yiuBJ@v%Chn>DD|ZC0KiW{y2F7KvuR%6|tpVAX0Io-<%7f&< zn+#@yyc*(pTX}dY{w(Tw-$uoN@qQ?bI`1;$ZfZ^LP5v4f4;n4|t0FurwvvU4U#v)d zm=uOMnXW$vE{1Sc3;|*1&v30;EmLqLc*_0H%Nt;+Y{Uq*u~!^|rx$E{kZi##yZth9 z#TuDIED2?KcI;Jd0KKytt&sc2%tEn8LmC|t<}4{5p~YztVjrbr8QRV;PBs8CjnjTS z2{t;O#CWm{k_@IoKtR4GgdXWvtlX?kj58yn6*g-hfU=zGR6}bWA|C)QIoqG-n*XT` zR{tDf4M^f$*&w)Zp-4HkONc}z-f5ZZ$+KN~EW7=S`)rNi7;f2JbqPWey0^vZz#N~~ zIo`J?`chn1b|+abO4`C{5vk^qTySL<UMPnlbq*}l!;pv4 zShgp3duh((%vl*GY7qGuv@0OX*!@6<00+Q?H}Z2TRFS2e1VwPBmh0&X6SyMlf#iNn zth;+f-sU>rRQUX>%KQ%Vg_4;oJKP;K;64xV?b=! z`?+YL5r2yv_A_CbO=`5`0GE%#JJ$*^CBq00c|)3t=}1-8n%9+LaC=qbsr$ga6Ln=l z&3UzjM2X{u=gJx9>PW95M5eM3=FC)-z=YR}r)50V2*&)_<}}*?R&b;TT-8+{lGbD# zkujj{3W-V(bg>#Wh-s@ZxB!}N-4>pagZ2h)_-+u>>v>qJ$Ry`BQmt|1vT&}F+AbX! zsC2k??$W<89)783f2#~tc-39xb}!ErmJJcMnI(#+rMgTv81CfdhdwE5Av`@MBX>lk ztvsKml#j3EK#SqC^QS1ap=Vv3ieIXoY4gZ5{ep+vvjv?5BeWUZAQDD5M{FSlQ$d6_ z#7Z>(20`HYCbgVl9Oe-D ztMi0@!UW`7Mli_7CIqJV5+P=F`-iIUr@qk^*WW(eZDy3k(Wz(}~ z+m%hC2Ip?JyTdm&3?;jexQxjg&^hz2BJ7n(wJqlr>v)zuRxb=+2=ps3BGw1wt?ygy zrZ#HEOU}l<++Y6e(Ju3s+37REVOguSj~5qW@n(t^qR6LZ@|9A~nCOb1inkn}1&ZXw z)y8q;TYi)EjuNNGal+|KPZzqbjQjC_ZFTj8wEzKsN&22~qo!An2HivpH2y0<-WQ2+ z`{Bzo*P(y+FYGU-{#y{_X>d3m`T;RDr4UX;;0g^q0T8Gel#VV*2PyQ9rm%`w{ZaMm zUh5w8P&i4b7SG6~SNF?GV>>;S9M$Dw?}Obr>zPP=NpB}cdIzBl-S$X17V0KtCr>$% z58scVum=$%K+ui=-stV*LLpX;r<<2^)BuP4-L|{HR-|ISR|Dzox_?c$5Cm2Np(RJS z!T$Z;PEe__HEe>^FCjBs0KNM~v

{DBzJVr?hTln#je4JE`eC`1butWU?@}yDR{LWus^La8#CcKkfQ#Et=5s=k~8x_0Y zV{k9GO2<`^szg%5+1Tj7u^lcP0Sf?>0osWC9eRWjihP-U`~_!|lnXP4DLgvlUj+~j zIs{ma=7|2v8N4+~HB0ugJipF8$wlGC+Z;>GmfW1sy2$<7jMRU=gg7a=0ln$=FXju+ zQKba~pHJcSdzn`+NhiaO7$X>GKML}&pH>9JA}zmw-poA}`ynxxd^olNyPQbMc<=Gd z@x;D?aDZu7K~j%t0B_d9MEA`OS$I4}87u`Uy9+VFqc5*2rGIS0>O0b6uTnF3jv~0n zsB1LG5z@T?nAu;FxBM>F5B{LkmNO+|SE#hjl7a|sjx4ROq|C*rf{{mlqgi=cwHl+X z*}bcBaStQ_H$`iXKl@*@+yWbi-(WGsxJ1iVVb&FR<&JQV-j}lJ^wpBwT`9y%1YzuZ zQ~rqi6D1b2Qr{OvezG}(84*(Ij?Z75%a-5Da93e%Y^vss^yalD_wPrQd^Bs=hJ?Qg zc5W*WrFaJSf9dU>sWg)_S2U~gL)}$ka_fD=jgmymnS}I>&!Sy*?8DeZtkGM#S(Sv9 z22lvY=#bV0m8A7peOo)1+5ANE`@D$Oa1(wbx>Lg;B=Lb-|F6<;zH|fJBV?Qxi`5^O zuw}Md&zUZ=CvLh0p|dO;qxQFd9cguHLWeLYzJ0`lsGJa)B;<4Vavn#; zeCq~Nk~Jo|q+UD+Y?EtSjpD5Q>KZw1ms%3Y)%~L9+g;?RQWg`_T)w$NUYx7jKI1s- z2i4af8qDjnufLC~{Gm^^0DV9hq6!Nz&YWdG?bWvZ(wJe7ucI4DajwO- zxFk+}O2=iky@^`RIY&tfCu!(8k8Zqo^i@!it`0dJkJooK7xu-Nu)&`WmTaG53v3?S zdQDTW^M|U4-X0pu9{gV(gck$= z8@+UY;w7q#kl&H}A;+Tdhc$$T#DQTAWK`N|jB+oMXo$5{_^~RLm!4r+s_>sP=PeLe zQV%#fBnt9fWL*tJ2?w8z2I2EC{De8WhrmgHv)<{6r-&*Q=g6ex89}TT1&6D4_u-{7 z90m%&p0If$e#nD*0+L@AJdFd~Yn<_?CK>V5PF0tY;CIJ)-gaeI-SQn5Rm<=0uA?_3 zlem;tg7({A>XPE~!in@2Jcx&08ct(cyedrpn?`fWvCx5i6tQ~ZNfo&A&dc&LtRe>x z7m@;Q0!z3b)fylb{+ z#Xw0+#7WZhd+usE``;f_0EhIA66|AQ>;}L2H_+i`)4;uSUw`Ywp(pzX!kDXYtB4VUc zG1)S4c2MM=#yrasu%V3_!JE)Au>%%VMPj8%7y*;`Rxf_0P)KI;{Zwy+Y+m6_Ul#S| z=|5TemzaGNBac{QrQ()?kv5D6zv#+H8O`aO?)w zq^iD-Kh%3p^fS~>v(S}?8mXmcB$8w=igse_rD1l4ebrT|k(bq_+6lMU!C3C)NzBwB zqD#|Ze@dkf^#0&fbbD_N-G*r z-mu8b>@6QMI7k%ssI!DA5EA=kQ9aE#skmM**!c^^PJtWSOYSs44gA-LsoGdGFEiFF zt@Tjz70j`0%d4_Lbb0c=K%H0a+#7wXT^NP20&bM*l)N;8!zW+K!l5m5Ya?KOS@P#7 zEXKi5VM3CtniQf9w$OyfP1!Y~Ep{vY$@2kYV_CztO$2qsqX_2Slvtk9LUcgZyLUgu zIJWY}0SPnA1oAj)JiD z*M&J$0#(@7%Ov}F#?k68D?!m&L~Q8>zvI8tO{cT5nNue5t4Tz+>ZltB19$>g_yU-0qR^|txZQM}*>az;o5H+9}RY?-CWduPG0HPuXj zkBtS&Am!d&lgxdFV!FL<7#kWE?09=SfJ{DsfXJzMX4+d~1rcoF2Jqhz7m-tptWj&` zVY|=XKeLXOxaP-HJcQ0*)V8&r&S$y5zYHHN%t#aqR@;VmD{l3CB#zZy@t-mOAnlaZ zE@l%aRbdkb7~TM#@I%Nnl+;a8&s<|WJCm~Wil>s;KVu?e1*{%Y4Tsu7E!w|%&sU>%UW4FS(7@8 z#9(3dmd2%bU^`E9_32BOOsM4%XUfgiA;MSgNqai902wdgn`$Wq8<>r0EhdodinV~i z>V><^OmEQ3?RSh*Bmj^;C6o-fyeRKPa6{oO4l9QiO`m|AoEOSl080^vVv2`b)&-i>s%T#cHn-GN|*V|IWvRBj9&z zJ{`DU=U&vyQasbkqbK{KM{o4!p~E@io5Bw(VzxcTQY&jkIQL_971@TT!N^$7Zi0+# zs@%EAJA-t}tilOnXYVWJh9tHI0^HBi%TqvtlS`C#`*qKX!A#uDf4eVrPP8Xd69Wsz zjkFgO=a?bU_VjS7(M0!dJA_=Gc^4R6Rk`Vpt11hn3T*k)_xm}B4A?#yF!Jp(7P8N< z7BDP-A`R&0n7YowhArwH)ART66%)PdS+6}WOk0Dle;D5@d z|AO%Of#C1-vai#D6EgDB2wzla!t6$qyR3@C<&w`RpY#ghEJ!aRyyIuFcuhuAsA z1`1~XL#%B$ava$Fo?rc1^}q2ms{nBLCPQ4&sr0}|W*qv*<1ITHJc0*PGJL8YXfMqU z!=Hh)0utxH^UJuJ>y6}44%y&8kd}>3taJ5e3oR}*)#L;c@|s-kNi#sf`+#_7PnAON zTh5NghbX}8Q=1aG!SF{*;8GG8Eo=Mli)0FB)i*J!QKHgdo3zFsAmfa}ua4k7RU(y3 zuwslL}4^AD!}##E1Vod@!G_}xjA6ZMk7txnopUbFFLO?Yrma`T_`qG z@8A9=Jo=;)hS4LRjCrRuQ4Xp^D4}>JVqE6GW*fV;Y5lhaHa;f~DhmNWkkwqc074J z)_LpCQ?_zj1)Zs}QzxzI?NDLzk{o@NuV$|#8%xvF`7__x*ysnAmz`62v)qXg!k6{^+(|+tlyJlG8p>f!7VTHmdTQAGu}fVSG3dX%De5bqwR6%3Es^ zWHQZ3?xD&xTR+b-duQ!QcC)|Z;K7F+B>{01zO~R!lQ$XN1UE4 zvK=}QWa%{xdFtO3P|DzHL%z?S$QsQQ*Ba~fENmLhdIX?NCD`}Q=x(FMia|ABpbKWr z8DKmURYxz~-(C-HshWRhXY9?FXVf*cJ``sjM6Wc)#NNnxQh}HE>B=7Z}^$^j;)t?%-SAW ziU{=NM-wF9))s}CH~d+BT$KN&p8=+YUkHUyA25?VT`->Q%lp{*fhfbWQ221q)g4K2 z$ba%{!*tFs0a4=KIXFEyPtZy~C?rGc(J-xKx#dkMb=YONlC^J|ACrvJ$!a?~=P!F3 zMN|aE4GgSU;-%7ZI6h!yQfe-+i8YDY#=Hix!Vw-iF#a0|CjreU?E))QzxmhLi1Urd zx~+ux`<4|3au)D?ur-(k%+!oHJPCdOzCb%A!-lV_Pl;rY%hi5uUE$Trz|9;{VbQ?{ zv6KOqDwbzZq2Ilrdv|s%%}ZBGq!-*(Qi?*}rSyz==uy?z(zNS@d^X5uO3F{kq4BVb z3Q6r1Tvt$dE64F()URgNrnq3dVNBYN_f3s=QOuh5^j|u*`y}jEAn0p*_7Fziyope& z7_eLyn9!aOX~R%M_=XtE!pLTY?_r$~u7bvg6EJuOD_>W3L=8XKpd(6po~M}L=VVV_ z%;uBfdViH=K81`_IO56*mEDwXCNy(DDOPBbaw$Gm$J#R3x<>e;83j%W{`OJM8^AFi z*!(R=@FZPg;9_m7q~jzRsr>G7Kl|wljgFq}5#6Bq4o&)9Tv=Gb2az96tJ>z)`^R*` znFfibR>k8x5?<|1GXTL%nsO~Jlh=8rI7;Bpk!gHvuXEpd#y;y9*S*ydngeOe&eWO| zC_7vvRM^U=JLfBC{3Ln*aRdhz0ofM!LhQ3`59GbYSw4E-kU+VOzFMQcPd?4e3ePz* z8Gw+DCieCwUc*n=sNd~T!0&FoNL@NT?heT`L5**lr_zD#5{Q^^*};cTJ;lK;z097} z_t@CFFYHtcl8Ce4C|vll%3Nb9nILhlhVO)LLLS`?^m8entt1JcOMRDBoO^_$`zmTf zV=A)S47YlmSk6jV&n&xyv$GWat{cD_)NL~K8cTjEV?Kow%NfN=Sw_h3lXmc&)qAZn z<>F)~QsugqfYUZw6+8|mTBT8&qA}F#y;=zt+{wKNmVss~ggM}C#{fSBgj;itDxrj& zG!iW8XqEaz#QLluORsf-pu~Uuu1j+KdFSN?dE54Z@BxygylAkf@Z{3fGVINO)5#XJ zAQ;(?Z8@CrTnB`*XjhK#;zYmj{dkk|@?ME2;FyAjO4d6|kiL?{~8abZ!#<2OpR5Rdx^$-pVEN;y*+`T~HNnJ{)nvPuUK; zOVf7A*p^}y2DJb~-9t=BT}pL!$iX^bvu4BOw)iVGgxSKKUV;L`Cg=s#t$;(e?v+tAz3|5)xFq6WUQRzn8 z0J+l5(QzhFlJx>D>O3ZMeNDym=XP^r@nK zEL~}*O{v{flNgEUvFn7H4}Po;9xDi2AqYDC`Nm~xeME){RIR9JStItf`C_Oyl#9rU znI3N-X`j>UU*JW8@E*ysc&AsepH*=~yq>NV(n9;-oUI*#9qq1J2RzRpca4lvJ zWbuW+$;#0ls&CV3@pbym`91Hr*hcU&%jQSu(#y%lkn3Ay{621f=Is0JY-`d@M+JYL z>cR>|wY+!Ri`!4f8tpj%R7Nvo`i6<6gj&=3em*@DNgRQp_ys_md z->pz=yID@n3BBTCEtfre8bsc^sd};eaWDfF?YGw2O70#cEGw{!9hvrIe1>slfewH|KH3_ak6>r6dTt>D zr{=-F0-adFst|0K4>CC;$?9ljA>GTN#u6aiHrnm`KbUW*%^}wUiZNIL`zI&*<-W;rSa(^wMSD4$C<08h)HP0+iRA*zhVXsyWe-!EH1*o%ImQ>WeFP8p z$OT@^Wzp||@K69+xa4er-fb@I;^w@Aiux1Pr~Rlee9}AQ=VUdslVoI(u~s|D0q)OJ z72KR}d$3d(P3+*zjaB==fRM7LRP#h_!>=S{@AoLEf=hVE3+fV4A29 z9_Z{0fWyJ7E4JR1%l8GC8jD5)sqdzFKH(D%Y7NM*R*MJ;df4_ukDigXuHb{8%SVT< ziu8DBoT|=j*tx=ku-h2+UdH0P#X6pQnmQ`tRDMSs>BT~Q?*1)`F)pSj+g^7cUt5zm zX&mEHZ4VnX{9r8Y!(v`Ft31c5Avr03Tn<8#JuVXnUE0W|R%Es%j+-P0-49+w4sVx1 zrjRvtlHFs%2%^R+1-{jn$Hm7s5uw38!*JiFa+zn536ys^%?{ zWn20S7LF36eF%x>r4Og|bDss(n2Z14d(7&Z9CR}!#PDk2dawn40k7;Cad2%CG;Ez- z7c}@Sz%*I7;z<|#kZa*W`J}S;%drcjzX{;e2rj^v+w77ho88}~TBUf~E?g(|M1jOd zkB^ROAT(f4uu&zm(r4);#US@Y_m_n#CT0u%aujTdOcDKaL|_<8)8lG-BJmXnE%=eU z@`UST1?x8)ZW)(P1nLT1Bd%5PX(}H`mVf@t(S>zKcVknVmiITybJlva>kWIe2Lnb% zjGxKs-tK_(`m^p{Co7e^A{OCn2B`6!exND7oQUEFI3-+awX z1kxTMV=<%#&kB{%uANjk5p@BALAs0P_ zXaBegFBTNgy`PkV-m{lpV=qdQce1-KqW+8BZt`0Soo6&H!W{b_XU~07M+QPHb@EEMVDm=#81a~7Oi5s z)(gb=t6B7FV{*6s4&105rYm161w!#lZlV`gF6?j;xAz7gmnrKtJYFb!L3ZOpD%m(u zgis_ZV*g~3L?kR=CTG%qp8hIiZ|Bh4=dg&fG?D(G)s$UY>n7Anzh!@Is0rY|%*WW;y5mCa$4Re!&Rrcu{Xj@X;lr^AH%N8ws=LWKi-+!a>L80k080IMlgxUnJ}52C*Q;%GixfwiCVhfvZ~3@ zf9m|1Z`%dhyOuXPXOlz)zrq-Q#eo||yTZd-Jr0zHkcGZcc3#-VW30^%&6KL+@NiM} zuh0c2tKqA|SQ*j|CIf!~PU;$oYZb%_U3I;qax)O5+5fmq-^9d9$*&IGG)y#Ww)5uy zSN)&`FI}Q$+Qb|smtq|DtR+1*o&ZJ)f5%ne->Y{e5%-Vc+ z>zQviRnC?q_x&A}lipKY!RYrma4gyV2z~~^0SknvOE>W#ws~R`JM{C5>9_ds9JznfL)8_6KKRW$sFJ7$j zD9_Jnrsnjr7kgsIXBNLb`M9?2j|UGQO2TpnF+ArT4zfyMJT31$%B*ev4HZlf^+HgD zCOn&8J5n&{{~k5opC^y9WD-h-KnA^7k^Fl-2OL+Uel+wuF|>SVAngo192HM>NyAbzz{0puKFD;u&q$3!rAvHoD&&d)TEu25 zG#UO~cy)L=URH*&4WRU%pR{#GmR|o_S>AHG?a=)3-u3;ld1J<8CS--@rr|a#go$B_ zQK%1(sxW807?eaeO0=5ZP|}!MaMq-WUxH&48~2jPD+@ z@>C2Z=bE6P4B}*V@O0GBpn@?~P+N@Tw)3W*i@nAlsSV{6vwd|<#X^K-u#uU)tpZeE z+kW0;IOkN8rmIaeT+>APirwSW@*dj@4gsQt$LqH@gIvbJf#GG^0AaU?8EK%!@txqf zgUZ6A?9$T5K?kCDvgQf9sml_qCi zC)uda&u28dJ@w5hC~&>CWS(`oZcgK)14$cXht=&jwE`!!q@K0vslUBIS7>a{$0TT1)$t1X4<~DC`z^8ZikDC9#cp!kOZCr zqc_=WP~`*4egdqONORY%sdeOGA3=Z62{G%tPOvqsYNd_?F6PMx9FSy4ULO9_rUp|_ z1na&{RKGQN^=s&wax(Ry@_4UhqxB$(q@n4q0+0^4Z8~1GpFrHZaJV+ukuTmGl?V13 zC~Gc7uMN^1Be2A?nTFuAmqbLevC&Zg&kMhir*3<3@<7SwVAaw42YAyBd zRAv)wmRtexN!83TuLCOj-S*GI#r>-wpS~tsZ*}>5#ZsC-d$MP#nZ0%qGLJF;bs;bB6dmWyFYKx}v+`w+(UA z_~q!=n{e`U{)KU)r0XX8U~g*VJg0EOG+9GM3sm9Of6q!)??ZeLph56PJovNJ?7o7e+}6^Ew+t1^I|f-YG1wN3Gc;`H3PuZ7lJ2RpN z=?@2fvCc0Ce+e_^B)s)7fU0yAZaC4>z6T_kbBy|tc#$j55#CqW-5;OQS4@t)q32Rw z!^34~Vz;UKu4bL_R@nlL<}ddRL98_~*n11IzuoT7F8){Tnsth)NLYSH1H2aTEr=zU zyjgebtSbH@>P}Qjua>K;zgHhK#1`Pc?1cti$8tFzTPL@8MboeCy14A!S&Ke5(2b8L z#7_azE4mCjt@_pHn;p{IT-_a6HOIBlbm&U)W&b{cchN-DCidOPNc-N13n9Nf6XTA+ z#%i;+871U1rx}=u(Fz>z?%#uzzOx?eKGp*QZj!;FBtzW;kc`@FNjl63%6s5m6(4)a zXXTrNi7@`v!6-(D-7Ep)^?Ub(6&U2~Js_MX4}|aP#)ZC#g0kFzjn883dywK$Vk`!! zS4a+Yj*l9>|K@M`Anb@ZZs2zF@30?-qerg~k4b5&eyXpBb5lhvf;?eLa=(3z?N4=S ztD-YI3GgU{sZLTQR@UT$`~1o5)Q)TIkFEVuDLXWjbKza8TM+YNI)U*E-r_z{BG+YxmAv=VE?X!djY;8AxJ>^f0<5 zHU;hbLj%(b)rziEqElk9iN7#|kHwPie(Ye7oFO%Fx~9uKTjgsv1Js3}?;wNezY41B z63gQF{RBlJKWwbzx(3J_-G_zOQDX$V<0PvQ&6-l+hKtYxY55Z+ltQJlGwx5i&UIVA ziA@mom;X(46*$eNk098TBn{nfX1SCTCN+N~quqIrCca zH|BT2Jf}vvkNn=0zbJBxtmZO79U3WH8rR|}%a*$x>;^wLRL$*Nii%lD@|t-=K69Eu`Gw_a2>?2Rf_)7>(pMhTa48ktztCz~oi1tif;7to2U6%ET=q5CHuY)bqv zo;-EhW3$$?W~KPxTbxg!(fOxY(*;jE3mW6q=ojyeS|=Ix9bW60yq^Ur^;z!uGUHO? zjnI=tzOU!9#$NUrus@%CvznWdMrqYLwxMhSjbUi@7C^7J4{qqg_>+VerZ!zl7tv6! z8{Sm0*D`x-j1ElLEg6q&+R={G8X|${)hE^q!AvT%I{8gA{d{^lWO%hfzPYN?tv(_m z5<2{-h--!Iy?-RLvK!SrCU~c3XZ|i`7~d~Mv+~z+RUhlP^923Wr^yt81;`rz>r=)& z&6W6FbG)o`Pp!opTP%~HKY@@!u<++EUrcF=2B@&|-7C!At^;1FeZ8_r3kNbGSEzWZ z3Z48TToPqt^QST5%K@U5;^33|Wz~&=4s&iLB`SENj_l3cHaDw&wu$B_{Kx8Kd=haZ~L36+Bydd7_ zBs2G5E!GIcfr_#w|C-Yl6L z7o?b7frLzXD3x$`rY~1<*6iX#q7as)1i{^s-Dj4|pfEyUj)g-mZS*{M){qTAxAfg? z5_yy^BRfS0RRzBVo+O_n3G2pZAWYtgs9g267wrphMukA=7gS_wEG1W?L`hg}br6qv zgdtFm9?BS*iThUH{6%U|F>4|P)0*>*UKK>~Xb2(Wc0I8dlkUJEF9Uft)An!eKONt} zjo>+h#GP?^EiGb#y0NLQ8h8;5_GRp1o*i!Yoj% z1|p+;0^UACkYfKdqaa0bxJk}|gjZ$zQTv2m_j_{p1r_RH{H*A{p|`O{E9TP&T@dy} zMpt(Dm+*4M(8%`N>!dFlI1+mMg^g9phy+RP=qu;ShS8|FqNXXaxG!%LXds_-r?(VF zEQW>Y|2edKMuwqk7o*5rug(ie2OU9J(qx3uj?=-aFm;YHVILCg5`E=TxmHCS-9+42 z_z>%|2BOLAy>-tgR)VDu;C1E`Irrg~v@vj+NI;X~Q6{@$z>dq7>Sst|_H#_F0qfrJ z=p#VXxy%XPBaRsVnX_|Z^YJoe@W*TiZQfV7H7g5}c#y8uzxTdT66}l;GvycB#vDnb z0+0PB6Fckf7x{G-OO@o8=ngp>aYBDyIcu0e#y1I~XRYayhG|&tvmIT~u-He3PEf(B zo!}CyR09tuYPu|w-I6~d;=jv!^;GgFe3vMsezT#rsb~;ZxBC_mV6aS(x9+|$KD*v$ zX|fd}W$(2EO^`1QQE3l>rn^#%4O`aeaXDSD?VVgCoJ2dt&z+&3q3%LbBp|VV-nnzW ztm~007sB#q4^KQQvFeX%g1LIdn5Hy}h%GxGnMql(=MyvOxH01%cm<^hlO!XWS8j_X z6GiBN`Lry;(q445{fo=P;V9J(iFKjfubcj?LRWt4SNnDsdlyJ4->-sFYQXQ?-SO`R zb#vQ8*3T`UCR(3MUgur-u3YCk_4W3yswhmaw&!lEjQ(q}WwAA3Kfr`7=$q`!Dw%k> zSJPpu;2&%r_lGi#J-avWp(XU*UAor?WR3Qr2}AC^O<)$IQLH(>U}cy6otTJ+WD_Nn z75bYR#9`7#rczT85=<1&HtXPVxDqISUCq$a6{f@V>Y7RW!b}yYBS1GG!c$DeCA{!w zgM%{lP7fk?5+w6%V>IAO{C6p(JQr&o_g!lKJZM@LaW>H^@xOomk9e`Id?2$tArFtK z#h-tz2*hzM4r7UKXa-mvvY4t@&Dx*&?mHK&RYLJ;>tX`7;TYyndqPr%gQsw0x`FG# z)O~HVaJkM-*~blNfl`Kqfz9h@eVp?7wYR~UPxq#qPCj` z(to9QS@%7TWc5=jNe@dBPtvWC%-TW{pX3u(0yHUBAQQ1?Ea-#wmQUXq-=G(!`lHqc z@d;oFS?jjIL39kp!}NthN!B9eV!8XprV|vPa#e@Omb(n`1b3rPB0(Y`uARsW@Ryfd zI#(X9gcwcD=I&Doh;~)LNN8(sGb?xM5$WA%|8YW0tRfLL)2Pq@wF)DWW0#R@8L!9` zVUj?cj3y91oc@&F$#@*!(rqwFD)7S~noYjAsII$3-bjOvxT73CML=#ms7LV+hVedTqGgT-CetkrBu3IbwQ+Y^K{ z?6wS%0cvd*c~E4S6&ksz2#PyT7Go62u_MzxGC6DBDct7?4ry(YHEixofK{oR9CKtkS=d00XktfGolm5t@awsKgf;!SI zVUL;z!r}Ld+?;_{d$4bW()ipKcExZ-bw%k^QPF;UqjDazITfquRJ9qY>bce_As*-8 z&qRJ91*~vFH0NZoa^DotYhGcu50Qs1u?Szr4Ji_V6D8Ji$i~u&D%P4vK^saHL5;PP z1X{uqSvD%O#O$wl)#yn=5=Dj}!Lnr?zLlcJ@SyK|%V=D^k1%p>!8+Tcj+#aN3Nv~P5 znEOK4a+gtDU!6~x-yWI%YldmH%aOb^zD&@O5_RYlkS^&`Is`q@^1M>28=I-hYPIv)0;s zCFq|jLrNk@rxWq7@R~&UPgcWv&d1^@M~$(&2^%EU?6jE&v(|CQZ;*j zP4q}lw78ceNqw>5kA5uWhd)v@5PpEGm4x$_L{Q?Wf)1963gn5OWc=uto**NI-)QH~ z^o$y9yT#&pN5=m>STlT4*8;GC3*D^-{os)!~wiADW0F_$F0{p9#{ zV?=H=k=d`iZ8vvFu0)`Cv?Ph7srXw;{La=EueioQrUe(DdS*!c5Vx!&3r%c!zcCh7 zEqz+;iSgrdKZ$S`swzJo-4mH;Z_wV4G~=xzfwy6xo%E6;`Ow9yXDl>b?28$_Aw2R= zj7gS=>y}y0(!23h_o)MjcES#8RM@G4s@p}&$w%YQcO^_EsJzji6My4z$&V$3`_4&7 zn%#M?(3RPWle~Fl99=U-ALT1`?AWUIr}{@47qtCHu1C5V8tYT`Z!q9znLdAGS0nL? z8Gz?*I=t)N4LnXKKY?uFCg5csEoP zjU29zFG$hI+RxWmGR#p#()w~4H!v7PXX*Or*HQ}?&-gF@6j*y1;La!i$@gbxC(%rc z$~mJB9My3!5eu9vK>t1{MY;y-9m`3YS`YK*YwItPd~-{hKw zk1g5k1$z#D$Z=Z(w+(*9>;{to=81BfvTTASJa?&!F?B=YIRytzr9n))+vz{9X4dS1 zcbdDzoEjaFzWd*dYun)KA{x&}ycT}FI_xUz#S#&(P?p%>x7SS3`l>OX=D6)(m=0UH z{l{+a?iExN3|0E?zPC!CXN(3WEI}Z@1%zqYr0`5IF}N+_Wi%y=xMmp-&NerdC?wVI z9UO2yR_?pZN6@k)$W*7?g**-A@5W_K?q_{U z`1H&{-{usn8mp*eeyS-jNczLZqET8P!HSIO7qeFQ<$7kg#ke|YQuEQL?52Ou# z);#T=$$e;jMM{zBrg??Q9_P?_z6_dlneCPKeDlW%MlH^rL)%E)TCVP3sR|2)!g{LBv! zv+)EKspT3)M{fRWH-Jd3<+ja%$JV5c|IX4y>v@s?#nw7_kVFMQd*NZJDscRbiLexT zwx4~tb-sZd_s2$GG`WXVdc1L0%gJdy;QRb6=T-zGCl^-_wf(_?o96B~S<{C3!7W^q z@mc1X@x|uM$$Wz!PCTv_ED3t_nQU5oB2Nxy2%{ZPTO2MF`L;G3Ruqk~8y^RDCkb?_ z|K>J8%|ao#miNwf6IS8gkW1uyk|6!s7r{|I2MHE`3u>S9d8_!IAgSVWEVba|&}(;H zsX`KIM90-oqLsxQmDYoq9kX`v$UiUhtyCmTY_B3ky?)!tQv;bbMN0+yK@`hfS*+Ul`WY4ML5=)50>3@_73~``$SiAoGhj=Yx8Z{c9ntc+&O)i-{Jj`||0V(nDnD?s_n0rEdi+34LZdG?1CdS#5eU2&GI z#BYx*i8zYbRE#2u_YZE#lh@?kfv%XKR$Z^OxT)FCHJyvPjhK$PHCe3U1?EfyXO;i< zAok>uf1pY+{7&KJCiufdx7EgSM8^ngn7U)}j57*<3c}t-h{(!r3Wq@70 zm0De`nZ>5GM5K^3K+;ztvU_73T08F zlCs1*-16u*?@w#xdc3f>p!>q*BZLZIgQ;PT`=wsW60#(R7ju;kf;>FSn6};f?9x7b z20z9Q&vC=VlH42|bq*S92C9)3!PUhd+`E$3+S8}-4W4|-j$dSkHahF`S~_M8TdRm74m?rhJ|xY|`wBZ(-BaIgMHdD^TF4j2_vh6BzJ@MsRRL0@v)EegIRfuB| zu=Sj%JK5u4LSvTa7`cSwLJt>0&SG~jMuCy`?2jw#1Uq`g)-k{|e56qmp-dI)cesCe z4ExoYt!r#t^hLyPJmk@JX1)^8*IzT98tcy*A+Q%9$w%aQma-_gDM;y2%gF!nU7PW*4maavf+9GAScH3MDUWoBZT8F^!c|Ig%)-tO+Q>1i4}C%cNx z%|e)5cyEv&y)3W>uI+oX@&ac#!Xi!l6SARS_a?VMw|1C~jh$1fuIE=z<@!1m^ug`h zw>i0`dP9U|GgPRlX(j+gI<_icXPBX+q6#_ds;J&u(zlQc$;`~I{z{7c@S5MUtGEIX zCw(vVv=&RAe0}=$^#xeOTtE8=qXLT2suyFfi=$z$^74Jh9|I;~&M)dqe9~&5o+IK$ z;B%Q4FKB@`4qIo4Z++v&jZLa~KTwBCO=ZNcT~G<^BeA?9lBN(GD;pPKd#}fpNH<(_ zgJ<1+;(tiE5`xLNbWlGh-s1m+z1N1p-izf8JB<>LS3bHs?;91j($2xb;Sz9jMBPQX zl$KJcSEq{PDwXu)xZ7I6!*c2!tC?vDcW?r*r)`v4bUF;JzT&!FVjLW?o^Q{NkF%t2 z@TK*x@i9OstE&^uL*L_>C4NYpg_)#esUkN;2{6#K?ldM9dvJydvP9f6lb_^kK8)~! zA*iqN&8MWsZ%(|_*7ixx3MrW=KjGcthuJzhR%R_`DRwnueS4_vAv2Kc+-*o5kW6^A z%}!RkrdpEVy*B46IMSPJEoa=1fn_+g(o2enRGZ8w4U>*PiC|u3rkkJCcCHyuIJlx5hoL&4(5bjg7%tpR!zLA*++eZ1R`E_wsBbCREGN8Rxqm zvcDez3PLppICyziva&u*ge33b-^0H(nYgvSTwDXdj8}#m5JFZ1k+}PDl`ad)Pyt0= zGREP1vJZoa9aBBr+;r{i?9guf{tXa4{MR<$de<8dCq=}379-r;+)pC?W$)6k#Qw>6 z$j-(EAR$a9VjKmF<Qi$Ggg*loW;`aXHrUb#*3c9^>7Thw!HMF308-Q@ zT0tBH+#eB|FSHyp7fj}M9zcJ8fu+;HAS11^!WG1V#N*CUhSsRpTXhFn8! z6|S_XC>8fV+jD)rRrbKfZ@L|rhU>~(W`*m0{;UgM$6`hE2+r#6FH@?qV4kKp>&&s) zIXb#1jJK&KOH?qzGB}aGyCr9**-~!V_j9k2nD6dEIQa9Elj0wkCf|+n>$%aI_zxc^ z+O+joTq^V3{;;#Hv9fmDef`jeSibFaqRJ51=p3)4%b#Ka0fAcUcP)^o5oCOV_#CKG z1V67OH+nZVTC!Zo=pwHD{k=dm1s=3SQp3=}DRjpVxNzEEG}KE%#VzK_U7!ZAteB4< zc+J&#N2c8FW21sP4Yi>Zn?G|yIuRShF^8MeX29Upanus&6#6{Oj)R|Z04GYZxSFfU zGDR(*Ye0A=qbSp7iccnkcptKl^!(^pQc=-*qYy`L-2t8_v9xb|?f2ZwBo?rpHXoef z7|_Q#S@FcCrO#Et2@E>tQ>h09l{8kvkg#9AGzindY-!otf`ZS*NqWLL#GE?Tj92kg zTwKCN5Z`n1cY96KhSnOfaS#&W=u|kC+{2sx6PJL!vGJDBZ<1$5o;yrXQ)2I& z$a0@0wY);fIiVvGUuRyw9Tnr!U*Fk^W`BoaX}1Rx6C(oo$x30>KXUM?_bI zHJX7==Xv9;{yR&*zYp2{Wd}V&Jonawri)ubiK@2`*Y|pTzOZ9YJKAX{dWdDv97g=9 za&mH&2P@fzGww2rw;ss2q_+AlpFGN_SoTUx*U7_lzX4;UgA zGML=y(?<^p9f^I`vg58bk zjNi8K_1r3!@=HpZro7N=@E=rGDK9lIH#sWoH_@eT{BJ--%Ak2;Y;{cK73A$bJ(myT zV@#l$%pglf^97UI-koC`$L{lAUa!UmdL`Ec(oA!=8P=Fl+X7l2<}D=(c^zjp=igH< zW#DA+o4&Qw086(g1r7z;j+>fCIR_XyDEm!3X6=6#5_w51dnT)=+pT11SC%yOD{JV2 z$w(;H&Sc8dHwHVTeV?XK){0*=hjU4jlufEbts#{xKe?wAKw)S1@PBvK@4Th3oID-`P^cj@f$W&cw zZ#|B85(P`I{e!s1yVuY*l|1nZUn_$_+^=+8FDY4?gR6S)4huuzgL#_pgv*J{y7`y> z`g=|xdasaRK4y=Inc@+xR{%BK<2dErqW$HsJUMM*jtXJ?KJ+Ae+BD+^)AW~ zkj;62OLfZ3K>h73SXdJ1y0I@(BOE4vFPJcoYDr4SwiRj3c*$ziPU(m7_39<+Y1prS zMhD9lS+xTALK`ImDS^N~y!6fBF!z7Lrg;4eOX|2Ocm1jIW5d^uboFbZ`8 zfWpW)Q|YI7PSD;Bz1Jp8&&Kmo6p3^m@de7 zs@s2EN?Ufadi5;@1UW~M^h}$;l=$k;(-24jDr0c%Hnqr`pKJ1G`z%tGm+Zft&Rh;T zgaPW7rxQIGYLPWnW$rC4{7*e0AkERW%RI7BBs>1q1%4z#lQ*pM+%{wDYCV{sn$ z_Yo%h^<*UtJHonj%9t$1FZ308qGF=d0oRYiSw3u&{tr#g;&9W}F|>m);?~Ba41lOnW`_eS=bzwX~j??R{88Ru;3^ zo9z!9qvyHQ;+{VYd8&N7c-Q*1UW{st+%91hVG`KqoZ;i+Pq#}PDf)G*ovE89s-z=u z{@%TNsDaQ=frE8vf+L`Rj00#CK6k>pwzd(D5H|aICScV&-gFJmex!$bgacm=(7P_* zcI4??=p;*M71fk>l629c%>U5e(}0GFYK)DEoYOcmUKd#Wr-YT0eb4*#nTeEJMa8C~ z^l?}uB&zKDFJ+I>5-GIis-7RVgQe1cW;$n--&rMXVDy{iH17qO3Y8T)Cg~Lw_su{G zht8irPa|}MV(75x&@=31~}Lhh47BIkB{G-A`*Py z{)x|rUY*HraDNvHz9nCtfzr2GS*q2Ytqi~M`HmT{AveoiA*;YTPQ4+Ko}~G# z1QTQtn&yjj@`aq#ZXJ#zX&a;p-;-HbEX1eA%pJftq4?TNnG2O~PF&PkLsjgK3OBTL zbuB>ZR#A5v*oz>jSh8LJId_dqZ8lX|z1O*fK}e|gi+tQG{``i9VcVY6lJTUn{({Xr zDH0cdh|WJ}Q=>KB;VdR_TN68^?S}t&pTud~x4etw%AbuI0~~SvIkw1mf`C%Udt5p= z@*3`Ff`!)4+~;uJorI{w7TgdHUyQJ>Sf>QL<%G~B<<6g&2Tr3}nhtL&1432czs$W_m%B4QIge(_( zzN`g~<9*{s6(`~q!FN=qjb9MJx0?hf%Ip%_QQ)rRbD&~ed9t@u>pUS_S@bhBEEuUJy$qRu!OA1@zuDSkSPn?zVnbvL@Ih_j zXi}qdOlGE)CqZ@#-qA#aZka<*idTGc!jY~{*7}u_)R>C4kVh#d?aikq z93(P%-z|^DrAJX=i>tIhxvgJno(p-J5t_0r_<@j!1fty^aE22% zoO_NqDqk6x5~+Z<$m^H67jz>Ve_%-O=2un@g9dw6p+wZBo5j?DOQ1)#;Wndug@C{? z3C7b;%%@p=mJHtlVU4hlm;=C}{mO3(E-VjCRWhLy9lD^pdMxA{zg3TplW|dRv|M zjJfHYPOaUyqB)eRx4jy9r1+Z@ee?Qv#F-YD#oZj=HOp;QDV=iD-@%N zQ=BP*t>c9I;vnnV`uhHn(iTGH)*QrRQh^r!+Ntp%3nB!%vnLzRZc^ttSp< z8^#*_kpKqlyP+J+nW14|gIw}GaTwFmGlmXDa-Pi-IXa$Rj`{d%?@zB5tg zqmAe%_gLd4jG*0+MlfcYs;HLv)5T_i5Q5sBbzKP;Im<0-m%^X8dn zjE>P%mOmX|13qfWwr8xJ)^FK{Tue;NmzK4o10XUwq<|7e#5zGMX~_qmm)8PB$)mHc z;4fU*xgUwC?W>zUke*Z_9;Gfabwm`GMhU$*M`2WI-Yzy=#dN+ z36l5;!pUV>tf%~26TO{7{W4~x;O#$(tMZtHm>3$&V_OG@0!euJEo&(3XHU)+ z>$VQj9V`}wwO#}G#3X?nR&IKx zoZKGtp%j|H?Or(ZTlb`=q|f1}T2se%-uq`9!-c10I@_47I1G%H>{oUz&Z+3}vWasS6l0EZq^Wc!9q!X^Z9e|J+G_CZh{8bkv#zeB zWr#_NXGA1@5tQ4|7V?0@xj#5b4_xTVfqz`Brt;rx`a8p4fa^bN`wvhYO{xQkOC&=} zhKDYM&NKv~1B-e2HlsCsNZh+Gq#(P}(M{;V${)oWLeE4S`qY2#gS=W_jf)k>C%%B0 zuJ;jlpia}`aF|KQPkUfwr$67s3k#RXwi)5n74H@*_NxKX}31;n4%6C3X|5;oB z*-+hUm3Xc_QOlGySL(NPon%)FWmdH}W@>w*s3grnbL zqEhu~@TH29+F@YzsY{1kK{1$el#p{-K!_+&29%tPtoZy~vXQq5XYg}6FI*QaOz;-=PC@V45cC()6AcL4yrl%N&DCekQnRh6=c zh-Vi9&wYKRg##!KNasc)HP7xU0wj$3^yd$5>z0qieo>lvjg2z{A3yLd0{f6lX)D-J zo`9jgaF&sHPn*#OkD%~F=6Mv(O`S-I+g}R`I?q|d=H6I3?TDb4dL;jW%IQvv$i;KA z+NOXjxAZiL|9(oe)#sNQ;iQk$;2lE|IdMrz57d$vSkzknkVWgwm=*p5;_lJA#GF<$ z>0_}CX!RAiVJEjB?k8?$#$Wwh5 z=Sjw}#dnQk04CLj$NYzOcBW_N(56}h)DC{rj3fd@_bN{fJShZkZrXz$4!Can4g9MQ zM5+|zO<8X}GzUcT%eRdklaHlmP3J^xEK5sE4gXvYI2c8XhF|Z9W?}*>n?}H(k0?5( zroASV8N>o~;ysOU2%(2fW~RI*p;5!4WiB{!a&P!&SHte%^fz+N`1v?kSx}g{`K#0+*qM#NZ zX2j7PtG7QMfOQc}Ov0=&s9YAjO~fN4uh1gZ>|zZ*?jTEi7|)@~6L`vpl!%;6V}(nm z8Z*r&Ed1K<%ui693Kql8SxSu2c>9c;m9=AT%;KWS#ECmC9-!*@^s*63)ha8wc$%7L zC)<6`%imoh?sx$u0+pzMdrBvyXU{L+7(>JNSlAlymUENl=w2mM&mV71e0my5j6vPf z7FG0_pWpDn)cvzd9-5e!8MqTMbQj?QDAO+&0;Z|iu+n5Mi=;XJU#JfQe=GK_sA$C7 zrv@aUv%iQOb?!F1QW1!%lSqr_plyExM;@ZT-w}Zod9d)PZ?AQ0fP|+1=i-ow! zkC^?xr1v`8%-DHoztzac>Pv$XMfS*LO(P(x}59J95iuq zBzHNuXy(afRrTKD^%Q%RXU_;n64C{qCE={U`#b`VefQ+joae$`+mh!`fhDamOL?Fs^%r$YGMzBbOZa!3xGJ-(dbG9Yk? z3(a|@{3(7|Q%f&NsKH*-%-Qs- zq;q!k9rB36(`mhux6t3IZiL4jM=8-pR@;4G(6|{%=7a?QYPuD9gjK7GF7OeXm}H%& zp5HTS85NxDK6GZ8nB=N*iI@;sjI5-^k(sTp?Nq*por#Y4!x`HqdPn_!L>`Jv+o8T3 zcu5@cwr#9mYbzuwIg_K|-kVwI6cpvNWn{$H=LixM7w`J@cST?M8v`Q3|K1iafATl) zeu;^>SMlP-3r-2fmeMlU(|4RU?8hO-lX1qqljNt(Sw)S#T!KO&4IbXAykG*J{~I*_ z^XlM4W$_nj4|3UbT=sUs91Mnqg`atO>(wwlWS(}TaStQ)aC0BcjU6)b&#EsFz`h47 z0mRC`oB#6N!4RG?VbY_cufukBjGm)%az+=s^k2)hW*V7$GF<1Jz3D7%`my#07+>1f z|HGvJeIcTDA?9wyUCcbEgv3;7X&DEg{pE5tH@QH-v$E<&XEqlPJ5eg5>ZjgwPZk4i#*RaHB19Za*ElAH|g{rR)J?(}No+%zEN2#X81j~@ln z1vqQGd})43S$>MZzn78rut$6bWmD$hP+uN7A&H7|_;qY{idvvwJ z&c0{Ti;J0nkU&p?tjMQz2!3w@Tv!>-6cvjb`s63QEpB~vfnotgW#?U9+D&RFBY z`+1vswl`=)b5IOKcf6Y?4Q&liKpnSB*SWa38d@i=qUO2SJHLOo99I9!MHPHdfSO6@LmWLJ8MHu%tgpW?)K3XzlJvc6l}j`aO4=rFy$XX-5{_vTVh z_doB883xglIi)i_J(a=H(-Uo|o3TnsLs1$KaK+#EIjVs+qbvNtY?&rwNLDzR*DUM) zgL^eT1y$MY|{inIje?B6L`l0Rn zTiI1rBWg%VhpmRasIwFQliouispEk9lQm;~Kf^BvA-y#B>S(joLf~}{7XstaRnk(# zmRKw{%}!MuUyq!eToFqh>U_wkT-H$jE810YOY=P!~gT%g=w`}($9FEE#uUaEn8b#LCN~2TfH84rQSw0p30#2 zC;AX`Q`3(CxYO0rinp*@n%tGHQ3@_Vqh)8J|IahThv|ATC8YN{{X#k%$1a!U`C8#< zLEKR>GD?k$kJH!IPB=I^Qkbc~$jG)DEe}&pmaK0EQLTzUTm4@Q&ZZ%cLJs7GS}zSu zFTwS$e2%=LqOv`=L89;Bg|MU9@mXdef%spYot%wdfBgQ<5EV5V>6F4dWjHlFJ-xVc zk(88VK-_d9BU*bY5i0N7%GjZ+k(#z{4J~^3GvUgukW3b`7gh!7Zy(&_2>esJd z`QR+P8+(_NUb0D^J6g|4Jz6Z0EA(?q!`|+mZwhRdO3J-UvnMWOrzj`CIE;9!=^Nsa z>-wlhQBiOwK(WuhJB*i)X|97VAfV!*a(+O4>Q)@(VlR**tdChC_atA8*e*p;1A!M@ z%zZy6TrywtmG1pYZfE)*6A2$)!{!=eh(qV*=xaxRW4Q9lta`o2WvJAvt_9v*xma!i zKojLI++bgjj;nQ2zC0BEj2&sYFp#ZFp_WXX@DpWl2wPd(*mGF5?F~5@#`x8cpf^ic zXsVc062`hd^UL6RM?udf2f#F(NG{_AYAe~~RuT0F3!>XwL!I6Tn;xf}Ob$%V_vApJ zT%M6-!94z@eEfbi#fB~~N=H^~?d{7?PkoW?q4%uAZ`O_S><6^yH)~ zXdThgu@rD3{<^EMD+u%jNS)pkN0E~GoKJ5{a3Zx#I#^94J@XuU7Pe;qgm|%G?clKE z)p=TNyzRll-*s#8>3qmd|CBq9OMngfpZJDOSCLlMTclM$&U{M9mZJ4@j~iK?iIA*) z5R8weei5yj`NmaAsU!Z2>kvV}@xU0Y15i!&=H?G;hBtz~zJ2s5!T5CtD=XLW8#njh zO#Yg-sg`cv3WkmG7Hm|dlAecq= zt17U71&hVuJn%+*Lh=&B7^YRl*El?Zi(u`KHx;qn@<8cArvp%RffJ7+S~HBMqCC6`ON%2TYrA^KDa- zG`t<@w~TW1(vMh2!HFvEZ|T!W!a!V`ltf|3L(gPvVG(z!y^DY6$)Q&VlDjXI<9tWT z9Kf2?LZlklnN?I(O}s|5Y)pSp;7B4htzp~00QErQ$q%rj&h-1~wG(D4NC+g{e!A|Y z(zi9NFUyT)23+qax^&BYpDp7x6EhI>5xyW}C^X>K>6^iP{75|TipDCKa@9MghG-|+ z>^BQmW#;`3faeSzC*A)7L8q3O_&`xuJYO#6P(Q{}`{~m}htcBxMQ(#-X)PC*kDNw# zKjW!1i$9?X>kiuISpx3UCP1WDJ~XE@0<^o(5nr0%Lmnb!=?M~N;%w1o-mwwT0?{Cm zfh*&sERWo=?4YzTCpU6&f&|hg#f;eT2!_dzGIEuNih#n)$Q168A_2@3+(wKS^-qH zo6Wa@(WYa46{xEzkEYx#$J2<|uwDy+5L7yC8Hu?Z7uWhY;u$-?$Z`sSX8)hKKchCWhVw z=4TDzn5!Kvv+i4I}6q5L!&9(Wrh<10YW*uq?7c{k3mz8NGDVxN)2hV;u zd_PoY7O^{j-P4?={IQVFM#-gGpywUgPStDBWngT$K;76)KcqyQtnK58OST$ka0Bo^ zJrUQhh1XkHnj3tm<$qhB7JZ_?c@0euv$-U~DJ zzT2`4_g7G8F~FSRLjIxx!6?cGQSOdZB#DUeJ&@Zp&(P48d)U#Yc+Xs}0aUz#-k|gw zTSwbF8|!b5+B}7loo*birD>i#hEg%h42Gf0yKemRo5-kUa1%q!MK%8AbKFYd{TJx| z2iHF^DiBWSJ2kAV(bv)2(l?+K?_)c0sP8pCH3jo8LbKCkQko@XY9tK!CZ8)DKk>xu z1q8r5yMC4j1_t)c@Im1pV>O$tIFFtUHs1&-4&k>03d8Y)~w$!CKMU#NwSM~Y@<2{}`gg>#%oQp6O(nihGE@Foj_bY8xC zwGen;8jtk~QS~gUGX$Mz-E@fh?EG^s2LJ^;zXcl(7K{A+8r1PWb(Lfz{e~BNlebt8 z5mpZgW-U}ymE45l#lB{#y3&Wkynu>Me1o1r4h%6wZj!iYnUdjliDin?Qv`mHSz+n- z-=M%VKfR1G;#GYw3A!S`E1w5$LKD0ty2sDNB;t$Q{F1Y<_u4TLkN%L0?42MHp**@f z806d^Eqjtyn(y*{2O@4s0@nz?N%ow)xcJlu4Q0OBY@94Yy-WL}jRFyr{wxw3X2;1I z#>RGMerKuDdvL~oWg8wXM}pa79@^Qm#+S&^Y;@(p*b&j>2~qOpEfwbPWj;W(`?Grs zAg7(3y&mlCHf$nB?Ro%mZ9X#C{Nho+Bve+GT=E>$e?H>j&DI)l@e$=put>~+5Btp=% zKHOIQnj@0Ye{kR}Dq`zJ-!QAkP(XE+%Jc^Ei>TW#Inr@gp%pwE zC`L`wEPZ39suxr;$rQQDQF)s8+<$N%>&erQpunwfHh%*u?T8l@q=*of)l)bO&wCHw zrb-wEGG&Lk<`Ay08dYIfLwv<8U`jluMy7M zd=R3^&Y*a3EUG|AeR$4q^p@@;307X;ePfb*v5DrgdFfGOR#w}eB7l?_kZiN*jL>XM(S@jU{~=7C+NxOEa|%F7*LAj(=x%*iBCSPtS`UO_+u3C&yz@w z-;@0`ld}3qc$<;;0tD3Nz`GlEKpE$}y7(N1+6H=Xx2ecZGPccXpdf!Iu?|30qq z;`72^T|j}+1`I`xkVjLPgrllazekrhg;Uh<$%P#hA!P5h>ji={rII9xg{TAR3Lh^L zZ1F}D_j@9D7%PPnyuBF@s!ZuPW+T?tSIfhG-PW%%393KdWk1X;@*Qe8Uf>S(6yLaN znLm?p3$2>)!Fl7MGfSrP)vi`k@8u$epmov{ zFsq^9(W{z*i=XNbxs9{!})}tvFcb(+hHNsh@ zC-h&wT(2lmTsuUQs$)ytr$ie|)Vni&uEMw?P&p(tMeTA05CSb)w+3g|FMf=bbfd-8 z%{Ocam53B=YjiH0Po0BktnT9IZyw#nL_QCq6Y-cf@BuAbWbULEv!wd|rXecPK{>~S zN8-z&BhUHU#4-Qq10{jP$)G0JJHy6&-Kya!C1C<5c@8a9$lYc*3C`55)tR!@G^8)+ zdBFC-=;$BJ!;;o9Ic3FQj&Z<2teQTMCdXyQ-^EbR%iL}vvsY=vGz+c=J&pieksE#V zd2D6OV6oz<9n%cZ{+cplnA@Lbn0LXdyk>qgR{Th$MCj%Z4D5}0Ip?Oggb1}Q z7&Y%8Bpkkg`WOfJ=`EiWk=ec3TORduzht|@y010J99=U78v2D2M|{}&GRl0)B=wEE zJ8HC}*>3o+*5$vqLte?~@*Dx-$A2m^dQv4E+M{VJ%oGS``lZJuC%H1hlR0ifZrhLT zS{#xIZ6ZCJTO&>b5$Sj&H%wNWLmnL)1zEbluH|j}B$y2Qn+o%U!?~h=v!qY! zI)mipWlMVC0D`2SrGGJX2h9-7L^HPKjIiO*!hc~#FOKlfNT;Hp*gqgiG_VfaycQ63 z&#&Z7RC(;-;LuRD58JzJSq|0`0!qR0VXM@gbH+h>XL`g3!eUT(;K4)x9G1T`>nBT( z4WlFqV3U7_Zzfqxvlrq%V^0%&5#CTEH0#Kyy13X*Tg8GL$Mndl=O(7C+uT-CUD^98 z@xsZ0?MWT3c?JQ>l*HV2gTLVWyQ*o?9*xxd)eBLv|DT0SLc^=EHlDnNF9u{W`76yg z?CgcNdNRdyxhfy)vs9!p?<|TOBtGEMvoEuh3nsb_0Yv3wH9v>gWn0_LjFr{RFh^d= z{nX^87MYgenUO8iuKSoYQ`LQohcAR0`lGfx)k{V@G@^?k`@cXv9riDgv1VL9j(JXP8sd-ZR1U?CGXcdv5iuc@bxhp)Iaerx+(ZZqKEEf+Up zDyr=|ylU603l2|8GSr?s!{dAR<3{sETsippJ6G4%)_s8l?APZ<&deJ8tWu!kA0l>W zsM4(69rq_a+Q8)z2S+(jvrUBEXLsnwv~Kiej*EB4Es;2=7g!j=Mn})UPQ<WbBLXY0L{hB1Y@u`g=%v8`p4#SkETx# zis}jPv2KHU6T3X^qRQ!phV3yMClye-0@u9wFNSeL^fx69kdC_hVsl5V(|YdN?5Fx2 zia4>mp{?xzDhF__@iJhbqLRS5r>9is@p?vbqRJy0B=3Yk*t4)~p zIWoj8NS$IRNF2p^qc+SSd!8L10a$A1u<-pA*LlhF@2aVWJ>*vQwRjRm&)` z%;F}vG~jmh^!5EXh-gN)_AG$9OHw^PR%4w?CrbtmtoA_%<+R?@tIf+I7c?BGDyp$=T_m2A3PjOFNK~=N(>8tXCqv#UX z=t{L$#|`F|mNh)1WQ*;usY;AT9vzetn_`s0qRY5@ zluEy^@A&(kC`@42ad?H@>zB3P2)s}QVq7%Jj?O?G1qlWD=52jo>qH>-2UVQ zxIg&bq#duJg0WLk(Ztl$LYj<=av0d+C*3xyIzYUkBe!q|Y631MX>2Lv4_t<@dJFnez)>_O?f_w)a-khOD`X~RTO zgySC54SHf)pwc{SA1#cVV<)f76geXwvM}j;d%uH7 z3g@%2<=G#mR0CCPS}zB`Wq0Lzih+u%s_Ps*kR6AGsnj))R1}n!x)_+lCRa$kL}9_y z@*c{ZEaPtx&-L^c8PK3Fht>-{it(6*waHu8&d#{h=;a9s@4Q1j)HBhD=}vC^F{Oww z%CxZ9T-F0=3N0ner|ikvYy-DyV%OmOz`(2Q05#!aq>>pMGZAkiVPUzwNMcIDK*B)H zdQ6Ocz;WBvV)2>NwUTCmSLB#i0_neQ(EVmAb#T?pfJ1HQ!lfg0FR@5{pJYg6!uUkG zLhS>g6Q29cq`xWnZVDeHhEqlF(9?9S2^*greibC&qhpvQ)CCxHcvFTil^BubJ2(Sd z+^6{9Ee)(+BA&KYU~f>@vn`<#7F8?VM50&;qW=}iLDjh!4XXyE>1$qDOHR667)m8! z{OsoW@-hN)-Ar@9kmw-xnCi+m6l$=ws8uC?thrU?Ohl-U2SIG}7a zF}}bGtuJUdyjB-K$+(|zZ(_k(HOHsv$B(zQmDVhd0&TayS$6}C_9URn@{F+`LB8C% zNx>kG5RJW|#!2-mqq)WKF^}+aAcN^I;6~y!a~e5w$81jkw>r|`XiN|--08f}i^u)= z@n{TVXhD7b)QcCI1|K-MxZK-G)XEpzm_0@!wMX)bs<^vmv^<{tmNIb35J0ycRqzOc zx|J8p7ktofoA+c@7oW-`;yLtty-g<^83z(0^BJs`ISp{u5`wDb_me_nsA)Q5I>`QvGMgtek-+!5;FzE<9UhSU32HU#l$1ySBw5X_TDQT&bEvDP7^{f zB1)o*l0+wZixw>iLUb_%QAhNisG~>pXdwjAdnXt~^b&297>N?S*Wo*d+|QloJ)Vtk zTB@`8{0PUoU2w2)6)gvn95Sc)C_qjerGH@p8h%5>%EIibiHn1{ zn0qpaM5qsCbY#^i=s$Enr}h(+ZG?TAAzxZq+Hrk&w1x%p00xTJC5mHRA>m3M##U73&@N|mgl#i!o+3?rPp$37YsTIB*l4+3G= zlJOSX$@>4*uNEf z8rYInY?`&R(>P8lhy4vJn{ zPp_`Lyh3^q-&99Or)FnoXS^6ptIW)fNt(KLC5H)pIC&(kffL~v(o+T+qT;i#8orm^y!t?a>|a; zZr%(iRww}gd(*2cP-;$Zxn%fPpC9s%VX(;i8yn0i+g^}Fu(II`7ulxL1UeRAn~^SV zXH)pA2S*1CEkdbL5rk-rU@hqC`!o${xcEXYL}#WQBv+3R*`+p6j(Y&#yAz zZC!}de6-JABo6QLwE+}oo$~Qy-OyV$yh$c&z*;q#VCy2$_5Sdo_{idgy$agc0oegr zZWUZSJQ3xx8HafBP#$D#pmokIG78!8Zxx7l6$*OeRPl~Ybu!S_g0t$zkM;WQm%EeS@AW?$+4TMB zyPI6eyeDf8++d>q-JtbYB3fvymrB=YfSnpYMlA-lpi^b}R<=k2He`CT2vD#-o^zJ; zsQdME?jX$Grs~-=nN{<8)8IyauuLc%k8G49IVrNMiMOTkFi?$l^Y)xr?Yz zE=A{BA9$?<;5eYX&il+ z--y}Ak9$n5<4-?t6CBgm!O5u_hEa&( z+$13xLuD#XipquYk1L78psE~a;F^+uyR291uM@>q@JGSI8o}j~t*Rxbf6iAjGBK3+?7S_f{x;N8ZvoEv*UU3zim7 z5%a#pA>-OZeup4?XEjogY|t4R?V&C))SSjspWX}zB1RPa)+IX>V#0*O{;oxU6wJbY zZ^QK=G65TOai_|^_)piz*~&V>rXVhG)uyXuCtY&c)8&cY17}=<^sH3ZHqCs4S>Eym z4#xtB(LU>)J1qm+1B0UMaI%c(glr%{(( zk}k)ixxsBi1(oRn%8EjS&HZk!xuz#tDAcTI{c|g7z}9e6D&OC~vb3_Y^B@_JR4OBy zMFc==*gw(>VrdJD&tQ=17Kyls8wmP~l->oiR&ehZeY{y7f zm`Rt&^C@%c^Bs+g3p57f?Rp>QdcQb5={@N>q4C}i+(ksGJQ6>zkD>ad7qMG;-ztPV z7z>oC4Gv7i$l#W+fb@?~`@+|3{OjAb#vw!YRbdRKA|jlG`;2#UmKa&v3Tdg}Oq&vMra5H*GgSD)!Z?P52P19}B!L z@`TpBwViqN>pC2tP}VDh7PHLSHU7}cC@mdaGR5RKb}Pk?)6kRC=;W2@#%XZ2M%VBN z3nPPZ@#@=3&l8BK8F1D4Ku%Yf`GV9eC`kTH7yIT?oTd*WBcofIqlJb1xvKi9v4aT$ zG~|k~(Tz#Ebh~yw(fV@~AY?vI=wxj=;T`~mtPbEFfT8auG5zL^L?f4wkkAc%DImmo z>PJJzz`&pbNJETF3|j4(io=70#voFQVzQd-Y2?7n5Et0~)ZBxk)!)$zxt0e_{Su&K zsJ{Q%Y$>!A*L}BozD`q9P3;|~;xgqii+_Z%!y26AFepJ7piyMjW1GKXV-jArhf~>O zj|76|3lP`s4zLuC4iqUr+F$Nk9BfbmLYpjRh8HtqrDiKp5#kj<>pu>7N%`PlU1(UH z@+%4cpo@x%%IW0T71NukUj=I_v{Y13v|br6Z%|UuIyG@D$Fp3n1ggQkCRgIMWPr{h zpb@jml0p(qK)aH7fx&s={Lxpy*NKk4>HMu!-`2KJ-`u=NMeG1!aL`QV0SY>$qVBt+ zkwt}opQd@+z%0P47++iMcJpD?sMFfi3UWFW0qGPhHA5a_;aO>#%PK2}H)2zsLKQ=( z1YaShyq4I!3E`)koYZ*Dd?Yb3Q?e6w50fBdfYmZ7D2oi5290ePr#3$8@dt(x7%)(o#Xxrv7?hWZx+tdt0LwM85u85?6wb-TwM>h`pur55s*qP zgT4{3-V%d|QUUF(99a zohbeCWxKOGo{+YXyK#?=tsFdAC}%`vT$%zR>2wuVJCI@(^dT`u5-75S~3}r3Wtp~ zgp_U58X^YC-Y+Jkmjy*Ij8<}Y0*_-9NFUJcNg5g&6|cVEw1YAQ!mrW%GE~pmxiZttWWV8Az$`m} z;iTSqK*X}EH2rc(>!LL)j=&3}N#+*2N}%Ea*&n~kgxLXuU4QctdPzcKWEcpPX8ypmvv52(jyBFm5GO}x?_79ylg7+2G0uv|zD-4W zd$`&NIhb*z4rV&S_gh8=O=$nf$P#ml3C&|=|+Kn;$MOP};CpcoKsS@jl>K$u&HBkH_5I-3{PmYsl&2^*~L1 zeX2>+eX9^!Zm^V+g+hBMCmz*RnsnUo{;5MUgKLxxXl(wF-}ZFx>edGo`NZ#ch5Dmu zlZuq>R3i;f>ATjYRFa-50_O!_yHxYlr%020*p+KJq{7zo@FhzsUpE$Q(neTV*s2h! zDk)Ci8y(tL>aqa^BG!W1I3Xcn{W=ALCAv*oK5MUKuIc%(ANx!ERz-1!uB|k9pd16# z^xS16z6iExOKg{HCJ+6R ziol%ZPmj7<#UhR;=g2BRZ?{(zw8T64KBhAaX9LFFugr!>0XIqe+0(8d!g=m%Gw9H5 z2WNFUw~GW6(qxp9RgRE2fi;QOW961{=p90@=Z(j|H~@OO{6kB151?#f#GBLONIJ=%7R6NQ9w<(wg zFA@c5x*`EUZwl*X;^-U0U?WL-fO6N z@k$V1)k31k#$^*1+FOS;oh2i~VInX(wuqXJ0kD)i7~mD}f43|g1D{-;Wz4WLwOI64 zh=^!qgE_T~xml8O;WV5|c$wqmxc4j_>J%^!H1Zo>a{(s<;U}ER0^@Q=fl>Jaq4=Hv z%UAkQHp0Npf`~@?(Xf&G6&bag^p9V$s^QY>+%QH>Q;yfLAp*3Bc;+ra84CE-Zg2y} z2~|nsA+SWe8G{kdw%=%qnx)s8IZi*NjA-B{^x6c%zCdJ!>k;HjykZhr)Nmx18M}-{ zKnOOLAn4}+VQ-?mqs0c^J>?T2_VOc+;R|FJm@`+e;*ilETZ9wqfkCiGaI)Iw$Lf`t z6q{mtE$Et8sbAyR1Z_2$&sl_p$bUWhdMThr+qU80Q^;+AntD$q=J54u%K=_ERgww? zpA{_a=b>fS49wbXuItv(&Qc*#*XSrh?6}WA+a7?(^V$7KRnlmBLcloAE6VP}dOym` z0cE$vLnHDs6-QOg%`LRewV?EZ_4ERFYQQYLkZF-+x4}@=npp zXv3tj{ex|6AYPux(NI%E&HHCa9}9S#%wW^F2y4fU>%!%?1DB427Y9A*OrLp=y3KRG z!%-aSO`i^>X`lC!Vr8S_450DfBP!WXav2aqa9l!k4z!suYHi7hS zY@8Uy@yg9R6K*=s^mNWg+0LV2ilqbNp zo*0MhK}s&fk*_jJa~8a?Q<KJ3F*WrP=1 z1get7Tn8qVapXX6w^z~<}1!fz~h|{qWr;bsADK_t0#%fG>|$K5u|M-ypM8|Wtb zD^pf&rm-DAlhZ(*fLIK{e}!KU29jH~YCP7HHI5a~@As#%S4H)Vt9s-)H#o`xJP-4J?gKo2?W*dQLYHb+2@4XND`n-CuD8i-#$i$C z&-A`;Elwqgq}*eNhojA&Ji}T30=`;y46mul!w*(at_s%hAE zD{lR8OOLiMy>u;y*W~3>h-fQTCch9C!dmD~xB|G2u}h33I6qp$Ey2d(mHLLSRd(WK zS!CW798CcfEK9$UmKr5yU#Tb1aCRn$7dmTZQ?tntN3Ju20PUb>R~(3T9Sel6XvsN$ zk-wWdf$k^(YmBb1E^C#UtgLLo@weDtnzr!A48%LY&YI)Tbt5v9w%OF=~)ZJXDe0Q-_FXZ9`ic> zNHa!w^1E=NoOf6D2}k2*Fo%lu7^+wZculY1aAkRs+X(wHkMDkLJatzo$EjM-Iz=`f z)t$;=1et-Suwa*tWoNmiYOFYfqLWOYD^bJjq%%cXTkAGmZD<@w+`jB$-5)Sm% zymDROkINY}(k>ELBtvK7;Wn@PWE8~x*sk#Ql$-NQ;#y}YWzaK($XlC} zE=s4JQlStOj6L!sV#r5tBx>_5Iv<=B{JGU2YDb~thRn?Z0BrsRoU12`Tb+iaTP|Xk zxk~IOZ3iGCokHWh-n!%Lq#42k5u8_hgyyh)D6OT|K^k|*jrkUkO_-4?*2*E}UsR!^ zRO&w6vJakp2i=r}^DGj$O83=x8A5;m!4z52p7+Lr--ZJgV_X;9{>K zzUm8Ga(GC32ZpSSDo$S*>Rx=y9Z4e8W58|=Q6t8>B#%DWVt-EekgkokPUER&&8Q>C zU3Q?eN#t`y-$mRXxQ6x6>84g@8URp3 zB1PdqVLXXTcBbG^n}Q;YBO;(H3@kGa{5~>bxHR-Rck8J=R~BhHE)>`1K7s#5Txt|%hr>C z%f!x(+DtzoVHdPe!;pkY104a3bJ8^?Df%aL40M@9th8}@ZAUezzWb2R`x`;gp5t%- z+t(T?7IpQl)*#<_3{mU^XKWV*CA2GYRDhd6U}rz{X;i2nl(d-%MUOTt2N~&m18np* zbg!vI-L}8g5fc)eQxFLG&;N@V6!8PJl62CvPdpA-3^&{~8h4P5)?n*!zIbJXpyvZn zbW}mMTwlfzu|i(UMFsXr>xf+`i!<;VvlJBF>f&J^s2b;%cxynY8s?@^R$N)wD-%0! z;L_y9v+X~wHhm&{`ZcwYa$F)mH^>P__mfs`rs5D4*YLCbIN8=4X@K7=?+AY_%SyB+ z*Xn#c$^`^PjbKIY^p`~Wjc#{?tl!aOpXP5*)hyf@TvZ|o>)zGLDRIAtyS`uA?5{9O zf1N%_2267L(V6&<51Nv3Wbx;FkK)yBLn>yj>Qnh9J0a_uBexWQZYwoZQ2U z7MFVt@GPjY$D5lEF}trwG9z?k$FUl0``~~%^zb}Yh>3>p;ir=pFchvmHCTYKk!euOjyv5>^>9Z83|^n7 zT*N2(D&W*b6+;aTZ3%mCASzm)mRiYSQS6=c^z=adq`j|VMDO)1IgY(+ns|l|qJx)P zgfgd<1Qq&WA5b~F=JAZ*#LpFTuxuR~b@5!`MhH6RbYx-zA{?$?7=+uwaVh%CfAx}K zd_kN8{+W1xiDA584t)(Xo! z<3~Bez_&hHzHl{RCN`RaI|#yo5xTo{rWcXwd$@0|%v?_k*&8Kox@_7LKeNiP`{s3v z8Qk(=aD8*1)4)Nb0i<2Ub3b%<26D-d!Qx3V;lO4qGXr_Ol(a;bB#?s8K=BqgAa7t# ziX*h%OMS4-xB%D(8~c4K6_!?3p#^qq+x}>~Wi2+AiaW7oQDTEMS7;C%56kGgp)cU- z+HhhnDS_Y!8(AuD>5|wYFY5*7-XO9gMz8Hi(3UbYDnH{g@tXYB?UL9&ns9j`dFYo> zB4$br9Hop$8HSX;UNa@>e8XDi6vj_lU1%ToSFDd8-4tVXq(7?f>w6wZNVB_VY#e@9 zR-si(lmn`QE}Y`r%@Ag|3Qwdo6w%6HZW|*s>?mT3navVMf3)`8MPDB2VZ#!S6-q`DFzc^IMrUE;rCG9-C z1s9I^xtYA;P40;SZosi))~uCF*9w$_8fs!`D5=WU>Lw{X!OS6+b%Q3M*JG|D)e^`( z=XFlZbyGc0zdXc<)IpKr!PygufA!~~c`zvsDJUqEAf#iZ73JWSRaN`27ZiY5VK=Ww za9S$@umr3vd=DO2wX{gh)a%w*KX`F2VG;q70ssc!`t|46{l^*Epow~3QBu+;Gs{d1 z=&v#}GPIy-?^@g2kLdlXgdv5G9sw$?`Bwn4$}24F1x<9vqGIk(5Nzj6l@?%S2cEV% z!TGPgz0$!tRV4$1gKRu3NYJN_u8-^|sudBk_-N$Xm&73XSOyYK1fOkw_r=&n6u>nA z^H=iUE)T zXaWOet<24}US9RDYF|%op$q!b>deJ5Wo2b{SobUB6?==C)1kRZT!WPfJhlxQn%!mTD5#>m zQdq&+(*`|apf4S>*`3{-+1JD@yu9B*-=o#m99z*q$xG01Zbd?(!RNlKm-}9@lbf6S zqopAupiG(i_0Dl<-5gFNuDDk+Frb#mWm&yV zISc@SXgxCn0qb`i6%|aDe{_3Mx7^@hgj9cSuk85vt~LxQb z=xS(4hbDf5WNiX;!%B_gSy2Q~M4ci-sycpQ)>WL1g>z2i*=;AsM&uy;7|2vXc^wFQ zM%W$oN&xe!)dG1rbq0fB5h;HdI4U$4CF+qbNPd0-UJCqPc}Iep#3!~_BC4y^Bb!~)1(=d-+$ zG5dLK1FwwOVc5Qhi;2L0s<@he?U=GG5z*FK9bH}8`S01U@=a&JWIBNYBkB(YI!!~5CU&s73G$8 zVn~(#0b8qek{Q2O7c20{ZZ{vbx6CK^mlsNYYXZ=gu`!-3JxI%9t2>|@IUO&6a^cm& z^0N>QjA7Bg#xVbL2L}X5^J?qr=4Me)Qc;yFu2>HbxikS;gUI(EF0@`d+YY+!TFwks zgCj^|>-_xTfdLaV8a(Iz6}G>ZAOBeR008`n z!ZDzw9|On%CEfJ32}6ul7Vt-a+|?#aMMJkcVQ_eIlInnyeUp>a!VF_7<9gr#NQedH zxnLpDIO z-0*0^I2naPK?)Us1&Pry;K~Cqr{J>i_d!lzYP7#q+`hOpE3h&Q2_FRIv(!RNTethM zoo*2%U+jNMRq8t!xENxy^0I=;a zK)4_QbU{m1Rdqo&A=6KQj*~B77g(Zb0|Ofxe$Bnm6%IdgyE+zQ(I!|P5RF7=cr@pu zSNC7Vi&xPLDcqj65j^jR(yW~auiT~f~Z_4DW0L5+^E`)-*ne`Gpo`@OrYWuR4loEW&A zfjZ@kiy*rb0DWlL+eZPSY8haA=o)yP@B({mbx>fpt+i^!)h#s*!?S~nZihq%!Bv5d zV-!>z{AX{D281PAbqr*(=RJLvT110JPuH#!D`p8;A36XBLSIp!LNOB0X;=XaO_M+Z z>LNfB!sID1{qO$8(b=yNcA)wt(mjifoT{uD*O?yamS&Tth1R-k+?Y0$k@0_F`a-7d z&O^~M#g&x`+i3%2qit%X@18;nACNNbX#EQ0D=RM_>!CvC7iE7XWz||(k+izw6vwV# zq9S%Oy1O<#4;r=j`svj`#MB;Cv9%C2Z|c`VNQkdv_AD#J2Clnz<9s?+P5-GySD)_% zAnKyC%70vf|7&*osn{qtv@rQraKr7?ygc}p>GS6n6COPs9p%74sk5uA1h6?-SXnCu zN?x(B5#mLRaAf{!@B&*`WOGr$Y7($Z5g^9$(Nwl6z@&-*dI74T!838szpvkJ@trtR zRz|>Xw2qTWt4flV)W3@}<)ZkuynGiYQVh8>ko#8h|9<6eAr1iAUt&&XP4rv$i?jY_NOq zY#(8``pxht((o3i{QUe?+}ym+ubP6YFxmysKcn|Bk;mC)bo#3MaR+mLUKv1kyz>wq zmuw_jg2>nf{F<9P*f77d78eJA$G3Qz1x#x~z^xw*Zf-WK>gkJt)n@u@JwnAUpc$O_ z75H7VXnS4+IDzXLG3`zvJ``CgwSUnj%6{ih)bbm4 zyXCGOd;mK!kJOzHuvQtY4@<;65vKEq^=#Q>N($7*1k_F!uk2iw2-vn8VF&IiWNVVw z>HGY*c2XJ$>7ewfAU-xy3p1)}<$jvR6!X~T{UhG;_Pod`oE+8^@#F$gy zI#uxyYtTcma74Q@1^BlOE0Ha-%R@Qp?3Wk=t>u{GqmzEpKUK6Z&Ehigew~<84Xiwk z7B_$Kd7oTT*$C`hau_9yz_GP&u@f-e>97!XfX`AAvv+f##`%DQ1U2^=SlEegg z#p#-$ZAtO59L#xm^B0Si+kVoDo$Ja(!z9pPo6cKUOuX^Wg}WlSiUlG~A#{Yr*HuG$ zVNS*9F&?w!FDGax6yjR#s9V23g`O_l@3q#WE=Uj4J9sH;kJ{j%G~iGm1lZom;rIU{^-b8qiY{C= z5O)vKL#L-dv@6*aJT!6J@nT+9W&0pqPl9m!AOp&eK4v;*mQw77pt52J4KuK&l6j!U zIMBEx@sw_b_8zfaXg~7+i5CFe?}ntFcB$Vy0oEqt!0zycSr4ec(%Aq}*7Q<9HTf;9 z4Xz3_GmZC8WGUMQvfeVz(aFK3QLYw#nT-ji#2}FG=2nw02D1OLfGu5KM{URvx_00; zpp~+*L1`;`7P<#g{k3sh_YF*#v`0`Cd%8P~pNQ64pH5lEU3T9aZSr(q9_?>ofBK}| zf}4^zqem*c$`NrW_5&CFm&e zeY0KhlPzzX)7jIlROCp*3BGQPRYHg&P-C&LU-zHIv_)E8dxK*Xy6uG{DIx3Sh1mi@9+-2ce+hT-+rxgq;W$@x5BD=ErL-{uobIB%QLT-*1|3c zum#C7A)An|7M8vGL0kpwNyf}7n!1*{xrK2URN>6%(De`^drDP`&_ihPid`&`EH%-Z zIUzC%1uJ)eL`WWp$Lf`gmz*MPBBEVA#47M{G^%PxV|V+R)lNV= zoU151sdVzV{k-0`pkv862v+sFB!?_4EqBm#rl8xS*79?D$pDDGMR%Z>jT2{R*V5?|Er^YKR!4*800Tv zmEm!Pp`Dx^k1P=-Lwy8@67uEL9hhjC5(|8^)pA^60yT>gQJxL5BKB`*+ODo%^!c77 zNJV{zo&s<7)#1}}UW2M1Hu)PUOiLKfM)n^ginEz_4d*tTzAC1V7s8LKvl;#wL|GZk zPj^hy+}+o=Zgz!mTp)$EWeF%Prb%b6I`@ID3+vvL$qLY6Fv5nk9_dMTI{Yb5mLV52 zGBAP4!7*OV{r35DQ5P%{Pc=U$r=J}-K`LjD77G$MR%2Fwcc{mXQSygX1d3N6&HY3Zse02piUHOPvLh0p2B>2HOv5{?Pc|JpIIoAXag<|h(o@GesU1gdv6m)FOw$wO-Sno!Q-1LKReuUbzUvF? z4s$H_f4zT$xDdMUMI6P-6Iz)?dEJwos(u+YT>qiAwzFp>xl{^!&t0e)cti{SbIXQ(ZB^nsn&viQ&FL}LrJ~TohZwLP% zv+^0VeifenlvL8ne!*)yCDPf^QT=G0zMf|16C_28gV~D5_T*AwIj?}gLV1Q3$lX83 zlf0fC=U?Pg8?^14(E=cw701WNkcgL>)6;=KUzL!7b}>F2WM-Kw5j186yTPFwAV+4KX|4; z#}ts`YChA{rI3TFEw=8X<#HZ=m5%`nkl+`lC$t>*>6b{rcp`y=2ZJ9&5!z&WZ|!hiU+ z{C+xWi}8ryVPWC0Z^Bg#_HtEdz94zC{XLI!0h?h%GhlY=(Sl7Yno7u_Pv+sSF0XMw zFV{F}DrAh*nRKU#6tIwDTls((Ui}hE2-)ad81fRaZ18Xb7FYb3F_3hp3x4e-W7hqD z1DWG#yGBQw(cK4=6Id8^JUr(w+9+{P3#|o+adlt5OdyGit|`qa01gz?LMFg~C3fCN zA)MDhz?LeGeUgkBzlT{*uDaTl{URNSWwGzRQaZD8E!d^e2QB3by^ zY$})dD|`FA2ch^-ZJ8IDY`P5-q^x=-81xtki{@c5dEAzx?V&xyBAVc=D@;wzk;zd zRu?Ln?&##Gv(#$Ja*wSvDM^n^o`7o9HY^N(uQi9n_r2yI%YEzBx@z`?ADro;z~>5+ zXqr^dnC-;3ev~l|001C4rB4(GbMB7k?F0-nRyN*lkbh)jUv_peVbCGY?FJF+Tr;7h z*7e`88LQ19p9F0_&}axEqEcXZG3p->u%JUEpe)#)Ajm_RHQ>)bAP_D}a1R?T00K?5 znUwU&7cXA$aSDK13Dv8#drZo7!K#Xun&!ebECU?$1^Nvl7MCyku6_W`Ss5V)0wM5g zJ0-AJqQLAfHZ^Yk5+yr39$S+{0N&cBIh=|&pS?nBCy01e`Hp`Y4j188t~lZn|Kw9f zQLY}ZeT4w)9Lni?hv(hetErctVzQdfvU;s~SpQ}dCx`@~uv)!dFdymOK2fwB+l)!^ z;bap<2b&Mr<+OlKj78;4&=#^l3jJ(fpDkluOmn)hwgNUa;qQp<^DPm6q@-ui|KQ)S zXO(=QN+0u<65#j=zOb%@Y9z@`Qtd~NJ~`@H?A0ifaqzj<-vt{e40w7wpC^(LXeM@+ zLSX!i84Z{PFR%G)_>J=^)b*j*ah`lw2|Cv;unMo_Ut_y{xx3(@0XuyxIO*ds^Fq|qA;N#0oV+h@TReKBH z9-iG>u<=D315mGR3fOU~q@+RqA6`|q&rT5d*P9ny|7RvX7Q~cQ8VmP=b@AfhAiW<2 zyk&xn0GYI+0iYfxmm|E+;y%0o`i2rK)P5L`v5y&`U*XjQlC694Y4*ZM%FlQW!wiAhUA;TwsOA}SUVCB1zV^A@%v%+D=i1vUo% zwG6d0XF}A;U-_WupPRoriHvgVCu?eIjvu*${v!~j)w)afuz`a#SxK|=eL;`P{c!N& zf&1i4ZM*YZ9UTwm^Ys5&2Zzv|e=vIgEBiOKklTyhE(h=h(ZHKKfr zw#T6Kxi(CAnpg<{4NwM+H-#1mifVickZ2P+KtA*DfFEic@(pD@i?h3&=+dPbb%xqL9v0DY{ViQ@mb!qd}mw;T;C+%0?z8iWG5E34V2)iFfQ;9nv3?st5G#{U>_Fy_w zCViZr`z2$j|I6FJb?ju3K9l^W@=X`_ODbwC$Gx-@uQ0QP+02OR4!|8H=-)gP< zckh=)zs!SHcpGH;H)4r zd7Y;&={7(!@z`-Zt&Qrz*&Nq7;(k|ZXxC#9!Z{Wb_D2W+6!*X-S^_3;HqryG=oOtG zW6hvj!oIxr@8jLWv9HOq!Ry(xXAa#sIFDpn87nNhg*v}>6}@RV0~LXCeo0L3u#WO7T3#G3 zh3PFL<8wo&|slJv4azlKn?uOFB}GQ7V4ArQgRvyA{S-SMwqi)!Ox&s&*2cAwn4mlGQox3*IWDo+!x0843u`xq8^VH66W0*LcMXYn3vbg`Z+Di@A4dgR##$9Wcta;u{V;P zae{IFn=cNWHWHp>X@-JAK%%Hwfl_X^gM`uas=gE5eZEkv5t5xqP?|NCVaz<4%G~8M z+yjZi;U|V`Ypr+h-`~|yP>juAf3FJ`4HwV*YTr9@cAnd_DChUy!BjF!HM%h(VvW&) zWMqq&vW}r)VOaRx^4I4J%ig;eGS~RT4KZ!b>LH%pEl!{HcTT{n10*c+pkLMnm@$t5 z2lh#SAZM1y6@6x`6h@YADV+^Uv9vZ8^MLT>;&>UFhu~$ol$1^vzh&TIaEZqVDy+w|E*> zJZ7sRiCp#-G0`!)#x1S@eh@J-si3G*`)EkWYa2fD^ZxaArdA_84+b=4c)@CcGMPMk zxgkq5Z73s{p7QcJph%(Z;nK}z92y#`1^kdf22n>*v9vPvY0!|}w_c8QYlY5FuF0Hg zKO7w#T!ci%N4`%k(&I1Djz8e%t@!}lf@Y8WySiA(UW`6ddsWhiy$!NaMZEqia!q@# zm+)8Gu;OBpR|=2Z-19+VX|`z;L-~%OKVqUTi$N2oF41{1K-DEw`+1Q%@w~oLz75l{ zplZIhwuJ_D&_J&_9aF8i*&BtceS2D;AEF-R1?lE_e*75cdF-n6yCeA9eF{qQb*>ES zvPg8Lzo)*{%MI%`N$-1)l~T#r4Q_`g|2h(Od7c`QBjwvghsHf?CjMvN1MV;hH&t0M ziQZJ+rQzCA4E`EG?JCjk&PVe&6o9bJ=e{bUTkVz~LLxe;f1+&znDNokV=4N=9*I-g z>%Oq!S39>81>Fnq*m%J~u0gaGNMHI|KftqN$cA~yxFOyk1u`f3Oj6RrMSO}%72N50Kp9ymIZ*xtcE|G$bug>;woT!P)Gi)ALg?Oy%REY3pZROqF=( zFgTBfjA+qg`XfkRg9Zt+<)I*A&;?92Hc7rfw()Qoz_&Xmt%t7Lf4}?shty=z?>>V= zp?hk1daX1JyOEw$(Vz03n_;- z0J*bxOgC6-6=qeAVAY}BopddcGGw&#z*hw%Nj8it17=eMyoQX!O9^feM}>}?hq}vr z5AAD=ESfBeh#Pr^XZ(eWmQ+?vslp$fD&T~%I{lH_3UB3L3IHgr39O>SLmgoa&t@#? ze~wh=4@6}Dp9WXIHxMo%?!!~FHSr5u-wL*@9MbltF8W+)nsVnDJPLgE9^2>+8(jVxzVbk~_>Q6`$H&EF9tN|3dgn`5B(|qmPSLC$fz1zpb`^zj zChZkRi2pe15p-WG=Wj!}77bT4H`DjNr>hNo=K~5m9>3N6AE&$<;Eoey>sA^bpIA;1 zO|esdY6X_D;c2AV<>KqK4CImlk3SV}a9PR>4UJUq%K_uBk`mlrKS?NEebv=8hu!6u z!p?JLjt*t6Z3GF@*EX)DT=Qd<(!9uR{m6>2Xn5E(PR>jvwPeez*X8t3YPzJfl-cAN zc`v87VZEprdr4%CkT9zlU4PpnS!3;&%=!zU@zljI(tg|VzKJPawFYwgAicE(=Gc52Ss0nKFXV4z%y@yz`n!UA|w^4$`Cbgi~UAInYll|Q&;miG3_m=IKU%ALejGf_(B(}A_!mJq(Q|;Cd}AVlAUB_)pq(*aAhtt zjMMc>o@5t)i0R-eby=;;+9YeeCex9uUj3Dg3mf`L?LE z-0^gNOvvP@&jz$n0U1v9^24(2y}bj`x119c7k#xp=jQJ`^Simi^$CSiczuZu7 ze&*s}Z>iE8+OKvcT&o_MxY;&kvv_Nfz56b2P}d#mui^^$AXahHmSdp*bvfuF_q!W! zaO$Fmh9I>zy=|6ORS#4@y)C{m|4wabX|Wuyd>&1kc)deV+q_@)=Ur6T^-8ddrjCS= zEiFUg!h6wue>)_B5So(dcikk@*XT48Ly+$3WaCZ-J31@y`r-M=-QxbxiEzNzHy<)D9A`!urTb$$wse11mersi3Ah6$0(ucQC1YuQ((^v8rr5+;=%=Z`nM*#tH6lu; zN=_kqs_Q=WLM^%pEBcqEt>xAYH)3tM1hD|!i}V4bdem7-hN(Ladv&r?+l1T5>QXbk zS9Hm5WobxP1-XTmU#)&kyPWbSU_qkKt}u4awD$tVwKXmp9Epb~AgHOiOaExanr)bT zwf{zetQXyPxKvA~TkTWtex8xL>hL1^JDB*tCsmjNHHw;!iUiIBpie=Nom#LkE4LHt z7Bu8~&62-kB*+8pz1J6QpP%d$32>FI`9FqX52`{T9|Zex%+Zt?9?#EobWCmmN^Xy@ z1Gb0jC*oUTl*_kT-+YxUDH139b)`CXOSb)yXySs!k-F;ph<9%A+uZJ>A-HcY-(l}L z1b%pu+r1I%0n`elPJcPeXXymeKRZ`&ZPR;bfV3pcYZ67cmixY8oYyHc=rmmL_eE z+>ZziJxtM>@FjmGij6iU_}VPVq*eggkXx>znZJXbNI{`zrJ>nV0^}>Mnq;Y!e~y*4&@gm2)HjMthFh|>AmypOELb>ws;mL?eE*^W|EGH$kAVsgG%~zzC$1w zrY(aCi6rIV4Gm%x4ow4VhU%|4?zGf@@H`TObQNp$-7Xhw7Mky^vbwYLv!E&S?Nf@Hx`@keDG$1-u_yUBq=bh=`ZKM zj80pocBa#{Sgku~=p}b|CSn<{QnhP~4{DY6z;50X@7N43$rlhH9Fr4y>qvZL^`hn{ zeRvo?{*0qbx=KG$PwLkz6gx+1@3=(uT8<_Xm%fJHF%CgjkPm{U714^xn=>VPH5)Hm_isYMBbN!qXyJEdpe4@x35nN;~g}4 zJ^Px6V?uIE1m`Yy*<0D9PBF!=(Li0&`xQW@r|t&_2U~xCUtaODlTWt-nrTL(8or)M zmbzs;qAToSc#pfuhS5Yg@|xrEzN)bMTv~&%ibiciS??)ac;`wwGxmJuNbVthL%hAh zy{WwDq`RF0khzQ&AWjp#v$C1dCGvkfH*N6T{Hs1(PhM+(@c)qa)?ZPs-T(M80jU9{ zB!>_X0Rd?Sq!ADVl@5U+q(gEDl^Qw)k&+UTp@tBo1O^xy5$TYY?i}KCq31l$bKdLw zAAEmvxm?ScxvzU)d+%5A+a~D_Yw0{$(ba(e2#+$ZXyAP94=eRf&)J|s@HyE7YsthD z*=WZieW*NhY^)}#vJykeANlSk&v3>ioB=#WelN!H5FI9k8Cd)5He^#&VMg{dI9nV<&~ip64g z(Efpe*S8gi+iLCxfm_!LwIzGw8>kvbcoqJtuU!Sfifsh5_E^0H~4R-XG|I zP*Np+8H3w9+}jSnb9X-2IU3%pQ4w3=@Z-z>zFJ@o-2pY1`@O1xpK*O6g{sp1ZusFV z?9%G8>nk~nN0^NbB$#rmQTL5vre<=kHCfh9!LoaXe*MC0C)L#iXk~;ie_IWz$RZMJQCV#2 zFDvT}PPZS$rQiK_hTjqgrnzbBdDO7vV0rn%YJW%;2yR-MBWw!?WjIjz(zq5IdJ(M0oDKWy_+1x4kmca>d#S zghdnflkA+_uyKLxXK&FS{{HKtXBJMc?%i9lyGR~!g2F~##5{PeTlKW7aIYtt{V@$a zeG*pl+Kh^-a@m+84Drf`8tvj-;I(Gp;NO|kwyIgj%P!tpnufjqE(PW)p0UE@^1ZKb zcC|Z2*IeMXrJjaH3>(`C>*H`8rjNk**1?=Yz~B)yp|9_|t=ldgFYSYQeKT4AA3p|k z09y;-dY%ttl{LEY_vgI$=dAE9w0k|1gm}oau^IVpTKAGpOZZKhR^!rec5_RDTB0rk zikfK}|J?zf|A`Uy+0Ytl!Xbry^%Kc&1JSxP^>e$8ZRX(JK8L$7Br+Sr3Su`LhZ~Ia zkg58d#u(1QN5&37 zIZsK&xUQ>R`sq_``t_6KMdQT8o{b)eBm5(Pn2c#ix6lRU%_^K*%Hf;^9*ceQD)=tS z6E>ofo#l0eYI%9t z!G4@{TKt=*25n2vZ7bo1sr0A2aO{DMjz%}64deS%iE?jUX4a8O0i^R8@^lrZEz>As z?`4zs1@(ErHJrE+qR=6cXfwFww{_-3!8swD0b44)_|@gr#kyExA(}nvnd4B9ZU#0j zU7y~q7X6rF!iB)fth>|8zYq!z+-&KF-BS6QFMS3$!LS)3v60b&ypo3cv`&mCMM82S z_zA;v^D-Ld$X9oE_9{P~(=i$wO?$MGMf2Nn!a(f>6*@dTWU$G8>aP8{D@nX(zRUQR znW=pbzye)@cCsev;)U5V>AS7%X?Y3&SI?&&51r}vIP;3qOT@$Bb z$a*%Wk6ToB2m1PFbyXfu8K6H#bI{w_0q(Y~|D{VM>V7ibB2jfO+|}VkP%o^K%qOOt zUxXLKeCi<5aL#kj*RR$#$=G|-KJ`L7c|}FMV-92Mi)LjVLLwqRb8uqfjk{BNayN?L zy5Cx!U>{}r6q@n!)knHDePd|p>+gS-xWs$3zvGaZN*d%-0C}*wYNw6PF1)(RQYhBw ziAfYSQALXJ_d zyq}w!=Md>^lP>wcuStBUufo_K?A-L^UoUc{F6;mOJ4~6P=D$}bU{8$r|KmUNo>l@0 zpkCFHBIZH2V-+Sb;>Vr}^#Q90)33C54CXlRm3+`AMM744qApS12tFI`((gA|nvvH$)W z(`szzsjVF)MgJTrWICr(!3xS&zYLxSZYto^24A*v_X%7Bsxq^ zdiSa6d3~8%pwRL5_O`M)4lO%Z0)owyeu;CrN(IQ~r3Dx}MyUXZ0nXJ=HOJmz>d4O! zI$GLf$P>(M0j`eu&SZz2oH_8_o&mu+Ls89!D`@eEiHL?aHli6nyO8|;CYT6}w`hai zwxygQ!`ZLP$gm{Q?UmDDhVm<6l=^ONYAe@c$mda?ydq%`(^9K%njIY-Q9h;#H|7(< zYqRgxgVdp7MxS+YUy1Fk^-<7c-ho2D0f$q-nd{ybeEIc{uEd?^XfW;X7ZdsXQj!pS zEV`f{#L2{7a|*0^OO%7>;_Pfd3654}rOXY`ptp3t{i{JIc96d`V2~vqJ;h zblSW=&CUJ8xa~gq^}C9ljLw9c)WV!XSu8AI#bJ`G#;}i$iKm@q`W{)^yR^)sBO{Wo z%F93T;o5Hn9=?-hhM)XDq@uS%OvxOu!NJiPHas#7xHU-M#DM=b@99?tl|>pMNlB-N zdIw^_q|&YBvQp&E&Wl6_1E3N)H!3VqZ+;Q%X-YeOqZ?EX?CPCP=E(_hg`^+pW%V@xUZmC>L zw6tAiw6@kI81V4)y!5;(_qD)6sx&gvP26{<7+lLXSFXrwD_?SRb=Na%Vyk}icsp%{ zM^4|wsf638rhil&|0Lx7JtH7EN)>Y&D{5=+E&-{a`X(ABVBM{6Z=aT^wE_h0&j-&h z5}qIWHY%la3sgf`EYdQLIFK)Ya1| z+MgYf62_5E-SbAPsnz*(OxG{{;B{g+(Tt^fNp?28T0(Mdus8Ae^=nAF1W47MXO(rM}odk0MJp>A%&E9-9HIi-0t) zB>sjn#Nx{h>E7s!b1o^641qfJ47j`cGAZ?a7vN@RUvEEER^r|ppGK@b;H-|BiqYYk z-&gqhq$|xV@A)Fno1yPqzy>%pOa*YX4naoiik*Bk{SzIXS#vTn4*ZW9j>HJ*xj@8I z5YAu<9636giT7vkqdh&FH$nrZ#U?B#IWAMN?M3V3-|7Z1bo#HR<3NCUEzE3IG&WRj zZ4=fS$K{Na-@n=Q?y0#8)twi*NQ0a7G`r-!n*^IYAW}mA84zXG;ptxPi?mtjOm(0z zQN?r=(bDWm-c<|Gf37S4HeHUF5G$BtJ_i(+D~@&qgOkpo+g?Z|MONtzF&kZ zfU4WUa{2Mu{dz$`p@98XAI1VeDDAn&O!%>G?RCd(bVjt{N~v7MckHi^IXNHnpYDQe z29bXU zeR%OPJ1VQT3nbwhT1Ny|x=8U)yzJ!X&rIMkUW{GDW}HA3a4Ta;j|aww&DqT77~J_M zs8uW#gZJ6kgi$nmH2rU z+$}Dy4tauMX}A)_4T{4-xCC&^Jd}1*H}Foeyr5wX;RFrz@?dQ0kFg;umMp2ZzKduC zL>4jOGx{z$xe!jIArrkH^Zd${E51?4prbIi=>v`Y0?`FDVdV#4Nn5nIw6x<>1GJ~d zrLvi{T4=!t6qL7#J`8*TXKW%y?s3`4)wDjI**kx+!Dc~fez5?wWm zvuiG_BBK_@W804wh3m>QZTu3RyCk~M^fH{ei7=!8$GGd9*xCGF!?0F)^{0WPl=-%l>^oAHbRZ+ezrX-eD3C@yQ)3;siK!4k1oVL-Ouz z0c@Qf9h?rDf#orkx{aa4=_MIf03qb^(h~X`C$qWCubnDX(jDE*+Ej>iJh`f}@}4Bq z^JwdMMgSs|c@k2NfUR*;NjvFf5`^M6#iN^sE-cXz{iEYE7oRJb=bTSlIcjQZg;Bhc zX~v6E$F(6@9r<^)S}3HS-W`c zZJXPFq)8`4JK}r`*uN9=AyLeJrcQr4EX_K7Ddt6sAE}-9ne& zG{|NPIs}5hy_0qYMSBS$d~P(h=APMG%imvTvrXoII*x$OyoQDgfZM#I84&-OWjR>& z4my`3QSq=Azx}6Ew0V4Dx`VttTV3My{rkQ#5po0HBV^{Ef{XhN*eJw$!|76`5G@^x z8Y9vE=m6nSwacdAs<~lQ)~nbIf4B2`ikOd2)Iq)F`>s`}XU3LeZnU)Fc2`Vj31`p8 zFna@Gk}Bf1)9xfecTO#bt=E8D|pMbh?mcm!+ zxprL*n?+bInD90pPDsVO>5-kA)7o8E4pC=?veDD>{1`3C3SI@}+h|wh#j|w7k9nK? zQQ@hb1zVvsl6X@QkTZt!=}Gr#si7NL?s8ywE!aRXTuRgve$@EKuf@A2<~KX#d^F`N zkT!ZG35oH4q^$N}vopW2P%Y7rObJjKc+R!;v7Yd&Q^jCiVQ4$91`&a;r#G zsrm7!kF?>%7KSfh)V-ypwZ&VVYuZ_ynuw2)fnlq*8tZLl%Xl^0$U>{4D@|aq6btcF z;+-`(-)aNqfAilzNQupid{pEXocypseZLZPJwZCyAVp>Zn<%gOZ!ea zTiE<4s+|VVtr4<*wSYAA=Ye#;y2Hp{z+=qdZV~`r{AIO|x}$tU;nD4)`uZNQarKen z*sE@|CMHrj z3+h%pjYm3g0n4X{%d;n02P32SPS4VdOZ1EV27gfBq$>uU>m*Ajj=V+ju=Useix%Y9 z%p234pN7*?o5yD7=SPkM32RrFaIaHgKJ81qMjN)g^LWEgpBPL#lVjg!VW8WI*9+Ms zwE=_p`zH(SQN#T)hYsyRAlcpeXE2PD`MV976gmjz@yk&-*+iqsskB@^<)ggZ-qd#& zzI$G3p*0d7%Fo5kiGF=70kWVrmq850N#c#uDXBU4i+sdCsS-lAZibu+j;V@9iIWZR z)xX%H3eB5(lYYsU0U2ld=Xb>5$>vD~D1en*SnO$?Q9jUH&bM5pWjK9sD1GYFRsUH4 zjrLyWIwhVMoCLu-X(io}k^A_?WgElc?MZ2K{ez=6RLeZa{q;TD+k^%wO!gdnpytyZ zy^e3M0BFuS;n_rPYE8{W-YdvnX^|2rM-|o8q7*t>0<(I@jF#r>#>Rw4Se+_{R~Vh#HN|ERk>Jx} zUP_#Y;V|u;V;;3dMgDI{+68#aF^u$#W4@^WAgsE(TTSZVU45FY(PpA%nmlb&MoD^qM4t!sd?b;T|~%%`SCh13}wBSvhf8(y(h1ehfUhdT%U%8 zg%af|SwrKd8+jX_o6up4hJU!&ogN1o-Ey+>z=Eh~(}L5>=&ak8-DtKBt)Veb!W#NW zbSO<)mD{sP1{G>gD~-}a5bZCeZTz%#RVu@}du zsIHxobxDP1souFfBu5i?qoccf&zRq%zAC57dYMPh%&gS)g3tj1VAM5XSDN6vS@a`a*tc(mPwz(ap^fzt&n~P4M9-dtL#_{8 z7(^G1JkkBFmVmC=+UNJT6P+<}b8%NZ6^JAW1#~)VL$E` zsY>49x-BXj`YEbl;9xzH;g4t6Q@#FW=qS5^mt}v#uikF5ZhWA~c-@b$)mT_^f2DM9 zKG|U;WTq9S_1~uC&plE}F*dN}|K<&amY~fCiW{@T8yme88S+7t;8N;+=gm~*k>Y~<8=qyQtPIK z4`iz@A8o|J>cvn+pL>d+{$V~bYgPM3ApAz%>jU`$3$G;ST|b|b6C;w?gS++pqPfRc zl3qL(*!cS%{`0Ybn@rGXY#xaGdOnxKmX`D8P12OdQ5&I9?^l(h^{}~wme6lf# z&wxcVyD+k%`$p?gbdS~(V2tw%$2IAn-TijQcf>imqlw?vSEeYB7w?Q7OpGY&5?#{0x}7JH_lCyYvi$ z!*AHzD_NwJ?>^x>T6e1LXAWlHLA`g$J_cautz#bq)Mf7??!DxHvz7uNpCiwu3i@f9 zr5;n>qZQ`r+#_Kfd@!H|q&_}jb-I5|s}BrvAR_08E*)5loU7Bfjet3U%R*OaY@g;NUIZ?dpjAUl%fi#s z)2M|Ec?swAtu+q1huLlleKf6Bf8pSU8hfNN?VP%x%$YVNhL zdl*r~-J(v5VwrxJjAAb|F$9nJc#SlJQ@z#S z5&hnta+X9_V{UHFZEHsqari^n6dWIk%V&K>r=MU)2QykQLDg}m$`5U$ zDrTO-tAq9v=;n%X*Tix6Ngtla0MA)zrZUxb7P<0aIHR8m-NhmDGQ{Lu5Z&I-gc2VsS^)E`E(e05HiPg zxK)Sh_gTh_mt9^_%l17|j;(t%U&MTCJ5vN&7A;&9%oiK-*=0dZg(w}wD0`*6>~xVzCitLkXF3c}m3z) zggBq)&{?K=witPwdKxG0!!}-~_Z&$_m++409C*#NMDVl$J_GD(r}Sg9tkr9qratF3 z!V5`)l_1S!GAgo?uO4+_`e8LDG9CA2L!g`mbNnXJc+Zt$RaEhen(<@;G6IKzL$%=b zY)naSVEgP~{cOCHwJLJco2GePM{c0xyeB1wMt(Eqewrl2yJQj&;w!-=c!9MEsCdcwm?s#)wvy zv{L6_So%(iQPr~eAoWDih{+zJ2=BUMP=+nFI|#SsVHjb_u@aBV>q|hA53VTnj3OMMA3sJ6W>{YHz6o65U4YVr8Z$u<4yBRj%82 zw(jtCXOU{)@}?LFb_6hq6*R55h7$+}oFk^Bd8{{mrZrOcAu`?4Ebx?9r?OYT3rW>0 z#CKmVngH|Vnd*ZKQuvt12Q`tXJLxS!SL^3bHbn7H97Eg(4TYr2f|*QJ$1Wwcg51=Y zJlP=1z7jy82PAUSD2Xj3u#;<_k()#kYzyBgl*gC1;Sny2OHN)kX8BYpTq4^(<}&G1 zVZCde?jmVf8)p)LV*P&mOTuA}@rpR*YF_i8chEDh*>8%5LrivU9+~|X?)Q42T02qY zS~psRZ;U)EobODvNfvUbSRMV0m?!5Ct&1^iz8Qj{a}Mo$w?f+bMXv6f8tciH45LIA zPiKdRY9?Q+6UA4Bc`3p14a9HM47s=EF+d`G&c7v<`XJe-hP$;d5Lsr z@2+KdQabU744TYut!c3HlFwwddr>_zy3#@gDZXhjz9G4A-C-n$dw{ltX_<)N!M|a5 z@0u!Z&HS?Lq4_7;o?2H)zc{?%5mog6O&f%lzDUG?{GlPV8$z6@8 zg0O@IF2^_`3A3q4&q8=LLwX>}ox|m`6T8aX^WiqkZ88aDX5r{Q2n+H$iI}ozOB}m; zi(a)5vhHcVmS;Ga4A)kfo<=L=s;BP}ahX0$fUxZyFf>T3LLR`M^J(ueF3Q}ZF}v?b zu6UVNGg!wWSd<+>!l&@$mq5}}_#KVYs7)t_k@xFmDm66MSLL_w>RLnL2C9JwTT&kr zh8SHeJL{7hEUYxkM7pvS%u?DR89ngq7-$f+GRb7=UL+lCX*s~tif}o?X+u(1E8GFy z4{j?a|C$|QBS1G~eQj<5b2;L98B+ao_ioS6(*y)v5V;5kAf* zOi@C%LqGch@%G?r2bZ>HT2D-laIgMiD!roX?;#_%vBAjMa_O{9Gc0%sOTzH=@t4Rx zuXthjI`@dF6gTFtt*}noweJu_Wxd^~5S4=xi>c?%FAdy;d!3oo!Nh*e4O-0rpubOF zVaMFiB+TeJE536nON<6krN&IZqoE;8PtcZ>cSWlKv0fX~2 z;(fo(!-dt=UIsRtTitF#qGk4tsi23+w`Q?pRlba-r!BM&L)%lwj3+74O#U@hHzq7A15 zl1cUh^Dx*9Ot6$AMKc$kP;;5n)E`DT92||6T1IsU@@GKgFfU!6`|rnm4bO*l3Tz*Y zx%7C3$S7NpUmD;$k^9PL!GG;J<6;1kwaLck;LvQm#ON@*>PRYM-67BuxHv`)o|w=V z`yT3Mjj^44=;>TmF-g-^aR^G!J%QR|rRFbcw2aK#Tz;;7$0ok~x0B~TSI6|s1MijH zghv0Fy1MlEi!-}gUoTllW@MP~*6#_hg@-u#yp4e(u;k2$d29>|AP-?vq*FG0)E$bX zjunSA6e725>$EkV=Mmn%e1UB;+91kr>G2*WSIUl5;^6)I>QfC}&$$bdY=hWeP<^(G ze1RhOIa1{UfEgBMYQx!^o12FN^0bpGla>3{j6KE91sb`lkiPk`;nE2qpQ$%Q!beI( z)a$dS#>6ekRq}9>*nmpDt1Z;4>I&X5;qX*GEje;s73A#zfLX_MP+cab(O7W_gv{I| zIYK^>mV{Cy+05P`k3z>GMUH;j@bAz!C?!eoM?eh5{83_i>!vB;exJt7CvIDI7H9TS zDL-K@7-C#0M68u4G9o(D@LjsN5K0dxKDU?VHom$ebMfM!z%Bj(h#fu)e-@Tb7HL$F zl68g(DsR<^3UuKK@a@|_DweFe`XD60?DQ8Gf0VWynax{R(KQg&7{G%24E*nZg1gc- zTa|e;rygH_fMPo4fX`vrq`O7tY`D~B9Sr3!w^3j2s$+OUp>ua(0(US34K0H^uW-?u zyBjP~9w`ijPSXfwhb>VX{BIqH8kE_8mb-t?x>3BJ=Q!5^UDZ+^)BG^LVkTp+i=2R; z;Ry>Kgh}{{Iku7P4U6ngCU%dLyX29zvDo;{ZL{?fs&7x8H=HbT#s0O}AnS!5j3$7; zfL0q=2YOtXku@q#q$J%WyNIQ^_9@qV`L`zSWL zl%6zIvNHK({G4|qdWp7Q4?)Bzk0eCKTip|;-0U=Vn}$G%OnDwE14s@lNd{$#^CXS< zPSPn>al2d6G7%zB$7tU`FoFqDvzTv03t%~?5rS_mXO%4!g7#mnuw_%8$b6J54r*Hw zbKT0eJn|UO^7_(4n&g4xNMxHb7_sne<6%i7!+yC0jQZc3j33cGeC@;(7@dG&c%Z=9 zV0@fojP^UAt)JRHCT--}W-u=$D^==+RDZ;<^Fxw$7uEen7<_g#CW9jo*R@;ZJ98Ud zd3L+gcB!Km@la+h{*bT%ylwImiMWhr*KoX;oj_jSZ@#;OzFntllV`Z81BB54S(O~h zM@`l*uJMZ;CPp`baXws71%U}#fx(%~l8*#1dOy9VBRj(|%Y8X2AcHKexSnbxd^+GS zgEA{qUh$)r1|uiB&-Q}WvIw?Wgbab|dR3)WG(yzG{BW$;!+zeYv=l0L@8&~(d&XXoZth5t0dUSVyTCAS*8;-m^sJNNK+u8FZNv6J%%E!XU z@K&IWP8bh~+5Y=M3}u`D`>A8nhm~mv$6m=2lXXsXSD{cn9Z~?@ip|appA!d*!p#jq znx{KqeTaB1@2%4G@_O9TW0VcPK;@p8;!Wx9>2fISe#kYgdOPe zOB5M=`g8g|{m8FnWg6B99~Y=yTCSaix=7N%xis&Pk0WJ#?JI*S3a<=0LD+rMuspI? zud`1(6^KBEW2%&9^0vADcSAEh(+noHc!nB}yasb=XXo~SaOH;)K3*qGJejd(iLJc) zDk{mYbv>6hNC~Hd@fNYy_#Z`IkVvugyB*N>1DSo*yca9-pa+Xlsk{Nrx>9oYsdY?4 zGeRS&vW-bwLLekrm2D5g=&_+rAg;V$dpcq>C^6x)KOWMV`Cv07o9s0-)>0ck-RFrx zj2v_=&g`{J;Zc-1W;R*c$Df(my#y^R8FJn$FWf`~nV}&e6Wdh;iaW5^S09KS z8Vp=pP8hV}$tADtfk7UuJg-13bmw>Tw$g&wq#W|LJK{9+UT3E#6(EeSX4dox59C4h zvs3R;v}^vj-`Pop`KZvj^=6_lJROBU0ykv3l$)T)S{FA*Uu+apg}lRG27JJlbOUNL zCh=MM3*FYo=5iQo`)A@kudY!M+=|DC&rz?~SCh8=sA89+-t)`wbCB<69ZO1v{Z<>)ZFciDH?hoYz-LhG) z^vsiYyEgaNFlk7vMSPronMaA#$K0;`27ljfbE$L?+f-#s%SgMg8r|~Y7B4%JH91r& zItmt_PP7$H?jLW8h)N+)JdiqtF?IdoO%k0v9Qa)5S#!`xn3f~+pjMq6Gk8UF1aG}n zkYX>>l(ghywlR1Sj8IqRkz1ZTFB=V1)6BZf)Mw9$m_P_%VO+NY@7zKTs&Iv3(p{x$Et$0d8`q|NW7Xiw4jF!W@-$oGdl z?Hr?&66-f9Ws$Az)a$0lCR26sJ7d+BQ76BGrE08G>dwa3N21bwM}XvYR@Y4Xy6r!k z$KS_XQWA8DfRu`%nxy=iydJrvlL9}6aCor6W-`OfzC{)H4Sdgx;-DnHQq?<@3+R7Eh;OV}4#5&)}h>L#O zmA1-fUSLSfOEEOOSYko1sTQ?8TpE5L|Hw4Oq#*90?tc{h|9&!FoumRMKZeJILFV&m^=5h*GX+@mW1vcUGWeR;5Trgl!o z1AN1paOc`8v*6Xq&pm+i;uFD~`Aenjl=s&{&{bjNMJs=}cv1z}XR2BU!^ zddq7|TW+3^^VPtlztv$V1rLey_N{=gAR@}n>|iCY$EO>hdHtM$3KfF@q%pLPp%)Mp z4|K{2c8VTut|hxN7KiIfmYU4DOn&v%H0iOp*vfI03lA$tQA?BG2)3=ub+Op-8#5Jg z*~0|t)|Dme^C1zogJr3BF^tyfa2LW-Om`cp!i%9o(F#ByVXJ{8i@i)h-Hh}vR}`Xf ziTXRmS}*muZ*b+&%=`bmPI2=u;uvF{>!pX=NC9cUBKqqnLb+ z6GLO7&mhU#4TKf&9LlBFMGPN5{cMR#himiTfy`Muq`O zMkBB;{|<>jcY|y+?@qXfQxQiK*G13ZW0{IgL8%4o)Q=3i5$5~|9mSdXXWa*)Rs=3V zW2O@E+VEo~t88i?xlAWXnK0)t_eqzivpe6}|LM+uzq5>fnzSgr-vkVz$fNq zv)3Xm8S|sTS90gVD+Qs*#28tgC)%S+f;P6x19lZBg{u{=qgwiP&N))|dhkzXGr;3p z@SaSgGWPx^k4K7Q;d}Mc)PQG$e41OFYjjeP2}Qg=Ui>@`$mlVnR~U9mEh*>vfU)a2 zVSrzN-{2(~t!a?$ef#JWSs@zI)z9{$^W?$X9ER>7aE!_@Me!=Rne0XAhPAb|!Teob zC4v^@6WK3@%Qg9%(u2(2?aC?Gcg6NukHa?n4O-sYi8a>bz7l8 z{kQ%)I6UvQBfU!#9rO{zMoGOecV%*#Ev(7wb|sn;d+W;+V+VG%lnoTGX)soLt&;AV z9aJ)_4mDZau-<&C(<#2~J=J){xEjSsGH|gdU#2>o>M(HS9hs?$D)u%@SQzZ%FP0gF zGCsFNxs3JWPG}z_yX>>%Sa3Ioro9CfOtXXH*n$Pz0Z7{Z=cY~ z%KCaeT8J9qRmncXWe z{BSXVK*xp`Kh1+euxoAsbeF#-M32C8rLkUR{90u${tZ+IRsFJev_33xDSX%f$? z-B;1T^R)T^i8hG7W}sp#lJ4v2S*|nri%RpQkQ$woy&?(YDMpE#m9>vm5ED%8#H5eC zArspxoZeLBV(0es4KXpPKCO%U9;!#`HDOGAOxl|BwFk|DSo#(>d6A0p;TRT0TZgwc zNAe%2makSho394dv1CQdDluk1k=7x^+~#v)7KjlcOIEUuDZfW|gsC$cW8w2wBZA1} zOi8}U;Kd~Q`)+Q_XbpaYq}NRtB~!J?D^Qq|bD8E)EjZd+CHp!`DPK$@o-t47nigY0 zNtvp7>+EBPH#=rBPE_-+*>w__Ssr)dZNj4@Fp$RGg3l9MB`nzh0f7zd5adx5sF=2V z*-y{gpmB=Krj!y0hlO6jb9vdH6>y7><$G8;?e2w=YWH=cMC-OGZ#bphci~w9J9KwQ z53u}X_XRV>0gcSpR01E%b8ndcN@T!huRxRQV#$y3?`FHi5$B8z(yADUuI_ajp>GXM z-VDy$o}f`pyeZ*3{i3q4;Rx?4ENe+iRzLop?9XW8#(ga75f$vkzH0t~N8$_o#DN6L z-+q|o+Qz#mdWHkVEz3{+(_Rd}Sgv~^ykLZ_9o2KQ9^xxxm?n43kiJ9R;(ksI{mFez zC@V*SBF?j_DviSb@(#-w;f3HE(xLQX-a~(RtkQQO$T^GEATbo*ZNpO z-*hDRO3hz;jy#s_hI~GF+Z*03uNKoBc-Ks|+(ZJmzgkXZ>@fjygIBkkab;axn~Fk5 zRss zq=xbdORk%5^ZC|GhNrG5b&JxBcplCr8d{gMkY%7qvngewT{6j2z|Gwzc7@6mYO(Td z7v%1GR4EQ%l&A&xSdwE)6gEFZjYU!b14=FUxy947d%+^thzvo{Rk9Z%aP>pC=ar0^C9>nh%w*UC?TlQFJN) ziS#|vTryUr;E>KjGO8=%u-dewAHzR<9+o(BO}!E!-EMQ7GLa&kS!7J&ahh^@Eq4Y{ zm0(i5c5YH<;3FuY-qJ?(tJyR9w0J zVJ+iAtm_T)OeQpT32L+xf^hWJw#-drkh{^#+rvYMm&7aaD|ZrpGbSV81=9!2$$9Oa za9Ld$<`MeU`mHG#MjLDs^CV6B#!(apvppEqfIGCAd(ulM4Xt(m?rKWR>pNWY5h%7j zbLMJxJ#7rqi74O{s(?L!DufUa@H{4yfQxPlzGj6Q;34G$C=hOf_k@P31S}1UHzfCG zC-7BA*kqBCch4p)Y`I;yw}=)44otn_hkV*d@ocI`{4ra>aCRrDwWbl-@NZiERB*_k z9P^v)5L#Vbp1#JnIz_0btaq0qBw4nG;;xakeyQO_sVnb5%XJcY>vv*1(m%2?@%{8_ zr({MVX@`wE`A(Qwi1Qv?rPH-X(LdwT89?=13LVfE}QK+r*`d51CH5zg)f96rqo^$j8-CDjLcK}8QE z)6y7>OaG_R0G0HMbM4+`QWkqMAP`Fc3W;VmHZ3EgwMk(809YCM<@bcaRIIY13YGMl zo|!4A$!rV_3*+YH?E%oF;ny@#mlnNpp?}m{zdxy}*?)z5-Y6vyu?DOiR31DaDIx&5 z5SBB5XK+sfq^q%fl4JV)OJL|j|MOju&q=4PWh~gh6!FO%ZlR;*mH^aeIx^lh9jLW5 zqh$g`W54={@bHnLp|{%Xkk6#^z(`-T^Wp2(cgk#-6F?i(i5k|`t>f{ml&NyBU}Pfs z{e7ngSpM_)Oh@8?93k+~69h@!;o{^$ub@=J!lFt$5}S(3ru^9JglOsL(16D#uIP8Cji`(b=%Rsd=rryDBg`4ovF@k&@#Dv0W8A3UC}6ZW#khh_2yr@W z39MHimk9j%b_H_(VLf2VK71_x+TNjD;H*$(ZegL5X?Z2WQ;SGf8d;!J9L;A2{LTgk zExWqx+@_}G0k62UAtPgG+&&Fh1AA`N=C6!llm;JuYU$a{A$Ok z*Qw%&0i0KEOkA=JmlmqnZnR>!Q@0eAo7;L0Z;FEiV<6sW>HbohWN2u2cJ$fz97&sY zsR0C%m1SexJ9-gECbyv92e9(ZxmS{}=pN9e{W*SocJH(4bFMCQ0>Bzw9 zsNFEyJgvO{#(Z{FUR&S<`>UE7iE4mf7ksQ7x?*DpB+a7ULxbmmJU}qNi)l6b=UgJ6 z%PS~+AuI^oUI1j}pj0WpiSs7)EfEpXalfxFlI60ton1k?u*5y;!c@!cg|70<%-2J@ z!Xz?bE2vz_eNo&SUY|B0y9rx?+gv9;Z->;a`^^o2MN)xLX-k^d5-09Q{qASmxld1d zhSpf4MQV|l2I(G6X7PyiB-%fHzdc_2e<{bSO3KP*eX*wcwa!&+tQdVD4z#p@s%FOe zYy0mXdcSzlU$3sFhVJZCr6rjBTv2`!kB=*6Dg^w)vS0?^A%OEdds=E)o&DvJzKz5B zgq_rJ1F3B*KtoP_a3?VI7yiEQwQ|O4AjF23H)N>)MOU5Q*fTmyr?7-@ONYSf6$cApGp{Rgw%GlUFcgm3WY#`+dh}OHF^w>3beSxfcEf z@1H`sMtx4icKKvEJh$o8<6A|RcLlBlINaY=AbY!{L(2|pK*?7)l*^cQzOIx!bCI&l z*Dk7f)gXPIk92aFev)*~8ra`_cMWH4H(EEIcF><|yIf(HKwT&0v=!iUV&i9i9>zkH z4l=gB{LEyX0%IBq&=W&dl=)x8y@W@vTAGLnF)?w4^^e=Y!7^~2pk;xI$6y2X35Wo7fzmNib9Q8}La3)k zrr*^qc39|!&1UYD*jlyip>xlZ={kqCp()L%JzI_1ZuuOiV&F1XAq` z`CEcdBcmdQb9(EWf=Pzg46D668E?fE78m!xg{Ds zB7^cUXAlk6A^Tk9w`$||^Xr8$AXM&)E34u!i|EZxH|U|}RD4h|2}T47|0rK)V!rdO zAyBI9!)7uIf>aVESV%J3J%;k_KywF&lud*No!f6cruP5?rNntSXe+1%(INL^9Q zF}jt3GPvX}L$^BV%mZcREte$rXl=gaAYtsw;9uBRz!*r}Wv_;q$iUB2A{*24Fu5j$iS(G1UJQQDyV>2_JGyj~w_yZW zVsmo~qhnPrwKt%oE3`a<2Rab`be|mN!LW!#!r7OL)a+r6aw!< z|A5_)V-9TgQj!%WbZ7ghIn)3Z&1Lv?@pK)2YF#g0p*abeqf&k_qwml_unyGaZO^Aqw;8Yd zEQpx~MTfPM_VF-NY`y@kBj2>me3{rzjGL$Y0rbGi!Pa|hj){-OEm_t!$?~YJ3R^PP zJ8<8xo_?r)a-h)AW?yRKB_qX@WGCm$ycnF(hn=TX);LBzJeM5>Z9%^E+Q560%X9i9`hQBlj)-63+`@wA03K4*GO)8(GD!l^J|(UraZJV0_uxfL z^bm45kE^R|RXFIdHn-b5I(&%YO<4tq_#7tz$>bc%v&^`V8G(x=BE`WB^#YgsWEib& ztPQ-FQlp9RS><$rPBe@f?dZXV2&Vpat1M6oV1B99v@HI*$|6T2rQ~Qqh0&5j>Dqv?@%zkko!@nx`@a9-q5tq;`^M)Tuh;XX!%(*F zx_)<=DqS;N$mSXn?>LzK;jDyhzv98z;P|}0!mN{IPO%1S$<)-e_X5Q2Vd=6Oe>IzO z>r#}}Q69~e=1aOUWLHJR35HHfCu-rPKk7rS@d-nQw2_(6mow4yh!@Cfp>nXGND<*V z{l~h&%!nAIM9XAckUz{Q-KA5@i+d;ds6oD+UQVkqoXRO7L|Y+TDm_SUHXH6JAvUrA zGN2zLx4Q)`=y;p{V2Fr^9~JY(f{b<_dH5CH(+BK4OvR$nAzOqn>6>8CvGS_=p7-nv zhveTQnnvjV_!PN3aE4~icWR=}o&FSatEAigGN32N=E!=g8PKSxy;nS~2{dI{H#~cK ziA`4T6~@*1;{#uEm99Y9HW|I)Tbt|zb)Ks-1)t*l_tj?dS2}PYYL7@j{?r&e+0*y* zF~iGmd{SYwLIvN)Kpt6_@?iq$w>*J-xMJBEmzHoM_{&B5Q5aVpmE9pGS@kM#oFKbv zk4fLl#ytj=Rs>FYc(|K?@Nk5q;J9rzM2`qw zll$g0a|f9DxCsEVxA^d-cC@uAe4@5xPZUY29;HYZ(W7lhBw@`XS3{FQmFE46Vw=X9 z1AOh;m_znfV%Q{~z;2*%rC~U$!0{s*H%(238K!)PfFoPtubkuh+Q8@egVgHn7h8oB zP5q9)w9!v|+*=Wq?vq$Nlb#O^m3!ktDJCTN#wuD(Z*JesW31PzxiHFz4=GW4t}CJhXZkTD+HT|3TCxcUy!hDXG8==m$~@QbKtji z#eG*V7e(AGg!Z`@`xtVJ&pSY@HG$wgQZ7Guac58wxApK?cIlffbp7kl*iRI40o|pb zl>BL7as!2v=MLx`<^bx`^JuUbzds`De*5=RZu+l+^Hd&{b+F!#+2j73OXs3vV#iCc z_b+~KcPqLn$wP;Y`&n{*rmA+ve}bTAV|A&bHT+cT8Q;K%xs$JYUngH+Wl2WzwNVGE zFR{!BhSZ_oGH%lzFh^YBkqRTOPc@7RU?#v?wRuw->7Bq3ysP?%M-{`{U=q%35KL@g z?!@fJ>rh|72S!RpK8iC49DUJu2_KMmpO-h7^a^7Rg5pLk93@yPaBTF$rz1kIsxl@7 zh8Ei>f57DgOxyM!?4E)FtX-T;xB$^KK{SMu-^)De?!t}IS<`VldUVZ*;ozMNTJ}5P z*9#szOXFLLX#VR>+%OWZE%6q^84E%fl`)+*O&&b6%k*1n=Ojuka-9~&?|1i(+qZ}g z$tqg&|5BXW(8VvHMMc0yEhO|fF9p)8BPT(Y2Zov(*6SspJ!>SY@ zOB?;=cT6g&s~(A>y;+q#EMu>FDM_gNC5mE*(K)Lk(>RCBzN?bV5#9adM#|~?e~=#F zKJAM%^i95X{`s5FIjviT)33pmr$BlGOT}y(rY0DS$*whqCXo)`OTHjrE2%%RJx)H%C$-aP|L$jb@P#t+c-h!7(Tc1~JU%K4usdG0I-;4VK{d?eAlRjC zB1NPn)0V014wQ)XgJ9=+%gP;k7}%JR0SjldYvNIj5WZTIpF5bG1GlUfL^gDU)!UWU zhe`&w>v|!SU8XERsvrT^Z=rr@@VBQ9cwf{fc%N zeQj5{=SZzaX&b|be|5YJJ-9&cScT}J!|BQI(`0(Ku zDOsO);7UErc1+!TS?&FFeEGurU27N<)j?|;QZn-Lq87fNc=q}&GC*A)2B8jBG#O8x z9)p0%Xu%&ZtUtWFdGuxdB_V-!Ys+8!@Uuhm*ZhSXhb8mHoBMY^#1ge!mDd#?Xx44M z;uUme7OVN#(8l@HoSj~DYcI@csB$nd$>NIpdD6zp8cFD$EW1s|iB&CWIsB*ndU{^! zEzN+-r!W~&HvPzCc6ga+&pgUFZ-p;6Orc?%)9r4LyZ(OWupelzb{S)LV-y=ey66+D z!)mL_8FJQ)+X)S!j`!OR{C$FUM2Hi-Lxo=}0p5N&1F?Sa9w=3sH#@|iMX2MKR7*kS zXEGIXBlRKXd-qkA!Rd2l$)eHi%hhwA56+^o^kHP4Iktf0e(8fv+6H5LF59%mOTSy) zH@yEd)h#jphm{qRQWPqd_SF?wKJluR zHb=9T->{L3!?16r)WI|SI~!5gnIb$4&wVm{J5aoNv-JTkJcuz|8(L9f>3d*D9J$`| z6B)e4Eg3)Thbdn3o?1+dlJrl~RXfb=Jml&~ZcZ%h9MtFk9B(igg}mFDI0(5jc(mVz z-z!7)6E0BxJNx{+F z>smqpq1ik^(8?1r=g;=R#%bFIDKgU~CMX zIqJN=dVB=Rh>NPzcSv&9oW=4Zu&sxEt5F)AHdS~*HKC42N5yWXPL7UMSuV}Kc3JM_ z;_NFIW;J9uR^&}5eqRP7wf`BL1sQ-eixNX*?f{@hqLhXBJHKnzp7c#0aRX2 z1C#Ye?R1MQzHy8mglX@b7H`4lj&cF(nGQR5B_W@yK#-al1Kq;#cOH2bI+3`lwq&BQwkDQvIpjLq(nagw-8@nJ>&P@pTMxF}k!?p3$4S;P zU&JJ%q(A#PgZUUv>STK7Udw(|%cEDdj$1@2tKu^wCy>vZwtIx}^H357WWLUlR3NZq zh(VGDH;(V#Ml-=OHTM(Nu+;n~v2;s1@oat1;k@Yx_n1YpAwMF{vrWko4qFOV(hnU@ z_hc0__BKkjGGgm&^d~(tt8<-wiM$<38o=-tzy-JFaq&C#VvLc`&5?6|v zEuB7mlT2#h&WncL`eEl_SAQ2aA0iWfFN#I9Vvpmxk4Y`C3j$6jga-zZNKQtsl+>DI zc(^_k6Oq5#(^=4*HPDUiYupYQPntH3a^`JdwBUQ}Iex=i+8J8kz)<`-4@-6vWrxHU#zNtp@im--_E?O({#MQAJ1RGB=k1!Il z7)H2P;;{T7p6wqm)2y7*>1tx|@{46FJUu5Y-UMfTf>1O}7LUGVz7&E)uaA^iZAeP@ zK-9A(9VmV>FJb$>O`lDv&b0lEYCVyNv!h?FdOQub6UhlGofqw5hLk&d7Rt@mlEj0S%Rrf zS_39{-wofxVo(8eu0ONo@sDSLfB3?p$^#Im=Tvhr(<;=(#`Uex^(1KxIh7t-ULVSs zuL<-&fN$fL>UnVHj1kb6;-;x{O{5%rmu~S(vx&1SQ`+ahx(J+4obg*8Tuyv<%tgTD zYBF#Q)?5C)IegDb$EC#rEo zpFg4563(Q!~N9Thx-2eXdoddKu* z3@n(Aq+T^p`XOW4!C0`EnV(_n?E=ph-%2#O(u!kEy{sxE6Cen@(cKwWgoJlIgR5+c z=jT%u#dcaVU2~Sn;SUbgj;#E)G{il^)713b?zSe-Rvhf$h)qYhEA5dI8U`zHW8q{f z_yC`ZmU%eU%1h5)^X58y3^2Ih{1g#u!?e0btSe$3u@ak^e5<=lp}Of7bc>FwH&+5BeK z?<>1YF_8!z9m^~0eLuf86Cg zi|{2b{$J-q;^$t^^vN$?Vh9h{TM%-OAq|;N25&r0-Qj%?qGeXl8qxRW;?V9E-}ILv z>fxMJ_>D^79y`e7&1GYfjP`wK8Ghd6MRAgmm2Zco&+Hj_rX`m<#%gdySY9}nt-8XN z)TfJ4hYL2IxI4sw+UCU_9UYAkDwNIiGCd;hfX{YSwT|9x76;ngw{15Tq)rR3#3@M} zNAq1|+CbB@@6_U^yiq7n$=~F2-i`2pG;?Z8Rn&u`#jRLpB!*Hiw-YI*|2!_)fA$)B zh+*@6II_FGvC$kvP1Sr`fa_}OmDkBuZlQZ+0Gk?xA_3I!&&3(c_OD;fd-UDD;rcAh z0>{hr^s5Y);O**mObI7e->b{XONKzS7~uCPwnO~&fS;-6e{NpQ2|G--npaR~<#CFq zhmTwfLGsk|Le7B|q2(Op;FEOHgx1|JVn{WMb5wJ-ni?TiY8;bHTQBba@at@sgP(SD z;XfyUt0SA{1tKnshv{WLJI~9It8onR^ouiBEm!ARzb0+DZA5uy!_P>bwFcJsl&DJs zXYeg~>Vk+=##iBjBMd8vd#$Fq`qbA)&ZQf*D+Nk~tUQj|N$>jl_Rj6(`?NR@=lhaL zHQll_CpLE;N6GT`hO?7?D`fw-@9}fwSpiV(uiHC2BEnL(s!PFyP6#^+H8S=c?4;IY zWR%wD9^R0A@C5cpcEGwE@=#0Joq?x4Y!>ME))fs_8fFe+QH%6s9{l^?_ed7-emtO@ z%9JW94bM{qF~SXuj(=|JTAga50tOwz*fc3@b>V#_0Nc(X#cmtr{>NTl=l0)j>_5NY z{|#pSN4mxbE30emu@|i}p)oSs8$K`N-C_8u(lP0Q_{5_JQ6r`unT3Xuwy|~#<$;e9 z&(ohD-^c39eESEM2vZtZSXeUk)d=YaYEHlg@q?BCJ<&wElmm$3QU*Y@jls-%kCF;X znD`D@BJ_jj+#Wb|Vo+BopU%yJ5j+j2KNPQ4X=#16ySA+x#)j(6H6*{oUdyuxEt} z2??d7r9Il(+5%iRXEil7z-NTW+a4wYmUMUS#`MN!?>9h8B%q$|CJ8Xkx8As|t-X2s zO}cKg19wE%=4N?|zqz$}bcAQm#h6ZJQbiwf=+JI*RrxAoXJ6gH8MD8?SvLeoeDg#< zxPO1)*b++HBJbtpWr{=+yAHkSw}uSv-u|c13NN^cVSHYDk3D^miX1f$?>S7 z+TsH`g9*9Tmzy;*`rTRWR1;cWAG#!N{BY&E<7P_*;D}b1mWoYOd%RTyya=?^8^N;? z5qPX^+}OD1iin_Km#L{KAjnJM@#|Aw>y!0ZlN{RN;o)K+s{q6)yOq&0?{2{3oDcZv zwZCaC@3s4AwJ#1DjZibrp*4bnb12|UQEPrtsoE#ok)pnHD4`L5Z@ zywcOn*A~O#>c2nfKR@1_t*t)d0gU~F4jIId>8r}8LEs8^+I?QWnd&K>T{#e1Ibs&DXjmTU!#T4{J}6djJi*4-~I< z4<0-)1V;0+N*gMJ=ey*@Ih$j|Wl0mT$VZEs)zo24fzKG=T20l|g4TQqQ&@|)fyr_1ptP_tmytu@b``ZxoP6VXrk(-qe&QB`F$H%eh zP-WwyS8a!rKwe4Nc8}tI{CEwFrGu4~l&vmuy=hd&W!iBEH%N#sU0-)DYVjG;HU8%@ z{{1XNz6S1NSDav?!lOMOQn80r0n}SCDt%=Qrm- zMGU-Wx)B)0T_H|x6~_*uW@)km4H=en{{6>${|Sg09fJHIu;xR*X?f3*h@}JHDT@&w zua@uJe%}voyb_U?8tqvst&u}O(E@~{7oq__j2t`ETAt``kbr4;{;lIuVoAz_yViVd zq!HI=aTYiBVm-}o*a|Q|sCoF^tM_Bbm}#=9t;cuZcpbwj9s44Ge5P{R%a8`k_0_^L zfH7%0Z3Z?300V16k#Q~0f9xw3>Fw*=O^gH|!^R!7l=%1hs2=|VBmWL^r#LxJk)ipG zUcuk@%0G|KI<0fmx1IrU^e;P(;zyn4pggF0BSkE3T36raALwB%u03O>gm~GzUUAfO zCM7YOX+Wo@4#1D^^j2lgT@kjb>Rxj8>HA=$41b^QJMz`krJBkToe;>~EBwAHoyO3_ z+V{J0j~ z7V;2ujK298CGWmp?pama@PoHV?`ZY4BfrU0AhEEx`{r$-FP>%NU#=-I*Zl#s@x_z8 zMW$6F!%~$_<+W`$I0nZyALcAx7_3VC^-`>6yXS+bV#624Bm?tD9UUDFle|&F4ey2r zh0V$bwtI1PnGZKg$fYcUJwj!skIocU+LTPm*4Nh?N+W9=>_tthFyI`vFaS&%EZA=U z-fb9J`j1)7cmxw5mY^ae(3X@1^8Ci`tw4N9?FQ)caZ-;P**1~IIX!p#F z{)*YFwyJ2YNKdhH_aF+uRPBw7kYk@g(vDB($o_uacZ<4*4PI*%E`DI2(YiBecKdeB z-tKODsU%Php%syMETxJ8?%kH(ep);p|DO}&pBn>A$-N+y^RpL$E14ueMlQRMnGj|2 z_M*~ZDE;CWk!NZi_Bx1^IhNWjylfxv3kaopR+2v({e3lH?9TdO^UFai2LTU56aPgU z`NM%;eCsILW3>-J4YR|bzU}Kx1j`BVst=XFFdi* zZC;bO>!38xZUusm#hNh-&(_BrN*Ws{b?4B^sU02lvh&SwpDZ9S11{TA_%k;;b}eRR zW5rzS zro6TRm(^=Ejnt`psD;PQ#}T=0SX&hdjl@#aF>rdf*#v%NavP?|p&&E?*@&mv;{18Ma#xDKc;Oc3Ey zfUr~|Q4?VDbh_1*d+`i#;1r9u7XfO){OXw3g9kNkJN7NCs7u*k;7}8A><`*aknFfO z1~R?@u?gkhQlv7b!;cH1SAd?d)HK@Mo$e<<9IDQuG&g z&R>Cd{OFyzZ&Vjl>FM_NRL*@U9GUj(zO#-J^;+6%Yx7aZ{HjJ+sBb;b4kMK{ zZbvrl41j3~pcC0Rv?zz4ZPy2y1fZL%zpo<6qr4vQ;{=k26U@=j=Q(7sVBgrZU=4`X zQ70Ct(jRKm1)sEegp#EnYFD!I4zX?Pj3ILmTLT=OSRmv<)mO$tTJtz_lXBNwikfG= z;n?2=3FJIAZeQOBJBeGNTLta{L06RUx?%v?FIBcNELzrgyC5J&Va$Kj0`CFV*iQ5W zb7-knJfvai%_R7U{cifGfNqLUbi5aJ?8t~=oW7e* z1VyPqsXsnyt43a6W^E`|eWYQ47U>%#4f*OT{oIa}m9RWK{<&$%|1JEKL5M+cX06TQ ztr_9-a=ZRu>l_@P4!ky9@yIWuG}YCH9$;H`@o+G6;5_cCW~Z)sIAMXU%(Q8IDJ0Ec zz#Z;`9c5mLI#pNOCEACxfH~7E?#53s&-IyWNX#qk237mw``7^?v+^ZCHke_IN0?9# zkD8TQ528H{(}98OUbL#3HTs}wDhpgi5g&4M zKih}yphT6nf?LFBN!CrgQt8l6wZ?>+;v(^2&(;jJY}ikLbzGxZk5vC@e1E@a!(T1d zBtxV1wW|sit^s_wb3UJ%*THsODuk zL$YT>)KwT^a`6J;j1^r={jYF|G$&N>j8u6PAYR9rinC``mu^#1VlD)?Qe+IOQN&^T zilBIV?aS?SCVy?^(r3$go!_TD2)wISppkwf9D--#qXD_lm13jux8c`e=JBf0A?QS* z5H>!9kYaoNhmYgyXXo?csM&)@z!I4Wox96tYa3k^(ymgo$v$@b_N){?dm_&M<}^Zj$Kc_P$0rHCLNV3;%5C~nfFyFV>tXTH#$j& zndv5q3wD*_cpx^iuWLQ-h+-9g*6>#ZJ^HmiJeVS!>*e7!uNxi8*IHY||$&OWA% zNz%xLQlDR-Dm;~7Sr$^WEWgI5H9Tz4*7U*YAac=vW-gCcJjVxmL~W-Yv{L}ghk|ts47c@h9+y>w{x~1((W;g_qYf4 zAHeHiDh&SrzCfYCT4A5y<3PD zsWw2A=cbdCnzLaL*e6!1CBvf-&zGDJ5Yy{c(9Tw}all@6*%-~BvWtA1q8AXpf)eN> zFSgF>$$^TbK!UzkEYKPR6n5gnR(BRXbun(gmneFAE+O!+DO<0}c&ODUp|5x(8 zf~VYsTz(iTVvf)TIS!(tAMg11k-&lOo!*Q!RR^QkjaZJ%?~ zJPwC##|~PZ!?hg#DpE>K7F55H__-s{aR=4)v0+WM?)rT5^mb6P8QeuwUECz7?*yVf z#5ygXFN~gul7%uf_#K?Hn&7Vd(v_-ap2k|i^zXN(*=MKjZx^{QmS^KNqxAJ^b~9CN z=}U5(#a8N`j)xvL*f^lB=C=ineD(WGSZFOMuwU>w+xB_7)U{GL+hWkTJdY&Ro$PBYrrO~y085ebjg(gD;i-kd_1Xf_(cwQQb2 z0{_3~Sn$={BaZEpW6z^+US3$jA${9GTmz**(-oC;dIV))cqy@f2yVa6i&jgC>uvr* z-+tcxiAx_Z=(iv6u7-xWLqLhjQnM!M|@pbWQLD$qy z^UftED*MUxbeGStyQxp|MCXZ!_H4&=-GVSu-P*bLhJMUFA3_x@Ky@x;9sF^$-v z>MaGj_D;$6$=IET2gpG~CQQmToKd*pe%mocKBfn)he^%i=FzF1({ z#PpQni2u(j2P9~6%uKxk3+)%pth^hb*EJsHP^}NCdE?Vn%YleOuZZIex|M9M9Says zAF(&fc~s(ck~{e1yUwnCVWBdSAIeq_=jEqHJ|Kf!C%s;{@xYx?=yzPi8s9n?$ z8M9fw(exCIfl^JPQ|sKF`86QVv=a+l{qL{|+k`PjQ|JApOGM}8+3-$?L}wkSCMUo` zKB?$w*x@l1e6J$)s@^$5w-XQv%9CM^@{*rJ6LMhA)M{`Z!b6f?h_sF#gJpYEMF_>^ zOBxnGt{^=zhHC5Muh?1%kK2fPocB;0!N#b*(pC!=agt)`w7PG+ymAU1p;tnUkX9BS z#Bnlo-T3))EoKVH9RHq_{=N)#(!fFged7BQ&$slZ<^~@YjrwZ8MJsSDJ6F?$&6KBr zmtk4uSf}PpKv`DcG~LQ0Suk#yt{Hf&aoJuHD;R>ca;-*i0Q|roo-ug4x-Ad*ZRdK2bkn(y2hP1244|5YUeZ4NM99&sh(Ny`uyK#92 z%h9Q34>NGKf0R=!h2Q8A7kR34oo#NmkOuLjvFhLR2RC5~rR;5f$CKEN>cD18-TuDX z%;B+=v_$8u+tnja*PlygPuph2;2d8!fRrd7YUQQ8hmKFNy%+FRmQ_n0Va2oGxL4jO zJEeAYQiei>IFs1U~(3CBRS%pVu=cS%~x0d7u zxcEygg*=%@9agq$sLM8_@WW6);ujLl8oyrREvWR6alV_?>_t?|cv>FXT~YNa@3Z44 zqkl*U3ddF?tp?QibTf(vhF{BTpPg`NStI%+2xxVyj%-)21E79vzMj0gkR6nv1^x)& z4-v_q;IWYUidbA!-}x(UgE9zo!r_%R*v(8rq>7&`qEa$b z?6Uejy=E8u5l#1{hOoD9%H8B{H)%}ZOW zQiIrm>odE0S=9X0M4@}@u}yKMZyRUS-`8Ip+=tCm#=?Lb@`PS_JDi5L!tG6@NV5aI z-~#I+&A~HCzdPxzlZ^^3+z|0qCT6>C6hxcnmfD>r!r-}1b#u^!maRsxe0I>jd}~Kz zkv&4dU8?7P)PSu5xUX1xRcI~FRD8rn(WGnW+!_(usX~CgTIXnsbHHI&faA>3(sfFu zg@RreC$Tl)4L=QP@_)dx#%%nQBDTP)*c`mr1U-6usX-k4vsCMUzS!Rndwa=34T${d zyLfTAc07r=Hi=eDNzO(Hd>3|Fs%Q`qZNNxXUA(hV?Sagxv@Hv0qiZ>0^;+&I8%G-* z_uSd=AO98G{CG;#GbKKGPPN#Pe4|%5$Du#<$=U*$Yvk*YV?Lj9_w$bo@iYnr%D!{K z8?3>uJZ6Z`FV56}LXTotvfwYz8HP&)iYx>{jt3cVuUM5R+JA@do8YbN zg%QgyfC=FCvq>N8=uK2H&AZXGD=QlWRKYU+A^~zIJQH;Hrq;`48;ciMaa#+|W{^VB zXMTn}{dsm2jWbr0-OuoXD4VBdXD^+M_Nt>I6oK}w62~?g7J_IyjzD>P+|`8KYx93Z zLZOrTjU zS|6Wklp9R3p;ZyHl&{|&oA?}aX{oi#Kk8xe?n@Dob{6!*Y{;kZl1En8mJ&!E`zETc zL;q$c%o)0Ktkhf7eEb@=y8AgxOteDxgW|*o*Ck%vJN@PBBT-&kSTXs%5yI*+!m5_9 z%)kFm;{jKZ;_ip)5iZ>0kBcdW6VV-J#jYcaQTlf(qa5PKex8yqZt+%KpQKeN*1Df5 z>pw|oR$byb6;A_pBjps_uZ;8LBfvFz`Z&;h_NEPRm5foyQolL%+}m?E;Jx2pi%(ft zj7*O#xu1^+{Gys&VqQPoaboyI5V?eUW2j{>Hvqm-p2}b%Ii;xRFD@Az?@?q}0(24@ z8XA;9s234IWshyIU})OMyORXhzT~Qj*+9g#3(vzYy=twiXWh}!q+47Dov?*Fk8Hdp zNLymp8qb{xhn}X-qY|1Yid9#EXkA_ZD(|Ot{CxTJC)8(zTbp`Xt1R@!;*tutinb1z|{s&K%n`=<$*PusHBcZgL)7Nr<34zC%aA2w}te>V@9 zrd#zHe-hh-;OgI#k=ag?biRJdOoICCX{K}w5{cw>gq4`sS#Ln6TzUx23!!1Pl#62w0;Vy-PQ0GwNpwNG zl=Jc_6Ju(Dg6<4yggL19o2Lvz%DVkjgA*Psx(iixqv}J0Rv7NW9bvZ(%PgJDTG?cP zmkKdbx;N|%ABhhPd7gW_;h;Vk;1M%? zJ%7xbt3%xQde^gRXYg!yPsaC2ud7&v^QBu-vjX-J9fP>Eb>rv@1RKq;yGj~g=L%8h z`^cduTxd&fr<0R`^{}nZelUIBmOrI$5KP5TYmmQ|{?w@h&9q;iUtFEqKEq(Nt8%l} zImtUqk5P5md!2q#rQg0>KUB`oYdyn?TD;iV@N`U)0)i1W`PhzoH7Luf^6clZfV|sW zaFhXS5bRBR@V*51998(WLwy;}ErD0jZc<(F7b;cyoK6+^2(@d_;xH-erbhg)BC+Gk z_x`c}{r&!)eB#{j?IQcd^5%6f@pO<6!+Ei<{9B)b?k%0lsy=hwLD7ohqjSAt#Z{|w z=_wZXAE(a}lUI2;nm8Rq_i(F6L*A02u2pvEvV?ZK`XwS^MtH4RoVD8b^)A&>f9IZd0v?+Ex!Zq?#?EmRG-aHfe{gP z=b-%6nDV@=tuIys0x}7kYL9q>F$P6+REgB_Y823Bt(r1@NX<_vM9^LRA~R4#Gz?bsU|(xKI$^tAvFWGtufahaU5aKYLq!y7TzxKAGO| z-+i}ng7u}^|53(B*FJdid9in1M&a5Ic0*}Fys3*rQA`Y-nWfv7o-ff}!Mqef=FI_I~o=6fQ74Ns?=u2KcF@p?ok=0Pq# ze*d1Fk#-F|c<(9CXUMh8sB&zrcUevtZT-FXAq%jtk*LJWJ1j4j@=kvK@!|?+qdO1n ze2+~;+GRvb6!@q1<_n06*$ z60`D$!;~EKh4Bp)b+W8V7#2J~$61N_#>q{&H5gLXpmns5Wi6p(cUV_^YydDqq6Kbk zOAM}xhhQV=34P~CdwNB#Tm+R2o|24=j7BT!SFL$@IfiaA_%MC2I+xrfoUU}6j6X8mD^bOSEQy&-JSFr>WzFLDP z_1bh{soEl!H;t_Ht?5ioVWw=YZ=>=5o)b(^!Y#W?s@0)4ExT!Zg+G*MzAykvgUaM+ z5nXLr+kF!qG<=!t>bvPC;8a04VPa~5f$3C z7={I#niYOF2L`4dCQ8ZSd{H2E$}z4G4Xn66AXr%^mP_%Mz&cPdT!mG)62(+wp@hCm z>srbbm>qA32#hs$Z_iRQ9yCaBxNX7-%@K(0>)T67N<-HVIds~VzPR+z-T9M2BZZLw zvpp-s)Rm?dkYH&ZC!)d&v%Bogs>80%=_FxQHAuEdKF!}i6CaPc+<7YnTkR9~?cCN) z8Q4XO^rS`l8F&+3lOG`)Jf!FqV9_G!azoIX>>(5p0|xhma0@b5#9-(Rcwdtl+s2)u6L^ufg{lD~d?o+oNt2#%^1ZFjO19?$F_ zjtbs-)QNxd_jy0(^?ADL<&Kf5#vY?^mfVcwj;@G+=vTmcaeV6Y<(a%$aT9t(EKAwh z^DUjJH}bF5TYq=u?OD%(7Ju$7k5rUvmxowzuQeVF z!-oET^UQfAWMtbN6iSuY3@{dD*0#EDM~MnZcl5d=YYb(>^h7HvL&LQEtfrzI=tAbp zr8AYCgGh=pGB+gMDsvc;BXXo1VmHtVvR8i;F3ela1`vmW3rIj29<-Axio^esUe{jRu@$IMVF~_qv zg?yFri;wQg>Qkl-b9Z3>f9P?m4sFY63PgZHLO?DgXswoR_K4RVo$P3~S?%qxw4#i= zH(WXi|D1mi!?O`OhLRr5qNd()PJWv-hBpw+9WimnS|lNaQoxst0q*jYalVnUr_-8Y zL{UYlQTsltMVuWRXJV!Q_WT|JyNrq7utFBye22a+5pX(`+J^o|=BD(F2i(r?0Jr+K z*RqX5-W*igOC}wO16_kz^W;o^G~sEWVnDzS^w<`;y4B@GAsqxz3Ob_Bj7~Y>8u9XR zzty1t#W+bKaFXAZ)z^=K;IHT`X_R%q{97PzAkGaQH$F%;zs zVZz?!2|iqN`*(8nq|k38-Q2mO!lL6dw*Elqlwk*S9GfjRob23qtH|HMC{4)Ptn)1k zc>J!OIse~Xo#-VY>7!RwPv1ECEx2I85pNt|RLSN4Q+(}{$MM&Jb>9)NK&-?^36_wC zA0yt&*;G?mRpytWro2!qGiEzuC_{z(aqc6IQva<-e$FwJlOowY!Ub`S%qI=gXcI};7w}mpV=1@&T1G>{3=<}M6UYIh3Xv_=d1=( zX0!4q4gF~i3SOfeVbR~OjT-tybq8ZHm4m9Tbwi5oYbXvK1(H~ew(c;xZ= z%vfr`O6_WG+ZI*JF%e(VLPp2~pNi+Cb@krw^Q3*3S3tDw))m}%kCT2{3@x@WX~USb zWnr0E4jQmmm3V8Q{=qr^Lfw?6!I#fLUe}JyJ~lT` z6BOn$K){UdExqU|jmdL{rIu@poIP4W;O z)~2g_1Maz;%}MC^`<>dpmiKhzBt?5tLDSn*^>Am5M4150olAd!_DQl^dTDB7@FD8M zw_Q%*Qd4`6QDx^MZjxuOXqJ;=3G3QqHcmurpt$i_1VtVR+8#7ZX%28pvR?L{Le*|q zt1lS>q1iF=fN=aZpd#QvoE$=$pE}Sv1GF2a zUb6t!aHn!VxIL{eys{4XAT1w{oiV)T5%E%d@}XQuC1u)qLo5s39_;fZ zZFROFd|p!_|D{W&1_p@&{QP>wC%_E_p4@Q#)BouLMSnlX;D;Vfilg6`o+1|TTGK(i zSF{J>Bg3Xc72$X0a3OX%kW8OJNoc>NbG^ZD>`&sy;*#~?!VrX%dz6SG=Ue(lJCb4+ zx>8voibWjsXtfi7Iin~AhB_d%gz$>eK~W?ZfFP8kyBGw-cFH&#i!7RwUw~j)=bHOq zAoHhcF&XqMz|qrBw_!Axy_Rm}*GV=rNl(w7>LAsz@(T)@fpDOHI-FsMt(R;L!afwy z)6-i5m>n8}#^C>a6kTK$kXkI7mh!blG3N zFyycDQaL3FXwYi5dGgIpPEMK&)1%Uul-_22co*~K`m{K;(_Q}rue@gF)MTFkieM9@ zGo{Gc^-&k~^z=k{sYS~w%M14s8+h8?c9#161A64?Xz5H{!X-#TXK@yE9y1dYD{Fco z2Jzb6U|DY=M*sv+ufuOb6p`T|%)ULTeyc8|&6cb48sBb&kEGUB0P!KD(Ms^wfXw)6 zli7^!t=HxPwsyC_qz-Q?O2iB_4Bx5CCNnt9smNb-nO2y28-t|{b;|+L{oh3h4YFR; zq@ukn_v4=)7`bA48w^4yCTu1+9v2S_x{^Ehuj#nd=Y{bD>N7xV?z8&zDkfg(@Ac?+hs?QG)-VmI%7pRz-3qBT2;E;535O~4XdTD zU&^X>pStiRB3WCT@|&|jcoT7t;uf|22qI{d!whhgT5IioxUT-blDP7W|17Kj=XHwl zOED%UMvT6@>!Wxy)mCsjpKcTy0ZdP=2!@ zZ=p+Hd2P(|lVAKx0!3=#dW9MV8@b8B#l=SVN@F*aonsfzV-D= zwQ$B^Ljb}6I#~;%I5-Hz>Wt|z1`AeRUNybC51lVt9Q^7PpAar0A!Xkh4b)5fRoYbQXnX8^|yWckM- z*Bb_v-&!1IXC}@izOBq}+lYIZ&au9QWr}NPH*IjviaYzWgVcRx4tbh+Lqp@VuRzpg zxy&{k=VY0DRd*ecNF*VbQt=QOjB4;ij6It#C!m|CwO?cpF0fU;w#1pP15J-R&vE^* z4hpnJtZL5-4*kNf6H8&j-BsH@?dsT@%Tl9K#~9fq)`Z|HK9)WK+t*xkDw>?F2&63L z0>9ztsWId8sbU8TZUK_NAja@cjfG$WOS~xSk{F*d1Ak$|(khC2 z?Ep-#MjOo2p-JY+ALjik68(?zp<|VU3byjoK5b{FzP~=2{^%M9yqIPHs1}t)qN2mD zl(jemSdy!bsuxS%xqHLPSAUpjPo~OHY{>FV<8Zy*KqSl!Q=z(UE)JJlqqoJ8lbxd_ z3o!TjqE^_){T7)AZ!|DmuG9`?L0dA~gk$)7S1DO}KOy3=-ZQ>kXPDWolCScgq7&-K zMnrE>tf}9Nj2iZN=cA*Q;;2T$$O-69Fr!)uHi+wk?riqO1+3z>q~}38R?_3HM!pFM za`cpm9lSH)w)PV1C|{2(FJ^Ln8r~TLTrI2ROkHurBFZbY{ptS_=WL()U^+WBMdd)h zHP7S(3duj8$vgV(3KBJ%pm3k_^t<)Jw{Gd!R*G`4uM(n5UUd)>BiD4E^6^MP_~fUt z*1y*+#~}8binyaploDUms)_9l!%pjB{_GhOHLk+w{(!ytow^sW|FR4VJsv%N5^$sy zu#i_!(lphSzre=>r#z&Je{Vxopb8Dlu=~%691A2rzb{r({ zcY!xCh6~klNir5QJ$JaW2xL|MEz0|(83JQWRW}wh`E2jI(HcPwdAt&EL@&>#)L_Xb z{=xys_OgG5`oLo;elFryaDpepnC097Nfr?=2TP)bVJx38dHim|CH_SVTHbK3%_Up*3ccT! zd=b>NHe%|54W%O5I5a9-+?J+j`9a8fO8TJM5&z1Q_qAwxp^oXe{kl31F(h zvR~pUyU-+KAh%5&nCDJju-y<;hm6UGza|99)I(o{GWuc|Dx$m^$sgBH1dELTAOUv} zOqdGZ%-euplMZ#`IeHXi@C>}vcJ%lwCWa0EvUm=H-!X)xj63BnEa{K6q5mIS?;XzO z`~Ho$Xi+PvwyO3Dtxao>iV-xZYOAPCQPip##0a9cn6*cXRw=awHELI^cg@BwYDBEq zez*7MdA`r*IiBAiayWt`k?X$h>paiblGqk#f$cMO0W_L%qY9^rfa6jip{^_I<{wmI z;JSKe^RtdnAFjk~#2@Cyr{>6?PD=ZdJPR?y@ht~^Elw?aQ!UOdB#!ffQw;J*uW6c> z^h!4&7b}rEM(*+5UmB&v`5>K1?QXg;kZsWaD$MXt+A+_>cwCI*zg6Z(K!*39j*E)x zBOBXKrY}X`e!lyZVr=|8nC@+@(eI(!(#HB<8hDt~#k>;f{rN%GZ-euzsf@5p=I10lo;v{;Zb$4EL`$J&X(N^3 zsDf3BCC*6Z1zX+p2w?lqr~=OUTZ(S>E-nm?&ZDG$?sgijE^NF`7i+>QN{!d6!&;*M zZo0lEU$6R`@v5G0^A}-KA9%p;hNcgVsZLc2%|!bzJDXo~3^^=ftENuXg;hO{x1)TC&*vM8GixjzS)-P`8c4%F;&=4d62DWVJghzWK%rT z*`;9}@~6_29VSO-j5Lg@9%Zd~#6MH9`9}`moK;U(%1TMdy{hIXAy?q#C7ky0EShA! zeF+;-$mrgt2ZbhAFAku>&l)M}-liO;t>0p|dJ<|VQ3!%1(b&v<_{_F`sOEJ;fKc4?#M4ROAl3)5COBHgWJ*p92wk&FUYCX%-LD3)>}0%WE9r4aDT-Y0g<)4gmrdzQqv8~yn%XTtL@MhnM<0IsonG2NMI zT=Pbfyf>z1j#AhZ{YKSizr-8cBxlJZ@wWUDvC;Q?4W3AdPny%{cP-oeqXjhZz=bFG z-xjaI{;$jAt&e98@{FuLB@4fBk-X(XpVMK~7gpfqh5P2U9@A3OE_&($$fk0ph76lu z6?vTxie&jr9m$&rwfJX0L+#MK5~-Xtp#1XZfSqM!pLlfyOU3is@IEs%G%@yTm|<#dV}C{^SvlH`hLQn}vUOtl$d}TNzl1)g ziML;wr@TJdFySv!IV3PLHZe3;@v1pqXR^(LU5kHXnWGI2g~h+ozrv_c$)p>-}$DU7F65#PpY-~|EPCH!iN$p*X&Db^WW8{n9KE5Uh8xAf7?MC z{p;Lf!xx8sy*6#TDD3DAnf*{jptt3T^-r~6U$c7 zm=Sfg5X5|6Q?T-b03W*Q)B6W~@7nfk_Be4XeM`j1(`tJLVjCWQF^ft4&XW-(Wgq7y z`K|J0Dd(f3wt$J_$TiU8^(*R!57n-ZNs9DRC04g*17PN`Q%s?@Kg`(Nhs4)F&g^bmFD0|Xp_mi!ZkxNcB5lBXK+GNs~UceZsjkg{AM zZHD~KH!%&01M~<7tktNqOkgJF*5zxHT@RpJuYOn7GFMpBM+&D~b;X9~6bw>cbYbY# z=>M|O=}|LkWnXh@TFkfkbMnvg3fHD3T$3&=wcS;7x)e*BqX`aIq! zEE@Xiv2iS^jsr@2xf+N`Ax!-y;Q@=tgIuKEK7G1&!YKDtaaq}bnIBOdhqo-n>OpQ& zCWeqSZCKu_ADx6kahFN*fZQOzo`a z7m{4FQp5ju<$9MQqYGOvuWh`p-v21aa%a7^uFj{gTet?hUH@FhBl4!9aP`T%!;}SO( zRXR9TyX&|lBd-Tu%oUjLH#QtKeE3ByfGO_uO8$Tf<@bx>YI`eeZ zn?2Xz*%2yJRb6wGX2fJuD-M}gdCm&BIMASOwSiW1i--9b6QuFAhCDmVwE1*>oK zTSH5^HNgel&?9%5X+Wc1kW{*;@c%9boh=nY-sH<_+ub$7YSmnx%C|a-ZwI`MtU319 zsS8f_u7h$@@4w{zL1oDvq-0H#8Xo-0tV+nc%w%0lR`}dSFRt&N%_RglVQF;o*PkUq z_v?8JoWQsgnZ_~6Adp;l z6+qR-)u||{1>~-?F{^5(Hy!U!0#b!jgv1+=(7GvL#$rR4AGIUftqpydKz&O~xH8;+ z8S4DS4w0b$!I>N~Fs`Zghf?Z@)2;9r&s8IPkXHrfE_rJ>qz5D-DT ztdZ{0eQQ&trB0M63(#XpF-jxSg#&mH!zQ(+QW;N%=sWU&rOEcZtVyx(&nnE#qe(Yr z?4p%ClzBOKe(d$zjY7n2a)jo)S*62p^`gU0%O)-pWv;HmYa!y|x2)!^0ao0x^pANR zjs!%%;Erw&bfCzIk4*Hh@)E>IvR}pU1!YI*Z3zx6_oRShcP3z$;B%~b7q5yI*LxY- z&mFj%Ds#E==eH|@f{NBrM6hV53f73{-=1P53&@qfe##vCzbBe;SBONw{hnUJz5Bi; zgYfdU?RLXU3%BSvJ#_fg<&9w_?!Vf~Wn|Zb$uEbNTD1rc6d87x^nAeAQ5tDYW6D?M zb9mrEYcev+uQ%M3oZSN7(y5(BZ^|bZBVX!0k0*(Gl?%u_y`JHG9l_I}Jf`a$if~gS z&96}nWcfR*y`_V_)oaea6Sp$iP8vE$n}Mya4Qz{;H)GbBCxuF{-(i>G*TP;g3KI zO<~lpYPH<|j4tMj&Yd*>MKS(;@Gs4~F;{Bz%?VIOd*J|+U2+Dc6+~o3(d{LgyJ5hj z<-;w$s*Adr=%$kXKMfrUK8(wZ8nV`U_f=|Ya$ zIDP$Mxen@b;r}8L|Gpwxo^GFk2KMUJM;Z~-Eh8hqaH6{W>@a7l%(StzqC(uO^4~Yw zMQ;0V+4-Lya@rCIWt^&9>T@Q}|B$loq)mMZkO7~Ym^cEG;ab4Xag9KT%la4JAQB(` z*9Y>SKZhfp20s2j|Mb7#!4dywe)hk9^#AY1@&EH{{6MI~qWk(Zl{PxAR?X)5lgbYtij0ANHkGZUkuvas;aCs1r+yK%%&h4|XWD)EJm_lmM|fu?;RJ0F~x3U`RV#@qR!Ir_i7C?3t~{pMIk38)t_K0B4<; zowZmmWeCsN1E!A0@42pO;(!a|SRdUAn3!AH>4<`iyQA{+xi2uNbIMPRjZdfBBmGUHj3yFJHxQ!2Bs@J5>MqCFIh;n8L$lfA)L^ zM9uf0>Y5r81COW&Qqm^oE-mM_CmTUdw3EX3L~2e>{QCg&6Rq0FVe~@|-`jdA+JHHM z=i9e0fRYz^t`%B0?R|dgMFKV|V9B5u8ccb1k;b@QJ!ZB;d2ZtzNu9T|Xs2X-;lh1E zd-wntaAchV{g+jF)6who(p4>B-zoRQy4`kn_l=!(Vm2nL`|hyZQQB?ym#9Ktb_~D0 z!PupJc2=7I&wul;I6>RkuE4txjtepUmR3od1$MVxp7*E_2J)1smu{se|-td1y< zj;@x74w%bVud!UvXyG6b=&h9l{w6(&VaVuFWA#ww(C+IM0t{EqGurk5X|_mge3-#p z3v6|+MU{__FL00mK={^uMKH%KoBBwAxL)AYe5hCjnkBo&A8SJAOyK@D+OXZK`=8%Ga{vT$6?{=l##YdfJre1VT&2?Y&Ye37j$xG5STC={BW2AEG*WaLQ5P#+MI`6)BwWW4b$YJ&}?o#*c7Ehj8xqs|m&) z1GCk*L)&j(&h$%d0Rcb2F4Qq5kcnt2&f$-wOg zfF|_b(JnQia$~B-v&VYrX)yJfxOL}v@lb*DVt0c0<+#+YO2APOSY~nX@9EJbrQ_Xj zYJW&aS2UYrXasF!B!c2QQ#Mkm_mi}w{a~*BITJ3!&I6~c{I@YbzwPy>&#Jq5Gwjq< z68cy1uLQ_ZG-_JjZP*a7XHENp|*t~Y8X4rA+i+RqRPDK2g zrkj@5?w7+edcT>C+6YdW(`d=kuV2NWc%WmK4R}RTu`kdC)fO{#@ZueI7ucq1Ve*R4 zVKiHclUUl(GLf0Y!&DlP5|T)#rjgN zgSlJV7FIV~KfBB*N%?G9uqeKQXCi;xH0)55^uTh(>>3U4)|k8jM$TW|7P{hUxl|*0N}gL*sQDK-IBJ@>@PCW?IO^^Tj4@*&lOD ztptEAOaDowC$pS-4xKN$sZ-(~mTJyd(@c&Z(r4bL%kWnbJep2-)`;h$z3WYnGJa~(BVrWt4Pw5#a;24-tW{z9Y@RN3#ywL^tShcg16n_5$i@| zd#RySV`K2mKDhbn&KY8KnMx*>;YZr2+dAZkQn~r#YaV=L+E~K*XOEMG|R_kIVgkG;i0M*OZ^0&P;hXpE@@Zyj!B; z4GNZ0JUB0a{f51C;9SL~nA5V!QCz{Uy-EiE=G61;4lvPICLhV-u z^Q7L6e+Bubea9)FN&0#rgTZ!;+$?kJpbTOgui`pJJ*RnXKz<`*<{&&^|*mu6w` zQ8z}*0HU2o`5!jhMI86%?sDY9JGw$s+s)SNT z7~VQI91;bmuZ%oO75>KGB-%1jl(T!Hz~<|>9m!u{t_+xl6A$Orqnt99<48DNB%$x3=sIz9Nzr7TumT*ZDDU;2x}voIxrqTa-%5`_$?fr!v%@rTuYLg_9E>?7 zIh`2~Ur!D(>>3KOf2yxIEWA#1Tz^$Dv&iez(U>ZPeE+-PG72iaxQ z@1L}qP*gDJ)m(UD)qF9rR+bp}VGwp|tm&d^ZS9lxn8W9TTaH4DbaI?UEpDgz)!u89 zW`AFWoE`crZEVM_{f&!>R843Y?J-i}c)oeo0^0k~DS~Uu2thlAlfd&P%mu0-2 zmhc`pjXFC#xl!AsR@HEn9r+k0P+{?CZ_N%kePcq8G0MG(%WA$)pM`l3^d<{ha|mq0 zjAc0V7$(7cAx!j^!hl(x>ZLi^iPawWZJgqBMEds2;i>HA?5k}9bfl^UV%KT=4!5c3 z=v{WmOTG6Ff~fkAP&Bn)_HpCPnN-_va07#W@|wx1@nqkd^7d*oT`j5_)qlD)%NKeu z5Ot%WvcFB`TmvGe4fp>hR|@VP>t)IeebmW$6K3|RFj(pvV6S6xH0kKZF*%{u!mtFp!jMm93u|=Pu7L^+jh)>28;p4J(MQ3Z%~J($PC8S?1ExGyEZ7Z$!1cKMz=0${ zKEQRtYWsbr1XDB2R}puEdk<%-BGl3p1-ExYV*=BlY%TawnKi_KXK-*Cua@DaD4&i+)5Zy_(f};5&biW}&)baXne9 zvLH-LhQ1@>(dFmD;r9PO6e& zH4GA&zHS3e*D}lwwGbnn>}_S|-kBsOG6vh=;?R{Yk95xF&2W}=V^LVy0yBIvXJZVb zJ1h?fRmP*Ji4l=+j336Bw*Xm+r-u->QNHCwy?qyM#pMG+VW^+V_c_){#kOntyqJ+f z8hdlD_daHT_f&6P_OYAdoLC9Ji+zp9SXnX69qTTdNbY2STaZJt?>aK$V^`_R;1^#XTDG<&0=%{RW zF%D+ZXnCp;DqZTr7^$30SVn>W^QNK&CZ41aI@t4RTxq#<0MWb{;#<;IGb*9Zl4W;_NyXt~^+?Z8Dvot)zBDz5uOwSHP{&@MO@01Ddkmh8w%cD-;p9TyfpKeqLRh_wzLd8X#PXx?i>R0UXk)eUO-#)(um$sFwGACGnp6 zF+}XpB)fQ_%$ zQV7>pP(-QNTv5i&j*NIbpZtSDdG+D#InIDci_Sx| zQj+{3m8hhs3&dKMzjtz^EudR3YMBunWBCNsE3p|K7dGzh0!C;jq=? zT1DKk!5G>CjxzV};Y;vVqwNjFCTc(iw3uwMfX~|2DD%9hRzM;wyYF!6=9!ZoqiuVA z;e(PmHQv0eZKsaV&|sjEI8zO$kCaMJNMQCv8?xr#B&o<)&F7pLyjhgQ+CDGG6H3Cw zdOMUbTkv-y99x`fv$^abCIRwE8R%`Oux;A91N>qYPq4U0S-~{lO0iCHO|g8wBmRAv26KJslnzLjL0OjZ=3{i zn>)*YKt(p5azN#ALEOBo7Bf#rJd>Jmhw)~N9mtu3NTqT!FYi=^MII=i3tS$TD}>f$ zqm37-Eko~fzj!Q7rH&TbP#2zbJKoXc@I3e{Sk5Z&+Sk~g$%lfN&6zdIyg@Pd?*7R0 z!|1?=cnnECzjtosU2*cm8R)F~*4%HcBLNeIA3jW5x~-B7;xw&SEg40H@WKzW^@epD ze3ggC9KJ2)NTCPg>`}QL@@t&GWgMJ7-n%L26vpA$grz#ZZ53Q}ML%X&>~eH1J;{1l z3S4au8>OaP()1(7TeznyJa#EeuH^Yr7`j~mCsL@`bkLBChx>!15+4U92{Zmq;#$=i z{@HOqALP4;S76e2UoOkyy2tgD(@g(N0YknbjneOsT(WQ#SyBe*iT0Rj^46eZXQE#r zEBMAoA4FkuvHaiAP$`xI#K|=5-bC4`5+w4A}ykZUVKQATc*jfabS^u3-3*3l0=zzMN8B-zu8B`H%@A9 zIq~Ww*CDmum#X3)hr3tsH_?MsJR1z#t@TNQxR06OJAT@u`6nO{uy{xc{$aiB>jdbq z>P&8#7DK=vO||w-v@w<;aVx0m(d_B|)qu$yoE?)dvhXEP*oj>Km9U?P(p*&hE>DgV z8rEz4z+v!*s;LTr=f~Q;7=0KBwgQK*l6*#nU=ECIz?Qsx8t`d(qm4$Cwp?x-hQD>t zM1|10i$l%THS}3fs2m51jKY#uo>f{Og!yq6mh^|ySiCC z+pI3(8GXuC5c-0b^`n&lK44-uPrjf75b9!5$gv|oe`l{(KCb3Jnc4sL{%S6HFtsl# zp;yQ2DhjNv;rs}k}HrvU-Ng|6Re#`lxBn0=8n7}m)ps!?hwH9)dEUxe6 z`|hlt?BL?4-wfB<3~@K^q_$Kw5*qpd>TKB4w2Hko>yVojLH?WqUkP;Cu#?#0A1&$W z%;JZ=f%3|SGw0P2?0y29t!naQw?i0wAD&oNVzgX_`%$m$;*0hf&lEz}q5J#fmNlCirYVB%Z1HY%^*paH|h(D!)~jX?)XFg-enp15Lk@4 zh(6tHIX_GLYPan_jt1+~CtVImzdtg-fn2XxVVZV~8RN3mV;(lKIgYdV@cKTVz==1ANoSs7`cYWMk4ZZM zE?BX<9SA%K9`nOzd2 z75g6U+u=YRZf8FOL5SJq!*>Xwb2kzw17SXkrawq;5c*NaTg-?$x15V{O9=^+svPnH zb#<>Qta!;*ZDvlXP~0K(f6s$~y|#N*V&t6Nz}VzT-Udi1jrS46Chis_1f$iH^2fSm z23EL3HPTz}R)|!-;iET4Y+IE3OiZ7(3t?1wN3BP%U?w06iAhi57vjd$!$&18wN`}o z+v)nOarPJ~$ z_bB>6R%M@TU4O{StruxX7edWA2G8Vn;=INENcB@C~E9Is$cf0=BU5`5!+za7z$ig|2xdfe4iCynVsNjRCafA`ojR@Iz8qp~mb z%t)ooXE(bBA2)zZhf=$#QKQ%(Rfo~o$2o6$Arvw4@~HpUW5Hurs{Ei46mzF8y{xJr$_zNkNGi#64(UU z-kMC4^Ld(^5f6hey)&fs)rf~?>MF3Wl1Gqo21mykpOh zB-%#SHq>(3*MeO-z!8wjYU{vQS;NSECOdpEU^jFtaJL~(hbSMg`61QpS~>S5!}3rK zsK?$=@d`I$_j0-P5x14lM#y#{9+XzBIvixLd(cAq9oX1(PR@Z2%^|-1VCGvyWS^DW z)M8mO+a=!&o(%xtm2k0MSu7LyH?g5WxhkS+P;}MM=jmKtSS>r@Dc&1xL}gMHDuX>M zZr?veNj;Q>kSRNdc`1$0NX}LK9TfHH;v6KFY2pQ`_NctEj^JOHT4}k2s81)^H+9&! zxeaQmJXv>Tn^OUAqOUWI3}D)FsUw(A|G)B^|6mzIQ7d5m&-EWB{{CGf(U6@Wge;(m zTGEiK3{pdZ9aR}GC?Gmof{dB4M6-cDVioVQhv+`JRbo;O;{h}7ZpUR5BLtkjXcO{2 z65c_Jy`1)zV)(n->S7N@)yaZzCp(x5)zy7+xU<24KR=V%lA7~=eulAXn*a}d<>}!) z255FXyEibY4=2+~b)eQn1pElmEYtABVo!F0P`S3UNE%KMML($O#r&S6UhiW{Z1> z`Z_L+BRn!!|El`-!^<8@yuNhPhO-oIM$n*0hsF)P4{g!Lr*ClS?4|=DDxRkd;-@zH+TOlO5wUNqq0zfjT#!3xdYvKv z?|b9VB{~}{?)SxHdu`+x=PQOeTJw3AmfqI&D0F;$rvz8J_2T)f*Dd!TeT;6r!I4&H z;j<$Xg|e6g|A7aYeXSVZKyLdjBZ;AY)avK*X1_sl!X@m7PmZtWjc5Hf;|wq5Gqu$6 z2NJf73?u#HaYsio2Th6!q3-tPQdzAt>8`KlJ%98ji(6&{F_F#9mo;rR95CUoL6X73 z_ejqt|LA0>$`qE;UvZfG-WXn4bjB!fWte?l^KZeaSft*RMSj*=`Z)g=D$5Omn@ql< z4>Q;6w>M%ylsr0t=Vc&h(lUz*T1rPbzxg9CvSKh(>B?pl!{j$_&Mf5C$mKB(JE zqo7!qwC{GxWm_wc^o}?j>z22RQyiO|)D=v{AC zf~Hat9&ESu^6z?68Y}8RHB(g#34kozyh3@b4m-P7ZqdI~a51B@&NUE}#|-1+9q8-NmF%@?673{YLCh zHh&^-SMj7&E2fehn`U*eNk0BM*Uob?(~4zCbK(_+SJAV`^}maH@_9a8%*KUVEo`50 zwbQ7sxRwp1hywvo z+Xi-Gy(#89=VoQAaQl`EWaqMhdS}j*hY!Cynd@aHu)?m9KE#M|=`_`pGY0-yIaqHG zE)IvW*mk1i0>Zaq*VWZ-KY{}D5;Zo+IT2)2$?8Ijtpg#g7%DO|HJS1+&tJwPO?CPb z9^=x1rS1k%av8Hn`1SO zdU&_cn+!9H=0_c9PpT}6@2Q^P*_E^uG!9aa0g9n*Hi~J{1%*F4bwN6wFSE>i{g>-Q zGW8CVHo4wg!LPOb&W_PnZU}+nq~I!kL)=eY%+d0pnB-~?597@A`39OysCoBY_4n@T zlr#lJZ<@cGVm=desD~_HVs3E-x64Q&*+D(oU#NwFju(_?#SThLn3pY_d1k4!EU|UT zOHZBaxnb<<@eze~@>GVf{}oZXS|iT|l!{od4%c*X1YKZfH| zZ|XYVG!u;*i4C9Ed;3IcJaDpoow3YI*0b4D#|HnYS=_9Enk6b;3#}{fz47jGFg%4v zP3#bdT1{x9V8LXdm3&NQH#+W}nl^fMp-zUrqu8?bP-{G+rrb_CnfH4{WX}D8RE?J` z@^4IeVr|ZoSl(cV27qjks}en{hZ7rzi%RQs9opynT-kLsAkl)k_VzW-yOi`; zO)BpntsUHBTmoVx@5I6`sWfN`+KRa^b_-Bq-=x*qJV|zc_|;-K`_x7wj`^E8tz5QP zNiW6PW8A_Pm}j4cY7x0UUg33tU^MH%-(hM3l9Ow^Nt?wZ0~T@*(w{Ej(GhSb55*Rq zBk|xU7!zjXL|4|J8Q#F*s7d4bXk2NZW`P71C5dNCPr{#+^IuaC13d+%)-3b4%wTYI zSD+DI7c8)4@h-sgS7{_Dc`@Sd8-+(yirpPj8`mmQrCyBuR7!#8da#NXGYsplNGrJR z`{3;rv51w=OlJNSKev&q%G6pd^q0G)Mk}sEFelzOK(P-N)0=2kDNo?+zI zt5>9(!%kqwb47e&9M)<1Qe2Ey>SKRKZEF^bnp5pAYI1b}TCn7Ob_1B|6AtY1zz#{& z@=}T9-}nY~v?;JTdu8q$q(OG7!~Rd4)h3bX>_33jabZ5L(JAs zBLFBcTzYIoPw^(cY?=c%yM^7pUqu?-CS%~D!*$tZ`$C|15+S|F=$24X>{iWa4yl>4TK(LuD3OfBQ_y9vqw0TUQ}%g;5#Jw;Y`}gjVX;xBIM-!;a-GN^Lok z8nULjv}lO?(#hd|O@>R&p`q!`x!(xJD&+bqH6x_sATa>jNCti=f?eT89Dk|p^tu$S zhoD)E*$+1zc#$c-+jDharUthsJ#8V4e`_!f9e?{f=FC+BdcV*Erzrhrs*FUQvGukW z00GfuLp(eP2=nJppPbjE_LnAZA|{hk4LdmRfomr97Co<$Gtx3auJ`r!e#y^|`)71? z^5ahvCjwskbGdTEV@o*MLPf~!YQV~6>Knpa0Yg1Bv7BkmWbR*)<@w8qYmjqPj0*@Z zvB^N39TNHaIAeQsAza`tGvB3TP<0x}NmL*~PwF>p^p5nKmp&X~t^MM*f1hS7l5DtB zdIoKvj6=aaQ*;gq(UBTg9cYz^w=F7@v@{|7=_@u{8ZVk{a!MF4d%pMiYT5Dl6*_Qz ztixuz6hI4SN(?BN+9Jdg;3l%HNnDr};J~6+DhPN?Pg}|ST_SIW@#>9yFrKT5xh*r{ z4TV&8&!PM zz1`iR;Q7sK!}zl-S)B9{n3Vg|Kx34K>y87CDu5P#$fSQ=FFqS}9~79Vq;r-wz5H7> zr*1Zc#;J_sqKqcTkn;q~tr7Na;6;9GnlJu7=4XHOT^{A7Kj-^#TD(|bCNxY^@s1C~ z^XU?$L$30c5MCT>(#;V-WJTr>*=h7UN4y2>B?}eBslY)iwI|W~LxCY=gi)S}_A<#t z5~99El{6MXG9B(Yw!-tJsvRgpG=0iJx}JLgxh3DwobGa@H(!WU9xvEKQ~ETfq0``+ zTTXL#@GOp3b$Vp#62WBKdw+dm$eTx@XgP8}gtYwW*=H*imFuzBRb;?Qt1wW0BL`X; zrwD|A)!1n5%0Cpa4!&&ms!9|hE0gN2fw}~*O$MdRH&!SdQ9Fm(%{ik5Xm;6}rRz8x zbn$}zOk1WM*}l6blS*S-Swl*@PGpA*jWL8+EuhK}wAC@0qXLiaph+ygP|leR0wp#c zaDhTI(k(pdq__RRC-r9CUjBS~LdtfSf}bNxB ztFx-)R|^Ntp!nrt7S6Flx zgB=GiXWcY0m|@(o`RLhkzxhd+soPTWY749U3Qu$+vob$TpWJ@Q>1ppV+v@V20lU0k zK*Os_YZd!J(6@lYBX03*cR7@LPOGJ>Mtc}$tVtSrcm#Go+xE!$h64`VDN3c?yl%>< zoVZ)PAret1e6|y3TR2~&8~vdi`wml9Ye>@+ey^WLFQnRyJx_JXB ze!3$bp{3Hn-@HhD`u(-<)vNHo;;r7r&u0D8CGxs#Sjfem|19?js0PT?12L%$s%D5n zF>o6EekFHKPuuN5AHQ^q#YcM=8;hDqBih_OpnM*Z#>%IY8S47=FA$M(!R`2p>?wqh zlS9}rtv48x*J*y_QW8TEoM}I03D`8$l2H=%Sj)+FUyc1xK8T}R*)~GuJ7<*ptmNj; z#YMnLXhWf;>yXLJ9^k@9waf*Fc3s9az<)^u_g#u=cv17#;kJK8T-tI*gGJ>XJ#mNv zgO{1zTWm@&gRjLF%+Kg@XCbjZTM1&5?r$5PL}l!wD)izjCyE;qoc`6;D#OptJ-x|o zT$#4m5n>|CUM9;@SD3Xe^E6(gu*DSeo=CAa)R_<&fv(s zLfREO_$P1R!+2~qDjPyc;&)>4EfBV#b#2kg&b}zU=Y9qcsmkl1=r&syyR8VJ>y7_3 z#~7rX#9%SEdfz#M=noN3Vz1yS1sIMl5kS3ZJNA#(|50liM1pMW4XauP+QNoY?X7p& z=*x<9eWco?+h|Dn@CllDxetm~@$noK3KU;fM~Y08T?(iilhoG@mp#$a_Fr1syLtAa ziq+0~_*a*_@y|+A7IKk8;fx6mOTEb@j{`p&0)%GP!cfGZixxjAPuPMJW?IPbH-dEe z(EYPGig}`?s@a=ZqLHhcLlqh|~G~8};V{Gu215^1yqiGChy3D7~W8_=!uuZwry9#@L~Q2}Evf1+GO zE;MWXGJX7pnt5w>KCK^3v~PLypZ8l3>*+|kN6K7Z`m0&#%kr{~ZvS{7I4$+cZLA`s z;@*Pqtt>9=Z}+t?L**+5KB9AM8b^mLQ8QnKBcBI32gSH0pKn~lv3OBfyF0Ppnj^lE zVHMhL*zOhFU^rii%O^-Y?@Zyw3y(ZjFa2Cix0?`%b&6$0q*?oOOtFeyFVb=ZQf30(HKi ztsYCe2wyKPg2USTLYU9C3fB9A`tV7LGkwvfgZ!r5HX89QwTE*P z@P{~0)x{7RQ8d!}$rz;`yzqLZ>s(vd{wPMT6D7!fBeXGg%XWIDlV)x|?ddDAZnYg> zC6M*^@P{F8-y9Y+5I;wPyO=PEK22h+=&f%Z%64QK)Ebayb_YS}k;c>K69n7I(Gq>L z#bwQ_&We}0$#Bd6A6Z`>5B2)KUnnDChDwrU>_XN=hRGOPL|SCug(M-2bu1%fi;<-? zvJ@R;8zlR_g-F>4V;9E0jp6&&>2%KL_xsPwyq9OW-}m!8_kG>hb^WQ;E!_*6T+~_% z39j#aAvr7WEqgaC(hYsGoloA4horTD?+DQ^w^czngtgk=w{_bd^Tqre0M;xC~=Ik$l3a*AazQn%(F9z`pPX00kvSwnz}o`c5E3tU$!$Rv;FNBAq*CmYEZ~F$=K5 zULLwY30Hb15g>G(^5m=12kA)KNZo}vf6Cs^{7{#teB&J0+*32A2sWN^=Q6ww4{Kh_KhI&jvAayjsCu|iww&a^CHR!+l@_w_Y{Ny`nioz>WKM;Iv zlmovW@9nr;?3nbVhWPxvkAxWu5fvOoXlcP|%23ZJ7}%)BGn~5%?fa_l>_r}4dH^q& zkefx-28q)!AcgDi^HlcK%-x9$ES%_)3qIj0Jt@6+mdCU=^?bi{%o#m~lbJKIR>xCj zqjm)!9dDFC2r~1qOkm0}G;7`Uay)7)uttS;q5hT)4$GKPgB^MAr(cvMp4m+p=??g` zoLYO{37HsBtQvS8?{E=E>u=X{#nyj*Ix%#`9bi#vQHWgo*}0|t%m$1|t!xI&EQ zDK|5ab&xBW*VCgPNVJ<@ds%8T?`mB9xQa=%$SUY{8-O=Y7P39oP}jZa9+Y?*F3ncq zH>+b@O?3C!eW|J@)L_k^#)MK2QSXTd0!HExUK)bQCeWGxY!M0Vok-B5f)Ce zOZ95@r{tIqj(U!s#pcllYbt*7WFe3Y|9)kVWV9?*%UD6%JVk2)eb{iTeB`IXZsn0RJN1jdv#xA&XJI0|P7X>rxwzN#&-{s@_X3$h!3 z2`HxQH*@+;#Zuhc1Cr~+2>fl_uiCa7zbctoR$ibaPo>_AZOfDiI_VTD6@ka&krfdy z^B%9PE6lE59n!PI5@~}S8!8&ewZss5Yi68JsEgj+Gih=LF6xw($jRf_ZA`Gw$^m)F z4!*0I8>d|vZl8!(KUs6JkKO4-I8$$QA|Hhzc1ojm_|)q0K)cPq?m?N0tiTx%QUS76 zB~$6gi{-18;$O4OwzgaLN*q;kkx#Q0C3AN;(t<0YN_ys@L9$xx=*}^IJa0Q_HN2Do zgcGTJG#9F?w2BOq*;x8m|Chs%2Klpw0O}JL$zW~cwa;?l;kNnVS@$5;hh#g+jXnstj6a#krWj_J`w}cdExm}9wq48LIdJ* z1u2?zV)>>w=v`X{BjkDNhhcz9t*P9XRdIE|x~EyeCo8W1s{Y5w@6nl2o@eGWoL!v> zd3}N;nQD4rV_;EAzgk;gQ0;f=(NMf*;jIXg3{tFGooTD;bff~?Hus}KgJ4qYgbHoT zfsyFb37>KWi7u;0jW)7ojN0kUoVY^fNpQ320Iy?zZj{TFQob!QtK&EhZD#4ZkN{a}=Zn*Ze$pN5zSRyI^-rqgn!A^?r62Sl^QFn zbep_hp!=oT?_Q~$^SdQNaX+n$=~&r2kri8w&p^#l2DNptI4Q}#X>J8?DJMDK(Rc|P zr|m7ZJ4BEM1wXr|lS^ZD7R-`xUanh-{7Cz~6ll_LN)f^=(S9D|(jC1$Y0|6md8cT` zv;IEc1MoKY#@TLeMeP7rE`6~Oi#hWd6a%*hSc&O4Qw;S<>C@bkFgWW%{eL z2JzxP?oAX$4jBt1-Ny`3ES*zj0@$t96UDb1z{+$%U%zPKdEjODpw(n;;%&6{1+Hb7 zKuz0KDluxS1q}YHeycd{awZ)#W}k6&Bklns4dYsj-HGXx+JKAVrxvDe&2pSVp4qx? zHGO_NZC}`@5)XD{!&3#(qXlKSIl1sBXzY=vFq$XJ0}8Jzx^Ye``@DtO^XB@#(+NC? zTkLGO@gY;xo*o3p->hGg^wL%2U2_rh%6P;w=S=Q+OYst~KJS+)f-xBPd$sj4S1r<0 zr$XuGu<{&Y#~Kb>Q)8btM-FW{rO4`%(-mXSA=+c%7&aPjm>Y_bg+GNojirhy7CuBp zl+K|c`wUN!vSbmYFTw)7h?g94F_~Nne2Peser$r5Y{%_Gb9)#a;1~O7 zDJL3Yd|tpYa%(Dv>$ta_dNrWym05G@c&9ztrC_q2TINfcJNXlvQ?^g|3a-7N;~o<7 zng@}J^lMm25JDkdyissXlYMzneuHh{C0_j#YrgZ=2cE-9-f}@6CenrFGOu-ktC9U7 zJKCefi5p5-Sg%0#Rh&BI&W{bth1f0Ru+4XKb8*%^dNo-mxvheA*u+b9g>k>mieQ;_ z6T8qpZ<$wCF`z9o%_5QhE5#@O+W3-^xVgJP%IU|$6y+1b-*lLMxG zt`tI}&s5)^^ciXSYajt&7%lZnM^1}nNbzRp7=I1X88K476cbj#reRqNn51f4#W7QGYY=2+z+cq#ST<^`IOC(s%`=(=1Bo|NQIb;YVpCDot@Y~MpQ)BubuT{>p5a-pAt{jo zcE)F&KR6c|VC5*<7mSZy(^l#pE|=9r6-ZLy8HZ}Mu>)1t4**-e-^tdhOet%%TIpm?I^&eJm`U@OUGfA{TC^~I2* zg2j!KD_>tpJdWH1=#!}EBCZ!ORZy|aYBLw#*H%+|?=<+i)6C!2MKpc!lJ)}@#-u6- z1C3|3&D)~5NzwXxw^TY0ftg*U2l)e9m#bvz-xV8#g;>YH0d>N;PLfcp|jPJgfyyY18FlzOMV+2;_wMX=9!hQMCxZV{l6?8;vm^VoK|VJP#~C zyCw2qf;EC>US*?3Ws|q@0?f0OecKM&uZ!NF{HEV$B{@vrt!Q_+pXc0E|BVI#)J5Ic z;(MTH#{(V(@NmO^HHUtCUvL=;>E}q62sPrnCMqPMM)Qn7I6#--@(}y-{;mC{jqaAH z9|`(7&h|2}LXYJkr(utRA>U9YoW}*|Nte(E{Omad9RX!}1Fx7YCTj1KC-%E837xdV zwA42!AAKXj5+A$ew?|e$4LdCvj+4z%mK!2?fYBoi8@@W(Jn%MLRivJyVt+<3`hhMY*U#V{f-!&U+P zyGP&Ib9ina!%3rF^Pc99MS#!lys@X=R|pHEer(RX89*+L$*h~YYBr0CV^IzYb_A++ z?j(MKjYvy2Wa}2w` zqTPG7bNHmSc;#+b?{zunq4Q?@E>T>t2&puk?3iFWJg9K$wTDXM>Gq&4EkY8nGHOCT z_A1;i;P6cz`y5w_%5bLtE<2HC^Y)@O0(bKQgi6S|_c|`@Hlh{Y2*k8}xCK@{+XL(- zp{n-R7BKseo@0+>1{HB zP@===Ksx(xeDwsUqFjM$DkofJ&wa>Jc4+2JY1x@;YijrtAJcT7aN4$v(Y1wo3iYrL zsc^mLAb!w%RZi>2wHlL63zO#gj2gUi4llg+@_PB5t_^1(v~vt+yK%o#GrU$=<`j)@ zg?&fPg=9A>(>(Mvf>d;+@$-6#epVPftCzj!M&+BYYhY-2x{BYO!+1CH_RZeZNe<$y zz{H@J674pxB1U@Z+9Q!YPNx8$7pWA#VR%;cP=6U<+PKM2J`dk4tb~Z^9M##b{4nWrGt*_HB;>HME5h4}sK-rDWFWBGO>sw2U zqkH0Gd-~efJq13kn!qGL=w`jUckLbZ^9w7ME2RZ$lkM&D#U7~%%$oxemPwy(V$Ro} za2p$N-guX2Wo{0WW8UeqgHC_%H(@#C@#ik$7P#A=xfRqL5$SRay9_W$lyzLLfgx!Q zssT(f2<=PQoo&e!wL(fIe<7sT>^F%c+-ZpIOrGv ztHWxu^eZIX$Iy?TCoG_<8JfEXj|}JR=Q&jcU>R{QGRm}XGb1I1?xF`tpg>LQ}Nj`xP&`U>fKXIj9@ zj@`#7qQ9=YlN7fb4~C~WNbyX*E5WNUfgU=h?Xkn{Lp2R0B-IShjH#<8D*sk0W;KIx z#?;$Edxb@6-41?GI661`1_*%kEN2V0V`OXVO%P9c>|dA-2~Etf=!(%K@)P`Ly56v3 zDL{1*l+S6yu5fIvs^-8wOm`^+8_g}@J0pI;(+)a*qWi<)-obW8r-y3o`;laH9Z)y% zt#svb`e~3un0+j;lGasOPZTEddrgi8B|XLCjQV!fmG<-$`a3X^a{Wbc3A9$y#OBsS zj4$7iq7^;PV2r%%nIT@b-DjmNv;B@~1x7H(yCY@yuGDkYpCRvZM)R)rQMHHe*8mX2 zf}BctvH3VBy1OUKe}Y7{cd{NlU*7!f270PWd9e2Z$XXY7gc}A6I&fXbiC6Csg~S1{ zSwC`@b=@% z4t-RGB_YOdyWHGISsyrc6bedH^8cw~>~XX}#A>$KOar-mq~P{IP2z*AwZ;MW_A(+4jB(ga{(=qVU`oC*~!ej0b#T-Bzu% z3`%U<;1e5JUvSK4n3&L*C|?wL{vzNO0>JtLC|cif1~=R+e$v;Zx*!0Wl@!jIMa&)+O(vIL{wr5|MSK3?O(_1(VFSLt?VNSVhA zBd807AYmHROF`7)ihEQnB#`nF@AQf@M|uJm-l;t~{E!AiL-WNe@yq&_BsYy%`zsGs z!`s_o=QDRL_{^;PXoY@tbSlV$AQ1-c)A~D@}Rqwy#APQu&#y(d`=~hB$Zxbn!w^?JqXkrn#dBZeGVko` zU?%r%Oc%8P)pr9hcJP#i?r}v#k`B!^z|AX0ApdZMRYjjZ=+L0MwIqm(dA8hUD4eu! zLzOBc8Ea&Euf$wb;XLXB)K{{t-Ag-jhO7vF%lwH8JFLB2qzlHuW0dynQ3~Mt7vXo1 zG?mFoDf}E^m$lc{*swnVzaQPojoN?#)btJZ3U`5Kj#lz2y<4 z)`6#w1N*&GOl)F)V*{)EY`awjP^v2eIh|nceqvHNb z!`4t7zaGIvOI~s?ij|dRCw^UZeWr<`G5Z*10^^F8G?Q9PMN)ECH^voJ_5waz#=XvX zX#P@hwUK2jGBq^o49j8|oAy5MNB1)@W_v;7(#Iuv#$}kDIP7aIGY@2B{{WN0F6oPc z1xpD&<*^*IhsP_XU%)Pc6j6l}gTbDfcDV-Cuy(d??)DVl6>&59DUz@*99~w#nfCG1 zC!rxQPOYy+M7-u=&>6G}%7VxRnX=%HgfgGmt=XV!7pRo1s^Pn(-zQuzVnsuIOazAjvxFJu5xE8xrLA{N|d4g{l z^nd`t#O_8))=OD+_-O3opJCOYEYwYoTn=~Eg@9lW4Kfds7je-&w$cq;U=>pfz_0vw zvbSkrBiUMA88N&%ZUy;lR)VCnh-=M0?fG@ZuHj{=ri90+7!S;B?~E5(Zw%u!1xvp* zuGw;cLHS=c`6Pk)1pZ7Rq0ke9?F#YR)I4%LQcfVrq_Qhcuc|f6iKeRLtdaTGiSJpN zzJ?B|5WqF4vK5@~kFjFZ-s)+bZVkQVmtnymF((rsqulL+*y_9Xaw6i|X=bi~g6Gfb zSO6kNDd`t2LPs%f?^F5#(vl6xW6c~nX1fPo4N)4WF9QZow6WZngXrrUF=M;J5We~D zv;u!YjwK~^ws#dxi`+MKa_Zk!v`oi_+bpYqWChgdCKEsx-qaxlS;jHr#A}Tbk5n+{ z51JK|_igGqRwvN@8@%M{ZZs#hRNHEjAwZpmaADvTh!%6dfjxlkL1SbS?pf;LM%EUE z=}kq^^A zWfrRI+r1DJ__10KiixPK1nq7f)s!48nIB$3w5=*&JHyM)Td~*NVMIN;b#j7k+6##v zEb?;G_B|Z0IUHWzpBA^SXLE+q2-mk$>N{p3hYDWrzMvj20(hDc;%w}Lb{3aY&JbK1 zjbc!(E_#iHyb2uKF&-J0S1#6dgcp6#-Xg97rIK^$NtIdqrOw0WrZ?W854S=5El9cf z$+x*)0%@%)uau8vR6*ar_;I-6n9bE2Ol!h})Wd~cTD0whe4O>IbWh?FzjR}%0{Q6* z?C!wWDQ6)Xxvr*&P$}DwP}m(umo0A-ZLHFdq@?aRKPF)GY+saM?)xV6pN~5=?$A zrK-P#^9FhM%u*B)oI=u#+-uj_feq8GxJo8DA?rpinpLEPrLGwAT9?Azu&=y>cXAZt z`6nPiq1H=jS>-H{fsHdGxmO$ulZ zrui%9p%p1LBg97lI?H%s7HVbVTFv#Qj^;9gifo(bJsGu=>??gdW<@1QOyJJyX<+9K zwgB;Izg=U4E-9^~F%8!2dMdRfj-2!Z=&$U8PclXO@(xHqJ1~B000Z?Ftll_0bvN>s z(_(SMlnjE7iiPKFKNp?$c|kL!Dc;p+%b@LDyVR)JiSNh(1)6i`i1<*qMx3do4tE_b zb$8V66?7t6Jkj0iA^P^V9+++%Z=_iOuQIJh7R``Sv@X#0OtJ_7@fJuv@kR1#PDi3=b+J6E%4-#&ky2f+PA(Qi( zmbAlLZAigZXwXKtup47#ZGhva`(sLe#N?6C{Q~>5&M%`kf3Rs*L0eroRvxV(2%nUO zIxL5z95RL!~hW!Or(u8kDd7gHF8|>6AUmwbz zJPRbd%^bACV)aUK{k7|!+5XC=cP?uVXK+Dj@J#HQ>_$_Q2IoMB3(FM^#SG%2Lw35# zz$OHYh3GQJR8Dc<<(Lo=?&n)-xv;D?%5##p^6UF!X%Vivd#XI+JV{(y_QsWV+3oQuKk%&S5Isl=YIa4O(-UvF5Vn%6;JFBbvWd&KM{E!oJOOB`$EbV%;MoIlvsWnD zp8lbR3Nbo(xRC0Y%7*%Y%G1SDVRo9Jdo&gp;k}!^(e~Y6#zKUC?oKJbh*$Q>rd@0C z!FY9?Adw{@M`JZYBrsX&?bSC(rkX6n9ScQ7(LYzkGfynxn#lR9N+rY~_l* zM^ayq?870mE$S=F%fAES=ntco8sB`Zl!lCY}U5DxMr@CMiB1{2FeBhq+f&9M1cg&hzFlKX9)6AyHN$b4ONT)07pV)?`&&s9 z_`A$J$Ub83DEACrw(Q7$`C)S|Yr?QIyx2eQ>o-#xu79n z08vHk+|YfsCQU_c#(zi|I~<*_tG6u7ukN8jmy1!8?$aEclTh2Jq^CT4{Ll$)9AK$ov5l|E^h!|V5~G3 zubfK<$3iq9RrAg$wN=6m*f;R^Y&c@eeXDw6XIk7J5_FE-!SZ>%;&7E~>m@*F=s$;^ zG{y9@d0m_(eFZS)w$gT8k$&?mU{|jP%>J>r{z^1;33&q$ONNz>hHQhW9{R+2x`)~O zuPAgcY71pOW)2h$^qwEfH(%sZt6I^~p>aDp+lKyowpH((1xChWU92nB$xFjDSV zmgnntPn(a~3W!gyM6*OJO*m^`CT=Q+iNdN%9}ho%E$du3G*srT!Xd0(KokyYInJG6 z>N@{Uc6P+g=}VHNWO-XLM0tmu6SVKtH`fDQt5KJ*&Yv2>vwt%x%3NlZGu9#^5aMcxf+n;O35k!l&OTQp~MIcPU`}{=! z@8`gE%|-(xP8a4McD7CFUM6*5L9wRw`@j!e0vPPI%&s=xn*05Im_!hnINla~m8G5^ zt#D4lMc0rYN&uC~w*L&chP)-G-!0F)V&m;M-M+F@Pk%}>*yBe_2Nfj7we}8!WlnoX zpoe-n??cHC(V^#-0zJN-oihv_qFy$*K6txXBte`hMxi%sdosEB!60xz4hhq&xcT<* zs~{K=Enpg3rh^H$KJFyDWw`d4cu<)IqSLIHO-2n(*xsM;i>thNdd+CY%We#|01N!A zKCU{F$V4fKn;zgNhg4S zFc_`NS;^;~1|j|Y^_O<}nea^j(b6EN_Z-w`9Kel)u$qBlIUsbB*rK|eD}ny43dE3E z9DU4noaRCI=Jvd(GjHX$-CW)`-^DrqYU80I@NZ1JOg1mEmH{Los+p$&zMyzPKc>PG z#dxnGXAbxF_40&m_6gQDX{P`wZfCsn|6@We7yxyR-Aaq`m7@&zG&GJA`x6EUH@2P% zN76O%U4-WROg6A7l9W$+Yg;6>YE;*dQ(oQ#2m#r>E_;s{a%V-9L*IkjV-)|=Xi1TG zTYN5({|nhIV48g1Hik{<7gJ&RY${hhGs{2$!f8vZ^!^S*yHuye`H)$T%{pm$u+U1jX0NAcnlG5%-V+mOP4#BB#oy@r zcc{QuPLOgd-!)EGJTK5&*%zT#2s(^{4~Ue|u-clb;Hm(yPSPi?DcYr!Y5+)>3$afW zH|I>Jb&t3|c@~Idn#pgR7?P$Xf|h6}g4d(ZG*)eSWkhC6uO)cHQ3OV)g!>6x;C&9B zQ{6-kRrYu0L{lUh_mVNyD|>B*s8b-ez=? z@#+UCloY0~&+&?deHAqs_XD`~(`Q@TMT8El_Ur&d1U9R{f3ym^nXplG(hs`u{uJ_{ zv@ZP3K_(er`o6vg5(H+#9jD$iuJNbj<>tx=Ad-*GjN3Ib3Y<&M<-GDR9-Uw}?74_f zG&i*Y6wynDKJO*%EM5kkSo~0*d4&_HokVm9@H~xu1-iOEYtF{g4`ATWW8a}(Kj|bk zMJ#RCQ1TSlzepFtS+GB}sia+^p2T6X9P?aoe}wiqX*S=9Ce~pL9ShM7=7vKbc=^;Z z(TL%?r)06yAkC>{nG~-dh8~6HEqqH&IL^u{@agObKpd)>PXSvPFYMDNYFsJ`lS;xj z8%Me&Nj#u><+jo{?nO&)8pf*T%7ESMgQP+cUshp9l$hZC_ufMq(gaQs{oH~vZ$oa* z*sJXUGJ1@#(1HiUWlj-36PAIsp|>;)&yjbvMN?gx*A z%%`Y*m-iSzi!W6<0_I5C(Lu1gDq;sjl3UReA)lT-v5yzQ&Ne(_DjO`e8wT*}$SM<$ z-D$mM6zi%-9s%yUG-=eL+&ovMt%w#S57KBV%1%U#rGt9V)Y9Er~|``t~aKiZlG^n z4@Nyp3IW&ADDi;PPXrx9fE=0|o|6T+`EJF4*hYeZAzqgEncVFEW>g9{)T zQ1;P4=n$t-yJzpCQeQdWH+8!ic5TBEr^?0+yY(!deinOmNHSI22ro2rW%F9?I)a== zaS`i=nnUp@LaVq_-~l$?v{ygQZ;lzPE1$Tf{`#%|05xOU>s!zJlouUm(36AlY*uuZ z>j3THhd9r3q!U9Ir;!)p_R^vuw@_U`*(dR{7vab3Ud@MXqsN)CKRNw2dR8vJW8gg9 z$d2J2a*4a&+u*bCSI)-`Tt76e;`M!m~Rc z%|S?>O7`Sf3f?kXb}#Qb)RF%h{b1K8=HLdWm*?tZ{!FNQJ7sk)vT6=?I2E|fJ$46U zjBI`F*CpRG!SGL;gn@S%ysO9A3#L#IA@PsmP zabnZ7y?Gu&Fb{v0a+E&ZJ>}yxcxpK196sp<>;iKSO?O}@m#+lE0m8|s8}2_J-b=?K z*aQ%}4Qm%j@1hS$XlGB#TH?gJCO-d`a2@}#Vms$Bb?sMfir5)#3+dg?DG3A<)rlbR ztn^@t@3ZT5m`k>`?%F?|f$r*`BT#WDGJ2nCPYmB1XlYyT;!{L0?p{Z!WP7iMur3y= zb1^701pd7BLRa83iSnpsnigsFzEi!NNwj3|2V&*imaN&Y_SsZPG0ndZ#f2z|wU3i^sC z{a6t9yx-u@xhI>|4IP%2*PH=+gdoKIt{|Fs$w5jUqT`C!Yxqnzd@y&BI*n)cj;Dh- zZ)H+LNfz9>E4bR>P}l1N2#L(mZ%TvM7$wY3dqv=S%$Ws94`emcby`t*ZzZ6Co_-?5 z^Q;v!Nu*JDh+{f(_8ev6sP=f}eLO#r!%vbRPtXTnXHlk?d{cU3Ob~yGB+w{`5g1~1 zV$q`1dw8<~$1ph{f{7rx&f={d(&sah4o zGol0#*zgWNK9e0}%uL!G|+n%z1o(Lr! z?`^M0_G>)il#(OeLSz78j|}yH?eOzWb=^D~{W9IxN@82LwTW|Eu$1FMz z6tI688V)+>LBDl7l)QRnG+gLb22?Q+2nHoT0QoV?n>RZ{-weQSYtXWM)6SGKd`^4T zO!y^vYw+^nqn52DsKmHfP~s_UBj&5sv{FCccvKt!x$61CH+O{cwPMSs5^zf%X?g9i zny%^+bN`%Z*m^*lseq{_J_OruR+BkVCe7>PBrc`rV6ykt6vg&dE*Z5Dr=cp8Y}FYq#f z7*Li^6m0`qYn9~oJJtsjK%|RX3+arSyxlip8=vf4k-Hxat+f&_GprtGVx5%A)=JhUD9aGVaaQ|HHY!pC@GH8_-RH%&AdCK!WRcHF}2Ij{PPa|tZ6^n}*j zAq5Nsv}$H6t~ISgEQH*KAYSPlx9vdZd#WjhCc4>j^;~OLYk9*RlXrB-jT(7+U*V}S z%I%aVPn0;X#~!N<_n6(EtIuY{z<|8hbOK1a&uOB44gb?kMw)$P%Ir^Au0CkzDJMUj^#4K&iW%H@2v z%&BC>I6U9>WXe=>O2@3WzFQ2P}J*;O}J-L9K}pMJV?rdt4(xWhinQyQz*HCY~Z zAzpB0F;g4-Iw|vgiu@ugRTpKtbpcgIsU)^`>91#MgXGC22BS{+kfUYa~vLtC>h z?=a!p4zc96L=S6b1xj5{N*9fx!KKDu?Vd9ryudrObHrjwZ<;QPbHQQj=H9JpEWvBl zm>uOKdH)kQl26G#fuiwSV@Zv?M6#|gW6`Kn3$BO9i z?ZP7uuHy4=tWj^^^=!o$`7tJ#<=4g^5w^_p@6%(XpAJZnm(l+4Ey7W%6F41&Epz|* zz0t+8HsJWyC<)!I7I`uG0Qu_*pz0^(H@7x`H~ssQ_}usfkUNpK>%4L3fjV{S)MESY zx>H@yiBh+g=#8u_R(U{}H2I}%R8&+cz)cUt-1{Hx7TF$24msM}Yor3HAR;n0Hr5gl z>@0O2t48UH8-4n!pKD+V=(Xsk0`CBR*1IiPAVw+vgO1@R9KrSjnfxRu!?D4r^+EVy zWL1%c^4>p^C2}&S;QvT&5Idh@;XQQr=+`LTb_QEvanb>${}fz06I4}!_>k^Dw`ge3iYfV@wTY9<+h zDr#R@%In`+iKD%!f!gucs7u)InGtQ0kVf9SE z+l`s~9(i8Ax0*~L4Zf`l{u(A%9)vS|bDUtL4UPAw$OYTn1&K_OD0WdU-Y#ilmfE&ZU z9shSabZ%5{ZRQW#CYs|8ZvH)DE`R-Jsx>=Ut2b0D4xX|1*8I~>+yAul!!9tBKaLFW zk11qbV)HwB+EMFJ^mnU?G;3coVhq&O)b_6S+*|&YcrY1r;i-6#E#J|sGW}6h~j{h^~RRO7oYqQKH(Z{=Clt{|79sKpb-FTt* z!?WOzWzC&{?E$sMCD9N7)gm~^9X(+(ZWBD{LrG$%V-1I_byzvYr+|Fn}BZ`;@!`^$lx zJbnJfANwl$*S;EsI{`yksyN)GfIs~nIYIINOy=6g((qLTggNfF4xo!`-2ZxlFqYOy zT}1~rHn#aOr0y+qbLZ59DM6>z^rpY9!$l?q`_h(0dRhVSmfi_?{E$c<@C9E}Pya^< zZiAWcAqN-EmqkHQXRgZ=66^zrgaEhhX}K7 zN_1Oa+Db{;a0W8weg{<_da4O1`)=K(alzkXN{pW|9@`hB`|XiZsQx?>r)5`Og6dp}nRH-bNYT$IoGAjk;h;=THP1Xcm9 zSoeJP$8_bwUu3&)^!@lTBzU;UQu=7V_isa-(`4j-NO=qN@o1^)iFTfu9`00!K6Lm6 zH~wXwSv2HJB1!ZMuQN7uTzVXY5j(+F(EsSIMcaNcsbW_HMYuyRS$uAF< zrYyd`4V1NC8Q*YLY`A(b@zVpq7H9riDUr^^j`Cd(A03^&GU{FBI~jgydOjAXpoFQ{ zUb`M{9++uw`dK+GRw0araA8Zsj9r22mWYEwi0aao}MB;mxZ%x&LM zR=Eyh#Q-she+Cut-?j99fn)z=@|?QT!<_qhH~w*HVCVmFIdUi3TD$OHQnU}RHb@oi zw|sa(T}&#lx;#Qne?gQ2wU|;EfJka7q z-dg(YoupQ#M|>+31qCU?f%`{B{dM5Qku(2Not)@=)z0&vYsV99=Sz_wo&N2nv*f%e zYhupV1E;q-%Tm@%IxctVgqs+;4zZ?}_54U+E--p%oLm06?ScoO>cYh^{4@7mHNT%e ziD&=_jy>?(x8{oZ`isL?uKe#|{_SlW1INQ&V$Txq>8RqSnM4alj_)Si!&w_P87ACI zI%{T(a-@TLvps%OQi3-$R=F|o@WZ2`_oh+$H6@oD^WIlQ{TS+FCKy+RWSlJ-Q22>O zZ_(xC<=y->h+$Ydpz&cJ|Jhq!JO(}KcEc_2iA~{4ouAh7er{sLaviUXUgy5cYcd)( z+U7!p5meOxebomx%WzjIH_>AGhF9A%hMfzShRbYXuH2I~(lT}1d(P6`6J~U@vZYei zyA4!=1uBj#1$*|_+n(Ul6Rf&^*>VcPX2w=Esjm0KS$$afm!iD~#%_-zzL)(lzGIBN zQg(&JS~|3mdhiWhwG7`A@WYpv$VWf>ankXNy_85>!G3IrzGOws*=V8C#q<<#f$jqw zYJYV=MJwp{5<=AYz391|iZzY1KB00d&mQ5R4e+ESU$K)lR&fiyQX*rh_474wL%L^u zwb8~MWM1=(n&TrUe8Px+2j>e%{yQD@^wMRzINPa|%9#+h?aP>_LxUw`)5^s7-T8GUcTMo9i~1_!ci)X6UFAaiw3T zrMfz*;%8p@U&56Bf6o>jUpn!*=@)b4a`MmWij*aoaQQwc#ds!wiGAE6(ju6=+-6b7 zL4tin>agYJYsdPpu-K=neR~I0P$*J6LJ=X$R zIL+{-EJevH!SvOeH59y@SDwBn0}p-poyY!);pEoIoG}AycjJe7?>@H~u^Z>*m5__# ze!Brn`RQ_fiQIu3-Pr{}g(3RGcLkNT!tR`gmA;k8`YPopmAm$RRKNIh`-1G+i~v)&omFJs?0$lI3dUwc>oTrj~%Cv^nWLHKe|zn}GD5pgl@ zOQiN>O>U%UM_X&@4?i*enh#xD)kPf_Jo*f^oVHniaO7q43u^t^bKVKa4SLkUWn!PK zn*1Y$a8(N^EURmzKP-`8!+w8QPFc4unz1pk{c>Q){7bCa1;#yMaS%ZD(@h60^2)$U zALp={%<#h^>c`@tWWw{+_+jm9Pv_?L-^R$4T{$w{?`2mEwDew2Gj^9LxmB7+36}r{ z%JLv|LrG6Wxm#DO)8>DG)HE*sGXACT9~UOpD#&e76_k3UUsc9%s`A@d$ArSUfkYil>!lr%q|OeyNRFSjM21XSn^ z0&CRo?Q^;v^ttLp60^ufbE{-Zah`m|;05Cgc>uq%5&qb%Fy0{f6MLuD>5+jB?Z5}s zRS+bpsxMR8xJG-nvARYu$c)urqF6$j|IBXS+mM2nhA(W{cG)ImU&Vf>Kf^0tSURKc z=(zSg&$;A>5t>cE!qRZ?QJ(*bxTGLJq4kS|f~Eb@__RviyMpf*ieFjv8rLU)vji6N zUXCU>m3PYPm)Pe!p;31Rgan@lhj8WQ=a(HJ)k;x4#J|@GxwG?56SN(6TP4rk$f2S7 z8HZT~z)Z7)G!0&uTIi2HaL;-8h)m6%SMuQ}&#ExQA3SlX0{wA1`clD2&xr(S7`!qK zT)Z;!a6QN&Z!_Z(|M{ju5)H?^UD*#j=B;g>)5M#X_u_2jsolivY^tZDH({qc=t)wQ zWxqCO-mkuha>Yn^v_C)*t9&B$roxBMjU(bU?4EqeYc}0ZLjJ zQlO`voijZ6TK^=;{*mM9Zc(6e%pI4N4q|z|L$dU{3Vb^_ z671x8*G45e3Q7}X9SJ=)Vin(bZo5a6eBbHmyMR_m!^$|Q7e=Oh0q5R^GE-`cbIo;7 ziK|pjgzq*tfBwvKxf49Al5_m1y**0|?@xeySVWX_mNYdY1|17DhraL0iS3BC@Zx^P2c$c8SGxm_(@$AD} zVbj{Z4+nb z;0M1~(yn*tA%zV(bIKRwG??ajGX0%%+`HLxFNq&)X4 zHF7g*ke14slUeCIMV-MdQcwSXJpFe#oA3WVj(4K9LThhY)E*_a+HF-86?=rLz4umv z*wo%FTC_%jh^=DQtQ}%h6-8o;5#yWZ>;3ut{&gJp;m&nm*Yz0Z`8dyYia|ud=Rlf1 z>XfRlI>dRJsg_#VQ2b9)&HFpmvbPTv+?%s!B@VFZ)^-xjAkn41_1rigrHP|2|18KZaykY@#k^-P9H&aP$cx z%$2N&-Oul4@6>5-#GSBIJDn{ZStTcy9uvRD|FGnZ)mwyDYg9wX3&-A-!s#}|&%Bu# zlhyMe=f!PNW)3XoCzft7xNffg&7zC2d|p*GTo|;rmNc01Cb~MQNH&rAn#jE;uAXrk zkm$S3n`P#$>0Omat6DG*d*SWoS0m+Cjr^9Gxv8s5AvvZnN$hRlR>RN5i47sE^U2j` zrUUm`yq|ZhB|U+r?x8KzN#XR!)-6mGop|N>9X4#Q`RtZo4TfmkI>%Jhfrb86X_tg>o zHiX=oJu&IV*9cb?78kmvOUj4axBc5qEGK5OGHyktRmnp_1Bs#aUL5bY_|w zNAvuFy%E0pVq-1i7RzCMl^6em6^zv!59>ZL&Dw#PMUce+ywi z3)K8C0qb@e+eUp8(?8&2=+%ri3H9cFNQ904FUJ~wYuH@v&3adOKxnA0Z9f_mq8GiE zJdDgLOadMMa{C_WRXZ*0C7&J*A=5zcz4>+P>9@Wa;{_;s=AWMjPMc7*wXz68ei}r# zc38iUqZ<)HEUW}(<(7vM5$yjZJ`WX@ZAJ&7Vo_Da!F_W|}@PZDmhGvQ4ibD6~;xQq=!FPb}(h<}!iJ){{iYsH-2HYpu2fInU2K zjJWy39X`VFgcAv+aXjw}&W9zKXmmH3d0D>V7na#6lgab*=gu`7aZxbH|NT_x=%%N} zUH7sor8(kC&3c`0m}=X32Z$iBjxTY=zH+}wC_ESP7YDvsnXsr@HfC%1U9%1e>?rt^ z{lB$>0^=_02kUss6uB+{k<6f}o{|@Ls;91o`AoayBmm8(-}1UktHK-+Qm$^$)Jxg! zL*fT^bFvbv4*y>c2>2s>bSjpMUcvHZre!l(zO2&ZX$-8&lOJ*L<@s*s@AMcv+1O_c z&QTNtUj8RE{lE7ny-oe~qEZ8H{qa|%)R<9B4qY%^aaEJag8m}y%9*oORpK&DBUv?c z;Qx0Orn0j=u5Y2}=K20q{txtlDVIV+9<(!6Y11b%^#Nt|3cR-~rmN~{St8)_|NRTq zHab=02F1^W@ON zB!o&iC%yU~_C)?T@135}pYw9MXNt3~tzI9YT#3t)Z~0M2x?!TpK4^J<=l_=DwRhdY z{rJwDt21=kW{lSBn6)Hf3is+h#PLj9{S$;|?engeZR?F>BRTRC%Xvtk$C%c zdz1IC)9mPu5ZI4gS%&D7kovKG3hmLi&okHE6<4`s>*9p|PL! z8fIDZqj`&)^+C#Hnay*}Gfjx4Zy?ZDWyRwGfuB^Zv;^AxN=J)!jGkL*!QcqfgDS*` z1bIjSPWk=mkIrLbOgwQv_K5%eUwD{4i@c1k7RDP7?dS3g4iDAUIff3$OH@^Ud2(4P zW5W1mVQiFHx_e2PQ0RA=A-MQ87yS6F7i3~(CzXWQtbgtLo+8%?sMAgq{Mn{&4HyoT z{!~^hjJXP`ZHTL1=YZk+x?ynom2?J@5fYb-`M;uW zd#nAn5v`ti$pO)x40%g5N9FlX~~+c+cY4;68_mj?kW<%yq=uL7Wpbrr4rGAF!fbSk~)gq-B_Y3 zGKEH#o+rYd+~$jUt|o7cv@fk*Z10-ETJq@$>UdhF>9ETzX@V$_TwkK9YAQz?L9WP+ zS<%#rY0SXWp`C2oyOJ-f?CcF7>&|oD%usm;KgWDPtK6h(-}|v(v+Z$v)?oft7YH3i zE*oCc?fPeBcmJV@#${FY=fUD-R^p#J-#YUY}a+r z^yv@Pl>MD!FfnoWA5W1dn(Akb(x7Oz!N{S=6>r-QoOB%0r~8lEpNlVJ)Lzd$*ELHk zuRed6M@o!H)Q_CnGZi?>;U4bho#RSM#nzJ~I(0v9^Y+MOJiq_oJOv>hsx|lN<4rEA zr^u&ftBxW)$D&)#lcc(h`Cl#A)(kC;-v@8u=beyt_!*pbv9FV)?cQ5tiYQFGugG0( zkR)31;`E!nE!^IHRXyHRkv8@bkMd9*^fF1wVA{piS4qtF_Oi&w+|?MF_7 zTj9SwRg}NyU}lNs?6`ERPA-!-wT5NZhM+AnQ0CSm38M)Sd9rX1Sd#-VGKSlT&*wzwao%A6c z;~%;9HgW%hE11GV_nt(Zg7O)c!&<9Kx}k)O`sc6h#HPdhRu(Bn_x9Db)HDlg*|pLV zs*2WOA4Tgsb_~>wZ6EB_FW;|a2O9b>ouvpCkx;-2lvah2V=_Y`OnFZ7|HZthe!4$h zbKURJYpbFS36rR4S)S2``j|qnJyoHbWbCU1+pO#4Pf{3aigvCqx77+{O@0`}XGUiy zw{k*S4z&s&1OiljQWCMldsBl7NC36rVy6MhduLwDB(_{5j)m4>bn z+8zB#@g1=5%5;0X+h&X@hlPu=HFL@D-Me)No8Hs)`^YcX3+EOGYnNKf37yt<^-5TL zzsHzWN6IE?D_dB4X7Ob|=;?~-HAQ|I1Df4}liRxK@~y<$%mBxkkm71P*HQr)Z2Ki| zr|`rZnRET?c7Cdf$&HdR!m=9`&3?cG8kPI!>MeusLkI5noA2OSAN?=%FLGg)tBC@_ zi*4TPI{1ylEA-XQ*4Uh~`3Vr8wB2dF+_Xb}b!dgjUJviP`gLS^wzDE@ab%IUA%gHQS)ifgkOVzIog(|2@v2K) z8XH>r$6doVL3olfeTVVkT<;u6qFrc5@^?#@(vOo5k4dQDi^;cLeV?o*j-=EN)~C$B zxhEkZ9R8a^kU2aldnBYbRt|GGtUO=S-|1SZ>b42 z$2vpcvlCmkT=aPj=K%x#R#gr?-v#O7VZ&Y*1?kb1xB2EVV@;!!lhkNp-2c=bj(1&= zBDSO1P3V+jLAFk_A;{umCrfJyOrT zR9B^WQ3fYKIBHX_6SX{JBAiBZ)ZM%6FS{1#i7O@gCnhdX3<(TTiGTm{?Xh$#j-E_A z42BvFhviL6H4-Wd8&|KYL1z=}&hwM+0;3K?Kbg8kmnI06D@qdg9v? ztJt4>jGCDLZKodMqh4)O6rMps^GC-I954jS26<0wik45$n70eJrOlf%|8bbFpK&r$ zwxKj*FgYYE8KVL>-x~u@o*$js7sB2n;^v^MsDM2 zqZ{bV@$33B}zsYp}~ToWYTQNVpDS`5XI>S^ZOvqzy<2E%?~H z2EdoYPK#(`$$FnJMQr;bSU48x5EC#OW|Z+_iz$XM!Hzlp`}(^%tbYqQ74unN<}3PO zk@4qx?r+VzpE_b`|@3JiHQNlIZ}b|u;ST6^eGU;69dm?*hsCx2SSYxdT(C_YIs@(>w|?! zzD}O5pLy<<+zbmEHLKyWfCNA{0F9!dY>vYMTO5u`kIJNCrInu!+FT#U@@H4*iaJxY z{=I189sK0pLLv9`eXV_wn$mo^WX*R*w%{KvCEZ*_jLYk6#psuK+K(5 zqV)RMbyv@mlix5y=vhHZGFOf5PO-vsEyL_qmsOYN2m&^oVPUPm5T9Np$NNtMOngXP)Un0bk`GtjSyDTeOk8M8 z-tq$BMk_3=yMCsDko498?`J*s?wml0N!^QnLU8pMT!)^R$7fKQJj6dQ$Yw?BLE3aN zH)u3?YKMoa!qH4<4TwC2d<O_W*FI2QByMv)|;usK{B323}E7v(&JGmCx&&wF-;|o5MPv@0z)??07zt^{_%VD;R7_%5iP| zbZr~(J}3YeQM({+yNVnI!}iAUfXp|8Q-NGGrTK;VMZ8M+76NI1XRhwq~O zi!R*>Bl?i)FOBU%<@TufyDLm}mTjyi!7-YA7|-@)^idWuIYEnL`qKRtT)& zM5#Y@cRr%2GoxMng+MP*N8J#=&sB*}a{6v&W~(F5f)eX`K%sVfwFGQX7{2r`YG0G1 z$F6BV)&7e;NZkS2!El1CGa&+DU#1R7&#Zs-`|Gr_tk%cNhE_R*yeKHP$Z-w4Izj0v z1&G*vDr7FmDqcNls_4ud+jL&DKY{Caii~198aiGLxmtBW>$SC*ZN5%vC#Jmn-N8l5ZZYfRk#E7?dAUnC6Yo`-D zYf3_I6O`V9o#4t+J{=~r*ONGIlu=F|&+hq=>rAXd&J?#-H!ePJ^eoF9ki14N#KS=f z`y_&lQe#QgSC&Od!~pWRW`rZCv3w;Iq_7es$Qo?7kR1xIn;U5Q@&tchp79Bs()O5J zFh8(WIl+sG)`r%uC#EZd=`$%N@0(f^H%G65{9oItUZOIv6CBZTaN~nme^Tt97r>zN z+LQ3*ETwQur+ORU_Sy9mss~txz}q*D;C@@3E;{1t8U0@ zS>$5h_s35;Eg`wK8a;ZVK~LQ}==7xZMC_x-)#UQOOP3dCMJmp`EGN>>_f3_rTi(iP z1Ew)WiD{R!5Rf#a?<3Y6YCvG}KA%!bWHX*OuE9H&}23f+s ztyP}0+cWx|f{C>#nhmqfBY&;jR3tqpTzXoA?LT^;-(O08*vGiFnSycFr8j)EcM9Vp zz2x1e=KOXB>Rmpus3@7%SxB|24WBR8#k#Jn&$<|_(SO$szVkcHaCyN&{<2`!zou~w zV}J8|9G8RxM6D+Z?bsK?7X1z_db#be*Mz>qTbZ`V2p@& zhhXy^*Xjwzo!X@6i0>q3y@8ii@AMs^=I9iS2in!kk8g9kfJMkT7D2+fmTt0PwZj)v zC7oAB6m?;&ha|?u&6iaHUb$=dpT5DvIH+cLHo{Ms+TlTl%Fe(o=Oygs!er7(Fn_SH zn_vMGHwm}VWmYziS8vy|A3rSrSh>4!Wn>f{a|ssWMUcuhjgg=0Z55XP`o*yXZaSaG zy6P!yce@2&s-XQ@o5MJ;k@U(8!KsI^7c%#?EL~(n`BCF-hC8v09AZ(J#HDFpB+d)~8>#UW zc<0`NlwDotuD!#H#<17jO3F)Eqrl7ZpbjNkM{r7w4YqPTJGyD=?WWxif0I^!A!+t8 z(fl-l*hm_0+cayx@f)JZug1pnO_vB6hWz+;nAtaA?2os9q-}mqnN`0#5C-$Tr=#>C zRIcA>We9G>4pT!44drl+0h;4Y-`jNRi}6&*ZRo_o*O7RB!{2@;#fM6Cfv@LkfdOpA zE64e+BbnRXVH!Oss+5Mn{GXfhO9Jn&;l;tWXe>Gq++XdMIo%yW5r6C2mo2$3_a{NWklP<%~cp3w? zCB8dV?0=33A3F_~O7d-7>fcIOv^4Ixq{NuC%B$9&@RB9TxMR(?trmb`_Ei_C7$cWb zjHjYXph|911tUE{gkk+*K%il)Fv6x^0Aq#}4V|eRL3flc6y;m<492$T%>DCQ2nu$Y zmK=8rV!_sG`h5Jh7F-R+mF*@8dl^w2N607 z543c)NI*>axWCE%*sxH+oGF3+51(BXCd!CC~re^MZ+En1nf3i%zElPb4S{iuY# zL>FWkNby$uzG>(U*Ad?<@7H9k;sbm>94K`ISMvnE*Gs=mvNElhXAv_vyoCF6Cc1zm zyN!M&5S;nfbrH}ZhK0udyi@YhOJg^?*y~} zO1MB)Vf!=?9#~ra6}Efx zRbBF0Y$6f9%4bqE%N8R{!ehf}<50R$UhP?&y}Zvxgt~evU%S&H2FYLYP%O*xyq`N# zN#{|zC~6r5d@Hgfl(aW^er8c`t&;A0{DiSE)$I<+=%UfCt^75+;HY3jT4+qHbKu%3rDS9&(eA#;il*KhJbl zxHIM@jU;j5|GwK$cSzN9Q-^=^s#A9UW;LW3ATpMh(~)KGNg2}%tK*XP{DCGL`VawZ z85_9$XN6}54rGjR?FdhX^>={RlwPwehrcQ-miWU|*_N21;H6Y#m7AN(mC82y17|+v z1V0W2YREDW+Ib1><#_(>;*27mSJaabz#e5J?%u$UP%^0dD)E|jhC z`F*u5-iT(n0k(VgqO)T6t!(*VQh2%qAH^D=lRhdosK(ui3>-%oVU&2h^CItw5yb}l zQj;weG$Gcw>j3;(xhf=@FeA1%-|gGIxR;+17B*FQT`;vMBWiHa#qL^W+cx`ngRf-9 z(%n1%#5IAkeP8I&+gIk>V_#p9W>S!qCP|bm#Xa&Ykrh_2hAUmYzqvYS%Ap*T>p%X= zNz`dt2xCua2||CsVqQH;8Lmp)`>pEnN7hbqsM<%f857q$1M77iYS*EOhE%Xw?r$;} zI)T41bYg^cK=ma8^p<_iVaiw|dc^~wfhYbf-`s03sv|S{I4xHOzV8=`8ad}}_cZ>4 zs!aWS{V5i+4qkfY^CNeAV9xUscq99}`A}10Y=E@KT#h&Rw{Lh?V;)R{IrhTTSWzS> z>1SeU1zl8JcfwX{*0`v^_AAp<=4*aM7#cLMkXH}ypeKf`^^V>b&wgjm!evgEqR2Fc z@*PC5p@56^@eIu3ISc-k(`WO3LmZ?)H_k)oQIE)L^}O>D(Ow%}h!muzMBJ#yMipC4 ztTz=nFeUCA87XnzurZjwt;*Mp1O;!)RebNv-_4QXW9h$sJmfd?;l7vc>hm^SzxNJ# zijU1K?-ODr;zK*m6Av#CU$DQZO6U{#Unqws2;XU|f+u(jXr4*FM1`T~DQoK|z#uW7 z*Ft`YM@>4~Mf(*z`kF#jM=f3K{YvlBc=3FVTy`&H`ql@1uN06tXaC@^nRbmS?h>u> zf7&HQG7MY|jwjoe(qsYc?lwAPo;GO}cG4vwIV0R}m;cFvjj-S5Y(?Dyr0&Gg$uE(8 z_)0XjIqj(V+3!gyCC)B<=*&p4lt23~Bf>Jq;*a7kT%;b2OkmAtZv4MRKXv z&zd!)>z_C7V4tBkps>L%m~G?q!(I=Xx%EEgYvq@@{>{rjOAG;WqU_#9BgetT+nvQy zA)1LpPpGkcE(o=8y(#WX=MxtwT*>w*aCI~#Iz8iFBWWW=qrR7wQmeyov)^=&whf$1 zdhl0WmnYj<4~YYQ*T9A4AmDSccHoo%?OeRU=R1eWSdfB2!Xk?4XaqboHC5^L)H<+LanZU_$xK zmXkBueB*X=)?S5xVyVKNClpbGMkf%J+4(8vrMIkSZa=IOu^|Di(`}Zx+pX^fSj3_H*JZ|)?Gp$3G_@C#nv#(xpO_v6o-m1N??XOBG-=dX`?1HW&tPR&R@#Z ztM66Py@P_U>bQ1f@;7JPgPz=>Y=Z!D7{!pMm#7F&FG6xc7jb@)uR3VX0(98t-u}wc zQ_bCA;X&!==J(EwQc#(Frm-#H6Ovvs9;u;ly4kNJCvHM`7WduAU5= z^EII`ElYZLn30}h$87Oe7r?3Wqnq+8xzo#^!QG9$TrPn+X1MwOs-U%YxQavxJvTs; zMewdTzmwH7=WlMVX-Q zrss!ET7rV4%QhiI+KG&5Pabb=DyrM5jCkOyeD_(M=7}1- z_kUPYv40pN8>2iUT~+deUcF?ZYTNgiX0TTp%l+Bc%_z#xLl;Zgr;;0UUp#Sl{nA+c z6d2UL)P-3wnrtK&(0vzoSKemZUnprqF)nPp-+*{TSNL`1$huLyK6HOkpA8hLqXi1k z1l1JzKq#%r91(-ORc9(|8m4QDTh@H{?qt^}hFFZhq$%=N8YY+263( zUF-7ZH%LTx+1=)84;aCDtFiEx=6|(vMUFOc9VG2bwYfMzJ%GBMGc|kL;vIkyu}`$6 zCtn?nFmw+@lY_c$boeYpyFIf6L_UgPN5akW;N}+98>l>9S%$`Z5Kaqa}%!E2g6;B8q6tU*$4<;UGPc&TJ?9QI*kKS<7Y zF9R?o<6uMtjBpGH=8(4MOg1?kM8H6gBb(4Q_*VM-t9h;u+He~mVWqpI`?Nf|Volmk zGwkcMX!ZWS?QGJZ`jh~pp*(KV3p}bqQ{?HvW*3 zW@fwch~3Hpo*c&tvJPE6fNO_?55bes0~r?oQXF5z(K*uU zk(+(gh|~$5X=2-dfIMM8IhdzUm^Hqmbq;uLTsBamghkCur9>C%cdl&0>|r{_!vka0 zL@6N3lhJM9IE$AbnKGKubN8F@)o>g*eXSWsC;bTnxJcS~#5E3=hrZeexl7VFNXI;j z=I`}p_V1wI?3(GhLYaMYIQjy{*bHHVk2^1~bRpJjeQyG+1Homk!=WpWHGR_FBVE5| zU7)v5PGt#DIyrlx%w75|LB>uxY}VELS#s?sS@|k2=<+leLF(jYOib*DpeceLI+V^Cb zltAtLeT!%T?+bUdRej8Bq+}>IUhLzVqxEoG?dL%>;ba&*iH)f|w5=Msq=_-kiTxA} zknX|Va(TL=Jh|H)kQ2=F6fTz7YZvWSoGLdFH6}&R#r^8bo!&VDj&edB!&7@4P(cVib-_b(!Nu0j2QCv2eAh_> zyJC1<>7p~bemw^se_%wHS1gFIY)BU%qrJ5X={9@utPvKb$gz}f6&tG~m3&T=g9&eF zlD=$ev}l|CJhIh%#Nir3QD4v3Lz*&lB} zj`ufKbA_!@i-_5j#@f&N0h1R$ZA!cSj;+u*RS~T(Wk4|6pL4ds1xRoZRVaFy@c|=m zXkTvx(l(&wvdFX-0`!P-J&uAi3qFQO^+z!7Rv6!0C!r8r2PBBS+#6K+jpBbc<#7CZ z=$j}>8=N*(j5e$o0CDn<=8E)ZAh}zjv$z#&Yt3Q#+H(X#rrhNul~^n%EnIWt(=<-! zs3N8saF{I+6$r`#o3kY*zEb$=MY#)m1zI(%Ng>$el!00(lRktk3>^YU?rd^#6ahhG zA1&KPQMU&tpEIpf%a36UDyM71dDYwa-NRQn1sf5KE#hdtM9rPvm$HMD`zd>IN%BUg z-j+VM2?)Snl=nS&KMVJ*ha_qNL;+?5nex9eM|9&a%vO5kInjm7oXnpwGK+DEqK__t=cHQ_QXl}$)w$c z{;HK`ktPMY=UKvZPEj%|Q05*JO48X#`ELwI%ruqmMqKe7T2-h)+R|eu$_B}pSN|P2 zhgqqaxo!Db^rW*DEGZZmyW;r>#tb8ZbxAw&5|B(AU`$TW*xvPCAG4`6KPqI8(746M z_1ant{0JuDL2MlF@p4yjX;SswT`~`NmDvi9&>Pr=jPnyA-02WTpMZNS?LG0A=U>kO zZl^mNb5IStyN|^$RGI|v@Z0Q$m+=J1{@@RG(VL0XppogIC6mxNmAD*a&`FC}mI#}_ z3Zs40LO|EEzf6pZ(8mk6R}$Jhc1f;TqiR~l`&BmUHlN#<(4TPWRPB|$9uVF9;|(&g ziFl)=K$=2MF>HYdM)6RpQKhAL?T@<`biW)>u`KrFP|gF-RFZwe_Y#C^XX|gN>Y*=4%s2npz%S zdalC=f11OX!spHr7Di?itk1P23m7s^oom3j_EGw}-S+YH%-)dyJ~b)!Wq_G@JGGY* z9{9MrSy^XK5se*no>v5-5;uo_LJrCJ7Ofob8H(0A(!pmRcuTa^O1oJ6 zZd7TBN2nXPJr1xiId0NTogT3#MZEc-KF!{6XXUpFJ$?ZKQqP zH2#1Js7+V>zI1o1z^tnzi&tV{-$xAUe~TrSR{_DbP_7}c`k%1!%BEv$PePsM5>VK zVqdxKIFB^n$={%f4?3IF@ge@i(e*~u`nSVvBBY{51+BlVzkrST z5oC(s5^6$Np|;O3SH|FU%f1Z-hSr;eo57#^aCwWqnQ$==vuUc}?*5td^Ax0i(ODzl zF#aM?O6fH(MQ~yE%}9n5J5OeOk0pno$KJx|KYk~1k^U?uQ#l!zoAfJoL19mBa|clf zy`JOEpah>A|BJDRB%8)Acb3IE!!K`O)~0o|Rrm5F4~AiCuoE&@<6Jx*rGygsXNBf- zf#Hgbl)5$J9q5X_!t55Pz@m1!G-mn+^{vwQ{?DW)mmm4nrFZ5z5TPr(WrhpQ&jxw{3Q|B#Yb7p9<2Ozf%PRFa$J z_T$pza+$8;7D4#ys|!nC``UgD3N(aTK)(D?6Z}&Ye7^WTaXN6J*f~8E89?IrBmKKs zKwh9*Pr?b|&!V5t3aNp5(;XBUprcDNqANm0mF&Yp9nC(|?caNw2g%*TuehDS{DAdO zL2K@+Z&oY|9;kj~VF;jw-x5kB15zwK{MA^NNV5luIvenjeh zq(x{#R3?6(fY(?f=}$^v_jI45Ny3|oJG*z2PJ7y!hO>j^&}IJ6Yx5Q56Y{YNF-EEh zbW_#`xk%d0e#Vs|GBBAuk*ZYfu#mYFvmm2!s?A(J z-n994dF%(H-9FoHdY}{F)(5$RY~~UR>DXCWyM&1T`h7PZE1Ij)oS-AQKg*HvQ-=y_ zRsWo;ml*j;h17&6 z|LZDK`qP&cia|}1iQO@wlj*qrN5=3WA~Ll{HbCKK4Eqv@@g?I;XM7d)_?_EidStdv z!N*jXHh1R$Ib6jOoglsVdocmAD(<$-@W)=^3LOB==VsvK6sg5eS{^IRsB5k=m#PKU z6BidZ36v&a>(M~4a%(1@A-q&E|K>!ddHXO9$?x=>5|SUgcJBb`iwn6bOm z&O7FRZ`9XmIDOl@P!_+RW%ATl~&@l8| zb^i?ep`O7>S*a17-z~j4(4{V{&hGM!J6!WCCJ3!kCb~1$F%STy%weCc{|z7rl@uQ_ z+0Q|ByGIjz0M)ledD}k07))M4Z#)cEZ51{{uFPe)W~x8fuUjcP3#-ilPMMudaW`{3`gkd6T-*@sq1Bt4h?<2h8#wx}@JN zq--#rXohef`P(-zAh<7;YOF)9hFchLpJzFcT5YUZuEC1*<7xfeouYy2E@uBWyGY)7 zvO8*GyGc|dx~W2~?Y7Qm8>`7^sDqO)yVyflH~G^yW;Nr6VaPa9dbwz7(@FC};1DAtjTm;nj_^)<%YtoTTw!#Hbl_KC{(MH>n zjHUVY%Yb7&k{72ccX|alY{#>9P9*pWiLjk*?^$JZCfXjYEqJ*L&F;@Pcs(_^v#YrY z4RJPIwia&Hk9^^un0i?`f zM&i1PA9eo#h@TOVCojE4Euzq&AM7;Uu|uNcn?QYorot=4dU(lv8h$I~*F!Qe)V}JU zZMSuDoe42U!hR(2w1wv_R8%f6gzAy2kgFvf3=Zs%HuhQhxV>YO1aO4>(#G!fxst0v zo;7i20l7HIfL#&uXakiGV?Er29tvi_&8-Aric=N<3_R##ofZmS9#>FXPz1%rphtL3t}Z7+k@hIL`r% z)G1%uuF`GxIAUU0I9LNb*C=}i1Wq=Pr#C|3EKgZ3y#{xxlW?C(KqDYsHGvEEr~q|V z3Vwx3l<^B?QMw`3@Pw{J#?E+_F!EaX;1-$XY#M@!+3O1%oL&cA|(Wx3>9ZuWPQy)1~bHw;J$ zY|efa+DhyQj!^n;ZTtb0)+La9nZGA^p10K&wwS{j=sD#(Su?x%`?#gsI)r>F?DBCj z)RgNV-El%ABsE6Nv~xeO(=WkD#}q)MlaKQp@#>Mgv$qw-WKmMpGO1_KDGh{$OxF|c zX7YS4t>}Fz5BlPHDGltf^x?Tfgb}qli1CIe@(l%AISYq>>F$t>7DB*HH34Aj6^)c9Em|ckn@DR-UACqgrA!vf~^Tx#qotw{0%>Llz z3sFrrl4V*^9uTJ&=c)A`*G1awbnDDqlpBRj1kFo3_y&_&iUj!apLFLU>ZttC+eIfW zChgAE*P&L7=5X%u-KcCj!52@+Cs<3eW*HoxwV5IP)ffj)Y6FBQUV#GjwV)=9P{xyh zHKOvXnCZPaC_GW@MXt@WYp?Nk{J(D*AI=MAIo5_%mU4})QJkuPAoicZNhxOhd_`x6 z(I@IlfPW61j8k{7T<*LW{4iY@_biB8mQB4H?JqOyTITEK?5i}a{D>yZ!x$X!5*G?a z8g|t2^;BoI&~vn|o26ksK*b=1{dl1w{k~c%+XV^^9{a=6l=A$L0&|Yfr1uo96h1$_ znlYbtF|5UrV`wn-0s57huXHsiyE+o@=B_m>X^ugoQ`PTmeyfO1%Cp!xVanu4&}{82 z2dN4uSV6Rw+Xd*+G)X+_EXXlfI=}{ne>UZ1Mk1fE=NA{NPo@Udf2{VWz9nf)eeqp3 zMZ<+kJ*tn>R0}e2*pZNwnwyzz>JfXHLytHu0DM4f7gOB4mro;K@6po>7F{{}tC?m8 z_Yhm&T_uIpKIAqO=vne}XR!bv+LU8)(g%?NmO}T3{a6G-!w-^#ha-QYZHI9D*k^ZS zbOX@I=pi9c87ucx`*L>McmV7>|4<91Zfkqv!u8dmkq9oCY3F-ULqam|_NLWA%soK3o%eVPS@luy^}BjZ8(hBT|^sHrg>bzRcw;qar#- zquG;<9N29zig_-iM5hW>Bws)YQY=L+gd^N6Tev(@dpgb1rgsHz9~ z;k4a29;!p-N5NR_hZGPYZdJ|(PB9Apt$gNw0%L(E1^GWf8e^vodG+z3!RLKuwUF)@ z8$Gki;<3|@`y#9RkIk}sPYYl{0iiUWAMS?xi=J7aea#kTUZ5bh7;CNSg=RTamu=LW zE1{R&!S{ndhy%yWn$8e_6uH$K#6BlKeb4@IhVWrVO1D+Qg>|>Jv(2@&q>Zh|vbbfK z?LzWrD#ik9HE`^u+nE}eRJ^ZWFu@Czo)Fw`qo6B~=V3QR*9E);`@VXaY%Hmlz{O;OtGuleDc`+_2a)aLT{Yuxy+N+L=+SQS`hX{$uYj(4cH_PiW zH~slYj2y7no9T<9RU>pHT1k<#ShqASD6DJiSf^yGF2eYIU8haDwp*+ zNHy=U+%)QF=oet%JbK!5M)8B1b25n$$nHhDX11A22X9FpiLkvEYU}iqf^bb)z;|w3 z$THovd{frkl~UTid^5FUYP~Z_J}df1S3G?FShtsG?s8itMn%k0gRt++*g*6-S>@t< z1O_iN{^NP)sSIIJs6(UaML%DDK3@7LdtKNiKIUkfitP+G1HaL!Af=$8D9SPgs*1JX ztLDOgSE^fX%_yba?}|kl_>+%Wp({7m%8HSaiOsi*koJa*0E9EUZ`6*gGs=7T@HLP7 zv8VvadCv>?aHW;I%`u_P#&lY_{m8ftNt8D%FYT9<*6G>|dt!fvUZ8c63EK;HV~gB~ z58d&Ki4Q55L1v9pMltXVXkv9$%d6#t1N&pnv(jC}Q*2UZsFo_!>F%X|%y$;eDi`$} z@|9|qGvYL)r_&E33QeY!zsYZZZ51RovD+qQdNLZsz3H+Ku!Mh0?o!meOVa!6pbH)+ z!OilWPrQjXijwOt*L|KObs}$VbfzV(C#IiRnLK5rVAQ-AYF?Pt5(Ezef+FeS$ef^l z@{0~A`9whYU%GurC)|mulzuhK&>!-yhf|}0o0aqyt))#mNpcE|p7C>;FderT5YjGo z$ClOeod@rq^_@J$eHYLb_|6{-g!QD28CG*l4(K3W1*jfWbPsq1c1f$bkuW zk4inA=rii}co~?5qtulNdw6R+uyXp}qd>CZW5^5Kag8P2r*~v0N%vD}Z&4~fui5nZNWpcRQ;5nxoPrysBsPHy>l)ayD~r5B-g9CAk0xIqVc46(S1I7F~Z@oP?*d2lMS0zb~WSQ12)Zz zV_}oHg4pgWRji8orht%>AhZ1Pxz)bZ(6DGqdjN8YK!dqzO~G_%TyNu<6Bd%q8N04* zmsi-RFPdH3H@Zn#7rbXzt?m;VFO{q z+eOGi>d?`~OT6xq*G@92GE1--P3|2Gy`B*EliOFE2TTTWlz3u%HW$uFPVKLFd}2An zftNU|D__0JP|P8!v-(%N0qgjDXy0F@S~Cz%sJS26*!#^rzpgsG$46uVlg8?4XQeRZ z?)C5d6EGh;eVFzS4lJVDedKbR-i}hhF2sUyRUaR9o_?roz1+OEjpsmybYHE<>uTk+ zW|Zssky#bQLJ>XvD5#Lps~r35WxMeA;o&12xMH`9y30zdlqA$GiHSj9Es5+gSu#Pi zq>w_7WzcSw8MfH{y!H85X9sQxss3za(7y_ijjzP_e_4PsiM8j#P zfM9q8l`cQ`GwbpsArAVYH}?V@SH9qn<~J7Ec}%+Hs>m_w{fh=e&Lo`}` zMzJ)#JJc#R@hwMfl+>Io4>hk%pZ(FDe|LMK=Sgn4IL7QhE(yT#<^C;f5a_4?Bsb>! z7`MQGlXaedm4hfZLf_A9@ZN+ih^|IVA8?YyVqgGn{qbb2j#Ba&)t1RT&|k04yPd}a z))S>_hD`6C-gL^-Bit3Utp;me;Zf&t@X-=loCLshXOUWUF60l3f9;qAFQe*n*n zUDoQN^8=TEOVxU3`MN`d_;F?Hx7n7o!@&VufH{$?ogtO6a#rMNUyqPO5C>40t;Q4Nb;;EGuT`ZVzAuGMsRMCCsQOFZ0uDbr( zjJYr^!E|(3CfjqRqj4>!OmXwI46poijdj~;kV}1_dzp`gau|K*4TsCS7BWqZtQ_MM zQm5|-ICm#2n9U9MBKF-`xc;jb^s8ghT=cW>h-OW4G~-Bn};W zIULsR$;IP%CP}xbKJ$cj|7IOM_iej_6Pk0h`MZY=pZ)cc;ZT<$*Z!Ol^##kRl$V~2 z9O02S=j+jjcq&A)UuDf(>mn-KyrA#G>RB+!F^@sD%jtR_qUur&l)jPgHaA^Kkh5K* z^n8?h&>c@da7{AjDosTDx5Hw>OCA@5zhlQ3;V>~cuDM!Iyz4Tn%Q$RJwO!BqNmDK$ zzVdAxE^(190VRLRN16e>%qQ+Xw&op6M;&eLT;vs)Oi6Q^+qefZ(@oxkO})<9U?NGO1~r-)VYA2 z*lN2(cd-&bFEwm3m+rd&3u7bTJdK~Sj&$TT6R*aRzSAFk4B_1qVjmaHFq^koc)i{t1;i_8Djqf>Za=usd!iJ1cntDZ>#h=gDhV#5_j^AKf79tIOa^4AK zHb440imM8F(6y+y>oNiLo}_abcYZ*k^~k)~ERUKw(2cv0YbrKjg-@w2+ka%U{mo&- z5LjPi4V+EQ3t$F_&_LYS56Wxa;FR;VKYy-}n^DsXZm;8DGV#tpOkO@X9gzPaAp_v% zhbVqH8eD3PTpk@j<|HJ|#y=~k0Y#ZN@l~*bg;&&ZS+*$pmm7;a>hXK{Ki)!gEF{h1 zhxoY`-SV>AP>tbi9Q&(CoLo~2@#V79NgLNgaeS4|@!yxU9Sm}9ho{@SR8mcu14Gu~ zMj1i%B#XT5qIKUxgOfflzXinfXXakkmwX}sY5^pCLVOMQ$8pPh4ghJp9TRHP?ZgvW zS4VPJ6Gc=iQTk`^iG0dkxg*9ChP4_ysA{;OX*WJ4Br*aki@L)K(PK7$>E$QPf5j!p zLnMF26ksT0aUFuq#*O(5_#W^zcunmQbTIP276|-BsgQh+e2|kIyW{18%gYX0cjY<> zO$LWecl5NAMh@{C;R?B)<@N1u_omJ@xo*sT4PIsPz`@4FCcH7X6Tj^3w^pPL&Q>)RF9=#6QRELRn`fNO=)gr0X;3vW4N^195z|Jh_DS6&H@VpdFoWVq33!C#N*Fe9^1QF>{Je1Z61`yoek(?>1-7PmL8Gpm3f3J)6HpJ&v_E zR9-$A`ub!f;#A&35jYe#PRmX@t|k~d;c`sn5B2f}hTt`U;3y_MdAC_-{epwal*Wsf zL_%Nzo9A$c$qL=`0nq*<_{kR`nXJ9(9$mLwtQItvbdYxvE}P}7W94e> z-e(4QknGdnMD2kk&Q%Au1lJ#AKz}mr%3?}Hr$0bErr#93JGY4}OMV`4>$G(>z(Yy( zp1%UsE*8_3c}Li$Fjxj4y}&vz`n@OI)n}oUIY$}huC~_aB<-ly4lIzBJ#JFa6s!sG z(Y~tE4^aA$RAJc+u1`7bM3|&b`(=*R*{Dxj_+oZmrWH(X^Xei3J|a%~W5O%^L5&NS zN`JCmk;OF&v@ccB24es)LS^-w+qWl#gu>F=LK>?g2OzkQakw@`9|2-3E4UDfPJUe5 zp_}8j5@gMfNSqe32}tUJPkR^dF83-UEn2z5N=5<|6n?(NWZ3M>;;Wu}0_U%J?(bH> z#$Bz>mqGNxwVl&B?}BK@5@?7@eYmncndwxX{tVM+BC(r@<;dxnH%$ zKVHsTlZnxCa?aM{<{C&$TsQe6(Bje~&O-;iw#bpum5T@~CiBjUTXW~kuY9&r4FS>- zQcNZ7IQKra@auhB3B+c!|_z7)N^JTBDlb#$P_W5NdnndQ2j;Rhm zpmn^UhU1XtDk*4S(gN9ok$s#E2j-AhLdc~IVlw_=9;&6so6&%AHZu3qv)KDNEZ>Ba=UF~0NCW)>N3Rd z8rJmfFf~<<9?IQ$HBdv@5+^y3LuG%_n7UgQ_>AFYZ<=Bm1PJQvD+rogA<6wOiKr95 zoQ4$;-MHF>?)mNByBw%l{t>M@39#QO-VV2N-&t?5&6i6Ug@POus^q?nK)L5ur$0T% zA`E%(@X;U5JFKf@d?>?1Rycn)KQfB8`xEhW6zQC0|1>}>TRldx&z4z>$)2%G$8mqR z*`fTm?_inz>kRecjJ$F6zr}qpthbA!G&#q}GPJdVQNY^+ zrJ?>TC}-k!XFXp{WnX2@dQmW6pHhNSbinM{LT&qGfNR!JXyE?NhD+Tdb256u zw%H?RCwozCd^Gw+nC?Tra2=UuZ%I;4mtnl|MhkF!!KOhKQ^@czi`6;9Ti5RuL=j54 zuD6#GF#cPbu2|&-wpTbG`*Bus^z*;#%HoX{wik4_TRr1mp~luSKUszK(i09;zZ;fA zj94ZlO09|}wV0oWFP^UcknpdOvI{353Lh-fGMyIUX-GZ#!JB^jZ0fzF*PZB|-~MGt zzA=Togq0fKww}M(D3->>Tx;RE8!V_XzHhz_d=+e*ARx*AaKtn8h=%%F^eLSLg#o1# zC2Ml6wEOcgz4Q!@(z82oo#4HQ8mlNp%JC3F2YTUF- z2Z70$GXMJy@1VYxyW4{~RMSZyHLs?L4gb!4iQe|;biUL=Q(9V`9x}(NYube8 z6-!jf_~d{P)4=oAS(n=-?_C#E;A9*jef+9t#FYW$hT@`vtSvFGoXyxj6?Kq)@C5z| zCPNv(r&hD`qJjls(u&I46pr3D9DsER# zoL-Tj8yP5oDY7Om$<`yi8o&XAL%D-&t@FN^2~i$s$|-LhTH#XudVpd0Kup%+RWUmy z@!0#2UetZjKRNy907d_i@}QBJb?OqEO~Ue{x`jQwA-3Crk>B5sX~F2gxYgE}(4ZQhhXE{KE{X=Y&%CLQwjm?&euQhhOgs7|R)te@zFe)>v_ zT8vJp>XPqwSyKnw5)t5uhgjY%m2!rj-u)LBoUOG2`d=G3hJkI%fhk**5!%<=(-jFQI=2Pbgn42a#m{F>!}YaLO&mj`V^d~9!( zIrH=SRMSSz^Q}y#ArZZq>JW%r^sR{sM>4^3@B`^rtO+Sa#BB8w-fX$u-2@}D?`=R< zjC}lSkcy7WZ~Lg?Mx$zpwW)@gA=GO+Wo_xO#q?UJOuKQ(KIDY46L2xuQm<1>E&q>l zkShsKg0oS91Di9_T8RBcvbALSJo9q4S@FVa2BlDKgbsaeaF~v2AdvD#F5Y*@ zdL0U*;1}SIIq;sb*qs#7T&Luex@BpAdG=m6x{uUrbLR$~b|7beb25|-KWRCD--CMy z1J8`bZs%_H{s_m<9Z8AWD+b+v$+~hFZQwS0^3{~1WUR8pEk!>CajjgL(0?yz#yZX$ zXC@pZw^Ir}mYSW#Y|#@)p7__CxY#%>F=j%&SOmDSIh5qTZsgV*IFsInG{#t9gc@DEZ3gTe(DOn zZ|~l(by`YCoxyLukr_3zc;FQUJYn)x+^rl9t@F8Q9%OTnNLeXop)e{~&x7T?(- z-%6h+@HYt0UWn9GEN-kdQmhb-{<=8ckDj;*YHO)JiFvP>TF=4fl8-$>aR45@n_;?t zNmr!m&%$S`5t|b$A}no`CgBaMAJ{*;defaBM{4#3-Cq;Aw{Z|So85Hs)Nrg(bd)i- z_n#!%;Pk5kvK`~cPDEu9^s7u>yTuNx$Y?eUqTJ+ zbZ7o3Pr`j@14sbGMg{!p%q2gF3l?+IzE?0b*^F_RZn0N2670?$vaKhTJjWTNtAV>E z<{r2)N9ghQ^TBdHi(YGfd}by-{6=K^WvzO(L+~yzFO)3?x1?{9mm2cse7g@wd3Plchlbj2mv%lYW4UFGHL5LIP~Hv7_9-{Y*Q01NrSlW29? zv_q%SaQWW3@xa{8ki1!ZxHL2E5D6uP?`ULT>)0BxFbl4C5Aak;;yoP) z%f_L*n==-^9RYvqbnSlN%bb^nS3OqZ$Fm`aJHS~!;k4TMf~JW`4v>^i>?xI(rvb}S z{PQ%@F7^2EUYSlkjKcsel0;yyV(hL+siSS1KKgR0k>KNx9x#f(Y?|XD@(+4m zn62|3CeT z?rm-|5VAAltEVfS^Xsq*u5kS>UlDMD%di``v@Q-IwwhooC8zwuWAecK_~9#xw0CO9 zcsr8h-N0m-z+0a`_!miC7?>4CVB81NJ3Iz8;DP1Tc4K>wMHh*kpeXyxZ+C59k)6k@ z7EAJBnenuHCnZUe>({jrMSzkYO*xrAs_bJe6OKcaB(zlIM2YETp9$JD=o*B2JSQ!b z0SKvVtQxuQg*M(wNRq6QZmi!~e5_|!enVpJ>y^{0X?hCIj_qSgV%+7s5?mG{uPp9 zM4ozIn6u$$8*=;Y{@FyH5QbIB)%VyTX3~4=SxKQ@QRU&w#+|1pL1E9IM9-vER2ksG zlL1V3Vo2%)jqkH}Olof*yy=`-7-*~??Dbyf8Yl3iatsk4) z!>^;-hw^~pLawaWiof5M=39p^zM){H9&+vP3+6MNX$Hciki{j$xug%}w>vvJBymoT zKEir9svD;kN$i9tdFc=D$SuR4KZ!9Fy|ync{!tG20%egoTKiEh@7I|g;JC^|Uv=Y{ zRV&L7r;FUHm*t&3i8S##@&aNBp{0Lm-$c9TWKhL=X&glO&z1w@&z1XwnRtgaJ~>te-lIHtuE4t0wz^I;KwMDJAC{jjx;+ z-(_=#M!YWHc+SGzTwq=?Pb?SL4$#Fr$w%Hvv$n#tuox}*DK+ZjNg4;el0O$7_IDOh zjx=XS4GwRod<1I+^Xi!13?aJvJK)999_KI-Ui%$Xl?4~b;AjZJbp2(@R(8PVmCdHc z`I;}vhb~KLf#u^hYWW`? z$ZqqT_+J0-cEc|-Ig1vOpQ(o{FwZIGdAgX=Pyt7qYjv5wH;SUW-U6Aht`pq9V~E}E zmK3DWRBwd+O7+(_Cg*NE4Nc6X6sg6hsoz#ORr>hLbE)H3#bFawN zdVs8yq+g@Q?h~mY!>F2=)kLQ!NtGm`2|8|>t!~E%KwpHzerKlmhB`p?ps}_v4zM~( zsT!v%aq@BA^xQ_?G_b$BwruVPQEBx0w>RCLQFW+Y3QOKFV!=!3(2bW3ZeGJz2}vBZ zw52)cRyn!KI2WpZw3Ll(YeQ0Hn7&`}s8$whHIh z{Rq=!edf`LhAH!XPaC6qsMiSND}T(s zUQeec0;2oQf{nfe=wBJ7n%*4ugt#`EQV4Yo(*TV7%hJ1lJjM;k#2c)w53)SPlq|(E zodorlKBRATDtYZ6L{}Z}GP}2-_&6_@XFoo^*_rnSDKe61OIiI0do>2;BKk=UiSsz_ z^yICdCo=KFRlJKoGgRif?Zx9C&jUjuq>?n$9LR~XUjV%4(3iG`m8Qgw^)uzcZ`G?uh;G4hU;YV|Tt&-fAS77< zZsYHn5O<0MRM{6xmvc;#!iLi*U#XmdSwd70kIB&xltOYza8;Hc0Zh)ui-Qq_zuZ=x z#Z@Z{FHl{2BSi5ipGjNU9zr=c?a;DE`BWQ^QTiHkPBYDB90g#f&#H_Hw0ynoBz6OB z<+so8(3TXrc*+(5YIIujnL*wn;8Ti;uOka?>k~D((6Vb;M?TrHtME#Pl|A_ReIdEC ztw>(AnWI~%af;!bb#kb63Bh~0+Jz=x1zTrVoy!b7N6W z$uu-&&)tgF1d38NmgNv?<0eJ@Y(aKz0XB$vc|gYw`|2=s9B(J0yUyk2h2r_e2|6x}FJPk+g>;f0Eb@ zx*3DF$9ROu(Nz8>7y+F1-lh_u;{rAf(RWF}j_!mB>sxZ!o;);#qufzFvCLA~rA)<@ z#6OFGi;{yyQ}{}XriLjsyQ&hN*2PUXN0ps+Ul+HXXdMco2ufrr8TE=d>h*sZ{9=m^ zgQ#sJoRU~1zrdM0s)v>vM{!UHao&0pX=IEO$$#fEsRGPA ziB&%@G0N~^WyIqoq*X`3x7B=X_~*vAI(Um_e?~OllVyLUDBlET>@W5^OonudS?Zo zr#i-gD@UEvTYPF!JbMsZ80ARN;rvJ)j$H1bLct^fmWy}D!`=s4YM>Xd2f6n*<`hFr zZ3@^duf&p|_-A7}B{`o4d}9qrI`VdBtuV`lg4*YE2{y*=yB8v&Tf#|0fNJarQc(gX zrjf9{soRYVM|yx1KrO0X&TK2K7DY|Tv@#8z|6L@UOS`q(<0h?uI~&=%>NFy6n>Pp- z`ve}8HaJN~vn10Mke)^J+SooBLm%DUc>d$cBN}-SLs(!c7$2XqQs1L6`tStOPbXX6 zxg$8|?qvR2-Qm4dWIWk*`R!fI*xq!isL5ts4`g`?>1i3(1xE$3;|m~@jx2Yld9@x8 z(mykvHuuX}<&|$7O`un3oldo^vLIBCDA@hgye2s~6ExL1pTvj9fAX_+_Zl!9ej4Ly z(?y|>gU`*_Y1A{WvXt3R5hF>#_Lg8Zk8LWe)MB>TqbH^p@ zv}&VSnI>}bW4J!~;=&n-s)Bji2DQARVSl(`QBX9oH`N=ET2H)TVN^F5DJ(_YknlkA z5rye_{Z))2nC8s&>3m~iQ8;7xzG17QQ(olmnWQ_KCgaXRfSZ? zrj%?GgpBk5JQL}an?rx%kcYN}rP3|jx;DD+Ik`&i6CF^b8|dEkU%pc-Bm8rRY+8QY z6?9zcddDH9mget`iX7ilV8lrdOcYH%GOK4lee_2hKq~f?L*ZYJLwp6|;J)G%ZN5_OKc8 z3!e0B3CG$B=Wghg$rp>|cJO^jbeEtX0rNkVJo6LR+F*}zE71$wt#-AUKRx7Nz`@^$|+ zAnU!Z0OB&RW19m?z9$GMmd}zW zxt+_FnjsVX??$+ZA~uzPyM9a-pLn!)T0FfY+uFAo<79&_r4r&BZ*LupmxzlZ?Ye{* zY3xD|XI55Xk9=%T(2S0BsPj(%4&1pPOtSE3JaaKqZ9Ge&HraKs9C_}h$pQUT8(`NY zNE6pA47VhM4@GQzGeqMtQWt1aKwc!pcg4qBUklLaa%`)C%{me}H%ZBHSys-L$0ys} zqObhY4btM$k|APP>=*GDlow9nF-U+r#T>51ozLNBO8g8{3uBF4C`0~%0K)mftzwhN zOa;tIzVFm3iHjl6(M9!Z1_{16$d=6O%wW}VfCERBl$?&csh^MZu+ zxCwp#$i?bbvE%6GK>MImrqv-*qn;)jg7%gT*2s>|Z-%^_qU#LM|d%uU0o20+qh%~h(QHjbtJ2Chddd&oaWcCmGGdPePBF&%DXSW zA^9mDHZi{98NxiH7ZoYp4d*9$`qfGb^b776cY%MFO(_O)=pAo3woxc94>EJM4xsI+ zd}e1XIV%6fp!^mY<_S_<`27V>vaz8rnnz11s_hxKTb{P|zw|#V_Ih3}t!4fnW0J?# zE}76;pOr-;I<>vQ9BO%ulk;>II1eXClyLF>(DSkHzc@iB;PGiG(a?*Kurq*trv%ME zeV`)qKVOP@kGIpvWAU-zPsiuW`K+889AOmwhzo>6%fZaY+{C2JE^qW^PsrB=}Tf&Vs^$rzqQWKzGvK<(kM*r1(%Q{d zs7SPFLUlmpjY?Mz6kyHyb3K4+DVJ=(XxyvdG*+yy48;I3EKcD15bBbXg2Ug^Q%kYG zAKN@4;bd!$E*=hi{^bssJss)r_MO1G`Q?=ZE@HVTf!O{%TaM0Tt?gBjwvoidp5e%?d1l=|@uI zKHK2GOhlIj29d6$C{5zL-j7BPs%O_uMJyirU!izZ;645qs$#9gQ%Yh`u0=spe+-D` zJ3~hZ!45(!l^OfRmE%GcIm7%)LZF}iVkV&d5Jz1Evgr*Lo=a}1+b<`Q(~RL*hC}gB!yhycTS^Ld1EeX;COZQ}lAn%osByatWzuNl z8OyB4HU?zJ&U6}OIGE9gjAy$WD?FfSz!tPqA1byB?C5`@9$sVV9CUdLuN#aoy)a^L zXH?^+=S4mU43(s!l31R?aEU9T9&U6W`VDpCgg$k`#=02M1?7J)Ulc_<10rZQ{a+_V zxz^3ysD7e*7-Re7TI7|V05Z{$t`sZdHRAS?Ry*dp8B2d31KK<`iDml&pVb4;@|UN# zTG=XCjRBH?PfmlQ{##;c;a7dVMm07i?{FVfX!UcP#GeMcf}$=os+myR!67qgM~;&x zqNq!cyN|c(yOfmU4}S{s(~ArY>%*wEJ!4RZlwiy8!yHQb;vzENUsHcd>q>@t?u{k1 z;>MrG!VRaJF!@jjB;So*QTUARtQaP)L=yQIbDmhYP3sjR4O6RAk%-+9rK2w{kf5l> z|8$?YAQX?LKWA*!X75UtH$3>Q$1G1y^-%Y?%qB5ocQLQl#RB}JA+FNkm}AWf4I@=? zzFwBx9$UX46u*<9=vXfq;r>YxpbNnVau2Cxdyc#!Zx0!NGUo~xK^F70vR>cdl;4(bQiN>42Z)e*UnIknfh(`We#Spe$T-N7aP-&Q#bd&6 zi!iI7S1Fq*Ah#3zHo!dl#nN(^Zyi^99}k-XczyO=cyHq3B5c|}$fJjqQ~TWgLR^Sf z8?Q}4w99n*DjY(dS0`jaB^$#ZM{~+!qAVTqlF9z7f%Vkb_zKm}`19$M$lU~WqUk|T zF`4-__p3kP8-Uph3u54GYxBXqJUyR&y=1z9Fk$^!6c}h$S#8s9&&B}{+4_Y}5UCc+S6_g^;%jm(=CCgU zp;PH3HC+129otm7cMyA~0U9LEdnbT}9Qr+5)YPJAvlNI74lI035?rt5C3+0gevpPM z3#A>Dx#=9IBI<~=ZPQ-0VQTJ5NzQ2Zm}^Ot>Am7JH;^>#!f(S`z0AvF%8e&`cMzXl z(HeLWd4y}kRK(N67=IML{7av|h_8$9XG`t<)k`Y%?N)!B{bR4k=13A+WhYHFPUOR} zs8u?Vp#JkLurOvv{3|FiS@%WGdV?}rarW74k|O;NJI{+^K13Z4GGo=!%oQ#7`FU{9 z^y8AWm)rf#zpVt!X#x*^otSU-huuWmDc$*Mk+`8r&bCbDL=zkSpcB3WlG<8?_`z~w zl?E}m@2=%dqjs5N7atz<&4D%bl)HQ$S~lkgb!6_<-T&D0%2Vq!>rl(nOml6jec&F0 zJ32C2hYA(`L6l~lXU}Yryu&(s>~bL`=2Y;|4)oJ5BHhcikzPTfylWjKh|nubHclmS zQa-dg`?>S8mJKsa5bi(}qD{S#4fLB;FW9#gw?T`-cCkO`CPfR^RlWK1*fpGDF|B zZ+{WuVR)(&1FDJ@eUbSt%Z^u;x4uu;h z>b&oT8;rcZe%%bv@Ac8xge5L={b+?+2rBjp8Q7XQ+OhE#5W z&9U1thO)MI%6j%{XJqxfe&u_pu*$4)-3Cq3m`g*4JG{8BRkSl9fJXA?f`w~Iy20nI zB;%|qSebkkw3R|(2P6T)kUVu5Bvb1e7Bu#L8YL?k9&J`$sHlUT>|L8`I?-1Ls9xyh^k#OTdn zxcl2QGWWA`bWrv|)1(L?%KJQWraLWA!z80*p}$6O?!@nOq;*|(qb>_A)}6K^K3492 zt8Xdde>*K2m_xAf2LNT;|{o|wtQ-)sIyYzor;sZaj&`|$q14< znWtFPhP|H+TuZC!PCr;5(+Kc*Rd{PcQ!ckoG^{O|dN=x7dlUAF$pve)sAnZ% zOVh(*YF%dB*cm#0OO;fO7WkKP6En~MO0+QU#$sDm8Phf6zrJ1um!Ez(DLHhl=kC3fVO4uzbHdXf zJ2e(q>WeRD1xDFnzx7=UFYZUyz9(?v6av@G_C6pMRQ^6CF#pUTLXF#xaR`-yD=j8M z^C6;rF1!Xu*(QBXTzU-~tj6#)zi5w8j|bcCH9eGl))Coe^|{{ zzS-53@@v)p4rb5rvwKw;LM%RgvjyG(JJyr!@405B*Qx~#j&^wwuUYsS!|IrZM}%Cw zVjVi1V4=p;=V1GAvZ9=1_3#9tv)Q_dI2~X~B>CgNZu0Neh2-fsgQ{MxA%&Jh*j`uK zFJU%nkd$r}@)P&yi`RVv)S~pFcFdz!a@AjmvNjw0qaEc4CWk;}Za-=2Q5h`xw13IU zI?pVNrZ5ENMyAeP-waYe>rTi^6lbnspQIR0Sq~U+KH`woO(Y9FpuS7Hz3GX%c0L_L z@UD}y<7kIh=f|WEHzSgCO0tx;xoVrr|B8$4Nh~Uw$f$~KZCG%0npKG%WwEOXC!WH| znNUzKTQn-qx?Crr4qU~s)0`z_7<@j&(9!8RtBySL_PY7gOxYD!qNvxE3@{SraCJh@ z=mn>sv<@}LI_sFuEYNBbn{bcwlix&Y1x*vDDIhxTJ^Z zdd>8k2e>;;PJQ|%CKpn(BRA`518g=c9X`H)JSDSGihQYHTq&w5^sg-+nKNjsLJaZJ z4N?;|HxCcoOh`+Ix0Y4IZj z7WAoo>_gXTUX+e3R2%$Y#fTz$Sgll(4L{YJ9RvsUuo6NMrs?z;+*Khw;FjnX#$Wy; zG6_+tSB(gb#r_97qp%~Z}}H8;HQ;VYoLa? zR$eO$9o=e1Yq=Fl^$b;dk*pDW<^-?OCVSAgNe*G)fLZ8-wPo+KD)JF;ouF8V`2Vyo zp@o*y@o-BW)HhW+S{mV#1ZU|Sc)BH7SyW1<{e&7NXu;O%u7+`~n87BG&9|`6ue94) z9ChgPF0bBiym73QWH)B+^khv|(dXBGC5Ea@NFAL1v+PqAW}?L+smd(Crg!^p1LL_s%~&;dy~AG$3*#mc-`e|k1}F(7pC_r<+n;1Vd>;{ zVkx;^l7e@DXEi^_URfvsS79e%R>S~=E z$IDq&X*{_w;beT4Iic}kuj$@MeU~0_?c+2OvXk=hTKey0ap4SFGhg!?1t#y8>D zlD}9S`3W+2%6q6(xpsi)s=%qh6TK`J*{VaDF zF~!Jn&{@F*+s=1kjzU!uHC+i^XW_cn7}xx-?(HfAjX_4b)yeTN1nf-S!HNpx^Z{Xk zxiCO0=ueezpZ=skEHo?V=(PH~CpSsr-ytWS3e9)6hXZ4h4HYD~qmN#m{X=~6BfN3# z{u?)H7G;X_{|JY?=|5jD^>@f26TZ+hw;U-Iv*ym>oiy}xc%1>a#|tg-%wo-xf$XRj zLVOEf3JO(gSy#=b7watMRQ7g|f<#2D2a4~xc(q(V{@YkW)kVx>kc<8Q%8ya9)=Jsy z)i;-|JzId!yOo^$O-fQIup96g<65Y!DVtc7#f5)Wy3s98uKXZqo&IsQU&wgRXhKDi z&2eSneTn9H?t_NE_gtseTZ}KVVC=!j|Jy?f*^jYmvjV=ThAI$Xx8}CNdBx+h1z?H33N;SS}X>NL4Rv9 zh%L4lF;Ocx@&D~I(K_%xI^U=&8>0tGp0AA#_lnW#e_N~yz|8R>;h)M1K&+;_Xt$gD ze><`Q3YJQA7%OnHbN=_cFmX<=m6JE?*xkOx`77%4&rxEsK?FwzheLW)Bn6dSYj}1#{btLT=<`af6ef}PfZd3k5T{cshx>`XVL#93v<5S z@&8r!{~lMR!*t@mWnmQ1o3y<{Z;QCc>|6iWPyHFD2OQJoYi@f7JnL_(?8=3y_YT5{ z+jqZvAZzkAOkB=l4JKN&%Bov4sQ*7QVbPp_kHCr7E$!LS|NOVq|3A%Q`k!dxf3=Cr z_dlcbzdeBDtN!N7QZ~dyDgT)O|7X_vA04I%=k!_aS*EMqV5UoTe&BK2X(H;gb8m_y ujY95>f#3fz#s9s4YN{HmXA{+LMC86pk4o{{gH`M53Oq~ z2+CZ^%q#%0ZQ}N!O(*R03l3KtT0s2}+?D~cnl20gq+XH(0L)%;11@6m0Kn7JqJZae z?MDIcG))13N?st~t|B)}op-&U6;`gu!|%ft>hP)S*5 zlqKDpPR~l$ueDS-Ou$tMB*#gb*y~@NL)C`#?hZ##(tL_)X_0uq^8!-p!8ec+!6t-55r;>AUht!eoR#zi3`!;Fm4gC}wTM>l zx@BQW9Ue{cL^{dRsnz&17;@W{^ya|PhTdE_&!}pL8?$u|T;3o^v!3>#E(1zT%HOmVn(%A9}oO zG|OCxCZ(_Pb2VkhFy+S!jI9Z2YXejMkn*cij_OlPZ{L?+rg?=RI&$17(dn6C$cg#n zohq-b=SevpeW}~C9y>jQ=U3bd74tv#uc6OYx{0n%Bz~gCIb;2I54b8W`S8{6SM7(cMdJD@SVr)=b^?Go@qG{Hv4hv;tbj^)vR0iUcU?Cc^A> ztZLteERR5fTVS9-icesg)e2bYX=0c^^Qv81jXA~?vPqImF(&6z=qkN#+V0)q=9wu* znqH`KaY(CUVtKj|8BFXJ+2;Hn_$o?$UFZG0>Dv9e;hi9?l2<9hcRRLwTwtrR5%aoz zCU1RaV4=(z2Du#4ku*1>UbAnl8@s~CLenOxNDp)*^`);W>^RZhWfo~m`41Go8{h8HJ^LjuX|jTDngr_J`Vbnd3U~D* zxUD8+W|wsB)q`at?*ILBh#n~okpA0tHs9T(!{(#w&`{7=DF!{gqN6o+L4jO4OzOBi zHX zOs9^yjCA3$ttQB}P_9whgl(ai@2WzpS4peLJmZVGivaeBHQ0T%M) znO6GCbSrq*rj26COdQ+>Ww*~C0)ff>vW#xIUnoqv@dPO-%mNR#yjGFwl$c6StbE;+w;XpYzh{|YoI?(@c5JoMjVhWt3 zLNj*}4zqYinAar4*DU#tA!NXldsrR5K~nM7q3{nctVo`1SR31K9CfSWzU^QA7cbV$ z@W&7?yGQ$B5tROSuKkPm{6L0I_ms##hqWC}+&7xCS$`D3+>G%fqHeXSW`mU3o2|77 z63qwZzevdM2RkSv6Xhoq=9gPRB6X-Dk;q7vI`+j)gk5m$F5cHO6nUq~`WeOF99b_J zL5O|Cs5pH#9r-@)@3$&$9?RN>#X7~{H{TYydTM9ANWpj6--FLgsy{{x7q9)(Mezz3FG_gkB^B-kQ*Bm@22RoLnT3Z3hrP6YwhWVvZ_fHz$)by>wik-q1 zZHMxQxbdlnreo0IF|8=V+)`Y_JFYdo+}0guDq?Qur-vQ!;Fukl4Gb=VF|yUiVGMLf zJLqdW54QO0_M@QrQ#MI|&SoYo+mUzLY*W%&C3*aU+-i$*im<_ZyFEhz8d_Tl`ziEm z-ie@|&PMjmK%V*Yy4FzrZyq#(2CQv=AM(8fr>@6R@MP9IL$bSPfUXv9Ng(@^itGvC z{FhL*KsQ~{Kc-15G!JM-HE5+yNOT&3=~w;MQww+!T(!)C?Z@p+XmBpwW4IN*E@Jem zFb#s2d|)kWRWky7#kGN1+sq5V&o%h5KA}Uxkd_cSk;@U^n_&|c*58LB^I*KAexgM? z{|$wDT9kWB4GTkI4Ul2qWQw2$LZB$bS?=TA7^-C@c^*Myamva_DJz^V%HZ10z=|N8HW)dvF zRs_ln_L-GlSX15ezTO;i^CpHxHBhom#A0^07eNS8-ejCXD>Ev1Z#<*3wm@^Yg?AC# zpTCVC<2WoEP5)5#RW)s$-9Xtz)it%mJflJqNwtc#k4^X2vHURS3r5O{WyGdHM|u0QJ5o9PpO|B^BfQJ z7MXl4&MK+vZ^TsiDZO%0&Vu{2YonJ)>%OZr^>7kSa zjp^7p$Meyv@0=OfZws-?jH`Q<8)qKjRLw`J{^CO(Gybn+=Rjn|JkY1e#Vgki+^5<+ z_rYC-A!-~czxYA%wBvdkyVH=qAelhi%Px#0dT=g%-YU(y@m!VFbzD62UjA)3{(7K# z2gZ2IP@TXM0RY&cM>%EO&A zQ!AzuFj$W*6B5eCUvyltaYp{me~YLO*FeY8M2^+$J0St$H>Jo1@$8xQ?Lh}+f>I8C z4QJShBUB62rOj$bwqC!Ij`we{S&q`oA$rB4S!=sappcfIYFZ&$n^V#F!t|;M7vli= zKS31`{oAiJJWIVS=aIXt2jy5R_=^SRiN(g68bQ(5;Ta#Kt@H6w(}va96K*n4`1V-Q zZ>6qZvMYL$gkOTkBaHh#pNW#+|1!ILL;AiH`c%6e>S!rUMX&INaFzHPreK|qb>8b~VV zC%n?6M^fuo^wMOTph#8hQi>9ZCKi(Xvz2JFjdq-F@(SF_3R3OfhcibR+g$7J<1gHzxua`4ll z3*vihsTH~QkbR#}&ObC!(IV9vN?HEh&f<`~>)+ugB4v+zDl)DROj=O^=*IP$GolIM z#=VqLg#2BD%W^Gn^l8Y$Qrm$Dm{eF3pYm!X2Zt}rvgmioCRj;a9gc!Aet8b{1xH}c z5dBNr>%P>qhZ(P>LQ-`_21mksb%m$@iHzhd^(kx=(MMw1bM~4>{+6R& zKlt5mH6(R-wMJr3X^}b0+@nt)Z?pC^uNXcF2RJpG3R6ieg41W>TKWT4?!txAO;XzS z>zw7H%n}<8Nh2MyIt?w_1Rd9*t-jb&d-QoTudZOgrHWyHZOb`@p+DP{JJ1FnHaC^d zzukrYcnkVb|7GO(3M_WeB(BLd=@S@7RTR=3nR?4bFl2WUeA+J~w~|6m<}n$#6zV6l zX}?7qNpxH)V(kdSyrbRfR@-^-K@r&OVsWupi2r)t2sf*6cGoS=jL;FO@dAZS>Eo}vdN5Y+(wMfE^k_<@qpS2L|DU67{Dr>h_LXOl;ztacXN8GHkgcibyV7k+0%*gysYwibm^ z#uhrgX!KY(92$?9Icg?PD!Z%7#ce2N(>N7!LHSg;O(P>d=*xgJ{FddkZ-}@HeZVG) z|E)8psJ)zPQER)k9gKAb#qbwy^8x!s9$pPJ))v!f&f#5x#$baY(bLx*39V;r50X>= zES|V~DHVawn#w1Lie0qyZi1%1)x9}e?82Gr&?pgZiw=vOK$y@-iG&jiW+5J2i{dVUjr}70ZdMdMjs+*F)#4JzbSS9Z=$(0vE7C-B?0&oY zzWu;>Xvj;wtDPh{db@$QkyMd<_pTuU^~nt3?HzW}j0ksD!g`fy}7@OUbh{{Z1{!)EDN34EK;?LX`j%`?ArWN18o zy9~qR1w?<3reV!CRM#k6VIpF}kugNY!G6y30FR%K zpPrsOa;-dVKQ|h9(>HP3Oy*|gP34Nu*-R&5n}kIEH%8>kkAkEAM-KRHn)1J-;s1Y1 z6}WrrdZ8@~=*unTg#OuaOSN$^wQ)4@*a7xWU2 ze8iGiEJeulK0w1e9+lZxSvNrCPzECXsxaY0*&W&^s$(qm6T*HQ>K980{a_jvUu(GZ zEv=Ah%|fm1(i9Gx8EUz+vvd2@lhJwN37Jh>r9$V*-&Ml~H%R{!E7DZT4xdn9*t$Yi ztR0yzXu*`O2!^P$WWBz#R+$`HK0Rvpc@bfG7({gRFGbkq6E#uw^k)Qb>RHZjHiC@V z>AmYq6Rg`yVQwEq|IK2ilCGxT`qJV91DQo!`!8ERdonr`y{~%LI)5r{eyRgiKfC;D zwc+2c+%IjvTU2Oo{DbkO>fwLfse=BKNj>1~{dh;eela7oNo80?d>x*Thvwfzsg8{v z(TKQqP@j7>Kh)JqKMdH`0}j7w7sWQkNV zCw~k-wA%0I{vXJd#=5ZpSwH2>>O!k4v(zoIT8AS7-%oulf{e+&bwU1OS3@kltn^{M zTu144-mi~U^!1LVyte66yezUbQI}u&OdZuve{fzA#-Td1OKl>gd$oLXvvncm`=V{S z4~Bd{&>I0Bz>H^UgyjARR4Z$>Fl#=o8qx$QUe2HRnZI9$D6AYF>DC{@;2j_pt3=8M z@%Q{i9s}3Or{wP`2KbzZb#Y1u_+&mKgb6-MGGCj%zcyU&)Ci31^dR+SV+v`YWvzH9SMas%dc?{IT-%)i6p0h= z*^W~MmqkBQg3_|&?S*B<&emxl^4;!73>H-^qG5JcA2R)wU>Xr4?dWs<&MzP7?g-WO ztXpj~VGt8!uCWH_MpzB{{NUQ;l>FzbsWRF2d^Q&P`K8*LhVVKWZS2#YUeX9;213F( zwu(upK9mlt=8lfbUuAcw)`@Ht2}70l@HP|ni3hh_rg3ZVBi~tBAb|0}lmfFa>oS7o z&Zd?a@5v2A<4$aRo-SFa`t+L{V2F+KXBcpz%`))KCRO>PfU2{&nw&=PmMywn5-iZ! z>dcwo{SjdQ6QS;nGVj>N6{Qw`>P}YG2Zk(L6du~FEq=BkZUZI`byfE97%?Y(Ov+mw~XRy!bQxNcuYwZsKoC$9MR&I=bWv$)SHfG~Gfgo|va% z5DjZ4Dim;RTQl_NKo`tX#_6=vsq@~}l&a|<))wE>ev;>i0XjCLICsIn>1aH(9VE|u zlz^x47Wix@Dh}g5iT}V+h)%R0d}tVXa#YddrMt8C%@NVPSD3WlS7(6tx6w$8WZ>#YoBV)$A{O%puFDi${KVOyj2=fJ54Bg#Z^Ow0_~s>NyZNuNHU&LrJ7 zL8D%&i{qnNnpAP^&^7ir>o03C9-H`Isi$nwC=Mn+==!Tx6*|$uri&oA$;`QpWDmqr zM1u+>8eW#gVD>U54#w88xnDb| zfa4)8K@Qv)M|X{g{LFO8d9|>`E9@s{E?X0@cYycMN9hS2CTj3 zWW>JzmS59X{mal$kTE;np=?|_jyEf7m-FoNbFUFs5^pCuE6^Zzv}4z8q6F43OBhAT zk+}h!!RJSoE{<1Y=CGy{NBeD;b7h=8iTt_%UG_?ZT7cApY@R&7M!Jdi1rt0mcfoVH z@k6h}8PP*;C9`ac2uw-j@O`Fx!{7`GZX^_9Un)GR$Y;=7>pfp!^4~j{E0U#SdVk)4gS ze~R1HiAOh1r1Qj*C9D}`M-S=5S>1gePJQ@!8wtdR@@*H|5Igm&l(nVjxV1b_*^m3# z_LP!4pyqeJVmmr4kkiTs?N8;!i!`Aej$-k>{)G{-QgT4$n+k@#O|ps%@k%EA5`DJn zfbuNAzYIHCUAfYk<$;<_b!|l{paV>E9`6T$9}~V!x61+V=EC`@w`Pk(41uss=ROb< zCmaATF7pZNjE6N$^hDpPib>W%!cMvYLGhSH!CI6Ofkn2Jr)^fcKY`E~=|2xu7xq%9 z&*J20h165)x7PG2W>|O7KBQZJt3j`DM<>%)yKbd57r7JhH~F=cgM((N8If3nZZEu{ z8S;a0@5hHYt)I94UFigyE$}YRDzdoPlIblb#dFL^gW1nGa=Wj3W(q&;;IbhGSIitF zlF!=Cs+R&vnln8u3?66fb|&9>D-5+)*1AP?>MC0Z({3qudl*Rj>n7(fWb1_m ziGSbtpE`tioKlD{kI_g~FdCdCt7@P!1*_XU7$8m(^BVzu=E9tqH?G$69BaF~1+vpy zrxC{s2-#WxVY^J_NwO(7M@jgCHQ(FjRXulc7M7Jh)RmP|-`zpz|MqnO?NHqJeuzKT zXicJXbG8K_kQoC}3|i;S4{A4-Te=86dWq0US6Kzt8z+^O4bSr@MPIc_91hS3!*6oF z#Ii|j2gWo6JmC6TEAh5Ey7aL%uufX}C^PHt%)kGhFpN4GlSpVc$!N&6CW<)#NEqi?bJZaL(weslf$l8>) z%)eOM|9f&`;leP0A${MAqd0W;3=TF>HzMsW-8|>z(?3o3B5vSw9P}MqtV2yDk&u2g z;Dk=3JUY>jbOs`{o;nT<4dYu(vd*bz7KH!#Xu+eihFr9VeCDf6G6x!X13;|{B!KjPY%(CDEPFx)S#RxN^u@;G`KSDK zNegyP!N%UUR-D}P2R!jmlV@9@FzdJ+l0mIFthKL?TTy`ETZa5ca%e>}=~A@ZlILKr zz445R0uw4KpLkgE6U&;1@B%|!-F%gmXiIme0dJurD&djhU-UksJVzlkrnl*I1ZW{YE9r}S$7PzjV zhHML~#n8Ir>F`ROdXD>j8aHT#HB-Xu_J%I6HuJza`RCfX2iNf6WE)Rl4Q+A2S0(T z(MPL0Avym1E|>()KmUt~-OJvQfWFoNxY4|FWqivWUl)wB3TcS;VjZ;T6N z_>>>*v>9O&9|z-;)Jq9R2-6hn2_?XBk2MRA8Bm)F-QSktpGa_PXuv2K;bm9 zSdTyV;6g~#y2c4lE@3zfvL0K{mz36$u30WmW`ncZGwDmM_vnK`toc>YVxq=H*7m1~ zq)~O1Q99QOKhoTo&G6_QOX|9g=|j%c(P|q}6IqK0gq|7~_n=k|K)?0wAFvl`$`c_W z>&GVL`gw`+O*gm3qfa}xZ`S|>J1g+9cTR^O=dlvHN{E{t$Q-Aoi z7m}LGvHN4kC;LFgvW|H_tNp2=E7k?yQ#Mgbtx!W{&w11R^#|m|&7FfEDrcGxj&N_h z!o2{Gt#0T_cw;s#d`I@AzGch_i`;)YThJ|;?6MW1@SwWo1y#J}+epa{!qh*EKBR)w`8R z9HQ(E{tGok6fNo**_z3La825a+iI2rYT+atwyS|LmwzAiMRyMAL|Ow7@HhD3aO*~- ze)Obs(;H@L^qK%ZxWI^O9XaK3j63#Woac z{W*CbPZHN^jiA_@9r`yS-8#t`Leh+|thW^)757qQoHJosi2w@fM455+B>YGhK9;?) z++kF%nGn*Yg;;38rRmTO9qUS`U<-LdFxPAG>sa%#*e#;6Bt>0wf%p7YHK^+pGZ2>9 zYKserd~VU&4^^&PHu2{xe42!{93+fub3ZvBX@%#y-3VEB;W-rTlt{r@Nj(ztXAsl&Z zMz;xeM%`*{mF2p{bX1jJ7goYdqU@4XkjTm8&otzNZVSD_*kZL@oD-$_tvijugOIdp zqA|l@k9h5OR)akY-Mx`Qun=|eP_(BIEaYphWG>doEQpjbeFa}?AJEUJtj;`zrhzSBtaoU`imtVDoKDm7dayb$qGiPJ6*dr<1P7@WTB{Bo4rs zNOhH+3@9Q#L}PplVuqT1%x}6fPT0<0I@~i7VlI>}q7{+YLI)`s*O);d(bBX z3cvJfTWPph^rNwy+yqjCD!lqAD!@GntX_6kD*tVj>IIV0ash=~|A9O<_Ct}9J>UO| z*nKSO75@E4MyB`wBV&+F`AG$B z&vg8fo33i{&1k-Qv~YQ3px}1EIb5{bKGmJYJbzDJITnDY5zA-OhkFtV^*+@a9KN3z zxp*b$hAgV{qL$9IuW{VPSMHDmlYW(6N2CeFlXqP?(g!FzHk!yO`85Gmd?*8o()o^{C+$&AH>C8 zjuG@hbu6&s$&TmbsGJ1gwqCni=rBT#0C*beo&^}*)Qg-5TAI?qJ`>9wPRWo`z)k#W zYOv@L8P@sJVdN+DaDXRDKm?R-qcjLEJCA}!m9Qc6vHu<{PWbazo@)7{e^x$trhPQi z6@q>0d&DbRSS)8+5y^`gVZ2K^-JG%?0w7NilJq&rA%gzR?Nl%YJh)y*bW(b83M1*n z%@}3bL>_Wq6Qss9hHpisM$Rjk;vFiQ{54Z66D>yU$a$ zu1EixeT=3S@Kp<@`?vp5QJLHj@>mWKJO&=5Of*;{UVE;4rlm+-noI01$>>9u+<|{}MbulR}_W2;U<@5wZ z>a#@=j}(DCXDGLNehWQt-Y1Mwq=PV%sa1CKOJvY+me>l-e50uG)rjJ)QsekucJH!? z+r&lqkiUNuHT25-`gc-L4_oAZkDzvW@Rs-K#{gD361P+&#{L)Y-5RuJ{ye$Ic{fA{ z{bDPF{hY~i+w5Y{D(85o@m=GN^4j)yR$p#`LDAr9bBI?im)QqKRUksyV7>`X0dU7j zr`v+AHFt0_<1p7MAh_Z&cKJHW)WrDewu3arf0H=20d9TrdGS`bZ34@nmINwLCNivN z{cBhIAgM{@@M8HciL>r0P92n>SKG9nvr{eYE=ZR`rfT2Q7+g}^O)uPQG}aur(y&hp z_8C;DoAV~q1a@6mge?;|4|nf8<-gRlrX|r_e|#vJQoX#A`Ro3S?Vlf+PPyCem2Yx$ z`9~z7hllFHdyqs4@_gb=Qt9=(BRFn<`AU~->1cV&`Jhf_jdgIXb|k!TU8yMQjjC-Ff7+?v+#YoS?-l4O<$a`jWE`Ve1f6uzDKfXuKZnIknptb z;dWD3XZpGo2UridT4b(xJ$V;P$p0?xBsh9&-f^k;%NSfG{6nCOLA&mLlbIisOa)G2Nuau*<)mM9g zTQaf9NU3X`^INaj7MpEPfy2We`K;cT>B^spGDm`j&hOoscGnEvj`QKS1qO`=cg zo;#CV3W3zr{FoVe`y}XJN}ks;V9|ktF_*2XWFtO?jNnS1EB*58#-iYX+v3>$%4fzo zzHLy_!%hOuO7D}<^)F_(mFYqOm(z&HuFlw_0Fk-mUg_d8^J6^FRrg-fB>n@O+rd5- zJ)05RLV%9BeUg{h?pJnpZ)yP5*wM#s=O?3@3#EG+nrpGIOE;Zt#PtRl4%hdI`)4K` zx4-TNM_oU(j_gNfB)uqI0`>%mqByBsA~3qXl)RS9J?3oo(}xdov7-#^89?}DI|zoS zJ%DpoG$?6p2d!o<>rWS-gyLegh6!Ja#B;=1uH;QW9OnVbdd*pwg?&jU{V(i5y>YC} z?gbO=1KF)Wid_eOVsS(AtP@Y_S;YO0jtd_DdF44ryUZR&zMBgr2nc!*H$UD_zxB-=_73uU<+&90 zV4Q@GbK*2C*H*s%r9FN9t=|n!r~X-r>s0fTSR3fufDh5sEQF z3FwmpnV(jc9(;bw7`jY|V*-`jg6D8@QB|QSlk@;I6EDG`z36ML#g~zXp|htn$1d6y zqhes})69igc!$wruBD+g%_FIY>xTT0*V^<8oZ~^{X>caf*dc}^_Jh;b)Fr4s`{GxO z>&jQ|`rnNz7B6N+PC150&o~#Ipp(XZz*+Z_7a)OOwNYeYfByPHXO=7Nw5_kO>y$p> zfM(4v&V{J@U{o#4gZzOhZo*bRGG)sY8p2VOug&d-YG$ZV1`y;`LjV$kx+~Z7>fjTzIry>qa9edf z9zde@4OxY+feGT3VlB9*;b9{$tpZ{E6DfLVNuO7g^>f!90j$u}`F5766v$o%9b_UW z=WI*sfo3e$i=5YGnQCm?R=GZ|FN-AsUfr2)V130qM>SnizW2;;wI`htn^!{n)Tj-N zo>nxDIrR19lyu!HtF1gZ0_5H5^P_BrDuk^iPL7zczd8J{s7?FMv2;w}}N@_Y6*X&CNS&)>Tw&SQ&jn^?T{%^E)9 zJ*_9DM{Jp@$8;GIzNp}$x@sRvKDZKSU{$K~zrnMh(QPsm4DxV=$S<2QH#IyQJot?6 z^Ru!!h($GDU=4a#-1qVZf*+XO(ZP0IDn-irZ6Lte{)&UIW*Mum-c4@#5M(*RTD`aU zKzp~nKCer}BlmjZslJx`JA;ctZ5P^TM$IJaVx#q>NBnh38jY&v{j;KRnZ`5gAsMu? zX;NXnW0t`27?s)o$Bu^YE{9x8lSt8k2;<8PU?-3~A|Wz(JO*Zio!c7Tz{B;22c5R6w{gr6|32S)xFk0l z&=ZcKGkis0y-UP%*otB)_h*jmu{Z?&$~~R09vqB$s+?9s%Lx$N;46_vV@o043v2}F zDMjNx6=ozCsi#1m2$@b2IA_wAzN~ryar_-5XZdyVOy9l1xTq%Zo@{6)NOeFEORsx( z)SJZKc^I-S&DAe7ausmu^(WUV?W*B?+#{p$N5+v|^QCtlCfa6#!R|WYN*hxkl>|WH z2_x$o*`6hoT24?CDr5L}{Rm+BdvDmXYB(kM=3(~w%@sI@1G)oUM1y+9cd0g2!hfS1 z?B;96a$PZb3xuh!ang^*cwk3bnFJD-Mfb_HK1MwRdan7j@|*-fZo2jYLu3wuG!N2f zw(hz&G{(K7oRWXmuSZ^v37i)li0FYaBU*P<8btgDC54BVT?IEcCY$)Gx(69wwevGr z!4IWZLDZ8r%QYMnKeAQCwyTU!O8DE_@hll2-Ysdz@CM$TwDG^Ou7%a|V?=)tB{wnuWGzaDY7D&l-$?RHz z>zhxFfu3TOjb{uI$NMeaCmyEJ!})g}+9W|FC!JBLZs$Hn*4V!bt|ggzSyJb$tvnp6@fBFXOZ83Bo7-cY5b#!-(@`|QfQ zg!j&taa9@D;ZsjS`9m9JNXd#{Al5BQBNe95c*okudF8iBBxTSl;g?j7jeidQvUeyD2RZx5UO6f8Y}aBe{@$n z4+C~gx3&_55vc5HpA>O5NOw!FM*t@Y-)9`X=w0TJGDgj2)uWZr*#!-zQ52ZdOi^ng zvhw0+yE)7wG`Z+H2FDG|e+xNrE1KJ{{LZCskiweqA%jknbYE2novZE%O(3u36ZWHk zLKf4~8LoJNc}JRFaqJOl5roYDOvL8Ft6Kg%@+2tg%+4(N_<^EySDPP&jBPTs3Z+I& zd!9?Cvo4vRbvNAx5U#K}uDm$Ff61A(dWqLn`&rPW^QG2PVs=ZQA0%=qV{gg!`|D-6 zQ8vLUEfX~#H7chTt7>lf{NQ7oxeH7CneZB~3KLK%4|MGfofJUa0~|8Bp~;1R$l`Y| zFrlm6f9eSOTTQ*s%D7vmQPuq#)KaVrc>L$fsmFqhd~#|BzKUHu@Hs_lW1pW<&S{1q zmGvGqgYyJ1i~ZQ++drr$&cCE}8E_--N+ggl>`-_Rr&4!-NO+6bU~=Lz+2S?V5)xh- z6vvSx_l@WcoHCzkA6eM!ZzK>PT^dw@jpB1+Cn4_<4-$%I_$OD$hq{roDKO00=@ajd zx|`Gxf3iL6;n=$b4O(n&=i_Mp%oL?=?J$@X(b$*clWbTr9C5EWx6Fp)l!2ruWB}m< zKWqfuXnC+|X_~7#l$aC`3;#Lx#RcV4j8$D@lqf^jEqOT=?$bVNTK>TohyCnfN@Vb= zXJk<(K3L55=meD^F(I`zw#LBVz9kz5$Zw+fIG68QXQ~ekU^?s-t(-Ju91AMB_8eXv z=`Kn3ef^1x;6zt2iDaB$FnIcz0+!F=@h0ynMs`z=-TC{bYtHj>1Hy+(+PBg>xvI6t zj1(w0uiK^&dc#86|7@TMai^Sn}S@nT{n)A0l56JMaFGkudx!u449*Z>QD96H*D?7Pm{R{;Ej_Ee`6@E^n}EeMl|=#0dMOp(4% zu|$mvTi26(wL&-cK~s4dHK6A>{jS7$T)dGazeux}J;`2Kc+5Xl8Q?6vb2N=Fig)MT#@K ztxLYnN#GZ#B9k>kGjV29Dp3;E|D$)hWWsxme|aUJnpRxg8xN8rku25=;<0FV9S{@i zr#esE!6sELf1aV269a9JUb7Rh17dqU(obAp8$j;q+*y3`S=p|Xn>Bt!7xDPR7nk=5 zVo3?7oMcUAL8=%ty>R6#=@(LGTZIC6DdkrrW#k)J3NgOusCs157A3E)Dzq5J&+M6n z2VJM@yNL-)zBBH&{=$%fE1dkM+y~m81nFmX*_V6R+q{uoZ4t5)w**;PcBm9~^K<1` zPq)6W5cvR!YQx&zQTxIkb!Y7q>CvYx=)EDiw9BIG-ANXKv4eqikeZnBp!D@`_~DYf zU4=>dAUHZhLL=bP7J+2m3H8=Og8bjdE}V$xI}I+#w>8c>vZzw>XIup!LxEFpv{?SY z8wgFR4!JzZ?u5&xTMf;NsGG0uIcux@=G$c88p-)~nF<-fE^b-e&(MN6RG&~>s@*D^UB5A)I#b(OObmT*0#gkP3cUxBu*XQFTBx}v# zk*+HH5ZtnNl+1J)Pj6n;{2T zZ00wG9(<&t`+qY}J%>DyQur^akKOK}vKxkXn0$dGLD?Fm?C>e*XfmSF5A`-cB*bGv zwwN<&#`1?vq`2;S%tP;Ep_YVE9**z_8aOy?FPEq1qWnrEo?==PfW4w6&qhjK>He<$ z=MHN^qv>@f(l04&D}u%tPQhb*dOT45qXhjs)`Ovj<+bdYs-&pt@aZiy=~N3}fZYBm@0cF9?!C`|19bTHmtpwNU&d#zOaCI8`JcoH=D#3?s;wB!Eo6mUuNUtwEF z{;p~zH55D!a%(SxeanFV86}8)r-W#zi3E(MA8bwo705MZuj*O;pn~oGm)A}mnI;CC zoEcO44bWn|hAAVwKkbiax|o&axo zUP^)qC$Ry1?z5tg9-Si+O=wy2LEnJ2-S2{Hy3y%xP5#ZtFUtw)}4s+~qBK-i{n|9b;IWF_`3BhWNorC}anqPsA;3f5#Oz?`qp ze>iaDSMMByB?**&@_5-lZwVCY6ND@gXtA!2uDacyjMZ(oUoMdi7u>M-Au+S}g{}_Y z+WfQkRaigW3?um77~nub3}=)*3+dTo{usg$|B@B@;h$@GDgP_jczSlDxD0K4@Ay`H zizMw4r?*B8y-;zxfv!cYesAKmdoq1qacwW0-OQM4967vVF<C1*UFn>wDEx1I~_phpfqby($ zJU?z#-srqief3!>sH1Eu&Va14dz$>)Cn3n*G2pK9Ot5vehx9kjfkC$uf9q054ck%6jcjYWYKtMr`d%~WcK9nxAWX1>QxT!C z5d=W;ybyk$Q|zsV!F64FeT%eRyk!!Cxryas$vuCe+=p`AWIev+XcC`&$1Ly&a=RDU zbe;tf{}89@hJ$);$x=Io9(I1{LFWL6D?LtJ$W~bOM#5bAr;pAyyfO}lt~%y&-{IeA zUc^xtI$_F)^#tUz1`a*NOKeyXzd)Ai{wT3M*t>)4EH@@Iov=!0dRbPcZtx`n4h}!| zRQtp}6DjyxZk>pvsCeHBtzSn5%DvUg7f6$_%(z^&IwW11|$q2 ziQhkcuP%v-*~@zw+KlUS`ZEGookpDf^lLPqML$NfNk`$rkDdf#3()DC6!9#>;Sn%V zpzNr$QB3{rjC)`?nTEl@K{N#4orXpm^j1C~lJ{>@3;*5wz7!iJH7@31;6h{CSX$$Gl zzc9}_!zhvou|`kby8oa*SSF8T!qqCd=&c_vx{~k(tkYHTlz^_0@Y-rvEgUlLa0(}m zE^sBh)_JxLrxSer52rp`9i25XI{1P!%xnD!RWKtklmeHBPaCKjSKFw;MbN)UR6hj$ zGdp#C$X8n7AZM)z0$hiJEW73X)Sj-cglu94CEJO#f2Y563Q>)AF0=;Syrp4UZ~s#A zo-=$OLh*~e_%?lt)6H{%oiw!~X=wn2&J^0Z?kOgaJV~Cy#x?sUvJ|L@rImt38~U3Z zdIj5z&Mv5Z=guC=yY~3dh6V-CkB*YBPHtXe1dfqo=NXz?DX6tyIl10F87Vg{;YJMp zg8e``&!eJs}c+Xz1C4{HfG2mr~njM=iIvkV)c$`ID5P#P%%j%}b+Q$qyy1(`6mYO$ICEfcVOOAV>=-b_cif-8-l|?&Od9*- zvnJ0b+3R{*|7_cM{93atp?Srd@V0=5sc+3sntXbAlA-o=_9D_A`&X>-KYlS|dyZ&V z7MCANP(L<8x`_SaeG7O5u4Y^bX-N9}!yi3}DxE~3?n-}4O{$LU1CISG1*l-fpBEQC zQB!!LwmA{Lr-7=FD*u~+Aguy_YM@)RE^N-*&OrZk^cYN6VC*KviOXV!Bmk0?(Y zq1{lt-#GxNj#CGNG^oh8U5oa~9bG7v1IOxG z7;DPunyn}DNNlb55!l$dT{*#;Et#DtHTty}Qd1+!U!==h$nfk^0kn@? zBR=7o31MmalAe%S`c4_IUd;}S-W*|hWwoMeE?uis8zV5OtXb9HUW%Deg=JTycuq>x zn3jVC&J$PP0gGvg-r*2uv8W2%Xnkf&1#+ESvILGqxJf_`L|*al{){fb2K-gJBvnc= zG3mKv5_8``+_3B*-8lfZSx;*>B66GcReHLUz3tuVb?ND*nns3eY`N^e=V??#a5)jb z62?{D2_V)J`Vg1J&s{8pFo$!Rfl1aRSlxM4ubY4bH+5zaM7m`(*@$L`=v&c%>ZqSG z{YqT+Sfm{_Z7Xme1xLowQPK(c6Tly-=k<~5FZTkUjuPBma~a#`I*mI_0-|}J*_60y zAkVaIq_!^>jZVSnQwyh>(6!c@M)pdgLP*=CL#lAo)0n!`LB?t;qgWH;8N9_bxy|b* z0(ysFde{obfYFuaD`sFD5)0EbQGDo|T@?@t!+|(8XR!`2@sSdr`1YHTq}(m%4?Cft zpzLi@+ce(1i>>e4A4CT0zMZ_XLbqaxHo^tWHVOWc?D=i?q6gB8(p(t?f0`LxjhJC_ za3$r9OM1yr$i^1V3jd%7H#q>Hk?#m3CID1Qz7_h5G>!ejRCqfpyIuL9<@-Am7`IKh z1dkx*2Dtd3XdUuK^yInjLReM4zQ#?BbwUxmnwl7RyDJw+%p)XmjZvO!f-Sbzg(>L7 zjb_odzG^m$;ZrQ7ylo8@fCctrkMV7`AexK5yrS23w*0X=-I-$rw5OPe3#i=vz z1ZGf1DL7k^q=)Q4#AK zrvuHrUum8_m1i{8AsxUr_}l(YehbAkgu5bD(pEwlGv<%1YV`1_FauoSh#xq8JGN(N zq#|iJP*-j!ju=gTM1r+b1WGMdVjIHnx;Z21UfmJ_7UI6F&t4Qu*xemN{X(vF@)imL z1rQ%EkMCXfuVO>ykf~Dk|53ywemlQOaAghkl=La@yax?-Ael`DcYYJfaIvh=x9T%b zz;~v+&iN)5Tv3bEH+ZWcIP4V5DM#C|;a>Sv+ml-!l-QF-)WJ6zBJKHp=9xL68}#2{ z2R~lK9I>%{?6p)*e>oJo+#bv+r^vv33zw2d5ur!aRv@OW3kR%@5i9Ij=0U`4<&W1k zZ?nW=*#Lj2&cBYUTOLQb6Y2%S#j9!=S+TO+FZN@>Deaf4Y&l_5YEHH?~X~uJZq(Wc0s!rF^o@vVPwR z|IeF`Cox*c<}ZZkSpRo)mZ!fQ`(Ll`Tet83StsYXS()lfI|vQZj}zPoug{X|zI!pu zXlh!pSR6dAJbH*2&&g`W#`L|uy(qt!ZT_=kDgW{p zf<>Xs#_nV!xxB+#ujQ2$yLM*OEaYOZgqKrAZupIjAdznl(Yb`zaRi&k3Uh}CaY6rlE{2>9SW;i|bq2!v*Um|CgSPt`5&GCz-{y znPCc*&M0G^k=MRw!6+rM*jx$-io`Gvtka8SopatVvUGQ5@7?Ag#*NDZ8&H@CdWZ~J z6BH^3e=d0j2opPyGrc=zo_BNM*>c90^uXpC1aPVHO|&$7GdSS+^9c0DWSjk4DcbZQ zQ*MPbHS2U2UaXBcw8oT$=t>EZ`9DWed}7oIJ%*Hq z6T!D!tk-xk4gDi>LCd6KTH$4?=^z?jkOxz zQ);AO)uH4ydGqoKaKpwZKCDQ8h|Trz)?cO0I3# zf#uBop{=}NcnCNK-TFi;4kB2eN{B054>`F~VA>@UYz;~(ndmndU4~i6n!IIfFs)0B ziN9>hU(b#h?1_X3`VM5uWBAd~(QXYljEAsaFM`{8F>0G-mDg{t^bA#VR);5ix@3F|(xNjoK z2O^7wQ&&)AZ;hWwkhIvVIU4?HP_OG4C%3Xs%GPgrlmBP;Dsps2mR%ern`KNmatx}X z!K*4e+-3X3F4|Ykg3`ajQ3 zAoZlqvClYPBi|K)=HM6*t|N+vG{{cjIy^ag78_~d&;TAXY|I)MJ9`aj$b8Y^T+2;J zMD{s2Jb+q9yALQtwf2X24KKe;ktwN*qSRn)D^_(|m9o6g#BH5jz>?LCdwIuj3@^zQ zdSz`EYFmG?L#@iZ3XVdZaS-J5)9VrvY;pG%GPUqT`8FOa=-w8S{1rlsAyss1FqYog zKs6S@a^VJwFyGVRc~v&=*exE8?gW^!4(tE=p9M6caq2JY)a52Wp>%+;6v5hzb4o`w z^_p?)YGQW~h@}fDlmmoX@o=Lqy{>vw9@0jB$%V;%bVQ#V?^7~q&zYC)&2)6yq;p`l zH2BhkUZpL?@^i>d^2n->Y^mR1KFy0KIQc;36rrJwr{;UC9Ttn?bobORr+Gt4x*s!u zv)n0=_W;)&2+=>JYLSvohZY%4D0B1E%2>CczOYrtvJc3jxJ;Ku5&^>;`eoZKl~Fx? z!P#{aOF;rmDzj3D)9*>ay_Q)qRz|zQX|+nLh7)^6u%+2jsLsjj%PB$@ZmrVbQ7|aX zM=io;vSAy^kMom_J>I%{G=95%7?|&j3Xfa8#bVHiA0*kkY_(73TwQV2gji>M6!5Rt z^!WQMo}&B0Bp1CSjZ^}f(+R-EZPk}=73_9uM_z> zL6`YujZ}nBC;A8QDtffkQ>XkWG&T~uVg(szuGlufkI=b}g0qL|hMV`Dj#k#uz?hD_ z&@TOWhP1(?vnal~FT8q}W2vPOX0{L0hx&3xKM6f{`}BV@iVK69K`-gCXR7(^|E-1E zQ4otB*yE}*Kv1K}{+bzDCaRvx71kQB>61rAd-GBqgcGT|WR zrJMN!BFsf`WBWSsV`w#aeDiM1qRB{yjbMlqq?FI^27Dt0a+;z|m?eRK37IoQG-Gp6 zW{xhw*NvoXJEsJ9&yE}C@n!t_VEZAESUy!nGs5npe-e@Zb0gnetWH@j?@ts$l~Aji zGM26?Kn+RHir&woR?=Fiuv;%pr{K=*N1j&U2Xu1!DNqJJe$*46ORDZ;)^W%}_QB|z zs*}CZ!W&-C)|=Y$Vd_(GY%SqT^3MDUZ(Dn0XXrm22^<{kXYk~j1%HqoQa!FvZ-}s& zVKIK3Ag$@wapWjt`((tnK0nx__d69<>txS6$$sD6jD$GXe}uR#WK;GRPgINzAdqAv zYtN}!ZDM@Qw$E|TNf}*T_^!eKo%!iOX5Xi!8=5N4n|xyj34>@x&i-)cu-q#P|C_i3 z8Q#d`2a4CxMn+f18nBFfO_@QKH)g6KI7KAA@FVB&4-5>8R(4}2e;hVYf_|JHCI}`m zY-A2PSkvt*_zy|X_owy@fwV5Sm#G1Lw5)o7NbI@-`Zx2b-zBD-&OMt?oHE;rB?j=e zjvmgb<5D0kbBOCWZ`80Izn{qFcf)3q|BAQdosMdA;6C`Rjs%^%Nh@H+%nKo8lhE2j+pfui4JXIaFbIW;CPmEQ?{y~*To$6>mC3XO3H4R{7hRz z@N3k*b=*@1>NCbOKALpFa_kx5ZkY3{!X8D-nQMxnC+s1yWOp?CyJfaX+6$3Q8?gXW1Clo9 z_vu1dKI7(APhlcGQf%VeD^?PDhOgnddp*3YNcO9T@B|9T=kQzt;y6hP z7J7W=3EO8pmU>l*1wDLRs}mDlrL(mzVrWq9=mOoYAFs}zWBclXTO*$j9->~AHze2% z27XAg>&MCIggW1@!di2x+Q)?WmaffD8i+pl_$t3De(>m>7LwW51GxXN|RAO8M= z0X%Z(%OsGS??;pEFE`0f)e7xr>Nnjb6P_BfBf^BVshGU)C9+Xn;Be=TBb z;(NLcGhnH_Y&3Bg4d;W1!r0?m?0oj|=9`;H2O;iwyvgVERx;x;P(TD~`=^)x9p7=! z{KG>*599eiqyKMhkPBKJOVg>dVRAiHe9WMCz++VQ8_VbGlvN&^j(eXR1&t8gD%SgG z?2y_<1IeN8IkalSN#bih^$T^Q@_4abC7O^)Rg;c7b_s1S0qS^(2C_z26PewET_H#z ztK7mrgoSyMWjgz@iK+FSag~UVAk94ZX|&^j?9>F1H3TdWMUv^Zfh;JP!=QMQqV>4;WhA!bI;U z?1s=nEwEDvVdRS)Hel2)c# zH0MmQ$^hj|jI!!nMgaNI^EI|H1!*(GKbgyYkL2Fb9%?UxE8FngBkj$HTJl+chXdCp z9T6$*kSzE(1!QSKR(|uVhfIi)P%)aL$qen8{K7&_5vqgnnLSir|7bMum?e!x#UeI$QVK!Pu$sU< zo{P#hJ^km4pO}xhBjn?Suf1b;H?Kg5=>giFhW~(|X%Hy?+GVmAuzNHUJ1Y4}KY7Ds zXh&~v!Q5|YTrC=!SznlEZFbe&yd_?9IG0TP^G@ULqGigo==wl3ap4}LVejin*LI6m zJz1?|iS%8#gU$SOM4`C@1_X?YH^@#LR0j$#&gkn=Q)HQwbo}t}PPehLy?eg~0+N*U z6f)^|?OzsGDvjNqB(`1R5IghRaN*Y*F0xz%lMPP@nxve0ml|3hvWfbLl9W|+4=wu8 z9M4&PqQ;j1ccJ_Hk)X#yP~l3khdS3vs(xxzjYE8DFk5z~Rr-r$GSINBkFT*~RlfSBn+4}QpeKEJ!%vq5ptF|N6laKFM=|+& zU-M!c98>*N$w~!UlcGO*u8T$Sz&>R6XVKgCfSN^rym<4G@8KOgM~4-+X8rHi{qvKf z6v{=`yCYP|PDmJj00D{z+le|0!{-iDLd;T7480qx7n_^{m_Hldup8e}Ix5`NcE5b( z2KN~l9G13Y36(7wRn~GFPzDe;9^8hv-J>vNta@A2nC~t}|>! z7PoR3d4@egyUKFAZMG2bmU2gXu)T(ZqvzV{Rr2s8@a0ZnO`$~aFQv5>LH@}K?!reB z8X!Nl$jXsT0`#*t^>e7zQFoX3Z8fHwkn!7%F#EXw8!> zLX8ju77cg+rYgD zk&m{2CQEQn_-53q=Nq&++#UxT8J%<0BZzi_pr7D=?;;_J%{`FMc{WmsI^ggxw!21@A16~Wsl$Afc(2v=mXc4K@xPiPE zb$%?87n3Ir2Jxt2X&4#1WM9H=ziK2Jmx7b#z;&z!LGq28%i}4u9p(LkIgF(kSoi** zdxpma>bgxy_r^wyV&6Jxpl@G!WlY;30~L!~Svf7%ZPY@x=Cg@N@6$9w?F!2j$KUesFrZ)g;P-!pqkoZ-Gw_q}6{^V8%HPP)s3M!U z=u$y2VU)|5(M6Qul~%76+Q$rX2G`e2mTa`}@c>OxleM0nt-xx+_?&m&-6`fezI0v} z-=(dqXAbU;{8k-FPs#_YmycB%*V!LCx5Vfm#6Udser?>r2i$s%|q(Tf%uY zP(q52PDM6|7SR?ic8MWP-QM{3L%QP+F7M3mJ?VH{4}j zD7Tk>W5jO>3is2+ayEZj(=};Z++9pfE!Zq=c$8$2%Xu@R#l^|Zp=T68l(Z4H3}(h3 zBgQ8WS$i1n?5tLBu$ziimCHyL&^E~}V@#^2Wthya|2R?U^F+0+LaLjQbE{0q9~u*^WsarAOXYQ(xcIe|>74mS^$Q~i;N_2m0D+yWBI4>+vcU8%=Esg-SCT3@x@icIS0 zOX^eKaAXLXW@KhYIZ-^#c|TtgR&V>Y#z~;Bf&3L&vSz-M#V30INmyz7#+xUz!Hko! z2^mHTcH!GBO|Ln1GYL!fHmQUnhh=}&vQ?1_tyWu?Ohz=fcnX=zfL$DakzX5sdt*H4 z=caEv%3_yLKvErRb%D|^N@r)IxtM~B_{(x|bNxxQ>hQ3l8(J@zKAhlpA_a2Xt-tDQqjVHH*{THG$f+vf?fZ4_Q%SmbG!8 zpqsN(*B?1g3n-1ivY*tdz{zpQsJfb+(H>;8RS2=q)h~b%o*~tIcCkNqPn4Kt32u7= z->8J@)pF%HDnyyTuy+#?6qM4((XVWCF2zVK+rbya1%x!U=Fvvx&C8&?wN1D8VFL?6 z{OU2Zx>As3)?gY@^#U!`9%px$*CgGh6?{w%EA~}4h79e4Jyqy>9D}3nBc~_Ec}De~ zJ@Pp*f=-!n23G}Bi^a#zDsTK~c+;;XYi*dAHY{J9)P4-5D6Lk;!P)!8@sQuZy>m97 z>XF~f^%(Q`B_^A=S(cB!BuODMO=#oGPY!ExVx_+SYNkvDGDayHS9cSk@P z1oNzXscp}rlsIRdPC#!JfP;-*tFHvCOL#{boKQE0vq?|%dY8ZYv@vOMqy<@W_24T^ zF@5~rITz29hr@vfrJ+38tPI>g5|;SwLikCrW`ISdL4_MfT&#ga8Re(#Ty+(}n>IB> zhrKHgzzP*KNAg++B}bQV)AVW#>1uicm3O~B<@Lt{fSFyG^Nf+^McRzfouDl;>jwb` zCRd0E@_6A|2}MWp_2jv@O$s2DughjtX; z64-zA+U4UpR;>5Fq{+i9qgOOHfIMY1p7gJu8jfBlsC*c7^f)HPScNJ-1C`mSR zGpsF%?FIX{>ZueT6Qo3U%6-iH1UcrkPG3d38M`^2$t$=Xv@Gkr*xQ zqD-i#1%Xh#|CT*z@HrDbyZ!fQ&Uc(V=2=j@n9KHHkLIWWR(b&Qy)J?!h^kYOz0$kQ z1F+)TwfbRsx}j1AMWU8xQzj2r6U|Ktf$qbJ8IJk}-c>uEh^#KWxG^5qwIxsUIJHmg zR|H^$pHJ!8qO6uqBctNRxwi$`>DsAT=pxBnis+<(hM|* zCSHiP@$}dHwCTO4$nQLzCJ|2n*P#zmmkf`!K1K#m??v32{rij-%$81<$|>eJsEBqC zW2D<}wnHL5tAOvM)TDDm!i*s^NOryz_aC;1NcMCRtB z`BeEyRY@UcxJ5Xpgfyl~!waes`E{>o?k>?U;We0NFC;L!tMMrqg0?CN#u(Hnl8pOUTH*C4p}e;=hiPUauKqQ#x8X1BeQ%#GH1po$6!g_7Rw?~$iM3Q2PC=D+Z0aPnaV4a?0nly~3iAHI2E5`#g?S^A}GWyAvQN8Gz;Fj6p1jJs{6LLCf|D53L&9|y$1p=EWuW$+>o{_)HH3D&3 znvl@~YERb7bNZCCM{{pV{SgM~y`+51)ET=FjH5jt(0FStU}J)z7mmNau867qc=$_F z(px?JpE}t%fq&EaH8HgRr=u25z-jMthb%q@%E-e2-)N(gu|!hwrWgSJG7bpG{Pl-B zj_OKHbsxmpM-y_QXdK}-ME;qNm-keQ9zI{>;BdJdBI|7p)4#MkF_K7ntD1!X zfidD2N?X&1*nY0JgnphYD3UjOe0SQppu^K~Rp|EJwP|~r^~$)aR9Dc&{pVF^{4T^3 zPxdn?gsl=3*wC=L^6P?2*!$?oT(d4kq|Z0(<9Q*!%Qpszca|0wr_dp(gZA)nsSzLo z-`HszBeCz3KDiwwEyg;6Jlqwhem#HoA-8UOya*2smnwp9NErEW&$neBC6jlg^^YB_ z-7dEB`xTcjVh-<8_PFA^ECJffVKAxTKm?niPg~vDY@$HA!uKn$**-?k=PPPf!Qw7iNBs$jaY z=_{R=M=(djuX_2tHV!)Z3fSYx2wPDqv%Nz*Aky-Jcy&q) z93tk(*1bo2_dNDSk_h->CyPE_Ok_6Hfo(S?vQ2A!;Fv7KFqHQ$?Q#A-g&+cZ5Ksv0 zF==wVfwB~E5Pq3r36WVv@6OK8bGk+A52$+v9LtW>aM?&h<~Cbv!Zfx90SZAaY;v?- zV^f#n$$Oek|CqA=-(BgDKV@w#x4!-Z@SWiSL^A5Zf8W{U;pB2@fw{_9)r%1wBi-l4 z(K*w?1yFGrL9rpAfI~E{O4D`U4O^B=1$uWBrLAahuLSP_8y0IIDJtX}@^KX^02Y@dm@El6 zwyRRN=%H#hI^6Ks9&SFi(UxR;jc4l4bp;l)_eA>A1L zis!pu0N!<|T$LQZe{<<+Fpa6#IFnRd)y#a%8dh9dit>;GAaV6mVm}-qmj&2}qXjGk zKHPSNvor&FIms?bKpDsWW!hM879$84Tz*eOg24Xk&&;#L0nZ_oSJZlV;L4(WPCh$lWAKJ9ynN z^`zMDRx6@@@^WBG$Xy~aorxdPFOOo|K6#gb(#t6Ij8`}IoK=2;ka5;z5zCxRlQM={ zFp~C=0SB{OVV5eY`o-!n4H zy`TH;xLLikuG6(ry%JLCPbtHA9=OTmhucUDQ!eMFDLd6KMj$Br^zi{C( zHA%)8;+X$FuI^nu14BP;h%)3AzQhqfb)p}ctR?^aeM^$uW+$Hd=>7)%Xl06mSWEPZ zz{WG?%!PSUXRIqrKxvBfhqSAGLqO8>3#v>4K3;n(Q)D>BnYdMZV;zOB`-n{dFzp#X zLymO|K$-M$^C?h`r-(hDIVPex=Psr_ugng+*$AM8wH$^Q1E3g*oIlsl&NkIA7UF-9 zMsRO;>U%qmvfuV!faAm54!idhDYbCSA<>XX;76G?A#SHBZ-VDYiblF&vljzhzrx&( zxgJiD#V;DLH$JbHWPtOK#to>64lA2zVfrk|%o{C-LD`X4YZJRi%hYBf%zA1JQ>0fn z!}rBgLbp+$QdzCtTr4h_#BT#t@-CMy4t$YfX``i1Tkrue{*6fd`MW9LQtVAqq*^wz0Wj?Mx=`^T{%8cIUNCiyoE#vGwJ+7<|#hz&REJ z^o&y=Jr9K6uVdv9)l9nE*t1cwgL+=U9HTkcpy(+kfH``M&Qx5#x1%6P_KSE zf4OWlCVAG+5$~YuT>s2s^nrcVn6xE(p7r@{dqs*B80j%QAOkW;#-JZ|w(1S? zDU0Vb14=3iKG=oEJbxt?)JU04nw@K5r1-4?(+R>1OPzNXs2ECix;C8< z0#XfT<4CoC;HB+44cajtC*ZFzw&X8AixgPiBMB-Tk)ZXWM}mH~+WRDERPv*Yg^;nE zHp$tpHlS!x08`{?H93b>?R2r4oepHTcy0S{pmDlQ(6NyK>Bmq+;p^B=K-8E~17LzC zBloMxEbqo-HmeybDV^x!%!XymmxAu(FQ+TBG2B8|flwKN$(1gWVo*kcGfHj9I+$v9ot z%VARSjkpoLd7LCN7X_E^l2flj-)y?MF0uFyo~rv@HwBcYZVLz9c{pC3h&Sk`udS>? za*v7cmK1rH%ZQ&AVT-nij-VVU9w#mCx-hR#@_u2HSJ9Nu?=8_Ew0N&3;wg;uPqiRl z<^N@C*<(Sy@Ja0yfcfSGQ;!4M6Fx^i)a-BzP##+ockl?8bB=)oJl2-GeJke8G_j~jX;@+Fhe3Z!$B02eRy)QxF-1oh<)RN;G4UQHe zw7BlVtW>H_g`Ec$pXcRP6&f-8yVl&JcF6~A>;fWFK4kZI^xSM_{{fOx`m-p9oPc9d zr7}ZGPp!FPzGIRFoMokoD71Y*GkU1}x#M?rKz9!>N!`T5@t%)xSFbavDX{Xuwo+-* z@|QdwqVy(6S-F0_$|q^l?iT-m5pBdj#p65^W+viWW$YNNGjxWhm%=b+eCaRl{_TF* zeMna!b_XuEGVXxiACzxS+5$;MB~fv%hA?#Yx+z(ASPG8=;TAQ>)iK6k$(QS#Xf z@vR6|h-`N@4k<}kT%4hQJsL!I1_9>=!y93jvCT5ei%K&$pgy{ot2xNrSdbey2!Q9W z4;21DWOC3+byndkb&!t)Xn0|=sxuRakJOX4M^$Al$kcaU4?aodd|WF#{1W-Y8%A39 z-sQ*kgW!+^-+sKKXq*o^jRz?@7w*IX$03JwPN(<`EGIS(s}LSE(6-l$LQdW2hs%p> zlkGm{s_Os=vXSh7kav^sPXJnu0%(2YeqB^$0e+0hec*2oXXfUCIjc@NKIPbDXsadq zz~TqaWX6rFi{55q8@IO02bhU}y_<+s2Slow1oCs!HYUoejU!live{$AJMs2)mpEz!~ACS5^h1CKnOF2gynMfmAR(VO4DYm~_@tm=7!On!0PL zIVENr=q<}(ep$?ZoE75TKX)~r7i$MZ7uonKK&|v}r(PDY=4eoGodkLvWu0eI=Qkd8 zU7|Rd&)K+1_bV>2x^?dOXTr~S>L0kkS;kQuN@p)~EbfrEj!f#P-~IipdL)DRq({() z&1Ww*R;29CSC*j)`ID7EsZ+6i6cwsZGOLG;E5He@N~2#Y#Hunb_)44xbmK44KB7M}?}x95 z-Uo@cj06k`d*b^7F9;Lwi+GSmm+GUdPq)$bQnt1GoAAw&Y(+At?<*x>-%Le|Yr+#RAJM3^F#jG zg@#7|s-bLMWNm!SG^lGR$#IWRd7GA&cIo!*249UwfvdYaJ*{UOi(f(nQ;4G)w`?L{ z@$4!5uR?{jP;x8;*{@Y1>s|BiV*t9A0@AE~>mJpUE%p{QU3e;jA{%M&K>(JKo?q)t058gH)Fy=c{x@Y$ANH*m5oTUtM7jNjq$6WI~PY`x~{G~WgOr{`y+c2@LX0pi^znJ*d@ZYCb*Bvf=d3r#9cjriBFk-G^v<$7Q;8BW(jGTxq?#vWIud{mMLc_ z_rG8iqc+NSHy6+zH%Mr}-B3F-RI0<8S!KC)SaKZ5xN~LkFfe{|_B+iQ6iJvJP=Yl0 zzaugTgvZ$VX!&WKM=k&JGbUGVx>-d{!K@^Kbl#EMqa*a|%11+J>xC$f|BELX8+^Ig zpVwAJJb$gY_U{d~V*FXkYq@(o!obro;mu4_VFm_SRYrP9ue$ZRiF8doQ^wG9gv3g| zQt-b$4LgftQ`Y~$2oWmO2u$M92_kyD{{J7fiO#U=!U81*9}6usYwGm;8g<(cFvYkZ z0;e!b6Pq5M%JyG&)B6AxD3gu6e{c9^e;%!@O$n&-^unC9#g5vu!3~D+G4!L`d4Kn1 z(Ly2CN|NbaM3u+*j~B`v8}?-m+`%vAOIwUE`jPX53D4GN$uhEHUtyh{9uzYdBt^_A z8VVyCwxfMwX*4AV?1H?7g2etg*7fjLV&MGB4vS7$KK_Ezas; zwZjh&THO9k=bE&5Q6sJ+zqBscSFAD-8gBkx1WXmF&Bl1Iuytl#PC+Z{PE`U0;>D#J@G9 znQ$S?%-M_|6!R5bJQ4iUumvZ~vRZ4qrMd#`1`w~{3@sa2SpdCzwJ-dg{D#}aJx?!H z6ah6mYCf8MN*$g?30#e*jKWLq6qD9>0Wtw}*YnFdM)pRcC-dcgcilbOjjmRP5K^9c zMBQpSCxkrCgL3|lt9TdN36I$czfT$S!=MI$VVvj{LwEnU(@!ENh_8fIL8>L$Rl=4I z|I0Z~<#N@+JZfknL;27u-O`0PH5XIcepbM}2Z4x`@Cnbx|0ZPhChm|T z^JdJSQW=~W`%^r>%S~izo@SFm*CCuys`ZetmoY1Db?D@(%hGobQT@=gF9f|;0YMeg zW3QfXDtnE4bQJciiNK)+B^Z|QlXN})F!_#QH|8b97hPk5v`SVYxoX{1_YXhq7o(l2lY0T~#BHs+&-&re~$G7`ou(qMbFyNnXO=lb+JW_IEfgJ;cqLc=#7?^D+Wwys#!Xi3m7WpU^oR@(TLkVg(E9ZOnpLW(CY^VUpn=2IZOeSyM`Zl09u zyfyCuuiZH{ReYa#&(vV2fj^_M_mrs|8LrCdXa491-&frJdGD9-h27A#si4QH{*;Rp zFjaEDVP=|O^x2zs`&-5ErzitYJ~-mddR-adQ|G_OmmHq*Vo~PyHym8x_8_Wjj9fU& z@x;cS17XY@@%xfsu@>>J@#+(Gcdc zj}viG>(+J5saP;-hY=VY>#(Ef<2T@$3}fZ=)+kHjw-t(Yco3gLUehR6L{&3%pfS8P7XEZ+J-SvC%$XK1eKO&F2no>YfjO5d#PRY zf2vc*1cIfYi3v3QO7|p@+kdVV?JfBVPE1I%ff9FM9}Y#=^a83M_M9Zsq$?LJwM-pe z^T#*)#vSzagAtjAt5hv^dOl99wo;qs##c!PkEEGs1Svj;i}t|?H90F$4!R`^xewT;YzA~ ze2Mpy?pan)Scn0rT%rNYN7*wlMc5o|6EO2EtM!SxHJ9Rjly~d)pG$|Oyr4ox{5C{; z*pNTH$~ESEX*6UWFIYpXH#%p4{U$6#$w#yX)~TBIrez%pU2qclM!$Ooc9JcQG7#Q{ zQ{ZF9-ReB!=@&W=zkN}cdKZ< z4ku?7UB3uE2qhF1ZaTue!ZBLZTvQk8T5J1nqPQcD3cj3%OE1)VNzR zXzq=v2MBh3^wcz$5=vX|9@B1HoTn!l*UP&6sgx%EWO2A4p{{Q8QmFps@?Z^4 zq#8b?XaskqewMYV-7ziRs9~v`3AHC(a- zgY)ZdS=^6F{^9U*O5$AX9xS$gKjU)qB5xGxaow=-bv|0a8ml#074ZEe3KMPa6~{(`PE6>t0Qba7s@FF=ZB(=4 zCTrHxR3TG#=y!(wIN6?e0nj9$*(%<6{duphbLN(~PsSo~%vX}1oJ8B6l|)CNDP7Aq zvDGAU6;N-+(y+I66pB|X(%;!@$)IH?xBS4OlsiZN!YASrSUmbscJf%Y-Anm(oUr;& z)V!RJb{#wc_~z)eHlH&G^+#B6JJG1wqf?qOpS%6qGQ))b<^VDbrW&G53w5F)B5{)A z@=hc&&8BuuVRI@pzd#`?bxaxyD_^IX+N5@} ztBv?ES@G6c*T5t5HaO08eaS?J?qZCK_nsS-)4bmgzV7%<4odJscOb8ZYMLo*zx_s+ z*Nx>`0(AJpnj!I zk3C+t^`6vNxK{jBbEj2qEmJpou^qjFyADWHpQ762v8=Z%x3s@v4SSb-W~R4@kDJr& zDYGBj{2dpK+FxKb8*jBS@Lhr^7gRS~b_`aQdOKms*-;-fcSt`>!4YKTTMR?DR@UZy zWz2Bt|Grn8L%`8TCwLM!d)%HB855bdh;EhqG9uaMzp5J7v~fIM-}oqU)a zP_NP!YnUs0MOle0m+@xyX82M*TZoE-F}Kot_Y_p|=7IhM{dc@rMa5hT$E&0LOp`WY zl|PrNotjs>d+bHKcJrH{CZ)fQrTuqlh)^#I(hZ{wp;h_0=Gp zZaYAAJvB+0>cbVElfuhSNq?rVz8kVu$;+ot73OGA424vP0@|_+;{3#D(?m4{HG~}v z3-sc~zsm|_@dkdJukF~fo=&)$41s< zy$^My+0^&7Syh~RRX7{$Sn*BJygH}CSR$un*nFd-+q4_;``j1XrtuY$Ram(}7te@JfuLM=qJ|(_mRP378dMEHk$A;R z8JZSBVC;Tl#%b&JcI)2SnGjo(+>J!vE|1+;AqETMwwc4(OF-Y z;wsS|D;fG@nj|84pM~(z@f@+7tLXKJm1b{d$Wh`wRay`g#3>m zF)Z{K%|Rxu#-oJii!&%0rxR#1JvW?w@qRxf(FeAlQ5!*0k&|W=iHYPuT~0<@jE2NB zW~E*4sch0jT|36W4sV05R`u*>voX&V=^mcWQ?I9*rv(BIq+2W>jr?mF|ZKPV$wX-4*J+A=^m+t=>O59BaSlvEyDd})V_+L z{yBa8`V(9F_e^I%*dT{lFgAJ#SH`?uRU`tA!jGJKoB{h3#rB)Lf7k@)jLs zbfd!&nmas=VYGc`<|IiunQ&s#DDmLwDe~^v&tlVSHsTuz9@KoyHIoHHMfcgZ{pM9y z+C{f=?&WHpdqgE*956;{-$#q5)Z%Jh{0X|u7c6>-9P|^JS-7{Q)vA`>ZPx85LY={s z(Qc>j41Xxuov4ASR6;;uGq{iT*l>47pZ8s|4WlO%Wo`a8&y%xQ%Im@E%zxP522Gn^$0DoLyo}mL$ZY*au z*GdVqHro?ijiU*;XQ{-hn2{jy$qNk!`0UWFvKCs*{R}+!l%sa{giDPQFPRq3f*ASc)r1dZxvc}HHeg|q988nPtPnU^h z$AaHl^(r0n1|Wnoc#9Rhi6EoP?=z9|`p%Pv3#u)QnHOC9L=yU_vysrW`^paq`m+P7eaFHAHn1_8=i}%jCiHZ1k4H ztHzUlbzdMvtiZnKuwhq}Nmsn!SO6@R zY?z497dl$;K!kt^vi6ciKHnfvCL(ySnt{ELh+=l(L>3a@75Ya+FIN5>S4>2)*w^Vr zTm0ssXV|KSh6~o?Sw8K2qLS?1s!a2tP+V(-YRyEK9CtYl?cQd)w49vbo3pM{^F*7d zQJj#$XLmg~wCQioO=={nylR4e89UJ3yJAcP?68rPi# z&&nDTAz%|#k;jI( z3+QTd={kh6^LdxX*>_p<=y$QY1=3GR_~RAx(v4gDcJXnCs^WuN5XZ#qAtbSb719!& z7iJ1I^_9L;6cT@nL?R*#&N8j)o_^m(NXq??Vj@-WZ(=MqbVIk5v!Lin%SY~=)zK#- zO4vbrABnA3htNnPk@JThQwGc%p#dj?u^4shy2V*0Lq~-BLZs11uI`M}qz- z+2%M%56uk3c#~Z{@%f#dUT1pX0Q;_+w5Ea3Uki@Ds@O!y_!CmnTjtb_t0;Y&Vr;ct z`NK#-N{tdS{Z~B+0pNO=Ry9#@)I6&$-4ltZvbD84pRR*cWH#vy|CJ&{$S&?&rwfk2;WhNQCq4`{rM8p!HdQ1 zwf^iqztx_e-9fj2c`Z-FvZL0{+gDAwPp-^)33^7dlSC7hd%I@#4Bo#g9UmXFS+-2Q zR(s{xVwwmV0jLZ&kzWklaDqYO#;R|_AGsto2HJ}7WxI+_3jIml4oMDY)iNKQuUN_b zxWJpRBzYl7|Kn67w-%XUs0dz()R)TZ)!<*0U;J-Bh(G)akQk&zhVW814qQosc~n&K zdC@>&*y=UcJHv*57Sl;b#E)FxXYs#Q{i}PM>%K#BCdm;m6?IK=#fjW;J8PSs=yCJR zeqjj#UJrKLc_AZMDzU5h{?p2JeYjF@w<$U>3QVpkOj@blLED=%PqW@-NM*YJXyo9x zRO9}fL|n6I>Ck{{3W(Uo6Hf$n(mOcI1;NIKIb-#fMMg^?gxa4asv|9jb$V<)j+tKd zK^6r|JCca1n?PR|6agGbQ8Jkh<()f3%&NS&UZfh(HH^;MIOm^OsrLPfZNYzP`yS&Q zs*eL~HYHrXZinsg|E~p#PFqem~f3O)YqDBkIa4&)qB(`o)|2^^*=t($!Q;abOA_eFO#4!Ke?YicJhC)X|nUJ6z^_8tm^EsJLU_HH| zu7i&*qJxr*A$SRj5aQ04Enf|^CuPr^*j<>%CRT!`z6|bBrUW)s3_L49GGxMz z2*Q%hE#8BxxHt3CcZ#Hn4{$-;Y{6%<=4U8>7uvfF$LIEtpQn}+%<8F)QC^& zg0wth0By}|$K$U022bD;(z2wePZ!}dkQ)4FMfI?a9%7ABbto_yv3^T%_(K(!!Krc?6+0Aomi)xhQ4j#}~wc7%rst7ecL(B5764XH7^-t!Ylz>>N zRyHP_fnQD5lt722pU;Ndj#!t(E+vCVp>&}!%AQJ=8@4(j=VSM zJ0GW~SmPk0|1vnnn(T9w^y!gejfze`MS(3A%-^o@SXU(KVo8ktp15Nh-#iL_{Iu0N zk`9mNOaFF!t;dtp1q^K3faaN=#^dDr-&^22VU~Mx;U1gMcEZ6I=ZYEEH22blMU@yN zvBO1p5NvJbHo``UBf|y03l#%mp>{!kx(5AQw{sCpB#pnzb_aWrekSwhE$&)>`oOmr z6AyjQ-&@w@tp5R|O2Mx5f>^IENLjh6nHbij4e{)Xh<4duYX zjD}(H@O1hWg541(oZ1A-3TeSl4&k-ob9P*oz==#Z%g+%r=f7<@Y;UN3{fQ6CvEGeK zrk?!3XtgEh=et4lp3H;Fcc)<)GJQ)@8MXiJJxUrc%l#XatnPm|mTwg}f{LWy*GBck z{qnG3bNF*QK{fj;`{_(|J?-UAxP?j4CMrXv>*ALvG)8o=!R}1-*ke8Y9c}a8J$fy$ znHGl@j&uZYk9>O2^J)^<6!`)-i;V;XVWGwnxqsfl7YnA z=P)dtcfF{2>u#d)%iqhAPuKjZl8F62k-5mD-Q-2ncP+jx zNeCmhv#sn?9+345SWRZ*W8Iiv6sH5M%;y%AXX*{#rvOVUerK{-Xc`dIfi*bp z{fSB&Qu|ZGV_PVzJ`8Ek2O4@LE2ih~=%B$jv{%<{&2{66(dDn@N9z2kH~OV@=iElT z9c{ipaog?m^Prr_Q_b9gwBXL`b!EiRMQQKHvAgXCBPD3I=j^MRM3(&8k6`dVbW#i= zkTEbh*hl6vhk{poF5&JAfN?nk@q1T;fN^`jI|G97`{9qRpBzXQyx743^F(V=09P!f zqd~6dFK2CNt)A_dCx2vXvPv)v+??9Grj2p>m#YZ|=Z(8MhKD;mV6Qqnw2kAUD?!0d zsu1j;2LH?7{cq=l?G&X1krbLhSYTK3isl0Rre2ygkyE5hFQ%hLvSBuEQNuBS&Uzjev(u0yTZO#S393mf!(FDj$DBkk7lJ z(U`(77~8yE?pKW_Oh*U-TN>b##tQ!AItNn%N5dM-9K0@GUZkF{Cs}M$zQw4#-F7J# zCFf0V&>GerP?N;(nj16;TOXr>fhB1r-7Bpj+py)i_)SQc>W%if$oJ$^xWA zvct(`p@%l)L5Iy{`0lggSUXpjbH&O(v&;wv`uT|0j-GcyApaALYml#iBYS3q8|(`C zJ~5wszkQ*a?EWfXZ+0?l_~x-oiC$Fx>>qhi3C0>kni>@%{ZEy8q=Y=sV%Qr4!EOJU znYQwH2Blzhc{i9(Vt^5LBHRvj~gm?I4+>x zW$7DbSoXtz3SKe`yb1`!C;5gxak+f^=O@gh9E^n)@%(2YOovJ{*Pf1r-%zJTXxH1} zi$n>Z=YMQ(GLM{picZ?GYe|MlLMjwv{r?7jX&y6~^HUY|Cc!mq2n7KQYSZos|Ne;C zT!5;wcM8shee@St^N%Jqcr9bgAts~u?fd>fZvHG9`EiNfB(*L_&?}W6Yz$6qnpS_U z>N+l}%F|QpzA9qUzxCwv?)@hrX7$E2_URW}T7J8yt7q55i`bH*Rd!cU>hzq9_WVSS zmYAW9(uDhOs(B{mYGW#U5NMB2{DM40dOw{0O}(B!2R1GV>k7KM8~0YoT%%nyZfz)S zH0Ic7dF9JQM}_U!iW^nBq5NU)#v*RetH7ZI-Ed@(yb#LFiFQT-?|6Bo``tu3 z$~JD34Ld9nYSDKEXC+U?2Crr?ZFvse+8nvDce(MgED&#W{Toal{p2Pc*aQlQVexTw zUg(>LhK)ah4Cgck3QxXSRc9`ByDWGl+^i_Rw`*(3<*cq zlu2U*D0%f)K#pAubZvDlF)fgsDgWZ&gon(YzEdlj2C2tQNpSbze*W6>qGwEgeH6@|fPNIncYr*sOWWjrIxY2Pc`h^Y{UF58BRla6!`%MFWELgKuI0+e@)sV)a-^LbViWE)_VxQG z8lH0=VHEauUx5O1`a>b^55fW{ZCeB-I-j#3=~gAKWBRhYZ$g0QM{*fM%`Lvo&$|7) z6MpWKXZ&j4KrS|7E_ftQ-I&$=W^Vgk@#tQh5UJM8oJ1A>^mF0kcKtvT)rb38^0Yo_ zM_3Xw*Jx9+aZHXSK(vb(0`Sg6Opdcv5{T_nN67G1guiCVD+o`(vSOAEk98K^d8Yfe zn6B!;a+zN*0n&*3n2O(rIMscu8F2XP2CHE(z?N!>N5!dV>a|B^@}xCq^NqvzF1wcX zUwAmX!ua4j;cs=r$eR}d_)e6ud$JR?QVPi-FCFR|`n=b07vG!fp`=+i zZfM12y|(aOX|mS=$1W?>bI_TI{T$$<dI+gL_3IJAJ&5UZ|%_DbA4UrTa}+NZl&;PI+QP6#jjaXuZ{CU}^62os=*> z2OA?@E>C~qT(c-*ss_oM#iRSlD`LAm7Qfx?g`bLFPdPvV?f>1yX;o`igF9W{BJokX=c2-dek(UB@9LQ4)~Ml$Lq>d{=*5O^E=@ta;yO3P%R$ z?9+VrVBL*cy`h;Q10xY(x9@MzOgwk4(K2ndIZZ2{ie;%eS2x`d`leVIk4HGYCf!Hz zE+iaRr*@qp=@W@4XV1zrn3=0x#Oo^U48 zJSvQ;Wh8=z5l!A)=WeoUl;$n*bWlbK?&ZV;C-;2ycWMyB*y(>m^;H-q)frYzkJ<6J zyE!D}Ca~K1rNQxt3mg;QmT(+hezDJ1%TjE*rxVpYyEpK;l0~YJiZ|ShNVAj;1ZQCBH4vu7A4-2}3&_%*qiu;Vc zB@Hu2sd5FjT3n{I3I$*hm)!Y8&mO*$=jvHjF?!uScZ*WrV2cv3kfL~>^W6YQv@=AI za6hMOymGqdE6p>=H@!WjriiOIyK6hASiDJjp4o9c)r)M!Ndg0t7=6}LAw2{0qg$1N zpXgKvQ5bj>6l zq7Qq?W1S7{+`qTpZ}?grFyv!wN1Pf*BSD%WeFixe;HS z+oZA6{MRqLu>{FS&J(1mEU0J|Ndqmzx-NcZ9d}Hwg&NZmKm2QizE(38P<5==x-H&k zZ1@B@HoIv3l~RZVJ|i*T0F}6`5pCNFv^vsKb*MKxzd;Q*kJW-dAs3J3nno^#o=aRZ zVmcyd_|e~^syiCup+~C)>?G^1vClA^&zvb2VD!;$lj(oQC z+u2sw{@D+zRKgB z)BCMv5!&K5MzPp(-omVbbIE%q?f3*&?7S2Tji0VilfD;ry-7Ew#|4Z#zwYSqS0a(GH+|6 zbo<-S_PJ-GduiXbiv;9NB_bpR*|7+9*wmTg^!bX<0_VP>d^teUXlc1uR)iqdUeKN) zzS05+r58ceyo+2nppFIMPws?@`}KU7Q~0!9Z%4eX1OEnM_~}Y6eTxOQ$I@32jK>68 z*chT4&?;NsdvMS-FI6!YgvPV=&>l5!Zyl?Zd-?OWdSAC&BI&BRh-s4jk&_r}*yRg` zRWlmH;v%YMI$ROaH(#YC-dqVRp~6fq4Y4N5#U!7dAcBvtx#g{*(Wh`;rGi&kLn4%` z8GQFwQvnh8wVTPO4sVZtlqFoRpCg2DCR4&f6%FGp_F3$})Tdvgm3Aj;IdFmav!f<& zB(J_1U6wN81{tbtT=#<#UdA6&L2@lL~V$vq!#b3Xdl$iLczW~YT@RW z{T>LXqQeipg=H1Vpe_|;kFYn9=Ox`Wat z-ITVP!np>ULfyo@sPr6HB%${8-gmu^kmd;ic$Ak(BP`J@W{ zh~D5-Wc!pdACv|>PcLmoC@k|m4qxHB{GjeyGktXmXiFDTheuC?UBGelpe{!V z*ii1>=X`_WM0tnk@X3WsB2Oqkvv~`nz=;OKu8G%IpN!{!?B?(3CEd3nET;qTJj}a5 z4fQI8Gs`}k=Hb>FKXK){o-3`vrtq{;r|>_9IrhJ|+nQTEf3e?6k-7k8JUc>LsnT#0 z)Tf+fVOperX<7qW@R8-mkGE1m2H37(%e+xE`mbvO>p3#}H`l?&1lBwT{d+jjpPpf#n$?q6C2Tz<;g&@7s!9_Pn0^ zD%kL#X2Bf=MMba$*tz^YK|7g|WMoPYmbscFj}R|%Fxzvq!!mo2a5 zzLq{c(2Sb*fY#9a@Maa1j*{#jkvMcxr5LQybzRmO@$tR_`LTEoy(~67I0*^(8)hRK z>z2sLqi$e8}soBy?xy8m$40s9u{g5YlQtvcL>?Q9bzNd7g}EJCQQoW3T{$Ln(LdXj!dh~o(>LIhCVu`{ z*Vf`8#-^oyXKPHWpz=Tj?S6m;!|w2E0C?BLy)T$|cdUHw{E;S)B2%r~DU)hv)W)E7 zg@*kjgXbSqKi^d!YF?Bzbeli?P;hj7S6D3O4*w9XPv5u&3$vZ52FNuD_nMuXECwZT zPgO6s#}+K)C%bgKcO~VzrMfP*F=O7r~cNw$FlEx=kF!&ZXx$RY> zlCmJRo`UqCTnaI-w^@c7%J@f!h-mLWX&mBGjKQ~z_DnW;yv$g5hl3K%4xiPt(U`lr z@o);!#5UJcAA*U)o89?L(m!3WSCC>s2!EY+K1mC7_Qv%$s!eD}on}Z2eQ;u}I293_ zSVoxy_`@Wf3!L=P3^pC9mc{x_o)fc69=f1Q+GMk|)%Caf|3LJlA8wes&7|Gx`Ra6} zW8T}QFTjyG!dL!Mz$Ef$a}M!3910kVTzNLps>AZW^=!sk>b1yDz$@F*i;Rg4n?V_k zJ3su2craZGBRMHpWEHaS4x^j}V~AP&y+nV*T#l};wE9SokjX&~rXTbrnB0)6lF}&0 zek^1_ul^oUZf9wwlE?w0enwAsy@tK)R;*v0@dTE{5|Hd>j**J&%=)r5l~rLW5%85A&zktN^IB38<7%VTXM!gcuQ8C@RXxc!YLl#qAC#qq zihF1JRS-tnA!r3T%=9vW?=K68gDpfmidN(#UWrOjx+M(C|0ubYNnyUwlC+*=;Aotx zabKqBe?a$hT7Skb zdg3IXWmLr0X)M3J+bWak?vRW>XCDuPMc@PoC1BZHmEPqZgC{f_F)KctX`u{KmI<2W zm}>i$?=)`QFTVK0@D!o!xzqmQwawLI;x=sfCe#K++l60);ZH%+_R47x3 z-v>vs0J#A`_)ZuAn=0&JAa`mnUhfl>Ts ziqaLwQY4Ot6W;UVf{y_L@=!5;5)h3RAS9=z{^*49)% z&pva%2k{He5>znc&Z5{qY?zFwr_p&VVuf?sNy2D{1-qPA@|X-RTNA5Yanx=E)Ryde zzi_EFHTGzJw{tfC>z9$OOo?iD9Mv;lT{Z5z1dJDL^H>nV$!zxeJKZw8!SYz=`V%3r z4O^H3BYA0AOWci9pm|fCg%7XmYvE>TIFgf6irl8nXJLMf=cPuJGrt@BMU5IprsL5q z%v)98+g58sx3kzvJ(~EMs4hWU7xYu3&y0~5{#SudCXc~9&PnCQZuBN8OHqH|4?fKy zuI0t*=!?h)|8uDH);qrs8+_cIV)D_75-w;L1MK`o-)nw`jm+LMbz3*kOo05fE}>w3 zTFf5GGD~qq9l3X>!Rg+fCH0u98s-?+K5D=qyaFju(DEQz@7aUIc9lXJ#H#cUoK9EK z+^pq0$qBmSZzT$`sR;=VNs{3K2Cq-U$Vjuw8b0CYMiTXDU|oXL@Oy|NifWVZEX>^5 zX-hkOjN3DA&L?`)5r`bNqPzS~4L4X}N*EB+u?ds^a&H}F=LMzdM}Z&pA5sb4A-j}3 zG>W2mhiS<^+yZMMhq{rT8G&R4H&d}0gh^=cse0W^4dg!P+H{c}+OM8xFdv4Z32f8! zH(%ElzXFr`qIQ)uowS{p-HKBlxa41vi626{@*M4lrfZj>|<;1Xx z>$s&5lHW0*$H55TkkaG?CGd&#AnxZ0SO}ruae6}cyv$=qfqG-fSoAzGAkRAt4}Ru;c54)UEqow_C5qKc zoD@{~5*xtB*?`mSRn|Hp=Mx}@9oKzKZ~E_e6q`m<(MJ#_8^=|z<@hYov-0`^tG zPbB$-nt7XGXmNQvAY6v5v8OhNIA2@GAi3uf7149cP33aqz>piP9eldK+S!mGp5CD6 zQan4%rLGWHuwzOV8J*&2*LId;=qop?;nftd6w@+9z!`nnnUCoB!Iha&=n(-zLJJ%X z6{({c$Xas{nR3GE{7JOqyQX~1AN?*TOcUr@BhuAi-yG>tsyr#Vf;tohsB$5=AI@O~ z*c?Aq!o3bONq8gqXh!8R`>}Y|MR2<{5`8zk5Ro5Sa(g^7Wj)EWV4#O$yyO*y^z{** zrq@V4aWgs28RTW-L~U90-RfJj)uYaRgeRrDo%>& z4FQfsnJ!s8a8haGa=>EZNTsIav~|-AMPazOdME8O>vx0j8Y5%w4Er`%ym4UTU5hGn z?u;{F9f`@+JT}Qdqd-J@ltOgL>q}9w_FiTNymO&-R8hiY*>{0>;VQgt$q9k@3c?a7 z#ojQ|`38eQN{gb&$jqpGdRHj-F!=Yavr0kxM`ufTsUcd-b~kGox-s={^{{zUY75BN z#J=C;zf@NXV`#QRC{k1L>P$%{Eho%9$sm`4H6 zUIkM>M&8^A%RbA(@P(bt?b|oiWeVi`DuR!1SrZ>8 zt{8EkhK%0x1JIDr1~K*@<+W7xo@ia*FG1{ndJ%r35IkF$;S^vC70$*XvZemv5xyl> zO%t6Qm}zh94}jqUI|fz+-M7?+4#+Ia`* z=)?8gf=01oD)76N)HHafqDG2!1asomjHN)E-9B|sAk+8ShI^%=t0q(tc}~47m6PVC z*$Hp5_x0_x=HFQvdfz$&zZhK@G2O?aN+?47D9+jSJwN_F@<__yepx8@5|M%>UawY< z&nux(iOIV$JdP+cw2JdC$K+jVXIs_JVYz#0icqI znGh}JJkC2B!OF_iL+?Tb>9Il92H{*G|ZQRW*7z;>M9$9A5=Ov z;`OIHv^}2p=QNkT&8zMtHyiwT+^JMCGPS1hftI6D1iY-8=>_LmW!FtI+GPLV{w(&! zym(q>>0{GDUET7G-u&b;JUiTEk3Jb}ysmW??6db*aR0`5NXNx&v(4UF!3v2`(!5zg zDlSAidzUW;Sj1B#Z{NT0<^vCIHAFM}w_<_%qUj;qWXnjGZSJI_rYf|3y8KCuf50d6$b7xFKO~;{tm}N%Jt5kK zcN`YzAI(Cx1G37aXQXy6Mrs^KCx7p$aQ#ZFMk<$kj^>ZV`J)6TjiM86!O>pG-A!AV z#B$)NN(=)*R+FE&Wywe^c~43`t^xgkoT42^-<|Dk7+&gum|Zq#5<(?VF|`e~aU2hA z&ijxRDEf@Zt*DS^wTMc%s^r1sfF&4?0sDI4W$Sn#T`q!)>t9%SO&d{sxi2$y^Y&fp zs{1f=mHT%h8Pnc`M&7ac4Y;314Rv|Z9?@J+1BjhtikX;NpX;TTZ$E)#x=Ze}a$#ii+{Eu4y-ZecIvYVpcP zs1fscY9P{dAIqj)>9gPMrq(lE$bn2QXufkb@d5`2hcg94X@8HFED-KgJds-l)_+IIw!YA`v)Zf^K|EHcToDmvn!Tpy zgPYGUK?}J(*d}XUfA8|glc=Z(QP$?0xS8@aZ~S!A2Y3v-qO;at9ZdI>!<$AHO1SR8 z8abog#x&x_t+(XKt!Iv>-&&t)dbZiqiIG-O+$@kP&N{G6B zkEB*_PshU;9@Ma1Kl#oyB~MLbct|Vt3p?Maae&U4O*DeOQo_^s9sxftcC?!^0~xPt zN?W*-UVi|m#+pD7`v3>0oO$ZcjgBbOKVKmg3sAehFTKSXYw8x~Sm%{Yf2O|ZwnM8^ zTTA%{%~X#O)833cUDw~s(Oj77)IQ8{0tT!ui^7Fg{jT_hd|vHGuVgAro@R}06D(Va zua3-ic{Sxg6zd5;SJ<50?DrA|764BC_UgcfBuCWnwA)f?q2}T{7qYl#OO4BZWA0^r z3ENtSP{#*2A8{=f@gZ5O*1cW{wyyisK+KNrQz@ERrH*rM`d!>+o5pzzyRGZe?hg_% zy!H3hQVc`BGuHjXXUB6NE@nVi%vy?|Y&wQ|!dpE4!x1jFGffH(j>>a`TtGaMRXiLV z#!6gz`;>1hr8MI(K)mtAsf-YOvPyFMBgq=RqDfxwLk=Hs9t}QrG&sM?0OGR-YkvkP zT=EQscM3Wg@RsXwNoF)BbPJ|Iqy{4&sj*1UCw(xjh9ITEFmJVDYMztB;O%sysaFiUuqEwJ)P)!05R8T`a$+h>1(Mk9{6 zdcKM`(N(;5kC6=kNvJl`3c6q6&}~p!msx$WJOeh9GRQvlOqQ=DO0#k^hVk3&rIOjc z%w~;iirfFW2NNpWPfRv$obB_J_~4z@a`@hRoj9B83FgXewffM&u;N%%DZ^p6JxnDeYVlJtvUVmiU#mnaIhWJxU7!_uyoRveeNkxAcHnSD z^lDof=y&3&mc&7K()*Ygqn{S!qawK8a%{DkEtJ}a#QZ=OkChWv*SptTjyJrAttiVX z*S&DUST++bTvbc%bfv#Ol&e;8Dvq^8mWD}Fw{^#{JK%f_e`-rB{LN0Vs1S~)wePD( zuYZ55{fqBMHU3KADV+|SXH0fyF=Fh(0F9Sp)Fpn`E6L?}A$^kHQzabpC2ppp;@542 zO0Er_@+88`=*|^%N9{scWpou(bXz=ZTC}aTKE%>ftvpzU$xgB6u4;i;SirsHy zik)~G>sh~|=0n3iAg8@^9s--N&-Pwa8$eEt`rdo7lL@R5!#^?)h;u*kgW&6&<0P&7 z^Um&01-B0GCS78Kp;5MVsjQ8)X-qcgCfE8`jLc3gtDI%r&$*YYTwj z&+>bdEQg|N8dSk$zeN#hiPQ@l9N^Pqr@>cDLk_hb{<#jsi#v9K{LG|_l+R`9v->XILr@a@?-68mh z@ww8%(8D%Ntl=_W2zU>30=F_k}oG>Vu zQ0GgZv$T{e!-O5wskA%w>+C~;Db8b$p&w@7<=v~yNYOj4%enkGa=Y%z51c$U$u+sw z!mHc4MdLmIVIbg_>*jxBo{&pRj@>1AJ_f4oJM$UZilvIQsH7YL_P3mmU`{5pI$ zoq9BiP3J_s>aw9#yd`>US^lH#kjmn_27FA12scTl$I`%AD~{`GLdz8p8a^Ng8)ygq z_FDze4_YPRZw~KHF(M_CZZp_xEh{_8s>tmKHkuQlD&GenBQ2p#cLXM{P9z$UJci6l zb-T}ab9$SE>T;fPoDB18S&F709*8QP9y!72?y9TR7ASK>mo<`4dHH`|mMJux3?#M; z0F1^(&V;tZJuBn#8UTVCAgdaws!P8>LixFux~(1;c4dV#5630#D;+c{XJi4FqH2OR zU~seuOt$Z(aqZ6A^%drrBl&c{V!7N1we(*%qzqUL^lwbs;@)E50*|D-A)5~pwWezf%>sB-`)2TiA6z&#MHkcC32Z*==Xz) z`7o6#-Tg`%%0kEq_yOHjhbC%_z9m5vCyj(S-@uQ4 z)7{jG?75VRJLd51{#g~g4r@pCavi*$%Y?PaHRLhLvdU4x(hAWp`+`VTOjw0t9m%a{ zslS_&G#Kxf8IqjY*g#359JyO3xLIIS)?ZNw&J~e~LMr5*T}*{wOn+Ay-7Czm7Vr-^ zRRiFalkD1Dbk%9{~))Ln+0?t#FvCAR5@YtoKV4I_cUc)+sWmBUo^J zV+Ta{mCb~xmLj#|v{J?`z2fU}I9&3Pcw1`Ko@k`6bq325N#n7%U+>WN$Wg$KyzdQF1e5P}KuIg?NI8$g z_vUXrjG8gz{wmV49q)zF97MCafS-MUfYcyhss7hukF09p%qFM5ZQnPhSU0QAv{ax& z>~wx2noMe{SPpmf32Gm$!?xxsv1|DH9zv|6Ldrt(DFy8b&Tem{hMS)H&5dpM%*wp}VIDQ30AtSR5Q{9p&Bz$c zR$XZ!!bbGqL*o4gN>RS@#qmyjDh;zxJ?+ zk^7j^%>;h6BJG|z=*2WwHgv8(;2s4BIfb35=e}*HZxB+1+8G56`li2z3SBj*Ll&EV zRfc*W7up*KSyoZDw~CEBijm#%(6tzqsMnY7NA-vs8~?J#~B_X zKJgN4%nd8`nqKxbKxug`s~!Kaypg<$wNOJ(ZKTLZWtgTaHYrbDk4#K4&ZoSb5)MI0^4(hnRhP7jbKAam_1?Mcv*@M+ ziN^VnxEC&v2)r6_reBTdIf>F5^O^kwPcL%Hxs}y)x7*yeV1D!`(B+G&$%cmMr)3o< zmi2CK6PmLHnJ<&m5$xm(FzP!_byiagQH|+d^Pcup>z6iU?Gx?*AE$Dza}BW}R73J6 zt3jluBd|BnZ!&ObBCeqA=2Rvlzs^s9phPorOmTA7#w@wl*WuKo@;rNIw#wwTb}}Pd z<32!+Bgh=jEW=AM`c^}t(tYUMVe_tN^SZb)zoQ=CVgGg&pqx= zn$3s^Vl+P0Wl3l}tPI>?ONl0WRzFd!)s3jeM*$V)n-9c>MQR@l@04ZJUFK1tdx=X| z=Pc^bL#fM7_k3O3m7&jT7F-`$c?Ey}4#N=%Y~slU7X4dE zxAh4mR?hHaXAyAe09P6DU?JVOg!dPpnHysb!2Wy9m4qEFPL7GAzLw2jcN#nQSA@DR zo-9;uicQ|+pLMb`4rs8f^0vGDQy<4d3C{9mdD1LsVP#{jUju5`W)Ii<-KdzwHcq?$ zs{&fH@35!uDv-IoW6xpPCzc`-omXu*L!T>EPHm6m-ETw z5~92HOB-`QZ8XMXN-dJbmiFZjLTvSKrgDlT2p#Mm^s6XnO@4^*Fm+vXXqsM#^3rJJ zp~7=&!|YLZ6$EfGTha$zEqc1^A|zCu@4^VTzBbAqVCl`4ny#pbsYTu?Y0x5i$5;vZ zxp)Md?VF$sPRDyAs66z$DW0hjBIg=mS8roq=arI7P_G_;N4>i62?tkp?@rT zX^SH|_%9wg_u}&;NPvF}%BnZ%4HtMx_D@F{d1tA2- ziTa)m*a!vrcc6;k|NZt=17R92v8tfS(#0wDzxfLOFDK?BHWh0?Z4ne*R$XM1d@6oY zwe9LQ*x%rBb+m1;&2nJ!S9Um4*n~JIRgN1o=c8-C4S?u@a?jdvo^-~LdxKAFcL)bugkMEsR?s!s)Z*ViWs==ZDhRRx$?Y{IJN zZaKr#d^~rHZ2jERbZcL&Zu;A?c(($q`uS3>+GhneyGb^0fhPcge@3w7me;X~c##r| zF63je!MOpb5P;#9gK8`k7ibI)7iW|pV9Z9MD+!k!h;bX#6wh-m*CiL{7+t$=eefc$ z{GV}NY^y`n>-(uCQ?2Rl4|el!#rK{Y_^M9MnP!W%1&(C4;4D`pq6Wx@eKb5=qa#Kz+?)))ZsC zwBlNE53>wGOn19a_U=dB`D&wZ)i-T*RcQFMenb0R-G$t|EB6A+NZ!raLectY=H_9o zGO5x;JY3gNwV}e@exbs-NR|(98>|GMvsah&99Qw+Eg+BC z6aiXqH;ShJ1$Je@S+Ilgk;v9Eo?#v>^)5qf`0n$RT!7%Psv@@s%WFSbFAaW~i2|Ul zqd-Qf*7LF&O|PNz^aPzV6?h}a-%=-WT|3wS^{!f3x!bNa@e*)#9FpwGPxj2C2*GJC zc^(ZJQ6@hCUTSjG^krA~mw;uTmn9cH3{Rh60_Xf#!f#m7ufH783dQPnIP)6&%ozgy zsE3v&o=7@Nqyix213F6|lSpD)+^j#^V}m@n0k`i0{nV2H;Hl9tW>|fr68eX5b{1?` z&%eI;kVX33x`f`_F~~LpB<+g=8icEoTH4)Rm2|5|l?rAsaE|oj!z&bG`MoA07i>$; zH=(~eAp-l|j#zr>F<9&sFJGRD)P)saiA$MiV-AURk&)%0gg#8A?wlPtJn)A6!H&<= z=5n_Q=9PnlB?X;lR?}JVg7W)%UE3Hv$D(kPWAIv8^_q#09V$a|BS%l-yb2VkGDc!$ zH^H@VbY$X+$gu9@2TNoS%Cgs0ogx$RJrQ@|z~I)Wq^~6p4mJ0SwuHFzOarkPN|kA54R_uUv)p;BzE+{$o%bK zfUU%OH4mMEo0Wd$NU`XV4HQeg&iU2ma^4cL)A#!{l6cs@5`oZnF;9~;(JRq1Vkq35 zB)0WbGjwB*xjo%HZ|gYt1GqnZ(Yz2aQp@j^&W-EbgNxoiD3VnPQ~Ce~8rhyXG}5SR z@~Dlez>$^sRfkfOw#`ydlgEF2tj;nLh=xgwUaY1Ybc2Y@PG~5-kM?z%pFwoP(T5qU z&a#DsE9U}=Da)dH-@~?z=@h6>C`I!b>|UD3rsA7oEv1b9n&>>wI)yvh#?+;aRnRys zBLSP$&^Y}8dmHpg&IUR>^KHaPfcMab<8hQN`0pQnvF&Vy+TqBSt)G8CTG#H9fou4I zQ;<_%mD1tp*PV4vq4ZuDjClc>;^JkCuxgMoSurfBLDyf^0RS-2=uLYg(PdkOZcwJW zR;6GDhwdw0Yl9*Qx~t*1g8uf_IUVHih7@=>QvNM?7@SvuO3BIOkG^bkh3~<@@@jBR zq&a%D0t`~0RZnUir8(?jsw4(0HveNnZrBYoOY!-CMO&|i*#fV+RtimEM)jC8tUS2a zZ>-MeCL=gs4}8CZLqXqk_>IFUnsOYDOU6*X#yU$tmf;I`XtQH~uq_lEoMgHs0|s3( zsA;{jb@+*of3d=^NOZNQyGq91y=j!znAeo9TqgSXcR%=iJc6{_ zRUxrPls5Ky39E#K>$oaZAB!c;9$m;5I0*(#N!!iG7CNCv*&Y_<`ZTaiMC^iY12zYJ z!1G4nEP&IFP9AYrQ1a=+(QUd-MAF$HY9wACkXR|R_Jt?qo#l;JVi&E-^Otpmwqje7 zef+R4`>YDpyePB|a7m+4hp1BbxZ$A2*m}Y0Xl2y!J zKW^`&(^$pldENJ($oGupr?&e-oPW1#CNZosbQ6LX2Y(A`cKIvwqiNW>CWDWU9*nMQ2d$pZXSQnMSBif>uJW`-WbX*^>1Gu zEH8I=Ble;h*5)$#sEtJpJcZ zU5~=;x}O;gnR^BC&o3J@sSTA|ybFFb4$cgI+!9OqESMHajeq}-9)!abPK`erL2>=g ze?J@f9|r`d<9|9l`HvMGU+b;pyE)dFCW8k4oU=H4Q-O>7i4U=dKmYrtw;MzWt`$8T rMsnMKb!77&zxpq`_5ZH|-#P~O!U7O65qmsx-P>0R>hh(srUCyAEof$? literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/community/contributing/edit-file.PNG b/argilla-sdk/docs/assets/images/community/contributing/edit-file.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c76e535d7f069ad0d819c0d9df8626d0345a07a3 GIT binary patch literal 10365 zcmb`NRa6|&mWJ^l!Gi>c;2PW^XmEnNYjAf79^3+rli=>sxVu9`<4$mC2yWB4_s*KR z^Ds~Mp;zrwed^Sz)%)!K+kbWB7p2eWs6?nRFfiz{GLov$;~5MLEGaS)G(yYOql6w{ zT~$Ae!&FU@96|>OR$_``Ffg_8Xip}H&@qaWjE*Y|436915A3=nxfcu!J&vrTn7WtY zX*Qal#(ehqD+(5wEHZ4;Cn{wlyb_8_U{qAoPrSwtHy#4HD#iIy6?u)ESG8*8u8nGq zryZ5o&ht?LMd0_RF>!Dj{iuKD1U@thN!HxKP;c4GBwQfFi47ZcHG-F|aXiaE%(FXgbZx6UrbLdLUtSw;_6AzJa|5g34}CJOd}K8& zTI`nE8Ja`Ue%+j{>G2A1HQ~}J9q`GLyLk!w{Fx@D*dB@_ofD@ukj+uo)Uet59aH{x z=H_tja~!!S>*si~`QAe7mAKOm7ZOTB&r4K+12_TmPl^6T(}-QF&Q^t8|#C{H2-@=m>+;uuy>DCk0? zYYAxcWQKxW$DJKK5^!_jEQR^8=OLRUSC_ibak5%iSeVP*g-N}%01m;FJ81Vu_Q{B} zuHbrBMix~;o7fi4HicV?tgiWyemtpXQw#~WZlE9&=|?fmjy<#cix6~L8vd38Mo;;z zRCFSGfWBLfy84e|t|gbvZZVzfNr8K(ogv!7$0U@k96|3gg$%BNipJO!rj1m0TX0(A z!Y`-#A8y2R%`d-+XBQXgSDGD_48g%$&!NABJ~|E%y)6h3bQ&h0Uw1yhhv$yKd}eRqR7jf3GDlqOu+XaO-YV z8QR!jjDEv5qmukW`{DB+fIs)Sd`LT+e6F8Dj?cA!GI*c?qTfK^&#KtYV!TqtcV-t1 z2;q?IE2^CRBBUyvnu#EPPsm?+_tUSvbe%fE4yo&#z)lR?aLrcV2RhcRym*mob<(_5 zce@aKl{ZI6^e&RX!`se<;3A?V)!R-#zY=XFL9-g!3wmL*&>v*WjC#j4Jlc~jXFT^0 zh&>#J%d3u=PHS#cHULFHb)auk49G%A+VK7Gn=KBjiMaXv-tl^cRvK2(&NI+RLgCzg z1B-j9z3RQt@-U52r#kD)?AsQ<1+8nE@{ejSL-!nJzxM|h zzzWG3-qy~XgN943*FS&6kq|op-i!?=J{OuWt?trOEO#Z%HN8ZPzwW)xn;gEdje@I5 z^4lHfvAHxy4m51rR41?u}=nG>XcVV`%_S_N+i*oMSUUiTZUWxgKFxuP$ zYAXVkc3)lcvqU;Z&2h#Oen}|4g~;JXV=F|Dlbg<}@8eW3&6&#pn{H1sHr=~f=JG>) z>?Pt!>)RtG`UWfOs;xs~m^r^%nC*h{vg;mLfFm+j_=XA{IqpFUHUY}1_xBTZ?t8v< z=RY`qa90433U3ngQ@$rgv}Sn9O;CPcViI(5OF5a#4nBgR)s&scL^Cfh{e1LFQSSK% zpf(lietUUquT6Enkm<+0Zg}%s>D+(GUKRN;`}knnfjg)o&C$BY-OZHjt453?Bfh5kU|ebj5#Nr*y*&|>-sJ+^wU%Y%Arol z>iDaSjvOyKt1d6x4GaopU8Uw!_pYWA0g1_#4E)5H{jIv8v{-i;MR4}Rr+-y4N3 z;7Z;}V+%@iAH*XZ(j7!tIJP)$g6Fu*lQ-WD;Ql@Tm3;U&sZC}yD9t1K2#@Rf@@zR< zRp5rnMQPJT{SZ+r)4e)pwsy{xb7YTT1Te(-+JYuBFp(*elr7jKFFOJw+!OL`N&B1L zj=slz3WvuD!E?JYJp)4`=}PmVKwb89F=;LqMg}lNW*T42&|6~@n;Lti!BElTi}s>2 z2Kmc)1gk++o+(&iOhZ5Xufo85@K~bYcA;MSfJ8%!Du)Ot=#-LP?T~^llYW#D4Zjim+)@+!{Y*-+f+0y3GN~JFkf`o@<=DwfFORYllij}h(_UpD)_wnr| zu4YSBBocJ9L^AqRm|9IpQaTe$>=2^;Jl6wLnQQAQK_b}_VH6-cR; zGxj>8|66VMIYS00e=|QZ2qGG|_dCikEXZ5Q>h;GA{++#Oq-6Yx3|GekkHC-VU z&35q#=zV|BSjAx%dDm-b9Rx7p-o~9RU?Gr^*E%~uQP9428 zVoKSsN?CU*2b%V7@565pv-GmevW`ohR?#YdPQrI`qR)^CxD8X6nX?#jXMKUBmLW?{ z*a$&%XQ{D18eZ*q8Y9ylnzP|Nax#?6RfCnU;hw^ck@ttfZd@x4(_VsoJiF|zK7VtK za*cLf_5W^DY}no0-kaC>sr~+5?wz!2ZRPe4-0_Rxc!06IZ7>{9r0@eCCU7d6QCA&H zj$8Ln_tQDL+(*TxK?3q`O>XJvV^?FbB9t( zcn*(8KP<>8R!G%f_X`%dlz{A(@>PHRH1B3$#gEHXn3f1tf-GuFF`{olJK9wnQ z!`_`b3H*I@px)>0wQ>?8$DTf}+UanK2u(S~Yy3S%f|S+$<4*)pnqfR+&f@5UADYCR zaqY>|OT!XUL)8<%!NMDV^(|o0O(<>`+0--KOVt}{Mua_|j!wV+1j*Z`n$jTSG7kll z9{B7?;UtR0q zKFBLKtsg^y#oShroB7Nsd#(H@;4KNCjFy|EhRX?|CH9=}M|?_ZVPg{CTh@fmQEjSD z$Bkl__L24bK5gAFJjXDcvnCsw)%rnYhrw}MvFi29bexly=hAim?^sE)NN?#=0_3_C zhvM(ewih)L7ioUk*8pkq88eyWm1jibL}rJ{^KoZW{;(VsJ8IUn_4s1c;8)C7&AMoe zFvtP9lZ-%ZT{(3{)+mQQKP3*ZTmK*{h%vzWLM&-kMZ$a(-^9hi=7_jvZ3UHFW4TAk}No(a@=lh-F=d@_~l93_gsoje(605~yq^N7MUP zY63GYv*DCVkrT>@VT^k$ZZ(E8Z}f*yb5fOUjW57ZbA}g8T)6FPQ}1`IluHUHx9t#l zR6v3q%^jz1C3q3QPOmRshp$}74p{Q-ArF(6;W6VTCfuir?WLiXk3@HbXRTLpQ9`*b zE#4oS-5WC>{lP#Rh6SiK(^almJ|f~4q*>M5pGclRuSj%1ue|MxYJR2HGITFw5R<{c z#;R;=wVWW`>djbp+Cjf854=xN;PY+AaNS>}_O-c9!|BJvXVx!)mxbLJ)`c}&icD4m zOl8n?1zusgY)KJh`~U?>k@7lZRT#8s=6F3hCo|UB%rmxF-q`6p9hoMJ%V3zSZl_sy z3}t>(!agem7%*ZA-Fd#PChe}LiHDC z4tP-W=Y3jn$fgT?xyn^kI;zm=&?O=wGG9iVQ_b)a*cs=%UIfR5v7_AYAngeZvZPUBh^m7x_M~hd%qOx8rU*daw9(KhSn2 z;8xJn8r;NU+$M!aAp7-e>3HDpLm(1vQG2_-L(4V(JtPG4$ob-_`1csJquC~cB?9j# zi%`Z!5IsXKg*`V|@FW{O)&`Rbne>GNpCWPTnhxA9UZ&qqw(V&eRQbp^I^1=6?V9L7 z7ErUpZ-aN9UJN|bD}|O@EAj9g24lSuf9L^?e~ouqdaPQ(R$HGS%{lY)hIQDknW4Tf_xs0@MPr>V>9Udg+w!c5 z5o9l6osGMqPtT$adJXtoq4HMaAmJ7~r^W1Gd33OV%=5a>+Q;cny0{tcBPL?7ql>37 zv%C(g^p7HI`+%N1Vh|X7Y(dDS&9y4oE8XePaIE|Lv(EFy<4UK0CTqxTT1=Be^len! z8&gyqp=ucSu#E^|wx;}OIDCR^N|8)sI;nTd1~+*@GAp6cRwbM8j}YYmDuCaiJng*M z!=J;;gt~@J^7E&hr>)yAFhs!=F=n0g%v^w+Clm?5ibp{LBOfiz?KJ&q?IWeQZ6XCD zSF4kiNi8~0VohT15yTC#rpPJrG>wa}NGaP!t`YOmJJ0o7d2DOj^Bq0{vt1ew3IVP{ z^M*&8M@Zn!RqhBPfe*l|NHLRE)c0Ut0Aq$#uSsD@FiOkFyD&^jF1(SW)R+a98KXb? zl;R6Ak;A@@*`T#nYf;glCuQHKn#xl)odB(n+pyYV(&TXX!4juxPS|jq65JgtH`FbN zzh_@^1xL%WnWpoTZD0$j*=kDQL$crbq+p}q)5QnOv5AdN9Ww6|m1m0G*K6fh&{iIL z(xgS+Pr|;?HC-;P8Ymp?{2KdHRwN3zAVeZTixcUt9}WVXER{Q+~*{Kork8jN^= zAWlr;mf}|Xo1v+-jD#h7@Gj^)^;PNY;pO%^q`VNlgxte11;;6Qh5h&`;!Z5FS)9@fKSF?gh>1f|zJR1l8&b)$ajh_72@bEJEA zN8i(yLfgzDq(L6I8N1O*Df+Nae)uMI?KS_gkzOD;Dhkz~VK}ZDYv@gMtx797YbcC! z9%S+1WG`)Vob4O^3_l5{LmeVjIJcd^!VkCCMLty2G6yI7kIG|~3DsN@$nENJ{Av2BFWHfA| z&GU4YDKz2aXI+^bkNx8?@peYU8xwwDjlvBmU^XCH9{CVK==9;Qe6eiR+S_GA#b~A0 z2mK%o8e~GGh^r0%p<%`*eb704;$McK;--WpTB)#wleE|W%m|ib&=)5O{i|WJe7uDm zP?7t`s64W%4LTJ=9O}rS1~G|4Qv71ncq2n3xRV#W(e-nW(T~6U|QFj+L4^S8yy`jfEvEen(Ml^CAAIiGg?*prE537 zXPts9w}ja}Ki%dTKY<$kbJ~4e<|U5 zk7z-_qF*rJb6=s8m<=Zonl0#QV{2%rQZ;A1CRRk3W4soDPEISop?!q*963Y|XtV{} zu+!Cp3Ldv&oWvG6ba|JQ45fnVoD3?N?3bVw8{gJKqi}=a2RiGVH`Zvk7`(-G+5Ga6 zZciR_#n-hQfsP!8X_IbSFaHsoG9bbGPfPxyC=rL$7ywP!@wHeQiaBpvq<2Ai_C(ikXyIv7ReA`(LDCT+J zdR(o1L>uz(;A2n2ZrQ)cPI6-L;YWyjh&83U9vgyzx<2(BTgzgb=4zC?Bh$6-abZ=J zQhZ0>5U&m?=BlN5FdvP+@!B2~rKsJLVf9TD4v1<73|$_2b&RGR>M99>!;ObxNy`Pl zEmZjG1<8|en<>dqW#KxE8{|+3Hl54Z#2Od!+AaQMn?vX#eha=`3iMydJqUIWOCc5U z19I{3Jira$1e5Z+m`4CdU|9JDVr{G2cpRuulQrXoZc21MP=~wrHlA^OZ)L_sT-^#o z!#`rrClxgn(lH=qlhoGHh8VPY+#hOA)4(HHk1b*wlLIExN;e1w*KY_ZcP-=r8LFZE z!`pLD`Q8^#=d2UBX|t@yXdBmZ7u3dZP)`DAAy7wv6t=!*aMw=RZ2 zpd$y_ulLv1<4vZ={VeKz@%sosUKdcl2+GL2No3xq6K!Hu?=w3>(0uACjAYc1D-W3s zC?2`zIRSzICnV47)#olQfK$v|<$q>(u_SOP6w<_vBU~f!7CJYqz=zXATp-wie{dif zorA{f+tAO=E&ZGOwoo^&tSqX2F&8D^R_#Um%J1|n!X9?k!9sf8zvSA$;}FgiyMMB6 z0>0swTqMKXm$Qhm9a}Ps&RC?P#&eMaVl6;7)|2zc9A3eOI#p3F0cL3SP}P3beseBY`_{3!vG5qC=x49L$8Fl=q}H}(`SQ7)p;Xmbi3JlyZ+ z+)70hZwfyQfACQ)XA1gQZ17Rh^R4CqUlSCL4GR;w8i+Q1JMgp zhK}06MH&cAbw%dKlIm)(Ci%|J&t_wIR%PrY4E_)LLM&uEQous769U>+9AH1pnGj_< zg;nU|LlVvG^fU$7(6cg-;Z3r*)>NmiQKu{tGY@U^@+J4MxpAFcUpP94`w<8zFU{9! z^?I!{$(Y;#-H0mnqd?ZE_ZH)`>sKLdjq)~QLNB|xb#_Y}rRC+E+|%WjOdMhmF(6 z5ZzXO2vpE%mg03Fo?Z;(vd0MsS2VEV<`0+ep0@l!e9Wb=7Th zxRD=$<7kvjrQ1(Pw+wMAGaJ0{T2{heLdol@CSpzo1&DlsTo4M*G^s4^Ncd|Yc9_qH zsy&m`V#A2mq>1Zo3nhYRaW~Mw$?~rwPbYuaXW}Uw`#2zaW-RfrQTle z;N&^+go-XKS~?oSD!JmdT_B4`8et*Q;pmu*gK6nWdGo63;F+NKIirC%4y8u2!D^*x zdg<}QlGG$J0Xnzxvq?oXAJI8m3e$U%R}+P(+OJd;)`A}B4iP>{GdcDv;#TMJ<^<5h z*Z#R?lLge#ArV}Ez8PwJhS+}`S36X()5IT-Gw54E7^+kGpS7U^Z3N#xUf~{FDeoth zVT2i)>0MN3UYvW%~Hn-k@B`46W)&I(UVCV4*R z5D3*^ta8aiu*FAgH#4bHooIZ;vK7my$#wD()-0T=j)nImbFjb&%?A96m9Y;!ml4W2 z3SKRU!Ck*YP9N%2oJ6sPlESs0HM#D}3OnL5kDAi+{&CawoRkFS&}OUuy8-^A@HXS= z&E*XBX=auU$h>_u#p|&C-u5qk{vW*jkDOU0*@Bu9|L|X+pvcK^y8mxZjXByR%I#=* z)ek(!SCxg1=5@?;hnjRGxNi2HMU)W)B@_ZU;A_wu^S|W@iiiQ)P+uk8_e%dSLNdq- zpy}>a^}OHe#mf?KFJsoP`Qp&|wMzE-?$>DME6DFXk6)UD%o0+Z=d$k>k_P09IeZMK9LUyc;benzv>|HcNao~lv zqshd|w&y6u!fClDgm(Vb9i5V0o?c@Af*!rBXs0!mebj483ex)~=C$*MVOI$t^v$@B zj*(F{AaW53VqDzZvQQM0#b#h;{=v^Xkw`9j_md2BD%&-g1ZrKJJ@jBcAw?kthpVdV z7hI`eu->28S~goB$iRE}b(lS3wA{4Xs^REkxqT!A%XSd|E zcJcipr*FT(R3>b^)iibduL*OO({{d)yYh@F@(F^3BD6PFI#SvM6V!g!8~t+UGGC@~ zdGI0r;7-Hnxy;Z|#5T3*AR3=__8!Vk`mVr(p23iYO+sI&7&>c;kWL>|9>+gddD(`E zV0aNmrm>rapD_myeG~Yim7ume~p@ zws2kv77p~5YLQhr^BOjYue&V$X1}@orj{)1`eSc*uo#w#MEIsJQfWJ#9X#*tqvx81 zOMbfNO8XBfv_WOU>M6&&c6btBpzE?)Td|bY%)(WMub0{KM8rkM691zEAcPQZ&~XW2oxH-AL)BlorrU#u%v)tg583xA6lHlrQL3Ta<9oplv@JPk zG2u6n(#>zo5kb`^2U?mA=91&MSyb!o}9G6If`ljA}Fqw{pGC^g~`*y%EpT( zn#jDoJzsS?)rqVdU7mfVxCI}jzTis;B8sw|_VgmHQdY^>QZ3GRBF<$Un-%)$>CNCG z!5+|(Hi2jvJX&$#V~*40$D7YXST}a~?SJZW7UeYB`Knd+NjLfW`T!+6{aLW>(QfU< zXQ7;C`hu__Ix|i?L22xID4vr_H`+eeM>J5-Sk8Sb2H(T{k!b2zKJ}mhYM)54^>MbA z@Tz>C!9x(N+2rqLr(%&|JU>hvB8#oBs*D`Sd9CrvmyD_-G}?f6htAh#g225V6wYt# zx3RndV-?=nA4Q5w*nK>y*^GU!L#ptU6qQUgaR8_nG|`*D)7dfB`NN)cO*DOBWFqi; z6?~)ge)Hi%PRobbHx4@+YY+p{<~^*Bk6#C}Sw6j6cv#vA#gov5CY4&Qh`(Ee)fGkR z0_{(yfJ(1ZcTG^364o_B^_(H6Z&Tp?&_eta`Ve^)IjgV`g5IP@Z%K$Y960!$H*S&s zV!JPxwLU}dX9PL7&5uF*qMj&-mIu?4r&>pEy+_Jo^a9js z;f!*qNu8DLGOj^euwpV``=*&T=&zR$39g_m9s-5}qsVp~9%Z8EiFdY*Vx7_02cJXn z0a$e3bJhPE>XyM^r=Vo;-&O811_~*n3G)A*{izlx&5sl&{~ax~Av5r@A7$itMs+4M zp$gUq)C#h(=fPEDj0-gLzl!G}O$lBf3EYuIJ|ux!{i?^BDD%lSLicatNspEl4HhC*IJ|B6t@6EiN ztP0A2ybJ-{vslD*zNS@H=E=Y%g(coZL|JA=+(=w2>1?yI==+Z)>OQx}6DUmL0x|varayxKtBN->i*9dV?{cInTMj6Z;?(G3653IsT5D(=8QTH$?h%!&60@kS z6A1uCBh;HBjOCMw*CAID$&cNXx)-n~8e^v%R&LLi4@IeTrIk3`G*yg%ZF5XJ>=kn2 z%D$+mQ?^mAQqkxez>bzB)Ok&)h7^`bR1X>o!Ocv|!HMA}32UGBBUAV9mExUm*#72G zE?#=;7-?-flVRG5k?f#Rj>8lcF?^PdY-#+O7Ue_q5vEme3kd>U10UbZiUSGLxG`p({*L#UD&avL8n%M+0?m%z#x|ZF+g(+nNlb2Yd<7f z8&^rT<~z|&aVpQ4rH>|_J0UjwkE=2I=TbcFRRci}`Yla{tt0=kFr7SOg?3b<3Q7nZ zo5W``G&~5J_IQt%AVfr(^U3PQS mU<3I`LB7zeo?gDfBJ6Ksp?*Jrh5ls_MpjBmvP#@I_`d)(J3`6; literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/community/contributing/fork-bar.PNG b/argilla-sdk/docs/assets/images/community/contributing/fork-bar.PNG new file mode 100644 index 0000000000000000000000000000000000000000..6a56193aa386b12067e916f427d60d9482e8509e GIT binary patch literal 13792 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

!$9Q7c~RA_xQ*8rB_kw^wKiu9&ijWbJ}OWh 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

`wFU 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 literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/assets/images/community/contributing/pull-request.PNG b/argilla-sdk/docs/assets/images/community/contributing/pull-request.PNG new file mode 100644 index 0000000000000000000000000000000000000000..db4de070e8c65013c7844570d8b474f919d01efb GIT binary patch literal 117557 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 ⚠️ Never work directly on the `main` or `develop` branch. Always create a new branch for your changes. + +Navigate to your issue and on the right column, select `Create a branch`. + +![create-branch-issue](../assets/images/community/contributing/create-branch.PNG) + +After the new window pops up, the branch will be named after the issue, include a prefix such as feature/, bug/, or docs/ to facilitate quick recognition of the issue type. In the `Repository destination`, pick your fork ( [your-github-username]/argilla), and then select `Change branch source` to specify the source branch for creating the new one. Complete the process by clicking `Create branch`. + +> 🤔 Remember that the `main` branch is only used to work with the documentation. For any other changes, use the `develop` branch. + +![create-branch](../assets/images/community/contributing/create-branch-together.png) + +Now, locally change to the new branch you just created. + +```sh +git fetch origin +git checkout [branch-name] +``` + +### Use CHANGELOG.md + +If you are working on a new feature, it is a good practice to make note of it for others to keep up with the changes. For that, we utilize the `CHANGELOG.md` file in the root directory. This file is used to list changes made in each version of the project and there are headers that we use to denote each type of change. +- **Added:** for new features. +- **Changed:** for changes in existing functionality. +- **Deprecated:** for soon-to-be removed features. +- **Removed:** for now removed features. +- **Fixed:** for any bug fixes. +- **Security:** in case of vulnerabilities. + +A sample addition would be: + +```md +- Fixed the key errors for the `init` method ([#NUMBER_OF_PR](LINK_TO_PR)). Contributed by @github_handle. +``` + +You can have a look at the [CHANGELOG.md](https://raw.githubusercontent.com/argilla-io/argilla/develop/CHANGELOG.md) file to see more cases and examples. + +### Make changes and push them + +Make the changes you want in your local repository, and test that everything works and you are following the guidelines. Check the [documentation](../getting_started/installation.md) for more information about the development. + +Once you have finished, you can check the status of your repository and synchronize with the upstreaming repo with the following command: + +```sh +# Check the status of your repository +git status + +# Synchronize with the upstreaming repo +git checkout [branch-name] +git rebase [default-branch] +``` + +If everything is right, we need to commit and push the changes to your fork. For that, run the following commands: + +```sh +# Add the changes to the staging area +git add filename + +# Commit the changes by writing a proper message +git commit -m "commit-message" + +# Push the changes to your fork +git push origin [branch-name] +``` + +When pushing, you will be asked to enter your GitHub login credentials. Once the push is complete, all local commits will be on your GitHub repository. + + +### Create a pull request + +Come back to GitHub, navigate to the original repository where you created your fork, and click on `Compare & pull request`. + +![compare-and-pr](../assets/images/community/contributing/compare-pull-request.PNG) + +First, click on `compare across forks` and select the right repositories and branches. + +> In the base repository, keep in mind to select either `main` or `develop` based on the modifications made. In the head repository, indicate your forked repository and the branch corresponding to the issue. + +![compare-across-forks](../assets/images/community/contributing/compare-across-forks.PNG) + +Then, fill in the pull request template. In the title, add the feat, bug or docs prefix depending on the type of modification. A general template will be shown, please click on `Preview` and choose the corresponding pull request template. In addition, on the right side, you can select a reviewer (for instance, if you discussed the issue with a member of the Argilla team) and assign the pull request to yourself. + +It is highly advisable to add labels to PR as well. You can do this again by the labels section right to the screen. For instance, if you are addressing a bug, add the `bug` label or if the PR is related to the documentation, add the `documentation` label. This way, PRs can be easily filtered. + +Additionally, you should add a prefix to the PR name as we did with the branch above. If you are working on a new feature, you can name your PR as `feat: TITLE`. If your PR consists of a solution for a bug, you can name your PR as `bug: TITLE` And, if your work is for improving the documentation, you can name your PR as `docs: TITLE`. + +Finally, click on `Create pull request`. + +![pr](../assets/images/community/contributing/pull-request.PNG) + +Below, we chose the feature template. Now, fill in it carefully and follow the guidelines. Remember to link the original issue. Finally, enable the checkbox to allow maintainer edits so the branch can be updated for a merge and click on `Create pull request`. + +![pr-feature-template](../assets/images/community/contributing/pull-request-feature.PNG) + + +### Review your pull request + +Once you submit your PR, a team member will review your proposal. We may ask questions, request additional information or ask for changes to be made before a PR can be merged, either using [suggested changes](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/incorporating-feedback-in-your-pull-request) or pull request comments. + +You can apply the changes directly through the UI (check the files changed and click on the right-corner three dots, see image below) or from your fork, and then commit them to your branch. The PR will be updated automatically and the suggestions will appear as outdated. + +![edit-file-from-UI](../assets/images/community/contributing/edit-file.PNG) + +> If you run into any merge issues, check out this [git tutorial](https://github.com/skills/resolve-merge-conflicts) to help you resolve merge conflicts and other issues. + + +### Your PR is merged! + +Congratulations 🎉🎊 We thank you 🤩 + +Once your PR is merged, your contributions will be publicly visible on the [Argilla GitHub](https://github.com/argilla-io/argilla#contributors). + +Additionally, we will include your changes in the next release based on our [development branch](https://github.com/argilla-io/argilla/tree/develop). + +We will probably contact you, but if you would like to send your personal information (LinkedIn, profile picture, GitHub) to [David](mailto:david@argilla.io), he can set everything up for receiving your JustDiggit bunds and a LinkedIn shoutout. + + +## Additional resources + +Here are some helpful resources for your reference. + +* [Configuring Slack](https://slack.com/help/articles/218080037-Getting-started-for-new-Slack-users), a guide to learn how to configure Slack. +* [Pro Git](https://git-scm.com/book/en/v2), a book to learn Git. +* [Git in VSCode](https://code.visualstudio.com/docs/sourcecontrol/overview), a guide to learn how to easily use Git in VSCode. +* [GitHub Skills](https://skills.github.com/), an interactive course to learn GitHub. \ No newline at end of file diff --git a/argilla-sdk/docs/community/index.md b/argilla-sdk/docs/community/index.md new file mode 100644 index 0000000000..88e1fd0b8c --- /dev/null +++ b/argilla-sdk/docs/community/index.md @@ -0,0 +1,45 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +hide: + - toc + - footer +--- + +We are an open-source community-driven project not only focused on building a great product but also on building a great community, where you can get support, share your experiences, and contribute to the project! We would love to hear from you and help you get started with Argilla. + +

\ No newline at end of file diff --git a/argilla-sdk/docs/getting_started/faq.md b/argilla-sdk/docs/getting_started/faq.md index 3b4af37c7f..ffda3d80e2 100644 --- a/argilla-sdk/docs/getting_started/faq.md +++ b/argilla-sdk/docs/getting_started/faq.md @@ -1,7 +1,38 @@ --- description: Argilla-python is the reference argilla python server SDK. +hide: toc --- -# Quickstart +# FAQs -Placeholder text \ No newline at end of file +??? Question "What is Argilla?" + + Argilla is a collaboration platform for AI engineers and domain experts that require high-quality outputs, full data ownership, and overall efficiency. It is designed to help you achieve and keep high-quality data standards, store your training data, store the results of your models, evaluate their performance, and improve the data through human and AI feedback. + +??? Question "Does Argilla cost money?" + + No. Argilla is an open-source project and is free to use. You can deploy Argilla on your own infrastructure or use our cloud offering. + +??? Question "What data types does Argilla support?" + + Text data, mostly. Argilla natively supports textual data, however, we do support rich text, which means you can represent different types of data in Argilla as long as you can convert it to text. For example, you can store images, audio, video, and any other type of data as long as you can convert it to their base64 representation or render them as HTML in for example an IFrame. + +??? Question "Does Argilla train models?" + + No. Argilla is a collaboration platform to achieve and keep high-quality data standards. You can use Argilla to store your training data, store the results of your models, evaluate their performance and improve the data. For training models, you can use any machine learning framework or library that you prefer even though we recommend starting with [Hugging Face Transformers](https://github.com/huggingface/transformers). + +??? Question "Does Argilla provide annotation workforces?" + + Yes, kind of. We don't provide annotation workforce in-house but we do have partnerships with workforce providers that ensure ethical practices and secure work environments. Feel free to schedule a meeting here or contact us via email. + +??? Question "How does Argilla differ from competitors like Lilac, Snorkel, Prodigy and Scale?" + + Argilla distinguishes itself for its focus on specific use cases and human-in-the-loop approaches. While it does offer programmatic features, Argilla’s core value lies in actively involving human experts in the tool-building process, setting it apart from other competitors. + + Furthermore, Argilla places particular emphasis on smooth integration with other tools in the community, particularly within the realms of MLOps and NLP. So, its compatibility with popular frameworks like spaCy and Hugging Face makes it exceptionally user-friendly and accessible. + + Finally, platforms like Snorkel, Prodigy or Scale, while more comprehensive, often require a significant commitment. Argilla, on the other hand, works more as a component within the MLOps ecosystem, allowing users to begin with specific use cases and then scale up as needed. This flexibility is particularly beneficial for users and customers who prefer to start small and expand their applications over time, as opposed to committing to an all-encompassing platform from the outset. + +??? Question "What is the difference between Argilla 2.0 and the legacy datasets in 1.0?" + + Argilla 1.0 relied on 3 main task datasets: `DatasetForTextClassification`, `DatasetForTokenClassification`, and `DatasetForText2Text`. These tasks were designed to be simple, easy to use and high in functionality but they were limited in adaptability. With the introduction of Large Language Models (LLMs) and the increasing complexity of NLP tasks, we realized that we needed to expand the capabilities of Argilla to support more advanced feedback mechanisms which led to the introduction of the `FeedbackDataset`. Compared to its predecessor it was high in adaptability but still limited in functionality. After having ported all of the functionality of the legacy tasks to the new `FeedbackDataset`, we decided to deprecate the legacy tasks in favor of a brand new SDK with the `FeedbackDataset` at its core. \ No newline at end of file diff --git a/argilla-sdk/docs/getting_started/installation.md b/argilla-sdk/docs/getting_started/installation.md index c26324d3ab..b849f11ca2 100644 --- a/argilla-sdk/docs/getting_started/installation.md +++ b/argilla-sdk/docs/getting_started/installation.md @@ -19,9 +19,6 @@ If you have already deployed Argilla Server, you can skip this step. Otherwise, !!! note You can use this SDK with any stable release of argilla server >= 1.27. -!!! warning - These images are used for introductory purposes, so the data will be lost after restarting. - * Using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). * Locally with Docker. diff --git a/argilla-sdk/docs/getting_started/quickstart.md b/argilla-sdk/docs/getting_started/quickstart.md index 7cdf892a5c..a7e7270a6f 100644 --- a/argilla-sdk/docs/getting_started/quickstart.md +++ b/argilla-sdk/docs/getting_started/quickstart.md @@ -1,13 +1,10 @@ --- -description: Quickstart of the Argilla-python on how to create your first dataset. +description: Quickstart of Argilla on how to create your first dataset. --- # Quickstart -This guide provides a quick overview of the Argilla SDK and how to create your first dataset. -1. Setting up your Argilla project -2. Create your first dataset -3. Add records to your dataset +This guide provides a quick overview of the Argilla SDK and how to create your first dataset. ## Setting up your Argilla project @@ -20,17 +17,14 @@ To work with Argilla datasets, you need to use the Argilla SDK. You can install ```console pip install git+https://github.com/argilla-io/argilla-python.git -``` +``` ### Run the Argilla server If you have already deployed Argilla Server, you can skip this step. Otherwise, you can quickly deploy it in two different ways: -!!! warning - These images are used for introductory purposes, so the data will be lost after restarting. - -* Using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). -* Locally with Docker. +* Remotely using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). +* Locally using Docker. ```console docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:latest @@ -40,13 +34,13 @@ docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:latest Get your ``: -* If you are using HF Spaces, it should be constructed as follows: `https://[your-owner-name]-[your_space_name].hf.space` -* If you are using Docker, it is the URL shown in your browser (by default `http://localhost:6900`) +* If you are using Hugging Face Spaces, the URL should be constructed as follows: `https://[your-owner-name]-[your_space_name].hf.space` +* If you are using Docker, the URL is the URL shown in your browser (by default `http://localhost:6900`) -Get your `` in `My Settings` in the Argilla UI (by default owner.apikey). +Get your `` in `My Settings` in the Argilla UI (by default `owner.apikey`). !!! note - Make sure to replace `` and `` with your actual values. If you are using a private HF Space, you need to specify your `HF_TOKEN` which can be found [here](https://huggingface.co/settings/tokens). + Make sure to replace `` and `` with your actual values. If you are using a private Hugging Face Space, you need to specify your `HF_TOKEN` which can be found [here](https://huggingface.co/settings/tokens). ```python import argilla_sdk as rg @@ -55,12 +49,12 @@ client = rg.Argilla( api_url="", api_key="" # extra_headers={"Authorization": f"Bearer {HF_TOKEN}"} - ) +) ``` ## Create your first dataset -To create a dataset with a simple text classification task, first you need to define it in the `settings`. +To create a dataset with a simple text classification task, first, you need to define the dataset settings. ```python settings = rg.Settings( @@ -110,11 +104,10 @@ from datasets import load_dataset data = load_dataset("imdb", split="train[:100]").to_list() ``` -Now you can add the data to your dataset. Use `mapping` to indicate which keys in the source data correspond to the dataset fields. +Now you can add the data to your dataset. Use a `mapping` to indicate which keys/columns in the source data correspond to the Argilla dataset fields. ```python -# Add records to the dataset -dataset.records.add(records=data, mapping={"text": "review"}) +dataset.records.log(records=data, mapping={"text": "review"}) ``` 🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. @@ -122,5 +115,5 @@ dataset.records.add(records=data, mapping={"text": "review"}) ## More references * [Installation guide](installation.md) -* [How-to guides](../how_to_guides/index.md) +* [How-to guides](../guides/how_to_guides/index.md) * [API reference](../reference//argilla_sdk/client.md) diff --git a/argilla-sdk/docs/how_to_guides/dataset.md b/argilla-sdk/docs/guides/how_to_guides/dataset.md similarity index 92% rename from argilla-sdk/docs/how_to_guides/dataset.md rename to argilla-sdk/docs/guides/how_to_guides/dataset.md index c7cc308ee0..c7a10df405 100644 --- a/argilla-sdk/docs/how_to_guides/dataset.md +++ b/argilla-sdk/docs/guides/how_to_guides/dataset.md @@ -8,7 +8,7 @@ This guide provides an overview of datasets, explaining the basics of how to set A **dataset** is a collection of records that you can configure for labelers to provide feedback using the UI. Depending on the specific requirements of your task, you may need various types of feedback. You can customize the dataset to include different kinds of questions, so the first step will be to define the aim of your project and the kind of data and feedback you will need. With this information, you can start configuring a dataset by defining fields, questions, metadata, vectors, and guidelines through settings. -!!! Question "Question: Who can manage datasets?" +??? Question "Question: Who can manage datasets?" Only users with the `owner` role can manage (create, retrieve, update and delete) all the datasets. @@ -25,7 +25,7 @@ A **dataset** is a collection of records that you can configure for labelers to client=client ) ``` - > Check the [Dataset - Python Reference](../reference/argilla_sdk/datasets/datasets.md) to see the attributes, arguments, and methods of the `Dataset` class in detail. + > Check the [Dataset - Python Reference](../../reference/argilla_sdk/datasets/datasets.md) to see the attributes, arguments, and methods of the `Dataset` class in detail. === "`rg.Settings`" @@ -45,7 +45,7 @@ A **dataset** is a collection of records that you can configure for labelers to ) ``` - > Check the [Settings - Python Reference](../reference/argilla_sdk/settings/settings.md) to see the attributes, arguments, and methods of the `Settings` class in detail. + > Check the [Settings - Python Reference](../../reference/argilla_sdk/settings/settings.md) to see the attributes, arguments, and methods of the `Settings` class in detail. ## Create a dataset @@ -66,7 +66,10 @@ settings = rg.Settings( ), ], questions=[ - rg.LabelQuestion(name="label", labels=["label_1", "label_2", "label_3"]), + rg.LabelQuestion( + name="label", + labels=["label_1", "label_2", "label_3"] + ), ], ) @@ -101,7 +104,6 @@ dataset2 = rg.Dataset(name="sentiment_analysis_2", settings=settings) # Create the datasets on the server dataset1.create() dataset2.create() - ``` ### Create a dataset with settings from an existing dataset @@ -120,7 +122,6 @@ dataset = rg.Dataset(name="sentiment_analysis_copy", settings=existing_dataset.s # Create the dataset on the server dataset.create() - ``` ## Define dataset settings @@ -147,7 +148,7 @@ rg.TextField( use_markdown=False ) ``` -![TextField](../assets/images/how_to_guides/dataset/fields.png) +![TextField](../../assets/images/how_to_guides/dataset/fields.png) ### Questions @@ -171,7 +172,7 @@ To collect feedback for your dataset, you need to formulate questions that annot labels={"YES": "Yes", "NO": "No"}, # or ["YES", "NO"] ) ``` - ![LabelQuestion](../assets/images/how_to_guides/dataset/label_question.png) + ![LabelQuestion](../../assets/images/how_to_guides/dataset/label_question.png) === "Multi-label" A `MultiLabelQuestion` asks annotators to choose all applicable labels from a list of options. This type is useful for multi-label text classification tasks. In the UI, they will have a squared shape. It has the following configuration: @@ -202,11 +203,11 @@ To collect feedback for your dataset, you need to formulate questions that annot ) ``` - ![MultiLabelQuestion](../assets/images/how_to_guides/dataset/multilabel_question.png) + ![MultiLabelQuestion](../../assets/images/how_to_guides/dataset/multilabel_question.png) === "Ranking" A `RankingQuestion` asks annotators to order a list of options. It is useful to gather information on the preference or relevance of a set of options. Ties are allowed and all options will need to be ranked. It has the following configuration: - + - `name`: The name of the question. - `title` (optional): The name of the question, as it will be displayed in the UI. Defaults to the `name` value. - `description` (optional): The text to be displayed in the question tooltip in the UI. You can use it to give more context or information to annotators. @@ -227,7 +228,7 @@ To collect feedback for your dataset, you need to formulate questions that annot ) ``` - ![RankingQuestion](../assets/images/how_to_guides/dataset/ranking_question.png) + ![RankingQuestion](../../assets/images/how_to_guides/dataset/ranking_question.png) === "Rating" A `RatingQuestion` asks annotators to select one option from a list of integer values. This type is useful for collecting numerical scores. It has the following configuration: @@ -248,7 +249,7 @@ To collect feedback for your dataset, you need to formulate questions that annot ) ``` - ![RatingQuestion](../assets/images/how_to_guides/dataset/rating_question.png) + ![RatingQuestion](../../assets/images/how_to_guides/dataset/rating_question.png) === "Span" A `SpanQuestion` asks annotators to select a portion of the text of a specific field and apply a label to it. This type of question is useful for named entity recognition or information extraction tasks. It has the following configuration: @@ -273,14 +274,14 @@ To collect feedback for your dataset, you need to formulate questions that annot "ORG": "Organization", "LOC": "Location", "MISC": "Miscellaneous" - }, + }, field="text", allow_overlapping=False, visible_labels=None ) ``` - ![SpanQuestion](../assets/images/how_to_guides/dataset/span_question.png) + ![SpanQuestion](../../assets/images/how_to_guides/dataset/span_question.png) === "Text" A `TextQuestion` offers to annotators a free-text area where they can enter any text. This type is useful for collecting natural language data, such as corrections or explanations. It has the following configuration: @@ -301,14 +302,14 @@ To collect feedback for your dataset, you need to formulate questions that annot ) ``` - ![TextQuestion](../assets/images/how_to_guides/dataset/text_question.png) + ![TextQuestion](../../assets/images/how_to_guides/dataset/text_question.png) ### Metadata Metadata properties allow you to configure the use of metadata information for the filtering and sorting features available in the UI and Python SDK. There exist three types of metadata you can add: `TermsMetadataProperty`, `IntegerMetadataProperty` and `FloatMetadataProperty`. === "Terms" - A `TermsMetadataProperty` allows to add a list of strings as metadata options. It has the following configuration: + A `TermsMetadataProperty` allows to add a list of strings as metadata options. It has the following configuration: - `name`: The name of the metadata property. - `title` (optional): The name of the metadata property, as it will be displayed in the UI. Defaults to the `name` value, but capitalized. @@ -321,7 +322,7 @@ Metadata properties allow you to configure the use of metadata information for t options=["group-a", "group-b", "group-c"] ) ``` - ![TermsMetadataProperty](../assets/images/how_to_guides/dataset/term_metadata.png) + ![TermsMetadataProperty](../../assets/images/how_to_guides/dataset/term_metadata.png) === "Integer" An `IntegerMetadataProperty` allows to add integer values as metadata. It has the following configuration: @@ -335,11 +336,11 @@ Metadata properties allow you to configure the use of metadata information for t rg.IntegerMetadataProperty( name="integer", title="length-input", - min=50, - max=1897, + min=42, + max=1984, ) ``` - ![IntegerMetadataProperty](../assets/images/how_to_guides/dataset/integer_metadata.png) + ![IntegerMetadataProperty](../../assets/images/how_to_guides/dataset/integer_metadata.png) === "Float" A `FloatMetadataProperty` allows to add float values as metadata. It has the following configuration: @@ -357,7 +358,7 @@ Metadata properties allow you to configure the use of metadata information for t max=119.6975, ) ``` - ![FloatMetadataProperty](../assets/images/how_to_guides/dataset/float_metadata.png) + ![FloatMetadataProperty](../../assets/images/how_to_guides/dataset/float_metadata.png) ### Vectors @@ -374,7 +375,7 @@ rg.VectorField( dimensions=768 ), ``` -![VectorField](../assets/images/how_to_guides/dataset/vectors.png) +![VectorField](../../assets/images/how_to_guides/dataset/vectors.png) ### Guidelines @@ -384,10 +385,10 @@ Once you have decided on the data to show and the questions to ask, it's importa ```python guidelines = "In this dataset, you will find a collection of records that show a category, an instruction, a context and a response to that instruction. [...]" ``` -![Guidelines](../assets/images/how_to_guides/dataset/guidelines.png) +![Guidelines](../../assets/images/how_to_guides/dataset/guidelines.png) * As question descriptions: these are added as an argument when you create questions in the Python SDK. This text will appear in a tooltip next to the question in the UI. -![Guidelines as descriptions](../assets/images/how_to_guides/dataset/guidelines_description.png) +![Guidelines as descriptions](../../assets/images/how_to_guides/dataset/guidelines_description.png) It is good practice to use at least the dataset guidelines if not both methods. Question descriptions should be short and provide context to a specific question. They can be a summary of the guidelines to that question, but often that is not sufficient to align the whole annotation team. In the guidelines, you can include a description of the project, details on how to answer each question with examples, instructions on when to discard a record, etc. @@ -465,7 +466,10 @@ settings_to_update = rg.Settings( ), ], questions=[ - rg.LabelQuestion(name="label", labels=["label_4", "label_5", "label_6"]), + rg.LabelQuestion( + name="label", + labels=["label_4", "label_5", "label_6"] + ), ], ) diff --git a/argilla-sdk/docs/how_to_guides/index.md b/argilla-sdk/docs/guides/how_to_guides/index.md similarity index 99% rename from argilla-sdk/docs/how_to_guides/index.md rename to argilla-sdk/docs/guides/how_to_guides/index.md index 98369cf642..c8456903af 100644 --- a/argilla-sdk/docs/how_to_guides/index.md +++ b/argilla-sdk/docs/guides/how_to_guides/index.md @@ -1,5 +1,6 @@ --- description: These are the how-to guides for the Argilla-python SDK. They provide step-by-step instructions for common scenarios, including detailed explanations and code samples. +hide: toc --- # How-to guides diff --git a/argilla-sdk/docs/how_to_guides/query_export.md b/argilla-sdk/docs/guides/how_to_guides/query_export.md similarity index 95% rename from argilla-sdk/docs/how_to_guides/query_export.md rename to argilla-sdk/docs/guides/how_to_guides/query_export.md index 1a18a89436..8f928e48af 100644 --- a/argilla-sdk/docs/how_to_guides/query_export.md +++ b/argilla-sdk/docs/guides/how_to_guides/query_export.md @@ -18,7 +18,7 @@ You can search for records in your dataset by **querying** or **filtering**. The filter=filter ) ``` - > Check the [Query - Python Reference](../reference/argilla_sdk/search.md) to see the attributes, arguments, and methods of the `Query` class in detail. + > Check the [Query - Python Reference](../../reference/argilla_sdk/search.md) to see the attributes, arguments, and methods of the `Query` class in detail. === "`rg.Filter`" @@ -29,7 +29,7 @@ You can search for records in your dataset by **querying** or **filtering**. The ] ) ``` - > Check the [Filter - Python Reference](../reference/argilla_sdk/search.md) to see the attributes, arguments, and methods of the `Filter` class in detail. + > Check the [Filter - Python Reference](../../reference/argilla_sdk/search.md) to see the attributes, arguments, and methods of the `Filter` class in detail. ## Query with search terms diff --git a/argilla-sdk/docs/how_to_guides/record.md b/argilla-sdk/docs/guides/how_to_guides/record.md similarity index 67% rename from argilla-sdk/docs/how_to_guides/record.md rename to argilla-sdk/docs/guides/how_to_guides/record.md index 42cf7a211a..b06b2b3d93 100644 --- a/argilla-sdk/docs/how_to_guides/record.md +++ b/argilla-sdk/docs/guides/how_to_guides/record.md @@ -33,11 +33,11 @@ A **record** in Argilla is a data item that requires annotation, consisting of o ], ) ``` - > Check the [Record - Python Reference](../reference/argilla_sdk/records/records.md) to see the attributes, arguments, and methods of the `Record` class in detail. + > Check the [Record - Python Reference](../../reference/argilla_sdk/records/records.md) to see the attributes, arguments, and methods of the `Record` class in detail. ## Add records -You can add records to a dataset in two different ways: either by using a dictionary or by directly initializing a `Record` object. You should ensure that fields, metadata and vectors match those configured in the dataset settings. In both cases, are added via the `Dataset.records.add` method. As soon as you add the records, these will be available in the Argilla UI. If they do not appear in the UI, you may need to click the refresh button to update the view. +You can add records to a dataset in two different ways: either by using a dictionary or by directly initializing a `Record` object. You should ensure that fields, metadata and vectors match those configured in the dataset settings. In both cases, are added via the `Dataset.records.log` method. As soon as you add the records, these will be available in the Argilla UI. If they do not appear in the UI, you may need to click the refresh button to update the view. !!! tip Take some time to inspect the data before adding it to the dataset in case this triggers changes in the `questions` or `fields`. @@ -45,18 +45,50 @@ You can add records to a dataset in two different ways: either by using a dictio !!! note If you are planning to use public data, the [Datasets page](https://huggingface.co/datasets) of the Hugging Face Hub is a good place to start. Remember to always check the license to make sure you can legally use it for your specific use case. -=== "As a dictionary" +=== "As `Record` objects" - You can add the data directly as a dictionary, where the keys correspond to the names of fields, questions, metadata or vectors in the dataset and the values are the data to be added. However, you can also use a `mapping` to indicate which keys in the source data correspond to the dataset fields. + You can add records to a dataset by initializing a `Record` object directly. This is ideal if you need to apply logic to the data before defining the record. If the data is already structured, you should consider adding it directly as a dictionary or Hugging Face dataset. - ```python + ```python import argilla_sdk as rg client = rg.Argilla(api_url="", api_key="") - workspace = client.workspaces("my_workspace") + dataset = client.datasets(name="my_dataset") + + records = [ + rg.Record( + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + ), + rg.Record( + fields={ + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius" + }, + ), # (1) + ] + + dataset.records.log(records) + ``` + 1. This is an illustration of a definition. In a real world scenario, you would iterate over a data structure and create `Record` objects for each iteration. + +=== "From a generic data structure" + + You can add the data directly as a dictionary like structure, where the keys correspond to the names of fields, questions, metadata or vectors in the dataset and the values are the data to be added. + + If your data structure does not correspond to your Argilla dataset names, you can use a `mapping` to indicate which keys in the source data correspond to the dataset fields. - dataset = client.datasets(name="my_dataset", workspace=workspace) + We illustrate this python dictionaries that represent your data, but we would not advise you to to define dictionaries. Instead use the `Record` object for instatiating records. + + ```python + import argilla_sdk as rg + + client = rg.Argilla(api_url="", api_key="") + + dataset = client.datasets(name="my_dataset") # Add records to the dataset with the fields 'question' and 'answer' data = [ @@ -67,9 +99,9 @@ You can add records to a dataset in two different ways: either by using a dictio { "question": "What is the boiling point of water?", "answer": "100 degrees Celsius", - }, + }, # (2) ] - dataset.records.add(data) + dataset.records.log(data) # Add records to the dataset with the a mapping of the fields 'question' and 'answer' data = [ @@ -82,97 +114,47 @@ You can add records to a dataset in two different ways: either by using a dictio "response": "100 degrees Celsius", }, ] - dataset.records.add(data, mapping={"query": "question", "response": "answer"}) + dataset.records.log(data, mapping={"query": "question", "response": "answer"}) # (3) ``` - !!! example "HF example" - - ```python - import datasets - from datasets import load_dataset - from uuid import uuid4 - - client = rg.Argilla(api_url="", api_key="") - workspace = client.workspaces("my_workspace") - user_id = client.users("my_user").id - - dataset = client.datasets(name="my_dataset", workspace=workspace) + 1. The data structure's keys must match the fields or questions in the Argilla dataset. In this case, there are fields named `question` and `answer`. + 2. The data structure has keys `query` and `response` and the Argilla dataset has `question` and `answer`. You can use the `mapping` parameter to map the keys in the data structure to the fields in the Argilla dataset. - hf_dataset = load_dataset("imdb", split="train[:100]").to_list() - records = [ - { - "text": sample["text"], - "label": "positive" if sample["label"] == 1 else "negative", - "external_id": uuid4() - } - for sample in hf_dataset - ] +=== "From a Hugging Face dataset" - dataset.records.add(records=records) - ``` + You can also add records to a dataset using a Hugging Face dataset. This is useful when you want to use a dataset from the Hugging Face Hub and add it to your Argilla dataset. -=== "As a `Record` object" + You can add the dataset where the column names correspond to the names of fields, questions, metadata or vectors in the Argilla dataset. + + If the dataset's schema does not correspond to your Argilla dataset names, you can use a `mapping` to indicate which columns in the dataset correspond to the Argilla dataset fields. - You can also add records to a dataset by initializing a `Record` object directly. + ```python + from uuid import uuid4 - ```python import argilla_sdk as rg + from datasets import load_dataset client = rg.Argilla(api_url="", api_key="") + dataset = client.datasets(name="my_dataset") # (1) - workspace = client.workspaces("my_workspace") + hf_dataset = load_dataset("imdb", split="train[:100]") # (2) - dataset = client.datasets(name="my_dataset", workspace=workspace) + dataset.records.log(records=hf_dataset) + ``` - records = [ - rg.Record( - fields={ - "question": "Do you need oxygen to breathe?", - "answer": "Yes" - }, - ), - rg.Record( - fields={ - "question": "What is the boiling point of water?", - "answer": "100 degrees Celsius" - }, - ), - ] + 1. In this case, we are using the `my_dataset` dataset from the Argilla workspace. The dataset has a `text` field and a `label` question. + + 2. In this example, the Hugging Face dataset matches the Argilla dataset schema. If that is not the case, you could use the `.map` of the `datasets` library to prepare the data before adding it to the Argilla dataset. - dataset.records.add(records) + Here we use the `mapping` parameter to specify the relationship between the Hugging Face dataset and the Argilla dataset. + + ```python + dataset.records.log(records=hf_dataset, mapping={"txt": "text", "y": "label"}) # (1) ``` - !!! example "HF example" - - ```python - import datasets - from datasets import load_dataset - from uuid import uuid4 - - client = rg.Argilla(api_url="", api_key="") - workspace = client.workspaces("my_workspace") - user_id = client.users("my_user").id - - dataset = client.datasets(name="my_dataset", workspace=workspace) - - hf_dataset = load_dataset("imdb", split="train[:100]").to_list() - records = [ - rg.Record( - fields={"text": sample["text"]} - responses=[ - rg.Response( - "label", - "positive" if sample["label"] == 1 else "negative", - user_id=user_id) - ], - external_id=uuid4() - ) - for sample in hf_dataset - ] - - dataset.records.add(records) - ``` + 1. In this case, the `txt` key in the Hugging Face dataset corresponds to the `text` field in the Argilla dataset, and the `y` key in the Hugging Face dataset corresponds to the `label` field in the Argilla dataset. + ### Metadata @@ -181,28 +163,9 @@ Record metadata can include any information about the record that is not part of !!! note Remember that to use metadata within a dataset, you must define a metadata property in the [dataset settings](dataset.md). -=== "As part of a dictionary" - You can add metadata to a record directly as a dictionary, where the keys correspond to the names of metadata properties in the dataset and the values are the metadata to be added. Remember that you can also use the `mapping` parameter to specify the data structure. - - ```python - # Add records to the dataset with the metadata 'category' - data = [ - { - "question": "Do you need oxygen to breathe?", - "answer": "Yes", - "category": "A", - }, - { - "question": "What is the boiling point of water?", - "answer": "100 degrees Celsius", - "category": "B", - }, - ] - dataset.records.add(data) - ``` +=== "As `Record` objects" -=== "As part of a `Record` object" - You can also add metadata to a record in an initialized `Record` object. + You can add metadata to a record in an initialized `Record` object. ```python # Add records to the dataset with the metadata 'category' @@ -222,40 +185,43 @@ Record metadata can include any information about the record that is not part of metadata={"category": "B"}, ), ] - dataset.records.add(records) + dataset.records.log(records) ``` -### Vectors - -You can associate vectors, like text embeddings, to your records. They can be used for semantic search in the UI and the Python SDK. Make sure that the length of the list corresponds to the dimensions set in the vector settings. - -!!! note - Remember that to use vectors within a dataset, you must define them in the [dataset settings](dataset.md). - -=== "As part of a dictionary" - You can add vectors as a dictionary, where the keys correspond to the `name`s of the vector settings that were configured for your dataset and the value is a list of floats. Remember that you can also use the `mapping` parameter to specify the data structure. +=== "From a generic data structure" + You can add metadata to a record directly as a dictionary structure, where the keys correspond to the names of metadata properties in the dataset and the values are the metadata to be added. Remember that you can also use the `mapping` parameter to specify the data structure. ```python - # Add records to the dataset with the vector 'my_vector' and dimension=3 + # Add records to the dataset with the metadata 'category' data = [ { "question": "Do you need oxygen to breathe?", "answer": "Yes", - "my_vector": [0.1, 0.2, 0.3], + "category": "A", }, { "question": "What is the boiling point of water?", "answer": "100 degrees Celsius", - "my_vector": [0.2, 0.5, 0.3], + "category": "B", }, ] - dataset.records.add(data) + dataset.records.log(data) ``` -=== "As part of a `Record` object" + +### Vectors + +You can associate vectors, like text embeddings, to your records. They can be used for semantic search in the UI and the Python SDK. Make sure that the length of the list corresponds to the dimensions set in the vector settings. + +!!! note + Remember that to use vectors within a dataset, you must define them in the [dataset settings](dataset.md). + + +=== "As `Record` objects" + You can also add vectors to a record in an initialized `Record` object. - > Check the [Vector - Python Reference](../reference/argilla_sdk/records/vectors.md) to see the attributes, arguments, and methods of the `Vector` class in detail. + > Check the [Vector - Python Reference](../../reference/argilla_sdk/records/vectors.md) to see the attributes, arguments, and methods of the `Vector` class in detail. ```python # Add records to the dataset with the vector 'my_vector' and dimension=3 @@ -279,41 +245,38 @@ You can associate vectors, like text embeddings, to your records. They can be us ], ), ] - dataset.records.add(records) + dataset.records.log(records) ``` -### Suggestions +=== "From a generic data structure" -Suggestions refer to suggested responses (e.g. model predictions) that you can add to your records to make the annotation process faster. These can be added during the creation of the record or at a later stage. Only one suggestion can be provided for each question, and suggestion values must be compliant with the pre-defined questions e.g. if we have a `RatingQuestion` between 1 and 5, the suggestion should have a valid value within that range. - -=== "As part of a dictionary" - You can add suggestions as a dictionary, where the keys correspond to the `name`s of the labels that were configured for your dataset. Remember that you can also use the `mapping` parameter to specify the data structure. + You can add vectors from a dictionary like structure, where the keys correspond to the `name`s of the vector settings that were configured for your dataset and the value is a list of floats. Remember that you can also use the `mapping` parameter to specify the data structure. ```python - # Add records to the dataset with the label 'my_label' + # Add records to the dataset with the vector 'my_vector' and dimension=3 data = [ { "question": "Do you need oxygen to breathe?", "answer": "Yes", - "my_label.suggestion": "positive", - "my_label.suggestion.score": 0.9, - "my_label.suggestion.agent": "model_name" + "my_vector": [0.1, 0.2, 0.3], }, { "question": "What is the boiling point of water?", "answer": "100 degrees Celsius", - "my_label.suggestion": "negative", - "my_label.suggestion.score": 0.9, - "my_label.suggestion.agent": "model_name" + "my_vector": [0.2, 0.5, 0.3], }, ] - dataset.records.add(data) + dataset.records.log(data) ``` -=== "As part of a `Record` object" +### Suggestions + +Suggestions refer to suggested responses (e.g. model predictions) that you can add to your records to make the annotation process faster. These can be added during the creation of the record or at a later stage. Only one suggestion can be provided for each question, and suggestion values must be compliant with the pre-defined questions e.g. if we have a `RatingQuestion` between 1 and 5, the suggestion should have a valid value within that range. + +=== "As `Record objects" You can also add suggestions to a record in an initialized `Record` object. - > Check the [Suggestions - Python Reference](../reference/argilla_sdk/records/suggestions.md) to see the attributes, arguments, and methods of the `Suggestion` class in detail. + > Check the [Suggestions - Python Reference](../../reference/argilla_sdk/records/suggestions.md) to see the attributes, arguments, and methods of the `Suggestion` class in detail. ```python # Add records to the dataset with the label 'my_label' @@ -347,18 +310,11 @@ Suggestions refer to suggested responses (e.g. model predictions) that you can a ], ), ] - dataset.records.add(records) + dataset.records.log(records) ``` -### Responses - -If your dataset includes some annotations, you can add those to the records as you create them. Make sure that the responses adhere to the same format as Argilla's output and meet the schema requirements for the specific type of question being answered. Make sure to include the `user_id` in case you're planning to add more than one response for the same question, if not responses will apply to all the annotators. - -!!! note - Keep in mind that records with responses will be displayed as "Draft" in the UI. - -=== "As part of a dictionary" - You can add suggestions as a dictionary, where the keys correspond to the `name`s of the labels that were configured for your dataset. Remember that you can also use the `mapping` parameter to specify the data structure. If you want to specify the user that added the response, you can use the `user_id` parameter. +=== "From a generic data structure" + You can add suggestions as a dictionary, where the keys correspond to the `name`s of the labels that were configured for your dataset. Remember that you can also use the `mapping` parameter to specify the data structure. ```python # Add records to the dataset with the label 'my_label' @@ -366,21 +322,32 @@ If your dataset includes some annotations, you can add those to the records as y { "question": "Do you need oxygen to breathe?", "answer": "Yes", - "my_label.response": "positive", + "my_label.suggestion": "positive", + "my_label.suggestion.score": 0.9, + "my_label.suggestion.agent": "model_name" }, { "question": "What is the boiling point of water?", "answer": "100 degrees Celsius", - "my_label.response": "negative", + "my_label.suggestion": "negative", + "my_label.suggestion.score": 0.9, + "my_label.suggestion.agent": "model_name" }, ] - dataset.records.add(data, user_id=user.id) + dataset.records.log(data) ``` -=== "As part of a `Record` object" +### Responses + +If your dataset includes some annotations, you can add those to the records as you create them. Make sure that the responses adhere to the same format as Argilla's output and meet the schema requirements for the specific type of question being answered. Make sure to include the `user_id` in case you're planning to add more than one response for the same question, if not responses will apply to all the annotators. + +!!! note + Keep in mind that records with responses will be displayed as "Draft" in the UI. + +=== "As `Record` objects" You can also add suggestions to a record in an initialized `Record` object. - > Check the [Responses - Python Reference](../reference/argilla_sdk/records/responses.md) to see the attributes, arguments, and methods of the `Suggestion` class in detail. + > Check the [Responses - Python Reference](../../reference/argilla_sdk/records/responses.md) to see the attributes, arguments, and methods of the `Suggestion` class in detail. ```python # Add records to the dataset with the label 'my_label' @@ -404,17 +371,40 @@ If your dataset includes some annotations, you can add those to the records as y ] ), ] - dataset.records.add(records) + dataset.records.log(records) + ``` + +=== "From a generic data structure" + + You can add suggestions as a dictionary, where the keys correspond to the `name`s of the labels that were configured for your dataset. Remember that you can also use the `mapping` parameter to specify the data structure. If you want to specify the user that added the response, you can use the `user_id` parameter. + + ```python + # Add records to the dataset with the label 'my_label' + data = [ + { + "question": "Do you need oxygen to breathe?", + "answer": "Yes", + "my_label.response": "positive", + }, + { + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius", + "my_label.response": "negative", + }, + ] + dataset.records.log(data, user_id=user.id) ``` + + ## List records To list records in a dataset, you can use the `records` method on the `Dataset` object. This method returns a list of `Record` objects that can be iterated over to access the record properties. ```python for record in dataset.records( - with_suggestions=True, - with_responses=True, + with_suggestions=True, + with_responses=True, with_vectors=True ): @@ -444,23 +434,21 @@ updated_data = [ } for sample in data ] -dataset.records.update(records=updated_data) +dataset.records.log(records=updated_data) + ``` !!! note "Update the metadata" - To update the metadata of a record, you can iterate over the records and update the metadata dictionary by key or using `metadata.update`. After that, you should update the records in the dataset. + The `metadata` of `Record` object is a python dictionary. So to update the metadata of a record, you can iterate over the records and update the metadata by key or using `metadata.update`. After that, you should update the records in the dataset. ```python updated_records = [] + for record in dataset.records(): - # By key record.metadata["my_metadata"] = "new_value" record.metadata["my_new_metadata"] = "new_value" - - # With metadata.update - record.metadata.update({"my_metadata": "new_value", "my_new_metadata": "new_value"}) updated_records.append(record) - dataset.records.update(records=updated_records) + dataset.records.log(records=updated_records) ``` \ No newline at end of file diff --git a/argilla-sdk/docs/how_to_guides/user.md b/argilla-sdk/docs/guides/how_to_guides/user.md similarity index 96% rename from argilla-sdk/docs/how_to_guides/user.md rename to argilla-sdk/docs/guides/how_to_guides/user.md index 95a77ab125..3a28b384f5 100644 --- a/argilla-sdk/docs/how_to_guides/user.md +++ b/argilla-sdk/docs/guides/how_to_guides/user.md @@ -44,7 +44,7 @@ A **user** in Argilla is an authorized person, who depending on their role, can - **Annotation**: It can annotate the assigned datasets in the Argilla UI. - **Feedback**: It can provide feedback with the Argilla UI. -!!! Question "Question: Who can manage users?" +??? Question "Question: Who can manage users?" Only users with the `owner` role can manage (create, retrieve, delete) other users. @@ -69,7 +69,7 @@ Argilla provides a default user with the `owner` role to help you get started in client=client ) ``` - > Check the [User - Python Reference](../reference/argilla_sdk/users.md) to see the attributes, arguments, and methods of the `User` class in detail. + > Check the [User - Python Reference](../../reference/argilla_sdk/users.md) to see the attributes, arguments, and methods of the `User` class in detail. ## Get current user @@ -81,7 +81,6 @@ import argilla_sdk as rg client = rg.Argilla(api_url="", api_key="") current_user = client.me -current_user ``` ## Create a user @@ -133,7 +132,7 @@ import argilla_sdk as rg client = rg.Argilla(api_url="", api_key="") -retrieved_user = client.users('my_username') +retrieved_user = client.users("my_username") ``` ## List users in a workspace diff --git a/argilla-sdk/docs/how_to_guides/workspace.md b/argilla-sdk/docs/guides/how_to_guides/workspace.md similarity index 92% rename from argilla-sdk/docs/how_to_guides/workspace.md rename to argilla-sdk/docs/guides/how_to_guides/workspace.md index feeffeb9a7..d610e5c37d 100644 --- a/argilla-sdk/docs/how_to_guides/workspace.md +++ b/argilla-sdk/docs/guides/how_to_guides/workspace.md @@ -8,7 +8,7 @@ This guide provides an overview of workspaces, explaining how to set up and mana A **workspace** is a *space* inside your Argilla instance where authorized users can collaborate on datasets. It is accessible through the Python SDK and the UI. -!!! Question "Question: Who can manage workspaces?" +??? Question "Question: Who can manage workspaces?" Only users with the `owner` role can manage (create, read and delete) workspaces. @@ -18,9 +18,9 @@ A **workspace** is a *space* inside your Argilla instance where authorized users Argilla provides a default workspace to help you get started in Python and the UI. The name of this workspace varies depending on the server configuration. -| Environment | Name | +| Environment | Name | |-------------------------------|----------| -| Quickstart Docker and HF Space | admin | +| Quickstart Docker and HF Space | admin | | Server image | argilla | !!! info "Main Class" @@ -31,13 +31,13 @@ Argilla provides a default workspace to help you get started in Python and the U client=client ) ``` - > Check the [Workspace - Python Reference](../reference/argilla_sdk/workspaces.md) to see the attributes, arguments, and methods of the `Workspace` class in detail. + > Check the [Workspace - Python Reference](../../reference/argilla_sdk/workspaces.md) to see the attributes, arguments, and methods of the `Workspace` class in detail. ## Create a new workspace To create a new workspace in Argilla, you can define it in the `Workspace` class and then call the `create` method. This method is inherited from the `Resource` base class and operates without modifications. -> When you create a new workspace, it will be empty. To create and add a new dataset, check these [guides](../dataset.md). +> When you create a new workspace, it will be empty. To create and add a new dataset, check these [guides](dataset.md). ```python import argilla_sdk as rg diff --git a/argilla-sdk/docs/how_to_guides/fine_tune.md b/argilla-sdk/docs/how_to_guides/fine_tune.md deleted file mode 100644 index 34c5e41246..0000000000 --- a/argilla-sdk/docs/how_to_guides/fine_tune.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -# Fine-tune - -These are the how-to guides for the Argilla-python SDK. They provide step-by-step instructions for common scenarios, including detailed explanations and code samples. - diff --git a/argilla-sdk/docs/how_to_guides/metrics/annotator.md b/argilla-sdk/docs/how_to_guides/metrics/annotator.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/argilla-sdk/docs/how_to_guides/metrics/dataset.md b/argilla-sdk/docs/how_to_guides/metrics/dataset.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/argilla-sdk/docs/how_to_guides/metrics/model.md b/argilla-sdk/docs/how_to_guides/metrics/model.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/argilla-sdk/docs/index.md b/argilla-sdk/docs/index.md index b42c438c9b..014e368069 100644 --- a/argilla-sdk/docs/index.md +++ b/argilla-sdk/docs/index.md @@ -3,27 +3,27 @@ description: Argilla is a **collaboration platform for AI engineers and domain e hide: navigation --- -# Welcome to Argilla Docs +# Welcome to Argilla Argilla is a **collaboration platform for AI engineers and domain experts** that require **high-quality outputs, full data ownership, and overall efficiency**.
-- __Get started in 5 minutes__ +- __Get started in 5 minutes!__ --- Install `argilla` with `pip` and deploy a `Docker` locally or for free on Hugging Face to get up and running in minutes. - [:octicons-arrow-right-24: Quickstart](getting_started/quickstart/) + [:octicons-arrow-right-24: Quickstart](getting_started/quickstart.md) -- __How-to guides__ +- __Educational guides__ --- - Get familiar with common workflows for Argilla. From managing [`Users`](how_to_guides/user.md), [`Workspaces`](how_to_guides/workspace.md). [`Datasets`](how_to_guides/dataset.md) and [`Records`](how_to_guides/record.md) to fine-tuning a model. + Get familiar with basic and complex workflows for Argilla. From managing `Users`, `Workspaces`. `Datasets` and `Records` to fine-tuning a model. - [:octicons-arrow-right-24: How-to guides](how_to_guides) + [:octicons-arrow-right-24: Learn more](guides/how_to_guides/index.md)
diff --git a/argilla-sdk/docs/integrations/index.md b/argilla-sdk/docs/integrations/index.md deleted file mode 100644 index 8084baf14c..0000000000 --- a/argilla-sdk/docs/integrations/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -# argilla-sdk - -
- -- :material-clock-fast:{ .lg .middle } __Distilabel__ - - --- - - [`distilabel`](#) is a lightweight, easy-to-use, and scalable framework for AI feedback and synthetic data generation which directly integrates with Argilla. It is designed to help you quickly and easily create high-quality labeled data for your LLMs. - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Argilla Metrics__ - - --- - - [`argilla-metrics`](#) is a self-maintained library for tracking and evaluating the performance of your models and annotators. - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - - -- :material-clock-fast:{ .lg .middle } __Llama-index__ - - --- - - [`argilla-llama-index`](#) is LLM orchestration framework. The integration with Argilla allows you to easily monitor pipeline traces and adding human feedback to your them. - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Haystack__ - - --- - - [`argilla-haystack`](#) is LLM orchestration framework. The integration with Argilla allows you to easily monitor pipeline traces and adding human feedback to your them. - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Unstructured__ - - --- - - [`argilla-unstructured`](#) is an ETL framework for LLM data. The integration with Argilla allows you to easily store and evaluate data from ETL pipelines and improve the quality using a human touch. - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -
\ No newline at end of file diff --git a/argilla-sdk/docs/overview/changelog.md b/argilla-sdk/docs/overview/changelog.md deleted file mode 100644 index 8b09626d24..0000000000 --- a/argilla-sdk/docs/overview/changelog.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -# Changelog - -Placeholder tex \ No newline at end of file diff --git a/argilla-sdk/docs/overview/community.md b/argilla-sdk/docs/overview/community.md deleted file mode 100644 index 21fef30c97..0000000000 --- a/argilla-sdk/docs/overview/community.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -## Community - -We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: - -- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. - -- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. - -- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/community/contributor.md b/argilla-sdk/docs/overview/community/contributor.md deleted file mode 100644 index 21fef30c97..0000000000 --- a/argilla-sdk/docs/overview/community/contributor.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -## Community - -We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: - -- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. - -- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. - -- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/community/developer.md b/argilla-sdk/docs/overview/community/developer.md deleted file mode 100644 index 21fef30c97..0000000000 --- a/argilla-sdk/docs/overview/community/developer.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -## Community - -We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: - -- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. - -- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. - -- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/community/index.md b/argilla-sdk/docs/overview/community/index.md deleted file mode 100644 index 21fef30c97..0000000000 --- a/argilla-sdk/docs/overview/community/index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -## Community - -We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved: - -- [Community Meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB): listen in or present during one of our bi-weekly events. - -- [Slack](https://join.slack.com/t/rubrixworkspace/shared_invite/zt-whigkyjn-a3IUJLD7gDbTZ0rKlvcJ5g): get direct support from the community. - -- [Roadmap](https://github.com/orgs/argilla-io/projects/10/views/1): plans change but we love to discuss those with our community so feel encouraged to participate. diff --git a/argilla-sdk/docs/overview/concepts/index.md b/argilla-sdk/docs/overview/concepts/index.md deleted file mode 100644 index 256acb67d8..0000000000 --- a/argilla-sdk/docs/overview/concepts/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -# Argilla concepts - -Placeholder text \ No newline at end of file diff --git a/argilla-sdk/docs/overview/installation/index.md b/argilla-sdk/docs/overview/installation/index.md deleted file mode 100644 index 411ea8fd92..0000000000 --- a/argilla-sdk/docs/overview/installation/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -# argilla-sdk - -Placeholder text \ No newline at end of file diff --git a/argilla-sdk/docs/overview/installation/telemetry.md b/argilla-sdk/docs/overview/installation/telemetry.md deleted file mode 100644 index 411ea8fd92..0000000000 --- a/argilla-sdk/docs/overview/installation/telemetry.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -# argilla-sdk - -Placeholder text \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/INDEX.md b/argilla-sdk/docs/reference/argilla_sdk/INDEX.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/argilla-sdk/docs/reference/argilla_sdk/client.md b/argilla-sdk/docs/reference/argilla_sdk/client.md index 188b8f8385..98d0cf89b8 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/client.md +++ b/argilla-sdk/docs/reference/argilla_sdk/client.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Argilla` To interact with the Argilla server from python you can use the `Argilla` class. The `Argilla` client is used to create, get, update, and delete all Argilla resources, such as workspaces, users, datasets, and records. @@ -39,12 +42,12 @@ for dataset in my_workspace.datasets: ``` ---- +--- ## Class Reference ### `rg.Argilla` ::: argilla_sdk.client.Argilla - options: + options: heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md index 2c4edb9e99..d4968b54ab 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/dataset_records.md @@ -1,126 +1,218 @@ - +--- +hide: footer +--- # `rg.Dataset.records` ## Usage Examples -In most cases, you will not need to create a `DatasetRecords` object directly. -Instead, you can access it via the `Dataset` object: +In most cases, you will not need to create a `DatasetRecords` object directly. Instead, you can access it via the `Dataset` object: + +```python +dataset.records +``` + +!!! note "For user familiar with legacy approaches" + 1. `Dataset.records` object is used to interact with the records in a dataset. It interactively fetches records from the server in batches without using a local copy of the records. + 2. The `log` method of `Dataset.records` is used to both add and update records in a dataset. If the record includes a known `id` field, the record will be updated. If the record does not include a known `id` field, the record will be added. + ### Adding records to a dataset -To add records to a dataset, use the `add` method. Records can be added as dictionaries or as `Record` objects. Single records can also be added as a dictionary or `Record`. +To add records to a dataset, use the `log` method. Records can be added as dictionaries or as `Record` objects. Single records can also be added as a dictionary or `Record`. - + ```python -```python -# Add records to a dataset -dataset.records.add( - records=[ - { - "question": "What is the capital of France?", # 'question' matches the `rg.TextField` name - "answer": "Paris" # 'answer' matches the `rg.TextQuestion` name - }, - { - "question": "What is the capital of Germany?", - "answer": "Berlin" - }, -]) -``` + records = [ + rg.Record( + fields={ + "question": "Do you need oxygen to breathe?", + "answer": "Yes" + }, + ), + rg.Record( + fields={ + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius" + }, + ), + ] # (1) -When adding records from a native datasource, a mapping can be provided to map the keys in the native data structure to the fields and questions in Argilla. The dot notation is used to access suggestions and responses in the records. + dataset.records.log(records) + ``` -```python -dataset.records.add( - records=[ - {"input": "What is the capital of France?", "output": "Paris"}, - {"input": "What is the capital of Germany?", "output": "Berlin"}, - ], - mapping={"input": "question", "output": "answer"}, # Maps 'input' to 'question' and 'output' to 'answer' -) -``` + 1. This is an illustration of a definition. In a real world scenario, you would iterate over a data structure and create `Record` objects for each iteration. -### Iterating over records in a dataset +=== "From a data structure" -`Dataset.records` can be used to iterate over records in a dataset from the server. The records will be fetched in batches from the server:: + ```python -```python -for record in dataset.records: - print(record) + data = [ + { + "question": "Do you need oxygen to breathe?", + "answer": "Yes", + }, + { + "question": "What is the boiling point of water?", + "answer": "100 degrees Celsius", + }, + ] # (1) -# Fetch records with suggestions and responses -for record in dataset.records(with_suggestions=True, with_responses=True): - print(record.suggestions) - print(record.responses) + dataset.records.log(data) + ``` -# Filter records by a query and fetch records with vectors -for record in dataset.records(query="capital", with_vectors=True): - print(record.vectors) -``` + 1. The data structure's keys must match the fields or questions in the Argilla dataset. In this case, there are fields named `question` and `answer`. + +=== "From a data structure with a mapping" + + ```python + data = [ + { + "query": "Do you need oxygen to breathe?", + "response": "Yes", + }, + { + "query": "What is the boiling point of water?", + "response": "100 degrees Celsius", + }, + ] # (1) + dataset.records.log( + records=data, + mapping={"query": "question", "response": "answer"} # (2) + ) + + ``` + + 1. The data structure's keys must match the fields or questions in the Argilla dataset. In this case, there are fields named `question` and `answer`. + 2. The data structure has keys `query` and `response` and the Argilla dataset has `question` and `answer`. You can use the `mapping` parameter to map the keys in the data structure to the fields in the Argilla dataset. + +=== "From a Hugging Face dataset" + + You can also add records to a dataset using a Hugging Face dataset. This is useful when you want to use a dataset from the Hugging Face Hub and add it to your Argilla dataset. + + You can add the dataset where the column names correspond to the names of fields, questions, metadata or vectors in the Argilla dataset. + + If the dataset's schema does not correspond to your Argilla dataset names, you can use a `mapping` to indicate which columns in the dataset correspond to the Argilla dataset fields. + + ```python + from datasets import load_dataset + + hf_dataset = load_dataset("imdb", split="train[:100]") # (1) -Check out the [`rg.Record`](../records/record.md) class reference for more information on the properties and methods available on a record and the [`rg.Query`](../query/query.md) class reference for more information on the query syntax. + dataset.records.log(records=hf_dataset) + ``` + 1. In this example, the Hugging Face dataset matches the Argilla dataset schema. If that is not the case, you could use the `.map` of the `datasets` library to prepare the data before adding it to the Argilla dataset. + + Here we use the `mapping` parameter to specify the relationship between the Hugging Face dataset and the Argilla dataset. + + ```python + dataset.records.log(records=hf_dataset, mapping={"txt": "text", "y": "label"}) # (1) + ``` + + 1. In this case, the `txt` key in the Hugging Face dataset corresponds to the `text` field in the Argilla dataset, and the `y` key in the Hugging Face dataset corresponds to the `label` field in the Argilla dataset. + ### Updating records in a dataset -Records can also be updated using the `id` to identify the records to be updated: +Records can also be updated using the `log` method with records that contain an `id` to identify the records to be updated. As above, records can be added as dictionaries or as `Record` objects. -```python -# Add records to a dataset -dataset.records.add( - records=[ +=== "As a `Record` object" + + You can update records in a dataset by initializing a `Record` object directly and providing the `id` field. + + ```python + + records = [ + rg.Record( + metadata={"department": "toys"}, + id="2" # (1) + ), + ] # (1) + + dataset.records.log(records) + ``` + + 1. The `id` field is required to identify the record to be updated. The `id` field must be unique for each record in the dataset. If the `id` field is not provided, the record will be added as a new record. + +=== "From a data structure" + + You can also update records in a dataset by providing the `id` field in the data structure. + + ```python + + data = [ { - "id": "1", - "question": "What is the capital of France?", - "answer": "F", + "metadata": {"department": "toys"}, + "id": "2" # (1) }, + ] # (1) + + dataset.records.log(data) + ``` + + 1. The `id` field is required to identify the record to be updated. The `id` field must be unique for each record in the dataset. If the `id` field is not provided, the record will be added as a new record. + + +=== "From a data structure with a mapping" + + You can also update records in a dataset by providing the `id` field in the data structure and using a mapping to map the keys in the data structure to the fields in the dataset. + + ```python + data = [ { - "id": "2", - "question": "What is the capital of Germany?", - "answer": "Berlin" + "metadata": {"department": "toys"}, + "my_id": "2" # (1) }, ] -) -# Update records in a dataset -dataset.records.update( - records=[ - { - "id": "1", # matches id used in `Dataset.records.add` - "question": "What is the capital of France?", - "answer": "Paris", - } - ] -) -``` + dataset.records.log( + records=data, + mapping={"my_id": "id"} # (2) + ) -### Exporting records from a dataset + ``` + 1. The `id` field is required to identify the record to be updated. The `id` field must be unique for each record in the dataset. If the `id` field is not provided, the record will be added as a new record. + 2. Let's say that your data structure has keys `my_id` instead of `id`. You can use the `mapping` parameter to map the keys in the data structure to the fields in the dataset. -Records can also be exported from `Dataset.records`. Generic python exports include `to_dict` and `to_list` methods. +=== "From a Hugging Face dataset" + + You can also update records to an Argilla dataset using a Hugging Face dataset. To update records, the Hugging Face dataset must contain an `id` field to identify the records to be updated, or you can use a mapping to map the keys in the Hugging Face dataset to the fields in the Argilla dataset. + + ```python + from datasets import load_dataset + + hf_dataset = load_dataset("imdb", split="train[:100]") # (1) + + dataset.records.log(records=hf_dataset, mapping={"uuid": "id"}) # (2) + ``` + + 1. In this example, the Hugging Face dataset matches the Argilla dataset schema. + 2. The `uuid` key in the Hugging Face dataset corresponds to the `id` field in the Argilla dataset. + +### Iterating over records in a dataset + +`Dataset.records` can be used to iterate over records in a dataset from the server. The records will be fetched in batches from the server:: ```python -dataset.records.to_dict() -# {"text": ["Hello", "World"], "label": ["greeting", "greeting"]} +for record in dataset.records: + print(record) + +# Fetch records with suggestions and responses +for record in dataset.records(with_suggestions=True, with_responses=True): + print(record.suggestions) + print(record.responses) -dataset.records.to_list() -# [{"text": "Hello", "label": "greeting"}, {"text": "World", "label": "greeting"}] +# Filter records by a query and fetch records with vectors +for record in dataset.records(query="capital", with_vectors=True): + print(record.vectors) ``` +Check out the [`rg.Record`](../records/records.md) class reference for more information on the properties and methods available on a record and the [`rg.Query`](../search.md) class reference for more information on the query syntax. + --- ## Class Reference @@ -128,5 +220,5 @@ dataset.records.to_list() ### `rg.Dataset.records` ::: argilla_sdk.records.DatasetRecords - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md index 224f10a6b3..a344e5ad24 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md +++ b/argilla-sdk/docs/reference/argilla_sdk/datasets/datasets.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Dataset` `Dataset` is a class that represents a collection of records. It is used to store and manage records in Argilla. @@ -23,7 +26,7 @@ dataset = rg.Dataset( dataset.create() ``` -For a detail guide of the dataset creation and publication process, see the [Dataset how to guide](/argilla-python/how_to_guides/dataset). +For a detail guide of the dataset creation and publication process, see the [Dataset how to guide](/argilla-python/guides/how_to_guides/dataset). ### Retrieving an existing Dataset @@ -41,5 +44,5 @@ dataset = client.datasets("my_dataset") ### `rg.Dataset` ::: argilla_sdk.datasets.Dataset - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/metadata.md b/argilla-sdk/docs/reference/argilla_sdk/records/metadata.md index 687fda64b0..13f1fbc0c9 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/metadata.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/metadata.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `metadata` Metadata in argilla is a dictionary that can be attached to a record. It is used to store additional information about the record that is not part of the record's fields or responses. For example, the source of the record, the date it was created, or any other information that is relevant to the record. Metadata can be added to a record directly or as valules within a dictionary. @@ -25,7 +28,7 @@ dataset.create() Then, you can add records to the dataset with metadata that corresponds to the metadata property defined in the dataset settings: ```python -dataset_with_metadata.records.add( +dataset_with_metadata.records.log( [ {"text": "text", "label": "positive", "category": "A"}, {"text": "text", "label": "negative", "category": "B"}, diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/records.md b/argilla-sdk/docs/reference/argilla_sdk/records/records.md index 706c4e76db..bd40be858f 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/records.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/records.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Record` The `Record` object is used to represent a single record in Argilla. It contains fields, suggestions, responses, metadata, and vectors. @@ -6,39 +9,29 @@ The `Record` object is used to represent a single record in Argilla. It contains ### Creating a Record -To add records, you can pass dictionaries to the `Dataset.records.add` method. Argilla will instantiate the `Record` class based on the input data and `mapping` property. The input data keys must match the names in `rg.Settings` object, or be mapped via the dictionary passed to the `mapping` parameter. +To create records, you can use the `Record` class and pass it to the `Dataset.records.log` method. The `Record` class requires a `fields` parameter, which is a dictionary of field names and values. The field names must match the field names in the dataset's `Settings` object to be accepted. ```python dataset.records.add( records=[ - { - "question": "What is the capital of France?", - "answer": "Paris" - }, -]) -``` - -You can also create `Record` objects directly and pass them to the same method. - -```python -records = [ rg.Record( fields={"text": "Hello World, how are you?"}, - responses=[rg.Response("label", "positive", user_id=user_id)], ), ] -dataset.records.add(records=records) +) # (1) ``` +1. The Argilla dataset contains a field named `text` matching the key here. + ### Accessing Record Attributes The `Record` object has suggestions, responses, metadata, and vectors attributes that can be accessed directly whilst iterating over records in a dataset. ```python for record in dataset.records( - with_suggestions=True, - with_responses=True, - with_metadata=True, + with_suggestions=True, + with_responses=True, + with_metadata=True, with_vectors=True ): print(record.suggestions) @@ -54,8 +47,7 @@ for record in dataset.records(with_metadata=True): record.metadata = {"department": "toys"} ``` -For changes to take effect, the user must call the `update` method on the `Dataset` object. - +For changes to take effect, the user must call the `update` method on the `Dataset` object, or pass the updated records to `Dataset.records.log`. --- @@ -64,5 +56,5 @@ For changes to take effect, the user must call the `update` method on the `Datas ### `rg.Record` ::: argilla_sdk.records.Record - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/responses.md b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md index 9d7b46862e..af71cdc742 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/responses.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/responses.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Response` Class for interacting with Argilla Responses of records. Responses are answers to questions by a user. Therefore, a recod question can have multiple responses, one for each user that has answered the question. A `Response` is typically created by a user in the UI or consumed from a data source as a label, unlike a `Suggestion` which is typically created by a model prediction. @@ -9,7 +12,7 @@ Responses can be added to an instantiated `Record` directly or as a dictionary a Instantiate the `Record` and related `Response` objects: ```python -dataset.records.add( +dataset.records.log( [ rg.Record( fields={"text": "Hello World, how are you?"}, @@ -24,7 +27,7 @@ Or, add a response from a dictionary where key is the question name and value is ```python -dataset.records.add( +dataset.records.log( [ { "text": "Hello World, how are you?", @@ -62,5 +65,5 @@ for record in dataset.records: ### `rg.Response` ::: argilla_sdk.responses.Response - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md index f4ee4fc281..22b2286984 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/suggestions.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Suggestion` Class for interacting with Argilla Suggestions of records. Suggestions are typically created by a model prediction, unlike a `Response` which is typically created by a user in the UI or consumed from a data source as a label. @@ -11,7 +14,7 @@ Suggestions can be added to a record directly or via a dictionary structure. The Add a response from a dictionary where key is the question name and value is the response: ```python -dataset.records.add( +dataset.records.log( [ { "text": "Hello World, how are you?", @@ -24,7 +27,7 @@ dataset.records.add( If your data contains scores for suggestions you can add them as well via the `mapping` parameter. The following example demonstrates how to add a suggestion with a score to a record object: ```python -dataset.records.add( +dataset.records.log( [ { "prompt": "Hello World, how are you?", @@ -45,7 +48,7 @@ dataset.records.add( Or, instantiate the `Record` and related `Suggestions` objects directly, like this: ```python -dataset.records.add( +dataset.records.log( [ rg.Record( fields={"text": "Hello World, how are you?"}, @@ -71,5 +74,5 @@ for record in dataset.records(with_suggestions=True): ### `rg.Suggestion` ::: argilla_sdk.suggestions.Suggestion - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md index 53e8b5ef7b..18a7d50476 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md +++ b/argilla-sdk/docs/reference/argilla_sdk/records/vectors.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Vector` A vector is a numerical representation of a `Record` field or attribute, usually the record's text. Vectors can be used to search for similar records via the UI or SDK. Vectors can be added to a record directly or as a dictionary with a key that the matches `rg.VectorField` name. @@ -26,7 +29,7 @@ dataset.create() Then, you can add records to the dataset with vectors that correspond to the vector field defined in the dataset settings: ```python -dataset.records.add( +dataset.records.log( [ { "text": "Hello World, how are you?", @@ -39,7 +42,7 @@ dataset.records.add( Vectors can be passed using a mapping, where the key is the key in the data source and the value is the name in the dataset's setting's `rg.VectorField` object. For example, the following code adds a record with a vector using a mapping: ```python -dataset.records.add( +dataset.records.log( [ { "text": "Hello World, how are you?", @@ -53,7 +56,7 @@ dataset.records.add( Or, vectors can be instantiated and added to a record directly, like this: ```python -dataset.records.add( +dataset.records.log( [ rg.Record( fields={"text": "Hello World, how are you?"}, @@ -70,5 +73,5 @@ dataset.records.add( ### `rg.Vector` ::: argilla_sdk.vectors.Vector - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/search.md b/argilla-sdk/docs/reference/argilla_sdk/search.md index 704d0598f2..80860e9eef 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/search.md +++ b/argilla-sdk/docs/reference/argilla_sdk/search.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Query` To collect records based on searching criteria, you can use the `Query` and `Filter` classes. The `Query` class is used to define the search criteria, while the `Filter` class is used to filter the search results. `Filter` is passed to a `Query` object so you can combine multiple filters to create complex search queries. A `Query` object can also be passed to `Dataset.records` to fetch records based on the search criteria. @@ -44,11 +47,11 @@ for record in dataset.records(query=query): ### `rg.Query` ::: argilla_sdk.records._search.Query - options: + options: heading_level: 3 ### `rg.Filter` -::: argilla_sdk.records._search.Filter - options: +::: argilla_sdk.records._search.Filter + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md index 8f3bd04144..372405ed64 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/fields.md @@ -1,3 +1,7 @@ +--- +hide: footer +--- + # Fields Fields in Argilla are define the content of a record that will be reviewed by a user. @@ -36,5 +40,5 @@ data = rg.Dataset( ### `rg.TextField` ::: argilla_sdk.settings.TextField - options: + options: heading_level: 3 diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md index 82a2287fea..266a250bc6 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/metadata_property.md @@ -1,4 +1,8 @@ -# Metadata Properties +--- +hide: footer +--- + +# Metadata Properties Metadata properties are used to define metadata fields in a dataset. Metadata fields are used to store additional information about the records in the dataset. For example, the category of a record, the price of a product, or any other information that is relevant to the record. @@ -66,17 +70,17 @@ dataset = rg.Dataset( ### `rg.FloatMetadataProperty` ::: argilla_sdk.settings.FloatMetadataProperty - options: + options: heading_level: 3 ### `rg.IntegerMetadataProperty` ::: argilla_sdk.settings.IntegerMetadataProperty - options: + options: heading_level: 3 ### `rg.TermsMetadataProperty` ::: argilla_sdk.settings.TermsMetadataProperty - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md index f27643a956..32e40e7b31 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/questions.md @@ -1,3 +1,7 @@ +--- +hide: footer +--- + # Questions Questions in Argilla are the questions that will be answered as feedback. They are used to define the questions that will be answered by users or models. @@ -54,35 +58,35 @@ dataset = rg.Dataset( ### `rg.LabelQuestion` ::: argilla_sdk.settings.LabelQuestion - options: + options: heading_level: 3 ### `rg.MultiLabelQuestion` ::: argilla_sdk.settings.MultiLabelQuestion - options: + options: heading_level: 3 ### `rg.RankingQuestion` ::: argilla_sdk.settings.RankingQuestion - options: + options: heading_level: 3 ### `rg.TextQuestion` ::: argilla_sdk.settings.TextQuestion - options: + options: heading_level: 3 ### `rg.RatingQuestion` ::: argilla_sdk.settings.RatingQuestion - options: + options: heading_level: 3 ### `rg.SpanQuestion` ::: argilla_sdk.settings.SpanQuestion - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md index f945da4c72..133b892673 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/settings.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.Settings` `rg.Settings` is used to define the setttings of an Argilla `Dataset`. The settings can be used to configure the @@ -36,5 +39,5 @@ dataset.create() ### `rg.Settings` ::: argilla_sdk.settings.Settings - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md index 52292587fb..106e4b8a18 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md +++ b/argilla-sdk/docs/reference/argilla_sdk/settings/vectors.md @@ -1,6 +1,9 @@ +--- +hide: footer +--- # Vectors -Vector fields in Argilla are used to define the vector form of a record that will be reviewed by a user. +Vector fields in Argilla are used to define the vector form of a record that will be reviewed by a user. ## Usage Examples @@ -30,5 +33,5 @@ settings = rg.Settings( ### `rg.VectorField` ::: argilla_sdk.settings.VectorField - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/users.md b/argilla-sdk/docs/reference/argilla_sdk/users.md index 076cc2d466..cf58272f9f 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/users.md +++ b/argilla-sdk/docs/reference/argilla_sdk/users.md @@ -1,3 +1,6 @@ +--- +hide: footer +--- # `rg.User` A user in Argilla is a profile that uses the SDK or UI. Their profile can be used to track their feedback activity and to manage their access to the Argilla server. @@ -30,5 +33,5 @@ client.me ### `rg.User` ::: argilla_sdk.users.User - options: + options: heading_level: 3 \ No newline at end of file diff --git a/argilla-sdk/docs/reference/argilla_sdk/workspaces.md b/argilla-sdk/docs/reference/argilla_sdk/workspaces.md index 0227e746a0..ce751759d4 100644 --- a/argilla-sdk/docs/reference/argilla_sdk/workspaces.md +++ b/argilla-sdk/docs/reference/argilla_sdk/workspaces.md @@ -1,6 +1,8 @@ -# `rg.Workspace` - +--- +hide: footer +--- +# `rg.Workspace` In Argilla, workspaces are used to organize datasets in to groups. For example, you might have a workspace for each project or team. diff --git a/argilla-sdk/docs/tutorials/index.md b/argilla-sdk/docs/tutorials/index.md deleted file mode 100644 index 144ae84363..0000000000 --- a/argilla-sdk/docs/tutorials/index.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -description: Argilla-python is the reference argilla python server SDK. ---- - -# Tutorials - -These are the tutorials for the Argilla-python SDK. They provide step-by-step instructions for common scenarios, including detailed explanations and code samples. - -
- -- :material-clock-fast:{ .lg .middle } __Few-shot text classification with SetFit__ - - --- - - In this tutorial, you will learn how to use bulk labeling with semantic search from [`sentence-transformers`](#) embeddings and how to fine-tune a [`SetFit`](#) model for classification. - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Zero-shot token classification with GliNER__ - - --- - - In this tutorial, you will learn how to use zero-shot predictions from [`GliNER`](#) to fine-tune a span classification model with [`SpanMarker`](#). - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Bootstrap projects using LLMs__ - - --- - - In this tutorial, you will learn how to use LLMs to bootstrap projects for tasks like text classification, token classification, relationship extraction and summarization using [`spacy-llm`](#) - - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Multi-modal projects__ - - --- - - In this tutorial, you will learn how to use Argilla for basic multi-modal projects with PDFs, images, video and audio. We will bulk label using [`sentence-transformers`](#) CLIP embeddings and fine-tune a model with [`transformers`](#). - - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - - -- :material-clock-fast:{ .lg .middle } __Monitor for data and model drift__ - - --- - - In this tutorial, you will learn you can keep track of model performance and data quality using [`BerTopic`](#) and [`text-descriptives`](#). - - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __RAG: retrievers and reranker__ - - --- - - In this tutorial, you will learn how to monitor and optimize retrieval and reranking models in a RAG pipeline using [`haystack`](#) and [`sentence-transformers`](#). - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __RAG: LLMs__ - - --- - - In this tutorial, you will learn how to monitor and optimize generative LLMs in a RAG pipeline using [`haystack`](#) and [`trl`](#). - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Instruction-tuning an LLM__ - - --- - - In this tutorial, we will curate data for supervised fine-tuning (SFT) and fine-tune an LLM using [`trl`](#). - - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - -- :material-clock-fast:{ .lg .middle } __Preference tuning an LLM__ - - --- - - In this tutorial, we will curate data for preference alignment of an LLM in order to fine-tune using [`trl`](#) and the DPO algorithm. - - - [:octicons-arrow-right-24: Tutorial](/argilla-python/quickstart/) - - -
\ No newline at end of file diff --git a/argilla-sdk/docs/tutorials/rag_llm.md b/argilla-sdk/docs/tutorials/rag_llm.md deleted file mode 100644 index be4ffb1551..0000000000 --- a/argilla-sdk/docs/tutorials/rag_llm.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -status: new -description: This tutorial demonstrates how to create a pipeline for the LLM model using the RAG architecture. -tags: - - level:advanced - - type:generative - - technique:RAG -links: - - plugins/search.md - - insiders/index.md#how-to-become-a-sponso ---- - -# RAG: Optimizing LLM for generation \ No newline at end of file diff --git a/argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md b/argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md deleted file mode 100644 index fbca3da79f..0000000000 --- a/argilla-sdk/docs/tutorials/rag_rankers_and_retrievers.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: This tutorial demonstrates how to create a pipeline for the LLM model using the RAG architecture. -tags: - - level:intermediate - - type:predictive - - technique:RAG ---- \ No newline at end of file diff --git a/argilla-sdk/mkdocs.yml b/argilla-sdk/mkdocs.yml index 913de53861..850decc636 100644 --- a/argilla-sdk/mkdocs.yml +++ b/argilla-sdk/mkdocs.yml @@ -8,6 +8,7 @@ copyright: Copyright © 2017 - 2024 Argilla # Repository repo_name: argilla-io/argilla-python repo_url: https://github.com/argilla-io/argilla-python +edit_uri: edit/main/docs/ extra: version: @@ -31,10 +32,19 @@ theme: favicon: assets/favicon.ico features: - navigation.instant + - navigation.sections - navigation.tabs + - navigation.footer + - navigation.top + - navigation.tracking + - navigation.path - toc.follow - content.code.copy - content.code.annotate + - content.action.edit + - search.suggest + - search.highlight + - search.share icon: repo: fontawesome/brands/github palette: @@ -75,6 +85,7 @@ markdown_extensions: - pymdownx.inlinehilite - pymdownx.snippets - pymdownx.superfences + - pymdownx.details - pymdownx.tabbed: alternate_style: true - footnotes @@ -113,37 +124,25 @@ plugins: private: true - social - mknotebooks - - tags: - tags_file: tutorials/index.md - nav: - Argilla: index.md - Getting started: - Quickstart: getting_started/quickstart.md - Installation: getting_started/installation.md - # - FAQ: getting_started/faq.md - - How-to guides: - - how_to_guides/index.md - - Manage users and credentials: how_to_guides/user.md - - Manage workspaces: how_to_guides/workspace.md - - Manage and create datasets: how_to_guides/dataset.md - - Add, update, and delete records: how_to_guides/record.md - - Query, filter, and export records: how_to_guides/query_export.md - # - Distribute annotation work: how_to_guides/distribute.md - # - Compute metrics and KPIs: - # - how_to_guides/metrics/index.md - # - Dataset progress: how_to_guides/metrics/dataset.md - # - Model performance: how_to_guides/metrics/model.md - # - Annotator performance: how_to_guides/metrics/annotator.md - # - Fine-tune a model: fine_tune.md - # - Tutorials: - # - tutorials/index.md - # - tutorials/rag_llm.md - # - tutorials/rag_rankers_and_retrievers.md - # - Integrations: - # - integrations/index.md + - FAQ: getting_started/faq.md + - Guides: + - How-to guides: + - guides/how_to_guides/index.md + - Manage users and credentials: guides/how_to_guides/user.md + - Manage workspaces: guides/how_to_guides/workspace.md + - Manage and create datasets: guides/how_to_guides/dataset.md + - Add, update, and delete records: guides/how_to_guides/record.md + - Query, filter, and export records: guides/how_to_guides/query_export.md - API Reference: - Python SDK: reference/argilla_sdk/ + - Community: + - community/index.md + - How to contribute?: community/contributor.md - UI Demo ↗: - - https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA== + - https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA== \ No newline at end of file diff --git a/argilla-sdk/src/argilla_sdk/_api/_base.py b/argilla-sdk/src/argilla_sdk/_api/_base.py index 0a535aa9bd..db102866ba 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_base.py +++ b/argilla-sdk/src/argilla_sdk/_api/_base.py @@ -16,7 +16,7 @@ from typing import Generic, TYPE_CHECKING, TypeVar from uuid import UUID -from argilla_sdk._helpers._mixins import LoggingMixin +from argilla_sdk._helpers import LoggingMixin if TYPE_CHECKING: diff --git a/argilla-sdk/src/argilla_sdk/_api/_datasets.py b/argilla-sdk/src/argilla_sdk/_api/_datasets.py index 9fff950d5a..bc0f4358a1 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_datasets.py +++ b/argilla-sdk/src/argilla_sdk/_api/_datasets.py @@ -43,7 +43,7 @@ def create(self, dataset: "DatasetModel") -> "DatasetModel": response.raise_for_status() response_json = response.json() dataset = self._model_from_json(response_json=response_json) - self.log(message=f"Created dataset {dataset.name}") + self._log_message(message=f"Created dataset {dataset.name}") return dataset @api_error_handler @@ -54,7 +54,7 @@ def update(self, dataset: "DatasetModel") -> "DatasetModel": response.raise_for_status() response_json = response.json() dataset = self._model_from_json(response_json=response_json) - self.log(message=f"Updated dataset {dataset.url}") + self._log_message(message=f"Updated dataset {dataset.url}") return dataset @api_error_handler @@ -63,14 +63,14 @@ def get(self, dataset_id: UUID) -> "DatasetModel": response.raise_for_status() response_json = response.json() dataset = self._model_from_json(response_json=response_json) - self.log(message=f"Got dataset {dataset.url}") + self._log_message(message=f"Got dataset {dataset.url}") return dataset @api_error_handler def delete(self, dataset_id: UUID) -> None: response = self.http_client.delete(f"{self.url_stub}/{dataset_id}") response.raise_for_status() - self.log(message=f"Deleted dataset {dataset_id}") + self._log_message(message=f"Deleted dataset {dataset_id}") def exists(self, dataset_id: UUID) -> bool: response = self.http_client.get(f"{self.url_stub}/{dataset_id}") @@ -85,7 +85,7 @@ def publish(self, dataset_id: UUID) -> "DatasetModel": response = self.http_client.put(url=f"{self.url_stub}/{dataset_id}/publish") response.raise_for_status() response_json = response.json() - self.log(message=f"Published dataset {dataset_id}") + self._log_message(message=f"Published dataset {dataset_id}") return self._model_from_json(response_json=response_json) @api_error_handler @@ -96,14 +96,14 @@ def list(self, workspace_id: Optional[UUID] = None) -> List["DatasetModel"]: datasets = self._model_from_jsons(response_jsons=response_json["items"]) if workspace_id: datasets = [dataset for dataset in datasets if dataset.workspace_id == workspace_id] - self.log(message=f"Listed {len(datasets)} datasets") + self._log_message(message=f"Listed {len(datasets)} datasets") return datasets def get_by_name_and_workspace_id(self, name: str, workspace_id: UUID) -> Optional["DatasetModel"]: datasets = self.list(workspace_id=workspace_id) for dataset in datasets: if dataset.name == name: - self.log(message=f"Got dataset {dataset.name}") + self._log_message(message=f"Got dataset {dataset.name}") return dataset def name_exists(self, name: str, workspace_id: UUID) -> bool: diff --git a/argilla-sdk/src/argilla_sdk/_api/_fields.py b/argilla-sdk/src/argilla_sdk/_api/_fields.py index 7d34600017..dc8a8f3ac6 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_fields.py +++ b/argilla-sdk/src/argilla_sdk/_api/_fields.py @@ -16,14 +16,15 @@ from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler -from argilla_sdk._models import FieldBaseModel, TextFieldModel, FieldModel +from argilla_sdk._models import FieldModel __all__ = ["FieldsAPI"] -class FieldsAPI(ResourceAPI[FieldBaseModel]): +class FieldsAPI(ResourceAPI[FieldModel]): """Manage datasets via the API""" http_client: httpx.Client @@ -33,36 +34,39 @@ class FieldsAPI(ResourceAPI[FieldBaseModel]): ################ @api_error_handler - def create(self, dataset_id: UUID, field: FieldModel) -> FieldModel: - url = f"/api/v1/datasets/{dataset_id}/fields" + def get(self, id: UUID) -> FieldModel: + raise NotImplementedError() + + @api_error_handler + def create(self, field: FieldModel) -> FieldModel: + url = f"/api/v1/datasets/{field.dataset_id}/fields" response = self.http_client.post(url=url, json=field.model_dump()) response.raise_for_status() response_json = response.json() - field_model = self._model_from_json(response_json=response_json) - self.log(message=f"Created field {field_model.name} in dataset {dataset_id}") - return field_model + created_field = self._model_from_json(response_json=response_json) + self._log_message(message=f"Created field {created_field.name} in dataset {field.dataset_id}") + return created_field @api_error_handler def update(self, field: FieldModel) -> FieldModel: - # TODO: Implement update method for fields with server side ID - raise NotImplementedError + url = f"/api/v1/fields/{field.id}" + response = self.http_client.patch(url, json=field.model_dump()) + response.raise_for_status() + response_json = response.json() + updated_field = self._model_from_json(response_json) + self._log_message(message=f"Update field {updated_field.name} with id {field.id}") + return updated_field @api_error_handler - def delete(self, dataset_id: UUID) -> None: - # TODO: Implement delete method for fields with server side ID - raise NotImplementedError + def delete(self, field_id: UUID) -> None: + url = f"/api/v1/fields/{field_id}" + self.http_client.delete(url).raise_for_status() + self._log_message(message=f"Deleted field {field_id}") #################### # Utility methods # #################### - def create_many(self, dataset_id: UUID, fields: List[FieldModel]) -> List[FieldModel]: - field_models = [] - for field in fields: - field_model = self.create(dataset_id=dataset_id, field=field) - field_models.append(field_model) - return field_models - @api_error_handler def list(self, dataset_id: UUID) -> List[FieldModel]: response = self.http_client.get(f"/api/v1/datasets/{dataset_id}/fields") @@ -78,19 +82,7 @@ def list(self, dataset_id: UUID) -> List[FieldModel]: def _model_from_json(self, response_json: Dict) -> FieldModel: response_json["inserted_at"] = self._date_from_iso_format(date=response_json["inserted_at"]) response_json["updated_at"] = self._date_from_iso_format(date=response_json["updated_at"]) - return self._get_model_from_response(response_json=response_json) + return FieldModel(**response_json) def _model_from_jsons(self, response_jsons: List[Dict]) -> List[FieldModel]: return list(map(self._model_from_json, response_jsons)) - - def _get_model_from_response(self, response_json: Dict) -> FieldModel: - try: - field_type = response_json.get("settings", {}).get("type") - except Exception as e: - raise ValueError("Invalid response type: missing 'settings.type' in response") from e - if field_type == "text": - # TODO: Avoid apply validations here (check_fields=False?) - return TextFieldModel(**response_json) - else: - # TODO: Add more field types - raise ValueError(f"Invalid field type: {field_type}") diff --git a/argilla-sdk/src/argilla_sdk/_api/_metadata.py b/argilla-sdk/src/argilla_sdk/_api/_metadata.py index 07491296c1..beef1f7807 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_api/_metadata.py @@ -16,6 +16,7 @@ from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import MetadataFieldModel @@ -33,53 +34,44 @@ class MetadataAPI(ResourceAPI[MetadataFieldModel]): ################ @api_error_handler - def create(self, dataset_id: UUID, metadata_field: MetadataFieldModel) -> MetadataFieldModel: - url = f"/api/v1/datasets/{dataset_id}/metadata-properties" - response = self.http_client.post(url=url, json=metadata_field.model_dump()) + def get(self, metadata_id: UUID) -> MetadataFieldModel: + raise NotImplementedError() + + @api_error_handler + def create(self, metadata: MetadataFieldModel) -> MetadataFieldModel: + url = f"/api/v1/datasets/{metadata.dataset_id}/metadata-properties" + response = self.http_client.post(url=url, json=metadata.model_dump()) response.raise_for_status() response_json = response.json() - metadata_field_model = self._model_from_json(response_json=response_json) - self.log(message=f"Created metadata field {metadata_field_model.name} in dataset {dataset_id}") - return metadata_field_model + created_metadata = self._model_from_json(response_json=response_json) + self._log_message(message=f"Created metadata field {created_metadata.name} in dataset {metadata.dataset_id}") + return created_metadata @api_error_handler - def update(self, metadata_field: MetadataFieldModel) -> MetadataFieldModel: - url = f"/api/v1/metadata-properties/{metadata_field.id}" - response = self.http_client.patch(url=url, json=metadata_field.model_dump()) + def update(self, metadata: MetadataFieldModel) -> MetadataFieldModel: + url = f"/api/v1/metadata-properties/{metadata.id}" + response = self.http_client.patch(url=url, json=metadata.model_dump()) response.raise_for_status() response_json = response.json() - metadata_field_model = self._model_from_json(response_json=response_json) - self.log(message=f"Updated field {metadata_field_model.name}") - return metadata_field_model + updated_metadata = self._model_from_json(response_json=response_json) + self._log_message(message=f"Updated metadata field {updated_metadata.name}") + return updated_metadata - @api_error_handler - def delete(self, id: UUID) -> None: - url = f"/api/v1/metadata-properties/{id}" + def delete(self, metadata_id: UUID) -> None: + url = f"/api/v1/metadata-properties/{metadata_id}" self.http_client.delete(url=url).raise_for_status() - self.log(message=f"Deleted field {id}") - - @api_error_handler - def get(self, id: UUID) -> MetadataFieldModel: - raise NotImplementedError() + self._log_message(message=f"Deleted metadata field {metadata_id}") #################### # Utility methods # #################### - def create_many(self, dataset_id: UUID, metadata_fields: List[MetadataFieldModel]) -> List[MetadataFieldModel]: - metadata_field_models = [] - for metadata_field in metadata_fields: - metadata_field_model = self.create(dataset_id=dataset_id, metadata_field=metadata_field) - metadata_field_models.append(metadata_field_model) - return metadata_field_models - @api_error_handler def list(self, dataset_id: UUID) -> List[MetadataFieldModel]: response = self.http_client.get(f"/api/v1/me/datasets/{dataset_id}/metadata-properties") response.raise_for_status() response_json = response.json() - metadata_field_model = self._model_from_jsons(response_jsons=response_json["items"]) - return metadata_field_model + return self._model_from_jsons(response_jsons=response_json["items"]) #################### # Private methods # diff --git a/argilla-sdk/src/argilla_sdk/_api/_questions.py b/argilla-sdk/src/argilla_sdk/_api/_questions.py index 5e29c3e9a7..6d29fad72b 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_questions.py +++ b/argilla-sdk/src/argilla_sdk/_api/_questions.py @@ -61,7 +61,7 @@ def create( response.raise_for_status() response_json = response.json() question_model = self._model_from_json(response_json=response_json) - self.log(message=f"Created question {question_model.name} in dataset {dataset_id}") + self._log_message(message=f"Created question {question_model.name} in dataset {dataset_id}") return question_model @api_error_handler @@ -117,7 +117,7 @@ def _get_model_from_response(self, response_json: Dict) -> QuestionModel: question_class = self._TYPE_TO_MODEL_CLASS.get(question_type) if question_class is None: - self.log(message=f"Unknown question type: {question_type}") + self._log_message(message=f"Unknown question type: {question_type}") question_class = QuestionBaseModel return question_class(**response_json, check_fields=False) diff --git a/argilla-sdk/src/argilla_sdk/_api/_records.py b/argilla-sdk/src/argilla_sdk/_api/_records.py index ef3cd6eaba..5aa4198d4a 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_records.py +++ b/argilla-sdk/src/argilla_sdk/_api/_records.py @@ -57,7 +57,7 @@ def update(self, record: RecordModel) -> RecordModel: def delete(self, record_id: UUID) -> None: response = self.http_client.delete(f"/api/v1/records/{record_id}") response.raise_for_status() - self.log(message=f"Deleted record {record_id}") + self._log_message(message=f"Deleted record {record_id}") #################### # Utility methods # @@ -140,7 +140,7 @@ def create_many(self, dataset_id: UUID, records: List[RecordModel]) -> None: json={"items": record_dicts}, ) response.raise_for_status() - self.log(message=f"Created {len(records)} records in dataset {dataset_id}") + self._log_message(message=f"Created {len(records)} records in dataset {dataset_id}") # TODO: Once server returns the records, return them here @api_error_handler @@ -152,7 +152,7 @@ def update_many(self, dataset_id: UUID, records: List[RecordModel]) -> None: json={"items": record_dicts}, ) response.raise_for_status() - self.log(message=f"Updated {len(records)} records in dataset {dataset_id}") + self._log_message(message=f"Updated {len(records)} records in dataset {dataset_id}") @api_error_handler def bulk_create( @@ -167,7 +167,7 @@ def bulk_create( ) response.raise_for_status() response_json = response.json() - self.log(message=f"Created {len(records)} in dataset {dataset_id}") + self._log_message(message=f"Created {len(records)} in dataset {dataset_id}") return self._model_from_jsons(response_jsons=response_json["items"]) @api_error_handler @@ -182,7 +182,7 @@ def bulk_upsert(self, dataset_id: UUID, records: List[RecordModel]) -> Tuple[Lis response.raise_for_status() response_json = response.json() updated = len(response_json.get("updated_item_ids", [])) - self.log( + self._log_message( message=f"Updated {updated} records and create {len(records) - updated} records in dataset {dataset_id}" ) return self._model_from_jsons(response_jsons=response_json["items"]), updated diff --git a/argilla-sdk/src/argilla_sdk/_api/_users.py b/argilla-sdk/src/argilla_sdk/_api/_users.py index 7105bf0b57..09238af81f 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_users.py +++ b/argilla-sdk/src/argilla_sdk/_api/_users.py @@ -39,7 +39,7 @@ def create(self, user: UserModel) -> UserModel: json_body = user.model_dump() response = self.http_client.post("/api/users", json=json_body).raise_for_status() user_created = self._model_from_json(response_json=response.json()) - self.log(message=f"Created user {user_created.username}") + self._log_message(message=f"Created user {user_created.username}") return user_created @@ -50,7 +50,7 @@ def get(self, user_id: UUID) -> UserModel: response.raise_for_status() response_json = response.json() user = self._model_from_json(response_json=response_json) - self.log(message=f"Got user {user.username}") + self._log_message(message=f"Got user {user.username}") return user def exist(self, user_id: UUID) -> bool: @@ -61,7 +61,7 @@ def exist(self, user_id: UUID) -> bool: @api_error_handler def delete(self, user_id: UUID) -> None: self.http_client.delete(url=f"/api/users/{user_id}").raise_for_status() - self.log(message=f"Deleted user {id}") + self._log_message(message=f"Deleted user {id}") #################### # V0 API methods # @@ -73,7 +73,7 @@ def list(self) -> List[UserModel]: response.raise_for_status() response_json = response.json() users = self._model_from_jsons(response_jsons=response_json) - self.log(message=f"Listed {len(users)} users") + self._log_message(message=f"Listed {len(users)} users") return users @api_error_handler @@ -82,7 +82,7 @@ def list_by_workspace_id(self, workspace_id: UUID) -> List[UserModel]: response.raise_for_status() response_json = response.json() users = self._model_from_jsons(response_jsons=response_json) - self.log(message=f"Listed {len(users)} users") + self._log_message(message=f"Listed {len(users)} users") return users @api_error_handler @@ -91,19 +91,19 @@ def get_me(self) -> UserModel: response.raise_for_status() response_json = response.json() user = self._model_from_json(response_json=response_json) - self.log(message=f"Got user {user.username}") + self._log_message(message=f"Got user {user.username}") return user @api_error_handler def add_to_workspace(self, workspace_id: UUID, user_id: UUID) -> "UserModel": response = self.http_client.post(url=f"/api/workspaces/{workspace_id}/users/{user_id}").raise_for_status() - self.log(message=f"Added user {user_id} to workspace {workspace_id}") + self._log_message(message=f"Added user {user_id} to workspace {workspace_id}") return self._model_from_json(response_json=response.json()) @api_error_handler def delete_from_workspace(self, workspace_id: UUID, user_id: UUID) -> "UserModel": response = self.http_client.delete(url=f"/api/workspaces/{workspace_id}/users/{user_id}").raise_for_status() - self.log(message=f"Deleted user {user_id} from workspace {workspace_id}") + self._log_message(message=f"Deleted user {user_id} from workspace {workspace_id}") return self._model_from_json(response_json=response.json()) #################### diff --git a/argilla-sdk/src/argilla_sdk/_api/_vectors.py b/argilla-sdk/src/argilla_sdk/_api/_vectors.py index c375bbe41e..211924def4 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_vectors.py +++ b/argilla-sdk/src/argilla_sdk/_api/_vectors.py @@ -16,6 +16,7 @@ from uuid import UUID import httpx + from argilla_sdk._api._base import ResourceAPI from argilla_sdk._exceptions import api_error_handler from argilla_sdk._models import VectorFieldModel @@ -33,36 +34,36 @@ class VectorsAPI(ResourceAPI[VectorFieldModel]): ################ @api_error_handler - def create(self, dataset_id: UUID, vector: VectorFieldModel) -> VectorFieldModel: - url = f"/api/v1/datasets/{dataset_id}/vectors-settings" + def create(self, vector: VectorFieldModel) -> VectorFieldModel: + url = f"/api/v1/datasets/{vector.dataset_id}/vectors-settings" response = self.http_client.post(url=url, json=vector.model_dump()) response.raise_for_status() response_json = response.json() - vector_model = self._model_from_json(response_json=response_json) - self.log(message=f"Created vector {vector_model.name} in dataset {dataset_id}") - return vector_model + created_vector = self._model_from_json(response_json=response_json) + self._log_message(message=f"Created vector {created_vector.name} in dataset {created_vector.dataset_id}") + return created_vector @api_error_handler def update(self, vector: VectorFieldModel) -> VectorFieldModel: - # TODO: Implement update method for vectors with server side ID - raise NotImplementedError + url = f"/api/v1/vectors-settings/{vector.id}" + response = self.http_client.patch(url, json=vector.model_dump()) + response.raise_for_status() + response_json = response.json() + updated_vector = self._model_from_json(response_json) + self._log_message(message=f"Updated vector {updated_vector.name} with id {updated_vector.id}") + return updated_vector @api_error_handler def delete(self, vector_id: UUID) -> None: - # TODO: Implement delete method for vectors with server side ID - raise NotImplementedError + url = f"/api/v1/vectors-settings/{vector_id}" + response = self.http_client.delete(url) + response.raise_for_status() + self._log_message(message=f"Deleted vector with id {vector_id}") #################### # Utility methods # #################### - def create_many(self, dataset_id: UUID, vectors: List[VectorFieldModel]) -> List[VectorFieldModel]: - vector_models = [] - for vector in vectors: - vector_model = self.create(dataset_id=dataset_id, vector=vector) - vector_models.append(vector_model) - return vector_models - @api_error_handler def list(self, dataset_id: UUID) -> List[VectorFieldModel]: response = self.http_client.get(f"/api/v1/datasets/{dataset_id}/vectors-settings") diff --git a/argilla-sdk/src/argilla_sdk/_api/_workspaces.py b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py index 89c8becf57..a3bbdf7d29 100644 --- a/argilla-sdk/src/argilla_sdk/_api/_workspaces.py +++ b/argilla-sdk/src/argilla_sdk/_api/_workspaces.py @@ -39,7 +39,7 @@ def create(self, workspace: WorkspaceModel) -> WorkspaceModel: response.raise_for_status() response_json = response.json() workspace = self._model_from_json(json_workspace=response_json) - self.log(message=f"Created workspace {workspace.name}") + self._log_message(message=f"Created workspace {workspace.name}") return workspace @api_error_handler @@ -69,7 +69,7 @@ def list(self) -> List[WorkspaceModel]: response.raise_for_status() response_json = response.json() workspaces = self._model_from_jsons(json_workspaces=response_json["items"]) - self.log(message=f"Got {len(workspaces)} workspaces") + self._log_message(message=f"Got {len(workspaces)} workspaces") return workspaces @api_error_handler @@ -78,7 +78,7 @@ def list_by_user_id(self, user_id: UUID) -> List[WorkspaceModel]: response.raise_for_status() response_json = response.json() workspaces = self._model_from_jsons(json_workspaces=response_json["items"]) - self.log(message=f"Got {len(workspaces)} workspaces") + self._log_message(message=f"Got {len(workspaces)} workspaces") return workspaces @api_error_handler @@ -87,14 +87,14 @@ def list_current_user_workspaces(self) -> List[WorkspaceModel]: response.raise_for_status() response_json = response.json() workspaces = self._model_from_jsons(json_workspaces=response_json["items"]) - self.log(message=f"Got {len(workspaces)} workspaces") + self._log_message(message=f"Got {len(workspaces)} workspaces") return workspaces @api_error_handler def get_by_name(self, name: str) -> Optional[WorkspaceModel]: for workspace in self.list(): if workspace.name == name: - self.log(message=f"Got workspace {workspace.name}") + self._log_message(message=f"Got workspace {workspace.name}") return workspace @api_error_handler @@ -102,14 +102,14 @@ def add_user(self, workspace_id: UUID, user_id: UUID) -> None: # TODO: This method is already defined in UsersAPI and should be removed from here response = self.http_client.post(f"{self.url_stub}/{workspace_id}/users/{user_id}") response.raise_for_status() - self.log(message=f"Added user {user_id} to workspace {workspace_id}") + self._log_message(message=f"Added user {user_id} to workspace {workspace_id}") @api_error_handler def remove_user(self, workspace_id: UUID, user_id: UUID) -> None: # TODO: This method is already defined in UsersAPI and should be removed from here response = self.http_client.delete(f"{self.url_stub}/{workspace_id}/users/{user_id}") response.raise_for_status() - self.log(message=f"Removed user {user_id} from workspace {workspace_id}") + self._log_message(message=f"Removed user {user_id} from workspace {workspace_id}") #################### # Private methods # diff --git a/argilla-sdk/src/argilla_sdk/_helpers/__init__.py b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py index 474f7bf4ef..1d5dc66657 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/__init__.py @@ -11,5 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + from ._dataclasses import * # noqa from ._iterator import * # noqa +from ._log import * # noqa +from ._uuid import * # noqa diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_log.py b/argilla-sdk/src/argilla_sdk/_helpers/_log.py index a8fc36c48e..a3cb88565e 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_log.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_log.py @@ -24,7 +24,7 @@ } -def log(message: str, level: str = "info") -> None: +def log_message(message: str, level: str = "info") -> None: """Log a message at the specified level. Args: message (str): The message to log. @@ -32,3 +32,12 @@ def log(message: str, level: str = "info") -> None: """ level_int = LOG_LEVEL_MAP.get(level, logging.INFO) logging.log(level=level_int, msg=message) + + +class LoggingMixin: + """A utility mixin for logging from a `Resource` class.""" + + def _log_message(self, message: str, level: str = "info") -> None: + class_name = self.__class__.__name__ + message = f"{class_name}: {message}" + log_message(level=level, message=message) diff --git a/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py b/argilla-sdk/src/argilla_sdk/_helpers/_uuid.py similarity index 74% rename from argilla-sdk/src/argilla_sdk/_helpers/_mixins.py rename to argilla-sdk/src/argilla_sdk/_helpers/_uuid.py index c5b4aefc5a..f3a0b59613 100644 --- a/argilla-sdk/src/argilla_sdk/_helpers/_mixins.py +++ b/argilla-sdk/src/argilla_sdk/_helpers/_uuid.py @@ -15,22 +15,12 @@ from typing import Optional, Union from uuid import UUID -from argilla_sdk._helpers._log import log +class UUIDUtilities: + """A utility for UUID operations with error handling.""" -class LoggingMixin: - """A utility mixin for logging.""" - - def log(self, message: str, level: str = "info") -> None: - class_name = self.__class__.__name__ - message = f"{class_name}: {message}" - log(level=level, message=message) - - -class UUIDMixin: - """A utility mixin for UUID operations with error handling.""" - - def _uuid_as_str(self, uuid: UUID) -> str: + @staticmethod + def _uuid_as_str(uuid: UUID) -> str: """Converts UUID to string Args: uuid (UUID): The UUID to convert @@ -42,7 +32,8 @@ def _uuid_as_str(self, uuid: UUID) -> str: except AttributeError as e: raise ValueError(f"Invalid UUID to be converted into string: {uuid}") from e - def _str_as_uuid(self, uuid: str) -> UUID: + @staticmethod + def _str_as_uuid(uuid: str) -> UUID: """Converts string to UUID with and without hyphens. Args: uuid (str): The string to convert @@ -54,7 +45,8 @@ def _str_as_uuid(self, uuid: str) -> UUID: except AttributeError as e: raise ValueError(f"Invalid str to be converted into UUID: {uuid}") from e - def _convert_optional_uuid(self, uuid: Optional[Union[UUID, str]]) -> Optional[UUID]: + @classmethod + def convert_optional_uuid(cls, uuid: Optional[Union[UUID, str]]) -> Optional[UUID]: """Converts optional UUID to UUID or leaves as none Args: uuid (Optional[Union[UUID, str]]): The UUID to convert @@ -66,6 +58,6 @@ def _convert_optional_uuid(self, uuid: Optional[Union[UUID, str]]) -> Optional[U elif uuid is None: return None elif isinstance(uuid, str): - return self._str_as_uuid(uuid) + return cls._str_as_uuid(uuid) else: raise ValueError(f"Invalid type for UUID: {type(uuid)}") diff --git a/argilla-sdk/src/argilla_sdk/_models/__init__.py b/argilla-sdk/src/argilla_sdk/_models/__init__.py index f8de4d78a6..b7a2fa5c57 100644 --- a/argilla-sdk/src/argilla_sdk/_models/__init__.py +++ b/argilla-sdk/src/argilla_sdk/_models/__init__.py @@ -32,9 +32,8 @@ ScopeModel, ) from argilla_sdk._models._settings._fields import ( - TextFieldModel, - FieldSettings, - FieldBaseModel, + FieldModel, + TextFieldSettings, FieldModel, ) from argilla_sdk._models._settings._questions import ( diff --git a/argilla-sdk/src/argilla_sdk/_models/_record/_record.py b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py index 252befe74c..9c98ce1a8b 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_record/_record.py +++ b/argilla-sdk/src/argilla_sdk/_models/_record/_record.py @@ -26,7 +26,7 @@ class RecordModel(ResourceModel): """Schema for the records of a `Dataset`""" - fields: Dict[str, Union[str, None]] + fields: Optional[Dict[str, Union[str, None]]] = None metadata: Optional[Union[List[MetadataModel], Dict[str, MetadataValue]]] = Field(default_factory=dict) vectors: Optional[List[VectorModel]] = Field(default_factory=list) responses: Optional[List[UserResponseModel]] = Field(default_factory=list) @@ -48,6 +48,13 @@ def serialize_metadata(self, value: List[MetadataModel]) -> Dict[str, Any]: """Serialize metadata to a dictionary of key-value pairs based on the metadata name and value.""" return {metadata.name: metadata.value for metadata in value} + @field_serializer("fields", when_used="always") + def serialize_empty_fields(self, value: Dict[str, Union[str, None]]) -> Dict[str, Union[str, None]]: + """Serialize empty fields to None.""" + if isinstance(value, dict) and len(value) == 0: + return None + return value + @field_validator("metadata", mode="before") @classmethod def validate_metadata(cls, metadata: Union[List[MetadataModel], dict]) -> List[MetadataModel]: diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py index d698d4bf7c..fe7d7c902a 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_fields.py @@ -12,27 +12,28 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional +from typing import Optional, Literal from uuid import UUID -from pydantic import BaseModel, field_serializer, field_validator, Field +from pydantic import BaseModel, field_serializer, field_validator from pydantic_core.core_schema import ValidationInfo -from argilla_sdk._helpers._log import log +from argilla_sdk._helpers import log_message +from argilla_sdk._models import ResourceModel -class FieldSettings(BaseModel): - type: str = Field(validate_default=True) +class TextFieldSettings(BaseModel): + type: Literal["text"] = "text" use_markdown: Optional[bool] = False -class FieldBaseModel(BaseModel): - id: Optional[UUID] = None +class FieldModel(ResourceModel): name: str - title: Optional[str] = None required: bool = True description: Optional[str] = None + settings: TextFieldSettings = TextFieldSettings(use_markdown=False) + dataset_id: Optional[UUID] = None @field_validator("name") @classmethod @@ -45,16 +46,9 @@ def __name_lower(cls, name): def __title_default(cls, title: str, info: ValidationInfo) -> str: data = info.data validated_title = title or data["name"] - log(f"TextField title is {validated_title}") + log_message(f"TextField title is {validated_title}") return validated_title - @field_serializer("id", when_used="unless-none") + @field_serializer("id", "dataset_id", when_used="unless-none") def serialize_id(self, value: UUID) -> str: return str(value) - - -class TextFieldModel(FieldBaseModel): - settings: FieldSettings = FieldSettings(type="text", use_markdown=False) - - -FieldModel = TextFieldModel diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py index 5fff8e19fb..272c051cd3 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_metadata.py @@ -19,6 +19,7 @@ from pydantic import BaseModel, Field, field_serializer, field_validator, model_validator from argilla_sdk._exceptions import MetadataError +from argilla_sdk._models import ResourceModel class MetadataPropertyType(str, Enum): @@ -36,9 +37,7 @@ class TermsMetadataPropertySettings(BaseMetadataPropertySettings): type: Literal[MetadataPropertyType.terms] values: Optional[List[str]] = None - @field_validator( - "values", - ) + @field_validator("values") @classmethod def __validate_values(cls, values): if values is None: @@ -94,10 +93,9 @@ class FloatMetadataPropertySettings(NumericMetadataPropertySettings): ] -class MetadataFieldModel(BaseModel): +class MetadataFieldModel(ResourceModel): """The schema definition of a metadata field in an Argilla dataset.""" - id: Optional[UUID] = None name: str settings: MetadataPropertySettings @@ -105,6 +103,8 @@ class MetadataFieldModel(BaseModel): title: Optional[str] = None visible_for_annotators: Optional[bool] = True + dataset_id: Optional[UUID] = None + @field_validator("name") @classmethod def __name_lower(cls, name): @@ -117,7 +117,7 @@ def __title_default(cls, title, values): validated_title = title or values.data["name"] return validated_title - @field_serializer("id", when_used="unless-none") + @field_serializer("id", "dataset_id", when_used="unless-none") def serialize_id(self, value: UUID) -> str: return str(value) diff --git a/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py index c518809d2c..8b93293805 100644 --- a/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py +++ b/argilla-sdk/src/argilla_sdk/_models/_settings/_vectors.py @@ -15,18 +15,17 @@ from typing import Optional from uuid import UUID -from pydantic import BaseModel, field_validator, field_serializer +from pydantic import field_validator, field_serializer from pydantic_core.core_schema import ValidationInfo -from argilla_sdk._helpers._log import log +from argilla_sdk._models import ResourceModel +from argilla_sdk._helpers import log_message -class VectorFieldModel(BaseModel): +class VectorFieldModel(ResourceModel): name: str title: Optional[str] = None dimensions: int - - id: Optional[UUID] = None dataset_id: Optional[UUID] = None @field_serializer("id", "dataset_id", when_used="unless-none") @@ -44,7 +43,7 @@ def _name_lower(cls, name): def _title_default(cls, title: str, info: ValidationInfo) -> str: data = info.data validated_title = title or data["name"] - log(f"TextField title is {validated_title}") + log_message(f"TextField title is {validated_title}") return validated_title @field_validator("dimensions") diff --git a/argilla-sdk/src/argilla_sdk/_resource.py b/argilla-sdk/src/argilla_sdk/_resource.py index 4603cf7bd6..c9cd668f1c 100644 --- a/argilla-sdk/src/argilla_sdk/_resource.py +++ b/argilla-sdk/src/argilla_sdk/_resource.py @@ -17,7 +17,7 @@ from uuid import UUID from argilla_sdk._exceptions import ArgillaSerializeError -from argilla_sdk._helpers._mixins import LoggingMixin, UUIDMixin +from argilla_sdk._helpers import LoggingMixin if TYPE_CHECKING: from argilla_sdk.client import Argilla @@ -25,7 +25,7 @@ from argilla_sdk._api._base import ResourceAPI -class Resource(LoggingMixin, UUIDMixin): +class Resource(LoggingMixin): """Base class for all resources (Dataset, Workspace, User, etc.)""" _model: "ResourceModel" @@ -79,29 +79,29 @@ def api_model(self): def create(self) -> "Resource": response_model = self._api.create(self._model) - self._sync(response_model) + self._model = response_model self._update_last_api_call() - self.log(f"Resource created: {self}") + self._log_message(f"Resource created: {self}") return self def get(self) -> "Resource": response_model = self._api.get(self._model.id) - self._sync(response_model) + self._model = response_model self._update_last_api_call() - self.log(f"Resource fetched: {self}") + self._log_message(f"Resource fetched: {self}") return self def update(self) -> "Resource": response_model = self._api.update(self._model) - self._sync(response_model) + self._model = response_model self._update_last_api_call() - self.log(f"Resource updated: {self}") + self._log_message(f"Resource updated: {self}") return self def delete(self) -> None: self._api.delete(self._model.id) self._update_last_api_call() - self.log(f"Resource deleted: {self}") + self._log_message(f"Resource deleted: {self}") ############################ # Serialization @@ -119,20 +119,6 @@ def serialize_json(self) -> str: except Exception as e: raise ArgillaSerializeError(f"Failed to serialize the resource. {e.__class__.__name__}") from e - def _sync(self, model: "ResourceModel"): - """Updates the resource with the ClientAPI that is used to interact with - Argilla and adds an updated model to the resource. - Args: - model (Union[WorkspaceModel, UserModel, DatasetModel]): The updated model - Returns: - Self: The updated resource - """ - self._model = model - # set all attributes from the model to the resource - for field in self._model.model_fields: - setattr(self, field, getattr(self._model, field)) - return self - def _update_last_api_call(self): self._last_api_call = datetime.utcnow() diff --git a/argilla-sdk/src/argilla_sdk/datasets/_resource.py b/argilla-sdk/src/argilla_sdk/datasets/_resource.py index 781bdf6506..2fe31dba38 100644 --- a/argilla-sdk/src/argilla_sdk/datasets/_resource.py +++ b/argilla-sdk/src/argilla_sdk/datasets/_resource.py @@ -18,6 +18,7 @@ from argilla_sdk._api import DatasetsAPI from argilla_sdk._exceptions import NotFoundError, SettingsError +from argilla_sdk._helpers import UUIDUtilities from argilla_sdk._models import DatasetModel from argilla_sdk._resource import Resource from argilla_sdk.client import Argilla @@ -69,7 +70,7 @@ def __init__( super().__init__(client=client, api=client.api.datasets) if name is None: name = f"dataset_{uuid4()}" - self.log(f"Settings dataset name to unique UUID: {name}") + self._log_message(f"Settings dataset name to unique UUID: {name}") self.workspace_id = ( _model.workspace_id @@ -78,7 +79,7 @@ def __init__( ) self._model = _model or DatasetModel( name=name, - workspace_id=self._convert_optional_uuid(uuid=self.workspace_id), + workspace_id=UUIDUtilities.convert_optional_uuid(uuid=self.workspace_id), ) self._settings = self.__configure_settings_for_dataset(settings=settings) self.__records = DatasetRecords(client=self._client, dataset=self) @@ -159,10 +160,19 @@ def create(self) -> "Dataset": try: return self._publish() except Exception as e: - self.log(message=f"Error creating dataset: {e}", level="error") + self._log_message(message=f"Error creating dataset: {e}", level="error") self.__rollback_dataset_creation() raise SettingsError from e + def update(self) -> "Dataset": + """Updates the dataset on the server with the current settings. + + Returns: + Dataset: The updated dataset object. + """ + self.settings.update() + return self + @classmethod def from_model(cls, model: DatasetModel, client: "Argilla") -> "Dataset": return cls(client=client, _model=model) @@ -171,14 +181,7 @@ def from_model(cls, model: DatasetModel, client: "Argilla") -> "Dataset": # Utility methods # ##################### - def _sync(self, model: "DatasetModel") -> "Dataset": - # We only need to update the model. Maybe in the future the - # _sync method makes less sense for those resources defining getter/setters - self._model = model - return self - def _publish(self) -> "Dataset": - self.settings.validate() self._settings.create() self._api.publish(dataset_id=self._model.id) @@ -208,7 +211,7 @@ def __workspace_id_from_name(self, workspace: Optional[Union["Workspace", str]]) available_workspace_names = [ws.name for ws in self._client.workspaces] ws = self._client.workspaces(workspace) if not ws.exists(): - self.log( + self._log_message( message=f"Workspace with name {workspace} not found. \ Available workspaces: {available_workspace_names}", level="error", diff --git a/argilla-sdk/src/argilla_sdk/records/_dataset_records.py b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py index 8f567b044c..e23fbd9cb3 100644 --- a/argilla-sdk/src/argilla_sdk/records/_dataset_records.py +++ b/argilla-sdk/src/argilla_sdk/records/_dataset_records.py @@ -18,10 +18,10 @@ from uuid import UUID from argilla_sdk._api import RecordsAPI -from argilla_sdk._helpers._mixins import LoggingMixin +from argilla_sdk._helpers import LoggingMixin from argilla_sdk._models import RecordModel, MetadataValue from argilla_sdk.client import Argilla -from argilla_sdk.records._io import HFDatasetsIO, GenericIO, JsonIO, HFDataset +from argilla_sdk.records._io import GenericIO, HFDataset, HFDatasetsIO, JsonIO from argilla_sdk.records._resource import Record from argilla_sdk.records._search import Query from argilla_sdk.responses import Response @@ -150,7 +150,7 @@ def __call__( with_suggestions: bool = True, with_responses: bool = True, with_vectors: Optional[Union[List, bool, str]] = None, - ): + ) -> DatasetRecordsIterator: """Returns an iterator over the records in the dataset on the server. Parameters: @@ -191,70 +191,24 @@ def __repr__(self) -> str: # Public methods ############################ - def add( - self, - records: Union[dict, List[dict], Record, List[Record], HFDataset], - mapping: Optional[Dict[str, str]] = None, - user_id: Optional[UUID] = None, - batch_size: int = DEFAULT_BATCH_SIZE, - ) -> List[Record]: - """ - Add new records to a dataset on the server. - - Parameters: - records: A dictionary or a list of dictionaries representing the records - to be added to the dataset. Records are defined as dictionaries - with keys corresponding to the fields in the dataset schema. - mapping: A dictionary that maps the keys in the records to the fields in the dataset schema. - user_id: The user id to be associated with the records. If not provided, the current user id is used. - batch_size: The number of records to send in each batch. The default is 256. - - Returns: - A list of Record objects representing the added records. - - Examples: - - Add generic records to a dataset as dictionaries: - - """ - record_models = self._ingest_records(records=records, mapping=mapping, user_id=user_id or self.__client.me.id) - batch_size = self._normalize_batch_size( - batch_size=batch_size, - records_length=len(record_models), - max_value=self._api.MAX_RECORDS_PER_CREATE_BULK, - ) - - created_records = [] - for batch in range(0, len(record_models), batch_size): - self.log(message=f"Sending records from {batch} to {batch + batch_size}.") - batch_records = record_models[batch : batch + batch_size] - models = self._api.bulk_create(dataset_id=self.__dataset.id, records=batch_records) - created_records.extend([Record.from_model(model=model, dataset=self.__dataset) for model in models]) - - self.log( - message=f"Added {len(created_records)} records to dataset {self.__dataset.name}", - level="info", - ) - - return created_records - - def update( + def log( self, - records: Union[dict, List[dict], Record, List[Record], HFDataset], + records: Union[List[dict], List[Record], HFDataset], mapping: Optional[Dict[str, str]] = None, user_id: Optional[UUID] = None, batch_size: int = DEFAULT_BATCH_SIZE, ) -> List[Record]: - """Update records in a dataset on the server using the provided records - and matching based on the external_id or id. + """Add or update records in a dataset on the server using the provided records. + If the record includes a known `id` field, the record will be updated. + If the record does not include a known `id` field, the record will be added as a new record. + See `rg.Record` for more information on the record definition. Parameters: - records: A dictionary or a list of dictionaries representing the records - to be updated in the dataset. Records are defined as dictionaries - with keys corresponding to the fields in the dataset schema. Ids or - external_ids should be provided to identify the records to be updated. - mapping: A dictionary that maps the keys in the records to the fields in the dataset schema. - user_id: The user id to be associated with the records. If not provided, the current user id is used. + records: A list of `Record` objects, a Hugging Face Dataset, or a list of dictionaries representing the records. + If records are defined as a dictionaries or a dataset, the keys/ column names should correspond to the + fields in the Argilla dataset's fields and questions. `id` should be provided to identify the records when updating. + mapping: A dictionary that maps the keys/ column names in the records to the fields or questions in the Argilla dataset. + user_id: The user id to be associated with the records' response. If not provided, the current user id is used. batch_size: The number of records to send in each batch. The default is 256. Returns: @@ -271,14 +225,14 @@ def update( created_or_updated = [] records_updated = 0 for batch in range(0, len(records), batch_size): - self.log(message=f"Sending records from {batch} to {batch + batch_size}.") + self._log_message(message=f"Sending records from {batch} to {batch + batch_size}.") batch_records = record_models[batch : batch + batch_size] models, updated = self._api.bulk_upsert(dataset_id=self.__dataset.id, records=batch_records) created_or_updated.extend([Record.from_model(model=model, dataset=self.__dataset) for model in models]) records_updated += updated records_created = len(created_or_updated) - records_updated - self.log( + self._log_message( message=f"Updated {records_updated} records and added {records_created} records to dataset {self.__dataset.name}", level="info", ) @@ -324,7 +278,6 @@ def to_json(self, path: Union[Path, str]) -> Path: Parameters: path (str): The path to the file to save the records. - orient (str): The structure of the exported dictionary. Returns: The path to the file where the records were saved. @@ -333,7 +286,7 @@ def to_json(self, path: Union[Path, str]) -> Path: records = list(self(with_suggestions=True, with_responses=True)) return JsonIO.to_json(records=records, path=path) - def from_json(self, path: Union[Path, str]) -> "DatasetRecords": + def from_json(self, path: Union[Path, str]) -> List[Record]: """Creates a DatasetRecords object from a disk path to a JSON file. The JSON file should be defined by `DatasetRecords.to_json`. @@ -345,19 +298,14 @@ def from_json(self, path: Union[Path, str]) -> "DatasetRecords": """ records = JsonIO._records_from_json(path=path) - return self.update(records=records) - return self + return self.log(records=records) def to_datasets(self) -> HFDataset: """ - Export the records to a file on disk. - - Parameters: - path (str): The path to the file to save the records. - orient (str): The structure of the exported dictionary. + Export the records to a HFDataset. Returns: - The path to the file where the records were saved. + The dataset containing the records. """ records = list(self(with_suggestions=True, with_responses=True)) @@ -373,8 +321,8 @@ def _ingest_records( mapping: Optional[Dict[str, str]] = None, user_id: Optional[UUID] = None, ) -> List[RecordModel]: - if isinstance(records, (Record, dict)): - records = [records] + if len(records) == 0: + raise ValueError("No records provided to ingest.") if HFDatasetsIO._is_hf_dataset(dataset=records): records = HFDatasetsIO._record_dicts_from_datasets(dataset=records) if all(map(lambda r: isinstance(r, dict), records)): @@ -385,8 +333,8 @@ def _ingest_records( record.dataset = self.__dataset else: raise ValueError( - "Records should be a dictionary, a list of dictionaries, a Record instance, " - "a list of Record instances, or `datasets.Dataset`." + "Records should be a a list Record instances, " + "a Hugging Face Dataset, or a list of dictionaries representing the records." ) return [record.api_model() for record in records] @@ -394,7 +342,7 @@ def _normalize_batch_size(self, batch_size: int, records_length, max_value: int) norm_batch_size = min(batch_size, records_length, max_value) if batch_size != norm_batch_size: - self.log( + self._log_message( message=f"The provided batch size {batch_size} was normalized. Using value {norm_batch_size}.", level="warning", ) @@ -451,7 +399,7 @@ def _infer_record_from_mapping( sub_attribute = attribute_mapping[2] elif schema_item is mapping is None and attribute != "id": warnings.warn( - message=f"""Record attribute {attribute} is not in the schema so skipping. + message=f"""Record attribute {attribute} is not in the schema so skipping. Define a mapping to map source data fields to Argilla Fields, Questions, and ids """ ) diff --git a/argilla-sdk/src/argilla_sdk/records/_resource.py b/argilla-sdk/src/argilla_sdk/records/_resource.py index 4074485cad..016b70afe1 100644 --- a/argilla-sdk/src/argilla_sdk/records/_resource.py +++ b/argilla-sdk/src/argilla_sdk/records/_resource.py @@ -54,7 +54,7 @@ class Record(Resource): def __init__( self, id: Optional[Union[UUID, str]] = None, - fields: Dict[str, Union[str, None]] = None, + fields: Optional[Dict[str, Union[str, None]]] = None, metadata: Optional[Dict[str, MetadataValue]] = None, vectors: Optional[List[Vector]] = None, responses: Optional[List[Response]] = None, @@ -76,6 +76,12 @@ def __init__( _server_id: An id for the record. (Read-only and set by the server) _dataset: The dataset object to which the record belongs. """ + if fields is None and metadata is None and vectors is None and responses is None and suggestions is None: + raise ValueError("At least one of fields, metadata, vectors, responses, or suggestions must be provided.") + if fields is None and id is None: + raise ValueError("If fields are not provided, an id must be provided.") + if fields == {} and id is None: + raise ValueError("If fields are an empty dictionary, an id must be provided.") self._dataset = _dataset self._model = RecordModel( diff --git a/argilla-sdk/src/argilla_sdk/records/_search.py b/argilla-sdk/src/argilla_sdk/records/_search.py index bbcb341b47..fff81a6978 100644 --- a/argilla-sdk/src/argilla_sdk/records/_search.py +++ b/argilla-sdk/src/argilla_sdk/records/_search.py @@ -93,7 +93,7 @@ def __init__(self, conditions: Union[List[Tuple[str, str, Any]], Tuple[str, str, @property def model(self) -> AndFilterModel: - return AndFilterModel.parse_obj({"and": [condition.model for condition in self.conditions]}) + return AndFilterModel.model_validate({"and": [condition.model for condition in self.conditions]}) class Query: diff --git a/argilla-sdk/src/argilla_sdk/responses.py b/argilla-sdk/src/argilla_sdk/responses.py index 1f02fbbc26..4cfb955bea 100644 --- a/argilla-sdk/src/argilla_sdk/responses.py +++ b/argilla-sdk/src/argilla_sdk/responses.py @@ -169,7 +169,7 @@ def api_model(self): def to_dict(self) -> Dict[str, Any]: """Returns the UserResponse as a dictionary""" - return self._model.dict() + return self._model.model_dump() @staticmethod def __responses_as_model_values(answers: List[Response]) -> Dict[str, Dict[str, Any]]: diff --git a/argilla-sdk/src/argilla_sdk/settings/__init__.py b/argilla-sdk/src/argilla_sdk/settings/__init__.py index 122130d4ed..4e376a96c6 100644 --- a/argilla-sdk/src/argilla_sdk/settings/__init__.py +++ b/argilla-sdk/src/argilla_sdk/settings/__init__.py @@ -14,5 +14,6 @@ from argilla_sdk.settings._field import * # noqa: F403 from argilla_sdk.settings._metadata import * # noqa: F403 +from argilla_sdk.settings._vector import * # noqa: F403 from argilla_sdk.settings._question import * # noqa: F403 from argilla_sdk.settings._resource import * # noqa: F403 diff --git a/argilla-sdk/src/argilla_sdk/settings/_common.py b/argilla-sdk/src/argilla_sdk/settings/_common.py index 59fd1147df..64e198cfc4 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_common.py +++ b/argilla-sdk/src/argilla_sdk/settings/_common.py @@ -14,7 +14,7 @@ from typing import Any, Optional, Union -from argilla_sdk._models import FieldBaseModel, QuestionBaseModel +from argilla_sdk._models import FieldModel, QuestionBaseModel from argilla_sdk._resource import Resource __all__ = ["SettingsPropertyBase"] @@ -23,7 +23,7 @@ class SettingsPropertyBase(Resource): """Base class for dataset fields or questions in Settings class""" - _model: Union[FieldBaseModel, QuestionBaseModel] + _model: Union[FieldModel, QuestionBaseModel] def __repr__(self) -> str: return ( diff --git a/argilla-sdk/src/argilla_sdk/settings/_field.py b/argilla-sdk/src/argilla_sdk/settings/_field.py index 14483eb84e..c2c8544874 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_field.py +++ b/argilla-sdk/src/argilla_sdk/settings/_field.py @@ -12,19 +12,28 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional, Union +from typing import Optional, Union, TYPE_CHECKING -from argilla_sdk._models import FieldSettings, MetadataFieldModel, TextFieldModel, VectorFieldModel +from argilla_sdk import Argilla +from argilla_sdk._api import FieldsAPI +from argilla_sdk._models import FieldModel, TextFieldSettings from argilla_sdk.settings._common import SettingsPropertyBase from argilla_sdk.settings._metadata import MetadataField, MetadataType +from argilla_sdk.settings._vector import VectorField -__all__ = ["TextField", "FieldType", "VectorField"] +if TYPE_CHECKING: + from argilla_sdk.datasets import Dataset + +__all__ = ["TextField"] class TextField(SettingsPropertyBase): """Text field for use in Argilla `Dataset` `Settings`""" - _model: TextFieldModel + _model: FieldModel + _api: FieldsAPI + + _dataset: "Dataset" def __init__( self, @@ -33,6 +42,7 @@ def __init__( use_markdown: Optional[bool] = False, required: Optional[bool] = True, description: Optional[str] = None, + client: Optional[Argilla] = None, ) -> None: """Text field for use in Argilla `Dataset` `Settings` Parameters: @@ -43,20 +53,19 @@ def __init__( description (Optional[str], optional): The description of the field. Defaults to None. """ - self._model = TextFieldModel( + client = client or Argilla._get_default() + + super().__init__(api=client.api.fields, client=client) + self._model = FieldModel( name=name, title=title, required=required or True, description=description, - settings=FieldSettings(type="text", use_markdown=use_markdown), + settings=TextFieldSettings(use_markdown=use_markdown), ) - @property - def use_markdown(self) -> Optional[bool]: - return self._model.settings.use_markdown - @classmethod - def from_model(cls, model: TextFieldModel) -> "TextField": + def from_model(cls, model: FieldModel) -> "TextField": instance = cls(name=model.name) instance._model = model @@ -64,90 +73,28 @@ def from_model(cls, model: TextFieldModel) -> "TextField": @classmethod def from_dict(cls, data: dict) -> "TextField": - model = TextFieldModel(**data) + model = FieldModel(**data) return cls.from_model(model=model) - -class VectorField(SettingsPropertyBase): - """Vector field for use in Argilla `Dataset` `Settings`""" - - _model: VectorFieldModel - - def __init__( - self, - name: str, - dimensions: int, - title: Optional[str] = None, - ) -> None: - """Vector field for use in Argilla `Dataset` `Settings` - - Parameters: - name (str): The name of the field - dimensions (int): The number of dimensions in the vector - title (Optional[str], optional): The title of the field. Defaults to None. - """ - self._model = VectorFieldModel( - name=name, - title=title, - dimensions=dimensions, - ) - - @classmethod - def from_model(cls, model: VectorFieldModel) -> "VectorField": - instance = cls(name=model.name, dimensions=model.dimensions) - instance._model = model - - return instance - - @classmethod - def from_dict(cls, data: dict) -> "VectorField": - model = VectorFieldModel(**data) - return cls.from_model(model=model) - - @property - def dimensions(self) -> int: - return self._model.dimensions - @property - def title(self) -> Optional[str]: - return self._model.title - - @property - def name(self) -> str: - return self._model.name + def use_markdown(self) -> Optional[bool]: + return self._model.settings.use_markdown - @property - def description(self) -> Optional[str]: - # TODO: Setting resources should be aligned at the API level - return None + @use_markdown.setter + def use_markdown(self, value: bool) -> None: + self._model.settings.use_markdown = value @property - def required(self) -> bool: - # TODO: Setting resources should be aligned at the API level - return False + def dataset(self) -> "Dataset": + return self._dataset - @property - def type(self) -> str: - # TODO: Setting resources should be aligned at the API level - return "vector" - - -FieldType = Union[TextField, VectorField, MetadataType] - - -def field_from_model(model: Union[TextFieldModel, VectorFieldModel, MetadataFieldModel]) -> FieldType: - """Create a field instance from a field model""" - if isinstance(model, TextFieldModel): - return TextField.from_model(model) - elif isinstance(model, VectorFieldModel): - return VectorField.from_model(model) - elif isinstance(model, MetadataFieldModel): - return MetadataField.from_model(model) - else: - raise ValueError(f"Unsupported field model type: {type(model)}") + @dataset.setter + def dataset(self, value: "Dataset") -> None: + self._dataset = value + self._model.dataset_id = self._dataset.id -def field_from_dict(data: dict) -> FieldType: +def field_from_dict(data: dict) -> Union[TextField, VectorField, MetadataType]: """Create a field instance from a field dictionary""" if data["type"] == "text": return TextField.from_dict(data) diff --git a/argilla-sdk/src/argilla_sdk/settings/_metadata.py b/argilla-sdk/src/argilla_sdk/settings/_metadata.py index d69eebee30..9c54376fb7 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_metadata.py +++ b/argilla-sdk/src/argilla_sdk/settings/_metadata.py @@ -12,8 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional, Union, List +from typing import Optional, Union, List, TYPE_CHECKING +from argilla_sdk._api._metadata import MetadataAPI from argilla_sdk._exceptions import MetadataError from argilla_sdk._models import ( MetadataPropertyType, @@ -22,8 +23,11 @@ IntegerMetadataPropertySettings, MetadataFieldModel, ) -from argilla_sdk.settings._common import SettingsPropertyBase +from argilla_sdk._resource import Resource +from argilla_sdk.client import Argilla +if TYPE_CHECKING: + from argilla_sdk import Dataset __all__ = [ "TermsMetadataProperty", @@ -33,18 +37,31 @@ ] -class MetadataPropertyBase(SettingsPropertyBase): +class MetadataPropertyBase(Resource): _model: MetadataFieldModel + _api: MetadataAPI + + _dataset: "Dataset" + + def __init__(self, client: Optional[Argilla] = None) -> None: + client = client or Argilla._get_default() + super().__init__(client=client, api=client.api.metadata) @property - def required(self) -> bool: - # This attribute is not present in the MetadataFieldModel - return False + def name(self) -> str: + return self._model.name + + @name.setter + def name(self, value: str) -> None: + self._model.name = value @property - def description(self) -> Optional[str]: - # This attribute is not present in the MetadataFieldModel - return None + def title(self) -> Optional[str]: + return self._model.title + + @title.setter + def title(self, value: Optional[str]) -> None: + self._model.title = value @property def visible_for_annotators(self) -> Optional[bool]: @@ -54,6 +71,20 @@ def visible_for_annotators(self) -> Optional[bool]: def visible_for_annotators(self, value: Optional[bool]) -> None: self._model.visible_for_annotators = value + @property + def dataset(self) -> Optional["Dataset"]: + return self._dataset + + @dataset.setter + def dataset(self, value: "Dataset") -> None: + self._dataset = value + self._model.dataset_id = value.id + + def __repr__(self) -> str: + return ( + f"{self.__class__.__name__}(name={self.name}, title={self.title}, dimensions={self.visible_for_annotators})" + ) + class TermsMetadataProperty(MetadataPropertyBase): def __init__( @@ -62,6 +93,7 @@ def __init__( options: Optional[List[str]] = None, title: Optional[str] = None, visible_for_annotators: Optional[bool] = True, + client: Optional[Argilla] = None, ) -> None: """Create a metadata field with terms settings. @@ -73,7 +105,7 @@ def __init__( Raises: MetadataError: If an error occurs while defining metadata settings """ - super().__init__() + super().__init__(client=client) try: settings = TermsMetadataPropertySettings(values=options, type=MetadataPropertyType.terms) @@ -106,7 +138,12 @@ def from_model(cls, model: MetadataFieldModel) -> "TermsMetadataProperty": class FloatMetadataProperty(MetadataPropertyBase): def __init__( - self, name: str, min: Optional[float] = None, max: Optional[float] = None, title: Optional[str] = None + self, + name: str, + min: Optional[float] = None, + max: Optional[float] = None, + title: Optional[str] = None, + client: Optional[Argilla] = None, ) -> None: """Create a metadata field with float settings. @@ -115,11 +152,14 @@ def __init__( min (Optional[float]): The minimum value max (Optional[float]): The maximum value title (Optional[str]): The title of the metadata field + client (Optional[Argilla]): The client to use for API requests Raises: MetadataError: If an error occurs while defining metadata settings - """ + + super().__init__(client=client) + try: settings = FloatMetadataPropertySettings(min=min, max=max, type=MetadataPropertyType.float) except ValueError as e: @@ -158,7 +198,12 @@ def from_model(cls, model: MetadataFieldModel) -> "FloatMetadataProperty": class IntegerMetadataProperty(MetadataPropertyBase): def __init__( - self, name: str, min: Optional[int] = None, max: Optional[int] = None, title: Optional[str] = None + self, + name: str, + min: Optional[int] = None, + max: Optional[int] = None, + title: Optional[str] = None, + client: Optional[Argilla] = None, ) -> None: """Create a metadata field with integer settings. @@ -170,6 +215,7 @@ def __init__( Raises: MetadataError: If an error occurs while defining metadata settings """ + super().__init__(client=client) try: settings = IntegerMetadataPropertySettings(min=min, max=max, type=MetadataPropertyType.integer) @@ -207,7 +253,11 @@ def from_model(cls, model: MetadataFieldModel) -> "IntegerMetadataProperty": return instance -MetadataType = Union[TermsMetadataProperty, FloatMetadataProperty, IntegerMetadataProperty] +MetadataType = Union[ + TermsMetadataProperty, + FloatMetadataProperty, + IntegerMetadataProperty, +] class MetadataField: @@ -233,6 +283,7 @@ def from_dict(cls, data: dict) -> MetadataType: } metadata_type = data["type"] try: - return switch[metadata_type](**data) + metadata_model = MetadataFieldModel(**data) + return switch[metadata_type].from_model(metadata_model) except KeyError as e: raise MetadataError(f"Unknown metadata property type: {metadata_type}") from e diff --git a/argilla-sdk/src/argilla_sdk/settings/_resource.py b/argilla-sdk/src/argilla_sdk/settings/_resource.py index 2a1ff7724d..d62f16b4a1 100644 --- a/argilla-sdk/src/argilla_sdk/settings/_resource.py +++ b/argilla-sdk/src/argilla_sdk/settings/_resource.py @@ -16,15 +16,16 @@ import os from functools import cached_property from pathlib import Path -from typing import List, Optional, TYPE_CHECKING, Dict, Union +from typing import List, Optional, TYPE_CHECKING, Dict, Union, Iterator, Sequence from uuid import UUID from argilla_sdk._exceptions import SettingsError, ArgillaAPIError, ArgillaSerializeError -from argilla_sdk._models import TextFieldModel, TextQuestionModel, DatasetModel +from argilla_sdk._models._dataset import DatasetModel from argilla_sdk._resource import Resource -from argilla_sdk.settings._field import FieldType, VectorField, field_from_model, field_from_dict -from argilla_sdk.settings._metadata import MetadataType +from argilla_sdk.settings._field import TextField +from argilla_sdk.settings._metadata import MetadataType, MetadataField from argilla_sdk.settings._question import QuestionType, question_from_model, question_from_dict, QuestionPropertyBase +from argilla_sdk.settings._vector import VectorField if TYPE_CHECKING: from argilla_sdk.datasets import Dataset @@ -42,7 +43,7 @@ class Settings(Resource): def __init__( self, - fields: Optional[List[FieldType]] = None, + fields: Optional[List[TextField]] = None, questions: Optional[List[QuestionType]] = None, vectors: Optional[List[VectorField]] = None, metadata: Optional[List[MetadataType]] = None, @@ -62,9 +63,9 @@ def __init__( super().__init__(client=_dataset._client if _dataset else None) self.__questions = questions or [] - self.__fields = fields or [] - self.__vectors = vectors or [] - self.__metadata = metadata or [] + self.__fields = SettingsProperties(self, fields) + self.__vectors = SettingsProperties(self, vectors) + self.__metadata = SettingsProperties(self, metadata) self.__guidelines = self.__process_guidelines(guidelines) self.__allow_extra_metadata = allow_extra_metadata @@ -76,12 +77,12 @@ def __init__( ##################### @property - def fields(self) -> List[FieldType]: + def fields(self) -> "SettingsProperties": return self.__fields @fields.setter - def fields(self, fields: List[FieldType]): - self.__fields = fields + def fields(self, fields: List[TextField]): + self.__fields = SettingsProperties(self, fields) @property def questions(self) -> List[QuestionType]: @@ -92,28 +93,28 @@ def questions(self, questions: List[QuestionType]): self.__questions = questions @property - def guidelines(self) -> str: - return self.__guidelines - - @guidelines.setter - def guidelines(self, guidelines: str): - self.__guidelines = self.__process_guidelines(guidelines) - - @property - def vectors(self) -> List[VectorField]: + def vectors(self) -> "SettingsProperties": return self.__vectors @vectors.setter def vectors(self, vectors: List[VectorField]): - self.__vectors = vectors + self.__vectors = SettingsProperties(self, vectors) @property - def metadata(self) -> List[MetadataType]: + def metadata(self) -> "SettingsProperties": return self.__metadata @metadata.setter def metadata(self, metadata: List[MetadataType]): - self.__metadata = metadata + self.__metadata = SettingsProperties(self, metadata) + + @property + def guidelines(self) -> str: + return self.__guidelines + + @guidelines.setter + def guidelines(self, guidelines: str): + self.__guidelines = self.__process_guidelines(guidelines) @property def allow_extra_metadata(self) -> bool: @@ -151,7 +152,7 @@ def schema(self) -> dict: return schema_dict @cached_property - def schema_by_id(self) -> Dict[UUID, Union[FieldType, QuestionType]]: + def schema_by_id(self) -> Dict[UUID, Union[TextField, QuestionType, MetadataType, VectorField]]: return {v.id: v for v in self.schema.values()} def validate(self) -> None: @@ -163,21 +164,35 @@ def validate(self) -> None: ##################### def get(self) -> "Settings": - self.__fetch_fields() - self.__fetch_questions() - self.__fetch_vectors() - self.__fetch_metadata() + self.fields = self._fetch_fields() + self.questions = self._fetch_questions() + self.vectors = self._fetch_vectors() + self.metadata = self._fetch_metadata() self.__get_dataset_related_attributes() self._update_last_api_call() return self def create(self) -> "Settings": - self.__upsert_fields() - self.__upsert_questions() - self.__upsert_vectors() - self.__upsert_metadata() - self.__update_dataset_related_attributes() + self.validate() + + self._update_dataset_related_attributes() + self.__fields.create() + self._create_questions() + self.__vectors.create() + self.__metadata.create() + + self._update_last_api_call() + return self + + def update(self) -> "Resource": + self.validate() + + self._update_dataset_related_attributes() + self.__fields.update() + self.__vectors.update() + self.__metadata.update() + # self.questions.update() self._update_last_api_call() return self @@ -198,8 +213,10 @@ def serialize(self): try: return { "guidelines": self.guidelines, - "fields": self.__serialize_fields(fields=self.fields), - "questions": self.__serialize_questions(questions=self.questions), + "questions": self.__serialize_questions(self.questions), + "fields": self.__fields.serialize(), + "vectors": self.vectors.serialize(), + "metadata": self.metadata.serialize(), "allow_extra_metadata": self.allow_extra_metadata, } except Exception as e: @@ -225,18 +242,23 @@ def from_json(cls, path: Union[Path, str]) -> "Settings": with open(path, "r") as file: settings_dict = json.load(file) + fields = settings_dict.get("fields", []) + vectors = settings_dict.get("vectors", []) + metadata = settings_dict.get("metadata", []) guidelines = settings_dict.get("guidelines") - fields = settings_dict.get("fields") - questions = settings_dict.get("questions") allow_extra_metadata = settings_dict.get("allow_extra_metadata") - fields = [field_from_dict(field) for field in fields] - questions = [question_from_dict(question) for question in questions] + questions = [question_from_dict(question) for question in settings_dict.get("questions", [])] + fields = [TextField.from_dict(field) for field in fields] + vectors = [VectorField.from_dict(vector) for vector in vectors] + metadata = [MetadataField.from_dict(metadata) for metadata in metadata] return cls( - guidelines=guidelines, - fields=fields, questions=questions, + fields=fields, + vectors=vectors, + metadata=metadata, + guidelines=guidelines, allow_extra_metadata=allow_extra_metadata, ) @@ -257,29 +279,21 @@ def __repr__(self) -> str: # Private methods # ##################### - def __fetch_fields(self) -> List[FieldType]: + def _fetch_fields(self) -> List[TextField]: models = self._client.api.fields.list(dataset_id=self._dataset.id) - self.__fields = [field_from_model(model) for model in models] + return [TextField.from_model(model) for model in models] - return self.__fields - - def __fetch_questions(self) -> List[QuestionType]: + def _fetch_questions(self) -> List[QuestionType]: models = self._client.api.questions.list(dataset_id=self._dataset.id) - self.__questions = [question_from_model(model) for model in models] - - return self.__questions + return [question_from_model(model) for model in models] - def __fetch_vectors(self) -> List[VectorField]: - models = self._client.api.vectors.list(dataset_id=self._dataset.id) - self.__vectors = [field_from_model(model) for model in models] + def _fetch_vectors(self) -> List[VectorField]: + models = self.dataset._client.api.vectors.list(self.dataset.id) + return [VectorField.from_model(model) for model in models] - return self.__vectors - - def __fetch_metadata(self) -> List[MetadataType]: + def _fetch_metadata(self) -> List[MetadataType]: models = self._client.api.metadata.list(dataset_id=self._dataset.id) - self.__metadata = [field_from_model(model) for model in models] - - return self.__metadata + return [MetadataField.from_model(model) for model in models] def __get_dataset_related_attributes(self): # This flow may be a bit weird, but it's the only way to update the dataset related attributes @@ -295,7 +309,7 @@ def __get_dataset_related_attributes(self): self.guidelines = dataset_model.guidelines self.allow_extra_metadata = dataset_model.allow_extra_metadata - def __update_dataset_related_attributes(self): + def _update_dataset_related_attributes(self): # This flow may be a bit weird, but it's the only way to update the dataset related attributes # Everything is point that we should have several settings-related endpoints in the API to handle this. # POST /api/v1/datasets/{dataset_id}/settings @@ -312,7 +326,7 @@ def __update_dataset_related_attributes(self): ) self._client.api.datasets.update(dataset_model) - def __upsert_questions(self) -> None: + def _create_questions(self) -> None: for question in self.__questions: try: question_model = self._client.api.questions.create( @@ -322,29 +336,6 @@ def __upsert_questions(self) -> None: except ArgillaAPIError as e: raise SettingsError(f"Failed to create question {question.name}") from e - def __upsert_fields(self) -> None: - for field in self.__fields: - try: - field_model = self._client.api.fields.create(dataset_id=self._dataset.id, field=field._model) - field._model = field_model - except ArgillaAPIError as e: - raise SettingsError(f"Failed to create field {field.name}") from e - - def __upsert_vectors(self) -> None: - for vector in self.__vectors: - try: - vector_model = self._client.api.vectors.create(dataset_id=self._dataset.id, vector=vector._model) - vector._model = vector_model - except ArgillaAPIError as e: - raise SettingsError(f"Failed to create vector {vector.name}") from e - - def __upsert_metadata(self) -> None: - for metadata in self.__metadata: - metadata_model = self._client.api.metadata.create( - dataset_id=self._dataset.id, metadata_field=metadata._model - ) - metadata._model = metadata_model - def _validate_empty_settings(self): if not all([self.fields, self.questions]): message = "Fields and questions are required" @@ -353,33 +344,14 @@ def _validate_empty_settings(self): def _validate_duplicate_names(self) -> None: dataset_properties_by_name = {} - for prop in self.fields + self.questions + self.vectors + self.metadata: - if prop.name in dataset_properties_by_name: - raise SettingsError( - f"names of dataset settings must be unique, " - f"but the name {prop.name!r} is used by {type(prop).__name__!r} and {type(dataset_properties_by_name[prop.name]).__name__!r} " - ) - dataset_properties_by_name[prop.name] = prop - - def __process_fields(self, fields: List[FieldType]) -> List["TextFieldModel"]: - processed_fields = [] - for field in fields: - try: - processed_field = field._model - except Exception as e: - raise SettingsError(f"Failed to process field {field.name}") from e - processed_fields.append(processed_field) - return processed_fields - - def __process_questions(self, questions: List[QuestionType]) -> List["TextQuestionModel"]: - processed_questions = [] - for question in questions: - try: - processed_question = question._model - except Exception as e: - raise SettingsError(f"Failed to process question {question.name}") from e - processed_questions.append(processed_question) - return processed_questions + for properties in [self.fields, self.questions, self.vectors, self.metadata]: + for property in properties: + if property.name in dataset_properties_by_name: + raise SettingsError( + f"names of dataset settings must be unique, " + f"but the name {property.name!r} is used by {type(property).__name__!r} and {type(dataset_properties_by_name[property.name]).__name__!r} " + ) + dataset_properties_by_name[property.name] = property def __process_guidelines(self, guidelines): if guidelines is None: @@ -394,8 +366,71 @@ def __process_guidelines(self, guidelines): return guidelines - def __serialize_fields(self, fields: List[FieldType]): - return [field.serialize() for field in fields] - def __serialize_questions(self, questions: List[QuestionType]): return [question.serialize() for question in questions] + + +Property = Union[TextField, VectorField, MetadataType, QuestionType] + + +class SettingsProperties(Sequence[Property]): + """A collection of properties (fields, questions, vectors and metadata) for a dataset settings object. + + This class is used to store the properties of a dataset settings object + """ + + def __init__(self, settings: "Settings", properties: List[Property]): + self._properties_by_name = {} + self._settings = settings + + for property in properties or []: + self.add(property) + + def __getitem__(self, key: Union[str, int]) -> Optional[Property]: + if isinstance(key, int): + return list(self._properties_by_name.values())[key] + return self._properties_by_name.get(key) + + def __iter__(self) -> Iterator[Property]: + return iter(self._properties_by_name.values()) + + def __len__(self): + return len(self._properties_by_name) + + def __eq__(self, other): + """Check if two instances are equal. Overloads the == operator.""" + if not isinstance(other, SettingsProperties): + return False + return self._properties_by_name == other._properties_by_name + + def add(self, property: Property) -> Property: + self._validate_new_property(property) + self._properties_by_name[property.name] = property + setattr(self, property.name, property) + return property + + def create(self): + for property in self: + try: + property.dataset = self._settings.dataset + property.create() + except ArgillaAPIError as e: + raise SettingsError(f"Failed to create property {property.name!r}: {e.message}") from e + + def update(self): + for item in self: + try: + item.dataset = self._settings.dataset + item.update() if item.id else item.create() + except ArgillaAPIError as e: + raise SettingsError(f"Failed to update {item.name!r}: {e.message}") from e + + def serialize(self) -> List[dict]: + return [property.serialize() for property in self] + + def _validate_new_property(self, property: Property) -> None: + if property.name in self._properties_by_name: + raise ValueError(f"Property with name {property.name!r} already exists in the collection") + + if property.name in dir(self): + raise ValueError(f"Property with name {property.name!r} conflicts with an existing attribute") diff --git a/argilla-sdk/src/argilla_sdk/settings/_vector.py b/argilla-sdk/src/argilla_sdk/settings/_vector.py new file mode 100644 index 0000000000..cc6a5727b6 --- /dev/null +++ b/argilla-sdk/src/argilla_sdk/settings/_vector.py @@ -0,0 +1,100 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional, TYPE_CHECKING + +from argilla_sdk._api._vectors import VectorsAPI +from argilla_sdk._models import VectorFieldModel +from argilla_sdk._resource import Resource +from argilla_sdk.client import Argilla + +if TYPE_CHECKING: + from argilla_sdk import Dataset + +__all__ = ["VectorField"] + + +class VectorField(Resource): + """Vector field for use in Argilla `Dataset` `Settings`""" + + _model: VectorFieldModel + _api: VectorsAPI + _dataset: "Dataset" + + def __init__( + self, + name: str, + dimensions: int, + title: Optional[str] = None, + _client: Optional["Argilla"] = None, + ) -> None: + """Vector field for use in Argilla `Dataset` `Settings` + + Parameters: + name (str): The name of the field + dimensions (int): The number of dimensions in the vector + title (Optional[str], optional): The title of the field. Defaults to None. + """ + client = _client or Argilla._get_default() + super().__init__(api=client.api.vectors, client=client) + self._model = VectorFieldModel(name=name, title=title, dimensions=dimensions) + self._dataset = None + + @property + def name(self) -> str: + return self._model.name + + @name.setter + def name(self, value: str) -> None: + self._model.name = value + + @property + def title(self) -> Optional[str]: + return self._model.title + + @title.setter + def title(self, value: Optional[str]) -> None: + self._model.title = value + + @property + def dimensions(self) -> int: + return self._model.dimensions + + @dimensions.setter + def dimensions(self, value: int) -> None: + self._model.dimensions = value + + @property + def dataset(self) -> "Dataset": + return self._dataset + + @dataset.setter + def dataset(self, value: "Dataset") -> None: + self._dataset = value + self._model.dataset_id = self._dataset.id + + def __repr__(self) -> str: + return f"{self.__class__.__name__}(name={self.name}, title={self.title}, dimensions={self.dimensions})" + + @classmethod + def from_model(cls, model: VectorFieldModel) -> "VectorField": + instance = cls(name=model.name, dimensions=model.dimensions) + instance._model = model + + return instance + + @classmethod + def from_dict(cls, data: dict) -> "VectorField": + model = VectorFieldModel(**data) + return cls.from_model(model=model) diff --git a/argilla-sdk/src/argilla_sdk/suggestions.py b/argilla-sdk/src/argilla_sdk/suggestions.py index 7d37a7527e..db9ec8c10d 100644 --- a/argilla-sdk/src/argilla_sdk/suggestions.py +++ b/argilla-sdk/src/argilla_sdk/suggestions.py @@ -125,7 +125,7 @@ def from_model(cls, model: SuggestionModel, dataset: "Dataset") -> "Suggestion": model.question_name = question.name model.value = cls.__from_model_value(model.value, question) - return cls(**model.dict()) + return cls(**model.model_dump()) def api_model(self) -> SuggestionModel: if self.record is None or self.record.dataset is None: diff --git a/argilla-sdk/src/argilla_sdk/users/_resource.py b/argilla-sdk/src/argilla_sdk/users/_resource.py index 8177cc1144..7e0fbeb329 100644 --- a/argilla-sdk/src/argilla_sdk/users/_resource.py +++ b/argilla-sdk/src/argilla_sdk/users/_resource.py @@ -75,8 +75,8 @@ def __init__( role=role or Role.annotator, id=id, ) - self.log(f"Initialized user with username {username}") - self._sync(model=_model) + self._log_message(f"Initialized user with username {username}") + self._model = _model def create(self) -> "User": """Creates the user in Argilla. After creating a user, it will be able to log in to the Argilla server. @@ -89,7 +89,7 @@ def create(self) -> "User": model = self._api.create(model_create) # The password is not returned in the response model.password = model_create.password - self._sync(model=model) + self._model = model return self def delete(self) -> None: @@ -117,8 +117,7 @@ def add_to_workspace(self, workspace: "Workspace") -> "User": Returns: User: The user that was added to the workspace. """ - model = self._api.add_to_workspace(workspace.id, self.id) - self._sync(model=model) + self._model = self._api.add_to_workspace(workspace.id, self.id) return self def remove_from_workspace(self, workspace: "Workspace") -> "User": @@ -132,9 +131,7 @@ def remove_from_workspace(self, workspace: "Workspace") -> "User": User: The user that was removed from the workspace. """ - model = self._api.delete_from_workspace(workspace.id, self.id) - self._sync(model=model) - + self._model = self._api.delete_from_workspace(workspace.id, self.id) return self ############################ diff --git a/argilla-sdk/src/argilla_sdk/workspaces/_resource.py b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py index 9b8a077a47..1870bec715 100644 --- a/argilla-sdk/src/argilla_sdk/workspaces/_resource.py +++ b/argilla-sdk/src/argilla_sdk/workspaces/_resource.py @@ -17,7 +17,7 @@ from argilla_sdk._api._workspaces import WorkspacesAPI from argilla_sdk._helpers import GenericIterator -from argilla_sdk._helpers._mixins import LoggingMixin +from argilla_sdk._helpers import LoggingMixin from argilla_sdk._models import WorkspaceModel from argilla_sdk._resource import Resource from argilla_sdk.client import Argilla @@ -59,7 +59,9 @@ def __init__( """ client = client or Argilla._get_default() super().__init__(client=client, api=client.api.workspaces) - self._sync(model=WorkspaceModel(name=name, id=id) if not _model else _model) + if _model is None: + _model = WorkspaceModel(name=name, id=id) + self._model = _model def exists(self) -> bool: """ @@ -98,7 +100,7 @@ def list_datasets(self) -> List["Dataset"]: from argilla_sdk.datasets import Dataset datasets = self._client.api.datasets.list(self.id) - self.log(f"Got {len(datasets)} datasets for workspace {self.id}") + self._log_message(f"Got {len(datasets)} datasets for workspace {self.id}") return [Dataset.from_model(model=dataset, client=self._client) for dataset in datasets] ############################ @@ -185,7 +187,7 @@ def __len__(self) -> int: def _list_users(self) -> List["User"]: users = self._workspace._client.users.list(workspace=self._workspace) - self.log(f"Got {len(users)} users for workspace {self._workspace.id}") + self._log_message(f"Got {len(users)} users for workspace {self._workspace.id}") return users def _delete_user_by_username(self, username: str) -> "User": diff --git a/argilla-sdk/tests/integration/test_add_records.py b/argilla-sdk/tests/integration/test_add_records.py index 9fb918b128..bacd51c7bb 100644 --- a/argilla-sdk/tests/integration/test_add_records.py +++ b/argilla-sdk/tests/integration/test_add_records.py @@ -76,7 +76,7 @@ def test_add_records(client): client=client, ) dataset.create() - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) dataset_records = list(dataset.records) @@ -120,7 +120,7 @@ def test_add_dict_records(client: Argilla): ] # Now the dataset is published and is ready for annotate - ds.records.add(mock_data) + ds.records.log(mock_data) for record, data in zip(ds.records, mock_data): assert record.id == data["id"] @@ -132,39 +132,6 @@ def test_add_dict_records(client: Argilla): assert record.suggestions.label.value == data["label"] -def test_add_single_record(client: Argilla): - new_ws = client.workspaces("new_ws") - if not new_ws.exists(): - new_ws.create() - - ds = client.datasets("new_ds", workspace=new_ws) - if ds.exists(): - ds.delete() - - ds.settings = rg.Settings( - fields=[rg.TextField(name="text")], - questions=[rg.TextQuestion(name="label")], - ) - - ds.create() - - data = { - "text": "Hello World, how are you?", - "label": "positive", - "id": "1", - } - - # Now the dataset is published and is ready for annotate - ds.records.add(data) - - records = list(ds.records) - assert len(records) == 1 - - record = records[0] - assert record.id == data["id"] - assert record.fields.text == data["text"] - - def test_add_records_with_suggestions(client) -> None: mock_dataset_name = f"test_add_record_with_suggestions {datetime.now().strftime('%Y%m%d%H%M%S')}" mock_data = [ @@ -208,7 +175,7 @@ def test_add_records_with_suggestions(client) -> None: client=client, ) dataset.create() - dataset.records.add( + dataset.records.log( mock_data, mapping={ "comment": "comment.suggestion", @@ -278,7 +245,7 @@ def test_add_records_with_responses(client) -> None: ) user.create() dataset.create() - dataset.records.add( + dataset.records.log( records=mock_data, user_id=user.id, mapping={ @@ -339,7 +306,7 @@ def test_add_records_with_responses_and_suggestions(client) -> None: ) user.create() dataset.create() - dataset.records.add( + dataset.records.log( records=mock_data, user_id=user.id, mapping={ @@ -404,7 +371,7 @@ def test_add_records_with_fields_mapped(client) -> None: ) user.create() dataset.create() - dataset.records.add( + dataset.records.log( records=mock_data, user_id=user.id, mapping={ @@ -470,7 +437,7 @@ def test_add_records_with_id_mapped(client) -> None: ) user.create() dataset.create() - dataset.records.add( + dataset.records.log( records=mock_data, user_id=user.id, mapping={"my_label": "label.response", "my_guess": "label.suggestion", "x": "text", "uuid": "id"}, @@ -533,7 +500,7 @@ def test_add_record_resources(client): client=client, ) dataset.create() - dataset.records.add(records=mock_resources) + dataset.records.log(records=mock_resources) dataset_records = list(dataset.records(with_suggestions=True)) @@ -595,7 +562,7 @@ def test_add_records_with_responses_and_same_schema_name(client: Argilla): ) user.create() dataset.create() - dataset.records.add( + dataset.records.log( records=mock_data, user_id=user.id, mapping={"label": "label.response", "text": "text"}, @@ -653,7 +620,7 @@ def test_add_records_objects_with_responses(client: Argilla): ), ] - dataset.records.add(records) + dataset.records.log(records) dataset_records = list(dataset.records()) diff --git a/argilla-sdk/tests/integration/test_export_dataset.py b/argilla-sdk/tests/integration/test_export_dataset.py index 37031f80e7..b57158ac65 100644 --- a/argilla-sdk/tests/integration/test_export_dataset.py +++ b/argilla-sdk/tests/integration/test_export_dataset.py @@ -50,20 +50,20 @@ def test_export_dataset_to_disk(dataset: rg.Dataset): { "text": "Hello World, how are you?", "label": "positive", - "external_id": uuid.uuid4(), + "id": uuid.uuid4(), }, { "text": "Hello World, how are you?", "label": "negative", - "external_id": uuid.uuid4(), + "id": uuid.uuid4(), }, { "text": "Hello World, how are you?", "label": "positive", - "external_id": uuid.uuid4(), + "id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) with TemporaryDirectory() as temp_dir: output_dir = dataset.to_disk(path=temp_dir) @@ -111,7 +111,7 @@ def test_import_dataset_from_disk(dataset: rg.Dataset, client): "external_id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) with TemporaryDirectory() as temp_dir: output_dir = dataset.to_disk(path=temp_dir) diff --git a/argilla-sdk/tests/integration/test_export_records.py b/argilla-sdk/tests/integration/test_export_records.py index 09f99dc090..06e4a3bfda 100644 --- a/argilla-sdk/tests/integration/test_export_records.py +++ b/argilla-sdk/tests/integration/test_export_records.py @@ -65,7 +65,7 @@ def test_export_records_dict_flattened(client: Argilla, dataset: rg.Dataset): "id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) exported_records = dataset.records.to_dict(flatten=True) assert isinstance(exported_records, dict) assert isinstance(exported_records["id"], list) @@ -92,7 +92,7 @@ def test_export_records_list_flattened(client: Argilla, dataset: rg.Dataset): "id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) exported_records = dataset.records.to_list(flatten=True) assert len(exported_records) == len(mock_data) assert isinstance(exported_records, list) @@ -123,7 +123,7 @@ def test_export_records_list_nested(client: Argilla, dataset: rg.Dataset): "id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) exported_records = dataset.records.to_list(flatten=False) assert len(exported_records) == len(mock_data) assert exported_records[0]["fields"]["text"] == "Hello World, how are you?" @@ -150,7 +150,7 @@ def test_export_records_dict_nested(client: Argilla, dataset: rg.Dataset): }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) exported_records = dataset.records.to_dict(flatten=False) assert isinstance(exported_records, dict) assert exported_records["fields"][0]["text"] == "Hello World, how are you?" @@ -175,7 +175,7 @@ def test_export_records_dict_nested_orient_index(client: Argilla, dataset: rg.Da "id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) exported_records = dataset.records.to_dict(flatten=False, orient="index") assert isinstance(exported_records, dict) for mock_record, (id_, exported_record) in zip(mock_data, exported_records.items()): @@ -203,7 +203,7 @@ def test_export_records_to_json(dataset: rg.Dataset): "external_id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) with TemporaryDirectory() as temp_dir: temp_file = Path(temp_dir) / "records.json" @@ -233,7 +233,7 @@ def test_export_records_from_json(dataset: rg.Dataset): "id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) with TemporaryDirectory() as temp_dir: temp_file = Path(temp_dir) / "records.json" @@ -264,7 +264,7 @@ def test_export_records_to_hf_datasets(dataset: rg.Dataset): "id": uuid.uuid4(), }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) hf_dataset = dataset.records.to_datasets() assert isinstance(hf_dataset, HFDataset) @@ -294,7 +294,7 @@ def test_import_records_from_hf_dataset(dataset: rg.Dataset) -> None: }, ] mock_hf_dataset = HFDataset.from_list(mock_data) - dataset.records.add(records=mock_hf_dataset) + dataset.records.log(records=mock_hf_dataset) for i, record in enumerate(dataset.records(with_suggestions=True)): assert record.fields.text == mock_data[i]["text"] diff --git a/argilla-sdk/tests/integration/test_list_records.py b/argilla-sdk/tests/integration/test_list_records.py index eb7885e272..ec771feb73 100644 --- a/argilla-sdk/tests/integration/test_list_records.py +++ b/argilla-sdk/tests/integration/test_list_records.py @@ -55,7 +55,7 @@ def dataset(client: Argilla, workspace: Workspace) -> Dataset: def test_list_records_with_start_offset(client: Argilla, dataset: Dataset): - dataset.records.add( + dataset.records.log( [ {"text": "The record text field", "id": 1}, {"text": "The record text field", "id": 2}, @@ -67,7 +67,7 @@ def test_list_records_with_start_offset(client: Argilla, dataset: Dataset): def test_list_records_with_responses(client: Argilla, dataset: Dataset): - dataset.records.add( + dataset.records.log( [ {"text": "The record text field", "id": 1, "comment": "The comment", "sentiment": "positive"}, {"text": "The record text field", "id": 2, "comment": "The comment", "sentiment": "negative"}, diff --git a/argilla-sdk/tests/integration/test_metadata.py b/argilla-sdk/tests/integration/test_metadata.py index ce8048cf6b..8c92baabe5 100644 --- a/argilla-sdk/tests/integration/test_metadata.py +++ b/argilla-sdk/tests/integration/test_metadata.py @@ -114,7 +114,7 @@ def test_add_record_with_metadata(dataset_with_metadata: Dataset): {"text": "text", "label": "negative", "category": "B"}, ] - dataset_with_metadata.records.add(records) + dataset_with_metadata.records.log(records) for idx, record in enumerate(dataset_with_metadata.records): assert record.metadata.category == records[idx]["category"] @@ -131,7 +131,7 @@ def test_add_record_with_mapped_metadata(dataset_with_metadata: Dataset): {"text": "text", "label": "negative", "my_category": "B"}, ] - dataset_with_metadata.records.add(records, mapping={"my_category": "category"}) + dataset_with_metadata.records.log(records, mapping={"my_category": "category"}) for idx, record in enumerate(dataset_with_metadata.records): assert record.metadata.category == records[idx]["my_category"] diff --git a/argilla-sdk/tests/integration/test_query_records.py b/argilla-sdk/tests/integration/test_query_records.py index 193de14b6d..b708f90bc1 100644 --- a/argilla-sdk/tests/integration/test_query_records.py +++ b/argilla-sdk/tests/integration/test_query_records.py @@ -53,7 +53,7 @@ def dataset(client: Argilla, workspace: Workspace) -> Dataset: def test_query_records_by_text(client: Argilla, dataset: Dataset): - dataset.records.add( + dataset.records.log( [ {"text": "First record", "id": 1}, {"text": "Second record", "id": 2}, @@ -94,7 +94,7 @@ def test_query_records_by_suggestion_value(client: Argilla, dataset: Dataset): }, ] - dataset.records.add(data) + dataset.records.log(data) query = rg.Query(filter=rg.Filter([("label", "==", "positive")])) records = list(dataset.records(query=query)) diff --git a/argilla-sdk/tests/integration/test_ranking_questions.py b/argilla-sdk/tests/integration/test_ranking_questions.py index 0ebc92fba3..13a27467df 100644 --- a/argilla-sdk/tests/integration/test_ranking_questions.py +++ b/argilla-sdk/tests/integration/test_ranking_questions.py @@ -43,7 +43,7 @@ def dataset(client: rg.Argilla): def test_ranking_question_with_suggestions(dataset: rg.Dataset): - dataset.records.add( + dataset.records.log( [ {"text": "This is a test text", "label": "positive", "ranking": ["2", "1", "3"]}, ], @@ -52,7 +52,7 @@ def test_ranking_question_with_suggestions(dataset: rg.Dataset): def test_ranking_question_with_responses(dataset: rg.Dataset): - dataset.records.add( + dataset.records.log( [ {"text": "This is a test text", "label": "positive", "ranking_": ["2"]}, ], diff --git a/argilla-sdk/tests/integration/test_update_dataset_settings.py b/argilla-sdk/tests/integration/test_update_dataset_settings.py new file mode 100644 index 0000000000..0be6aa6ca5 --- /dev/null +++ b/argilla-sdk/tests/integration/test_update_dataset_settings.py @@ -0,0 +1,52 @@ +# Copyright 2024-present, Argilla, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import uuid + +import pytest + +from argilla_sdk import Dataset, Settings, TextField, LabelQuestion, Argilla, VectorField, FloatMetadataProperty + + +@pytest.fixture +def dataset(): + return Dataset( + name=f"test_dataset_{uuid.uuid4().int}", + settings=Settings( + fields=[TextField(name="text", use_markdown=False)], + questions=[LabelQuestion(name="label", labels=["a", "b", "c"])], + ), + ).create() + + +class TestUpdateDatasetSettings: + def test_update_settings(self, client: Argilla, dataset: Dataset): + settings = dataset.settings + + settings.fields.text.use_markdown = True + dataset.settings.vectors.add(VectorField(name="vector", dimensions=10)) + dataset.settings.metadata.add(FloatMetadataProperty(name="metadata")) + dataset.settings.update() + + dataset = client.datasets(dataset.name) + settings = dataset.settings + assert settings.fields.text.use_markdown is True + assert settings.vectors.vector.dimensions == 10 + assert isinstance(settings.metadata.metadata, FloatMetadataProperty) + + settings.vectors.vector.title = "A new title for vector" + + settings.update() + dataset = client.datasets(dataset.name) + assert dataset.settings.vectors.vector.title == "A new title for vector" diff --git a/argilla-sdk/tests/integration/test_update_records.py b/argilla-sdk/tests/integration/test_update_records.py index bcfa328ce9..4a8dc0f9d2 100644 --- a/argilla-sdk/tests/integration/test_update_records.py +++ b/argilla-sdk/tests/integration/test_update_records.py @@ -73,8 +73,8 @@ def test_update_records_separately(client: rg.Argilla, dataset: rg.Dataset): for r in mock_data ] - dataset.records.add(records=mock_data) - dataset.records.update(records=updated_mock_data) + dataset.records.log(records=mock_data) + dataset.records.log(records=updated_mock_data) dataset_records = list(dataset.records) assert dataset_records[0].id == str(mock_data[0]["id"]) @@ -104,8 +104,8 @@ def test_update_records_partially(client: rg.Argilla, dataset: rg.Dataset): ] updated_mock_data = mock_data.copy() updated_mock_data[0]["label"] = "positive" - dataset.records.add(records=mock_data) - dataset.records.update(records=updated_mock_data) + dataset.records.log(records=mock_data) + dataset.records.log(records=updated_mock_data) for i, record in enumerate(dataset.records(with_suggestions=True)): assert record.suggestions[0].value == updated_mock_data[i]["label"] @@ -116,13 +116,41 @@ def test_update_records_by_server_id(client: rg.Argilla, dataset: rg.Dataset): RecordModel(fields={"text": "Hello World, how are you?"}, metadata={"key": "value"}), dataset=dataset, ) - created_record = dataset.records.add(record)[0] + created_record = dataset.records.log([record])[0] created_record.metadata["new-key"] = "new-value" - dataset.records.update([created_record]) + dataset.records.log([created_record]) assert len(list(dataset.records)) == 1 updated_record = list(dataset.records)[0] assert updated_record.metadata["new-key"] == "new-value" assert updated_record._server_id == created_record._server_id + + +def test_update_records_without_fields(client: rg.Argilla, dataset: rg.Dataset): + mock_data = [ + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + { + "text": "Hello World, how are you?", + "label": "negative", + "id": uuid.uuid4(), + }, + ] + + updated_mock_data = mock_data.copy() + updated_mock_data[0]["label"] = "positive" + dataset.records.log(records=mock_data) + dataset.records.log(records=updated_mock_data) + + for i, record in enumerate(dataset.records(with_suggestions=True)): + assert record.suggestions[0].value == updated_mock_data[i]["label"] diff --git a/argilla-sdk/tests/integration/test_vectors.py b/argilla-sdk/tests/integration/test_vectors.py index 2b7a4726c0..856057a924 100644 --- a/argilla-sdk/tests/integration/test_vectors.py +++ b/argilla-sdk/tests/integration/test_vectors.py @@ -68,7 +68,7 @@ def test_vectors(client: rg.Argilla, dataset: rg.Dataset): "vector": [random.random() for _ in range(10)], }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) dataset_records = list(dataset.records(with_responses=True, with_suggestions=True, with_vectors=["vector"])) assert dataset_records[0].id == str(mock_data[0]["id"]) @@ -100,7 +100,7 @@ def test_vectors_return_with_bool(client: rg.Argilla, dataset: rg.Dataset): "vector": [random.random() for _ in range(10)], }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) dataset_records = list(dataset.records(with_responses=True, with_suggestions=True, with_vectors=True)) assert dataset_records[0].id == str(mock_data[0]["id"]) @@ -132,7 +132,7 @@ def test_vectors_return_with_name(client: rg.Argilla, dataset: rg.Dataset): "vector": [random.random() for _ in range(10)], }, ] - dataset.records.add(records=mock_data) + dataset.records.log(records=mock_data) dataset_records = list(dataset.records(with_responses=True, with_suggestions=True, with_vectors="vector")) assert dataset_records[0].id == str(mock_data[0]["id"]) diff --git a/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py index c72ccdde0b..69617a003c 100644 --- a/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py +++ b/argilla-sdk/tests/unit/export/test_settings_export_import_compatibillity.py @@ -76,6 +76,22 @@ def dataset(httpx_mock: HTTPXMock, settings) -> rg.Dataset: yield dataset +def test_settings_to_json(settings): + with TemporaryDirectory() as temp_dir: + temp_file_path = f"{temp_dir}/settings.json" + settings.to_json(temp_file_path) + with open(temp_file_path, "r") as f: + settings_json = f.read() + + assert "fields" in settings_json + assert "questions" in settings_json + assert "metadata" in settings_json + assert "vectors" in settings_json + + loaded_settings = rg.Settings.from_json(temp_file_path) + assert settings == loaded_settings + + def test_export_settings_from_disk(settings): with TemporaryDirectory() as temp_dir: temp_file_path = f"{temp_dir}/settings.json" diff --git a/argilla-sdk/tests/unit/test_resources/test_datasets.py b/argilla-sdk/tests/unit/test_resources/test_datasets.py index 80f0b1b037..34b0005276 100644 --- a/argilla-sdk/tests/unit/test_resources/test_datasets.py +++ b/argilla-sdk/tests/unit/test_resources/test_datasets.py @@ -74,34 +74,6 @@ def dataset(httpx_mock: HTTPXMock) -> rg.Dataset: class TestDatasets: - def mock_dataset_settings(self, httpx_mock: HTTPXMock, dataset_id: uuid.UUID, dataset_dict: dict): - mock_field = { - "id": str(uuid.uuid4()), - "name": "text", - "settings": {"type": "text", "use_markdown": True}, - "inserted_at": datetime.utcnow().isoformat(), - "updated_at": datetime.utcnow().isoformat(), - } - mock_question = { - "id": str(uuid.uuid4()), - "name": "response", - "settings": {"type": "text", "use_markdown": True}, - "inserted_at": datetime.utcnow().isoformat(), - "updated_at": datetime.utcnow().isoformat(), - } - httpx_mock.add_response( - json=dataset_dict, - url=self.url(f"/api/v1/datasets/{dataset_id}"), - method="PATCH", - status_code=200, - ) - httpx_mock.add_response( - json=mock_field, url=self.url(f"/api/v1/datasets/{dataset_id}/fields"), method="POST", status_code=200 - ) - httpx_mock.add_response( - json=mock_question, url=self.url(f"/api/v1/datasets/{dataset_id}/questions"), method="POST", status_code=200 - ) - def url(self, path: str) -> str: return f"http://test_url{path}" @@ -148,7 +120,7 @@ def test_create_dataset(self, httpx_mock: HTTPXMock, status_code, expected_excep method="PUT", status_code=200, ) - self.mock_dataset_settings(httpx_mock, mock_dataset_id, mock_return_value) + self._mock_dataset_settings(httpx_mock, mock_dataset_id, mock_return_value) with httpx.Client(): if expected_exception: with pytest.raises(expected_exception=expected_exception) as excinfo: @@ -183,6 +155,12 @@ def test_update_dataset(self, httpx_mock: HTTPXMock, status_code, expected_excep "inserted_at": datetime.utcnow().isoformat(), "updated_at": datetime.utcnow().isoformat(), } + httpx_mock.add_response( + json=mock_patch_return_value, + url=self.url(f"/api/v1/datasets/{mock_dataset_id}"), + method="GET", + status_code=200, + ) httpx_mock.add_response( json=mock_patch_return_value, url=self.url(f"/api/v1/datasets/{mock_dataset_id}"), @@ -191,6 +169,20 @@ def test_update_dataset(self, httpx_mock: HTTPXMock, status_code, expected_excep ) dataset.id = mock_dataset_id + if status_code == 200: + httpx_mock.add_response( + json={ + "id": str(uuid.uuid4()), + "name": "text", + "settings": {"type": "text", "use_markdown": True}, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + }, + url=self.url(f"/api/v1/datasets/{mock_dataset_id}/fields"), + method="POST", + status_code=200, + ) + with httpx.Client(): if expected_exception: with pytest.raises(expected_exception=expected_exception) as excinfo: @@ -233,6 +225,34 @@ def test_delete_dataset(self, httpx_mock: HTTPXMock, status_code, expected_excep dataset.delete() assert dataset.name == mock_return_value["name"] + def _mock_dataset_settings(self, httpx_mock: HTTPXMock, dataset_id: uuid.UUID, dataset_dict: dict): + mock_field = { + "id": str(uuid.uuid4()), + "name": "text", + "settings": {"type": "text", "use_markdown": True}, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + mock_question = { + "id": str(uuid.uuid4()), + "name": "response", + "settings": {"type": "text", "use_markdown": True}, + "inserted_at": datetime.utcnow().isoformat(), + "updated_at": datetime.utcnow().isoformat(), + } + httpx_mock.add_response( + json=dataset_dict, + url=self.url(f"/api/v1/datasets/{dataset_id}"), + method="PATCH", + status_code=200, + ) + httpx_mock.add_response( + json=mock_field, url=self.url(f"/api/v1/datasets/{dataset_id}/fields"), method="POST", status_code=200 + ) + httpx_mock.add_response( + json=mock_question, url=self.url(f"/api/v1/datasets/{dataset_id}/questions"), method="POST", status_code=200 + ) + class TestDatasetsAPI: def test_delete_dataset(self, httpx_mock: HTTPXMock): diff --git a/argilla-sdk/tests/unit/test_resources/test_fields.py b/argilla-sdk/tests/unit/test_resources/test_fields.py index 1064556fb7..44a1edb279 100644 --- a/argilla-sdk/tests/unit/test_resources/test_fields.py +++ b/argilla-sdk/tests/unit/test_resources/test_fields.py @@ -19,11 +19,11 @@ from pytest_httpx import HTTPXMock import argilla_sdk as rg -from argilla_sdk._models import TextFieldModel +from argilla_sdk._models import FieldModel class TestFieldsAPI: - def test_create_many_fields(self, httpx_mock: HTTPXMock): + def test_create_field(self, httpx_mock: HTTPXMock): # TODO: Add a test for the delete method in client mock_dataset_id = uuid.uuid4() mock_return_value = { @@ -42,7 +42,7 @@ def test_create_many_fields(self, httpx_mock: HTTPXMock): "required": True, "settings": {"type": "text", "use_markdown": False}, } - mock_field = TextFieldModel(**mock_field) + mock_field = FieldModel(**mock_field, dataset_id=mock_dataset_id) httpx_mock.add_response( json=mock_return_value, url=f"http://test_url/api/v1/datasets/{mock_dataset_id}/fields", @@ -51,4 +51,4 @@ def test_create_many_fields(self, httpx_mock: HTTPXMock): ) with httpx.Client() as client: client = rg.Argilla(api_url="http://test_url") - client.api.fields.create_many(dataset_id=mock_dataset_id, fields=[mock_field]) + client.api.fields.create(mock_field) diff --git a/argilla-sdk/tests/unit/test_settings/test_settings.py b/argilla-sdk/tests/unit/test_settings/test_settings.py index c39230f728..92650e495e 100644 --- a/argilla-sdk/tests/unit/test_settings/test_settings.py +++ b/argilla-sdk/tests/unit/test_settings/test_settings.py @@ -20,8 +20,8 @@ class TestSettings: def test_init_settings(self): settings = rg.Settings() - assert settings.fields == [] - assert settings.questions == [] + assert len(settings.fields) == 0 + assert len(settings.questions) == 0 def test_with_guidelines(self): mock_guidelines = "This is a guideline" diff --git a/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py index d4eda709c9..0cc39acdff 100644 --- a/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py +++ b/argilla-sdk/tests/unit/test_settings/test_terms_metadata.py @@ -32,11 +32,14 @@ def test_create_metadata_terms(self): assert property.api_model().model_dump() == { "id": None, + "dataset_id": None, "name": "metadata", "settings": {"type": "terms", "values": ["option1", "option2"], "visible_for_annotators": True}, "title": "A metadata property", "type": "terms", "visible_for_annotators": True, + "inserted_at": None, + "updated_at": None, } def test_create_terms_metadata_without_options(self): @@ -51,11 +54,14 @@ def test_create_terms_metadata_without_options(self): assert model.type == "terms" assert model.model_dump() == { "id": None, + "dataset_id": None, "name": "metadata", "title": "metadata", "settings": {"type": "terms", "values": None, "visible_for_annotators": True}, "type": "terms", "visible_for_annotators": True, + "inserted_at": None, + "updated_at": None, } def test_create_from_model(self): From f3003c206d6fa9c44f0d1db8927aa2ae49bbc40f Mon Sep 17 00:00:00 2001 From: Francisco Aranda Date: Mon, 3 Jun 2024 18:11:16 +0200 Subject: [PATCH 17/17] [CI] Review docs generation workflow (#4922) This PR just applies some minimal changes for the argilla SDK docs generation: - Freeze the default branch to `feat/v2.0.0` - Launch a docs generation for docs branches starting with `docs/**` - Remove PR-related events from triggers. --- .github/workflows/argilla-sdk.docs.yml | 26 +++++++------------------- .github/workflows/argilla-sdk.yml | 2 ++ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/.github/workflows/argilla-sdk.docs.yml b/.github/workflows/argilla-sdk.docs.yml index 7eed486382..d047762858 100644 --- a/.github/workflows/argilla-sdk.docs.yml +++ b/.github/workflows/argilla-sdk.docs.yml @@ -7,28 +7,16 @@ concurrency: on: push: paths: - - "argilla-sdk/**" + - "argilla-sdk/docs/**" + - "argilla-sdk/src/**" branches: # - "main" - - "feat/**" - - "gh-pages" + # - "develop" + - "feat/v2.0.0" # Fixing this branch until we merge everything into develop + - "docs/**" # When we create a new branch only for docs tags: - "**" - pull_request: - paths: - - "argilla-sdk/**" - types: - - opened - - edited - - reopened - - synchronize - - ready_for_review - branches: - # - "main" - # - "develop" - - "feat/**" - defaults: run: working-directory: argilla-sdk @@ -68,7 +56,7 @@ jobs: - run: pdm run mike deploy dev --push if: github.ref == 'refs/heads/feat/v2.0.0' - # if: github.ref == 'refs/heads/main' + # if: github.ref == 'refs/heads/develop' - run: pdm run mike deploy ${{ github.ref_name }} latest --update-aliases --push if: startsWith(github.ref, 'refs/tags/') @@ -79,4 +67,4 @@ jobs: id: extract_branch_name - run: pdm run mike deploy ${{ steps.extract_branch_name.outputs.branch_name }} --push - # if: startsWith(github.head_ref, 'docs/') + if: startsWith(github.head_ref, 'docs/') diff --git a/.github/workflows/argilla-sdk.yml b/.github/workflows/argilla-sdk.yml index b8b397a44d..83dce506f4 100644 --- a/.github/workflows/argilla-sdk.yml +++ b/.github/workflows/argilla-sdk.yml @@ -16,6 +16,7 @@ on: push: paths: - "argilla-sdk/**" + - "!argilla-sdk/docs/**" branches: - "develop" - "main" @@ -23,6 +24,7 @@ on: pull_request: paths: - "argilla-sdk/**" + - "!argilla-sdk/docs/**" branches: - "develop" - "main"

m$u&flX`1((h3iN%S_kDscMUyvQIy*-JQotgw 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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.woff2 b/argilla-sdk/docs/stylesheets/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 zcmV(81_!itTT%&fM`8Do zgetlXfhX-f>pHa>CezJ5a+CKJB5E?t-D3Q@I zv;Az_{%F*wqQWVk+*x^)@=9sx>ldws&U_`?fwx|)6i0%hGq@6No|Wjj+Lhc2#LbXI zik@&>S#lthOy5xS4viawbfqcF5t#22r#4c;ULsQqOn&iMQrAORQWXh`G=YxhM*4YN zTfgWxZlU6?d>wP(yNq!jqfNVxB}>Ww7cSen4lE1$g!lMN&~*PN_7ITCO&u%|6=U~^ zD`NV@*N5j%{d4(V*d&F9*Lp4o^=-wV4E$&&XJX#);dbqZ^8pUYCyEa?qdKs=!}D|N zZKGn0G1#bWFe1l-8nC}AR*a~P9;0KUBrGsNR8Um3F%kp&^sGD!?K|!B(qItgwkPpO z4nOg8&Z#<)4^Bj%sQjrANfD$Zj098^i(7$$Vl;{o&HR7r?C&hE&b-&}y`y4mHj%mu zNlfW!ecOyC;56fuZ7e6t7R&P^z1O9)e^Pe=qGENxwk%7Q3&sYU;&zJz+X!u6Ex^F$ zTu6(Z`;JIR{;Knn>IcTcKbV%&ZSxB`P>8MADLLm#sD>oQy@;IWvGh3j=*Qa5&VIQ& z#BvplZofSw5gN50lul%1ZW|#duBPzgJG1nxIGMaB*-obI9wC1%7zRoi%C^%k;Mn?+ z?pUuq3@j1^4v?E3B49cgqW>EY2?-#3jqje^;JgycOCcwp0HG~LNR*rji6bO_n_6Fl zxt$OawF6EyR#iAg$gdotjwKXO)cf75+S~gE2n>cpa0mh<1W_5Hw7c36opP+~qRPFS z?z(HcYuX#9GugKj(K=EQB_0sAfiipahu*36k{xIzyD2!y5%vK1@c|DQ3Q0^$kT!Po zBklXM?*0ZWJJ6;!hoDZHGR|mrw+{{o{_lUy{_6}+Pm!l|BNl}Q;&@bv@2Wy(0-c_O zab6Z9oUWgiKYRW)Vv0%P;3X|rT9E6xVx&Q%6AWJDG0oX-H5vJ?>5A8;PEnm%C;H~y z%@URb{E<@x+!!CGA#@@j24G?{>Gvg*2lVeVHM;^7(Pnl#tDV)(Y|gCiIh;CbXJ$WV za+~#V|9GDufDe2U{2(L>iu$ z&FbBmZ9gV+TlVF2nNyNeYL2HloUh~eKdpS)>J9Pm#Xd(4%myqFVno%qUa9n|Ua803 z8#-)?GmgDZL7HHzH4B_FHnRat`EXP62|?edFIDRb!q%9yytA|?Ib5`-)rNGqg%GbH z-}d(Uw;KH$fouQgEh;fvK+gfZPMGsl{cktu>gD1?zL z`z7_05U{qkjReFC1qI#x+jpODe!iG=?eIufIBbyAS`i6yq~pK;J!P{R?B6jf<_85Y z$&N8sKi05v?h+0-IZ#Z-(g8koZ#f{v7%?Dp!%F^s91LTw|BvSLb7Oj@878i9HK*kSp)6{%ZXlv-PQ)RD zE`x4f_xM$H9{@mn{1`uWwLbR;xgELO9FcMuRbkvnQXmT&j}ZE~*Z9?u0F(1c4Md6G z%ZpLJy?$`%3V_^=J3F{;`T31Z7#Ad=bomK731~(`S)uLTR8OErP908ueHZaDB4D$q z{GZri&j-sW%|A#W5to*SAH-ai&E<86{%v3LDwPh%=3Mm7wrS#iOV1$&8oKgshx_jMlowl4ED4$f#L1!t6C1g9p~=ODPt z5-F*yQZ*RmNQ`~4r~k{Ouxs3@+Z>Q5N}1kIzW_;y+Y`2(U+=Sj1(9)2Vkg!}$DaT~ zSw&5w0~|KUc7%a7st`^}4doR9Pl!$j8b%9FcqlQFIssg|->XC5YmQ@}VmJj+^a&GW z;TT&?6ewkE94j()E$+}^)|h0Xjx{@?P9)U!BBDsDj}WU31 zAtcV{=d|bI-bs8=m>_-=CKKcXWW_GX0~^$^=>jcb2lM)283`*Z!V{7?x-M-}_~|s` zV|lNhxg(2J)xt(s?g(|g4crMAX)o}cuastffHd9kY=i3#SX1;l!-O06F-4v5y)!_N z{n~32h};!G7bhd5ytZSkz1eQ+sUW)X74K7DJFF%9?n#Q!!7ID?F7r$p*h2z%vFq+0 z9=`hOhOu`E+Rawmf`Ea#sNtl*!}&#cW`0Ouz3DI?ydh+i=s;0>PiQfT7Zu*A>rw!Z2oWMZdTlLANQLT4}czIhYZic*axDrD;QpTldic#?)QnYZQ#V&@GPdWKu$ce zkR96D(D?F+uOEL7E{&8{@#anN+7VOiE7M#=o-3l-Qlfm(Hnj`lCvjX<;N1eImGc}P zIfq1q23S0QB<*mCfZhipyXl3dlKdo_(zgrVEctLByL0)aRMXBH-Ttp)yZ_WqYe|tF zU*@4;)#eID=!hTcSCgMs|CA-!(RT=~eyOCyMAVSk!pq$%^Rswq@*cQ(TXI^ehX9#d zQzf)Vo7@<4U`9OSg`E*=es@n8G*SbT@I9!qVekl|qYka=BE@A6$s=C?(x-c+DlyNW} z6eaQe@Drh#XmE?Ex(!VKoZcdgD?X0w=CviN3tmmjikMECbJNHMagMY-l@hQIzV7AZ zriQRf5j1k=Eh_KlCFt5{BiAK6a8T){lxWsNJ@?M~+S(158s#PwDXC&%gvLuu_&~q; zp5%18A)_>(Gy@` zHu}fy7?5gdqUqRaZ9G+VYFVjT`f3hBTtJLx%QHo4W^k7Hn4dbj+U@EPSKG&~pSs!K zvyPmU&Tyr~vom3Dulo^!F^FVgi})a%1Gn9)rTvJRN`lw2KOkz(aW}5MO~dBSW@edL zwPwp4)N=wJup1;S7@U)OkZj2gQGo~o4#o=@iYEeNjFZoLvW2r$?(LKzQYnI52$jlzP&K3-Fs?@ z8TYz{a*Ip6o|)y)qHif|*~IjRGj3tOR55>Cr^87ZMJVZQz4x-c--DZz!bJ3J`mBFt zv$MzMB*TT@cUYc?%vG%XC_t5juJ=v#VIpp<4lLvW$%%|VH?JfU3&D=q@FkudiARUh(d2N+ zWLd~2X5t4S?fb`JHk6Khs0b;)4m))>Bf>MuG>~md#IxJ@3UBxJiBI@&t;m6*b~tLF z>Y4m_C`-#PTHIv21B#D$$;E^HZ8uiYUtFhV*G%O%3~-xR^LiE@?1e}-zAdW`mbEM> zF-u5dt!0p?EOIRw9HXESaG^}g@5b$*Gd<>1m;%N!sdSMt*}PbmYdWd4wf_iOfHlC+ za|MYGa1MylQ*%_SxCI*3>pCu7wYNkflt8fcEw)9s%#j8m5R?-^jqs5&y2-XJ@J1PZ zvCEQxGD63Ll8sRsnbjBI1u1mJ!>4@OBQ%73++6qLsDSXuV7F#t5G=NzBh&|HiRm#q z*)7%le!&>OD#^0421Im4)tJOE2i~}o^A-DsEaeX+t0KZ z{sQInfSneVRDtp{f^<>g*rTZi2sAuCI!Z9Zh$ZFSky>G5VCcOA>UPbn{DxunR4-Zq z0{Rr3Vcwm`(344N37c0jkQV&${exerkPtp8!}^!LNFtPq`QzzulIshDd^c?rMzvmA z&&_^jixC$vO7ZGm0Le*_7u+*exgqHorQCbdJY~!;JgCi-!q5HtGLD2^A9dP#_`PVfh~Qf+*{6POoKUi6l2P%*Hl&QKAyfLqkaIKd`D8JY1@={Zhq*1zZjQU5-VVG9EdQhh(N}S^W*!YLJe?QZ~`l?e_yw z5+Rt%0P61dAXbLEnF=K$2o+w?V3$raPx6eS5Bi3KtXuINb~@n7ggV*iUfP^;*T3fx zK(YWg|IErMMW^{br`nI~*hvLG+;Qa(JTE9Xz2mD|`K zWkMsBLSxbz*}wwmYD`=a5~IW|zFKINTi5zYJdLXS5AlQ;aj16QewJ%pn@7XW)l@{k zKU1m8+14)_#x2y>CEb#Vl-cMv42b@BrfGab7RyPY#BuR=W2k^v0h<(f44SbZ&kQd& z1c7+0f=Eva?9UId@{fgyyLhy>XLZ>Hs_gVQ>JLK39^$?US5+# zF8FwgP0>wLKjyriCrA1t{C?ppovgaV>1c~smv@h!4uR$(`2`$DeE7c~B> zpO)wsEU7ZQ#)-uJ6()96NKJ8Y@H7-Z0#aPGy|SvlSYbSo*fbFCmK;D$X{<=pL|?w> z37bU`XR6OqiFvV2n$yv2RQ}kYO5LsvtCo2WW6I7VnMg|XEFd+Y{o1b`B?Ku6B<2+= z&U7;n*3GsPjMqSY02HvKv_gCJS?}VwnX)lP$9Q?8>7cln_TCYaRXg*#;^hb%1uH+IT+qbi5QUIEkAPwUL- zZcK{joDF?6iF-BK80ny(qch>Bj2#sVh;E9olq4i9E2BhC2h@ZuNbOcWnAb?Aj+ol{ zPjg%dw*~)|Ezvu`S2h4n_?1nG-8izHMroCi)H}Y7r8gOC^D?nEB?8ux%nux4T`W2w zjmomxy+te?pWb^_g#G~wZee%3vH68gXQ75Jt@23+IdVE`poA6wl8hR#JV_HpwK4Eu zBw$Qpa>tT{f!Cet&Rr4Zc;X#7JyIEVCMr=i=zs(;dVe1C%lLUbh~NS0gJ4a3_SBi0 zWKV|KrDg~RR0H=-#?#LMUi65trDJ==U20Be7 z%Xwpj z8rGRuVi>6*eIn2 z4sdTqnx|BWhY_zMYaCA7zUpjza))jPvt-vupa&k7+<6n*ist$5`NN|BwO~KBX%LYryjwYCD`L@BOz&Y#&6yLk zrl09#3<5$~a4xgYhziDTTr}+GvxUZ_irgNJWb6?^#5mb!Oz(fO^4&7G%H z5^GS_GXIRAC_Q6#bn~Jjo?A1S$rmQJt!U~*P6dbvJ-70Rj*C#qoAg1nM--Cz!Y317 z=u#u7#!Wgd*X$9WGk^)j?$&fleixkNGkSM;Ai$K^JD4}R=>kur91A#{$yq51$wX5{ z_^yQCFMy;I)XX=RX%FBGjUjh=$~M62v?QPtjW|Ux>QrIgjQe~*2*&>nXZq^b5AiNL zZOI)6wC_3KIl*(?NODXbHzum22a=JFGaEv41mKQ*TW=5nCK7LT+EZuu)vXw=D|?|q zMZe$WYg*z7q#{n@ie%~;HG`r$nwUvewW8XJl|HLR?P9D;g~!gQW+^ITmZnEFJoC&$ zpqK!kl`d!W6#u8;k_s8NrGXb9K``UKExyy)qZX#Ac7FthR3Nwo1`lL3ODL!o z#aVG+vZ|XXb=~EAEWJ7~DkOX|><)vPi!TI8y2~t+U`4!!=-3qTcu*UzvmX| zU;vxoFY7w$fXLF*)+alS*@;#LhY>_6%d`y63v$W)kPx*5f^bYS(x#$=iQiEsSbWTj#TRZs?$7t8|iN~L%c(PyNt zN>cc8olk|i&vOa$9mc_tq1qTUO?Q~7+#U@N=prKaG!!!T;ppICO~e}UM7l3dA&J#? zf-}{*xAKAEE{qjsE0aKYPnTB6aq63DUe`n4s;NtDuJ@l2EaI^^NCY{ITBxi%Cb)05 zg&!!x67sqr4))=f2=^B;|&U9nAtxK%O?JrH(qLN-KLYGA2ys`5Pbca_F5=9yX0 zI@KWOZ;?E|06C&Ni~*hajz+-M`jaFaJ2KXs*J`w}5c=M_?075|63ZIOft^DH#ZttH zbQl)6uo5JL99BwZ9>Hda#W}|*0Iy-0IZ%nKCgAwd#WqiGzSaX5Y^gk*)brv38S)wL zWOF?u0W-yO7LT=1Ezn{_pw#>#jSuWwImbE(F^wt}}lf1z<$?f+@!t&&enhvFSp|oAa+s9!U zHXe30?GjS`pv=ByF^BCWSWJbRy2A=eiD6-y5fj~pEXMQfgpkY{A~P+|N8}+K%cVH8 zxAHg&eBe|%Q{GUMi~=9Hw)OFF98FTLS>9sw=B0b@E4xqqW!sxF_VU+f1*fUgb*|_4 zRz3PvJ}t!oYhpH4pAwRi(5Y}*;!VBKPpDx3vfLzB=tRMJ8;%jV@j>6aqg%i<1&#b+ zk^D-3Kdxp(KRuW4k%?rmuP94I&g0b4>O%zd6?@oyO6liO1^U`$YEO(w~dfSW-)I*JFbc95RKnhH_Ueo)^V z5O<-H?_2BbD+u?V6s?hlkNW{&D{7-4R^P`fkDgL0;{mp{b)#&5Aruay{_1@GD<`i@ zS^hSgHnz=Q2J4n}WYT?K1Ba~KTmN}=+nAMVj->#wyKf}M<5@kRd1_Le5osxl7MTWO zkkpGzVMHjsSp8MXcS#7V+PhkS79{jH0@}OoIU2e8CV!dMG+M*m)+daUL`I+W-4I(& zUB!OpWEez0R`B*0QI%Jr&CRlbeRfkm!A=eXZTHE;D+5#BaqzefNU;B5|N6>RA@|Ob zujYmt7m3)_czpI-ihZS1NN z{mBusZ?O_Oo54A_*Q29z84jB*6Wst#IvTqXn1FOd0WHRQYg4!CYPDfB?VoaEw10XJ zM*G{lAl|>>gn0kjc8K>kTL8Snq(eBCBR95iHQy_>TsDaOw3GMV`td+(amo3Y-6~SVgFExhSbYQt48O)0=vGOBz@93V1J{b z%hnjMkz5Lb^ba^Q<`P+L@G)XOzkbHOO0N0Xg0Ihy$^3ajb3G!GhUm=0X6-0?ONj*> z_f3DrB8?gdNMPm0cL=p(y+ve&>N;XLt~MwFIj|UsJns<6WB+W8-IyLPg}oO15Nn;A zXX*?`q_n+^0gs7HP%P#UtYbBYu|?p@^*>8)y$gH5q(rM|2sDE3?Nr_ z6;wk|U!eBTYxBbDj4oegyx`H4PD;~E0DDx)A+w4$lWIO__?$4^47wxdhTYj)uj=EM znyJ8s%uB-ov3ip%{vp~EGl-_rGMMKEfwnp}WIi3G1!!q)Mb=!*J@7~jy3`z6D|(ulUfoM`T~yvcgH%qlR3L>cQz}3KH_#K=7el_UiNveh$%U8? z_LGuK4xOlJQHD;H94v&y2_rh?&Qj5;yNIP~_>vbFIhO?$;xT|Nf?1iDP{&TfzW|C{ zCb@Y`IIq*W&G(5WFw0|-!FC7~@WzQ;j=+kc@=CQq%FR2Z@=-e+m0g92{YkVJKEF#;crZ%nQcFJ%ER9s%lZuHyt zzJCQXZKOUpq-8^{@!U>*5UtJX?PJ5B=GmY497K(+_9#(mFzjTf_-f`njzVGrbu~ zIo%B~2+9wdNd~?$Ckbz>{gcoZ5?p1VB{W_&eWQl99s=eyg47Eg{UFjXJqPm>4W7YD z$9-*oALJ8xuo5PzsHx8)k^U}Y)`AIEyYYQx=Stt&>pC^1 z<1Ipzi|(09mqxhhS;O1DqBDH|#e6Brh?)T?##hqzUdF1q6jPRD!uP? zbWjmu@AiW4LERk~L~lO?LlBOkXS8(lwDr(C^0>rF%Uwqug_tr@MLb@WZA&whtoIbB zE8!EYJKqhOTZ^g|%QMT``HvY}F|fSBy?KOoxP^}j7bAZUs@!njJZjWwL(^eq=6+n~ z8%LxAL!~qu?!w+=bz*cNLZC~R!u8OxQEj~wJTO)h@b)gBEo@zQDyI4YXo5}-(Ea; zYM(shM=smh)qbs|w%6;$>GU<*xxL%3UDH z0vH0D^OBr9a`sG=$rh?)7@YIo7tGXb<&x^?G`z4x$kihn?Wt54!tl=`j5ks~^J>k@Dr0)P<4=`SHK z9HqZCbCIW(RVN`J;D75Pe20ytLgS&Ts0!l`bX*&cR3jPU^U~6tO^zfhGHzeRUZ*DYv5=CgnUBb27sKfkX_*_QW8g{ZJrxy%`UQ0*MHZ%`jL5C?){`F! z&C1heYOrD0xYm%Mlg`aWz|)=J6XL61(PaYmoZu*Oee#}dZ#fyd`&CdjdPpQ^urvhm z*}68VQ1kadK;l>pC^5~>n9Trx;doyON_o9|l{4Dr69cU$EWU&B<4x-^ZkyN@g+6xh zPwMoB)w72E_{3`d-x8SCuyV~Y<7PBtbGlz8b|q|+<4fOKPHB=WR`~8S-zT@E#MIz^ z=alPCn@!+HKuGW89YXG6E7SeT?x%L$Rz`6^7@OU(bxT^EXsU2P?CnJ`_xORo0LS5ZqJMxCVbRWeo-#hK z{zFi%iIA{N#Sai5nrc7MZU}T|<(}BnT?3{T;ZumX`1pI_wN=xH1(7Hxv$bO9qbFvM z=4UX|gWc*FmBdU?L8VP}WEBU@DdV#;!@A>HA=Y*PjwWDlg|GfH5>Q(U8=Ya^l!UuA z`@jrShkPR|fU*HMN(H2f3L_iHxXfRx)nrwvq&6c~8APszz?(uMOM~~;e4-k-z`+?7 zfGGlRkkAmSbZh-=1DfW@EUpy$Y!T?8>kso)AM7dJxn-C&fjmLF2(TVpFr4e2U+g#7 z+4k*TetXy?4RKO}&ah^a69N0{Pzn%X8X;zvwD}fTRfDp#XjmKaqHNo}UcvD?D4zpu zpg)quKs{n;XPMnk&6ayDlWEX8k|(r56^l4OXTtD$NJe@v5fJxV4@4v5kU@+YF81KM zB`3Ckcdb1#4>KC1$+)+jS|{?MNO*>ms=Mx+CI?BKk~GjUN$;IXX{4>cn`P*Fl-e82 z)6I{U{cqygw40B6gQ97V*DIRULB6*KLPT`CR2Q|GilRB@t|Z3gvZLw#C-?I9 zy!hb|Fjj~seB&a|1(KNJ>wxs3916gZ*He~34@x1F)sNqi(l*9MHd0)QHWXaHyE(K7 z7cKZ-J*L4?vm!Z3S1w#G4ti~Cddo)5wN>F(8-aiB*r&s{6%BN!A zfXYqSk3jA<$0DOjjri6<$##L%7TK|6qVIW0hR0*(fg#o6fLB0H$oz`;1a}}DIS=m zbyp1H(H}*@XgRD90l;D@8c^gVE|w&ON1VYZKqwZG5%G1S)>4fd>}E_8%j0} z>CWmY4@fF`)8Fw6=$}2#(#%l{FRR_s*mX%Ry$HHIkK6B%!5A!-uyP}Uc?5jE0|so# zJYf39QTYezJ;eLe`Rl1hBpc|f(m|4R>6nc&+U%5MHUVSI^MY5$rR0aBG=BCa?{*tv z8T?`Y(3M|9)vn`N-fV}=sLpm8aiki6a}XqLIP~HXQxETrC1SUhA1v?k|2gmVR&_R2s(seFN2Y%r46JqWZi{zMzO@6d9I)pcW^+TATpWS22)!K7 z{@c%I{Tj3rhq(T^vsRbu&Ze%9K%2Jx;;cHVUtnV^eewPNOqD#*TeOfPRjbx2AAHc} zt-4#2+gs(Qnd`dLr*F8*$-Dx&zg#^>Qus?OAzM6)zDVOgj)gmgIpO%m1%Wz|)Je^w zE56KO{+Rh8zqjowkH|kGk|#&d2je}T?ZiXYJha&VyO4V8#=E9bh(Tco8rT zPe-~LXJF3m-dlc?;6F}7;88&8_{fAd=8#U#frP4_L49h#jzVGc!5lN~#ic3g6~oWV zv^sIRNviD2sp=g0o*CI#Z^KCv z#FxvQ-B_rBq7Gjt0mKsW!!`BC6$k3Nbv~=i32Sh;2_&#wx~G` z(eO_m^%*b>b$6$%N#e-yrUExgrg)Xbt1_?iT*?_%W<73Jkye1Kq|hQGIg_l`b~tzn z`?hTr4-{}gX!g?+=y~FiGlIKtQ3(zuiP@z5*mQMqJp{b_?lasFliFvhEL3A?EU$@}>?(xy?0}JwQH8W)@ zgM%@G>PXH-ueM<_`@adULW)`<8U01d5R+zQxRm%!F$xyv|chrOou44}{FQ zu6YqRf~q96u+ODLO0G^H%4Fs2B8k-be>oiK3g$C0AW6*^ms%)ZC=G0PHVrTJK#p08 zLXKYE*x7xsPgH(6W4>d;@{V2knw5LvDa+k`?zu!b?IaU>6Z`Pq6UTXDmMjv=q=0+& zbV0gTGkOq6NxG|T!|+7LG~A?B1pV4nGi0U@Nzx9T^F)#<4HAstN!zTAE&*ige(75b zE&EHBUNV4MV+@np3f(yUgLS?vS?RQ1T-jfytki+QU-&E97h_7L+8iXKTrxUZSLO`W zV$?#Q?RP!b+FLOvP6MA=R(dp(9y_!AD3@k>PN&3w;8lV1W+;Df)|ucTc-JF?m*BR~ zOsPF17R8HHWkv%j8E+8z^ns8d>p9D}&pP2~Dkoz~<@M#QkC?n$ z&e?ks$b<$?W~FX=nO!(W5x+0$ryG2dx-rUj?F|2CK-5Y)v02RT)wWJ`+B%|S>gH%j ztfKJtZwjIKzq@q2O_0W5goIMejlWX#_i4d8d`{b6P$HnB{fI(9u(`CzAZ=h_p7o2O zI!*lxi_iiR31c$L#i%^U6{h{zleCsq2#-&VQv#A)oq+%)VO&84x^U<84CMIggs<|k zy=BH+=Ey;ktf{G+F3hldr`GGNcZSEmemrDYNoc|SQck^RYZ`Xo=5O44Zl=_nqJ53m z?jA^dWvppdl~<{u*c`_{q0Ag3%_vJcw7Cau9bggfCgx23cwR=Xk^w6xrQHLW>mJ6~ zoLc6EiL#W%j~X5^KVItxMGgd}D4^Y)9{5DysmOKYi5BuUui;d}nD6_L6YasFOjC}# zHczo(ZSUG->j%o24td8i_|W>9e3D++Qxe`w@T9$cDvUBrFU6PyDH+cIXb67yo5J#3 zG40794Me%jg^c&;B&HbEF_T9x&XsSefG`7I4C>qZhx=cAaV){D41BBnVE){<2L>v7 z@O+e}#wYA`9CLORgK8)rap0>`tBHC{KGDrK|BkwuzlaI=96JbeGJ_Pwi(vS%g;$GU z{Zx5S_h+a9Wo0lHhxZH-?es7(>U}TAl)Q~QXj^ng`9!-l)?P)w#v|is_sESpWZ=t+AIf!#G5rs&Syz>JIdC**R%{28T7 z3V@q>j&C4r)}lPRp4ColvW%S&W~ir4e=5v=&{fKhhgb93U!Md&2bOjoJ19Yb8HK3L zy4q61UjHC7w>>t}Ha#-tZtH%1W3Rmx2ar!UlUNLfmEdH$tN}_H)_jlNOi-NOoqi9^ zg{k`SIGQU_MC|n7T(8vT(ya@_ty9AnT&F$vRoQmT4Nc^QnjT{!Vf(8~JI_I`92Py) zsKlD7l)2VxfdNW{PJnQm=uIU-Qee^9h&$N%C=>g=hc&|xSDL-sJ+%mnhFKt;XD#Gj z2zE4q&{%)2*@^mvO4vZ|*FE@S$1}z1{Oo{4vd%e)yV|NLF_6$95=Yw_z4vQ4lC3tBMDGfINUylPM{vLdC8$PvGww3M z#7!FCN}^#}-qt^>V~yZ$FrFzti)i5lP8Wc{b)L^3ngy~Q{tIn0A4raVvcVtQ$}w_8 z{3pGv*4Hunp5VvTf00XaophUX0ZP&+jLmekkfXZY#_;M=VNVsAyL*H&%BP~bR*Q}dWg0oT^8Hb z+8?1G&z0BSPn^-$hiXOPI+G&__cnoUIy{k1=Mc@&b;oJ3rj6kk$$N!*-WU(H*D=bT zr0V|Tqw7^x$?|Od3@g!L!cOqQSF7ZW$!NRFDNm;|d2K~(*`%*Q*3~y3q@}A_QE>1T z_6D(LLad5BIEtTzyE_8L9|e!)^p^N1XG>BwZkhJX2IjpB!BjvAu5P?4wikmTJr-d# ze~F%~qM?I`uv&gYSC`RHUPM?eSZ1ec==@HA#jy~*aWwx=5(dFZKo$AuQ_>Rp!25mj zSZFWpKHMx~mgDF1I61Y+^zJP>M|=fW1(A{|-QHr~ANxVa>i9KBlioZk*_GScI>eu& z1|bw(XKH?{PY2&7|BF?JPV1t%IM>@CuK1MYhZAS<3|$8;R~lD;C|B%GHu9HNvEw0;77(X?22w1IM z%aiOB(=+-KA2<0vs~0Nfhj)MhXFr;#l`0{U>G=9ec~qi63stjc&eM9u(Mj>TmCs)n zqy~jI(kAj;bc_&x@JKEnS@BxtC^T6o>twE#!UOw>4wdD*?dko{h9uAd6M2~^-V^XtQB8iDT>SuRV5`lF@KVqR6BpM!C7IOSK==Vpw&g(pxj3)fUkzqW=b~T@qFwtEZ zW+hV>@`(tZVIO~PD)HCr*ovK<9kXxHykgqU{en1fN;#jwg4p7qn!+cTEpyI5hH}vG z>x6~8sZ_AKr9oJMqy|Y0(OfufU3-I1W($>IBOJ=s6IioUUS_%(HTTpfCmY%9#O%-* z7Wh}nGS9alcExi=;#_~8?TAqrbG4o*nahwsLFg1}QWPF4TIl>4u;pQqh|II-98+uo z(Uzi8j9bgxoMgNzDV@owyPUubP~^g*#Jxy#7^83fyfvKkIEl$Fgu-3GXv3c-G_7y!TzN53|0z0QrgQ7caCIUODsHrJxMO^Wb*kGR?`kWpC;A=J&>1(h7!{7l6brcI(kLf%V{TT2<75-6 z8&zYT427ft`=>CKA>vVv&c z>9c-_$@t1_qhpRP6z0#+ww!e6an%ezStolEC*FwaLF8jo@%>hTO&IniscS@-4Xk^{ zrtKJ5&7a4q|Ll#BJS?d+UDhcz~oPM2|KSxUs4*+p8fP(ywu!Bkt8%c6sw78 zWyNMQf4$PiP-wJBw)J zFrI&zxy$w&L>{f?;zPdE1W50pp&X*=#w>q9Fo{|y964+OygHpN!b_)=H+o!D;6hCIj zaWcvUbE@H&Wtj%YJiK-AP$vs@i<*4hd0{uunqN#iOC>hj6>gO$NE&}#blRdD+`i|#RqLfDYEs|E;WZS(Jd4JuKXL$d|7$*@si*w5&^NgZ;jfd9P&&PAfyK0 z@-#u^rMW!<3dHgDRD+nfKzz(tB&HQ<8g4F2+(~@yQiKAa_dwrJf`{u|5QPP|UW&x-B%aYvU?T(iBW85A*9V0nld}B|2ByRyeWvN&^j9@JKZ@!Qbsb8_^ zONlcJ=M0REj)N6&mU~$eu?2^f;T}P5TkRP+t4-So4XIQpAtJu020vP`T?2z@1x3Vd zvJ1qX!amg}mWG+-dq>E0of@wos@EzJey05Ent8dE>tKl|t3mre*_a~%{M0D|w-9f} zC?w+bfEz#g9_ATATsZS!`bnjtFS^eH6s zdY{~Fa>v+oy@j+DD2O^9u(yLph#W_UVr5pQccN(|L%vTj^!N}UkkH#>=UUua>^w(f zJbJADK(RUlt4b}v)x_UlVCbm>IDnyO(zDGhZ+jkL3o0&`h0 z@{No_wWBu{*EDzEFzZK`(=~~~dX2&bK`()oMNe|h|4Dlo1x#xHR(r?t-E^1H#SqLUK8XTlHbx)yx-zJV%;W zKH0>$zqd^jvt0{Zv#3t^*dDNRu~*%VWSum|q z51|7P!|^AB8yP?XE}H1sStdAo3W_XgHx(MPwWI3&GkMs-JB@+sRef+T-$|bg0qg$@ zcvks%*4}As_(r{2#p-68|I7JkSlVNUnAGeZE@BMm>Ov~4d?vr*k9=pVw`DKNYshuG z{&rknNQbtbo??Qa3K@Uo4zmWL7IK@zzE~4tS9XEc*vZt)r;Y|JJv<;-Pq|0 z%OO{|+~4Q~2Y_nK%zLWsoY`7QB;R_zdr#gJaIYRa=XjEGnV2kj4}%4b7WKja_3cjMco6HoZV~yG2pj)qF`7L zVJc{QADVF*X?0cOT;3WMsv=DOy3n*h`BatGSlLolhrUJwXZBrl<;2|=MZwM#05d?$ zzq2)~RxsboSgg_(FUIe6>$S#fx_X73LiM~S2ib$bO1gL%8=}nT-y8|%NqY0{0f5ps z`ihbDjgrz?{)Wz#?J;z;zqWa=h_}v~Uwwh0e6)CN<68v4cmhg&di-qj$o@o|*H)MN zhH~@QV{>G4ak_TpTan|pCJ~N~V4rVQwtu+3Z0kPcpe!WQvt4J6;&li^~|lB(=48NU`r2 z$5ptqRbX95wQEDI>V|^m?Dw++2AZ+`PnhjdQ-wp7;&+p8j}{AOe&HW^M>tULnR|Ok zuD>oM_4^m!6*k2o77=|29Aq>saUVY9U>1M`Y;3hvO+r$Wxlm;ShBD?sjWJS$x#CFt zalGMd2ttrizow=n(pRG;iN|8%w`f9%viT0fnpPY@C_nri9kzc)_XwUrm{EN^M?~~8 z9KsqptPf>CkY>~*A_I*VIO4tc$c;w&m!_F!^Xs=YV7%&ksTIJ23`_L&b#~lbrq5XC zwJVsP@(gweY7>RvwgO%>J>JhSGf$I)DB$V(zS=M?Nr#PQOVRaGpb^N&Z?Kz!PpG`j zY2z{z2Er-Wh6fb0NAky>3RpbR633Wj$86{78f~M+Q_WnU=k|wC%-kU%`fqsdB*QBV z7l{ai1U_VJ?Zx0LjOU$ViklGOPDxDz7Q{@2g^ zTzoYk-lO!p*rq7Q`jeoGlGu3*@oJ@Ulo@R(vh4SO=F>b}N0A8?-ZIw*>G5P#o*45` zoR=`K^ynmrr?zg-4U}@Yt^%@cxh{CkoMm5 zoPXV&&8X3vA}~MBUNYsjSVrfKEPHdn=5k+U5I|P0`W2GF@sfF;XNZy%{u&bu&Q8i- z=V|l^j+gs)0&%@NSlY-OMMQ(3T%oOEF&Z96qmn4Lq!5jYQghe9lB!h2%iZ)m8(i9n zQU3Xn0y1<|34=SAp9^4;)!bVf2iYvJ>OpJ1qf4XeVnl2s<6=0?EM1vtT&$b1{(Ngg ziP`1QcuaAAau(eR)Xs)Je2aR_jJpp)irmA=VV~$?#P>g8-w^PChhYw9GrTaM=nm53 zC<$un+#*J`K`QNg-=oW9v|YuSD_BV8lzPB(|Jl~}3*`%1sRC2!;!GV6;0|>541kSrttz3llsEV32psoEb>y#`{&)#REmCm={YP3 zkS~Izr@rF*wXZJjgaYCHsz`u-g(1b@h09>l*8)ZPyAQk=cp3W?_!Lk1+m;~P8*K!4 z0ZFiI>Zi2PkyUz~diHB7y()Zd<(bL?Dhn<@{q^^L<@~-4$mL_}__@FWXmHolKV{8X zmtDCkNPNtjG0*go`N(BIsa87)*ry2&G7*|kQC5h&l5AHtZ5%aE5u`I4Cj;AF{i3TJ zcoP!fEU41C8?#|4RP34arDaw7u5&RktJ~QYgl2R(7ZZT|fW!VA{8YQHd(t7WicG+# z(LnD{Opce;bjQ6R$qxFtUgJz5bgkxTAoiq|Uby)>LlXGRQts9Xg1wpWOPu`;5H@|AnueaE;&Yr*p!z}53qVrc-7QXPLS&p48sckL6*~l23wsvl+#eZ@qD?{k}E!>@*~j(GCw3uZe+c6>cFUF(NmvF zC7+C~{t{)_o_?MERiAN})$tgb3cTL4+0ux5*#%N=;LyJ;H-rU?%dzP961Dfy#l=2g z7sV9@3e7L;bw(0rhldkSXDLwUl}hx5Tq#%^zXWR_Rz@Q6=mT7I_Se|Ta?%1L^4NDp zU9)or6R3XU9B02{=iu1H`}AmFc}s^F;7ukNi;7i&ih z)Bjxo@;ow7%fz+n`CL9A&@#?$i4;Th0(zq zq4@P%1npcbS*gTbO0&BD8R^ft-;ju`#KWw9ySA545D}A}9Ns}CKAj7;@tFi&)#MX0 zP?>BsaJb-4lf%)F2=;+n%78RaK%c^)5i9`50Me|Ahl4GHEE$u}8Xyn}nlhj}i8BndXM!{V9@ULn(5BO=r$<`sYbb4v3~;t~tLvr= za%ox-M$LVSxQl5z$uH~snh+g~V|q}Z#dTK2Q8`78(k3U&FYF74k#^;r@~!y%rO(}G_EA+zTka?F#8vv(l>5w`m)5p>zc?}JARmg2a;0vX@8X)$ zxrGwVeI2^a3I#e75dbX2(7D|AHX2wrq@S+utY)mi8fBX&1q}yIO&OsTGH`r?G}-iU zHU*Hj0#KEWC4DbARw|3e#iG>jy*FKP&EG4~32 zmoC^Zo2~LJm+tb7QgYY%8DF{mc~wIt63q`c`uX!V5sy>UWxeE81)SF@eNm%^c75VZ*KB>B;`2 z;ddS|3p!af%~7->3c!l$pDPw;A`&Gk9-}fE0qJzh^_pOfN2QS6w51KeW;$q2Gwc>K z#ui=$hJHLy5Ccv6zghsx1S)re`Nq%I(vb2=FrXH2AtGRbP*dgt3ry$(6*dbBHmpzF z)DwFHCb+zC5sVNNXL5^sPFcLNv>-LCj}*in zB%n`#2xa~aM{dQ&bC}^Iii}(a?`ivB<3!fj+0pGkwBNo3JMsYP=y%-A>orw^cxry` zw9KZ~+_i?Pr}WmHpFW3q)2ZL~;3*u^Zz*gl-tLh|@GTvdJNwA=0|P7Be32N^D_f*juK7AWtCz#4>hE>(_0DNNN*N>a1aA&IDhdw9bkWyB#<|~n11hB zccL`+tIBq9mMF%!i3+ z7PVFGOz=o-eeG5ewfKU|_u7UZRra6A9V$XI{cMyD z6jD%T>j}|h1Ft6zzWU8PYR1716h*Dx5hTjS2M1bZcwGy(MXMlwbkF7HBmQnTJ*tKi<85{MeCN8$Q(z-qr#~Oz!UG+tI~i0b9dl{Z0yvB||xj zSfxDrQSI$sY5BX_?~8CORUpWb6c-C0RKtn(ev$1}t}+)WCwF|-FPf`DGZX;A>ao}8 z=Sm1HyL1Zb9^CP)S7%I4B=R6z$X4V04t(CenRdWvFj$>f{tW5tn$OTY+iH$z=lPtr z8Hs8z(9U~uOipdHt>#->Odj?#Q?Vpj2!j##rSZy$6MhZfhoyg#kxQPix~=gT-67Rc zMJU*dnv;ve*-$zrf0y}tug1L7tTc1QlZk~_Ofx}@Hic3R5ovZU6*mP_5IUbsu`{i( zWd@q@?zuf)s*8!Q8KT9eG|RKUGzP*?L*MCAe%z3Zg-%N_D`O-kGnP%U{MPApJUXQ! z6v^u>OgO2=!ar*yf>Yt8mk!+9#p4YSJoDfdZ?`D-Lm?uLxs_J(rRaWjcjl(l~; zK?+iH{>VLBM7RoSIUI4S@8WhIf6qhQZf^tPol8<4GKO~FDaOszF=U)$eMFfuYdkqW zz+DbI#5nz-fBL#YQYm=$%cDC;(`mGQd(AgAp3TY^G|!J)7Q_n--a2QRRtGJ8K)4{? zp&DP;fJ#t$7p1e0`iG5`SUZ;~VMI#JKc$bHToof&lELh9>6+(v@NK@y&Hh32(2g=( zsSVvd5#}~IYKcssUrw z(x6waKfH!3`oiD<_5Zy0<6z!{&xf)jL%o2P%Lo|7Lh768S0_TN!+x`?g3bM7;bIK{ z6Vm?g+BJTCVDQyJ)=e?_>fj3~(wvuFsXmya5;| z*x|VcAa9N&-KDBKX7XU7%%a%*bg{X~pGvPJ-}~dLNFV;?TIB!)5=)iC)QW?#9M5Y5 zz$*|;0d4KA6yD$OQZgQ-<*qUGEUuZslsAo76}LL=}fX=+YRK2vu_!3iu+bq88_~6K6d23g`7+NXELRGw=j@D~xdDR;< zSpN0LOT*?Y4Kwiy?nVFt`{lej7~*hC>vfK=u+_JN3zv-9agadwoS08RcK&%sH1PV6 z%ii8DEN!`?BSa!z%+aHV0XS@=QCjt-G4=C;tI$J~uAk^!t2A#)+^CG`?VgGcm8PJD z9h3cJL^kJWTc*5x8kyHj(HvdXR``B_E{4}Sw&@Ox#uCibFnTHl7##W;6`Dv`*DQd~ zzt1>$l zy`tr!xYPUpkWSf{f5Sj7i_}-tF$F}i2YMV^5W%qGTd++fR^~PAav?M(Rhe?D4Rhk4 zHzj$00OwBGN+>_2Zdq-K9wJl|`a_LPZF2iA1n!vKw0mMxPE?E?>|H7uedv-Kc3`Tc znERrYG3s7Oo#pO}({__iZ|+swhCx#{SD8=QiDe60DB8|K5d-C-&7B^FbZ;?Y&#M($ zNP_3Qd(pu4q<+gzfPGdS%Zu5$0B^FA6+DYRBgg%sZ>sR_zEnm;BJUd|H}5m9tk*8} zC_fdxX19`qisj~A-_rG9A@!WVvHZZlyfGzJ@APp@I_R9IsL!~3k_7ueI4AQLE3Wlc zsJ2%gb=#nVoiKlk3(I{VD^xFu?on>(6QJU35bBa=XfzR!b_H+p_jZ;uafnByQ$ZFzeFCn{3?&FTXjn(nbO86K)<>eWp)YTN2fr4;#I; zuOdnA*$U}^3y!5y|wZ%gt2Spw?1r~Xs#>Bj<$lV% zOegfQxuQPduw&@N;gU{38I`@@s_{4=;TOt_ihJyWm3kCn_5?TuUw8;s;?(fd+}bD} zSR!4{l&r*?O*VJ_ETm@WXJ(YsE6toKRI1fV8&wE&J`FACU3z^38-{PADv@nR2gSA@ zmNAJ_%^i$9yRo{v+qLC~{I@2mg%vs%mzhz6dhtl@;cB|QY#OF&{<%y6?i>x+MlAdP z!SMKxVdz<^A}37CtcJ<7rLtm5aC`Q=mo}}{tLCH*Xp`pAT@$~J5N)ar{YBC}t_#wB zlImumyV?Xsb{vY|>W4+UU`1DHZWeWT;5Z>iR$1piKQ~KW_7y9eTQawn-6dbFZFl6l zbHiG->gi2dKiqcWY@V}|IitB|q=-+-49|NU`Le1kvnM&LFB^Ro01Z@q<;)xF%I7xO z-d5{+!?gc)RT8;d;?ZPO9xPvV>Q>6_qvS=+D?%1Jfq3HKVUJlZOf-#h-B8Oh@*)wf zp>D75YFjB-bJh_xG>!EE+aSp_bLCUYHr>IiqVf!TnJ5J;iECG?hY&ZGs*@ zMqi^@Gv{UkUbjpVm1gT^CmIz%)EFjBH@8MGdxDJTl@dp%im_D4Ld4O|(=V?dX1LXQ zabx&hE=(>-5wdPx9=)X5(pRBtl-4Ni5NH~T-D9L7$ejA?u6*K(CD=bDz|dU%gf`t3 zQO3ZuZYsH%Fu(%jvnLp<87GR3j?-7JXvC@GpFR5k?!}!!NfITQtWVex=oEq$Qbdv_)@$k~&IuRwktnFF{qbwn&9`6Nb>Uc41%a?M zgG${LZ>@pdbjP58^&MamShIiV3+(fVYy{dbgx)RP)TyehuE7}!6jVYZ%RegiAp?{fle zrZ~A&f3U?pW+7v@D4I(fNcW2BgHx@`=twsqOz=~`E=0rvH0O&X{@H$A%i7trVZ2A_ z0-AHLX$VU&kiqv@&@*~q_hy|-?`nyJ1?Y7xt?`{TNyhP**=B8&I%%g8dVJT|pQ!OT)J~x!odB)G@6&^!F&Xx#i;#~kuQXG?@y9`0` z8jmoU@C*%0W|Oo=J$eg_#%Ba)iUY57W}7z`OL!oVThJ2as~-$ZUM^d+rqr!I^IFjX zWBVC5Xt}pViP5L?6Ps)lU5J|-On4|x5|JRH{|v!INPmIG^6cHduk;ZDTpT-w*`2b=}lq&|5&VzP9gpLxa=Pdj-IB)8~jZ0xqAXJQ<(_Q1Ei` z&6%0u5p%gQxx6o&7S&E2IIwkfqP;HDzf-DTa)fHDUASDWrJ7-OUX|n{3@uxM!@ zW_&@H(PqGBU3px^=npz&)a3oneUBfD$JMVB=SHsCO|dRb7o{ys+C!t{MTlnUx~#vf zb?xF@Q79BkjoXBvQfjTMxl;QQ$B)tPFSYPn%>=h~4pdKK4y21jI}=0Lw_^g0MZ1>0 zMaEQ9al_sGXftG#+bw$q{AO5i7R1BwHm9v<4_%_U+g77UVKY3f)!YDfnbb-^Sf=9X zzUTJMO~iU+Qp!wX1*0>fkuR76^az-TxMX^$BA58{Kh%H&A7|P+L|>&H(ZW!uzBj$C z!e7~-%Tr?&eZCc;mcswvsPxK}{4kIt`JFHVrJ!^ByWpEmM2C~*PgS#&h!5i+1eBY&9lSe`3@5A=D2})4dQ=Lbi7ELpiQ@aGf`O>dG~-{rIee z9&s}0(W>Ca(zF2gRl|+DEbGjMZCmj6<=#PJ)7>Vh$6hE6ad&nj>*K!(9`EXsj{E;E(NN#n zqq}mP(>xZHN;%~eYdXK62QEvGuyRNb#S zGVo+VAqX@L`QWZD3X+OWkpnnSEM~p>rxKihGE`|+4RwpLb$8_IQ< zXVLJ&lFU1%8B25DCl6kvrxKufD}x$0RaH-&sQW^h_|UfME3G87B~QCKWo*@@Dv{b_ zK&puaMu`OVV>T3LX9e_4RexXEelcc*rgptnyEP4o5c4fo4V&CB9gi5nAQvfLMDcsQ z^VG9qF&i0{BT;b8BYvnDRc3XEhGa-0g&L$J zwlZr`49qW!tK8Hd13py~UzBx+xJKWsC_4{hGpMNf*5q8{KjbHZJNA z^jbTY%}}r_Ptz%g(^#edwhcZ=ca_8*&Y? zl{cCt)2II&xO<)-uML|M;dle8ZJ`~f2E8$F(2}$CX@l``6R_kU5=z#}+)tXXCsrYe znIg9musw++6$%Z}mo$XJ_)Al|E9#NL$|hRc+nIxrC#2?vrCE*+;Lu*%7Pkduz6Aoz z=6?VG_kH4)EQP{&Cn9sBZ{MzDvB&+fAEV#BeS0nl=WFQ5$W%&MJ7#9;mhXj**J`Ir zR+6|Jyh86Q(e`S^+yNbNO|Dl=uOgcpW%Vze*S5RgyIE$L{fzW@ccMx4@;YnlkxA?5 zaW003$Fc~VWK36SZSMTIvt1ql$(QxQ$NOCkX3yfdDS|@b>U(Um*1NaC9boQ^vC3-J zexu%o-s!J9#DP10tv9j7EqX!0@7UK^!6&TF4s>Fljo2K6S5MV0n9Cm|0Q3e&Q!rA= znpX9Z$)8+E81nn+%5I`6XaO5-DT|>j8V0%P3hEr&E5R&YWX(0Rh&Q}B338(XS`fzLR;O0^i zd>Hn<8c&)sFK*C4k~U4@vH;Ce=+&!2e5nwaToqMrp`;65!)&i}-NFU5JrG-atd}08 zK?AM@KeF)*dP-jqQZ@nvt^QL%gXO>D3BQc`kD#^uZ_*#iOk;S?;n2L=z$7UxKT4FBS~l*jqV5r3fL zc?yV&`?|@ewX^2-Wh-^gXstuOJjO5YEOQBWd8of5@oLxDN$2purs%J=pL_ArjuQT~ z`pGQWzw#ySrGw631ydqhJG9;XUw&X4AwKL~`rM8aD$d$;T{udabsN{W56yK?!3~Mk z4%MMZK8T74XzxsGaW`k;61Y+_7WOR4s*$=FT3yC`ppYc2Lt3S*wviCb!H35qsum>>o?g+x^38-2Cux#N_m_E3sN z0tqF7xNdRLU5MqF$v(gd`g-)XXqjy=ke8ct%L6}x@&+Ke05ej2PWVuP&-WV7*Xz-^YdpaeNVp4 zS347URKFp(y4dzcf?Euw`K@p14Q!Q&zAE|}u&1=ZO9lazgiD9wRd%-AyvB^#t4>)o zn zTIh5Ujl*cs#>u;pQp2VJM{vf&6*oV2Nj_6aiBDkj?Gq;%?$-RYrP1murR10)yKlB$jpRoq* zU7O+1_k{A7X`)3)%S6uynj4a-7SL)p zY{A_GL;yC~rxz{!hK~Zb)WIvKeOgsCpI)x#cu%$6yq%wB#r)V&9!U5b6c7uI!s=B! zB1wDqDUsYUg#?XSz_9olF7?xcD{h2wDDc&ny!|Y+GD2sBK(aaW{CO3T&3Tvuj8CNjN6N2 zc^<8pBeum+YM(Y_a(^QMr^u1Bg5DHL?aMT55*qSP76$I$#wd9XhZgTn_04@GZH^3E znglJ&eDjmkh${UN9h6h?id^^6oQ?kIhlxNE{|n1N3fR(~3Up*`2 zijvce&z>hx^xV344M)^U?$&HBi@N=CsB!yR$aWt@D4j$@85l>8CgVft*s;SQ5ux&v zuRW5-qk1%jf{J!1qa-^6yn6Hp>aAVR%!xZca8VP7<010#C z&pr(kf!0j6UhAS}@7lX}z714Y-k-Mr2U6J$%r9TLNgk@iro>GrLVqrvwAd_Anl0%1 zNXlv{{r)9TfBC(>^h9tn+sIz+UU!XPOV+D_OXveoVLr~j@2jP1&!}hW_$mEMQ~cA} zyb|tYM@Csk%p{W)s+AS^SYU_@HzktNfMc>tk=jufPq`bxkAWgW)u9_gl_#s{wq6h} z>tG`AhC9kff1(D{|A5GBWz>?bPhM<^gF2Z}8KFMxG&N-#7Wf)HTQ?+ny{83(w0{iY zX}{%0@LVcF^bQm!$DPJOmJ9`JZ{7m9kmpTCW4yrK5Wa+krveuUd*Pv0edJrHe_c_J+3K;Y0fGo2K7-^3KpC?_WFK2zB=YrOQX#|1ZRY}N$ zsjg3wbQaq1zOBrX2Esqh)oYCB=NAGx(#X}&Tlw5RR8wig^q~--1elwg97Q}g_Zmel z?@kHWkas)hZA1u-uXWbPdM8_271IRIjYHLUr-uPBp=?(Ras7yfm^#HYOSK& z`wvMb^~2LMmRw~tZiUa+5rruoQg&l_>o4?H(nG{Q-Ana{or#-gdml%+`dImrvbG{( z7p&tb<2KF1iyEl$<3+|T(cr$3H{GD2`gSx^hn7h3?N z-7f#2g>parXHTO6Xp+A#C2Zuc{Zdc36GglYx@H|9PCaBM{&in*V!%HPSi-P^+!JO5 zI@rugFRTlbeLpC5i#EQCqt8&7BKWgRe%EPME#GG`?dVxT9A|p(!G9fnHgQW#ss8N_Q1c&3xd57=V@14Ul( z;Oq|aNiyHKuw+(mm2ptbABVYXT46HV*GPgdjvGBFxMN#vS0!oI8@L~%w_{iUf@6pe z!J}wU#&NgP={AWH8DsoS@;|-{eIIF4Xopg5(CA$r`Op>xj-ym(=xp)QE=7Xv{$V{4qbf+kT65`SQT( z!ZyvE*xJEVow#eKj@8VD4<6E)84uEj`&>;30OfqZbRZDZHBUS=J|IdC=Y78387%)% z9dc1B&9C;GL0lCl^(lD;dekR|9TQ7r*scadjrLb$X}myZdUYo;Torx0UU9+a&q+K6 zK4o6kXer21DjvD?6l{8}e?ow4KMQBv`LY4j_lk?k1Ir+oK{PaH?B{SH*qzj};=~S$xWpk*YrTFKJ~fRkm`kA6J*@ z(N}Xe3Y2Hsg` zd_4%nK)XGK!B0X5uzJQ&ykzsh$u(ATY$O1^q0w5^ggB79gS0qa&ySdKa40%KHcB;6 zSuzO;!>CpsnY9ilN0f=q%y4Dq;hn8qwyJ1qlNKKx4x-X>n%%9B&MK?4XR z6VrUXNWt|*BRA29)zaX!+%fR}Xm1 zh)0bC`jGnm?+!;tk`SQRu6~VKx=N|OR5wj=Uc%_QBZ4r2r{vhfwQ+~O1RC?#%j#l_ zFq%tNZ*=in4T>4nmTeIZUgv8d7i+Y-Eo94Z+TEXj|F2#QO7z`i_A{c#-IYcf6OTsE zROZjR+n1d=Z%+j1JTn zd+6vm8?`#Qp7VM|4Fn(8W8II^OkLUcMnV0%8i zr-c?L`(fwaopm_}=js0UIS}xkC!hfcsZ1Uc`D4(y%EXaKXp!_}&7Sgy>)}~Pk7k*v z0R*+iSy#a$v~R zeX^24%(kxlnZBzNfrHfi>tqOoyp%v43|w(75S}?G)apg?N;OE`O0+b$p?Yc&Fa4;>M((f(+qN5a0fa6{?2lCvuLHUtJ~ zs?$>|(7(8KG&DIi>SSt=D-4F6OKZ8(PI2i%r5OSRluhu66AmjYKYItpG80XMn@&o9 zR`GQZ{5deuBqL;2oG;ZZDUr_&L2EFS#)4iOjE8~wMjVvio6QBl+}v)l0*m+ix|BR6 zq7j@*t-zf3jCOGVB%GV-9-qnRuVe{8>Sv@<-AIjL3V*mP=gMK7dWVl_LqBz>zeAM?E0)b*m z(-tW@b|C-yqZl(%hEkVNw2uUR%ev%$PwfoW32O$$RZzsii+!`7Q&yF){S3^1cz<&M zQOa^}ud$yq9;5$y=a4dqMi8Wo()uUXucO%AZcab&9@l#!UG*^*LMtD{)wQJ!^~{{|qje>0#VA_7t-GV0Vt=7IO_^w2S|1KGCn=&7 zIiMqlKFliD13Y7lJK7x7ntg0O;-~v1`zg0pU=VC&Sr_guH7d{#*$<^ee(Eg@iS`F% zHA>;eTJ<4O1GTx+rl($J0Z@RWFJ@}K3xQP1SdkK<1Xw00W+4cO!<}9e@|b5YYCH+E zFWSfJrGrx^O4gG#;Z|M={+0UQpTC}7#2Ib8d!Ua7GQO-kqNNQmX*UEU0pJe@7AE4U zwf@t!j*X40k61-dQ|KSSc*Zpj9>=l0*@|=`jumLC5r}r@uU|vj7K7zem7BeOK_t37 zhCmC^0leiNW{O-pQ_NwEDVnA>L($P+o!;NhiVSBkC^Ts;Yr+#e1qvfIbcC$AnegCRn?NkwemQ9q{hZ80)DRKKV55>n@+ zrF_6xec$!x3-5M?t7hpcw?AKqOMFRL_1?t$qmqSty(Mj6DiAf?M7yNXV2p=OfuA`f zBa>sjholVH6rcqddf`ip%Fh>sbg|fg9}8rHx@*{h-8b_G>|28~r~`VU8QhR8o~FUQ zVm$X6d{aD^e%QJ#Rz-f)Y+bL?@#<8df815HKiz1(<-p~CrfcD+F|np^Vcxs=+ty|2{Ww#AoH6&% zo#cyzwgikJ)APFGIg@CG*hvi-ht@)l>k0=EIZLZ=Unl@u0cII6x44LJA^Z!4lKC?+ z9iBtCzQH?K4wgx1B&ErK=cc(pgvCHGS8NR*-4R`eCMk0^@ZhL4ck!fIkTYX0{Nqgm zXA54u6v#2s$LYCGvvG4HO>^;rGg?keO=~o~A8voFukYHJ1yE)-pw)>!Y}+;oIY8agmiMNa9*?C0;5E;h zHZt=0bU-%>p5aW6&N2xd_SY96bo}-0C)BUNVo1v5@6@~jh<6gp=2vF&@wdr}H$BYT z{4PCWcnu{5WIqkMf5GmJVYAB1Ad)%YW&d!Hr;EKvkJ70OOUUK-T=0;^+mHL5gr0C3 zEfR5KgQKbmo0CAPN#e)o^I~h<*%Y~*smuj4Wl)?JMmXI8iCS${OeonAC~;6QHNP2d z87I7@!9)1R!d8j3ifO>Ls+-yplcA1kmC*3XzXVu6ap`AXI@6oLTU$`DRye7g8L|tZ zpEjfb+C53hi6{uQV+PGfmYNmYK&cfMz2Hn@A#As71>D9s->gk`+WGpOc2;8bao>Iw z+|m*+q}t6T$4O})h=stm(t^*S)}vJOojv*?LbHPePzF;5I;L%%b*y%a&;$ig1fR%r z&(EdrJEy-Frq5agd~+-oM}-f|I^f1|NcM`aXW8ji6?K547g`8XK4#|3K%L?MWfbCz zu0Te^JT~LavfwTq1(Ui=feqFWFM%nOSdLj|`ofd%rjvvjgu(Vy^JZUHZQ6_h6WNlg9F`pn0bGzs>?3HLw0ZOK&|M5DU zPKimPl{Zeo*d(cX7TUPF^a~>+90YH4G8YBWFps2b{&?jK$gEYWx3(D1 z!<21adU``7ytCf#r&HikiojIc~8C+D%CNYW3!UMh+0Xdsi zJa%p$1_QS`eLF%c*M|;d-cycTNT3ng2n@+=H5Bb2YKy3*W@TT9jMnMqPRxN}#5li# ze0*p1fWUan)K^A~Y4FG;5kt>L0VD19O>3u&F_-A{u@MHIcSe0TnJmI^0V)0=rO?PJ0vAVOUPhak5s4~M34*5kF z25O02RuL8fQ>{_BoGq=8f#?NIsMkGNodk7Ylh7DoD8 zzPfI@YFNx}*sLL!U@enFT-YvoYpfdnBm?&Bf@OHevw%+U zNRBWjHA7s0U^svMzgEe2yb+DSJl{eE#<^>v`hffK8eg-Ib!p$35ZH= z5}7G;Zk%*q^70w$Uk`XiORbbdlm;NByg~_?BxhNeLBCc$A7><$B}~vTOe5~&dmARs zotTzJbPr_fT)?GJloLIi(i>qk;>rz=9}hSpoIKo}ii>mnOkQ42-`w&=W1Po!xvcF- zEnhzAm-46a){EHM_yRk8D~DsL$RUfV1i!Yw-s%fDz8_C7(k|$ygu(YpZpJvgCa5gz z5rLK^>vQvTkX<$?3u_0KNH*~diAHfFDBFo!mU)+qkEVP3!7wP3Uf{|L*1y4G*7)n! zqpZcO4g-UdfaDhx0NmOOot^!(ktSw_&U!;}Nr}%A5Eb1#&YUEYt0*XFT+&5E=|j=< z9|0W|t=$~l^XX$>=y>)o!GlGDE;{5K{rqWO_{J-W&Yzw!e;C)M$@9{JN@+AeU~GqY z5Kiw*B<7HqHp9|Xm#W1QE}fP?(CUxm4>Si|42@W%F=%{!XE;1D$fP_A?m$ZdjhZhO z$MvEw3*)8HHSKT#$bZ+I%5UrFk#v%-aEB0KAZqEQbl_q|krJE>MX7oAwZ0-PRqgo|BCn>&`IF=Y?=7?)5<=Q#D7yDqGNhr5l|ces8J$>Q}~C`goaq;?B(t0HPdZ@otlM-AqfX#@VUglq#y zWsHU;X<;Tgvt)_3&m3ev^ZX7iX$`k*O%m?D+_2dep;STdlq9yCR!B#D=dR@7LJ z85N`5m3X>xbXYH-LD6v6GPDl}URyDKQhVzb^W8M3^|hoU-b4nq-D5+^lon2;PL zp(ocvSOQQmHb;Zou95p}Tj@NO8%~3BV^2n9QToa)l4ofo^B7W2=o7O2Zy7hzS9+Qa zUv#>;B0uVSJW_+F zhC<5xXSd1N+X}5uO%?u&Sz?xr+3NE3!%pTXIOg(K;@F{1e<)9X;eFV@x8p{La*u76dWsCAC0 z;3<~x07XE$zic`7(5?15A?1C^k-R-y@)9btnLDSgvH^s3d$6>z1M4mtq?T|Iz2YM3 zA?o4=EdIQF9Ci+?4{lBwn@bE6?KU%Y0AxOc_BM={1iR09FGv=mecTfslJU`zg93YT zOo1Jo@g$P+4GQO+;4Q?&^kJcoTaNzub94*cZc~hIGLFQb;6R~&lI|MOw~CDqzYY(N zjCe>+aKWO9$K$o$5FXMp@zCQ4CIsQ>3o`==r}2dIkaDmk(QT?&E&SMTv9|S&6XJknCMcy%W2@rdP%wEgdul!cz zeevkyGTT7sO3FwDl~dss9`+PIA%681n@s6mWE&6(nC5c8(lsyV9gs(PP7hc92rczs z1*EYX;^fJiOiBZui#@5-C{m?XGQ-G^>`gnqI*TpO>_G@HJQ>KO2~5KWF-$y0DAG#q zt@IR34uMfZFui753z0sPh|B0G^vM_P~}qobEq zrQ0l5Oo}5#*R0Y-wylJR92l8TH7-l~!I80%rumsuY;$h{jKzA1WRep%|$Mtgz z>Xr+=pZTauYs&7%qXV9JSn}5Q%GN$Inb@Zcg!Jn~;z5y>%z8 z^3vmGU7;TFwL<%I6im0bLCFC%Q-^5POQUw?oOW(4%3o!?IS^&_RtF+&ldlJfLJ~Uf zM+45QzIfJS^;%d8uD;1{8XM`_dH&`30P?~}5KCuNoE&~*P6xuc7wzHzhfi8dI^1I1 zK?i^(IYS9uox^YP70QEYqMHOIy;UmhPlW)g916w1eH_QvJjhlsxs zzRRIMb@u&1a;aLGnikCh(OuI)>sTNZU)6T+O%J?}F;*Owza|+_T<_`~#Wq-@lQQe; zoozSdrLkLV(vK&*9zm(eQ8rS$3sVd2QGM&{l&w>T>}7wI?C(l~^;=Qa)VPBkGn3IpP+HR#54sm{HY` z+mRkD9%1=qq|fB0SeqliDuv(YXIAV~ZgKgK%|}d^D44=pDbsI+P4mHNj^!aETG1E; z%18w+gU}@LiOGOh`t`J+uUxQjskjx;D#*6=jSCkq50sTIXTH*TAUTuoOfr{&8gQp5 z(IZ+dDQS+uxbwB$YU{MpYSgV6Js%ppFk+MQ@*7}oqcGrMU7Tw&lSwJMSnWmIIA)e^ zM6u4dyCpc1LsKr^Z`u`$#G4rQPG{dIe`MWotu39|N|QZdx{AG7JZ#+T$Dj;p*7UX{56pUxSdX5*+lmX{xiD172Y)8r^qOtsfs`JakDoOQx94|Zfum+8Ls zezZtV@&Kz_v2H}f%*thGFWQJGGO015Xk}l@lu>S0J&{A?_VALZ`AGj98-GQO?`Ion zey1g>LZ#y|HU7rnV|vAv3w8~GK4I%wfbk`UB}`S4+3I45lSh*7q z+hO`l8Q2kJcgc&M^(|;weL5bf!FXvPPq_skm5O+LD_)Dkv9d#P0VRZg1LnA0ds|x@ z9@udrnhD%^KuibLb#T>`9o55XyXu1r3*6Q%0o~}MTRq8ti@^1h*ru{v4Dn@&i)wLO z{w41mvtC!Fhm;x_C*nwI(|N*U>hvW_IEolaZFrT!HA2U&7A(LOnqvi2eC;=E(YKM^1`El#k zQ}QEbC`U9$-j_)}w5QbIh2(D4+Jr@t1`hn$ssHzl@?M0Sl7Qxy%a@DVJVYcuZt+M* zTgMhni6_ZJ)FzV0xF>J;a#d{z1%Moi#u59?PRq~TzJGU00Y8ZnP-B1t17 zR+L{Za&t*>4R9ORsqnewx*$Ff1j%AY>`r=>#l14Jah6z<{Y3dmuGV3S_LkZwNdFL4 zgH)oe?3}!rpC6S)$#jo=`r1deGnOa~Z%=e`N^B385_1APJ3fuNIMJ8rg!Roe5xQJDC_U?_s{tY_J-Nuwi)+f zWY`BH3AvFA+bwfZXCvY)F-@=*oP4jXFR69SX!cT+vC}QbE^8!5_)9F^g)w0jJz=Z- zj9E~}LB=d`lqDe%*8d7mP6ZWuc1||eUZutZKJf0wtU>8^+)9T=@YB7`DX_^3FP)i+ z-l}ZOlBq&7M@<==uP0j=kQyv*To%6Pj9eXS-qE8CZ7~IF59R2j!o&fVtm}T)n)zyOF+NOMiR^UwBUR5fNa=fSkCVa9152N(|@>YDi4> zO%JI&l0c6qkRajwR%$ zO>Wq5=AjE(0Ms-6Kt3n-O}y}A4gOiWEJ6fSvzK+T!b$J6YU+fqO93Djd_VvMQB)SN#!#r_D+d_kI&~iIvSZzS(4M_ivYX2bq40%5HH_M* z$^tksg4Srrsj8}+r(w65Ms@aBOk-Q2Zcf*zcyvzRM4MRH#VQd_I0ORy@W$NX!*e$t z0v3rCeE9YlhRre!e~<-Idp>cWJ{Hro9peUl!p4jv$vgDAsPKfCX;7=1yl zVD}F<8`K3jl<0sMOc_Wlt(rF{w;X`k) zw9awDr~6u`W$5Pfn!R+azh&bYS84v0w}D z2dB>*Lf_-4s)9MGaRN8iK=~Q5i-NDXC$tjK?G_&6p5gi(t6M!~9vq3pNGo2^m%7E? z>R~VSM}-qMjC$2P@HQ!V(6)!=L`dX!M$6Ch;}dq}`uZ|%M!hK|!({mL?*qB+E}bdi z2o%QKl~6Wb!?$t?jpGD+s%ZDfJc>-pKeI__E~mGcjsvS!7Y zusJ3)F4{W)=5srbLX5AK{q_nHnrrs;8QkXe^_70lKB#Ib&#-wSRLkR?ylTBoRU3f< z>157=O}yQ)t+ZSJghcUYG!J_kE8*RpAE}H2p%*%;JcBuLsRFkF{z1=w6aoc*p%r%r z2~2&v#X&v7qc#&8uiKzycKF>vbrF;+Rr+85ANEn+GiKgDpXB0|8&bDimk2NgQpNxn ze+{HkULf-<_n7Ne(RYR1SE3so6@q`V?lR(FK?xt_cBx0HJUI&wlgc!1SUaIVy9165W~)bEVdWK?t&E>anro9=REA^l2S{WD}o3I-yMc) zHONyJ~x~)-!6B6-+T3?r`y=Z8V zO!akq*TxVy`3(ue*5q20roz;H@kvO+I>w7{OMSbH3d~_IE!AtI^LSQqFvJ4Fa>~ws zOhb@g;DiViL=ZM;Cg{79Q>AfzaNnr%J(?J}els|}5TWs2c#c!wp<}+N)i_mc5wZ7W zemAhVwjT7ER#jTZI`nqNuM6Z`ZRtLRzY~Bz(+$xG;BXs#^j`+y`4DGI214ERq58vL z3MK1bq-Q<%Noag7-KE5Z^8Qv1UNPj8x-bbMdy|$ohJ$T}bI>`+59*tyv-HtI;PvcI zo|H+!6L5#jX?qG?N~|F25cWDvxT>YndE_OD#dU_~)dm2+`bXvj&Hq-`fuRDm3+B=R zYXWOLZz&qidpsRa@kdJ6rJ;C3PHHnP%c>iy@9_{QpEUqGU2?+IsT<#j` zWPWZHu#qxyaxzb1yEcMbmQ;b((h5=-535UK%USd1ii`NKG-F+nKC~31jRuTxdElq! zfocYDIvNB=U9Vcu=-9|45-b$pGVH3D>%Bu-UOz|o_*Q1(?DprNv9bjF7brsO;7Mik{3{fR zIjt7%It@V#4hzHeobL+%ymqLi)X+54QbM;#AlG{5(X)B%eE)bGzOJ0squW0&_+)V&)k&ZlVcwHls)yDF-7GhRwz{SlA71SeGBHRa#K0Baw`(tc>suBaw4;>+a^8 zyE`uH>D?LzyZSD4ir1++>Pr?$R3{gKHkcZf%5688(jxLY?;7mlzHc#ftUNg=wW9_cFMZljE zbDsz__PRp@cT8%1DH*Z(;yfsZo>_26cjDdiSBqYf{YXrVEem$b+i-;W#F0P&cizO% zpK!&@xt&$|OSqT7p*}I|w}A1)Ov}EhX5s`eaEZ{)j+Yxf)L-k2@t+|J2|508##_3& z!N#qw`E-OWV_Xf@2|(3x@m;c#;6p)5w6Ac@P+@O;9(k#3PTuN~dk;p2^C~m5M$q`n zcuap(cA~Vz<#{E6V7!wZG^fW|(pzO%7JafdOZ-X&%c+Es63hSqUL!oo zoyiE#N#9>D?yfR3EkLnsvow~=`(VoKP~trS=1V3$E-C5F)tp#%Osa^*X0dPC3!RHX zM_t~ojTX`?0`iOI*n&`bxX?+CZmCva=4&l}Q;fxA(Craq{Q}ryRkxQe+Goa>C*2@1 zPKy2YtuRm_^Z*E<&aZ-pNR{oVT}WoI5}prRv|7S=%N^py1zaw|Ad%pJy(^+zUlueI zVwk2+cCQ-$f{KzOyRP=Jh{bjxf^5tLEYx^B>>5N9cu7tIEk+Z9>}4!3iCk@h-qU2X zP+3&RXfPER%PaAAh7A(j2^#CyZFwKZ=7^+l2SZ#n&oRS1XbWI3xcA+g0SYCJwuqw z0lq`Ao}SV699L>VoU*kH+D~c2?VpULl4)!(2N*|mV?75{qY12aHJv=!gz<&?Cryez zBL$AD4emjwM2Hrm!{oMw5TYsQZG$4moADV~ArKBN>X*)(VZKrxm8ycdnP08+k$ovU z%{w*|#qZFcvM7#@Z#veL{Bc8G{rSh0?Wy~%+qLPfK|PLo`5I5}2V%+zg=B<&_{zoG z+xxbS*Y0R~mu@dgewfFq#iV*u=qyTtrb;6+#jV5h5NQkH|5|=uqI+Yzj2>NY2bN+| zI`nor>!afKKV?4&bXr~3xZl;F-)GgTO=}M778E9qdU~I6vmfOp!&O69Tv^`QyJd6r zwuU!pcB145xvW~3WbX(X6cL|PsTNk|tWnHEjvORy1jLMMz-bKKceKX81rj6k=C3;s z&G^iV$q6NS%SRurI6yTzd2uPUsH}YAjI2)G=RN(j#_Yx2Le_!BUR?gEQ~5Yu2LkK$ zs$H5td%U1>SNXN_(p!Hm?71sf4;Z9z*(qK!)%f52$1TXr8%s-|6fkEriA>VG?j}$9 zvQtpJWbNProyDFlZL$@B1;;-3xZU%Bhi>e68_H36S>?2j0Ak@B;)!{tLlRM%2%FBw z`auBC8Ivgpn2$os>qKBYV3LUJnZef>v$3-91?j*3H=fA{k-H^kBBfc07Lyf?`#!dk z+0dv*UEEZC>R@OSr8JmDa98lcwx9A-gh3Sj zPVeG{tq5mo-YMS6?BXV>ie#Ap47xQ7xHPSQA2fbzEiy~0qEPxGWkKaZ_zYE#=I?FR%$ z`X}qka2xh9=8he`O2Zg!>S6}k_RZB{TkkUOvE@H&OK|}lr?Mf8h(Ik~SvfcNDxH>Z zFz|tqX~j*_Y~(%l-@5#^wC$?DrIPl(DCsw6sl2~mtKY|&#{^g9*rTM=E-w3x3XBeL z&D$R6Yov?=pRNn;BM+?e`1rwNT?Rnl`2+5kl8tc#i*K597G11%OOC*4UDHDqD;=6k zHr5L*?Jp-&qRZ%eR;uAfBX9-Argcvy;pJx@^m>V@b@JeJlB#%ROq4E)sCM3S+)ZZh z(Vsvs(E-}a6UbJ? zi)t=*-PZ9{NTKsE!OCsNmDboQGZLu0htOgNbTfdX+Q}&4&m=}8vBXe=XnIucAv-Yc~5wEt#<(A_qRo#V9!r3PQ(T_+p zvDb$fg~Kxb)%*&vb!|;U&7}tCp>S;~S<9`fi_$p`0m5Iqo$}%pN)cPc^YgkcIkeX% z^WiLVfJnG$--9^Gg`n?Y!p+vm-x-%%zfK;QZnOS8jze;IOttTF`ARb4c4HV6{^UM* z%?bRR?$#0HN*;nEb>pN5w>oZFlNOzreHv`^dcxDLwCP@1JD#@Wv3j)Xvlr8etTDh~ zH+qA1FPfNN=bV$U$_{&w&l^1_REHp7O4+=1b4=r+>{F zJz}v137f{^?qY}leL_mwIf;h)#KP2$@ky@pJwsMfjkzVxOw~oop1wSB86Z#E4XT z@RsOP5gsq4QI%Q#rAz&e71cMl|C^R(y%bQy;I z=SraX>8v=nGuK(Qwce=wMqWCe%!=cD?vBcuIAC&p;8EwnXh!KY)$5|VY9g~bYoanc zYopFCEbk`%)_U7iNk+F+dH6k@OPRtu!fW|{B~$mW6rG`^P9mMg|(`OwEA(}UJ(8eEa{%8cMe z%`O7PK5(|??Uy0VT|B4)+wy5mxdFml#Mz~8&TD!I`8A0Vy9 z_LYqv+(tyYkaA?dME-0IVQF zq6on(SOc)SW|R7tuYcQIk^a?H%$GdpFj7aqHr3b^DfUK#a1 z1%xQI+DKBV)IxZTwM^89h-xhu@a^wm+Hf4=b(#WY-J3M zntBML_NYog>eV&+tKxaMLl*~)Q9x2sae`0zr?5OP9ponQ9Z5$f0xfVrUsEr;ZEmLZ zzu3Y9W2TT=H9Pe@c?1a<8hSkmdIs)AmE+0`hl$i@S+5i(+8GNE>~;xS&2k6 z&H+5_A3=)xrPCLtkWR;}m6~bAM3wdqP9%TAHz4izE`}h|E6c!V97&vKp~gD3BR}D| zq)>H7mlts>H9RPj8PD3TEl9gcM4ub4xZqVWCTHxs&b}jAxdIp?eZ+&1i3cr|bE6eJ zNt(*JjbP4uHo}2$*i)qYnsq_zoNa9ui${ZSJP_@f-1>9)PibQ?0?M|6b-x(+1)Y?f zW*)*dZzB(^lAMws+SM-aZ(W6Kt~@AzN$b^?E6^ZY6htkSvC|S{q45O2aUJTNyWuGr z%RE(3ad~f1UNkvN9Gem&2`a(A@g-jV=Jt;wRv&hR94als=IV3Vc`+hRq#?sJ#t86S zRV2}$%8OgA%)m{3f!~o&zJGE8J(=}OEs+NbiN829N#(8n-Yby^$|$iNS!8W!ucpP2 zh@1sXVW7MuRhd+mt_t>)L-!~K4+Os2<%%7S9VZ}2CqF1Ij&~sytX# zm#$Hiq{;({!UaqYDMn3;hhD2bhQhpsaK+vjh3_!~%tE-2YOpH34hR`f@__ApPq7XR z6fA=70*d{S?l8&Uu&>Iw0?@tlh%6j+?umfI=!E>h!V0uVbN&)Fz23yK*~(I-)#@mv zhx7G~E2PjyyG+L)KSpRHeo7bg^1U$+^^}&D0vrpJw4o4iDNiEJElS7|{c#Wtn*zy$ zH^+50mDecSgrdLqtL*>omLX6;f$9i88pDAxlnMZ(CKMSbj&n1u*@uQ$EbBR0gBN_i za~iADLC8Zzc5udg%(^8Mn6m^kxHlhvlwT@%L+j=^&k8)FB8(p!Cn86|wejcDAqU;U zqr?!T=T`OWv#H>7z$QF4L@jNekHMRviw=Qwu5_My=y5gvw<2x#jIX>(>)h;pU;HRu z4!v#dCsv@do11eI-U8dSM)y7v4}B_g)>g?C(}x2VBCw{Q%=c~lx3{eZ@BI9z)fV)r zId5^Oxu?3(`Fp{XZ>*3Z3_K2^e_eM6zd&IQ@FQW2#Ob+N*I9jO!J?GJd?V6w@6ufM z2J(rQNelv%U*DODS1a4gBJGim|J+X8o`Nu!e3$2^Ij1=2*1ZZY#d&6sq__z0ZtVVZ z%b@`1Vwk_qejRWsHAN!<@&$7W%XUuQIX=*1$>iv>QAgDw>wv?W#}9!x{`}C2k$JN= zCaTH|y)81ceo_0D%K(8}^kLz-mYD0%z9}`;ALHZM>0euyk$Uf6X&&!%s^#-yDBrCf z8c(E+J?KL(`pMv&4DAlE8BjDo3=cWxRLd*^?lAzOuhp#56oxs`%_8+?z2M1E?yRO= zQ@i!sAJm+GC?7C(H2ZVUN(XadwV7^Fw|nXA{04o^3?sonr2X>u?#Yj!@t+x(RoTJ& z6TPNhzMN7k7=bS~_a_Pxq?eExi;EG+OK7L}E$!b%_;Z0ZlUV+=-j-PWd00{RGlh;?}k=%CeTjT3gH8S}klO z-cE{TlvhYs2G32%Ul`E}R@0~Cc;<7H^_E#ihG;W_N+Zn02X1Gb;|^{|d`gISN$vPb6iA3F7=ul4nrMeB6Y z*XQm7VkWpe4VXpfU+eMFaM3VIbb24aSPZAFLbS5=tS(aa?fUf!E=9uP#EzhpbuBPY zQ$oYO7;OpS+ttUSoS^aIlk6G?U3Qcf-(;O&w|~pSomd(FQ2*eZ;`*Cg4Ht~+R_;U7 zG*1wbjFGjFzxOaEddCv@3C?)J?>!L=pYD~CkOjz=7SenIVc z)*kS@Lr_avssNX67ObD=zEWqrym-PZ&h#5;d>goL@yeXy@sc>Kw{M&maZ0mb1Dq7= z{6`er;eHH;iOH33AW#bDI1sRT4|Q>Z>!P*U!U)Xz*6@&^wfdQ-jg6m~)r>vHwx1K5 zRNTV1ZZdGK61l%&K^-sQMq3SCD{x-6wMMlUo5U!}^Zmj<$*ePHX94rG_1O*t>`^JS z0mH<^inR_zOl>sxm`6LmKR7YhThXi3RMB&PllwK#Z)ue{h&rb({Q!uxKDj+GFHFA&Z ze4l{Gq>7VX%s=>geYaciqQHSuR|i%1y&m=(u>|Z?eHwv{KTOxa_W2G~&0f2}jLm%* zObOC9Xt+4r4eny%jmM5f+OPs{yf1`J0nyn(g$@MlHp=4b`?ixdO=}c9>CAOGjc+w6 zKXIuEBgQZ>Id!8!F3N3K0v4%h$g1*YXU0)~8k4uWS8wtDXRScS>lk&cJHrXdZxaa*E0_iv+lS{OF)}dP)V5I@OJP>2nDX zo-+~l_juI0*DOc3Ae~K1WW1WNb{8dL?XhpZgMSCsd;;M7t=eohrFscoVM9kddRA<> z4j_DA^}`RQ{cYf{w?(O1QEZ&*yN*Z1H?2wk-`wgXYdgN!d(4dHe{W=Gps5=uM& zs6F0!cNRdrQoq~f{&Bh)TmuqoOE7yfbaw4920bEo4KRPiPTm)k1NFRe4X;G*ZrTQe zN?$c1TWqgUorX6^!WMtQ*YhxV8~87K$A$rMu#mwxJ~l?O zz78iaDhNkh@=@Di*Caawo@j|?6aYm+*ZilMLlU}{gtskV88Cs}0V(j0gL#x&Xv&e1 z_7lIvR_c`sNHU&qLy8%+cu}=b!lm%&IhqnaCVFS#fUS=zl`Ct>yo4vk6u-(>U!;CX z`L&M0P-kEF5JOLUV)5e6%$A9xs$tc)^R`aO$RP00^a`i@enBS=l`jHG+2!qwpKr36 z_39rYrwrQMtQsmXcLJxux%04r>yAqrqfbnDi~EUbF~ChKf6IV++?TO?nIM~O&1Fiu zAuLZP_NZDiPKs>~!Vd=GI;gac+@dN+$6(;}cwKYSwj*XlT$m930rI*Pqr^r@f}Kcr z^X**{tEvE!Nela;kw3UMBNfPkRf#U~HFq`1uFg_FH~ZEXkPoipFdUIOy)&u5ZW94; zCOIbOR&{W&9kirDMstu9n~WP(V>?NGyCGbU7_L=z!W*>ZeW-*1VuHU9nR+_S&CWS_ z9^4@yQrXnl*Ur9^?vvj9smcmYKq-kZ-jI@VOCAy`-Pzor;FIKC~AnIxkg#JEFRE_du zH#B0&q+aZPUhF6-dB+q%QNXQ_XSDMmyplN_Y;5q}yR-|V~XBWrhISFaFAU8k6$!ku*yc^EJSGK*T z=KmJrv-}|W)j{&|Q29k__J?rgrdiT*(u&d(@*R>&7U2?b7&pUyR-wDvz_&Qyw99Xw zKbNE0@4L&_{_7xztJ>$S{4*m;MhQDpY&H;4L4auz-G8eDr11qq-w*6&e^fA8@^>Br z!b$u0v@3qp9<*DRuxmmcu?6CjG|@3k`KVi=D)YuWFKW~JOaVbnFj(b%KK&4}xuml7 zF64CBx^)%E!*m~Njk3gPT8+5sHpJ|qDdP~aq;(PO9%T5M_-^B_`~<+cm8-v=e?OG8 z*~-cl?h1o^ZZvONyYo0m+b^TgXw@OB-2?`GgGoNA*A^e%{NH5$Z)T`L)kW06IxI=<98b%6lU} zd;iB+CHAF5u!l=cJK>D$!T?2$D0_BP5;hA=VVhZf#%kkFlZ?@=RQAxazhDq`AhEds zgq7{P%O6U_+S`NmGG>G^_TNOB>Eo_1pG_M4=u(X_vqNHs79c<)55!(1c}OC*V*}wO z8{dE%PE)z|3zSu&W$!s?u>Xg-9gr~?|U0uB@mjb^C5Ev3=!e?GFI*zjmb|Q4D zyu~u@3=`&LVB1jIu!OhXiT)16P)2N6vDfmM}z$}e0Zi01L{OR))P zfu4}63BO`^8d`|I>r7G-zM8sey-&v|J?^%A((R=D$5wrax+(Cr*S?+LTU!C?AKFm% zThH_E@opW=^W-w@Hdz;)ORAL#zf~Aa6PkSkl2;ipB!Ak2QaYfg45d#1{WD2wx+u<) zA5zwZN{xUE@R2E}ozxcj?YE|}u?71ENSjIfgV}DJQ@1F~XP8Usa0{iV?=qWQpO2;v zZ%*CsfgO2a=)0Qsufd);lqckn+HkfGu_YUS*8xkbMMbG+PZ-5pIx5W9xDWu(4{*Ae z;MPsxlNSsOfn>me1GePI-i?ZjASVHTm#mzJl7?24ui?0DtQoTo zs!1+h#mj{W!Mq+g-|#}8Zy>e5meHZgrj4= z8?!cubAI>-pzZ=nX>G6<7U{7Tqq%Fdj{ zJ6-jjMV`da96|v>(2xaDnTc#7lvUN*e}?e2EZ#%xDgF@TCuW;Nd)!MzhF#ilBPbjN zUh&S~9u>OfdG`);J-nG1Jyp5fYHt>9{t)nNR%I0Sb;+PHh2|qcnGMo#QJl8w2aXxPeRIhTR9(X3!3R|_iCoR%=rf{e*YNuQ9J2MWPNq6ar z4!pI1Hcme~o3T7?Cn}71MA!X4BthWHg7F$S4~b?XA~449yUJQg`8$lGAYb32RT5)I zYp5d03mRD>Vh_R)3Wq#$U)jJeROYo@y{cnAjje|rbW=m_5v zdRhre4peW9JI6TY%}C1-uZa$T%TOO)MRQaN5+_TXK*8h&?#~4G3<`vF_JKn4B}QuG zWJA+`gV)!p1{Mu(u^pqXhCoacn)1(OF^k+Q143^xvVp zbL#KqOr9Ywh(R))QuiPaAe%G_qZz4~f;t^%wO@@YTXY1Mi1bq`U5>vt73?g58&5gA zGXtii)TcZ5eX>j{;)dPC|}Y;umdv*NnW%@a{bJ%bE9HM1yc^v49`?q&f!})o1m8}dVgcOqEpVx4TXOF@ru2`4y|3%+mhgT=W*RK8 z6(O@ep%JM|2AZRqIayLNy6|@Ka`{9v@5Cqi3d8uB4@&O^R@KgztCSwA@*G zejM6|)v@YSADEAE&J1%pcDX={?om(r#j7lDc9prji1zFK94xnCq5@^uO7aSZC05 zUNoyxd;YU#6dH<5$q{+ee{cxV;hLJs1^_YMsC=+b2Myj7GTY!a-XaVP@^r~n;5w-WnAY*kzmT$khfH&2ouL;on2i6_id@}sdR_6ReKn5@%}+F;L77DhvpWU# zR~PA$Lq(#_o)&Wd<$LE~$tH=!EFUNI+jRfk>=llRTR6cNap8$|?)VBVD91|dUAvex z4XE1lnX>E3xizcj@L_rUw+d)z`dP94nYb?R{>wC-2Wlp;wi=T(-|~XCVfGxN_6vh? z%O@zB3xze{mlYEogz~r)a~g_R!$qCdnJxh~9m-+< zUmHO+y#4ztJ!HJx;|xB;xnC|B?y6|d&&cRFbVA{Cxacs%4@gSJABt?8;h}6>RY)}U zb}k9K%06AjC<<$gIWC|eRg^(GEI}<5tiQ&0=7o96u#nP;%kfs=YF1SYoL;_|fqk%i zcYjn!!PA&59|J*g$S^xB^IAkIuG}MgpS-PX%t$xj)nXn}Snn`HfyZRcbwbgi^)=FD zs6EYAuv}CSJnQ6K_r6wz`$U7Gvh4EHB^h>UCRfN0>oF8QmleUAP=ENiR0;ep?5Ol1bMx<)P ztE$4zlNy*+vINO|PA7Ftq~gOIq0xAyhbD?C3aK`Ca&m7+=AbkI7Y(t#-b~w4x4H>u zZj^{xVV|S9z?36&D-|;2K51ql2!9gKrM(;xDaXF~J}@LE+sg!Tq`(lp4;Ai?l>b_^H}p9?N?P7 zRV(TIQAf_v`BC%S#^2;KEadAi;3bMhZ=9n7j^D%HhYl3gyyy<+^p#}IH+p>p4I>>- zw{&}XL?ScctP8us^h=)3WUiI)AbUe~H~o+&(hV9zDQ<)?dmhg;tZSyNkSKf!btpCc zm31j1>wLBpRv`YAS8^1dobY9?6!C7|e{PfB>sVKWPadRukA#v!b(vRHhXx<1k}NVz zA&n@DOMSSa1CaEZr1Qc9y0`qCHF0z6pl^ZoF$ia4Lg4a`fI&`~0(aoLagn+LQRlq|N5^ zAo?@Ty_40YcT(~JErnoFdR*_*r;T>$0D)ulk34{L2mpz=&?+f^;>O=4ZRfvdPTZ#M zx~)lhvVJ4yn>s?eeeZjjL=Y<9{s&aT4?=5{ZP?qoUOTkK1S_$(jNz z*h0Td6Ql>gJg;ZuO-W6E2>{ur0Ok9R5*P^K&cZ-$X5avZT%h=U!L(!^9B-Jyhlz~s zj9V8rTdqPRthzZZx1Lg6)q<1a1_o5keeHD;K_r_i!DZ5-6g0+b0Q$R*b|>%Z>HMFT zUP}nh?9$2{7&Z-IJ2+%5cq_Hl;YtTzhIJKRG7Qe5N3Q_~%5no`Jsq7tz})-WD7O9m z1A&SYcZZZ4FE5lR#{yqqy*2uG&M%%XD>_(xw_5yI*1|4wb;yuWmVlRmS0?QP++|gB zKYxLG@PAH&(tK)a1R7t+O?NXfhvdf*9}gpO7D`)n|5rxvc=^t{UL!E`&pX(Tml8^17>keUn3>qx z_9L=9pXlpN>w0}2baie1xNG~4aEF#*Qx>e4uAb8tATslC7%o9xQ!$=jE_X*CVQ(cj zt}IhkSE-cMl?pfKZDh11MfN=`+faqx>Zx1Ou+!y=nyU5fY>MsY@k@|BGrB%#I&fMy zf7hQMyJvp?-Xrgd)H@t_M6Yz)-%q=y{(RZqbke$g)YT?gIsND76uQQ)aAI{;TV0Te z@t9P)qS(&4Bf{aTRn|ste}4HEdCt|Ps-evg+l9%YLdZI~68eRYJi;uE+=( zy^}oQq7v`}YQUPoHF>1bgKy<2UAm3$u`IoWwkzme$12f8jI200yT!cXn)Vf@plwr% z-BhJX%=S6ry14`6?As!${;kAcOG{^H#qcJ>TwY;4qze*QhNm77#{DRX9CcvsvmK>v zXHOd}i_?jQ0%(1K`;y*ys0JjN1KW}kq$CXAMaKJE)9GT8$L0*PTpikq$arjiTgC9c z0MXNIIk91iyVMQ8uU zLx2A$raTpYXSZbU+t<*ba!q?oSJJLW2WS#E{5i8%_eRN_EOSx@h0EWSdPq0Yde526 zMsj0FOZ@-%8sBdjQ?B9TMqw}+!xpW2vVoOo$3vn|?*Dyxxe6SAQ39 zr}o=50!rC%N7bOy()6@2%<7C^)zpoujsV|rSO3JAl$Z*CT{W0^43YrJ_Mn~?;Q2Aj zd3Dkz=BEy?I7rBkCljCkJEYP;yF5|ucJ(;9gp94ebyloA9_F{nrbSsP7Au+WbZ)t^ ze9qsp)l0SXl?>D$-RZT}Gb)M87O3hX+x)fy_TH-_BOCf2@VMIzlF*J$*=Zt8L!(BR zTETTx2nyZ7gQhq1?GWmDTs`;EhQ85}V+55CSXm@0=3d%KPU~pyaU2D~hiJ(>hp_C2 zqSERdTekq`t%i}cCBccsRay4VLGDNNIGk-8UXIXnAFZ-=7uLeIlanMi33PpWqwGzZGc^&=nRnea|NaiXT#nC$KguRg@; zFjIWnUqNM&XRbUl%s3GJK&>n3u{D$lGy7*ta5~oM@T^4#>P+7MLU#X4uda)UYWq6k zz3wU|dWDqT;HmmB;tp0I3qB5^%}2CY9sWZ~qv}cWPqOz#awYkt zVfMKTxtqb&36J<(y-k6*{Go|<^2nP?XLx;d4Oo1rBJAW;$YLuQ?P3oWpZMX9ftu~R*EY_5 z>qxKAn}=;AoSJlH)-f#}#G4B4{I$Hh2uEFMx!joWsF~ooB)hs%I&KH;M`>RX{u zppQp9s+yUpG8&cB;`Wa`y;aBL<&N%mu$7#ct}8v{IlaZZ5 z=Zq!ATK!0?TvF(_71yry!WnJoSz3fFUExbel3UtEw-Cd>$K)?;JKtu#>kZqP{YrS_#AOR!cJRfQ$C&JWVVDMyly zLYXAKMK@e#{8`quROGJhxW@|h21{q&-^sT-qBk4wAa}2+LTLUe`D=yE%`~!&m;dQp z^Rse1!g_VVt8}YVd}~=Kb&KS0C0xZ>O05*hZ^(wj(LXfpj?Ltv2gj zo8?Ha&UZ5`5o>v?l+mGht-Qj4$}B;K*S85};;G9chJ`QG=>2rtb9JnpBl?`eIEl08 z=F8#vJ7>(744v9t$Nn5!hks;X6vl6}u0eqaY>4|9XCt>DZ~Z{tULNz&c1aGSL$$ev z65-Dm;A_w05pn{E{A-9!a0?dI)PUjhOP!6*ZEg-q_%@``%^}1Idxd&YNmfpta)EM1 z&RUkbaOAbpSEY9-TX`D!9r>%W4Jryw`9t|r#SViZe<6Rv*rQ|A?vR9|{=&j7ajm`3 z9#wZr`#owb!W-}fozU3pz0hm`9__JPUUN*ob?Iu32|rp z;kgF3`_32QV@_zB`;`4u!hd$xDOa20WWvcA?On%R#~mt3*&W9n#uA)vzN8Pqkp@@8H+}ttZw5(A?hRnQ>%D5kf1xQip0-5#VERy0HuB#4XRgf zb-G*_%N++ublNIM#GVdz$~vmkTjRb=*K(NNEugEZdHhGvZ3=6HEjCLRzdeFE0oX)7 zxkqdEzTys>VMG}2Y&qaOYTX-Em=toaod7orjI7}FYP7j3?FLS4rMtiskCPWEIKdHW zkTR6eV&dsj%fKEjVTzk`^Y7?1WFRaVrU76Cf;a{N8y;#fUq(YJxDqy{6sL(Qzgr|< zTp)2LI~YSUY(&;c()klTBjOkFI^I@rEht}`=}2MBxg?|{J$Jt&7HtMYDna2fN{boQ zP`M?VbKqnur#jT(B?*1#y6e$2szFjX?!3eW28EfE_{ z5Z5feEJ4dm=;L*?TbY`i`5n))QA#!1CwiHc51K$u)Sb^-%!#K(M9x5?C{R{pY?G{9 zI8Ny%ES#_@NnN&NtLCIm^Zw7?Sr#}eyUL#GU%Li(pajnQ?EiJ*rHbr0*CYGnEAue| zWbHU}Hi41@^`6J98-3-YuMD5!(ezb$i}Ge;kinU_E6UXSAt{Z>rnBBLo3|CdTj#P) z>#+3d*L^d`u1QC%+jU)z+jxH7UWLk(m^2EVnVWHB>E@UNxLY1Rlq`Gft}!F=UNfri zNks3P>pkmn2PCm2@}SA3!t**oDuLcZX9^2a$-%@x43$EZhDiO6m_Xzq9#n4qn-$u3 zwrt|f%dPMg*kK41v0d)X^U18T!x8iYdNmW93$@Z1@d$f*-xkI3G13H5CV-D@o?KVa zpOpJ&g7BCCl0`|`k#s4C9-;_@IFM4PRB$Q-SxuYTi}&+2B-&RZr>_BEkOW6iu0HSQT6zh@E+HVE_|mVKdIxxk8`>1o!DGj-sSrnCDQ&I zXOi=DGG0uOBRfl;Fg`o7AH&WekdqSmQ&UOR$NU5#A+Oa3NQXY4Q`HpCe7r)w&$Y$1 z9#KxO2rMM47A#8d%Paw{pLz3Pjy^%6@B;TDR0rTw=z~q2&(;o0mcIVc?FS;mN$jhL zoGYn2JEhaS=%ril>EShyttwvSo-rYb-8%qn$t^8EcVb>;nW95!=uZ`UuXQ+NQ_LD#8ldFQlyV_ z8HXb>1RRuE-_{gBurj>nfll`}UR0XDDRo=S6+Sd5ZX@FnDtDj4vPxo}(%t{AB*>(d z)E=s3(*NbiN^unI%{*&L$8QE%m_qn0VNpTH{VTY6%{GUaZg zuKcylw5TpaOh234XZoLP(=yv!^^_y0E?1bU@>yW%9UfOlfx$jY+qzNL&<0zYOH9myL{1h`)?iN&`dd|p}^n! z7iWqFt?}fCgs5W3CA=oLvS`R4-gv;)OrWhPdkYsRW^eYJf9z13NEw#vp2vP{7nYM9 z@z^+`AT4w1v@^RXAqyE^1G zVw`VIzDvSXlD}vkciQLJQ687Z7k>%5uqox8f!!zyy=j=owihOFIgy-@n4H}nMx$i+ zNr1riQ}Ca9vDMU~rRM_Hb#a>)6=&YvwCPqv(OUE-VECHS0RM1( zorRg7`C$_of#;R$EI$ml@aH&?&=3{}=9!!PONO3bm9Moo%xB_11kiGu5mzo%(E(|W*UN~m%89UW)1r-Q6OpSdONsqpjp2Ot(n^TqzQUf6`KywCiL*z>t6&C{%i zl^o^l9z^GW2ADjOt;6+-B{T(sGCl4f9rw~S+mk;$^ z{DUY6{rJd1(1Yq-c<;e!@mgz;u;U~(pzH-z+=z%j16r!JPW}TrHQZXizX1Y6<^?BO z>fEHteIFEep{Lq@NJZn`0j*X}C-YA_sZz!L7^r+oC9Dz@*r6B#%+y0JUf{XM+K%O5 z%i3qnkSH@DwvS;Aj9W0tm<|xay8t7gsAFAfq1ziNn1Nst8}HI`b4nqlDr&X`5))(f z2xedul)Z1uE9MQZ@9iBK85=uoc&NO%c>jSQwHz`$bH)`l)%uP=gGf}ueTlDLjo?s$ z$T}5ud;K1)P$#w5?b-M*wYsf7Jq>*bN=t96o0S<2VG8A`>R3+Zx-H=ZzDv3TI}~_K zKtLVAwuzKs9gFZR1mcOv5vZ!nbzL3Lx~ZL2ELrwDN$p|S%de~@7J19UTnUIAz$3Xb zBA{fs!4ZjJMc%bOP?dhKKW@dKc3pQ`#P7^m*Q^50?~bvs@PM~rDTwCYGo3SZGSKnk z?+^E_RQ~`_rlfhpY%0L9PhA9Y0^}0ZSl-pTiU5kN?3J{ed?992iu_-l6d{b!&^W!t97dh zt7nGy_wxIp0OCNv9gF-c`XYb@lTt1dK~s=an=7sdI8z6JnXxl+3Q#O@-IZ2egk}Z0 z0NvAKnfBV9U1WS~unHP@bWsc3!=yc;6FTAu1aU(z(Z1hH`ZnY_K+X}&rnLV!+k=fM zuj4ibZPja!&x;?05_)@ycKx-r#X}Mc>+MGqt@D(qX?TwE6ZjpAfQr9ybd8y6PZFl%4DfeL*&Dg(7b!f@w@i zj2)gy4>kF`dEl4hKLCM*hk<;r)>UOKhti_VXkzQIEM2{_TZJ zSRGrEJGS)UgfvCVXd%c#L9NT*Y8S5)TFE?oI%csOp`rtcAC`KWJiqwjRGUIa5yKXTRWOv{SP zW~}#b%gqQ$4{p!(NZ1vb%^hjkaaCt$>W$?o(}$)MX&&`08eyybb!p7YG%R6zo*-_% zStPKyoB2rXYf2eo)Xqu>0XRU3bTL7ad5`M*r8uKfQO+qS=MBMea{fHE!s)9gRK)+3 zGEr4UzVlRwsD~847orT*s|ud!(keteAq12X;-#2i@|3Fuxm}VlUf-fCJ;$r{s!4na zUcM4f{b6{cyC;|9iA2y;QxZ}&f_wc(a05#XI2<80k7E^_AxkZi3@j^aVRxL^>^7Ob_S6Y5u&tBC9%x@o1b>UV_z88v6zBou;Epp^(tqoxe1)JWq zLX6^&05_3NIkO?P_-9EVGV6l`X-`5QxvUGiDtpMPA-yKLM%)l{sKHaApYP%5ZFJKr zR>ta)V`zM}lFFitCJ;qEqpd{*mMenOLQ0?}Q6evK!eo)(=gmy#4Aj$-=1%U@W5BBMycfgJo z<+z#TBC6zRsx;upeL|I~S2LO4tnTCPTW>U3X1UBFiyi*b(lapwM1ODEl)b=m!Cgax zs)TUQyg_+vu%c_pH&Y-?uFYz}stxr(**^XGbNVI!@#-+!DRmLGLAoH_IsJ$&UV9oN zc=#`&-lj}j7GUBqFRhj+iQGTJs9DV^hS-~73XFG2d*ZER&16FeF|U=j+1>c<+K}2u z@Qh@I5^9OOJeK2t@fz}^Qm^YU@G50lL$OYCNhp3UmL))Y2Dz9MFs%#?Dv?0Jg6 zV$n;z&Aa&yk);Mi$il9-nupzPd` zE|_1o6$aDR|F39^B74{v`DgM++YxH6-RBhHc@PHS!WFHDJ0Vz%JBr2|gZvgl3P`Au zDrfd`Es*{@GD$nKf$(JG`c#tFSn9+j5?tM87gVhG2bG)0no@J1-);F2$1UzJERG$^ z!aG&4y;ZW?-}$i+#C9!vg{PA}m2OW7If4M4@@s$}5mm11m5`mP?&6aY9t7@-65;LE02$&Il8gBz;kB!3emQ*ocX3=7?L3q^K^<&Wvva# zUN?1o&rq%0|9-~Q#t=VNTzFlgZ$^f1XC|I^HBYD3 zZ|f{GmD{RpOjP}!*2A^j8HP@71^HEAdZ%1e7tT#@_oYT_{jk zoYC=^^mrvQin?FQ<(`=5GG{>kMZlkz$!CV7NNT&wbm>j)`wods5$ZPfMozvB+hbn3 z$_4P*vb^oB@?(+J>#Tn*O5jA)U&jS5EAgRBQEY)vkpl?AWaR*0b(6cNAG|xM;nt>A z{bKECm@DWJeNT{G=H|2U?!oXA4%&&swIR$Ie`08u3B~;4AJYaBj>ma2FZLvTEi?nZ zt&lAOf%g)qqT3vOmf#tDkbYdp&o6E1+KA7wzyu&(gd{Qpp3RivH6z^TzQ9}$flyq6 zYgn_i4vfEaculM+#+4LLYzDw7UielyW-I#?baRbryb;>S%auyJsS~XD3||t4~R3@K@<}WEJcd zjW53+n)c0Z-w?3!@hQ;xFr@qIP$O6}Klwt(hO-f=DT_4=G?taDB ziL0FtwWGmVSeAtY#6csIUoe6elBkN7YK0{o7b8l^^Eh9nyqRV$=kLVG;VsUJUdArq z)+Y*#WOc#*?BavacnB;#a{um}vLlgYv6Hr?f$}OrTFuJcg~bzFQz~l=q4l-I?6iRN z=txez1Q%4YvL*RNorE2g7WsCJL4xMUV~SGWS(G+_;s9jp%)6^u+_C|s02>sC4g&o2 z%I|?6ij7Am2mcvk1Bg81^lzS*kS5}6^LKTOy+2GyT9mVtZk&y)O({e#^HrR2*0MXl z8}__A>JJ4CkL-_(?hL%f_GccAx3dwOxZNoM%F*4Ts-LBd|GBq$4tIQBeq`Tl1Fse) z$-Y42ook7pXevXu7dHH!|z2d*cX8Ip# z{kDk+QwQJGz|@gMRJxTHo|TnN72+7l0D(^>NgMu;YJ1l~a zd+L1`ge=mW+&!(obC2F`jEOzRx=%?v_9TC*?$U7b?ZPK%CTolz+&8Y-`n^Xk?)I?~ z=KYPj58d|7bo2leFzOp}1-0l6CmpT)Vq7_cs&apk+wKi)XKGK}+AVSn-2Rem@dINL z#q5j2H)&&SE7Ktrt3;Pw)%1zZVKF_?q&0DYi);pejt{L4Z139!)uW>&5tWg&8q$&d zYQzag_heKG!Vh)=FQfGN3H690_Uw-zsl86#zSUmA40w~A>_VB_ic2YEP&jVFGdTLc!J;94=7^~+UF+< zNCIV!sC4bz6>ob|mVG2|MHFKDu|Ju^*%g7ytnQ;hp$~Z#vu4}=nz2JK&Yzrn-PW^p zH+tlfj~$O1lh9a4wsxVi)&APsEmuCjxvgJ*nQPCZl*sXqh?JD>zp8fba>$!$f+iua zDk*`p2pw`s_3YAOK;`VJmL*L!(4BLWAx@jU>pj&oXv8I8fgM#d2C|Ni^?6o&433TD zaEK2G(`zg?uGZD9id`#v6ZZ7RMb4L8z!TJ7+0z8d)&qHN+mtRU9Z`CfO;5A))xZDg z5Jc}0?%gNsRF(fzT%s_TS5+r9`;@*qnIqw7&V@l0CCWuwx5}I~Vzttos}wd(F8f|_ z=hf}gw%S2n@nfyOw5crG$6I zp%;9$_}WhPcK~EzdnHly31gpm*wJT^{Zg}@pq#})IePD)ShWX2PM&-<`Pq@P5rmcNLB753es^X2f~1W|_^o1I&Auz<&NSHfmi1H{v*L*{8t1yQ(X;9&T25C| zsAdqu9a^S%sgey+x6K}}eIAnt%=gsI9;-#y+M;z{!1t|v+YOnluowS5*1R+1u|q-Z zY(re*qbEfU&Z#NaE{kF=E&9jzM?(Cx?wr_!^6p4Md|E|^d5p`g(|Peo=iEB~4ErRF zh7%`>ScUd>AIUQ&yLs~hR#8eXxw-$ENnYvG#oGz$Cp22`|5;lZeLnoelWrEDoY?Ec z(XHkg#iMrUtNv7PXIFaLyts14F>4KdP-E~eX8OgQ>Gl%) zOhDwfUV|;&&^PdKYJ_j8vAdjd&7|=9MB=uz3vh5tbn=1119BAlk5zrjBxh|(bdW(% zgS5kTt=-EE9B30N*|O!$n=SXX{aVm=CdFh(t7?2Sw@}6oIiU0VvEDyjU4ME7cN-Yn z?gAhY0DuS@cliIKOq<~k2bjRxdd(nuz=i1^xS-IfA=UUU1uG{kdYoc7`|b#Xrw=OM zt|W`z>W0p0&W0?4wKwWwL*|76731rYZ=NsO_g%q7tY|A9x)Qe|P)@2D$T|%l(#JfX zMB-BrUsE&?I}Xm)Oh+HAu9@BMv+P!1{UJxQsW_L2%A6&z_W~WQXK`JycUZaH!W$S8 zTzU&#h(ecFu=@;$&b!xo{p?gz`F5c6Y}3l{@X8Q{hE}*MBl?Qrp`5C-G8-wq!WLcaLM{2QQ?{dvP@$dI>&A3HC%GgKa ztTc_@6Pv%q*5q>Gt1sfz4Kot5m6GO^s4?rjQ(CK~6i zdwsMs1Mz*Gz4wgQ^`ae?U{VKF1Lt|CtO#jtqE;LlZe@7ico^8PsAKnrVR7J4wd7P6D5A~O2YX{c0+BVIFD-`b~(KTMT)m)-DY;4N7F!3bYEvH=O zw8lx8O++`GPZry{(&MdiRr(Cd6gpAbgPSotJJJa)tC;IL7~y*Bulimk@o|v6LcUr{ zicv)C=*D{m(wCNa$8TjNv?_26*A5mpe6=lfJYL;+*rU*5RQ~NMZVZ*>ea_pNZ_vui zp4TYz-2v~kvV*4t*Vd0agHj&rli=;pMSiD$>gx*yz$ZS@6+m89wm$!o-B&dWfWRd) zBUp(w^adi|w&%FD=xuj@46e86BP{5DEU`oNIO&#!omY;}Pd&uD;)WR9NcS5z>*GDn zw#CdEIxEo);gg;yPUWmT&BAUXT|3#V;Y11w3M+?AeFU{xVAkgs2kg)2)5z)!Pu0FclNz#B-?$EVx zRIcV37GXCe?rjqKeH@89VZ*=wZEG&XG}9j3=QpbHwgb3Jblr=TLi>CC5Z=!p^Pag{ zJ)@C-`z!cKp%?n5;pCV1cl7<~lW$I`F0YVM@gi%kPc>+=ycJ=&y+f5tkT4rhuZsO2 zP^%<_FS~nj%XM4964t<9X6s)fE|7QRc_i#ODI#xJh&waDG+HO*@{^)RCZ4SHZ`tfM z8=&%M$gBxl3p|iOUUic2NB0~0l+0H!Ij%(Fu`Z}fizb5rLM1#qf zAN<)s3GuptNw~=3G(7BVoI@h*V86&V=lrF?-ZvJ|iz@iPDW%5_Z0mX&NDg0$dQFsz0rFIT#po}Z_E^|Zy){2{g*c?4<954(@xJKZV&hT28|^%(^pbnZIM$^O~b&S73B9a06;F7-`6OMF4A)GeU>Yu5D5g*Vf-5?5YJ1dp zePd7h?(6*{Rv@AV`yI@sDV;hD&+cZRo~S6pz4B2W>hK^O^v8hSDyhm_!_~E)lC0r= z#4TWG_`oqKI=_g+1%}d@oEW#lZVx~$$j;q?+9y6^6DYEu@$b(*ET*ZkkyS8`E>WNE zuYc~_FN~yfRVub?qTZ2GF(xKEdz?Kyq#g-T0i_nTkYvM!QWY2_q?H||u~M%Iz@)v! z;-^MHA`*$t_7w<*Gp=CAKV9D zzVQDa3?B2({|te`TO+C0$IRgnyjljg?%FTFgb+DcO-7xl+lPA+;KAHC^8OwI$eEC_ zoZ6}6^v~iOw=0STXoj=H!~b(cW+5Rj*Tvd-#@P#d+_?16J@xKqFg%GB%&8}^@X zR`WtFMQJ$6w>hlP$ud00$Wwk!2}|3l#BkFmhr@!PhX;TvkrmdQ)^}r9M&I^hryi)D zOFzO|K}rzW#=50&H`KSh^I{;;X@~gs%S%ksU|q-SXUUFmBy1^%ar_IpqQSA!jaIQj zAErZ(Dr4_}{7bKCa(aIuku&JphqfHHvwSe)-$t{F4Pf*KTAM-ynNePz_IiCHA=Rl( zkFNM~A`8D;-WgJ|j2iEez)e5x$M6q^xF8d~A2*il3*iZeWK3inNGn*=>GxD{ox8U6 zmmfQwjNiLgwa?GnGmnOAK5F`>S6!f6_XPp^(SnyzRDSpeH#xOMojjXz1(lI$@uwi6p;$ww{h(GIasiWY zPNqh$6O~Kvd^tH$Q0JKT8e(BB{eB806#|h*7H(LOfIm86E^q;6E*~BO3n9X;L*ZtK z0EFL!S`Q@o-0y(;z84DW;nv-rT-b?fwzR8_a(2>Un=$(2z(zC+3ME1y5C|W+LJeyo zy>hZF9VDmpB<#ukT!}YJm8~`2bNBOZU&IW)(JS@!v7;4swY{exitI@gyIAUmMv+dfhbcfG*UTOs)P+I(p#t@!OC)kW`bXDpV+m32 zQe6$9zg=Zq6+<8pcMx9c%DT+}@R6RcS2o_NeM~}p`RLNInW(ciG4q{L3=Oo=aBe-4 zhYTGIVi1%aK0s>*v;G!Dwo=#E#*9J?z&vE@7DUWXOP%N5XL?HOGKFn#1;5>TO>PB6 z=Y2&>N5EH<oBbrabh`Y z3qxPPeo*Rf*7fjVt(nSzz%lTYK4RCYijmXYY1Vdz|C=^58FgO>oXI<8Y90f)FEJ;1 zuo*eGL^zva(I5q_x^62LE?U6y7-n(*xjw;K4$Q;zRFIk$&Y#Y#1od+^r|Rj;8V%R( zAMK!bqgD(btUxLF!RiQs_TYCHF{ly#yR%@@XzvLFrhHm=vXG0ahWAyo|7r8L4<2Ez ze|z{{=d%7Hs+SNo3y4_vAg@jLp+s0_Y{_c^VWW_Ex60Z2C$Kp-5+SFwF}5mTn4YdOpVi8d2WxACwK?(wTJ7cuFiuCig@(&A zgEey5VNpsJ3l760&i#KYjuu+MEUHha>Cb5GPYvig`Wn_)6$d?Fr%%7;Fo?knjuhXE z92|_iS3L4g9n3qx%6nV0z8;+X9Mfem#a_2Z=g7|8tiUaM3_89h9Nd=mR-qOdPaZvV zU54|#wa3x+G{%ohMtw0+tXBb0%6Z}wKu@K9YxnV{Tkk7@xnrLZ3`btN%croh%9}h$fRAg3r~5fEUv2F?ew`DbVpE%N4HtN`|X z@7sX+?i$ArIa94w60cVPfgw-I8luvbr0HO2z`8%1FPJ@_r1J_O@NdWYBKMgZ29G*8 zg7`r;0#-}LBc_p9t{=9DpovLw^l^_%g^umqc`VVmgF0SNL3I#*-`(pn%^z zi(q7tnQSt3*xDWcb`3V2HDc2J3z^5Qt+0Vh)Ax4k{O!>ek8cZzfQqim4V`ZjqnQdx z(U7G$5Q^v!FpB8NO^p2c?FoNVf63Sv5>6lX`~{ZOCQI)--3 zMF?UJO4^h4Fp!i>B9LI@M}JzM(bsOF*+^DaN~^NI7L!8ku06qi~X2%kd{V?eTHWTz%dFj>j}T?yx{aH-F$- z!1EKCceWN;HRa}>-su}K6gHFpzSEe^>d=ybAhaqe1GDJtfb)8{M;7W+JOM67IU?ua zLt)M#dW5c{id(*Z#ZW$)lHIgp1CiKTLjR9q%rtBs5W zfodp9m9*8I8?rixaawOBIU*p86`#rCgU{hKX~5E zfLHS{O)aaXH_{p(*qNT9?nrW0s4@z-krW+C>a^}W```%c;^ru~+~&Cz2JH`=4K;On zcWOd(h0Fit9Et`(k+84Uk8c+bhV@)!8#7tqj{3DsT<*%cYiuKP|8vmGf0Pc(ugn`1 zM-vX{V*f8|=Fr4KS}>OKauv=*xoCw%*cx#;;r>_a^PkdsvqK$>9XKFBtjQAq(?b{P z1vHU_w&I-e6^br5qrz32dtawq(GY--UwtDXe0r29F*3MMhmW1F1iG{Q~9EjEcD;1^ddH6j{7%L#klChR8DOCnXZb_w0aTTWQ>@HiwDn zXiP?u3auGPPhGwKgofVdqYaHs6`kSkBHP?m?b0!yP~g=H4_grO9=VMrfBomA;m43jr2Z+86zdY~WEfX1T?JdSS5b7@3(9@(KUv&Ewa!}^=C z@YNGDZC5VIdon8r*r%-S%XE?#V(@^K#Y&xm1eRmh3j`wSy~_nT3&qaEkycKV6N+Hs-MIds`6X-C(Is)myLbJty^QX0>P7dsg$8M5?956AuVueKNd@&q@_h!q62|?-?G{EKJ8TgR<=lmw&r=_zjry990o;ft^oeJW!XNQp~8D2yN6oL*2$1klFP$Ib8h(%=6y$c^E z9SBn+mem4qOQ6W_fJ7dc+W|!Uqze1UnhX5!>KaXmIYQROG)Lhc^JPHsW{!T|yE_A6 zez#XoYYNvxOabWejv!Qq=aqb*JC@yc=qcimvtdXUlD7<&z`5{xu03pdPWlw0Q(pS( z2H$u`hv}~{7^($k-^O?$Ww-;zxGtJGm8QVrTqp_$|0r&6L1|CjK($AN!?Ap4JMQH@8Aa9@G|DGS zJp4edx_k(Wm^5C1aS43oT;+fJhE^3H;_VxsF>s&{C0oWLQ`GO^BkV@$i~8dC&)6ff zs4b>Lq)GAG% zCM>7Si{DTetjkQUS>fL#IPk!rKK9ZN(LMOWTgTRS+&l&<2}2lu&Ljd{n5CXs$yqo5 zn^z=R;gf%{tX`0uapFcLMTOSc*Fn=1R}->PsT4QLd)4sht&fTkWD3zq%%hh)4} zR8UUkko^dEVzQ6B)SQD|9+UZIf7 zZ%2H-o#7)_Duaqe{pm=d2+@aDcwKEI@7mRmkxNQV&kr<4EvuIpZ&B+*8=b1Q+A`6{ z?Xw2DGjT72RG(eFDe)Z^JT@+BcyGTid_zHArdwk|>N2V0d_f7hdvAZxF|CzLd+`P` zK^0(6t?>*SMmW2|JEzqrAij$^5(E;)fIwnW!(Hx_qsq6@aV%EaZx^3DD)5r}_-wrq zUXg+bjRt zs}9U9vKC{UYi=(3%kOp>mLxwqi|>i1f$!Xx-^IZGV#j;m6U||I1Henb!|L9nWSK{6 zc~;i8yupR1TKTWdr8>9FCt8jbb7z|_0=ofETo*4Z-)Z|UgrzlV%04Kejtf14|32~v z%XS_L+w^xmH(Y}>z8~4(--vnf`hF?c$#EG@O928G0&}Tze)2hgJfheOYYm*>w|is( zhNj=vZ~4QXJD;`3TIh|0umt8o#8Qbgr*?9~txe5=meI2L63T#{my0IyUp}>PJYifW z5ZzK1^IvhFzs+wAKv*JBT~t-xFnPb|zIGYlcC-t3*6RJGbjn@jRn?ak?P=c&hddQS z)8g@Iu6R9TF?KgOiYR9J3hYhlYxCNKI+G{bstUVF>WU1N2KQimdCmwqMD4t$@imfe zj__3uI=VwEFFrX{$3`e4Wl5BLl}jPI+TqZWlWZ`kq%$_L*>1;7N0((PHcn*?FUyP? z?bMFf#j0v*)tcjX`n0X{W%b23a(vN(kl=)r_nW*Tlp6uNXgF)(=TFq0c zLvjk%ltSZ4o3d_nhuYSDwJpsfTH{u`f4kbqcKX&G8%(mSLIE3c`KKZ|#g{dn*uy#C z9)LJj2EOXJc&rC#>R)7D%Q};Mcx_h!D4(}}tKSX!P3n1pE2SwT5+%xlwV5Av{i=nX zf_~nwz83q3(TR&HxAdg9#Y+>Tlvs{~ukSqg&(UYA`!@i5U=V=K+SYm!u*OI*l^nFs zX=_=SJu=4@7UbdY`{iy8U;Ec}|5(5NM^{$TxsHyrfmvNIOFT;MRAg=zow&GJv+d^f zN=-IE;OBDPjhq|vPWxhNzVFjS9XPdoAkD%jgERm(*b+=Y{vkc#Nu?AQb$@#5Z4R2s zkY2spNmV+O5P<2JWdDuB-HZ}p4nJWsXaX;gu*7NZdBr=}*KP(;x{3JbZy?z3kdr8j z{(-f3BUf<-_~!{pVJD6ygusKR@**+z#_9 zUupR8uaaG&#iBsBkip|rei7U`8GFp^9aXe&t^7^>*;pOdkf8-?`ozgo>6@unIy&#s zKvoo!R@uIQMiy^b`(7xJK9Pg5Ifgw}#EUkT$JQsde_T;h7pswSZdX`o zBSt(hd087`3w@5%ml>7RcLn^BBO^zV(9mOrW?HmyHMOy3adL2Lc{&>mzfYG}-gIUR zvQ(uPmV|mCv`7+D_a;#4$`4*Z79Nbok%`0Y9Sy^dOFK>k@$5R(jS-`_ET71?$G^1j z#hG8oLeZ3y!I zIr!2KKxMG`e%y50jm)j5zrxdGk|6RbETSD?hO(x>^k(_Cb8uRYT*DnIqva{A%}LW! z%?zE2exenF<@3*R@AmFSnk+t(IaEI3HZ91nt3`wm?IQ@KIu4F2GPNIFgW1w-^5Tjr zzliSakOP*e2+4~lXJqpP?xT`+QJ^t(OKNuLq7nQ`U_{~f^uX0Vf+JtzdIy!v3*TE2yxCq+3 zmx2?LZ@vO7E!oLXgADFuhj0Py?`ao@9K$>RJRZX#?8>k$SNF?|r3xP5aU*ScE6enB zWo2B_tEVq_xcR+Q;G}N9c<1B3U&`F5BT65Q(LlpRp!gFOz}T3DZOMUSZxE8V`)k*N z1pVct^9@hQl-|Lh@LZ@r5e~>B@eQk=Zv)hL&FJlozmJ^-vaz?bkE?{3W4|B?9Wl#rhXOZA@F^c##c(~_f3A^44sA8$3F=Yvq)2`RJ&I76~~@H!P<-0mJstYKMk^W z-sKgB0TZBoVR*UQdEOeOoXp@X?j7Q1#^VJ=N6~R*JeikR;1#*8w0Kj3_tfuvYGkcg zlALYL&ie#>9tu!z{eYXNOosb&YI;j2*As}Sbr*4<{#7@5yMvCd+RmfXXPZ>?LQ~cW z43IOF(h6MlNq0h_;<>zwepxd2Xo4-M9|&lgk_ExSSZyl2d&6@uXGa3mru04xOC7_2 zeTxNLP5zdtLmE+qnSt>7%*McATI{_ggapmw$ba4 z)47KnvtHpDgRN8Gd6DmD&VU@!V-#;qkolx`T~Nfvh6ST*^iw;4i!0=K2GrR(yB425 zx1z7lCDO16g5L&2!UyWzO^JT`w>I_7nVv$&xDn16db~&w(;2%dxz5GWS!@?W+l%RL z3d>o2*5&Tx_q9OdM5w!~h?hpmOUgYmi z>Vw5{pBc#t(lo#3iIUn=PL(2~eA%106>GSzBJ4=nWSQ33(9U#p+#cGAG;K6Cc${!w zp!zL!oX6YK? zPhI&O*L7gLVKK|yzjQ0m;&LnK;Ar(MF>(?R5;318I+O4Ld6FyC$%e^z+pvXz{l~9jfQxHf$)q$Ogb2+$5*WC2&13Btc zb|lHGdOF1yW+UPX`?*(dB8OU(XM|dJ_Tb4nu{2yl-EaSin=LoZjtvhQzi(aj{?xA2 z*VWyZZK&l1(=@1>ty>FcK=r+|ygG0RWE?!6kGnY(sWxIc3{F3!r2vugB~K?sq}csb z*>s$l@E7}ykdc*@i7ikw)1dHV851~GR7?paz>g7f2uen=i2HLeyl+Me;22Ebi^j89XnvHWgModvFZwFxteCyK_{Pfc`AnRn$l{Z&4W~^yrjq~P04i4Zpid?a^vu2|4`97BKQtU=SAMAT@hYg!+U8x>1a5l(k z(q}(LUBdg{{}lW_cLmPA9Z(({PJO5ffHP+-XyQbV#q3g zT;LT1k;*N|TQC}{og&qHOz}EtP5mBAdbb~5M<8m&Gg_RNN?QpvQB7oRPq!G@8=J>B z8VMwEe~f5`3lqY{!Q7CL**EZwt*40;t%UYAGeSk~8_lQ|*+?I{(Im zM6Iwe%GQCFR)G>y@jLRz)B3 zs#dSsj8h|R7nSjZdgw`zOOz|qmmt4pks!F_i1;7XUbJ0Cz(oD zbOuVKkK|Bnk6Kha)c7r81k~>!B zER=eoTxlpY+10w!Bfp91QnDKHMfQA@lk!iHeX7{aKbI{xi%wg_XiI~7R5UWI*rr`y z^!fLsU!velyQi>BR}f)mg6~7VNUHx5Cl^>S*vrI`Z<0SPWEZ9&R|YV50^yR%glz0C zj^_?F*>#p(F`47~xliY!W(4pzl_dS-b`I^$h8ZYJC?-nae8$odxYcTT=i}WQ7mjw# zgHPv--!4z-8`0NNptNVs+m^UC1z+DSj!*7;(4E`?{$HGn|LQS+j9Ru$Q0Mt>bebJj zeHFCu_jeXCcIaMY8*LR0P}}X-l=Xj{ULfjIKh&6cNM6Gwm|=tRs{v=kVXMiX@6%dx zLr+l#>wYSMIwgGbo6<<=B7&|ga_(B{^Vooo`bkYEnk}vvDj;g377=`jAcR>i8tPZAUT~)gNk>lRbaFvK3 zWD?)4LaDVe;q?lv3x8skl7JoX=$CQQ5$dnY{d+OuLt=6)#YesFT(Z!;@3W#F*j9AdR6S@TTvC6kCu--xuKO z%(~|<I@d0!?Ze^g<`QT~8HQx3YR;=bu2MQm^$aQ*E}bi|yq7K?87K)e zIOR1`-F(r=sugj$^Ap%yeFiYZEoM{$$&hb1?k`=>>__`<5w)(jrLeMxqql7GaA1fgXZW_ zjvEU2!V#?mf)!f|A`)i0DSej9*3%r)yLVD@COY^44&(BZIhx9)@DVSl!MaX4p8KKq z`fH{%V$bXHe%>x*f>;tBe-NyB%F~m+M<(j^NpfhL1uyMtySiU9cTqyg`L1$AnkFsq z6g_0PLKn?PReWp!6$rgew@b@KNcI;?fa7)yDh+sN-vlFNb@|nwtz2Jv3>5G&e8d+0 zMCAq-v8Y+|q9y(P|LB1B`C^m}GWACf5Ja1!6V(gpsp~!%B}ww!q3$(WywZyIjim!W z92<}wiR&_v5hXwOdws{{;_Mwm=RE(ty!y3{ zO7313dtvL9vSs+|`jZOodR1h8n+I1VWOEFnPHv&PBLo z|3{e!zMSRyk!UU&*;xx-4>t=TA8X}|NUNAA>}1A@a7(gcyTggq!|Xi6)&Ako=o5S2 zUXOQo-+_dk%60*Z#ar~Lti@-T#T;J`U16m?8+_%l+iLiq_V+N3ZgWJrYDjU*$!)(2 z<)_E6eG}h?MP0}LQpqIG<`=jx|K^w2m{etqeH&7+1yp3E+52@f>Ge&c|1`!taDLo< z?Ry`q?!;wX3uJcBLmiO8CU-{@6GP)Jkq67jz-m(rI6PuXlqD)Mo#Yn{ChH^3JoTrG zN{>9^GkZ2n9r(P zVNJskC(vRmgm0vq83Mq~zJPen*TUaG+-9HenJyK%_2mtJdY=h$hfPnamJ?W$iA~csmYBI6DmDi%%vn=XSWpGJ$OI5;gcSJwdPv?1Bd?m)mrlW zJ$qNanNc{sn=d;)ub>`RBE8-p5O^f22~?p-NblrO5jkR>OJA>yzx33)aJQXOhx}y% zAT(BNCoiCnwv#i}>79@jCv4(F$c?~cRDW&gndWeF8Ks&EB9o7GLV`kfQjS*W)b-~v zA{NyEK`xZS&V+yB)1>beuI_yWiYqJKXzKy?}t9UZbjUEgSe|1tF`&$~7NYRvxz?25tbyRbAe27dHI>nK= zhFZv@J7UY@v$A8IIK8!;uFzE#&-hkIK)?Oi_omncEP)ih?^`@WT&zmKMw?T?<#o4U z0E8)}taVbxW+J)BL2Gbl_xbFzAvr)iZ3VB&Fx9X_9~Bil+GY$LJS= zu(5Qq>zQjyj)t^d=5&>>cV)U2e>0aOktkZ67U0 zzaM+qMdXXE-m{SRi^~!+B(O4a@kAOIV1Yw%G8S3NUieQ{ z@`=%UqY^ok@;kyO+gKB^0@B;C*l44)wZBY-*1Qa;46fTrGvSyB$(NFN(RSU!j=aC& zs@kBXkRq>@lPtu5@(S57qR9%?Y;QP_pGFKTOPJJ*b$G#`g0o5Lpng(K7L6wc3jJYE zWA0}1YjK`yIlTiswHaa`F{!pLv7c&OHR$c#KB35I#*r8{HOF<>-pm@HUn(9)gb)Xs z#151Dy*9Tqou2zX*1y)bliHDNv75X?7#8Q}CX<=cF^MlxPJYRL z-p&K{r<)xG@b8_zZd9^98(9sDS-EqmV61Mjgy?!Lw?{N4=>gDN{UaJDAK70tZ2{p5 zlnkJmk6~^j0Q_QM{ws;j60EQ7!~I=!pN;eDmxlL9lSupqM)~O5%<^qqBZ}TU5>iqk z^EYF-dmkjr4syM-(x8IJ>>X(~z%px4wL7VW#aO*`n;mmvcfSd%z?`X+%B-wS231>v z(KrLy%EF1C)|2f*5E z35$#~9)VjnVylbnQv7s3OXUi`B}S%VL!(I9^)G_4>bz0 z;Zt4&XL26;b3-Cs&%rH#+VWH+|IFIZt6OJVs}Xt1WQ|SF3I)v=1O12#J3fXC^gMC0 zmpv6?TBJm5Yhi(*-f+Zo2%wfnq>>3@0h^QXZa=F2ow?#!WWk+S@+?L|NjKAE8<$^| zLkfCH^7vpF7x&a36OtmKKNt5TLcQHU-^bSKx7K|$sy1u`od2T$QkJv0L!HFkrb>?h=_O48fmctYHQl!rtQL>13-$W5(BbyiJ}MoRrs*1IF91XV7YsfBa{aVl2s zx57pJzH2CNk3p4**K0Gw{VaQP^R_d?eA^{SWqYY-VH)tjNX6$lns%fag+BmciwTD; z{eVqUm4Mgr3)34~grHgkOhHM1NIlmK)DJ;NPEBY=^bL5fof%EdN2GAc*tSba|5 zd%Da_mCezJ-OR#}B5eCDOYKr|h*?#syewp!p-?V6K2h15S)NpCOho4^p0%JDK5iEh zx5E`Egfd;y$Z2-YWKQw6dL`Uh+8l`BJ0L5q7U=v+RZic}Zm1hu}UNe`mO z=LptzGSdq5EKUf?`+YG^;{mRZ>MEv&WAW2kl}mE-NCVt17>JK7Wgxm{we_u2<8t}k zhE3`2yO=e>c54;}iy6mEDa~O){1F{NO2EspIQ_)1BZPC>#dQK?im_j?!XC+>TvujUx`O zrP>n6kf(ZfC;SY5DVK1NYw{0LRH(j&?q7GP^!vy~O?pd-yJBaRdj5PM2kMk9%57Lq z8{48QQJxx3-?aAE)fi{#%_G-5f|VtP;dT|evh}ysUl}sn2)6>_4#d`5)A05UZPLX1 z02wc&ab>YE*| z00wzTjq#4xcwee33dNraE!<1rf#}rrLC>Ne*Hz+OPOl;ShcE&{W3yKE(nV^p6KB=` zRMYM@Oo1fB_Fum@?w?s^yJuO8^%W-k>^AFHd7i`>XSn}I49ca z=gHReK08-Pi5@6RFtZAuUM|6SAmr9D@_T~cKyi9ccIdqOV(_+7_q`0!Q~}bIJ)p&& zW{@X%7USX^sK)VIDH$%xZw&JAFK)XGZ*H5^hV7)=SIL`3%j>^td5j9#)xL!K>sfi& z?cYH2ZOjQlvHR&piRSs_6lh@}Fy1D3bWyLXRg>DSOkm@f2&XQ#-T~XVg*Xa+Hzzm> z(gA&X*`GJTi-N~5ukS-Mho#wx7!m1QlKQ3LjFDcuw^Q0VZ0*zsb4BrpU(-i{iRjxZ z4wO`zbg%Kr_q%?k8tX1bhjnJ%E;{f`!2~Od6BuwtlWYrt-E_9gK&;Y|FbP3`P{}?M z?*aFreO^3N5_5SLsoPEJFHiDa>%XbLV$8Z*TJ?HoymC7LVZcg7WTsE-x}QtvjkteE z)emmI$xS`a4?+LBe*!!~@gDlt&DDD1dMDe?TRB)09>_d7wn* z>B%%mKS|5ch9vpQtJwXuLJjOM2Z}vQpox06_V}qN{w1Hf;cu>$RMe=8G?PF*FVnZ< zlGv3(nC%)xH(B;wJMqlj{ebX1v|JYhFlX+7n zbOM7NWBYsG`uS@hqD#v^z^BId-Y#pPr(%W@#^g(|t?qMl-|B&F%?8!`c&j(aaz0d{ zGRmQ$2!<3KgmgVe;%z+tR>_L5{q2jsae_f=KcLhRe{PNxD2qyj1QLQAg#pu3`yOas zD@2DAgAQrzZLUC)(Avl_%KNLYno*aAk#w*|2=AMjyPsokxx--ms^V$9V1_pjI3=1Y z#8SZ|$E_JsT`3M5xPrvD%0an8oi56j=9s90h3n8&sNajoTxSRe2822S-r=;hF%2DM ze8e+Kre}(!T_RZ$(U4rL|I%ZzEV~EFNNeM@N8t6~7*%c>!R!d8lVXBl zVJWn=l4EWf;4AzSakR{LSO?S*SHc4=Xh6ACdK~c8lySDg_f`pkFa*>HU#k^?Mk*9{ za)hMXOej0CYjHfP@rr~g=bzpZWd>K)z(RWS24$;J{WoGXRRr;k!7#8hjdn`O-U8}5 zo6@7Qu$vlPAwxkd&&~X!a5-rWMK9dA?DB9=jmEx5D3{D5oiT{fXLI@`D=Ux#grhuG zD^+!nEA~NcC)v7i@}e#|#_(t9O%4YG-k=tCW>)%JiM~ScnO!i>TNad-?#I#}>v((J!f2=gHwtwVc_EHLQC){JFeq7&ps>W$Ag5{AA z5%-n%)m`Uk9s6B0JIB6kaJrH3z;!O?qLioid$n=1i4lrqDOhOBjy_{)&~}-)5yfq~ zDifYQW_zyMSN{T4L=Pc#ME$CI0va)*OlfjUkgHml<^y$ie%U+w2tv?6msX5G3P$2| z#}ZAU`GSWiS?V@OD{M@e!KF@7;%AG)l_V?oK94RRx+$P-W{4>of3`BKkt$%=Cw)rH zdIYbw;3}9c=gIK<(6$4kYGoOTejN0P^d6Erc!4g3XYGDqwO^ERSQsi+-!=}GN!)X>w*ji{P1H>wZ{UH6 zX{an&UKRFSLBQ>AVwy2F&Q`XK_T!efPgBi&dArxpzkCbg)}*sMQ3d!ynYcWix z_|npYGkjM4H_VCfl1lDfoX0C$VNvA=MKO()qiafz$U5Uzd^r!`sw6gjbZ`=$i^_!5*E*mpvGd zg5%DuZ3wIxm4a&5e0xsqmgD* zYGLt_w3+$h0%!yaVq;0um3t$XEA$yK5Pw|pv!C9zSh@wc?lNT5)5EG6KfIzyluy3k zUv3{ba}*4FG$(pmR^nCj0s#eCNQ4~D zqf!&>E;YJNTW#siz8Z?A8ZLGxgC714l~`@O#>4Wd5=#=oawdMM<77yT(2db7k@4Wp zE%_OM$dm`us47x}?QgqM7)?HZM=$E)8)}u-P|8J5me;Vs-QgJLa01hjt`-GZf4WXYs8)21~d#k7r)eGs%T zoTM@mjdY}?b}Wv#jHbE*Kz`zf{tRkAt>Qc*%XqotdNs+gjp4Eba2n*ly|eRwCt$ys zh~nX>+L&#zD&EyQzPT7a-T4FSO1;b<&IKtjfrbAlppEY|+K)W=f(08x4LSchxPcZ; z&=#FTV)*|ywEy4&Mhf@OGx`^f5+SBVpmLE zI=62U*W>|>NHHU*R5SE{tCw-<<`9FC;fkJ1!6_8;hau))x%lmF$sfp7&pD(kD96H)c$SxIVbZT_~A3 zq=}nfv}2Lwr=d1$v7i?b+##9FLkXQFg^h;+o~eoUixID_yyG_rQYZ@APz*{54#pA0 zKa>pR#RSC`{ME;>CYUt;d;KKSEM)0R4s_P8I^L$4pB(rX9NTKK(#8fN{R*CJBK6fj zg$x42U%7H@19J?CBoA$x)b)Wp621#55p_mM7E4!7(moooafA6ECF-Zt^1qol{;FtA zId&y37DAx8Lw|yrU@Kx3nm!Z4dtT`gHi}vb$}j&kSBP&eGZ2SUb=dNsnEsur&WEKT z)j_QnLZ)5KOXZBcM8xs9Gw{W^CwZ=9$>@IzmDQpcEd(2W&^0pw4EE)QCw7R^@bLL; z`;jKBD-xYQQ2yd6a!O3cQ1R6Y?8$v6opn%hlyAYLdyZByBqP$wt`$?@3G?GqjI-WI zFr(&N%W-LTiVx^1Ho9CEPW9Z5AOL?Gi|-iXg08;`9bHFOX<@)jh53F(ufGo7X8;-H z0l)YvMmC@|H(*Hq)5~Lc+wpVu7B-~+C=Jcxyn+Svys26)m~PyI-+W15v=_={`XO5l zHTRU5<6Q%(;GtU{_)M$_Z@txr^r;MoqLKj!*lxsJ-o*}P>e`FX{w*=TWA)e>mkquq zR>aObeoL>tvlW0b{B)@!*Q#MRNDVE1iwYTY0jEF7nOpwz-CzpVB)}t%DHnxnklM&j z{5nE-m_I0{MuyF@X{w^ZXId;$ZzxX3PofMm&=br2L2ZV2EG&HUL-^jmzMYczD$O`Z z?tN3awcrjqUCwXxK5<+SI?>|?PR!D$t||ghxxLKVr-Z6Dw@24}CgX^Pq}kM_7!5qg z%Z*9SS}A#;Gxrf6Yzc??{fJaAfRlxa)hoqd(HC= z7O1`LmWceuZ0Io0(jzpSr>;rS>W?x`vcp>fVVJl1r4thU;2&FV>(dCwX&XK8S-%w< z9R&H4wYnRLSj%_btvh@R$#$Oo0`rfNf}|CtyFYe$!fDRQ{TCn#B2oP}ys`rt2n8pY zPr*hy=n`c2!FY)-Q6avwsaI|ld#8}B@=2^@?xy>AgA!eO(n7ietiyp6B?7 zzEjdImQZsbH{m6+$_l~!C_p?uVA-?$aetr2!i(>2oJ8*9svS$rL?LjaYe}8@!`*TQ zq#ig1wLj@;6j;-piPNt2DLzE!!*!-C3&;{_h7O&)YC#HO4{G<&N_9zob7B%}yt1NC zn%`Mm`%Yl-g?yhDxiV;rXh^>0f5my?!*A)t)TMO`3`(N+D9}1!YxNnLK)>@{8hpI5 zD`Qq^)g>Q(N6@}yx=%cj9sNvX@vp)=nn6ncK;7JEiZgd^P2j%)6VR%zgBZHuTvAw6 z>wG|E*}P>alWtK8B}_gAdu^xWy(?U(@8_IgZ{Dg_YfH_i| zcEU*ZONGosHYDv&Sy(wA_rub(!|ZW;oHgD9RV~OgubHzEy>?~?K2bePVezxt2%>;P z-?ra7<4n?x&FYaE?cEGI)-)$tD$5+muBu}U?sPHFKe+hV5?aCTUXV`J=9AHC=o-*Q zXUuT@-0>M!)m+!o+T(oHaeB!5lJUF^EcXIqSUNsvI7$4;|X#{w!e5pUJ_ zak1J+C*mxrK*L>l)}}XDmB5!T;U_ev;jCB9B2`6t)Wa`7=7pam>YPepUHy>E1}-i| zx=cTq2|P}#Ey5pcy4D8*2oic4dykynV%zxoUkQ#ZS%}$Wd?mL`_nI;G*TmEF^KJp z_vh{DE5H7`9RZOzAku0+?DJ`Ocwh zS7jB5f%YHF1(sTSKSuTtezZh?ey859@nDV}*wx8We3^(^>c;D^k{15Qf0gLJdBw#% zK4AOfnWngIHTLC=dT)#w{3rZBSpE+*HU0+;Htp>`-fzW8*#W`aU5e&a;9&m+kS-Mo literal 0 HcmV?d00001 diff --git a/argilla-sdk/docs/stylesheets/old.css b/argilla-sdk/docs/stylesheets/old.css new file mode 100644 index 0000000000..70e96723a5 --- /dev/null +++ b/argilla-sdk/docs/stylesheets/old.css @@ -0,0 +1,1013 @@ + +/** css/custom.css **/ +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); + +:root { + --sidebarWidth: 280px; + --primaryColor: #3E5CC9; + --link: #3E5CC9; + --linkActive: #4C4EA3; + --linxkHover: var(--primaryColor); + --sidebarBackground: #FFFFFF; + --sidebarBackgroundDark: #fcfcfc; + --sidebarBackgroundDarker: #F2F3F7; + --sidebarColor: #484848; + --sidebarTitleColor: #404040; + --noteHeader: #4C4EA3; + --hintHeader: #67c795; + --hintBackground: #67c7951C; + --warningHeader: #ffba28; + --warningBackground: #ffba281C; + --white: #ffffff; + --line: #e9eaed; + --icon-close: url('data:image/svg+xml;charset=utf-8,'); + --icon-slack: url('data:image/svg+xml;charset=utf-8,'); + --icon-external: url('data:image/svg+xml;charset=utf-8,'); + --sd-color-tabs-underline-active: var(--color-literal); /* New color value */ + --sd-color-tabs-label-active: var(--color-literal); /* New color value */ + --sd-color-tabs-label-hover: var(--color-literal); + --sd-color-tabs-label-inactive: var(--color-foreground-muted); + --sd-color-tabs-underline-hover: var(--color-foreground-border); + --sd-color-tabs-underline-inactive: var(--color-background-border); + --sd-color-tabs-overline: var(--color-background-border); + --sd-color-tabs-underline: var(--color-background-border); +} + + +body { + font-family: "Inter", "Helvetica Neue", "Arial", "sans-serif"; + color: #484848; + background: var(--color-background-primary); +} + +html { + font-size: 16px; +} + +h1 { + font-size: 36px; +} + +h2 { + font-size: 28px; +} + +.article { + color: #484848; +} + +.content { + width: 50em; + margin-top: 1.5em; + flex-shrink: 0; +} + +.content--no-toc { + width: calc(50em + 15em); + flex-shrink: 0; +} + +.content .section h1 { + margin-top: 2em; +} + +.content .section h1 span { + display: none; +} + +.content .section h2 { + margin-top: 1.5em; +} + +.content .section h3 { + margin-top: 2em; +} + +p { + font-size: 16px; + line-height: 1.8em; +} + +.content strong { + font-weight: 600; +} + +.content a strong { + font-weight: 500; +} + +p.admonition-title { + font-weight: 700; + font-size: 16px; +} + +p.admonition-title img { + background: none; +} + +.admonition { + border-left: none; + border-radius: 6px; +} + +.content .toctree-wrapper>p.caption, +h2, +h3, +h4, +h5, +h6, +legend { + font-weight: 600; +} + +h1, +h2 { + font-weight: 700; +} + +.button--primary { + position: relative; + border: 0; + text-decoration: none !important; + color: white !important; + border-radius: 5px; + padding: 0.3em; + font-size: 14px; + font-weight: 500; + transition: all 0.3s ease-in-out; + background: linear-gradient(-45deg, #e73a3a, #fa655f); + display: inline-flex; + align-items: center; + line-height: 20px; +} + +.button--primary span { + position: relative; + height: 14px; + width: 60px; + margin-left: 8px; +} + +.button--primary:hover { + color: white !important; + transition: all 0.3s ease-in-out; + background: linear-gradient(-45deg, #c13030, #e25a55); +} + +.floating-button { + position: fixed; + bottom: 20px; + right: 20px; + color: white !important; + border: none; + padding: 10px 20px; + cursor: pointer; + border-radius: 5px; + z-index: 100; /* Make sure it's above your content */ + background: linear-gradient(-45deg, #e73a3a, #fa655f); + text-align: center; +} +.floating-button:hover { + color: white !important; + transition: all 0.3s ease-in-out; + background: linear-gradient(-45deg, #c13030, #e25a55); +} + + + +.content .note .wy-alert-title, +.content .seealso .wy-alert-title, +.content .wy-alert-info.attention .wy-alert-title, +.content .wy-alert-info.caution .wy-alert-title, +.content .wy-alert-info.danger .wy-alert-title, +.content .wy-alert-info.error .wy-alert-title, +.content .wy-alert-info.hint .wy-alert-title, +.content .wy-alert-info.important .wy-alert-title, +.content .wy-alert-info.tip .wy-alert-title, +.content .wy-alert-info.warning .wy-alert-title, +.wy-alert.wy-alert-info .wy-alert-title { + background: var(--noteHeader); +} + +.content .hint, +.content .seealso, +.content .wy-alert-info.attention, +.content .wy-alert-info.caution, +.content .wy-alert-info.danger, +.content .wy-alert-info.error, +.content .wy-alert-info.hint, +.content .wy-alert-info.important, +.content .wy-alert-info.tip, +.content .wy-alert-info.warning, +.wy-alert.wy-alert-info { + background: var(--hintBackground); +} + +.content .hint .wy-alert-title, +.content .seealso .wy-alert-title, +.content .wy-alert-info.attention .wy-alert-title, +.content .wy-alert-info.caution .wy-alert-title, +.content .wy-alert-info.danger .wy-alert-title, +.content .wy-alert-info.error .wy-alert-title, +.content .wy-alert-info.hint .wy-alert-title, +.content .wy-alert-info.important .wy-alert-title, +.content .wy-alert-info.tip .wy-alert-title, +.content .wy-alert-info.warning .wy-alert-title, +.wy-alert.wy-alert-info .wy-alert-title { + background: var(--hintHeader); +} + +.content .warning, +.content .seealso, +.content .wy-alert-info.attention, +.content .wy-alert-info.caution, +.content .wy-alert-info.danger, +.content .wy-alert-info.error, +.content .wy-alert-info.hint, +.content .wy-alert-info.important, +.content .wy-alert-info.tip, +.content .wy-alert-info.warning, +.wy-alert.wy-alert-info { + background: var(--warningBackground); +} + +.content .warning .wy-alert-title, +.content .seealso .wy-alert-title, +.content .wy-alert-info.attention .wy-alert-title, +.content .wy-alert-info.caution .wy-alert-title, +.content .wy-alert-info.danger .wy-alert-title, +.content .wy-alert-info.error .wy-alert-title, +.content .wy-alert-info.hint .wy-alert-title, +.content .wy-alert-info.important .wy-alert-title, +.content .wy-alert-info.tip .wy-alert-title, +.content .wy-alert-info.warning .wy-alert-title, +.wy-alert.wy-alert-info .wy-alert-title { + background: var(--warningHeader); +} + +.content code.literal, +.content tt.literal { + color: var(--color-literal); +} + +.content div[class^=highlight], +.content pre.literal-block { + border: none; + border-radius: 5px; +} + +:target>h1:first-of-type, +:target>h2:first-of-type, +:target>h3:first-of-type, +:target>h4:first-of-type, +:target>h5:first-of-type, +:target>h6:first-of-type, +span:target~h1:first-of-type, +span:target~h2:first-of-type, +span:target~h3:first-of-type, +span:target~h4:first-of-type, +span:target~h5:first-of-type, +span:target~h6:first-of-type { + background: none; +} + +.highlight pre { + padding: 2em !important; +} + +.highlight button.copybtn { + color: #ccc; +} + +.highlight button.copybtn:hover { + color: #ffffff; +} + +div.nbinput.container, +div.nboutput.container { + margin: 2em 0 !important; +} + +.article-container img { + margin: 2em 0; + display: flex; + background: var(--color-img-background); +} + +:target>h1:first-of-type, +:target>h2:first-of-type, +:target>h3:first-of-type, +:target>h4:first-of-type, +:target>h5:first-of-type, +:target>h6:first-of-type, +span:target~h1:first-of-type, +span:target~h2:first-of-type, +span:target~h3:first-of-type, +span:target~h4:first-of-type, +span:target~h5:first-of-type, +span:target~h6:first-of-type { + background: var(--color-sidebar-item-background--current); +} + +/* mobile header */ +.mobile-header .icon, +.mobile-header svg { + height: 1.5rem; + width: 1.5rem; +} + +.mobile-header .theme-toggle-header { + padding: 0.75rem 0.5rem; +} + +.header-logo { + max-width: 120px; +} + +.header__search { + position: absolute; + top: 1em; + left: 1em; + right: 1em; + top: -5em; + z-index: 30; + transition: top 0.1s ease-in-out; +} + +.mobile-header .header-right { + align-items: center; +} + +.header__search__container { + align-items: center; + display: flex; + position: relative; + background: var(--color-sidebar-background-border); + border-radius: 5px; + padding: 0.75em; +} + +.header__search__container:before { + background-color: var(--color-sidebar-search-text); + content: ""; + height: var(--sidebar-search-icon-size); + left: 2em; + -webkit-mask-image: var(--icon-search); + mask-image: var(--icon-search); + position: absolute; + width: var(--sidebar-search-icon-size); +} + +.header__search__input { + box-sizing: border-box; + border: none; + padding-left: 3em; + border-radius: 5px; + min-height: 50px; + width: 100%; + outline: none; + background: var(--color-sidebar-search-background); + color: var(--color-sidebar-search-text); +} + +.search-icon { + position: relative; + height: 20px !important; + width: 20px !important; + cursor: pointer; +} + +.search-icon:before { + background-color: var(--color-search-icon); + content: ""; + -webkit-mask-image: var(--icon-search); + mask-image: var(--icon-search); + height: 100%; + width: 100%; + position: absolute; +} + +.nav-overlay-icon .icon { + color: var(--color-search-icon) !important; +} + +.close-icon { + position: absolute; + cursor: pointer; + width: 16px; + height: 16px; + right: 2em; +} + +.close-icon:before { + background-color: var(--color-sidebar-search-text); + content: ""; + -webkit-mask-image: var(--icon-close); + mask-image: var(--icon-close); + height: 100%; + width: 100%; + position: absolute; +} + +.slack-icon:before { + position: absolute; + left: 0; + background-color: white; + content: ""; + -webkit-mask-image: var(--icon-slack); + mask-image: var(--icon-slack); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + height: 100%; + width: 100%; +} + +#__search:checked~.page .header__search { + top: 1em; + transition: top 0.3s ease-in-out; +} + +#__search:checked~.search-overlay { + height: 100%; + opacity: 1; + width: 100%; +} + +#searchbox .highlight-link { + display: none; +} + +.search-overlay { + z-index: 20; +} + +/* table */ +.jp-RenderedHTMLCommon table, +div.rendered_html table { + margin-top: 1em; + background: var(--color-table-bg) !important; + color: var(--color-foreground-primary) !important; + border-radius: 3px; +} + +div.rendered_html table th, +div.rendered_html table td { + text-align: left !important; + padding: 1em; +} + +.jp-RenderedHTMLCommon tbody tr:hover, +div.rendered_html tbody tr:hover { + background: initial !important; +} + +.jp-RenderedHTMLCommon tbody tr:nth-child(odd), +div.rendered_html tbody tr:nth-child(odd) { + background: var(--color-table-row) !important; +} + +.jp-RenderedHTMLCommon tbody tr:hover, +div.rendered_html tbody { + border-radius: 3px; +} + +tbody tr:last-child td:first-child, +tbody tr:last-child th { + border-bottom-left-radius: 3px; +} + +tbody tr:last-child td:last-child { + border-bottom-right-radius: 3px; +} + +thead tr:last-child th:first-child { + border-top-left-radius: 3px; +} + +thead tr:last-child th:last-child { + border-top-right-radius: 3px; +} + +.jp-RenderedHTMLCommon thead, +div.rendered_html thead { + border-bottom: 0 !important; + background: var(--color-table-header) !important; + border-radius: 3px; +} + +/* back-to-top */ +a.back-to-top.muted-link { + color: var(--color-foreground-primary); + text-decoration: none !important; +} + +/* sidebar */ +.sidebar-container { + width: 19em; +} + +.sidebar-tree li>ul { + margin-left: 0; +} + +.sidebar-tree li>ul a { + padding-left: 1em; +} + +.sidebar-tree .caption, +.sidebar-tree :not(.caption)>.caption-text { + font-size: 22px; + font-weight: normal; + text-transform: none; +} + +.sidebar-tree .reference { + line-height: 1.8em; + padding-left: 2em; +} + +.sidebar-tree .reference:hover { + font-weight: 600; +} + +.sidebar-tree .current-page>.reference { + font-weight: 600; + color: var(--color-sidebar-current-text); +} + +.sidebar-tree .toctree-l2 a { + padding-left: 4em; +} + +.sidebar-logo { + max-width: 160px; + margin-top: 2em; +} + +.sidebar-brand { + margin: 0; +} + +.sidebar-search-container { + margin: 0 16px; + padding-bottom: 16px; +} + +.sidebar-tree .reference.external:after { + color: var(--color-sidebar-link-text--top-level); +} + +.sidebar-search { + border: 1px solid var(--color-sidebar-search-border); + padding-left: 2.5em; + border-radius: 3px; + min-height: 40px; +} + +.sidebar-search:focus { + border: 1px solid var(--color-sidebar-search-border-focus); +} + +.sidebar-search::placeholder { + color: var(--color-search-placeholder); + font-weight: 600; +} + +.sidebar-scroll, +.toc-scroll { + -ms-overflow-style: none; + /* IE and Edge */ + scrollbar-width: none; + /* Firefox */ +} + +.sidebar-scroll::-webkit-scrollbar, +.toc-scroll::-webkit-scrollbar { + display: none; + /* Chrome, Safari and Opera */ +} + +.sidebar-search-container:before { + z-index: 12; + background: var(--color-search-icon) +} + +.sidebar__theme-toggle { + display: none; +} + +.sidebar-tree ul { + margin-bottom: 1rem; +} + +@media (max-width: 67em) { + .sidebar__theme-toggle { + display: block; + position: absolute; + z-index: 1; + right: 1em; + top: 0.4em; + } + + .social { + justify-content: center !important; + margin: auto; + } + + .social--sidebar { + display: none !important; + } + + .sidebar-search-container { + display: none; + } + + .open-in-colab__wrapper { + display: none; + } +} + +@media (min-width: 67em) { + .social--main { + display: none !important; + } + + .social--sidebar { + margin-bottom: 1em; + text-align: center; + align-items: center; + display: block !important; + } + + .social--sidebar>* { + margin: 3px 4px; + vertical-align: middle; + } + + .open-in-colab__wrapper { + display: inline-flex; + width: calc(100% - 40px); + gap: 2px; + justify-content: right; + margin-top: 1.4em; + } +} + +@media (max-width: 82em) { + .open-in-colab__wrapper { + width: calc(100% - 70px); + } +} + + +/* toc */ +.toc-title { + color: var(--color-toc-title); + text-transform: none; + font-size: 16px; + font-weight: 600; +} + +.toc-tree .reference { + display: inline-block; + font-size: 14px; + max-width: 15em; +} + +.toc-tree .reference:hover { + font-weight: 600; + color: var(--color-toc-item-text--active); +} + +@media (min-width: 82em) { +.toc-drawer { + width: 100%; + } +} + +/* typography */ +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} + +h1 { + margin-top: 2rem +} + +h2 { + margin-top: 2rem +} + +p { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} + +/* anchors */ +.headerlink { + height: 1px; + overflow: hidden; + white-space: nowrap; + width: 1px; + visibility: hidden !important; +} + +.code-block-caption:hover>.headerlink:before, +dl dt:hover>.headerlink:before, +figcaption p:hover>.headerlink:before, +h1:hover>.headerlink:before, +h2:hover>.headerlink:before, +h3:hover>.headerlink:before, +h4:hover>.headerlink:before, +h5:hover>.headerlink:before, +h6:hover>.headerlink:before, +p.caption:hover>.headerlink:before, +table>caption:hover>.headerlink:before { + content: "\f0c1"; + font-family: FontAwesome; + visibility: visible; + font-size: 16px; +} + +/* links and buttons */ +.article-container a:not(.headerlink):not(.github-stars a):not(:hover) { + color: var(--color-content-foreground); +} + +.article-container a:not(.headerlink) { + text-decoration: underline; +} + +a { + text-decoration: none; +} + +/* add border-radius */ +.content img { + border-radius: 5px; +} + +.content video { + border-radius: 5px; +} + + +@font-face { + font-family: 'FontAwesome'; + src: url('fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* Change the white to any color */ +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +textarea:-webkit-autofill, +textarea:-webkit-autofill:hover, +textarea:-webkit-autofill:focus, +select:-webkit-autofill, +select:-webkit-autofill:hover, +select:-webkit-autofill:focus { + border: none; + -webkit-text-fill-color: var(--color-sidebar-search-text); + -webkit-box-shadow: 0 0 0px 1000px var(--color-sidebar-search-background) inset; + transition: background-color 5000s ease-in-out 0s; +} + +/* code */ +div.nbinput.container div.input_area { + border: none !important; +} + +div.nboutput.container div.output_area.stderr { + background: #fdd; + color: #484848 +} + +/* Tutorials sections */ +a [class^="tuto-section-"] { + height: 14px; + width: 14px; + display: inline-block; + margin-right: 1em; + border-radius: 50%; +} + +div[class*="tuto-section-"] { + padding: 0; +} + +/* Copyright */ + +.left-details { + visibility: hidden; +} + +.left-details .copyright { + visibility: visible; +} + +/* Cards */ +.sd-card { + border-radius: 5px; + margin-bottom: 1.5em; + transition: box-shadow 0.2s ease-in; + box-shadow: 0 var(--sd-color-shadow), + 1px 1px 6px rgba(0, 0, 0, 0.1) !important; +} + +.sd-card:hover { + transform: none; + border-color: var(--sd-color-card-border); + transition: box-shadow 0.2s ease-in; + box-shadow: 1px 1px 10px var(--sd-color-shadow), + 1px 1px 10px rgba(0, 0, 0, 0.1) !important; +} + +.sd-card:hover .sd-card-title { + transition: color 0.2s ease-in-out; +} + +.sd-card:hover .sd-card-body { + transition: background 0.2s ease-in; + background: var(--color-card-bg-hover); +} + +.tuto-list .sd-card:hover .sd-card-body, .tuto-section-2 .sd-card:hover .sd-card-body { + background: var(--color-tuto-card-bg-hover); +} + +.sd-card img { + width: auto; + margin: 2rem auto -1rem auto; + border-radius: 5px; + object-fit: cover; + object-position: 100% 0; + height: 100px; +} + +@supports (object-fit: cover) { + .sd-card img { + width: 80%; + } +} + +@media (min-width: 576px) { + .sd-card img { + height: 12vw; + } +} + +@media (min-width: 1440px) { + .sd-card img { + height: 190px; + } +} + +@media (max-width: 576px) { + .sd-card img { + height: 30vw; + } +} + +/* #libraries .sd-card-body { + min-height: 150px; +} */ +.sd-card-body { + background: var(--color-card-bg); + color: var(--color-card-text); + border-radius: 5px; + padding-top: 2em; + padding-bottom: 2em; +} + +.tuto-list .sd-card, .tuto-section-2 .sd-card { + background: var(--color-tuto-card-bg); +} +.tuto-list .sd-card-body, .tuto-section-2 .sd-card-body { + background: var(--color-tuto-card-bg); + color: var(--color-tuto-card-text); + padding-top: 1rem; + padding-bottom: 1rem; +} + +.tuto-list .sd-card-img-top, .tuto-section-2 .sd-card-img-top { + box-shadow: 0 3px 8px rgb(0 0 0 / 50%); +} + +.tuto-list .sd-card-body .sd-card-title, .tuto-section-2s .sd-card-body .sd-card-title { + text-align: left; +} + +.sd-card-body .sd-card-title { + font-weight: 600 !important; + color: var(--color-link); + margin-bottom: 0; +} + +.sd-card-body .sd-card-text { + font-size: 14px; + line-height: 1.5em; + margin-top: 0.6em; +} + +/* Tabs */ +.sd-tab-set>label { + font-weight: 600; + padding: 1em 0.9em 0.5em; +} + +/* pager */ +.related-pages .title [class*="tuto-section-"] { + display: none; +} + +.page-info { + color: var(--color-page-info); +} + +.related-pages a:hover .page-info .title { + text-decoration: none; +} + +/* selection */ +::-moz-selection { + /* Code for Firefox */ + color: white; + background: #0508D9; +} + +::selection { + color: white; + background: #0508D9; +} + +/* github star counter */ + +.github-stars { + display: inline-flex; + align-items: center; + +} + +.github-stars>a { + padding: 3px 6px; + text-decoration: none !important; + min-height: 21px; + font-size: 0.9rem; +} + +.github-stars .--left { + background: #e84242; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + color: #ffffff; + display: flex; + align-items: center; + gap: 6px; + border: 1px solid #e84242; +} + +.github-stars .--left:hover { + background: linear-gradient(-45deg, #c13030, #e25a55); + border-color: #c13030; +} + +.github-stars .--right:hover { + color: #c13030; + border-color: #c13030; +} + +.github-stars .--right { + background: white; + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; + color: #e84242; + border: 1px solid #e84242; + display: flex; + align-items: center; +} + +/* video */ +.video-container { + position: relative; + height: 0; + width: 100%; + padding-bottom: 56.25%; +} +.video { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; +} + diff --git a/argilla-sdk/docs/tutorials/index.md b/argilla-sdk/docs/tutorials/index.md new file mode 100644 index 0000000000..144ae84363 --- /dev/null +++ b/argilla-sdk/docs/tutorials/index.md @@ -0,0 +1,90 @@ +--- +description: Argilla-python is the reference argilla python server SDK. +--- + +# Tutorials + +These are the tutorials for the Argilla-python SDK. They provide step-by-step instructions for common scenarios, including detailed explanations and code samples. + +