housecleaning for 0.7.0 release
Add testing mention of CentOS, windows. Skipping some tests on versions 1.3 and 1.4 Minor doc mods. For whatever stupid reason, np.log2(x) cannot be relied upon to be an integer when x is a power of 2 ON WIN32!!! All hail win32! Better error message if array-style slice other than [:]
This commit is contained in:
parent
64fa597b18
commit
0e2aa4492c
15 changed files with 92 additions and 35 deletions
|
|
@ -772,7 +772,7 @@ class Jp2k(Jp2kBox):
|
|||
# Should have a slice object where start = stop = step = None
|
||||
self.write(data)
|
||||
else:
|
||||
msg = "Images currently must be written entirely at once."
|
||||
msg = "Partial write operations are currently not allowed."
|
||||
raise TypeError(msg)
|
||||
|
||||
def __getitem__(self, pargs):
|
||||
|
|
@ -832,9 +832,11 @@ class Jp2k(Jp2kBox):
|
|||
# one of them.
|
||||
step = rows_step
|
||||
|
||||
if np.log2(step) != np.floor(np.log2(step)):
|
||||
# Check if the step size is a power of 2.
|
||||
if np.abs(np.log2(step) - np.round(np.log2(step))) > 1e-6:
|
||||
msg = "Row and column strides must be powers of 2."
|
||||
raise IndexError(msg)
|
||||
rlevel = np.int(np.round(np.log2(step)))
|
||||
|
||||
if rows.start is None:
|
||||
rows_start = 0
|
||||
|
|
@ -857,7 +859,7 @@ class Jp2k(Jp2kBox):
|
|||
cols_stop = cols.stop
|
||||
|
||||
area = (rows_start, cols_start, rows_stop, cols_stop)
|
||||
data = self.read(area=area, rlevel=np.int(np.log2(step)))
|
||||
data = self.read(area=area, rlevel=rlevel)
|
||||
if len(pargs) == 2:
|
||||
return data
|
||||
|
||||
|
|
@ -873,7 +875,7 @@ class Jp2k(Jp2kBox):
|
|||
rlevel : int, optional
|
||||
Factor by which to rlevel output resolution. Use -1 to get the
|
||||
lowest resolution thumbnail. This is the only keyword option
|
||||
available to use when only the OpenJPEG version 1.5.1 is present.
|
||||
available to use when the OpenJPEG version is 1.5 or earlier.
|
||||
layer : int, optional
|
||||
Number of quality layer to decode.
|
||||
area : tuple, optional
|
||||
|
|
|
|||
|
|
@ -23,7 +23,8 @@ if sys.hexversion < 0x03000000:
|
|||
WARNING_INFRASTRUCTURE_MSG = "3.x warning infrastructure only"
|
||||
elif re.match('1.[0-6]', six.__version__) is not None:
|
||||
WARNING_INFRASTRUCTURE_ISSUE = True
|
||||
WARNING_INFRASTRUCTURE_MSG = "Cannot use with this version of six"
|
||||
msg = "Cannot run test with version {0} of python-six"
|
||||
WARNING_INFRASTRUCTURE_MSG = msg.format(six.__version__)
|
||||
|
||||
class MetadataBase(unittest.TestCase):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ class TestSuite(unittest.TestCase):
|
|||
Jp2k(self.jp2file)
|
||||
|
||||
@unittest.skipIf(WARNING_INFRASTRUCTURE_ISSUE, WARNING_INFRASTRUCTURE_MSG)
|
||||
@unittest.skipIf(os.name == "nt", 'named temporary file issue on windows')
|
||||
def test_xdg_env_config_file_is_bad(self):
|
||||
"""A non-existant library location should be rejected."""
|
||||
with tempfile.TemporaryDirectory() as tdir:
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import pkg_resources
|
|||
|
||||
import glymur
|
||||
from glymur import Jp2k
|
||||
from glymur.version import openjpeg_version
|
||||
|
||||
from .fixtures import HAS_PYTHON_XMP_TOOLKIT
|
||||
from .fixtures import WARNING_INFRASTRUCTURE_ISSUE, WARNING_INFRASTRUCTURE_MSG
|
||||
|
|
@ -441,8 +442,9 @@ class TestJp2k(unittest.TestCase):
|
|||
actdata = j2.read()
|
||||
self.assertTrue(fixtures.mse(actdata[0], expdata[0]) < 0.38)
|
||||
|
||||
@unittest.skipIf(re.match('1.5.(1|2)',
|
||||
glymur.version.openjpeg_version) is not None,
|
||||
@unittest.skipIf(re.match('1.[0-4]', openjpeg_version) is not None,
|
||||
"Not supported with OpenJPEG {0}".format(openjpeg_version))
|
||||
@unittest.skipIf(re.match('1.5.(1|2)', openjpeg_version) is not None,
|
||||
"Mysteriously fails in 1.5.1 and 1.5.2")
|
||||
def test_no_cxform_pclr_jpx(self):
|
||||
"""Indices for pclr jpxfile if no color transform"""
|
||||
|
|
@ -772,6 +774,8 @@ class TestJp2k(unittest.TestCase):
|
|||
self.assertEqual(data.shape, (1024, 1024, 3))
|
||||
|
||||
|
||||
@unittest.skipIf(re.match('1.[0-4]', openjpeg_version) is not None,
|
||||
"Not supported with OpenJPEG {0}".format(openjpeg_version))
|
||||
@unittest.skipIf(os.name == "nt", "NamedTemporaryFile issue on windows")
|
||||
class TestJp2k_write(unittest.TestCase):
|
||||
"""Write tests, can be run by versions 1.5+"""
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ from . import fixtures
|
|||
import glymur
|
||||
from glymur import Jp2k
|
||||
from glymur.codestream import SIZsegment
|
||||
from glymur.version import openjpeg_version
|
||||
|
||||
class CinemaBase(fixtures.MetadataBase):
|
||||
|
||||
|
|
@ -218,6 +219,8 @@ class TestSuiteNegative2pointzero(unittest.TestCase):
|
|||
j.write(data, cinema2k=48)
|
||||
|
||||
|
||||
@unittest.skipIf(re.match(r'''1.[0-4]''', openjpeg_version) is not None,
|
||||
"Writing not supported until OpenJPEG 1.5")
|
||||
@unittest.skipIf(os.name == "nt", "no write support on windows, period")
|
||||
@unittest.skipIf(NO_READ_BACKEND, NO_READ_BACKEND_MSG)
|
||||
@unittest.skipIf(OPJ_DATA_ROOT is None,
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ from .lib import openjp2 as opj2
|
|||
|
||||
# Do not change the format of this next line! Doing so risks breaking
|
||||
# setup.py
|
||||
version = "0.6.0"
|
||||
version = "0.7.0rc1"
|
||||
_sv = LooseVersion(version)
|
||||
version_tuple = _sv.version
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue