Skip to content

refactor:remove PLR0912 ignore and fix 4 violations update #1979

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
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
71 changes: 38 additions & 33 deletions backend/apps/ai/management/commands/ai_create_chapter_chunks.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,19 @@ def extract_chapter_content(self, chapter: Chapter) -> tuple[str, str]:
prose_parts = []
metadata_parts = []

if chapter.description:
prose_parts.append(f"Description: {chapter.description}")

if chapter.summary:
prose_parts.append(f"Summary: {chapter.summary}")

if hasattr(chapter, "owasp_repository") and chapter.owasp_repository:
repo = chapter.owasp_repository
# Prose content
prose_fields = (
("description", "Description"),
("summary", "Summary"),
)
for field, label in prose_fields:
value = getattr(chapter, field, None)
if value:
prose_parts.append(f"{label}: {value}")

# Repository content
repo = getattr(chapter, "owasp_repository", None)
if repo:
if repo.description:
prose_parts.append(f"Repository Description: {repo.description}")
if repo.topics:
Expand All @@ -116,34 +121,34 @@ def extract_chapter_content(self, chapter: Chapter) -> tuple[str, str]:
if chapter.name:
metadata_parts.append(f"Chapter Name: {chapter.name}")

location_parts = []
if chapter.country:
location_parts.append(f"Country: {chapter.country}")
if chapter.region:
location_parts.append(f"Region: {chapter.region}")
if chapter.postal_code:
location_parts.append(f"Postal Code: {chapter.postal_code}")
if chapter.suggested_location:
location_parts.append(f"Location: {chapter.suggested_location}")

# Location information - combine into single operation
location_parts = [
f"{label}: {value}"
for value, label in [
(chapter.country, "Country"),
(chapter.region, "Region"),
(chapter.postal_code, "Postal Code"),
(chapter.suggested_location, "Location"),
]
if value
]
if location_parts:
metadata_parts.append(f"Location Information: {', '.join(location_parts)}")

if chapter.currency:
metadata_parts.append(f"Currency: {chapter.currency}")

if chapter.meetup_group:
metadata_parts.append(f"Meetup Group: {chapter.meetup_group}")

if chapter.tags:
metadata_parts.append(f"Tags: {', '.join(chapter.tags)}")

if chapter.topics:
metadata_parts.append(f"Topics: {', '.join(chapter.topics)}")

if chapter.leaders_raw:
metadata_parts.append(f"Chapter Leaders: {', '.join(chapter.leaders_raw)}")

# Simple and list-based metadata fields
for field, label in [
("currency", "Currency"),
("meetup_group", "Meetup Group"),
("tags", "Tags"),
("topics", "Topics"),
("leaders_raw", "Chapter Leaders"),
]:
value = getattr(chapter, field, None)
if value:
display_value = ", ".join(value) if isinstance(value, list) else value
metadata_parts.append(f"{label}: {display_value}")

# Related URLs with validation
if chapter.related_urls:
valid_urls = [
url
Expand Down
135 changes: 72 additions & 63 deletions backend/apps/ai/management/commands/ai_create_project_chunks.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,64 +87,59 @@ def create_chunks(self, project: Project) -> list[Chunk]:
)

def extract_project_content(self, project: Project) -> tuple[str, str]:
prose_parts = []
metadata_parts = []

if project.name:
metadata_parts.append(f"Project Name: {project.name}")

if project.description:
prose_parts.append(f"Description: {project.description}")

if project.summary:
prose_parts.append(f"Summary: {project.summary}")

if project.level:
metadata_parts.append(f"Project Level: {project.level}")

if project.type:
metadata_parts.append(f"Project Type: {project.type}")

if hasattr(project, "owasp_repository") and project.owasp_repository:
repo = project.owasp_repository
prose_parts: list[str] = []
metadata_parts: list[str] = []

# Basic project information
for value, label, target_list in [
(project.name, "Project Name", metadata_parts),
(project.description, "Description", prose_parts),
(project.summary, "Summary", prose_parts),
(project.level, "Project Level", metadata_parts),
(project.type, "Project Type", metadata_parts),
]:
if value:
target_list.append(f"{label}: {value}")

