-
Notifications
You must be signed in to change notification settings - Fork 37
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
Refactor seq_file_parser.py
for performance and readability
#92
Conversation
@check-spelling-bot Report🔴 Please reviewSee the 📂 files view or the 📜action log for details. Unrecognized words (145)
Previously acknowledged words that are now absentarglist beforeunload Chainable css cwd deserialization dts EINPROGRESS endtime frac functools isclass iterables itsdangerous ooo osascript PYTHONHOME replayer setblocking sss starttime taggable timeval UIs VIRTUALENV xlsTo accept ✔️ these unrecognized words as correct and remove the previously acknowledged and now absent words, run the following commands... in a clone of the [email protected]:ThibFrgsGmz/fprime-gds.git repository update_files() {
perl -e '
my @expect_files=qw('".github/actions/spelling/expect.txt"');
@ARGV=@expect_files;
my @stale=qw('"$patch_remove"');
my $re=join "|", @stale;
my $suffix=".".time();
my $previous="";
sub maybe_unlink { unlink($_[0]) if $_[0]; }
while (<>) {
if ($ARGV ne $old_argv) { maybe_unlink($previous); $previous="$ARGV$suffix"; rename($ARGV, $previous); open(ARGV_OUT, ">$ARGV"); select(ARGV_OUT); $old_argv = $ARGV; }
next if /^(?:$re)(?:(?:\r|\n)*$| .*)/; print;
}; maybe_unlink($previous);'
perl -e '
my $new_expect_file=".github/actions/spelling/expect.txt";
use File::Path qw(make_path);
use File::Basename qw(dirname);
make_path (dirname($new_expect_file));
open FILE, q{<}, $new_expect_file; chomp(my @words = <FILE>); close FILE;
my @add=qw('"$patch_add"');
my %items; @items{@words} = @words x (1); @items{@add} = @add x (1);
@words = sort {lc($a)."-".$a cmp lc($b)."-".$b} keys %items;
open FILE, q{>}, $new_expect_file; for my $word (@words) { print FILE "$word\n" if $word =~ /\w/; };
close FILE;
system("git", "add", $new_expect_file);
'
}
comment_json=$(mktemp)
curl -L -s -S \
-H "Content-Type: application/json" \
"https://api.github.com/repos/fprime-community/fprime-gds/issues/comments/1221267709" > "$comment_json"
comment_body=$(mktemp)
jq -r ".body // empty" "$comment_json" | tr -d "\\r" > $comment_body
rm $comment_json
patch_remove=$(perl -ne 'next unless s{^</summary>(.*)</details>$}{$1}; print' < "$comment_body")
patch_add=$(perl -e '$/=undef; $_=<>; if (m{Unrecognized words[^<]*</summary>\n*```\n*([^<]*)```\n*</details>$}m) { print "$1" } elsif (m{Unrecognized words[^<]*\n\n((?:\w.*\n)+)\n}m) { print "$1" };' < "$comment_body")
update_files
rm $comment_body
git add -u
Available dictionaries could cover words not in the dictionaryThis includes both expected items (735) from .github/actions/spelling/expect.txt and unrecognized words (145) cspell:python/src/python/python-lib.txt (3873) covers 136 of them Consider adding them using (in with:
extra_dictionaries:
cspell:python/src/python/python-lib.txt
cspell:php/php.txt
cspell:python/src/python/python.txt
cspell:win32/src/win32.txt
cspell:node/node.txt To stop checking additional dictionaries, add: with:
check_extra_dictionaries: '' Warnings (1)See the 📂 files view or the 📜action log for details.
See ℹ️ Event descriptions for more information. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes review notes. I am curious why you use a list comprehension as opposed to the original list(map())
call as it is longer, but the inheritance issue has been fixed.
Since I learned that it is slower to use |
Change Description
This PR aims to:
def parseAbsolute
L210)for
loop into alist
comprehension and directlt returning it (def replaceSpacesAndCommas
L69)dict()
/list()
with{}
/[]
for performance speedRationale
Clean code, better performance and readability.
Testing/Review Recommendations
void
Future Work
void