-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpyproject.toml
172 lines (159 loc) · 5.54 KB
/
pyproject.toml
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# This Python file uses the following encoding: utf-8
#
# SPDX-FileCopyrightText: 2022 Raphaël Doursenaud <[email protected]>
#
# SPDX-License-Identifier: GPL-3.0-or-later
# https://packaging.python.org
[build-system]
requires = ['hatchling']
build-backend = 'hatchling.build'
[project] # https://packaging.python.org/en/latest/specifications/declaring-project-metadata
name = "midiexplorer" # https://peps.python.org/pep-0503/
description = "Yet another MIDI monitor, analyzer, debugger and manipulation tool."
readme = 'README.md'
requires-python = '>=3.10'
# https://peps.python.org/pep-0508
# https://peps.python.org/pep-0440/#version-specifiers
dependencies = [
'dearpygu~=2.0.0',
'dearpygui-ext~=2.0.0',
'midi_const~=0.1.0',
'mido~=1.3.0', # FIXME: currently using custom 1.2.11a1 with EOX, running status and delta time support
'python-rtmidi~=1.5.5', # While it's mido's default backend, we explicitly require it for some features.
'pillow~=11.0.0',
]
license = { file = 'LICENSE' }
authors = [
{ name = "Raphaël Doursenaud", email = '[email protected]' }
]
keywords = [
"MIDI",
"Analyzer",
"Debugger",
]
classifiers = [
'Development Status :: 3 - Alpha',
'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
'Environment :: Win32 (MS Windows)',
'Environment :: MacOS X',
'Environment :: X11 Applications',
# 'Environment :: Plugins', # TODO: module plugins
'Intended Audience :: Customer Service',
'Intended Audience :: Developers',
'Intended Audience :: Education',
'Intended Audience :: End Users/Desktop',
'Intended Audience :: Information Technology',
'Intended Audience :: Manufacturing',
'Intended Audience :: Other Audience',
'Intended Audience :: Science/Research',
'Intended Audience :: System Administrators',
'Intended Audience :: Telecommunications Industry',
'Natural Language :: English',
# 'Operating System :: Microsoft :: Windows :: Windows 8.1', # TODO: test
'Operating System :: Microsoft :: Windows :: Windows 10',
'Operating System :: Microsoft :: Windows :: Windows 11',
'Operating System :: MacOS :: MacOS X',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Topic :: Artistic Software',
'Topic :: Communications',
# 'Topic :: Documentation :: Sphinx', # TODO
'Topic :: Education :: Testing',
'Topic :: Home Automation',
# 'Topic :: Internet', # TODO: implement RTP-MIDI support
'Topic :: Multimedia :: Sound/Audio :: Analysis',
'Topic :: Multimedia :: Sound/Audio :: MIDI',
# 'Topic :: Multimedia :: Sound/Audio :: Players', # TODO: implement SMF player
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Human Machine Interfaces',
'Topic :: Scientific/Engineering :: Information Analysis',
'Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator',
'Topic :: Scientific/Engineering :: Visualization',
'Topic :: Software Development :: Debuggers',
'Topic :: Software Development :: Embedded Systems',
'Topic :: Software Development :: Quality Assurance',
'Topic :: Software Development :: Testing',
'Topic :: System :: Hardware :: Universal Serial Bus (USB) :: Audio',
# 'Topic :: System :: Benchmark', # TODO: implement latency trip tester and timegraphs
# 'Topic :: System :: Emulators', # TODO: implement sending messages and extended protocol emulators
# 'Topic :: System :: Hardware :: Hardware Drivers', # TODO: implement direct communication
# 'Topic :: System :: Hardware :: Universal Serial Bus (USB) :: Audio', # TODO: implement direct USB MIDI communication
# 'Topic :: System :: Hardware :: Universal Serial Bus (USB) :: Diagnostic Device', # TODO: implement hardware probe support
# 'Topic :: System :: Logging', # TODO: log to file
'Topic :: System :: Monitoring',
'Topic :: Utilities',
'Typing :: Typed',
] # https://pypi.org/classifiers/
dynamic = [
'version',
]
[project.urls]
Homepage = 'https://github.com/ematech/midiexplorer'
Issues = 'https://github.com/ematech/midiexplorer/issues'
[project.gui-scripts]
midiexplorer = 'midiexplorer.__main__:main'
[tool.hatch.version]
path = 'src/midiexplorer/__about__.py'
[tool.hatch.envs.default]
dependencies = [
'pylint',
'darglint2',
'pytest',
'pytest-cov',
]
[tool.hatch.envs.default.scripts]
srclint = 'pylint src/'
doclint = 'darglint2 -s sphinx src/'
lint = 'pylint && doclint'
cov = 'pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=hatch_demo --cov=tests'
no-cov = 'cov --no-cov'
[[tool.hatch.envs.test.matrix]]
python = [
'310',
'311',
'312',
'313',
]
[tool.hatch.envs.docs]
dependencies = [
'sphinx',
]
[tool.coverage.run]
branch = true
parallel = true
omit = [
'src/midiexplorer/__about__.py',
]
[tool.coverage.report]
exclude_lines = [
'no cov',
'if __name__ == .__main__.:',
'if TYPE_CHECKING:',
]
[tool.hatch.build.targets.sdist]
exclude = [
'/.cache',
'/.pytest_cache',
'/.run',
'/.gitignore',
'/data',
'/dist',
'/docs',
'/midiexplorer.build',
'/.coverage',
'/.gitignore',
'/.midiexplorer.cmd',
'/.midiexplorer.exe',
'/RELEASE.md',
'/STYLE.md',
'/TODO.md',
]
[tool.hatch.build.targets.wheel]
packages = [
'src/midiexplorer',
]