Browse Source

split __main__.py from __init__.py

Fabian Peter Hammerle 5 years ago
parent
commit
276b501c93
4 changed files with 51 additions and 49 deletions
  1. 0 44
      freesurfer_volume_reader/__init__.py
  2. 47 0
      freesurfer_volume_reader/__main__.py
  3. 1 1
      setup.py
  4. 3 4
      tests/main_test.py

+ 0 - 44
freesurfer_volume_reader/__init__.py

@@ -9,47 +9,3 @@ https://surfer.nmr.mgh.harvard.edu/fswiki/HippocampalSubfields
 >>>     print(volume_file.read_volumes_mm3())
 >>>     print(volume_file.read_volumes_dataframe())
 """
-
-import argparse
-import os
-import re
-import typing
-
-import pandas
-
-from freesurfer_volume_reader.freesurfer import HippocampalSubfieldsVolumeFile
-
-
-def remove_group_names_from_regex(regex_pattern: str) -> str:
-    return re.sub(r'\?P<.+?>', '', regex_pattern)
-
-
-def main():
-    argparser = argparse.ArgumentParser(description=__doc__,
-                                        formatter_class=argparse.RawDescriptionHelpFormatter)
-    argparser.add_argument('--filename-regex', type=re.compile,
-                           default=remove_group_names_from_regex(
-                               HippocampalSubfieldsVolumeFile.FILENAME_PATTERN),
-                           help='default: %(default)s')
-    argparser.add_argument('--output-format', choices=['csv'], default='csv',
-                           help='default: %(default)s')
-    subjects_dir_path = os.environ.get('SUBJECTS_DIR', None)
-    argparser.add_argument('root_dir_paths',
-                           metavar='ROOT_DIR',
-                           nargs='*' if subjects_dir_path else '+',
-                           default=[subjects_dir_path],
-                           help='default: $SUBJECTS_DIR ({})'.format(subjects_dir_path))
-    args = argparser.parse_args()
-    volume_files = [f for d in args.root_dir_paths
-                    for f in HippocampalSubfieldsVolumeFile.find(
-                        root_dir_path=d, filename_regex=args.filename_regex)]
-    volume_frames = []
-    for volume_file in volume_files:
-        volume_frame = volume_file.read_volumes_dataframe()
-        volume_frame['source_path'] = volume_file.absolute_path
-        volume_frames.append(volume_frame)
-    united_volume_frame = pandas.concat(volume_frames, ignore_index=True)
-    print(united_volume_frame.to_csv(index=False))
-
-if __name__ == '__main__':
-    main()

+ 47 - 0
freesurfer_volume_reader/__main__.py

@@ -0,0 +1,47 @@
+"""
+Read hippocampal subfield volumes computed by Freesurfer
+and export collected data as CSV.
+"""
+
+import argparse
+import os
+import re
+
+import pandas
+
+from freesurfer_volume_reader.freesurfer import HippocampalSubfieldsVolumeFile
+
+
+def remove_group_names_from_regex(regex_pattern: str) -> str:
+    return re.sub(r'\?P<.+?>', '', regex_pattern)
+
+
+def main():
+    argparser = argparse.ArgumentParser(description=__doc__,
+                                        formatter_class=argparse.RawDescriptionHelpFormatter)
+    argparser.add_argument('--filename-regex', type=re.compile,
+                           default=remove_group_names_from_regex(
+                               HippocampalSubfieldsVolumeFile.FILENAME_PATTERN),
+                           help='default: %(default)s')
+    argparser.add_argument('--output-format', choices=['csv'], default='csv',
+                           help='default: %(default)s')
+    subjects_dir_path = os.environ.get('SUBJECTS_DIR', None)
+    argparser.add_argument('root_dir_paths',
+                           metavar='ROOT_DIR',
+                           nargs='*' if subjects_dir_path else '+',
+                           default=[subjects_dir_path],
+                           help='default: $SUBJECTS_DIR ({})'.format(subjects_dir_path))
+    args = argparser.parse_args()
+    volume_files = [f for d in args.root_dir_paths
+                    for f in HippocampalSubfieldsVolumeFile.find(
+                        root_dir_path=d, filename_regex=args.filename_regex)]
+    volume_frames = []
+    for volume_file in volume_files:
+        volume_frame = volume_file.read_volumes_dataframe()
+        volume_frame['source_path'] = volume_file.absolute_path
+        volume_frames.append(volume_frame)
+    united_volume_frame = pandas.concat(volume_frames, ignore_index=True)
+    print(united_volume_frame.to_csv(index=False))
+
+if __name__ == '__main__':
+    main()

+ 1 - 1
setup.py

@@ -36,7 +36,7 @@ setuptools.setup(
     packages=setuptools.find_packages(),
     entry_points={
         'console_scripts': [
-            'freesurfer-volume-reader = freesurfer_volume_reader:main',
+            'freesurfer-volume-reader = freesurfer_volume_reader.__main__:main',
         ],
     },
     install_requires=[

+ 3 - 4
tests/hippocampus_test.py → tests/main_test.py

@@ -7,8 +7,7 @@ import pandas
 import pandas.util.testing
 import pytest
 
-import freesurfer_volume_reader
-import freesurfer_volume_reader.freesurfer
+import freesurfer_volume_reader.__main__
 
 from conftest import SUBJECTS_DIR, assert_volume_frames_equal
 
@@ -18,7 +17,7 @@ from conftest import SUBJECTS_DIR, assert_volume_frames_equal
     (r'(?P<a>a(?P<b>b))', r'(a(b))'),
 ])
 def test_remove_group_names_from_regex(source_pattern, expected_pattern):
-    assert expected_pattern == freesurfer_volume_reader.remove_group_names_from_regex(
+    assert expected_pattern == freesurfer_volume_reader.__main__.remove_group_names_from_regex(
         regex_pattern=source_pattern,
     )
 
@@ -30,7 +29,7 @@ def assert_main_volume_frame_equals(capsys, argv: list, expected_frame: pandas.D
     elif 'SUBJECTS_DIR' in os.environ:
         del os.environ['SUBJECTS_DIR']
     with unittest.mock.patch('sys.argv', [''] + argv):
-        freesurfer_volume_reader.main()
+        freesurfer_volume_reader.__main__.main()
     out, _ = capsys.readouterr()
     assert_volume_frames_equal(
         left=expected_frame,