initial commit

This commit is contained in:
mohamad
2026-06-21 17:54:19 +03:30
commit 20d6df3b27
191 changed files with 14362 additions and 0 deletions
+161
View File
@@ -0,0 +1,161 @@
from .models import DISTRIBUTION_INSTALLABLE, DISTRIBUTION_PACKAGE, INSTALLABLE_PLATFORM_SPECS
DEFAULT_PACKAGE_RESOURCE_BUTTON_TEXT = "PyPI"
DEFAULT_PACKAGE_SOURCE_BUTTON_TEXT = "Source"
def package_button_labels(product):
resource = (getattr(product, "package_resource_button_text", "") or "").strip()
source = (getattr(product, "package_source_button_text", "") or "").strip()
return {
"package_resource_button_text": resource or DEFAULT_PACKAGE_RESOURCE_BUTTON_TEXT,
"package_source_button_text": source or DEFAULT_PACKAGE_SOURCE_BUTTON_TEXT,
}
def downloads_section_link(product):
url = (getattr(product, "downloads_section_link_url", "") or "").strip()
text = (getattr(product, "downloads_section_link_text", "") or "").strip()
if url and text:
return {"url": url, "text": text}
return None
def featured_version(qs):
ordered = qs.order_by("order", "pk")
cand = ordered.filter(is_featured=True).first()
return cand if cand else ordered.first()
def version_has_public_assets(version):
return version.has_any_install_asset() or bool((version.package_resource_url or "").strip())
def install_specs_from_versions(version_list):
present = set()
for ver in version_list:
for field_name, *_ in INSTALLABLE_PLATFORM_SPECS:
if ver.has_platform_asset(field_name):
present.add(field_name)
return tuple(s for s in INSTALLABLE_PLATFORM_SPECS if s[0] in present)
def build_installable_channel_block(version):
if not version_has_public_assets(version):
return None
block = {
"version": version,
"install_cells": [],
"is_previous": version.is_previous_channel,
}
if version.has_any_install_asset():
specs = install_specs_from_versions([version])
block["install_cells"] = version.install_urls_for_specs(specs)
return block
def build_release_context(distribution, active_versions, product):
context = {
"distribution_installable": distribution == DISTRIBUTION_INSTALLABLE,
"distribution_package": distribution == DISTRIBUTION_PACKAGE,
"show_releases_section": False,
"featured_version": None,
"featured_channel": None,
"featured_install_cells": [],
"inline_download_channels": [],
"show_older_versions_link": False,
"package_versions": [],
**package_button_labels(product),
"downloads_section_link": downloads_section_link(product),
}
if distribution == DISTRIBUTION_INSTALLABLE:
featured = featured_version(active_versions)
if featured and not version_has_public_assets(featured):
for cand in active_versions.exclude(pk=featured.pk).order_by("order", "pk"):
if version_has_public_assets(cand):
featured = cand
break
context["featured_version"] = featured
if featured and version_has_public_assets(featured):
featured_block = build_installable_channel_block(featured)
if featured_block:
context["featured_channel"] = featured_block
context["featured_install_cells"] = featured_block["install_cells"]
context["show_releases_section"] = True
inline_blocks = []
for ver in active_versions.order_by("order", "pk"):
if featured and ver.pk == featured.pk:
continue
if not ver.show_on_product_page:
continue
block = build_installable_channel_block(ver)
if block:
inline_blocks.append(block)
context["inline_download_channels"] = inline_blocks
shown_pks = {featured.pk} if featured else set()
shown_pks.update(block["version"].pk for block in inline_blocks)
older_qs = active_versions.order_by("order", "pk")
if shown_pks:
older_qs = older_qs.exclude(pk__in=shown_pks)
context["show_older_versions_link"] = older_qs.exists()
elif distribution == DISTRIBUTION_PACKAGE:
pkg_versions = list(active_versions.order_by("order", "pk"))
context["package_versions"] = pkg_versions
context["show_releases_section"] = len(pkg_versions) > 0
return context
def build_archive_context(distribution, active_versions, product):
featured = featured_version(active_versions)
inline_pks = set(
active_versions.filter(show_on_product_page=True).values_list("pk", flat=True)
)
exclude_pks = set()
if featured:
exclude_pks.add(featured.pk)
exclude_pks.update(inline_pks)
archive = list(
active_versions.exclude(pk__in=exclude_pks).order_by("order", "pk")
if exclude_pks
else active_versions.order_by("order", "pk")
)
context = {
"featured_version": featured,
"archive_versions": archive,
**package_button_labels(product),
}
if distribution == DISTRIBUTION_INSTALLABLE:
specs = install_specs_from_versions(archive)
context["archive_specs"] = specs
archive_rows_installable = []
for ver in archive:
cells = []
for field_name, label, icon in specs:
cells.append(
{
"field": field_name,
"label": label,
"icon": icon,
"url": ver.resolve_asset_url(field_name),
"external": bool((getattr(ver, field_name) or "").strip()),
}
)
archive_rows_installable.append({"version_obj": ver, "cells": cells})
context["archive_rows_installable"] = archive_rows_installable
context["archive_rows_package"] = False
context["distribution_installable"] = True
context["distribution_package"] = False
else:
context["archive_specs"] = ()
context["archive_rows_installable"] = []
context["archive_rows_package"] = True
context["distribution_installable"] = False
context["distribution_package"] = True
return context