pyp3 icon indicating copy to clipboard operation
pyp3 copied to clipboard

logic filters don't work with sp, spp, fp, or fpp

Open bobpaul opened this issue 8 years ago • 1 comments

Observed

$ echo -e "This is some input\nignore this line" > file"
$ pyp3 -t file -b 2 "'some' in fp"

$ cat file | pyp3 "'some' in p"
This is some input
$ pyp3 -b 2 "'some' in sp" "This is some input" "ignore this line"
$ pyp3 -b 2 "sp" "This is some input" "ignore this line"
This is some input
ignore this line

Expected should behave the same regardless of where the input stream is from.

bobpaul avatar Jul 11 '17 21:07 bobpaul

I think this is only a documentation bug if it's even a bug. It seems to be working as intended:

$ echo -e "1\n2" | pyp3 "'some' in sp" "This is some input" "ignore this line"
1

pyp IS filtering on sp, but it still only outputs p unless you tell it otherwise.

This could probably be made more clear in the documentation, esp w/re to the keep() and lose() functions.

So what if (ex for debugging) you want to read from a file or secondary without reading from stdin? It's a bit clunky, but:

$ pyp3 -t file -ib 2 "pp+fpp | 'some' in p"
This is some input

-b2 creates 2 blank lines as fake stdin. -i filters out blank lines right away pp+fpp combines the stdin and file contents. Since the input is blank_lines and we have --ignore_blanks, len(pp) == 0 and this just gives us fpp. proceed with the second stage in the internal pip as if the inputs came from stdin.

You can do the same thing with "pp + spp" for secondary input.

bobpaul avatar Jul 12 '17 17:07 bobpaul