Browse Source

Merge pull request #104 from jimrybarski/103-single-image

resolves #103: ND2s with a single image could not be parsed properly …
zolfa-add_slices_loading
Jim Rybarski 9 years ago
parent
commit
1e22e12fee
5 changed files with 60 additions and 4 deletions
  1. +4
    -0
      CHANGELOG.md
  2. +2
    -1
      ftests.py
  3. +51
    -0
      functional_tests/single.py
  4. +2
    -2
      nd2reader/parser/v3.py
  5. +1
    -1
      setup.py

+ 4
- 0
CHANGELOG.md View File

@ -1,3 +1,7 @@
## [1.1.3] - 2015-10-16
### FIXED
- ND2s with a single image can now be parsed
## [1.1.2] - 2015-10-09 ## [1.1.2] - 2015-10-09
### ADDED ### ADDED
- `Image` objects now have a `frame_number` attribute. - `Image` objects now have a `frame_number` attribute.


+ 2
- 1
ftests.py View File

@ -1,5 +1,6 @@
import unittest import unittest
from functional_tests.FYLM141111001 import FunctionalTests
from functional_tests.FYLM141111001 import FunctionalTests as FYLM141111Tests
from functional_tests.single import FunctionalTests as SingleTests
if __name__ == '__main__': if __name__ == '__main__':


+ 51
- 0
functional_tests/single.py View File

@ -0,0 +1,51 @@
"""
These tests require that you have a specific ND2 file created by the developer of nd2reader. You will never need to
run them unless you're Jim Rybarski.
"""
from nd2reader import Nd2
from datetime import datetime
import unittest
class FunctionalTests(unittest.TestCase):
def setUp(self):
self.nd2 = Nd2("/var/nd2s/single.nd2")
def tearDown(self):
self.nd2.close()
def test_shape(self):
self.assertEqual(self.nd2.height, 512)
self.assertEqual(self.nd2.width, 512)
def test_date(self):
self.assertEqual(self.nd2.date, datetime(2015, 10, 15, 9, 33, 5))
def test_length(self):
self.assertEqual(len(self.nd2), 1)
def test_frames(self):
self.assertEqual(len(self.nd2.frames), 1)
def test_fovs(self):
self.assertEqual(len(self.nd2.fields_of_view), 1)
def test_z_levels(self):
self.assertTupleEqual(tuple(self.nd2.z_levels), (0,))
def test_image(self):
image = self.nd2[0]
self.assertIsNotNone(image)
def test_iteration(self):
images = [image for image in self.nd2]
self.assertEqual(len(images), 1)
def test_iteration_step(self):
images = [image for image in self.nd2[::2]]
self.assertEqual(len(images), 1)
def test_iteration_backwards(self):
images = [image for image in self.nd2[::-1]]
self.assertEqual(len(images), 1)

+ 2
- 2
nd2reader/parser/v3.py View File

@ -148,13 +148,13 @@ class V3Parser(BaseParser):
metadata = line metadata = line
break break
else: else:
raise ValueError("Could not parse metadata dimensions!")
return six.b("")
for line in metadata.split(six.b("\r\n")): for line in metadata.split(six.b("\r\n")):
if line.startswith(six.b("Dimensions:")): if line.startswith(six.b("Dimensions:")):
dimension_text = line dimension_text = line
break break
else: else:
raise ValueError("Could not parse metadata dimensions!")
return six.b("")
return dimension_text return dimension_text
def _parse_dimension(self, pattern, metadata_dict): def _parse_dimension(self, pattern, metadata_dict):


+ 1
- 1
setup.py View File

@ -1,6 +1,6 @@
from setuptools import setup from setuptools import setup
VERSION = "1.1.2"
VERSION = "1.1.3"
setup( setup(
name="nd2reader", name="nd2reader",


Loading…
Cancel
Save