pylint work, moving some definitions around. #71

This commit is contained in:
John Evans 2013-07-09 09:01:16 -04:00
commit b317678230
5 changed files with 90 additions and 70 deletions

View file

@ -12,11 +12,23 @@ import warnings
import numpy as np
from .core import _progression_order_display
from .core import _wavelet_transform_display
from .core import LRCP, RLCP, RPCL, PCRL, CPRL
from .core import WAVELET_TRANSFORM_9x7_IRREVERSIBLE
from .core import WAVELET_TRANSFORM_5x3_REVERSIBLE
from .core import _capabilities_display
from .lib import openjp2 as opj2
_PROGRESSION_ORDER_DISPLAY = {
LRCP: 'LRCP',
RLCP: 'RLCP',
RPCL: 'RPCL',
PCRL: 'PCRL',
CPRL: 'CPRL'}
_WAVELET_TRANSFORM_DISPLAY = {
WAVELET_TRANSFORM_9x7_IRREVERSIBLE: '9-7 irreversible',
WAVELET_TRANSFORM_5x3_REVERSIBLE: '5-3 reversible'}
# Need a catch-all list of valid markers.
# See table A-1 in ISO/IEC FCD15444-1.
_VALID_MARKERS = [0xff00, 0xff01, 0xfffe]
@ -493,7 +505,7 @@ class COCsegment(Segment):
msg = msg.format(self.spcoc[0] + 1,
int(self._code_block_size[0]),
int(self._code_block_size[1]),
_wavelet_transform_display[self.spcoc[4]])
_WAVELET_TRANSFORM_DISPLAY[self.spcoc[4]])
msg += '\n '
msg += _context_string(self.spcoc[3])
@ -587,13 +599,13 @@ class CODsegment(Segment):
' Wavelet transform: {6}']
msg += '\n '.join(lines)
msg = msg.format(_progression_order_display[self.spcod[0]],
msg = msg.format(_PROGRESSION_ORDER_DISPLAY[self.spcod[0]],
self._layers,
mct,
self.spcod[4] + 1,
int(self._code_block_size[0]),
int(self._code_block_size[1]),
_wavelet_transform_display[self.spcod[8]])
_WAVELET_TRANSFORM_DISPLAY[self.spcod[8]])
msg += '\n Precinct size: '
if self._precinct_size is None:
@ -770,7 +782,7 @@ class PODsegment(Segment):
self.lyepod[j],
self.repod[j],
self.cdpod[j],
_progression_order_display[self.ppod[j]])
_PROGRESSION_ORDER_DISPLAY[self.ppod[j]])
return msg

View file

