Didn't have time to implement proper unit tests; commands used to test during dev:

./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "7")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "7"'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", blurbh'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", blurb'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", blurb''
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", blurb)'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "blurb")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1"'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1"'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "5")'
./main.py netflix\ daily\ top\ 10.csv ''
./main.py netflix\ daily\ top\ 10.csv 'Yo'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "5")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH()'
./main.py netflix\ daily\ top\ 10.csv 'MATCH(hi)'
./main.py netflix\ daily\ top\ 10.csv 'MATCH()'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "5")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "5")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "5", "lol")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "5")'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "5"))'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "5")'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1")'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "5"))'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1")'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "5"))'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "1"))'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "10"))'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "1"))'
./main.py netflix\ daily\ top\ 10.csv 'MATCH("Rank", "1")'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "1"))'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "1"))'
./main.py netflix\ daily\ top\ 10.csv 'NOT(pbbbbb)'
./main.py netflix\ daily\ top\ 10.csv 'NOT(pbbbbb)'
./main.py netflix\ daily\ top\ 10.csv 'NOT(pbbbbb)' | less
./main.py netflix\ daily\ top\ 10.csv 'NOT(pbbbbb)'
./main.py netflix\ daily\ top\ 10.csv 'NOT(pbbbbb)' | less
./main.py netflix\ daily\ top\ 10.csv 'NOT(pbbbbb)' | less
./main.py netflix\ daily\ top\ 10.csv 'NOT(pbbbbb)'
./main.py netflix\ daily\ top\ 10.csv 'NOT(MATCH("Rank", "1"))'
./main.py netflix\ daily\ top\ 10.csv 'AND(MATCH("Rank", "1"))'
./main.py netflix\ daily\ top\ 10.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2")'
./main.py netflix\ daily\ top\ 10.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10.csv 'OR(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10.csv 'OR(MATCH("Rank", "1"),MATCH("Rank","2")'
./main.py netflix\ daily\ top\ 10.csv 'OR(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10.csv 'OR(NOT(MATCH("Rank", "1")),NOT(MATCH("Rank","2")))'
./main.py netflix\ daily\ top\ 10.csv 'AND(NOT(MATCH("Rank", "1")),NOT(MATCH("Rank","2")))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(NOT(MATCH("Rank", "1")),NOT(MATCH("Rank","2")))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(NOT(MATCH("Rank", "1")),NOT(MATCH("Rank","2")))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'OR(NOT(MATCH("Rank", "1")),NOT(MATCH("Rank","2")))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'OR(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'MATCH("Rank","2")'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'OR(MATCH("Rank", "2"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'OR(MATCH("Rank", "3"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'OR(MATCH("Rank", "3"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'OR(MATCH("Rank", "2"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'OR(NOT(MATCH("Rank", "1")),NOT(MATCH("Rank","2")))'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2")'
./main.py netflix\ daily\ top\ 10\ truncated.csv 'AND(MATCH("Rank", "1"),MATCH("Rank","2"))'
./main.py netflix\ daily\ top\ 10.csv 'AND(MATCH("Rank", "1"),MATCH("Type","Movie"))'
./main.py netflix\ daily\ top\ 10.csv 'AND(MATCH("Rank", "1"),MATCH("bleet","Movie"))'