85f409c | Joost van Griethuysen | 17 March 2017, 20:54:39 UTC | Merge pull request #216 from JoostJM/update-documentation-structure Update Documentation | 17 March 2017, 20:54:39 UTC |
7b9b664 | Joost van Griethuysen | 17 March 2017, 18:17:25 UTC | DOCS: Add formula for Elongation and Flatness Add formulas and reference to these features, implemented in SimpleITK Additionally, apply various style changes in the documentation and add FAQ question (flat region / strange values). | 17 March 2017, 20:53:50 UTC |
ab1b66e | Daniel Blezek | 17 March 2017, 20:42:45 UTC | Notebook includes two new examples, hushed cache warning from pip | 17 March 2017, 20:42:45 UTC |
526a578 | Joost van Griethuysen | 16 March 2017, 09:13:33 UTC | DOCS: Rename GLSZM features Rename GLSZM features to be more consistent with those in GLRLM. Additionally, clarify the interpretation of some features in GLRLM and GLSZM (especially zone/run percentage). Finally, implement note and warning boxes where applicable (replaces bold printed text). Correct some typos in GLCM documentation. | 16 March 2017, 11:41:12 UTC |
c7b6084 | Joost van Griethuysen | 15 March 2017, 18:33:33 UTC | DOCS: Add Frequently Asked Questions section | 16 March 2017, 09:13:04 UTC |
3645041 | Joost van Griethuysen | 15 March 2017, 14:27:18 UTC | DOCS: Add Developers section Restructure home page, add links to feature classes and filters here as well. Add documentation on how to implement new feature classes, features and filters (Addresses #96). Add Home button in side bar to navigate back to the welcome page. Add documentation for the abstract base class from which feature classes are inherited. Update conf.py to use the actual PyRadiomics version. | 16 March 2017, 07:30:32 UTC |
d14e406 | Joost van Griethuysen | 13 March 2017, 13:47:56 UTC | STYL: Remove usage of `eval` Replace calls to `eval` with calls to `getatrr`, as this is a more secure alternative. | 16 March 2017, 07:30:32 UTC |
268509d | Joost van Griethuysen | 13 March 2017, 13:23:24 UTC | STYL: Define default settings in separate function Default setting for extraction are needed at initialization or when a parameter file is loaded. To prevent bugs due to inconsistencies in default settings defined at these locations, define the default settings in a separate function which is called when appropriate. Declare this function as a class method to enable easy usage outside the feature extractor module (e.g. when using feature classes directly). N.B. Feature class specific settings and filter specific settings are NOT included here. These are defined in the feature classes and in `imageoperations`, respectively. | 16 March 2017, 07:30:32 UTC |
1a0bfb2 | Joost van Griethuysen | 13 March 2017, 09:28:06 UTC | STYL: Correct formula for Logarithm filter | 16 March 2017, 07:30:32 UTC |
feba8d3 | Joost van Griethuysen | 13 March 2017, 09:05:34 UTC | STYL: Update README and index of documentation Add links to PyRadiomics license and requirements file in documentation. Update license to include 'open source'. Add 'six' to 3rd party packages. | 16 March 2017, 07:30:32 UTC |
e9ae69b | Joost van Griethuysen | 07 March 2017, 15:15:31 UTC | STYL: Further update documentation structure Add brief introduction of feature classes in Radiomic Features section and brief introduction in the Pipeline Modules section. | 16 March 2017, 07:30:32 UTC |
4831f3c | Joost van Griethuysen | 06 March 2017, 17:03:02 UTC | STYL: Update Documentation Features classes are documented in separate section ("Feature Definitions"). Also, add links to corresponding sections in the index file. Finally, rename headers and order of documentation to better reflect PyRadiomics structure. | 16 March 2017, 07:30:32 UTC |
a5b4135 | Joost van Griethuysen | 14 March 2017, 17:32:40 UTC | Merge pull request #218 from JoostJM/revise-compactness Revise Compactness 1 Formulas | 14 March 2017, 17:32:40 UTC |
ca91c8d | Joost van Griethuysen | 14 March 2017, 08:58:43 UTC | Merge pull request #214 from JoostJM/python-3-compatibility Further improve python 3 compatibility. | 14 March 2017, 08:58:43 UTC |
65bd7a5 | Daniel Blezek | 14 March 2017, 02:23:44 UTC | Set verbose to False | 14 March 2017, 02:23:44 UTC |
411eb1d | Daniel Blezek | 11 March 2017, 13:12:56 UTC | Add Ubuntu Docker and updated documentation | 11 March 2017, 13:12:56 UTC |
9c8bd0b | Daniel Blezek | 11 March 2017, 13:06:11 UTC | Removed unneeded Docker build steps | 11 March 2017, 13:06:11 UTC |
e70873e | Daniel Blezek | 11 March 2017, 12:42:39 UTC | Updated README.md to reflect two Dockers | 11 March 2017, 12:42:39 UTC |
58bbb7b | Daniel Blezek | 11 March 2017, 12:38:11 UTC | Merge branch 'datascience-docker' into add-docker * datascience-docker: Rename Dockerfile to Dockerfile.notebook in prep for merging with Docker PR Docker for PyRadiomics based on a Jupyter notebook STYLE: fix syntax ENH: check if feature class name is valid STYL: Remove unused variable BUG: Fix pyradiomicsbatch error when using python 3 BUG: Fix error when image or mask is not loaded correctly | 11 March 2017, 12:38:11 UTC |
4b62da5 | Daniel Blezek | 11 March 2017, 12:36:03 UTC | Rename Dockerfile to Dockerfile.notebook in prep for merging with Docker PR | 11 March 2017, 12:36:03 UTC |
0d39b3e | Daniel Blezek | 10 March 2017, 21:38:03 UTC | Docker for PyRadiomics based on a Jupyter notebook A PyRadiomics Docker based on Jupyter notebook Dockers (https://github.com/jupyter/docker-stacks), specifically jupyter/datascience-notebook located here: https://github.com/jupyter/docker-stacks/tree/master/datascience-notebook The Docker exposes the /data volume. The work directory, where the Jupyter notebook starts, has a symlink to /data, making the host directory easily accessable. | 10 March 2017, 21:38:03 UTC |
ac234d0 | Joost van Griethuysen | 09 March 2017, 13:57:55 UTC | TEST: Update baseline Update baseline to reflect change in Compactness 1 formula and the removal of the Roundness feature. | 09 March 2017, 13:57:55 UTC |
7290f88 | Joost van Griethuysen | 09 March 2017, 13:37:35 UTC | DEL: Remove Roundness Feature Remove the Roundness Feature, as this expresses the same formula as Sphericity, but is calculated by Simple ITK's LabelShapeStatisticsImageFilter (LSSIF). It is documented here: http://www.insight-journal.org/browse/publication/176. The calculated values differ however, but this is due to the fact that SimpleITK calculates the surface area differently. The surface area calculated by SimpleITK can be found by calling LSSIF.GetPerimeter(). Calculation of Roundness and Surface Area is not done using SimpleITK, as the calculated surface area can be smaller than the surface area of a sphere with the same volume as the ROI (and therefore causes Roundness > 1). Example in lung1 testcase: * SA (pyradiomics) 782.24 * SA (SimpleITK) 576.06 * SA of a sphere with volume 1361.20: 593.97 | 09 March 2017, 13:45:30 UTC |
dd7e831 | Joost van Griethuysen | 08 March 2017, 17:29:05 UTC | MATH: Revise Compactness 1 Flip exponent (2/3 -> 3/2) of Compactness 1 feature formula. The previous exponent was most likely an error, as this resulted in a formula that was not dimensionless, as the description indicates. The formula with the new exponent is dimensionless. Compactness1, Compactness2, Sphericity and Spherical disproportion are mathematically correlated. Update the documentation to reflect this (provide equations specifying the correlation between the different features). Also disable Compactness 1 and Compactness 2 in the default/example parameter file in the bin folder to emphasize the redundancy of these features. Updated the formulas and documentation thereof to have simplified formulas where possible. | 09 March 2017, 13:30:23 UTC |
22baea7 | Joost van Griethuysen | 06 March 2017, 15:45:32 UTC | Merge pull request #213 from fedorov/add-feature-class-check ENH: check if feature class name is valid | 06 March 2017, 15:45:32 UTC |
0db5834 | Andrey Fedorov | 06 March 2017, 14:32:24 UTC | STYLE: fix syntax | 06 March 2017, 14:33:19 UTC |
773cbad | Andrey Fedorov | 02 March 2017, 23:14:08 UTC | ENH: check if feature class name is valid | 06 March 2017, 14:33:19 UTC |
79a84e9 | Joost van Griethuysen | 06 March 2017, 08:52:31 UTC | STYL: Remove unused variable Remove `self.provenance_on` from `featureextractor`, as this is now stored in `kwargs` (changed as of PR #190). | 06 March 2017, 08:52:31 UTC |
84dce48 | Joost van Griethuysen | 06 March 2017, 08:15:43 UTC | Merge pull request #211 from JoostJM/load-image-bug BUG: Fix error when mask is passed as SimpleITK image | 06 March 2017, 08:15:43 UTC |
80e817c | Joost van Griethuysen | 06 March 2017, 08:15:14 UTC | Merge pull request #210 from JoaoSantinha/pyradiomics-batch-python3 Fix pyradiomicsbatch error with python 3 | 06 March 2017, 08:15:14 UTC |
fd61a80 | Joost van Griethuysen | 04 March 2017, 15:47:25 UTC | STYL: Improve python 3 compatibility. In some scripts, code was not python 3 compatible. This was mainly due to a call to keys(), which in python 2 returns a list, but in python 3 returns an iterator. | 04 March 2017, 15:47:36 UTC |
fd1c44b | Andrey Fedorov | 17 February 2017, 15:44:30 UTC | ENH: fix maintainer | 23 February 2017, 14:23:12 UTC |
9de1169 | Andrey Fedorov | 15 February 2017, 19:55:35 UTC | ENH: add initial Dockerfile | 23 February 2017, 14:23:12 UTC |
74ffdf9 | jaasantinha | 23 February 2017, 09:58:39 UTC | BUG: Fix pyradiomicsbatch error when using python 3 in python 3.x (at least 3.4) featureVector.keys() and featureVector.values() don’t return a sequence expected in writer.writerow() causing the error: writer.writerow(featureVector.keys()) _csv.Error: sequence expected | 23 February 2017, 09:58:39 UTC |
cf98a1f | Joost van Griethuysen | 23 February 2017, 08:26:56 UTC | BUG: Fix error when image or mask is not loaded correctly When segmentation is passed as a SimpleITK image, as the second check erroneously checks the imageFilePath instead of the maskFilePath for being an SimpleITK Image. Addtionally, add some checks to ensure image and mask are loaded before attempting to process further. | 23 February 2017, 08:33:05 UTC |
08a3365 | Joost van Griethuysen | 22 February 2017, 21:40:49 UTC | Merge pull request #207 from JoostJM/Update-README Update readme | 22 February 2017, 21:40:49 UTC |
ace3663 | Joost van Griethuysen | 22 February 2017, 21:40:29 UTC | Merge pull request #209 from JoostJM/add-normalize-function Implement normalization function in imageoperations | 22 February 2017, 21:40:29 UTC |
1b951cf | Joost van Griethuysen | 21 February 2017, 08:27:06 UTC | STYL: Update version to 1.1.0 Reflects the large changes including the addition of C extensions and python 3 compatibility. | 22 February 2017, 16:36:36 UTC |
428e29b | Joost van Griethuysen | 22 February 2017, 16:19:51 UTC | ENH: If enabled, remove outliers after resampling If `removeOutliers` is set to a float value > 0, outliers (values differing more than n*(standard deviation) from the mean) are set to the outlier value, and n is equal to the value of this parameter. If set to None, no outliers are removed. This is done after image is normalized (i.e. the outliers contribute to the calculation of the mean and standard deviation), but before the scale is applied (i.e. the range of the entire image is between -n*scale and n*scale). | 22 February 2017, 16:27:09 UTC |
03893cc | Joost van Griethuysen | 21 February 2017, 09:34:39 UTC | ADD: Implement normalization function in imageoperations Optionally normalize gray value intensities before any resampling or filters are applied. Image is normalized on all gray values (not just those in the ROI). Disabled by default. Controlled by 3 new params (`normalize`, `normalizeScale` and `removeOutliers`). Additionally, apply a fix to the docstring indentation in `getWaveletImage()`. | 22 February 2017, 08:37:14 UTC |
e5ad8f8 | Joost van Griethuysen | 21 February 2017, 08:18:31 UTC | Merge pull request #205 from haarburger/fix-RIF-dtype fixed python3 incompatibility when callingsitk.ResampleImageFilter.Se… | 21 February 2017, 08:18:31 UTC |
6bab8ca | Joost van Griethuysen | 21 February 2017, 08:07:09 UTC | STYL: Add `six` import statement in the usage documentation In the interactive use example and in the example for direct usage of feature classes six is used for python 3 compatibility. However, in the necessary import statements, `import six` was not yet added. Addresses #208 | 21 February 2017, 08:08:25 UTC |
8092f8a | Joost van Griethuysen | 20 February 2017, 09:18:42 UTC | BUG: Fix small errors due to changes for python 3 compatibility Some automatic changes to make the notebooks python 3 compatible failed (e.g. closing bracket for print function in comment). Rerun all python notebooks to update default output. Additionally, also fix some small bugs due to the different implementation of the various possible filters (which changes the function names and capitalization of filter names as they are provided in `featureextractor.enabledInputImages`). | 20 February 2017, 09:20:19 UTC |
82d67e5 | Joost van Griethuysen | 20 February 2017, 09:15:09 UTC | STYL: Update Readme Update ReadMe and documentation to reflect recent changes (new version number, integrate C extensions, Python 3 compatibility). | 20 February 2017, 09:20:19 UTC |
815a4d6 | haarburger | 20 February 2017, 09:02:26 UTC | Merge branch 'master' into fix-RIF-dtype | 20 February 2017, 09:02:26 UTC |
9f3efd9 | Joost van Griethuysen | 20 February 2017, 08:35:06 UTC | Merge pull request #202 from Radiomics/c-matrices_revised-jcfr-20170216 C matrices revised jcfr 20170216 | 20 February 2017, 08:35:06 UTC |
ae66854 | Christoph Haarburger | 17 February 2017, 14:54:56 UTC | fixed python3 incompatibility when callingsitk.ResampleImageFilter.SetSize() | 17 February 2017, 14:54:56 UTC |
c00bfe2 | Joost van Griethuysen | 16 February 2017, 11:18:16 UTC | STYL: Parameterize enabling of C extensions Add a new parameter ('enableCExtensions') to the settings that can be specified in the parameter file or via `kwargs` at initialization of `featureextractor`. Add this parameter also to the parameter file schema. Apply this upon execute, as nothing happens if setting is not changed, but is checked regularly. Finally, fix a small bug, where a incorrect warning is logged when `enableCExtensions` is called when extensions are already enabled. In this case, nothing should happen. | 16 February 2017, 11:18:16 UTC |
3a79fc0 | Jean-Christophe Fillion-Robin | 16 February 2017, 06:08:46 UTC | ENH: Update C-extension to use new initialization method with python 3 Python 3 has a revamped extension module initialization system. (See PEP 3121.)" See https://docs.python.org/3/howto/cporting.html#cporting-howto (cherry picked from commit 40d92c0) | 16 February 2017, 09:16:07 UTC |
eaecb51 | Jean-Christophe Fillion-Robin | 15 February 2017, 22:51:48 UTC | BUG: Update MANIFEST.in to include files required in the source distribution Source distribution is generation using: python setup.py sdist For reference: https://docs.python.org/2/distutils/sourcedist.html#commands (cherry picked from commit c237fc0) | 16 February 2017, 09:16:07 UTC |
767f241 | Joost van Griethuysen | 15 February 2017, 13:24:04 UTC | ENH: Add testing for C extensions Testing compares matrices calculated by python algorithms to those calculated by the C extension. Tests the calculation of surface area in a similar manner. Testing fails if C extension is not available or if any element in the matrix differs more than 1e-3 from the corresponding element in the other matrix. | 16 February 2017, 09:15:51 UTC |
72a16ca | Joost van Griethuysen | 15 February 2017, 13:21:13 UTC | ENH: Use `calloc` and `free` for temporary data in `calculate_glszm` Instantiate temporary data array directly in C, without first creating and then deleting a numpy array. | 16 February 2017, 09:15:44 UTC |
ebbc054 | Joost van Griethuysen | 15 February 2017, 11:19:24 UTC | ENH: Implement extension in C for calculation of surface area. Affects shape class. Loading, enabling and disabling is done similarly to the `cmatrices` extension. | 16 February 2017, 09:15:38 UTC |
fc84120 | Joost van Griethuysen | 15 February 2017, 10:09:59 UTC | ENH: Implement extension in C for calculation of texture matrices. Affects GLCM, GLRLM and GLSZM calculation. On initialization, extension is loaded and enabled by default. If an error occurs, a warning is logged and matrices will be calculated in full-python mode. Alternatively, full-python mode can be forced by a call to `radiomics.enableCExtensions(False)`. Added `requirements-setup.txt` to specify dependencies needed during setup (requires numpy and cython) | 16 February 2017, 09:14:47 UTC |
cc78841 | Joost van Griethuysen | 15 February 2017, 18:31:39 UTC | Merge pull request #198 from JoostJM/relocate-getFeatureClasses Fix getFeatureClasses() in schemaFuncs.py | 15 February 2017, 18:31:39 UTC |
b598807 | Joost van Griethuysen | 15 February 2017, 13:32:39 UTC | BUG: Fix `getFeatureClasses` in `schemaFuncs.py` `schemaFuncs.py` reflected the old implementation of `getFeatureClasses`, where it was implemented in `featureextractor`. As of 4771963, `getFeatureClasses` is implemented directly in the radiomics namespace. Update `schemaFuncs.py` accordingly. | 15 February 2017, 16:36:08 UTC |
5739468 | Joost van Griethuysen | 15 February 2017, 16:35:17 UTC | Merge pull request #197 from Radiomics/improve-test-outputs-follow-up STYL: testUtils: Restore header sorting in test output | 15 February 2017, 16:35:17 UTC |
27ba946 | Jean-Christophe Fillion-Robin | 15 February 2017, 16:34:08 UTC | Merge pull request #199 from Radiomics/unlink-venv-only-when-needed ci: circleci: Do not fail if venv symlink is nonexistent | 15 February 2017, 16:34:08 UTC |
cdeac9f | Joost van Griethuysen | 15 February 2017, 15:41:05 UTC | STYL: Remove unneeded `csvFile.clos()` Not needed as `cvsFile` is used in a `with` construction. | 15 February 2017, 15:41:05 UTC |
0c839bf | Jean-Christophe Fillion-Robin | 15 February 2017, 15:37:17 UTC | ci: circleci: Do not fail if venv symlink is nonexistent This commit improves the fix originally introduced in de8ee88 (ci: manylinux: Avoid sdist failure with workaround for distutils/setuptools issue) Reported-by: Joost van Griethuysen <j.v.griethuysen@nki.nl> | 15 February 2017, 15:37:17 UTC |
b2caace | Joost van Griethuysen | 15 February 2017, 08:00:58 UTC | STYL: Use `with` construction for csv file write in `testUtils` | 15 February 2017, 08:00:58 UTC |
7d43968 | Joost van Griethuysen | 14 February 2017, 16:09:16 UTC | STYL: testUtils: Update output to result and diff files Only write output for test cases that were indeed run during testing. Read headers from the first such case. If no tests were run, don't do anything. | 15 February 2017, 07:53:00 UTC |
c5fd487 | Jean-Christophe Fillion-Robin | 14 February 2017, 15:50:39 UTC | STYL: testUtils: Restore header sorting in test output This commit partially reverts commit d84c793 (STYL: testUtils: Improve test outputs) and restore the sorting of columns written into the CSV file. Considering that data are organized using "featureClassName + featureName" instead of just "featureName", information will remain consistently organized. Suggested-by: Joost van Griethuysen <j.v.griethuysen@nki.nl> | 15 February 2017, 07:51:33 UTC |
84dc727 | Jean-Christophe Fillion-Robin | 15 February 2017, 01:35:47 UTC | Merge pull request #196 from Radiomics/add-python3-support Add python3 support | 15 February 2017, 01:35:47 UTC |
de8ee88 | Jean-Christophe Fillion-Robin | 14 February 2017, 22:56:23 UTC | ci: manylinux: Avoid sdist failure with workaround for distutils/setuptools issue Since: (1) CircleCI automatically adds a symlink from /home/ubuntu/pyradiomics/venv to /home/ubuntu/virtualenvs/venv-system, (indeed it detects it is a python project) (2) the symlink is indeed invalid when "seen" from within the docker container building the project (because it mount the current folder into the dockcross/manylinux-x64 image), (3) distutils available in python 3.4.6 has an issue causing sdist to fail when it find an invalid symlink (http://bugs.python.org/issue12885) Setuptools is also failing to monkey patch for that version of python. A patch has been submitted upstream: https://github.com/pypa/setuptools/pull/971 To workaround the issue, we simply remove the symbolic link and avoid the problem completely. | 14 February 2017, 22:56:23 UTC |
41e4791 | Jean-Christophe Fillion-Robin | 14 February 2017, 16:53:55 UTC | STYL: Remove unused and obsolete radiomics.in_py3 variable Suggested-by: Joost van Griethuysen <j.v.griethuysen@nki.nl> | 14 February 2017, 16:53:55 UTC |
2a25157 | Jean-Christophe Fillion-Robin | 14 February 2017, 16:25:10 UTC | ci: Do not test for Python 3.3. Numpy packages are not available. If really needed, we could look into specifying some more complex requirements using Environment Markers [1] [1] https://www.python.org/dev/peps/pep-0496/ This commit avoids to get the following error: Collecting numpy>=1.9.2 (from -r requirements.txt (line 1)) Downloading numpy-1.12.0.zip (4.8MB) 100% |████████████████████████████████| 4.8MB 240kB/s Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-build-7w8sbj/numpy/setup.py", line 34, in <module> raise RuntimeError("Python version 2.7 or >= 3.4 required.") RuntimeError: Python version 2.7 or >= 3.4 required. Reported-by: Joost van Griethuysen <j.v.griethuysen@nki.nl> | 14 February 2017, 16:25:10 UTC |
346b4fc | Jean-Christophe Fillion-Robin | 14 February 2017, 14:26:28 UTC | ci: Enable py3 testing on Appveyor (Windows) and CircleCI (Linux) Since no MacOSX SimpleITK wheels for Python 3.x is available, corresponding Travis builds havn't been enabled. | 14 February 2017, 15:56:52 UTC |
9f9f9e3 | Joost van Griethuysen | 14 February 2017, 12:05:45 UTC | BUG: py3: Fix RadiomicsShape._getMaximum2Ddiameter Since in Python3, zip() statement returns an iterator, this commit use the list() statement to exhaust the iterator and initialize the numpy array. Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> | 14 February 2017, 15:56:52 UTC |
8a950d9 | Jean-Christophe Fillion-Robin | 14 February 2017, 11:46:54 UTC | BUG: py3: Update testUtils function to work with nose by casting to "str" Some functions expect string types (such as in nose-testing), but python 3.5 by default provides unicode strings. This commit casts where necessary. Also change csv.writer mode from 'wb' to 'w', which accepts regular strings. | 14 February 2017, 15:56:52 UTC |
13ba365 | Joost van Griethuysen | 14 February 2017, 11:42:47 UTC | BUG: py3: Fix iteration error in GLRLM In python 3.5 GLRLM results differed from baseline. This was due to the different implementation of the `filter()` function, which returns an iterator instead of a list. In GLRLM calculation, there where 2 iterations over this iter-object (one for flat-angle check, one for matrix calculation), causing it to break in python 3.5. Fix by merging the 2 iterations into one loop. Additionally, simplify the filter function. | 14 February 2017, 15:56:52 UTC |
a572427 | Joost van Griethuysen | 14 February 2017, 11:38:40 UTC | BUG: Fix use of updated SimpleITK ConstantPadImage and CropImage filters With newer versions of SimpleITK and python, a tuple or list is expected. Direcly passing a numpy array is not supported. This commit fixes error like the following: File "/home/jcfr/Projects/pyradiomics/radiomics/imageoperations.py", line 125, in cropToTumorMask cif.SetLowerBoundaryCropSize(ijkMinBounds) File "/home/jcfr/.virtualenvs/pyradiomics-py3/lib/python3.5/site-packages/SimpleITK/SimpleITK.py", line 21397, in SetLowerBoundaryCropSize return _SimpleITK.CropImageFilter_SetLowerBoundaryCropSize(self, LowerBoundaryCropSize) TypeError: in method 'CropImageFilter_SetLowerBoundaryCropSize', argument 2 of type 'std::vector< unsigned int,std::allocator< unsigned int > > const &' Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> | 14 February 2017, 15:56:52 UTC |
a1c2cc6 | Jean-Christophe Fillion-Robin | 14 February 2017, 10:36:42 UTC | BUG: py3: testUtils: Fix opening of baselineFile This commit fixes the following error reported when running the tests using python3: File "/home/jcfr/Projects/pyradiomics/tests/testUtils.py", line 184, in readBaselineFiles headers = six.next(csvReader) _csv.Error: iterator should return strings, not bytes (did you open the file in text mode?) | 14 February 2017, 15:56:52 UTC |
76fb4ee | Jean-Christophe Fillion-Robin | 14 February 2017, 14:12:30 UTC | ENH: py3: Convert output of dict.keys() from dict_keys to a list Update of the code was facilitated by the use of the 2to3 refactoring tool: $ 2to3 -f dict . # dry-un $ 2to3 -f dict -w . # recactor Updates where code was (1) iterating of the keys values or (2) getting the number of keys wasn't updates. Co-authored-by: Joost van Griethuysen <j.v.griethuysen@nki.nl> | 14 February 2017, 15:56:21 UTC |
a7a6d60 | Jean-Christophe Fillion-Robin | 14 February 2017, 10:29:31 UTC | STYL: py3: Use "print" function in notebooks and documentation. To facilitate the update of the notebooks, a convenient script named "fix_notebook_print.py" has been used. Then, import of print_function was manually added. $ ack "print " -l bin/Notebooks/helloRadiomics.ipynb bin/Notebooks/helloFeatureClass.ipynb bin/Notebooks/PyRadiomics Example.ipynb $ /tmp/fix_ipython_notebook_print.py ./bin/Notebooks/helloRadiomics.ipynb bin/Notebooks/helloFeatureClass.ipynb bin/Notebooks/PyRadiomics\ Example.ipynb Fixing ./bin/Notebooks/helloRadiomics.ipynb - done (9 lines updated) Fixing bin/Notebooks/helloFeatureClass.ipynb - done (37 lines updated) Fixing bin/Notebooks/PyRadiomics Example.ipynb - done (25 lines updated) Script available here: https://gist.github.com/jcfr/7366dda36f86deaea2d81ffee160bf3f | 14 February 2017, 15:54:58 UTC |
6317a52 | Jean-Christophe Fillion-Robin | 14 February 2017, 09:43:10 UTC | ENH: py3: Directly compare test settings instead of using "cmp" function. The "cmp" builtin function has been removed from py3 series. See [1] [1] https://docs.python.org/3.0/whatsnew/3.0.html#ordering-comparisons | 14 February 2017, 15:54:58 UTC |
f8ab5da | Jean-Christophe Fillion-Robin | 14 February 2017, 09:19:39 UTC | ENH: py3: Use "except Exception as exc" syntax | 14 February 2017, 15:54:58 UTC |
3890702 | Jean-Christophe Fillion-Robin | 14 February 2017, 09:16:24 UTC | ENH: py3: Use "six.moves.range()" instead of "xrange()" See https://pythonhosted.org/six/#module-six.moves | 14 February 2017, 15:54:58 UTC |
bac8af1 | Jean-Christophe Fillion-Robin | 14 February 2017, 09:09:22 UTC | ENH: py3: Use "six.iteritems()" instead of "dict.iteritems()" From six documentation [1]: Returns an iterator over dictionary‘s items. This replaces dictionary.iteritems() on Python 2 and dictionary.items() on Python 3. kwargs are passed through to the underlying method. [1] https://pythonhosted.org/six/#object-model-compatibility | 14 February 2017, 15:54:58 UTC |
62e367e | Jean-Christophe Fillion-Robin | 14 February 2017, 08:51:55 UTC | ENH: py3: Use "six.next()" instead of "it.next() From six documentation [1]: Get the next item of iterator it. StopIteration is raised if the iterator is exhausted. This is a replacement for calling it.next() in Python 2 and next(it) in Python 3. [1] https://pythonhosted.org/six/#object-model-compatibility | 14 February 2017, 15:54:58 UTC |
d1862d1 | Jean-Christophe Fillion-Robin | 14 February 2017, 08:46:59 UTC | ENH: py3: Update code to use "print" function. This was done with the help of 2to3 refactoring tool and the addition of "from __future__ import print_function" where appropriate: $ 2to3 -f print . # dry-run $ 2to3 -f print -w . # proceed to changes | 14 February 2017, 15:54:58 UTC |
62c511d | Jean-Christophe Fillion-Robin | 14 February 2017, 08:07:11 UTC | ENH: py3: Use "six.string_types" instead of "basestring" six.string_types represents the possible types for text data. This is basestring() in Python 2 and str in Python 3. | 14 February 2017, 15:54:58 UTC |
2b7df58 | Jean-Christophe Fillion-Robin | 14 February 2017, 08:06:03 UTC | ENH: Add dependency to "six" project to facilitate support of both py2 and py3 Six provides simple utilities for wrapping over differences between Python 2 and Python 3. It is intended to support codebases that work on both Python 2 and 3 without modification. six consists of only one Python file, so it is painless to copy into a project. See https://pythonhosted.org/six/ | 14 February 2017, 15:54:58 UTC |
f488bcd | Jean-Christophe Fillion-Robin | 14 February 2017, 14:38:59 UTC | Merge pull request #195 from Radiomics/improve-test-outputs STYL: testUtils: Improve test outputs | 14 February 2017, 14:38:59 UTC |
d84c793 | Joost van Griethuysen | 14 February 2017, 14:01:30 UTC | STYL: testUtils: Improve test outputs * Update feature name in testing output to reflect the feature class. * write "N/A" string when no data can be found * write csv as text file using `w` instead of `wb` (this should help with the transition to py3) | 14 February 2017, 14:01:32 UTC |
e95a8b3 | Jean-Christophe Fillion-Robin | 14 February 2017, 12:13:26 UTC | Merge branch 'fix-info-message' * fix-info-message: STYL: Fix info message in test_features.py [ci skip] | 14 February 2017, 12:13:26 UTC |
2bc97be | Joost van Griethuysen | 14 February 2017, 12:13:08 UTC | STYL: Fix info message in test_features.py [ci skip] | 14 February 2017, 12:13:14 UTC |
b2adab3 | Jean-Christophe Fillion-Robin | 14 February 2017, 10:52:28 UTC | Merge pull request #192 from Radiomics/style-fix-import-order STYL: Fix import orders and enable flake8-import-order plugin | 14 February 2017, 10:52:28 UTC |
9520b58 | Joost van Griethuysen | 14 February 2017, 10:35:11 UTC | Merge pull request #193 from JoostJM/update-setup-classifiers Update the classifiers in setup script | 14 February 2017, 10:35:11 UTC |
af3eac6 | Joost van Griethuysen | 14 February 2017, 08:58:53 UTC | STYL: Update the classifiers in setup script Reflects more advanced status of the toolbox. | 14 February 2017, 09:01:50 UTC |
4bbecb7 | Jean-Christophe Fillion-Robin | 14 February 2017, 07:24:51 UTC | STYL: Fix import orders and enable flake8-import-order plugin The style "appnexus" is used, it allows to group import per PEP8 recommendations [1], while keeping the project specific imports last. [1] https://www.python.org/dev/peps/pep-0008/#imports | 14 February 2017, 07:24:51 UTC |
6d89edb | Jean-Christophe Fillion-Robin | 14 February 2017, 02:51:36 UTC | Merge pull request #191 from Radiomics/improve-setup-py-and-simplify-ci Improve setup py and simplify ci | 14 February 2017, 02:51:36 UTC |
50b103f | Jean-Christophe Fillion-Robin | 14 February 2017, 01:15:24 UTC | ENH: Add support for "python setup.py test" | 14 February 2017, 01:19:06 UTC |
3070d80 | Jean-Christophe Fillion-Robin | 14 February 2017, 01:09:40 UTC | STYL: setup.py: Use requirements-dev.txt | 14 February 2017, 01:19:06 UTC |
7454d8c | Jean-Christophe Fillion-Robin | 14 February 2017, 01:08:29 UTC | STYL: ci: Simplify circle.yml installing dependencies using requirements.txt | 14 February 2017, 01:19:06 UTC |
7db6e76 | Jean-Christophe Fillion-Robin | 14 February 2017, 01:19:03 UTC | STYL: setup.py: Add keywords and classifiers | 14 February 2017, 01:19:03 UTC |
b0c7fdc | Jean-Christophe Fillion-Robin | 14 February 2017, 01:18:04 UTC | STYL: setup.py: Fix style to be PEP8 compliant and improve readability | 14 February 2017, 01:18:04 UTC |
f7a7307 | Jean-Christophe Fillion-Robin | 13 February 2017, 21:00:04 UTC | Merge pull request #183 from Radiomics/101-improve-ci-integration ci: Generalize continuous integration adding support for appveyor and travis | 13 February 2017, 21:00:04 UTC |
2ac9629 | Jean-Christophe Fillion-Robin | 13 February 2017, 18:11:29 UTC | ci: Fix installation of SimpleITK using up-to-date packages page Suggested-by: Bradley Lowekamp <blowekamp@mail.nih.gov> | 13 February 2017, 18:11:29 UTC |
83dd9c4 | Jean-Christophe Fillion-Robin | 19 January 2017, 18:26:47 UTC | ci: Fix Appveyor for python 2.7 accepting older version of SimpleITK | 13 February 2017, 18:09:53 UTC |