Source code for standard_names.cmd.snvalidate
#! /usr/bin/env python
"""Validate a list of names."""
from __future__ import print_function
import os
import sys
import argparse
from ..registry import NamesRegistry
from ..error import BadRegistryError
[docs]def main(args=None):
"""Validate a list of names.
Examples
--------
>>> from __future__ import print_function
>>> import os
>>> import standard_names as csn
>>> (fname, _) = csn.registry._get_latest_names_file()
>>> csn.cmd.snvalidate.main([fname])
0
>>> import tempfile
>>> (fd, fname) = tempfile.mkstemp()
>>> os.close(fd)
>>> with open(fname, 'w') as fp:
... print('air__temperature', file=fp)
... print('Water__temperature', file=fp)
... print('water_temperature', file=fp)
>>> csn.cmd.snvalidate.main([fp.name])
2
>>> os.remove(fname)
"""
parser = argparse.ArgumentParser("Validate a list of standard names")
parser.add_argument(
"file",
type=argparse.FileType("r"),
nargs="+",
default=None,
help="Read names from a file",
)
if args is None:
args = parser.parse_args()
else:
args = parser.parse_args(args)
try:
names = NamesRegistry(args.file)
except BadRegistryError as err:
print(os.linesep.join(err.names), file=sys.stderr)
return len(err.names)
else:
return 0
[docs]def run():
sys.exit(main())