better output options
This commit is contained in:
parent
6d04f262db
commit
652d616471
@ -7,6 +7,7 @@
|
|||||||
# stdlib
|
# stdlib
|
||||||
import argparse
|
import argparse
|
||||||
import datetime
|
import datetime
|
||||||
|
import os
|
||||||
import re
|
import re
|
||||||
from urllib.request import urlopen, urlparse
|
from urllib.request import urlopen, urlparse
|
||||||
# pypi/pip
|
# pypi/pip
|
||||||
@ -161,12 +162,32 @@ class KeyStats(object):
|
|||||||
#indent = 4,
|
#indent = 4,
|
||||||
default = str))
|
default = str))
|
||||||
elif self.output == 'yaml':
|
elif self.output == 'yaml':
|
||||||
try:
|
has_yaml = False
|
||||||
import pyaml
|
if 'YAML_MOD' in os.environ.keys():
|
||||||
print(pyaml.dump(self.stats))
|
_mod = os.environ['YAML_MOD']
|
||||||
except ImportError:
|
try:
|
||||||
raise RuntimeError(('You must have PyYAML installed to use ' +
|
import importlib
|
||||||
'YAML formatting'))
|
yaml = importlib.import_module(_mod)
|
||||||
|
has_yaml = True
|
||||||
|
except (ImportError, ModuleNotFoundError):
|
||||||
|
raise RuntimeError(('Module "{0}" is not ' +
|
||||||
|
'installed').format(_mod))
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
import yaml
|
||||||
|
has_yaml = True
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
import pyaml as yaml
|
||||||
|
has_yaml = True
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
if not has_yaml:
|
||||||
|
raise RuntimeError(('You must have the PyYAML or pyaml ' +
|
||||||
|
'module installed to use YAML ' +
|
||||||
|
'formatting'))
|
||||||
|
print(yaml.dump(self.stats))
|
||||||
elif self.output == 'py':
|
elif self.output == 'py':
|
||||||
import pprint
|
import pprint
|
||||||
pprint.pprint(self.stats)
|
pprint.pprint(self.stats)
|
||||||
@ -199,7 +220,11 @@ def parseArgs():
|
|||||||
action = 'store_const',
|
action = 'store_const',
|
||||||
const = 'yaml',
|
const = 'yaml',
|
||||||
help = ('Output the data in YAML format (requires ' +
|
help = ('Output the data in YAML format (requires ' +
|
||||||
'PyYAML)'))
|
'PyYAML or pyaml module). You can prefer which ' +
|
||||||
|
'one by setting an environment variable, ' +
|
||||||
|
'YAML_MOD, to "yaml" or "pyaml" (for PyYAML or ' +
|
||||||
|
'pyaml respectively); otherwise preference ' +
|
||||||
|
'will be PyYAML > pyaml'))
|
||||||
fmt.add_argument('-p', '--python',
|
fmt.add_argument('-p', '--python',
|
||||||
default = 'py',
|
default = 'py',
|
||||||
dest = 'output',
|
dest = 'output',
|
||||||
|
Loading…
Reference in New Issue
Block a user