diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..04d5c80 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +textminer \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..51eab54 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..fc564a6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/textminer.iml b/.idea/textminer.iml new file mode 100644 index 0000000..b580034 --- /dev/null +++ b/.idea/textminer.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..99aec5b --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,562 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1434478547029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/textminer/extractor.py b/textminer/extractor.py index e69de29..4ef52a5 100644 --- a/textminer/extractor.py +++ b/textminer/extractor.py @@ -0,0 +1,10 @@ +import re + +def phone_numbers(text): + phone_pattern = r'\(\d{3}\) ?\d{3}\-.{4}' + return re.findall(phone_pattern, text) + + +def emails(text): + email_pattern = r'[\w.\w]+\@\w+\....' + return re.findall(email_pattern, text) \ No newline at end of file diff --git a/textminer/separator.py b/textminer/separator.py index e69de29..0fc9f09 100644 --- a/textminer/separator.py +++ b/textminer/separator.py @@ -0,0 +1,18 @@ +import re + +def phone_number(text): + area_code = "919" + # close on this pattern + phone_num = "\d{3}.\d{4}" + answer = area_code, phone_num + # yeild {} + + return re.findall(answer, text) + + +def money(text): + symbol = "\$" + amount = "\d+\.\d+" + answer = symbol, amount + return re.findall(answer, text) + diff --git a/textminer/tests/test_separator.py b/textminer/tests/test_separator.py index d81dedc..e52362a 100644 --- a/textminer/tests/test_separator.py +++ b/textminer/tests/test_separator.py @@ -16,6 +16,7 @@ def test_words(input, expected): assert s.words(input) == expected +# Working on this now, close @xfail @params("input,expected", [ ("919-555-1212", {"area_code": "919", "number": "555-1212"}), @@ -25,10 +26,11 @@ def test_words(input, expected): ("919 555-1212", {"area_code": "919", "number": "555-1212"}), ("555-121", None) ]) +# solved this one def test_phone_numbers(input, expected): assert s.phone_number(input) == expected - +#${1} \d+.\d+ @xfail @params("input,expected", [ ("$4", {"currency": "$", "amount": 4.0}), @@ -56,7 +58,7 @@ def test_money(input, expected): currencies later.""" assert s.money(input) == expected - +# close \b\d{5,5}-?(\d{4})? need to exclude the -? @xfail @params("input,expected", [ ("63936", {"zip": "63936", "plus4": None}), diff --git a/textminer/tests/test_validator.py b/textminer/tests/test_validator.py index b7e1364..a9b4ee8 100644 --- a/textminer/tests/test_validator.py +++ b/textminer/tests/test_validator.py @@ -3,7 +3,7 @@ import textminer.validator as v - +# for whole binary thing.. [0-1] @xfail def test_binary_numbers(): assert v.binary("0") @@ -14,16 +14,15 @@ def test_binary_numbers(): assert not v.binary("") assert not v.binary("911") - @xfail def test_binary_even(): """String must be a binary number and be even.""" - + # (\d+)?0\b assert v.binary_even("10") assert v.binary_even("1110100010") assert not v.binary_even("1011") - +# [0-F] don't know why lower cases are being chosen @xfail def test_hexadecimal(): assert v.hex("CAFE") @@ -109,7 +108,7 @@ def test_money(): assert not v.money("31") assert not v.money("$$31") - +# \d{5}\-?(\d{4})? @xfail def test_zip(): assert v.zipcode("63936") diff --git a/textminer/validator.py b/textminer/validator.py index e69de29..e5b6495 100644 --- a/textminer/validator.py +++ b/textminer/validator.py @@ -0,0 +1,9 @@ +def binary(test): + + return None + + +def binary_even(text): + binary = "(\d+)?0\b" + + return None