Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 15 additions & 14 deletions ENV.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,20 +72,21 @@ Note that some tasks/subtasks are themselves enabled by other tasks.
URL Task Flags are collectively controlled by the `RUN_URL_TASKS_TASK_FLAG` flag.


| Flag | Description |
|-------------------------------------|--------------------------------------------------------------------|
| `URL_HTML_TASK_FLAG` | URL HTML scraping task. |
| `URL_RECORD_TYPE_TASK_FLAG` | Automatically assigns Record Types to URLs. |
| `URL_AGENCY_IDENTIFICATION_TASK_FLAG` | Automatically assigns and suggests Agencies for URLs. |
| `URL_SUBMIT_APPROVED_TASK_FLAG` | Submits approved URLs to the Data Sources App. |
| `URL_MISC_METADATA_TASK_FLAG` | Adds misc metadata to URLs. |
| `URL_404_PROBE_TASK_FLAG` | Probes URLs for 404 errors. |
| `URL_AUTO_RELEVANCE_TASK_FLAG` | Automatically assigns Relevances to URLs. |
| `URL_PROBE_TASK_FLAG` | Probes URLs for web metadata. |
| `URL_ROOT_URL_TASK_FLAG` | Extracts and links Root URLs to URLs. |
| `URL_SCREENSHOT_TASK_FLAG` | Takes screenshots of URLs. |
| `URL_AUTO_VALIDATE_TASK_FLAG` | Automatically validates URLs. |
| `URL_AUTO_NAME_TASK_FLAG` | Automatically names URLs. |
| Flag | Description |
|-------------------------------------|-------------------------------------------------------|
| `URL_HTML_TASK_FLAG` | URL HTML scraping task. |
| `URL_RECORD_TYPE_TASK_FLAG` | Automatically assigns Record Types to URLs. |
| `URL_AGENCY_IDENTIFICATION_TASK_FLAG` | Automatically assigns and suggests Agencies for URLs. |
| `URL_SUBMIT_APPROVED_TASK_FLAG` | Submits approved URLs to the Data Sources App. |
| `URL_MISC_METADATA_TASK_FLAG` | Adds misc metadata to URLs. |
| `URL_404_PROBE_TASK_FLAG` | Probes URLs for 404 errors. |
| `URL_AUTO_RELEVANCE_TASK_FLAG` | Automatically assigns Relevances to URLs. |
| `URL_PROBE_TASK_FLAG` | Probes URLs for web metadata. |
| `URL_ROOT_URL_TASK_FLAG` | Extracts and links Root URLs to URLs. |
| `URL_SCREENSHOT_TASK_FLAG` | Takes screenshots of URLs. |
| `URL_AUTO_VALIDATE_TASK_FLAG` | Automatically validates URLs. |
| `URL_AUTO_NAME_TASK_FLAG` | Automatically names URLs. |
| `URL_SUSPEND_TASK_FLAG` | Suspends URLs meeting suspension criteria. |

