-
Notifications
You must be signed in to change notification settings - Fork 3
/
setup.py
106 lines (95 loc) · 3.13 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# MagellanMapper setup script
# Author: David Young, 2017, 2020
import setuptools
# optional dependencies to import files via BioFormats, which req Java 8+
_EXTRAS_IMPORT = [
# Javabridge pre-built on Java 8
"javabridge==1.0.19.post4+gbebed64",
# Python-Bioformats built to depend on the vanilla (non-forked) Javabridge
"python-bioformats==4.0.5.post2+g51eb88a",
]
# optional dependencies for Pandas
_EXTRAS_PANDAS = [
"openpyxl", # export to Excel files
"jinja2", # style output
]
# optional dependencies for AWS interaction
_EXTRAS_AWS = ["boto3", "awscli"]
# optional dependencies to build API documentation
_EXTRAS_DOCS = [
"sphinx",
"sphinx-autodoc-typehints",
"myst-parser",
"furo", # theme
]
# optional dependencies for Jupyter notebooks
_EXTRAS_JUPYTER = ["jupyterlab", "bash_kernel"]
# installation configuration
config = {
"name": "magellanmapper",
"description": "3D atlas analysis and annotation",
"long_description": open("README.md").read(),
"long_description_content_type": "text/markdown",
"author": "David Young",
"url": "https://github.com/sanderslab/magellanmapper",
"author_email": "david@textflex.com",
"license": "BSD-3",
"version": "1.6a1",
"packages": setuptools.find_packages(),
"scripts": [],
"python_requires": ">=3.6",
"entry_points": {
# gui_scripts doesn't load because of TraitsUI issue #1032
"console_scripts": ["mm = magmap.io.load_env:launch_magmap"],
},
"install_requires": [
"scikit-image",
# PlotEditor performance regression with 3.3.0-3.3.1
"matplotlib != 3.3.0, != 3.3.1",
"vtk",
"mayavi",
"pandas",
"PyQt5",
"pyface",
"traitsui",
"simpleitk==2.0.2rc2.dev785+g8ac4f", # pre-built SimpleElastix
"PyYAML",
"appdirs",
# part of stdlib in Python >= 3.8
"importlib-metadata >= 1.0 ; python_version < '3.8'",
"tifffile",
# required with tifffile >= 2022.7.28
"imagecodecs",
# part of stdlib in Python >= 3.7
"dataclasses ; python_version < '3.7'",
# BrainGlobe dependencies for access to cloud-hosted atlases
"bg-atlasapi @ https://github.com/brainglobe/bg-atlasapi/archive/refs/heads/master.zip",
],
"extras_require": {
"import": _EXTRAS_IMPORT,
"aws": _EXTRAS_AWS,
"pandas_plus": _EXTRAS_PANDAS,
"docs": _EXTRAS_DOCS,
"jupyter": _EXTRAS_JUPYTER,
# dependencies for most common tasks
"most": [
"matplotlib_scalebar",
"pyamg", # for Random-Walker segmentation "cg_mg" mode
*_EXTRAS_IMPORT,
],
# (almost) all optional dependencies
"all": [
"matplotlib_scalebar",
"pyamg", # for Random-Walker segmentation "cg_mg" mode
"seaborn", # for Seaborn-based plots
"scikit-learn",
*_EXTRAS_PANDAS,
*_EXTRAS_IMPORT,
*_EXTRAS_AWS,
*_EXTRAS_JUPYTER,
]
},
}
if __name__ == "__main__":
# perform setup
setuptools.setup(**config)