Skip to content

Commit

Permalink
feat: update ci script, add python repo
Browse files Browse the repository at this point in the history
  • Loading branch information
amaanq committed Aug 15, 2023
1 parent cca9213 commit 90d3d64
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 22 deletions.
4 changes: 4 additions & 0 deletions script/known_failures.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
examples/cpython/Lib/test/badsyntax_3131.py
examples/cpython/Lib/test/badsyntax_future8.py
examples/cpython/Lib/test/test_compile.py
examples/cpython/Tools/build/generate_re_casefix.py
55 changes: 33 additions & 22 deletions script/parse-examples
Original file line number Diff line number Diff line change
@@ -1,36 +1,47 @@
#!/bin/bash
#!/usr/bin/env bash

set -e
set -eu

cd "$(dirname "$0")/.."

function checkout() {
repo=$1; url=$2; sha=$3

if [ ! -d "$repo" ]; then
git clone "https://github.com/$url" "$repo"
fi

pushd "$repo"
git fetch && git reset --hard "$sha"
popd
function clone_repo {
owner=$1
name=$2
sha=$3

path=examples/$name
if [ ! -d "$path" ]; then
echo "Cloning $owner/$name"
git clone "https://github.com/$owner/$name" "$path"
fi

pushd "$path" >/dev/null
actual_sha=$(git rev-parse HEAD)
if [ "$actual_sha" != "$sha" ]; then
echo "Updating $owner/$name to $sha"
git fetch
git reset --hard "$sha"
fi
popd >/dev/null
}

checkout examples/numpy numpy/numpy 058851c5cfc98f50f11237b1c13d77cfd1f40475
checkout examples/django django/django 01974d7f7549b2dca2a729c3c1a1ea7d4585eb3a
checkout examples/flask pallets/flask de464c03e134127140e5622e230790806a133ff9
clone_repo numpy numpy 058851c5cfc98f50f11237b1c13d77cfd1f40475
clone_repo django django 01974d7f7549b2dca2a729c3c1a1ea7d4585eb3a
clone_repo pallets flask de464c03e134127140e5622e230790806a133ff9
clone_repo python cpython bb456a08a3db851e6feaefc3328f39096919ec8d

known_failures="$(cat script/known_failures.txt)"

# shellcheck disable=2046
tree-sitter parse -q \
'examples/**/*.py' \
$(for file in $known_failures; do echo "!${file}"; done)
'examples/**/*.py' \
$(for file in $known_failures; do echo "!${file}"; done)

example_count=$(find examples -name '*.py' | wc -l)
failure_count=$(wc -w <<< "$known_failures")
success_count=$(( $example_count - $failure_count ))
success_percent=$(bc -l <<< "100*${success_count}/${example_count}")
failure_count=$(wc -w <<<"$known_failures")
success_count=$((example_count - failure_count))
success_percent=$(bc -l <<<"100*${success_count}/${example_count}")

printf \
"Successfully parsed %d of %d example files (%.1f%%)\n" \
$success_count $example_count $success_percent
"Successfully parsed %d of %d example files (%.1f%%)\n" \
"$success_count" "$example_count" "$success_percent"

0 comments on commit 90d3d64

Please sign in to comment.