Skip to content

Commit

Permalink
Use argparse_addons module.
Browse files Browse the repository at this point in the history
  • Loading branch information
eerimoq committed Jun 21, 2020
1 parent 5c7a7a2 commit f90988f
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 30 deletions.
31 changes: 2 additions & 29 deletions bincopy.py
Expand Up @@ -12,10 +12,11 @@
from io import StringIO

from humanfriendly import format_size
from argparse_addons import IntegerRangeType


__author__ = 'Erik Moqvist'
__version__ = '17.3.0'
__version__ = '17.4.0'


DEFAULT_WORD_SIZE_BITS = 8
Expand Down Expand Up @@ -1798,34 +1799,6 @@ def _do_fill(args):
fout.write(data)


class IntegerRangeType:

def __init__(self, minimum, maximum):
self.minimum = minimum
self.maximum = maximum

def __call__(self, string):
value = int(string, 0)

if self.minimum is not None and self.maximum is not None:
if not self.minimum <= value <= self.maximum:
raise argparse.ArgumentTypeError(
f'{string} is not in the range {self.minimum}..{self.maximum}')
elif self.minimum is not None:
if value < self.minimum:
raise argparse.ArgumentTypeError(
f'{string} is not {self.minimum} or higher')
elif self.maximum is not None:
if value > self.maximum:
raise argparse.ArgumentTypeError(
f'{string} is not {self.maximum} or lower')

return value

def __repr__(self):
return 'integer'


def _main():
parser = argparse.ArgumentParser(
description='Various binary file format utilities.')
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
@@ -1 +1,2 @@
humanfriendly
argparse_addons
3 changes: 2 additions & 1 deletion setup.py
Expand Up @@ -28,7 +28,8 @@
url='https://github.com/eerimoq/bincopy',
py_modules=['bincopy'],
install_requires=[
'humanfriendly'
'humanfriendly',
'argparse_addons'
],
test_suite="tests",
entry_points = {
Expand Down

0 comments on commit f90988f

Please sign in to comment.