@ -5,14 +5,7 @@ RPCL = 2
PCRL = 3
CPRL = 4
_progression_order_display = {
LRCP: 'LRCP',
RLCP: 'RLCP',
RPCL: 'RPCL',
PCRL: 'PCRL',
CPRL: 'CPRL'}
progression_order = {
PROGRESSION_ORDER = {
'LRCP': LRCP,
'RLCP': RLCP,
'RPCL': RPCL,
@ -22,27 +15,11 @@ progression_order = {
WAVELET_TRANSFORM_9x7_IRREVERSIBLE = 0
WAVELET_TRANSFORM_5x3_REVERSIBLE = 1
_wavelet_transform_display = {
WAVELET_TRANSFORM_9x7_IRREVERSIBLE: '9-7 irreversible',
WAVELET_TRANSFORM_5x3_REVERSIBLE: '5-3 reversible'}
ENUMERATED_COLORSPACE = 1
RESTRICTED_ICC_PROFILE = 2
ANY_ICC_PROFILE = 3
VENDOR_COLOR_METHOD = 4
_method_display = {
ENUMERATED_COLORSPACE: 'enumerated colorspace',
RESTRICTED_ICC_PROFILE: 'restricted ICC profile',
ANY_ICC_PROFILE: 'any ICC profile',
VENDOR_COLOR_METHOD: 'vendor color method'}
_ = {1: 'accurately represents correct colorspace definition',
2: 'approximates correct colorspace definition, exceptional quality',
3: 'approximates correct colorspace definition, reasonable quality',
4: 'approximates correct colorspace definition, poor quality'}
_approximation_display = _
# Registration values for comment markers.
RCME_BINARY = 0 # binary value comments
RCME_ISO_8859_1 = 1 # comments in latin-1 codec
@ -98,11 +75,6 @@ _capabilities_display = {
3: '3'}
# Reader requirements
#RREQ_UNRESTRICTED_JPEG2000_PART_1 = 5
#RREQ_UNRESTRICTED_JPEG2000_PART_2 = 6
#RREQ_CMYK_ENUMERATED_COLORSPACE = 55
#RREQ_E_SRGB_ENUMERATED_COLORSPACE = 60
#RREQ_ROMM_RGB_ENUMERATED_COLORSPACE = 61
_reader_requirements_display = {
0: 'File not completely understood',
1: 'Deprecated',

View file

@ -27,12 +27,23 @@ import xml.etree.cElementTree as ET
import numpy as np
from .codestream import Codestream
from .core import _approximation_display
from .core import _colorspace_map_display
from .core import _color_type_map_display
from .core import _method_display
from .core import _reader_requirements_display
from .core import ENUMERATED_COLORSPACE
from .core import ENUMERATED_COLORSPACE, RESTRICTED_ICC_PROFILE
from .core import ANY_ICC_PROFILE, VENDOR_COLOR_METHOD
_METHOD_DISPLAY = {
ENUMERATED_COLORSPACE: 'enumerated colorspace',
RESTRICTED_ICC_PROFILE: 'restricted ICC profile',
ANY_ICC_PROFILE: 'any ICC profile',
VENDOR_COLOR_METHOD: 'vendor color method'}
_ = {1: 'accurately represents correct colorspace definition',
2: 'approximates correct colorspace definition, exceptional quality',
3: 'approximates correct colorspace definition, reasonable quality',
4: 'approximates correct colorspace definition, poor quality'}
_approximation_display = _
class Jp2kBox(object):
@ -189,7 +200,7 @@ class ColourSpecificationBox(Jp2kBox):
def __str__(self):
msg = Jp2kBox.__str__(self)
msg += '\n Method: {0}'.format(_method_display[self.method])
msg += '\n Method: {0}'.format(_METHOD_DISPLAY[self.method])
msg += '\n Precedence: {0}'.format(self.precedence)
if self.approximation is not 0:

View file

@ -21,7 +21,7 @@ import numpy as np
from .codestream import Codestream
from .core import SRGB
from .core import GREYSCALE
from .core import progression_order
from .core import PROGRESSION_ORDER
from .jp2box import Jp2kBox
from .jp2box import JPEG2000SignatureBox
from .jp2box import FileTypeBox
@ -286,7 +286,7 @@ class Jp2k(Jp2kBox):
if prog is not None:
prog = prog.upper()
cparams.prog_order = progression_order[prog]
cparams.prog_order = PROGRESSION_ORDER[prog]
if psnr is not None:
cparams.tcp_numlayers = len(psnr)
@ -475,9 +475,11 @@ class Jp2k(Jp2kBox):
raise IOError(msg)
# jp2c must be preceeded by jp2h
jp2h_lst = [idx for (idx, box) in enumerate(boxes) if box.box_id == 'jp2h']
jp2h_lst = [idx for (idx, box) in enumerate(boxes)
if box.box_id == 'jp2h']
jp2h_idx = jp2h_lst[0]
jp2c_lst = [idx for (idx, box) in enumerate(boxes) if box.box_id == 'jp2c']
jp2c_lst = [idx for (idx, box) in enumerate(boxes)
if box.box_id == 'jp2c']
if len(jp2c_lst) == 0:
msg = "A codestream box must be defined in the outermost "
msg += "list of boxes."
@ -496,7 +498,8 @@ class Jp2k(Jp2kBox):
raise IOError(msg)
# colr must be present in jp2 header box.
colr_lst = [j for (j, box) in enumerate(jp2h.box) if box.box_id == 'colr']
colr_lst = [j for (j, box) in enumerate(jp2h.box)
if box.box_id == 'colr']
if len(colr_lst) == 0:
msg = "The jp2 header box must contain a color definition box."
raise IOError(msg)
@ -509,7 +512,8 @@ class Jp2k(Jp2kBox):
msg += "following the image header."
raise IOError(msg)
cdef_lst = [j for (j, box) in enumerate(jp2h.box) if box.box_id == 'cdef']
cdef_lst = [j for (j, box) in enumerate(jp2h.box)
if box.box_id == 'cdef']
if len(cdef_lst) > 1:
msg = "Only one channel definition box is allowed in the "
msg += "JP2 header."
@ -717,7 +721,8 @@ class Jp2k(Jp2kBox):
with warnings.catch_warnings():
warnings.simplefilter("ignore")
nelts = nrows * ncols
band = np.ctypeslib.as_array((ctypes.c_int32 * nelts).from_address(addr))
band = np.ctypeslib.as_array(
(ctypes.c_int32 * nelts).from_address(addr))
data[:, :, k] = np.reshape(band.astype(dtype),
(nrows, ncols))

View file

@ -4035,7 +4035,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 1)
self.assertEqual(jp2.box[3].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[3].box[1].precedence, 0)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact ??
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
@ -4077,7 +4078,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact??
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
@ -4123,7 +4125,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
@ -4169,7 +4172,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact?
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.GREYSCALE)
@ -4211,7 +4215,7 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 2) # enumerated
self.assertEqual(jp2.box[3].box[1].method, glymur.core.RESTRICTED_ICC_PROFILE) # enumerated
self.assertEqual(jp2.box[3].box[1].precedence, 0)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[3].box[1].icc_profile['Size'], 546)
@ -4219,7 +4223,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[2].method, 1) # enumerated
self.assertEqual(jp2.box[3].box[2].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[3].box[2].precedence, 1)
self.assertEqual(jp2.box[3].box[2].approximation, 1) # JPX exact
self.assertIsNone(jp2.box[3].box[2].icc_profile)
@ -4257,7 +4262,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact
self.assertIsNone(jp2.box[2].box[1].icc_profile)
@ -4306,7 +4312,7 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 2)
self.assertEqual(jp2.box[3].box[1].method, glymur.core.RESTRICTED_ICC_PROFILE)
self.assertEqual(jp2.box[3].box[1].precedence, 0)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[3].box[1].icc_profile['Size'], 13332)
@ -4314,7 +4320,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[2].method, 1) # enumerated cspace
self.assertEqual(jp2.box[3].box[2].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[3].box[2].precedence, 1)
self.assertEqual(jp2.box[3].box[2].approximation, 1) # JPX exact
self.assertIsNone(jp2.box[3].box[2].icc_profile)
@ -4355,7 +4362,7 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 2) # enumerated
self.assertEqual(jp2.box[2].box[1].method, glymur.core.RESTRICTED_ICC_PROFILE) # enumerated
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[2].box[1].icc_profile['Size'], 414)
@ -4427,7 +4434,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[3].method, 1)
self.assertEqual(jp2.box[2].box[3].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[3].precedence, 0)
self.assertEqual(jp2.box[2].box[3].approximation, 1) # JPX exact
self.assertIsNone(jp2.box[2].box[3].icc_profile)
@ -5904,7 +5912,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0) # not allowed?
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB)
@ -6037,7 +6046,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB)
@ -6165,7 +6175,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
@ -6305,7 +6316,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 1) # enumerated
self.assertEqual(jp2.box[3].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[3].box[1].precedence, 2)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # exact
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
@ -6416,7 +6428,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0)
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB)
@ -6516,7 +6529,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 1) # ICC
self.assertEqual(jp2.box[3].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[3].box[1].precedence, 2)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
@ -6613,7 +6627,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.GREYSCALE)
@ -6732,7 +6747,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 1) # enumerated
self.assertEqual(jp2.box[3].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[3].box[1].precedence, 2)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.CMYK)
@ -6846,7 +6862,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 1) # enumerated
self.assertEqual(jp2.box[3].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[3].box[1].precedence, 2)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
@ -6954,7 +6971,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 1)
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.ENUMERATED_COLORSPACE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
@ -7061,7 +7079,7 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 2) # res icc
self.assertEqual(jp2.box[2].box[1].method, glymur.core.RESTRICTED_ICC_PROFILE) # res icc
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
self.assertIsNone(jp2.box[2].box[1].icc_profile)
@ -7160,7 +7178,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[2].box[1].method, 2) # restricted icc
self.assertEqual(jp2.box[2].box[1].method,
glymur.core.RESTRICTED_ICC_PROFILE)
self.assertEqual(jp2.box[2].box[1].precedence, 0)
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
self.assertIsNone(jp2.box[2].box[1].icc_profile)
@ -7262,7 +7281,8 @@ class TestSuiteDump(unittest.TestCase):
# Jp2 Header
# Colour specification
self.assertEqual(jp2.box[3].box[1].method, 3) # any icc
self.assertEqual(jp2.box[3].box[1].method,
glymur.core.ANY_ICC_PROFILE)
self.assertEqual(jp2.box[3].box[1].precedence, 2)
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
self.assertEqual(jp2.box[3].box[1].icc_profile['Size'], 1328)