Skip to content

Instantly share code, notes, and snippets.

@vossisboss
Created November 20, 2025 21:24
Show Gist options
  • Select an option

  • Save vossisboss/1fe45a566d0aa003d91c4a4ab3e2266d to your computer and use it in GitHub Desktop.

Select an option

Save vossisboss/1fe45a566d0aa003d91c4a4ab3e2266d to your computer and use it in GitHub Desktop.
BigQuery query for 2025 Wagtail package analysis
#standardSQL
CREATE TEMP FUNCTION toMarkdown(
name STRING,
version STRING,
home_page STRING,
project_urls ARRAY<STRING>)
RETURNS STRING
LANGUAGE js AS """
// Convert project_urls to map for easy access
const urls = {};
project_urls.forEach((entry) => {
const [key, value] = entry.split(', ');
urls[key.toLowerCase()] = value;
});
const url = urls.changelog || urls.home || urls.homepage || urls.source || urls.repository || home_page || `https://pypi.org/project/${name}/`;
return `- [${name} v${version}](${url})`;
""";
WITH
-- Factor out the pattern logic once.
allowed_packages AS (
SELECT DISTINCT name
FROM `bigquery-public-data.pypi.distribution_metadata`
WHERE packagetype = 'bdist_wheel'
AND (
name IN ('wagtail', 'coderedcms', 'longclaw', 'django-cast', 'wagalytics', 'puput', 'ls.joyous')
OR name LIKE 'wagtail%'
OR name LIKE '%wagtail'
)
),
latest AS (
SELECT
dm.name,
dm.version,
dm.author,
dm.home_page,
dm.project_urls,
dm.upload_time,
toMarkdown(dm.name, dm.version, dm.home_page, dm.project_urls) AS markdown,
CONCAT('https://pypi.org/project/', dm.name, '/', dm.version, '/') AS pypi_url
FROM `bigquery-public-data.pypi.distribution_metadata` dm
JOIN allowed_packages ap
ON dm.name = ap.name
WHERE dm.packagetype = 'bdist_wheel'
AND dm.upload_time >= TIMESTAMP('2025-01-01 00:00:00')
)
SELECT
l.name,
l.version AS latest_release,
l.author,
l.home_page,
l.project_urls,
l.upload_time,
l.markdown,
l.pypi_url
FROM latest l
ORDER BY l.upload_time DESC;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment