├── .aws ├── .eslintrc.js ├── .gitignore ├── .nvmrc ├── .terraform-version ├── cdktf.json ├── package-lock.json ├── package.json ├── src │ ├── config │ │ └── index.ts │ ├── dynamodb.ts │ ├── elasticache.ts │ ├── files │ │ └── python │ │ │ └── new_tab_synthetic.py │ ├── main.ts │ ├── monitoring.ts │ └── sqsLambda.ts └── tsconfig.json ├── .circleci ├── config.yml └── scripts │ ├── setup.sh │ ├── setup_aws.sh │ └── setup_hosts.sh ├── .docker ├── images │ └── app │ │ ├── Dockerfile │ │ ├── gunicorn_conf.py │ │ ├── start-reload.sh │ │ └── start.sh ├── local-dev.env ├── local.env └── localstack │ ├── dynamodb.sh │ └── dynamodb │ ├── MODELD-Local-RecMetrics.json │ ├── MODELD-Local-RecMetrics_data.json │ ├── MODELD-Local-SlateMetrics.json │ ├── MODELD-Local-SlateMetrics_data.json │ ├── recommendation_api_candidate_sets.json │ ├── recommendation_api_candidate_sets_data.json │ ├── recommendation_api_candidates.json │ ├── recommendation_api_candidates_data.json │ ├── recommendation_api_metadata.json │ └── recommendation_api_metadata_data.json ├── .github ├── CODEOWNERS ├── PULL_REQUEST_TEMPLATE.md └── auto-merge.yml ├── .gitignore ├── .run ├── Template Python tests.run.xml ├── main Pocket-Dev.run.xml ├── main.run.xml └── tests.run.xml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── Pipfile ├── Pipfile.lock ├── README.md ├── app ├── __init__.py ├── cache.py ├── config.py ├── data_providers │ ├── PocketGraphClientSession.py │ ├── __init__.py │ ├── corpus │ │ ├── __init__.py │ │ ├── corpus_api_client.py │ │ ├── corpus_feature_group_client.py │ │ └── corpus_fetchable.py │ ├── dispatch.py │ ├── feature_group │ │ ├── corpus_engagement_provider.py │ │ └── feature_group_client.py │ ├── slate_providers │ │ ├── __init__.py │ │ ├── candidate_sets.py │ │ ├── collection_slate_provider.py │ │ ├── for_you_slate_provider.py │ │ ├── life_hacks_slate_provider.py │ │ ├── new_tab_slate_provider.py │ │ ├── pocket_hits_slate_provider.py │ │ ├── pockety_worthy_provider.py │ │ ├── pride_slate_provider.py │ │ ├── recommended_reads_slate_provider.py │ │ ├── slate_provider.py │ │ ├── topic_slate_provider.py │ │ └── topic_slate_provider_factory.py │ ├── snowplow │ │ ├── __init__.py │ │ ├── config.py │ │ ├── entities.py │ │ ├── snowplow_corpus_recommendations_tracker.py │ │ └── subject.py │ ├── topic_provider.py │ ├── translation.py │ ├── unleash_provider.py │ ├── user_impression_cap_provider.py │ ├── user_recommendation_preferences_provider.py │ └── util.py ├── exceptions │ ├── __init__.py │ └── personalization_error.py ├── graphql │ ├── corpus_item.py │ ├── corpus_recommendation.py │ ├── corpus_slate.py │ ├── corpus_slate_lineup.py │ ├── directives.py │ ├── graphql_router.py │ ├── item.py │ ├── link.py │ ├── recommendation.py │ ├── recommendation_reason.py │ ├── recommendation_reason_type.py │ ├── resolvers │ │ ├── corpus_slate_lineup_resolvers.py │ │ ├── corpus_slate_lineup_slates_resolver.py │ │ ├── corpus_slate_recommendations_resolver.py │ │ ├── corpus_slate_resolvers.py │ │ ├── item2item_resolvers.py │ │ ├── legacy │ │ │ ├── slate_lineup_resolver.py │ │ │ └── slate_resolver.py │ │ ├── topic_resolvers.py │ │ └── user_recommendation_preferences_resolvers.py │ ├── slate.py │ ├── slate_lineup.py │ ├── syndicated_article.py │ ├── topic.py │ ├── topic_input.py │ ├── update_user_recommendation_preferences_input.py │ ├── user.py │ ├── user_recommendation_preferences.py │ └── util.py ├── instrumentation │ ├── aiobotocore │ │ ├── __init__.py │ │ ├── extensions │ │ │ ├── __init__.py │ │ │ ├── dynamodb.py │ │ │ ├── featurestore.py │ │ │ └── types.py │ │ ├── package.py │ │ └── version.py │ └── util.py ├── json │ ├── slate_config.schema.json │ ├── slate_configs.json │ ├── slate_lineup_config.schema.json │ ├── slate_lineup_configs.json │ └── utils.py ├── main.py ├── models │ ├── api_client.py │ ├── candidate.py │ ├── candidate_set.py │ ├── corpus_item_model.py │ ├── corpus_recommendation_model.py │ ├── corpus_recommendations_send_event.py │ ├── corpus_slate_lineup_model.py │ ├── corpus_slate_model.py │ ├── experiment.py │ ├── item.py │ ├── link.py │ ├── localemodel.py │ ├── metrics │ │ ├── __init__.py │ │ ├── abstract_metrics_factory.py │ │ ├── corpus_item_engagement_model.py │ │ ├── metrics_model.py │ │ ├── recommendation_metrics_factory.py │ │ └── slate_metrics_factory.py │ ├── recommendation.py │ ├── recommendation_reason_model.py │ ├── recommendation_reason_type.py │ ├── request_user.py │ ├── slate.py │ ├── slate_config.py │ ├── slate_experiment.py │ ├── slate_lineup.py │ ├── slate_lineup_config.py │ ├── slate_lineup_experiment.py │ ├── topic.py │ ├── unleash_assignment.py │ └── user_recommendation_preferences.py ├── rankers │ ├── __init__.py │ └── algorithms.py ├── recommenders │ └── item2item.py ├── resources │ └── blocklists.json ├── singletons.py └── translations │ ├── README.md │ ├── de-DE │ ├── home.json │ └── topics.json │ ├── en-GB │ ├── home.json │ └── topics.json │ ├── en-US │ ├── home.json │ └── topics.json │ ├── es-ES │ ├── home.json │ └── topics.json │ ├── fr-FR │ ├── home.json │ └── topics.json │ └── it-IT │ ├── home.json │ └── topics.json ├── aws_lambda ├── Pipfile ├── Pipfile.lock ├── __init__.py ├── config │ ├── __init__.py │ └── index.py ├── sqs_handler.py └── tests │ ├── __init__.py │ ├── fixtures │ ├── __init__.py │ ├── lambda_sqs_event.py │ └── lambda_sqs_event_without_id.py │ └── test_sqs_lambda.py ├── conftest.py ├── docker-compose-dev.yml ├── docker-compose-local.yml ├── docker-compose.yml ├── docs ├── development.md └── images │ ├── aws-lambda-pytest-configuration.png │ ├── graphql_playground.png │ ├── main-configuration.png │ └── pytest-configuration.png └── tests ├── __init__.py ├── assets ├── engagement_metrics.py ├── json │ ├── corpus_candidate_sets.json │ ├── corpus_engagement.json │ ├── empty_feature_group.json │ ├── invalid_slate_configs.json │ ├── invalid_slate_lineup_configs.json │ ├── qdrant_test_data.json │ ├── scheduled_surface.json │ ├── slate_configs.json │ ├── slate_lineup_configs.json │ ├── unleash_assignments.json │ ├── user_impressions_v2.json │ └── user_recommendation_preferences.json └── topics.py ├── functional ├── __init__.py ├── conftest.py ├── data_providers │ ├── __init__.py │ ├── test_corpus_api_client.py │ ├── test_snowplow_corpus_recommendations_tracker.py │ ├── test_topic_provider.py │ ├── test_translations.py │ └── test_unleash_provider.py ├── graphql │ ├── test_get_slate.py │ ├── test_get_slate_lineup.py │ ├── test_home_slate_lineup.py │ ├── test_new_tab_slate.py │ ├── test_recommendation_preference_topics.py │ ├── test_related.py │ ├── test_topic_metadata_graphql.py │ ├── test_update_user_recommendation_preferences.py │ └── test_user_reference_resolver.py ├── health │ └── test_health_check.py ├── json │ ├── __init__.py │ └── slate_lineup_config.py ├── models │ ├── __init__.py │ ├── test_candidate_set_model.py │ ├── test_clickdata_model.py │ ├── test_slate_config_model.py │ ├── test_slate_lineup_config_model.py │ ├── test_slate_lineup_model.py │ └── test_slate_model.py ├── test_dynamodb_base.py └── test_util │ ├── __init__.py │ ├── caching.py │ └── snowplow.py ├── load ├── homeSlateLineup │ ├── locust_file.py │ └── run.sh └── related │ ├── locust_file.py │ └── run.sh ├── mocks ├── api_client.py ├── caching.py ├── corpus_clients.py ├── corpus_engagement_provider.py ├── corpus_slate_lineup_model.py ├── corpus_slate_model.py ├── dynamodb.py ├── feature_store_mock.py ├── graphql.py ├── pocket_graph.py ├── snowplow.py ├── topic_provider.py ├── translation_provider.py └── user.py └── unit ├── __init__.py ├── cache └── test_json_serializer_with_none_token.py ├── data_providers ├── __init__.py ├── conftest.py ├── test_corpus_feature_group_client.py ├── test_for_you_slate_provider.py ├── test_home_dispatch.py ├── test_new_tab_dispatch.py ├── test_new_tab_slate_provider.py ├── test_pocket_hits_slate_provider.py ├── test_user_impression_cap_provider.py └── test_user_recommendation_preferences_provider_v2.py ├── graphql ├── test_get_field_argument.py ├── test_slate_lineup_resolver.py └── test_slate_resolver.py ├── json └── test_configs.py ├── models ├── __init__.py ├── metrics │ ├── __init__.py │ ├── test_recommendation_metrics_factory.py │ └── test_slate_metrics_factory.py ├── test_corpus_item_model.py ├── test_experiment_model.py ├── test_locale_model.py ├── test_slate_config_model.py ├── test_slate_experiment_model.py ├── test_slate_lineup_config_model.py ├── test_slate_lineup_experiment_model.py └── test_slate_model.py ├── rankers └── test_algorithms.py └── utils.py /.aws/.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/.eslintrc.js -------------------------------------------------------------------------------- /.aws/.gitignore: -------------------------------------------------------------------------------- 1 | .terraform/ 2 | node_modules/ 3 | cdktf.out/ 4 | .gen/ 5 | dist/ 6 | -------------------------------------------------------------------------------- /.aws/.nvmrc: -------------------------------------------------------------------------------- 1 | 16 2 | -------------------------------------------------------------------------------- /.aws/.terraform-version: -------------------------------------------------------------------------------- 1 | 1.6.6 2 | -------------------------------------------------------------------------------- /.aws/cdktf.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/cdktf.json -------------------------------------------------------------------------------- /.aws/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/package-lock.json -------------------------------------------------------------------------------- /.aws/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/package.json -------------------------------------------------------------------------------- /.aws/src/config/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/src/config/index.ts -------------------------------------------------------------------------------- /.aws/src/dynamodb.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/src/dynamodb.ts -------------------------------------------------------------------------------- /.aws/src/elasticache.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/src/elasticache.ts -------------------------------------------------------------------------------- /.aws/src/files/python/new_tab_synthetic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/src/files/python/new_tab_synthetic.py -------------------------------------------------------------------------------- /.aws/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/src/main.ts -------------------------------------------------------------------------------- /.aws/src/monitoring.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/src/monitoring.ts -------------------------------------------------------------------------------- /.aws/src/sqsLambda.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/src/sqsLambda.ts -------------------------------------------------------------------------------- /.aws/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.aws/tsconfig.json -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.circleci/scripts/setup.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.circleci/scripts/setup.sh -------------------------------------------------------------------------------- /.circleci/scripts/setup_aws.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.circleci/scripts/setup_aws.sh -------------------------------------------------------------------------------- /.circleci/scripts/setup_hosts.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.circleci/scripts/setup_hosts.sh -------------------------------------------------------------------------------- /.docker/images/app/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/images/app/Dockerfile -------------------------------------------------------------------------------- /.docker/images/app/gunicorn_conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/images/app/gunicorn_conf.py -------------------------------------------------------------------------------- /.docker/images/app/start-reload.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/images/app/start-reload.sh -------------------------------------------------------------------------------- /.docker/images/app/start.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/images/app/start.sh -------------------------------------------------------------------------------- /.docker/local-dev.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/local-dev.env -------------------------------------------------------------------------------- /.docker/local.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/local.env -------------------------------------------------------------------------------- /.docker/localstack/dynamodb.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb.sh -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/MODELD-Local-RecMetrics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/MODELD-Local-RecMetrics.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/MODELD-Local-RecMetrics_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/MODELD-Local-RecMetrics_data.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/MODELD-Local-SlateMetrics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/MODELD-Local-SlateMetrics.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/MODELD-Local-SlateMetrics_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/MODELD-Local-SlateMetrics_data.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/recommendation_api_candidate_sets.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/recommendation_api_candidate_sets.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/recommendation_api_candidate_sets_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/recommendation_api_candidate_sets_data.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/recommendation_api_candidates.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/recommendation_api_candidates.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/recommendation_api_candidates_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/recommendation_api_candidates_data.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/recommendation_api_metadata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/recommendation_api_metadata.json -------------------------------------------------------------------------------- /.docker/localstack/dynamodb/recommendation_api_metadata_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.docker/localstack/dynamodb/recommendation_api_metadata_data.json -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.github/CODEOWNERS -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/auto-merge.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.github/auto-merge.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.gitignore -------------------------------------------------------------------------------- /.run/Template Python tests.run.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.run/Template Python tests.run.xml -------------------------------------------------------------------------------- /.run/main Pocket-Dev.run.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.run/main Pocket-Dev.run.xml -------------------------------------------------------------------------------- /.run/main.run.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.run/main.run.xml -------------------------------------------------------------------------------- /.run/tests.run.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/.run/tests.run.xml -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/LICENSE -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/Pipfile -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/Pipfile.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/README.md -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/cache.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/cache.py -------------------------------------------------------------------------------- /app/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/config.py -------------------------------------------------------------------------------- /app/data_providers/PocketGraphClientSession.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/PocketGraphClientSession.py -------------------------------------------------------------------------------- /app/data_providers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/data_providers/corpus/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/data_providers/corpus/corpus_api_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/corpus/corpus_api_client.py -------------------------------------------------------------------------------- /app/data_providers/corpus/corpus_feature_group_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/corpus/corpus_feature_group_client.py -------------------------------------------------------------------------------- /app/data_providers/corpus/corpus_fetchable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/corpus/corpus_fetchable.py -------------------------------------------------------------------------------- /app/data_providers/dispatch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/dispatch.py -------------------------------------------------------------------------------- /app/data_providers/feature_group/corpus_engagement_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/feature_group/corpus_engagement_provider.py -------------------------------------------------------------------------------- /app/data_providers/feature_group/feature_group_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/feature_group/feature_group_client.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/data_providers/slate_providers/candidate_sets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/candidate_sets.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/collection_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/collection_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/for_you_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/for_you_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/life_hacks_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/life_hacks_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/new_tab_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/new_tab_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/pocket_hits_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/pocket_hits_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/pockety_worthy_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/pockety_worthy_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/pride_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/pride_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/recommended_reads_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/recommended_reads_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/topic_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/topic_slate_provider.py -------------------------------------------------------------------------------- /app/data_providers/slate_providers/topic_slate_provider_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/slate_providers/topic_slate_provider_factory.py -------------------------------------------------------------------------------- /app/data_providers/snowplow/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/data_providers/snowplow/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/snowplow/config.py -------------------------------------------------------------------------------- /app/data_providers/snowplow/entities.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/snowplow/entities.py -------------------------------------------------------------------------------- /app/data_providers/snowplow/snowplow_corpus_recommendations_tracker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/snowplow/snowplow_corpus_recommendations_tracker.py -------------------------------------------------------------------------------- /app/data_providers/snowplow/subject.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/snowplow/subject.py -------------------------------------------------------------------------------- /app/data_providers/topic_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/topic_provider.py -------------------------------------------------------------------------------- /app/data_providers/translation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/translation.py -------------------------------------------------------------------------------- /app/data_providers/unleash_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/unleash_provider.py -------------------------------------------------------------------------------- /app/data_providers/user_impression_cap_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/user_impression_cap_provider.py -------------------------------------------------------------------------------- /app/data_providers/user_recommendation_preferences_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/user_recommendation_preferences_provider.py -------------------------------------------------------------------------------- /app/data_providers/util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/data_providers/util.py -------------------------------------------------------------------------------- /app/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/exceptions/personalization_error.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/exceptions/personalization_error.py -------------------------------------------------------------------------------- /app/graphql/corpus_item.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/corpus_item.py -------------------------------------------------------------------------------- /app/graphql/corpus_recommendation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/corpus_recommendation.py -------------------------------------------------------------------------------- /app/graphql/corpus_slate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/corpus_slate.py -------------------------------------------------------------------------------- /app/graphql/corpus_slate_lineup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/corpus_slate_lineup.py -------------------------------------------------------------------------------- /app/graphql/directives.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/directives.py -------------------------------------------------------------------------------- /app/graphql/graphql_router.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/graphql_router.py -------------------------------------------------------------------------------- /app/graphql/item.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/item.py -------------------------------------------------------------------------------- /app/graphql/link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/link.py -------------------------------------------------------------------------------- /app/graphql/recommendation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/recommendation.py -------------------------------------------------------------------------------- /app/graphql/recommendation_reason.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/recommendation_reason.py -------------------------------------------------------------------------------- /app/graphql/recommendation_reason_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/recommendation_reason_type.py -------------------------------------------------------------------------------- /app/graphql/resolvers/corpus_slate_lineup_resolvers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/corpus_slate_lineup_resolvers.py -------------------------------------------------------------------------------- /app/graphql/resolvers/corpus_slate_lineup_slates_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/corpus_slate_lineup_slates_resolver.py -------------------------------------------------------------------------------- /app/graphql/resolvers/corpus_slate_recommendations_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/corpus_slate_recommendations_resolver.py -------------------------------------------------------------------------------- /app/graphql/resolvers/corpus_slate_resolvers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/corpus_slate_resolvers.py -------------------------------------------------------------------------------- /app/graphql/resolvers/item2item_resolvers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/item2item_resolvers.py -------------------------------------------------------------------------------- /app/graphql/resolvers/legacy/slate_lineup_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/legacy/slate_lineup_resolver.py -------------------------------------------------------------------------------- /app/graphql/resolvers/legacy/slate_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/legacy/slate_resolver.py -------------------------------------------------------------------------------- /app/graphql/resolvers/topic_resolvers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/topic_resolvers.py -------------------------------------------------------------------------------- /app/graphql/resolvers/user_recommendation_preferences_resolvers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/resolvers/user_recommendation_preferences_resolvers.py -------------------------------------------------------------------------------- /app/graphql/slate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/slate.py -------------------------------------------------------------------------------- /app/graphql/slate_lineup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/slate_lineup.py -------------------------------------------------------------------------------- /app/graphql/syndicated_article.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/syndicated_article.py -------------------------------------------------------------------------------- /app/graphql/topic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/topic.py -------------------------------------------------------------------------------- /app/graphql/topic_input.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/topic_input.py -------------------------------------------------------------------------------- /app/graphql/update_user_recommendation_preferences_input.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/update_user_recommendation_preferences_input.py -------------------------------------------------------------------------------- /app/graphql/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/user.py -------------------------------------------------------------------------------- /app/graphql/user_recommendation_preferences.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/user_recommendation_preferences.py -------------------------------------------------------------------------------- /app/graphql/util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/graphql/util.py -------------------------------------------------------------------------------- /app/instrumentation/aiobotocore/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/instrumentation/aiobotocore/__init__.py -------------------------------------------------------------------------------- /app/instrumentation/aiobotocore/extensions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/instrumentation/aiobotocore/extensions/__init__.py -------------------------------------------------------------------------------- /app/instrumentation/aiobotocore/extensions/dynamodb.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/instrumentation/aiobotocore/extensions/dynamodb.py -------------------------------------------------------------------------------- /app/instrumentation/aiobotocore/extensions/featurestore.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/instrumentation/aiobotocore/extensions/featurestore.py -------------------------------------------------------------------------------- /app/instrumentation/aiobotocore/extensions/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/instrumentation/aiobotocore/extensions/types.py -------------------------------------------------------------------------------- /app/instrumentation/aiobotocore/package.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/instrumentation/aiobotocore/package.py -------------------------------------------------------------------------------- /app/instrumentation/aiobotocore/version.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/instrumentation/aiobotocore/version.py -------------------------------------------------------------------------------- /app/instrumentation/util.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/json/slate_config.schema.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/json/slate_config.schema.json -------------------------------------------------------------------------------- /app/json/slate_configs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/json/slate_configs.json -------------------------------------------------------------------------------- /app/json/slate_lineup_config.schema.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/json/slate_lineup_config.schema.json -------------------------------------------------------------------------------- /app/json/slate_lineup_configs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/json/slate_lineup_configs.json -------------------------------------------------------------------------------- /app/json/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/json/utils.py -------------------------------------------------------------------------------- /app/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/main.py -------------------------------------------------------------------------------- /app/models/api_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/api_client.py -------------------------------------------------------------------------------- /app/models/candidate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/candidate.py -------------------------------------------------------------------------------- /app/models/candidate_set.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/candidate_set.py -------------------------------------------------------------------------------- /app/models/corpus_item_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/corpus_item_model.py -------------------------------------------------------------------------------- /app/models/corpus_recommendation_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/corpus_recommendation_model.py -------------------------------------------------------------------------------- /app/models/corpus_recommendations_send_event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/corpus_recommendations_send_event.py -------------------------------------------------------------------------------- /app/models/corpus_slate_lineup_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/corpus_slate_lineup_model.py -------------------------------------------------------------------------------- /app/models/corpus_slate_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/corpus_slate_model.py -------------------------------------------------------------------------------- /app/models/experiment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/experiment.py -------------------------------------------------------------------------------- /app/models/item.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/item.py -------------------------------------------------------------------------------- /app/models/link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/link.py -------------------------------------------------------------------------------- /app/models/localemodel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/localemodel.py -------------------------------------------------------------------------------- /app/models/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/models/metrics/abstract_metrics_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/metrics/abstract_metrics_factory.py -------------------------------------------------------------------------------- /app/models/metrics/corpus_item_engagement_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/metrics/corpus_item_engagement_model.py -------------------------------------------------------------------------------- /app/models/metrics/metrics_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/metrics/metrics_model.py -------------------------------------------------------------------------------- /app/models/metrics/recommendation_metrics_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/metrics/recommendation_metrics_factory.py -------------------------------------------------------------------------------- /app/models/metrics/slate_metrics_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/metrics/slate_metrics_factory.py -------------------------------------------------------------------------------- /app/models/recommendation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/recommendation.py -------------------------------------------------------------------------------- /app/models/recommendation_reason_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/recommendation_reason_model.py -------------------------------------------------------------------------------- /app/models/recommendation_reason_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/recommendation_reason_type.py -------------------------------------------------------------------------------- /app/models/request_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/request_user.py -------------------------------------------------------------------------------- /app/models/slate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/slate.py -------------------------------------------------------------------------------- /app/models/slate_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/slate_config.py -------------------------------------------------------------------------------- /app/models/slate_experiment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/slate_experiment.py -------------------------------------------------------------------------------- /app/models/slate_lineup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/slate_lineup.py -------------------------------------------------------------------------------- /app/models/slate_lineup_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/slate_lineup_config.py -------------------------------------------------------------------------------- /app/models/slate_lineup_experiment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/slate_lineup_experiment.py -------------------------------------------------------------------------------- /app/models/topic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/topic.py -------------------------------------------------------------------------------- /app/models/unleash_assignment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/unleash_assignment.py -------------------------------------------------------------------------------- /app/models/user_recommendation_preferences.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/models/user_recommendation_preferences.py -------------------------------------------------------------------------------- /app/rankers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/rankers/__init__.py -------------------------------------------------------------------------------- /app/rankers/algorithms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/rankers/algorithms.py -------------------------------------------------------------------------------- /app/recommenders/item2item.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/recommenders/item2item.py -------------------------------------------------------------------------------- /app/resources/blocklists.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/resources/blocklists.json -------------------------------------------------------------------------------- /app/singletons.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/singletons.py -------------------------------------------------------------------------------- /app/translations/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/README.md -------------------------------------------------------------------------------- /app/translations/de-DE/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/de-DE/home.json -------------------------------------------------------------------------------- /app/translations/de-DE/topics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/de-DE/topics.json -------------------------------------------------------------------------------- /app/translations/en-GB/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/en-GB/home.json -------------------------------------------------------------------------------- /app/translations/en-GB/topics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/en-GB/topics.json -------------------------------------------------------------------------------- /app/translations/en-US/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/en-US/home.json -------------------------------------------------------------------------------- /app/translations/en-US/topics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/en-US/topics.json -------------------------------------------------------------------------------- /app/translations/es-ES/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/es-ES/home.json -------------------------------------------------------------------------------- /app/translations/es-ES/topics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/es-ES/topics.json -------------------------------------------------------------------------------- /app/translations/fr-FR/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/fr-FR/home.json -------------------------------------------------------------------------------- /app/translations/fr-FR/topics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/fr-FR/topics.json -------------------------------------------------------------------------------- /app/translations/it-IT/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/it-IT/home.json -------------------------------------------------------------------------------- /app/translations/it-IT/topics.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/app/translations/it-IT/topics.json -------------------------------------------------------------------------------- /aws_lambda/Pipfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/aws_lambda/Pipfile -------------------------------------------------------------------------------- /aws_lambda/Pipfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/aws_lambda/Pipfile.lock -------------------------------------------------------------------------------- /aws_lambda/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /aws_lambda/config/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['index'] 2 | -------------------------------------------------------------------------------- /aws_lambda/config/index.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/aws_lambda/config/index.py -------------------------------------------------------------------------------- /aws_lambda/sqs_handler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/aws_lambda/sqs_handler.py -------------------------------------------------------------------------------- /aws_lambda/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /aws_lambda/tests/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /aws_lambda/tests/fixtures/lambda_sqs_event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/aws_lambda/tests/fixtures/lambda_sqs_event.py -------------------------------------------------------------------------------- /aws_lambda/tests/fixtures/lambda_sqs_event_without_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/aws_lambda/tests/fixtures/lambda_sqs_event_without_id.py -------------------------------------------------------------------------------- /aws_lambda/tests/test_sqs_lambda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/aws_lambda/tests/test_sqs_lambda.py -------------------------------------------------------------------------------- /conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/conftest.py -------------------------------------------------------------------------------- /docker-compose-dev.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docker-compose-dev.yml -------------------------------------------------------------------------------- /docker-compose-local.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docker-compose-local.yml -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docs/development.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docs/development.md -------------------------------------------------------------------------------- /docs/images/aws-lambda-pytest-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docs/images/aws-lambda-pytest-configuration.png -------------------------------------------------------------------------------- /docs/images/graphql_playground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docs/images/graphql_playground.png -------------------------------------------------------------------------------- /docs/images/main-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docs/images/main-configuration.png -------------------------------------------------------------------------------- /docs/images/pytest-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/docs/images/pytest-configuration.png -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/assets/engagement_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/engagement_metrics.py -------------------------------------------------------------------------------- /tests/assets/json/corpus_candidate_sets.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/corpus_candidate_sets.json -------------------------------------------------------------------------------- /tests/assets/json/corpus_engagement.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/corpus_engagement.json -------------------------------------------------------------------------------- /tests/assets/json/empty_feature_group.json: -------------------------------------------------------------------------------- 1 | [ 2 | ] 3 | -------------------------------------------------------------------------------- /tests/assets/json/invalid_slate_configs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/invalid_slate_configs.json -------------------------------------------------------------------------------- /tests/assets/json/invalid_slate_lineup_configs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/invalid_slate_lineup_configs.json -------------------------------------------------------------------------------- /tests/assets/json/qdrant_test_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/qdrant_test_data.json -------------------------------------------------------------------------------- /tests/assets/json/scheduled_surface.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/scheduled_surface.json -------------------------------------------------------------------------------- /tests/assets/json/slate_configs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/slate_configs.json -------------------------------------------------------------------------------- /tests/assets/json/slate_lineup_configs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/slate_lineup_configs.json -------------------------------------------------------------------------------- /tests/assets/json/unleash_assignments.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/unleash_assignments.json -------------------------------------------------------------------------------- /tests/assets/json/user_impressions_v2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/user_impressions_v2.json -------------------------------------------------------------------------------- /tests/assets/json/user_recommendation_preferences.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/json/user_recommendation_preferences.json -------------------------------------------------------------------------------- /tests/assets/topics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/assets/topics.py -------------------------------------------------------------------------------- /tests/functional/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/functional/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/conftest.py -------------------------------------------------------------------------------- /tests/functional/data_providers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/functional/data_providers/test_corpus_api_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/data_providers/test_corpus_api_client.py -------------------------------------------------------------------------------- /tests/functional/data_providers/test_snowplow_corpus_recommendations_tracker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/data_providers/test_snowplow_corpus_recommendations_tracker.py -------------------------------------------------------------------------------- /tests/functional/data_providers/test_topic_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/data_providers/test_topic_provider.py -------------------------------------------------------------------------------- /tests/functional/data_providers/test_translations.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/data_providers/test_translations.py -------------------------------------------------------------------------------- /tests/functional/data_providers/test_unleash_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/data_providers/test_unleash_provider.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_get_slate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_get_slate.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_get_slate_lineup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_get_slate_lineup.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_home_slate_lineup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_home_slate_lineup.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_new_tab_slate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_new_tab_slate.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_recommendation_preference_topics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_recommendation_preference_topics.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_related.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_related.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_topic_metadata_graphql.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_topic_metadata_graphql.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_update_user_recommendation_preferences.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_update_user_recommendation_preferences.py -------------------------------------------------------------------------------- /tests/functional/graphql/test_user_reference_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/graphql/test_user_reference_resolver.py -------------------------------------------------------------------------------- /tests/functional/health/test_health_check.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/health/test_health_check.py -------------------------------------------------------------------------------- /tests/functional/json/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/functional/json/slate_lineup_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/json/slate_lineup_config.py -------------------------------------------------------------------------------- /tests/functional/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/models/__init__.py -------------------------------------------------------------------------------- /tests/functional/models/test_candidate_set_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/models/test_candidate_set_model.py -------------------------------------------------------------------------------- /tests/functional/models/test_clickdata_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/models/test_clickdata_model.py -------------------------------------------------------------------------------- /tests/functional/models/test_slate_config_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/models/test_slate_config_model.py -------------------------------------------------------------------------------- /tests/functional/models/test_slate_lineup_config_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/models/test_slate_lineup_config_model.py -------------------------------------------------------------------------------- /tests/functional/models/test_slate_lineup_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/models/test_slate_lineup_model.py -------------------------------------------------------------------------------- /tests/functional/models/test_slate_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/models/test_slate_model.py -------------------------------------------------------------------------------- /tests/functional/test_dynamodb_base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/test_dynamodb_base.py -------------------------------------------------------------------------------- /tests/functional/test_util/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/functional/test_util/caching.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/test_util/caching.py -------------------------------------------------------------------------------- /tests/functional/test_util/snowplow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/functional/test_util/snowplow.py -------------------------------------------------------------------------------- /tests/load/homeSlateLineup/locust_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/load/homeSlateLineup/locust_file.py -------------------------------------------------------------------------------- /tests/load/homeSlateLineup/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/load/homeSlateLineup/run.sh -------------------------------------------------------------------------------- /tests/load/related/locust_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/load/related/locust_file.py -------------------------------------------------------------------------------- /tests/load/related/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/load/related/run.sh -------------------------------------------------------------------------------- /tests/mocks/api_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/api_client.py -------------------------------------------------------------------------------- /tests/mocks/caching.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/caching.py -------------------------------------------------------------------------------- /tests/mocks/corpus_clients.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/corpus_clients.py -------------------------------------------------------------------------------- /tests/mocks/corpus_engagement_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/corpus_engagement_provider.py -------------------------------------------------------------------------------- /tests/mocks/corpus_slate_lineup_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/corpus_slate_lineup_model.py -------------------------------------------------------------------------------- /tests/mocks/corpus_slate_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/corpus_slate_model.py -------------------------------------------------------------------------------- /tests/mocks/dynamodb.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/dynamodb.py -------------------------------------------------------------------------------- /tests/mocks/feature_store_mock.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/feature_store_mock.py -------------------------------------------------------------------------------- /tests/mocks/graphql.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/graphql.py -------------------------------------------------------------------------------- /tests/mocks/pocket_graph.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/pocket_graph.py -------------------------------------------------------------------------------- /tests/mocks/snowplow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/snowplow.py -------------------------------------------------------------------------------- /tests/mocks/topic_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/topic_provider.py -------------------------------------------------------------------------------- /tests/mocks/translation_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/translation_provider.py -------------------------------------------------------------------------------- /tests/mocks/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/mocks/user.py -------------------------------------------------------------------------------- /tests/unit/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/unit/cache/test_json_serializer_with_none_token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/cache/test_json_serializer_with_none_token.py -------------------------------------------------------------------------------- /tests/unit/data_providers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/unit/data_providers/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/conftest.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_corpus_feature_group_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_corpus_feature_group_client.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_for_you_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_for_you_slate_provider.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_home_dispatch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_home_dispatch.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_new_tab_dispatch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_new_tab_dispatch.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_new_tab_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_new_tab_slate_provider.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_pocket_hits_slate_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_pocket_hits_slate_provider.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_user_impression_cap_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_user_impression_cap_provider.py -------------------------------------------------------------------------------- /tests/unit/data_providers/test_user_recommendation_preferences_provider_v2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/data_providers/test_user_recommendation_preferences_provider_v2.py -------------------------------------------------------------------------------- /tests/unit/graphql/test_get_field_argument.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/graphql/test_get_field_argument.py -------------------------------------------------------------------------------- /tests/unit/graphql/test_slate_lineup_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/graphql/test_slate_lineup_resolver.py -------------------------------------------------------------------------------- /tests/unit/graphql/test_slate_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/graphql/test_slate_resolver.py -------------------------------------------------------------------------------- /tests/unit/json/test_configs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/json/test_configs.py -------------------------------------------------------------------------------- /tests/unit/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/__init__.py -------------------------------------------------------------------------------- /tests/unit/models/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/unit/models/metrics/test_recommendation_metrics_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/metrics/test_recommendation_metrics_factory.py -------------------------------------------------------------------------------- /tests/unit/models/metrics/test_slate_metrics_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/metrics/test_slate_metrics_factory.py -------------------------------------------------------------------------------- /tests/unit/models/test_corpus_item_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_corpus_item_model.py -------------------------------------------------------------------------------- /tests/unit/models/test_experiment_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_experiment_model.py -------------------------------------------------------------------------------- /tests/unit/models/test_locale_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_locale_model.py -------------------------------------------------------------------------------- /tests/unit/models/test_slate_config_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_slate_config_model.py -------------------------------------------------------------------------------- /tests/unit/models/test_slate_experiment_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_slate_experiment_model.py -------------------------------------------------------------------------------- /tests/unit/models/test_slate_lineup_config_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_slate_lineup_config_model.py -------------------------------------------------------------------------------- /tests/unit/models/test_slate_lineup_experiment_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_slate_lineup_experiment_model.py -------------------------------------------------------------------------------- /tests/unit/models/test_slate_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/models/test_slate_model.py -------------------------------------------------------------------------------- /tests/unit/rankers/test_algorithms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/rankers/test_algorithms.py -------------------------------------------------------------------------------- /tests/unit/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/recommendation-api/HEAD/tests/unit/utils.py --------------------------------------------------------------------------------