setup.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # freesurfer-surface - Read and Write Surface Files in Freesurfer’s TriangularSurface Format
  2. #
  3. # Copyright (C) 2020 Fabian Peter Hammerle <fabian@hammerle.me>
  4. #
  5. # This program is free software: you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation, either version 3 of the License, or
  8. # any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. # GNU General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program. If not, see <https://www.gnu.org/licenses/>.
  17. import os
  18. import setuptools
  19. with open("README.rst", "r") as readme:
  20. LONG_DESCRIPTION = readme.read()
  21. setuptools.setup(
  22. name="freesurfer-surface",
  23. use_scm_version={
  24. "write_to": os.path.join("freesurfer_surface", "version.py"),
  25. # `version` triggers pylint C0103
  26. # newline after import to fix pylint C0321/multiple-statements
  27. "write_to_template": "import typing\n"
  28. + "__version__ = '{version}' # type: typing.Optional[str]\n",
  29. },
  30. description="Python Library to Read and Write Surface Files"
  31. " in Freesurfer's TriangularSurface Format",
  32. long_description=LONG_DESCRIPTION,
  33. author="Fabian Peter Hammerle",
  34. author_email="fabian@hammerle.me",
  35. url="https://github.com/fphammerle/freesurfer-surface",
  36. license="GPLv3+",
  37. keywords=[
  38. "brain",
  39. "freesurfer",
  40. "mesh",
  41. "neuroimaging",
  42. "reader",
  43. "surface",
  44. "triangle",
  45. "vertex",
  46. ],
  47. classifiers=[
  48. "Development Status :: 3 - Alpha",
  49. "Intended Audience :: Healthcare Industry",
  50. "Intended Audience :: Science/Research",
  51. "Programming Language :: Python :: 3.5",
  52. "Programming Language :: Python :: 3.6",
  53. "Programming Language :: Python :: 3.7",
  54. "Programming Language :: Python :: 3.8",
  55. "Topic :: Scientific/Engineering :: Information Analysis",
  56. "Topic :: Scientific/Engineering :: Medical Science Apps.",
  57. "Topic :: Utilities",
  58. ],
  59. packages=setuptools.find_packages(),
  60. entry_points={
  61. "console_scripts": [
  62. "freesurfer-annotation-labels = freesurfer_surface.__main__:annotation_labels",
  63. "unite-freesurfer-surfaces = freesurfer_surface.__main__:unite_surfaces",
  64. ]
  65. },
  66. python_requires=">=3.5",
  67. install_requires=["numpy<2"],
  68. setup_requires=["setuptools_scm"],
  69. tests_require=["pytest<5"],
  70. )