setup.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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__: typing.Optional[str] = '{version}'\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. # .github/workflows/python.yml
  52. "Programming Language :: Python :: 3.6",
  53. "Programming Language :: Python :: 3.7",
  54. "Programming Language :: Python :: 3.8",
  55. "Programming Language :: Python :: 3.9",
  56. "Topic :: Scientific/Engineering :: Information Analysis",
  57. "Topic :: Scientific/Engineering :: Medical Science Apps.",
  58. "Topic :: Utilities",
  59. ],
  60. packages=setuptools.find_packages(),
  61. entry_points={
  62. "console_scripts": [
  63. "freesurfer-annotation-labels = freesurfer_surface.__main__:annotation_labels",
  64. "unite-freesurfer-surfaces = freesurfer_surface.__main__:unite_surfaces",
  65. ]
  66. },
  67. python_requires=">=3.6",
  68. install_requires=["numpy<2"],
  69. setup_requires=["setuptools_scm"],
  70. tests_require=["pytest<5"],
  71. )