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

Add keys method to Parser class #46

Merged
merged 2 commits into from Nov 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions trollsift/parser.py
Expand Up @@ -33,6 +33,11 @@ def __init__(self, fmt):
def __str__(self):
return self.fmt

def keys(self):
"""Get parameter names defined in the format string."""
convert_dict = get_convert_dict(self.fmt)
return convert_dict.keys()

def parse(self, stri, full_match=True):
'''Parse keys and corresponding values from *stri* using format
described in *fmt* string.
Expand Down
8 changes: 7 additions & 1 deletion trollsift/tests/unittests/test_parser.py
Expand Up @@ -4,7 +4,7 @@

from trollsift.parser import get_convert_dict, extract_values
from trollsift.parser import _convert
from trollsift.parser import parse, globify, validate, is_one2one, compose
from trollsift.parser import parse, globify, validate, is_one2one, compose, Parser


class TestParser(unittest.TestCase):
Expand All @@ -17,6 +17,12 @@ def setUp(self):
self.string3 = "/somedir/otherdir/hrpt_noaa16_20140210_1004_69022"
self.string4 = "/somedir/otherdir/hrpt_noaa16_20140210_1004_69022"

def test_parser_keys(self):
parser = Parser(self.fmt)
keys = {"directory", "platform", "platnum", "time", "orbit"}
self.assertTrue(keys.issubset(parser.keys())
and keys.issuperset(parser.keys()))

def test_get_convert_dict(self):
# Run
result = get_convert_dict(self.fmt)
Expand Down