### Agency ID Subtasks

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
"""Add Agency/Location Not Found Logic

Revision ID: 5be534715a01
Revises: 50a710e413f8
Create Date: 2025-09-29 12:46:27.140173

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa

from src.util.alembic_helpers import created_at_column, url_id_column, user_id_column

# revision identifiers, used by Alembic.
revision: str = '5be534715a01'
down_revision: Union[str, None] = '50a710e413f8'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None

def upgrade() -> None:

Check warning on line 21 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L21 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:21:1: D103 Missing docstring in public function
add_link_user_suggestion_agency_not_found_table()
add_link_user_suggestion_location_not_found_table()
add_flag_url_suspended_table()
add_url_suspend_task_type()
remove_link_url_new_agency_suggestion_table()
remove_new_agency_suggestions_table()

def add_url_suspend_task_type():

Check warning on line 29 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L29 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:29:1: D103 Missing docstring in public function
op.execute(
"""
ALTER TYPE task_type ADD VALUE 'Suspend URLs';
"""
)

def add_link_user_suggestion_agency_not_found_table():

Check warning on line 36 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L36 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:36:1: D103 Missing docstring in public function
op.create_table(
"link_user_suggestion_agency_not_found",
user_id_column(),
url_id_column(),
created_at_column(),
sa.PrimaryKeyConstraint("user_id", "url_id"),
)


def add_link_user_suggestion_location_not_found_table():

Check warning on line 46 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L46 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:46:1: D103 Missing docstring in public function
op.create_table(
"link_user_suggestion_location_not_found",
user_id_column(),
url_id_column(),
created_at_column(),
sa.PrimaryKeyConstraint("user_id", "url_id"),
)


def add_flag_url_suspended_table():

Check warning on line 56 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L56 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:56:1: D103 Missing docstring in public function
op.create_table(
"flag_url_suspended",
url_id_column(),
created_at_column(),
sa.PrimaryKeyConstraint("url_id"),
)


def remove_link_url_new_agency_suggestion_table():

Check warning on line 65 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L65 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:65:1: D103 Missing docstring in public function
op.drop_table("link_url_new_agency_suggestion")


def remove_new_agency_suggestions_table():

Check warning on line 69 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L69 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:69:1: D103 Missing docstring in public function
op.drop_table("new_agency_suggestions")


def downgrade() -> None:

Check warning on line 73 in alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py#L73 <103>

Missing docstring in public function
Raw output
./alembic/versions/2025_09_29_1246-5be534715a01_add_agency_location_not_found_logic.py:73:1: D103 Missing docstring in public function
pass

This file was deleted.

27 changes: 27 additions & 0 deletions src/api/endpoints/annotate/all/get/models/agency.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from pydantic import BaseModel, Field

Check warning on line 1 in src/api/endpoints/annotate/all/get/models/agency.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/models/agency.py#L1 <100>

Missing docstring in public module
Raw output
./src/api/endpoints/annotate/all/get/models/agency.py:1:1: D100 Missing docstring in public module


class AgencyAnnotationAutoSuggestion(BaseModel):

Check warning on line 4 in src/api/endpoints/annotate/all/get/models/agency.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/models/agency.py#L4 <101>

Missing docstring in public class
Raw output
./src/api/endpoints/annotate/all/get/models/agency.py:4:1: D101 Missing docstring in public class
agency_id: int
agency_name: str
confidence: int = Field(
title="The confidence of the location",
ge=0,
le=100,
)

class AgencyAnnotationUserSuggestion(BaseModel):

Check warning on line 13 in src/api/endpoints/annotate/all/get/models/agency.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/models/agency.py#L13 <101>

Missing docstring in public class
Raw output
./src/api/endpoints/annotate/all/get/models/agency.py:13:1: D101 Missing docstring in public class
agency_id: int
agency_name: str
user_count: int

class AgencyAnnotationUserSuggestionOuterInfo(BaseModel):

Check warning on line 18 in src/api/endpoints/annotate/all/get/models/agency.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/models/agency.py#L18 <101>

Missing docstring in public class
Raw output
./src/api/endpoints/annotate/all/get/models/agency.py:18:1: D101 Missing docstring in public class
suggestions: list[AgencyAnnotationUserSuggestion]
not_found_count: int = Field(
title="How many users listed the agency as not found.",
ge=0,
)

class AgencyAnnotationResponseOuterInfo(BaseModel):

Check warning on line 25 in src/api/endpoints/annotate/all/get/models/agency.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/models/agency.py#L25 <101>

Missing docstring in public class
Raw output
./src/api/endpoints/annotate/all/get/models/agency.py:25:1: D101 Missing docstring in public class
user: AgencyAnnotationUserSuggestionOuterInfo
auto: list[AgencyAnnotationAutoSuggestion]

Check warning on line 27 in src/api/endpoints/annotate/all/get/models/agency.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/models/agency.py#L27 <292>

no newline at end of file
Raw output
./src/api/endpoints/annotate/all/get/models/agency.py:27:47: W292 no newline at end of file
8 changes: 7 additions & 1 deletion src/api/endpoints/annotate/all/get/models/location.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,13 @@
ge=1,
)

class LocationAnnotationUserSuggestionOuterInfo(BaseModel):

Check warning on line 26 in src/api/endpoints/annotate/all/get/models/location.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/models/location.py#L26 <101>

Missing docstring in public class
Raw output
./src/api/endpoints/annotate/all/get/models/location.py:26:1: D101 Missing docstring in public class
suggestions: list[LocationAnnotationUserSuggestion]
not_found_count: int = Field(
title="How many users listed the location as not found.",
ge=0,
)

class LocationAnnotationResponseOuterInfo(BaseModel):
user: list[LocationAnnotationUserSuggestion]
user: LocationAnnotationUserSuggestionOuterInfo
auto: list[LocationAnnotationAutoSuggestion]
3 changes: 2 additions & 1 deletion src/api/endpoints/annotate/all/get/models/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from pydantic import Field, BaseModel

from src.api.endpoints.annotate.agency.get.dto import GetNextURLForAgencyAgencyInfo
from src.api.endpoints.annotate.all.get.models.agency import AgencyAnnotationResponseOuterInfo
from src.api.endpoints.annotate.all.get.models.location import LocationAnnotationResponseOuterInfo
from src.api.endpoints.annotate.all.get.models.name import NameAnnotationSuggestion
from src.api.endpoints.annotate.all.get.models.record_type import RecordTypeAnnotationSuggestion
Expand All @@ -13,7 +14,7 @@


class GetNextURLForAllAnnotationInnerResponse(AnnotationInnerResponseInfoBase):
agency_suggestions: list[GetNextURLForAgencyAgencyInfo] | None = Field(
agency_suggestions: AgencyAnnotationResponseOuterInfo | None = Field(
title="The auto-labeler's suggestions for agencies"
)
location_suggestions: LocationAnnotationResponseOuterInfo | None = Field(
Expand Down
44 changes: 44 additions & 0 deletions src/api/endpoints/annotate/all/get/queries/agency/core.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from sqlalchemy.ext.asyncio import AsyncSession

Check warning on line 1 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L1 <100>

Missing docstring in public module
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:1:1: D100 Missing docstring in public module

from src.api.endpoints.annotate.all.get.models.agency import AgencyAnnotationResponseOuterInfo, \
AgencyAnnotationUserSuggestionOuterInfo, AgencyAnnotationUserSuggestion, AgencyAnnotationAutoSuggestion
from src.api.endpoints.annotate.all.get.queries.agency.requester import GetAgencySuggestionsRequester
from src.db.queries.base.builder import QueryBuilderBase
from sqlalchemy.ext.asyncio import AsyncSession

Check warning on line 7 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L7 <811>

redefinition of unused 'AsyncSession' from line 1
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:7:1: F811 redefinition of unused 'AsyncSession' from line 1

from src.api.endpoints.annotate.all.get.models.agency import AgencyAnnotationResponseOuterInfo, \

Check warning on line 9 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L9 <811>

redefinition of unused 'AgencyAnnotationResponseOuterInfo' from line 3
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:9:1: F811 redefinition of unused 'AgencyAnnotationResponseOuterInfo' from line 3

Check warning on line 9 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L9 <811>

redefinition of unused 'AgencyAnnotationUserSuggestionOuterInfo' from line 3
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:9:1: F811 redefinition of unused 'AgencyAnnotationUserSuggestionOuterInfo' from line 3

Check warning on line 9 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L9 <811>

redefinition of unused 'AgencyAnnotationUserSuggestion' from line 3
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:9:1: F811 redefinition of unused 'AgencyAnnotationUserSuggestion' from line 3

Check warning on line 9 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L9 <811>

redefinition of unused 'AgencyAnnotationAutoSuggestion' from line 3
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:9:1: F811 redefinition of unused 'AgencyAnnotationAutoSuggestion' from line 3
AgencyAnnotationUserSuggestionOuterInfo, AgencyAnnotationUserSuggestion, AgencyAnnotationAutoSuggestion
from src.api.endpoints.annotate.all.get.queries.agency.requester import GetAgencySuggestionsRequester

Check warning on line 11 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L11 <811>

redefinition of unused 'GetAgencySuggestionsRequester' from line 5
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:11:1: F811 redefinition of unused 'GetAgencySuggestionsRequester' from line 5
from src.db.queries.base.builder import QueryBuilderBase

Check warning on line 12 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L12 <811>

redefinition of unused 'QueryBuilderBase' from line 6
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:12:1: F811 redefinition of unused 'QueryBuilderBase' from line 6


class GetAgencySuggestionsQueryBuilder(QueryBuilderBase):

Check warning on line 15 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L15 <101>

Missing docstring in public class
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:15:1: D101 Missing docstring in public class

def __init__(

Check warning on line 17 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L17 <107>

Missing docstring in __init__
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:17:1: D107 Missing docstring in __init__
self,
url_id: int
):
super().__init__()
self.url_id = url_id

async def run(self, session: AsyncSession) -> AgencyAnnotationResponseOuterInfo:

Check warning on line 24 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L24 <102>

Missing docstring in public method
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:24:1: D102 Missing docstring in public method
requester = GetAgencySuggestionsRequester(
session,
url_id=self.url_id
)

user_suggestions: list[AgencyAnnotationUserSuggestion] = \
await requester.get_user_agency_suggestions()
auto_suggestions: list[AgencyAnnotationAutoSuggestion] = \
await requester.get_auto_agency_suggestions()
not_found_count: int = \
await requester.get_not_found_count()
return AgencyAnnotationResponseOuterInfo(
user=AgencyAnnotationUserSuggestionOuterInfo(
suggestions=user_suggestions,
not_found_count=not_found_count
),
auto=auto_suggestions,
)


Check warning on line 44 in src/api/endpoints/annotate/all/get/queries/agency/core.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/core.py#L44 <391>

blank line at end of file
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/core.py:44:1: W391 blank line at end of file
101 changes: 101 additions & 0 deletions src/api/endpoints/annotate/all/get/queries/agency/requester.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
from typing import Sequence

Check warning on line 1 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L1 <100>

Missing docstring in public module
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:1:1: D100 Missing docstring in public module

from sqlalchemy import func, select, RowMapping
from sqlalchemy.ext.asyncio import AsyncSession

from src.api.endpoints.annotate.all.get.models.agency import AgencyAnnotationAutoSuggestion, \
AgencyAnnotationUserSuggestion
from src.api.endpoints.annotate.all.get.queries.agency.suggestions_with_highest_confidence import \
SuggestionsWithHighestConfidenceCTE
from src.db.helpers.session import session_helper as sh
from src.db.models.impl.agency.sqlalchemy import Agency
from src.db.models.impl.link.user_suggestion_not_found.agency.sqlalchemy import LinkUserSuggestionAgencyNotFound
from src.db.models.impl.url.suggestion.agency.user import UserUrlAgencySuggestion
from src.db.templates.requester import RequesterBase


class GetAgencySuggestionsRequester(RequesterBase):

Check warning on line 17 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L17 <101>

Missing docstring in public class
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:17:1: D101 Missing docstring in public class

def __init__(self, session: AsyncSession, url_id: int):

Check warning on line 19 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L19 <107>

Missing docstring in __init__
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:19:1: D107 Missing docstring in __init__
super().__init__(session)
self.url_id = url_id

async def get_user_agency_suggestions(self) -> list[AgencyAnnotationUserSuggestion]:

Check warning on line 23 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L23 <102>

Missing docstring in public method
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:23:1: D102 Missing docstring in public method
query = (
select(
UserUrlAgencySuggestion.agency_id,
func.count(UserUrlAgencySuggestion.user_id).label("count"),
Agency.name.label("agency_name"),
)
.join(
Agency,
Agency.agency_id == UserUrlAgencySuggestion.agency_id
)
.where(
UserUrlAgencySuggestion.url_id == self.url_id
)
.group_by(
UserUrlAgencySuggestion.agency_id,
Agency.name
)
.order_by(
func.count(UserUrlAgencySuggestion.user_id).desc()
)
.limit(3)
)

results: Sequence[RowMapping] = await sh.mappings(self.session, query=query)

return [
AgencyAnnotationUserSuggestion(
agency_id=autosuggestion["agency_id"],
user_count=autosuggestion["count"],
agency_name=autosuggestion["agency_name"],
)
for autosuggestion in results
]


async def get_auto_agency_suggestions(self) -> list[AgencyAnnotationAutoSuggestion]:

Check warning on line 59 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L59 <102>

Missing docstring in public method
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:59:1: D102 Missing docstring in public method

Check failure on line 59 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L59 <303>

too many blank lines (2)
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:59:5: E303 too many blank lines (2)
cte = SuggestionsWithHighestConfidenceCTE()
query = (
select(
cte.agency_id,
cte.confidence,
Agency.name.label("agency_name"),
)
.outerjoin(
Agency,
Agency.agency_id == cte.agency_id
)
.where(
cte.url_id == self.url_id
)
.order_by(
cte.confidence.desc()
)
.limit(3)
)

results: Sequence[RowMapping] = await sh.mappings(self.session, query=query)

return [
AgencyAnnotationAutoSuggestion(
agency_id=autosuggestion["agency_id"],
confidence=autosuggestion["confidence"],
agency_name=autosuggestion["agency_name"],
)
for autosuggestion in results
]

async def get_not_found_count(self) -> int:

Check warning on line 91 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L91 <102>

Missing docstring in public method
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:91:1: D102 Missing docstring in public method
query = (
select(
func.count(LinkUserSuggestionAgencyNotFound.user_id)
)
.where(
LinkUserSuggestionAgencyNotFound.url_id == self.url_id
)
)

return await sh.scalar(self.session, query=query)

Check warning on line 101 in src/api/endpoints/annotate/all/get/queries/agency/requester.py

View workflow job for this annotation

GitHub Actions / flake8

[flake8] src/api/endpoints/annotate/all/get/queries/agency/requester.py#L101 <292>

no newline at end of file
Raw output
./src/api/endpoints/annotate/all/get/queries/agency/requester.py:101:58: W292 no newline at end of file
Loading