# Repository content
repo = getattr(project, "owasp_repository", None)
if repo:
if repo.description:
prose_parts.append(f"Repository Description: {repo.description}")
if repo.topics:
metadata_parts.append(f"Repository Topics: {', '.join(repo.topics)}")

if project.languages:
metadata_parts.append(f"Programming Languages: {', '.join(project.languages)}")

if project.topics:
metadata_parts.append(f"Topics: {', '.join(project.topics)}")

if project.licenses:
metadata_parts.append(f"Licenses: {', '.join(project.licenses)}")

if project.tags:
metadata_parts.append(f"Tags: {', '.join(project.tags)}")

if project.custom_tags:
metadata_parts.append(f"Custom Tags: {', '.join(project.custom_tags)}")

stats_parts = []
if project.stars_count > 0:
stats_parts.append(f"Stars: {project.stars_count}")
if project.forks_count > 0:
stats_parts.append(f"Forks: {project.forks_count}")
if project.contributors_count > 0:
stats_parts.append(f"Contributors: {project.contributors_count}")
if project.releases_count > 0:
stats_parts.append(f"Releases: {project.releases_count}")
if project.open_issues_count > 0:
stats_parts.append(f"Open Issues: {project.open_issues_count}")
# Process all metadata fields in groups
self._add_list_metadata(
metadata_parts,
[
(project.languages, "Programming Languages"),
(project.topics, "Topics"),
(project.licenses, "Licenses"),
(project.tags, "Tags"),
(project.custom_tags, "Custom Tags"),
],
)

# Statistics
stats_parts = [
f"{label}: {count}"
for count, label in [
(project.stars_count, "Stars"),
(project.forks_count, "Forks"),
(project.contributors_count, "Contributors"),
(project.releases_count, "Releases"),
(project.open_issues_count, "Open Issues"),
]
if count > 0
]
if stats_parts:
metadata_parts.append("Project Statistics: " + ", ".join(stats_parts))

if project.leaders_raw:
metadata_parts.append(f"Project Leaders: {', '.join(project.leaders_raw)}")
# Additional metadata and dates
self._add_additional_metadata(metadata_parts, project)

# Related URLs with validation
if project.related_urls:
valid_urls = [
url
Expand All @@ -154,25 +149,39 @@ def extract_project_content(self, project: Project) -> tuple[str, str]:
if valid_urls:
metadata_parts.append(f"Related URLs: {', '.join(valid_urls)}")

if project.created_at:
metadata_parts.append(f"Created: {project.created_at.strftime('%Y-%m-%d')}")
return (
DELIMITER.join(filter(None, prose_parts)),
DELIMITER.join(filter(None, metadata_parts)),
)

if project.updated_at:
metadata_parts.append(f"Last Updated: {project.updated_at.strftime('%Y-%m-%d')}")
def _add_list_metadata(self, metadata_parts, field_list):
"""Add list-based metadata fields."""
for value_list, label in field_list:
if value_list:
metadata_parts.append(f"{label}: {', '.join(value_list)}")

def _add_additional_metadata(self, metadata_parts, project):
"""Add additional metadata including dates and final fields."""
# Leaders
if project.leaders_raw:
metadata_parts.append(f"Project Leaders: {', '.join(project.leaders_raw)}")

if project.released_at:
metadata_parts.append(f"Last Release: {project.released_at.strftime('%Y-%m-%d')}")
# Date fields
for date_value, label in [
(project.created_at, "Created"),
(project.updated_at, "Last Updated"),
(project.released_at, "Last Release"),
]:
if date_value:
metadata_parts.append(f"{label}: {date_value.strftime('%Y-%m-%d')}")

# Final metadata
if project.health_score is not None:
metadata_parts.append(f"Health Score: {project.health_score:.2f}")

metadata_parts.append(f"Active Project: {'Yes' if project.is_active else 'No'}")

metadata_parts.append(
f"Issue Tracking: {'Enabled' if project.track_issues else 'Disabled'}"
)

return (
DELIMITER.join(filter(None, prose_parts)),
DELIMITER.join(filter(None, metadata_parts)),
metadata_parts.extend(
[
f"Active Project: {'Yes' if project.is_active else 'No'}",
f"Issue Tracking: {'Enabled' if project.track_issues else 'Disabled'}",
]
)
Loading