Skip to content
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

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

Open
bobpaul opened this issue Jul 11, 2017 · 1 comment
Open

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

bobpaul opened this issue Jul 11, 2017 · 1 comment

Comments

@bobpaul
Copy link
Contributor

bobpaul commented Jul 11, 2017

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 bobpaul changed the title builtins" logic filters don't work with sp, spp, fp, or fpp Jul 11, 2017
@bobpaul
Copy link
Contributor Author

bobpaul commented Jul 12, 2017

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant