aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile42
-rw-r--r--README2
-rw-r--r--music_sampler.spec1
-rw-r--r--music_sampler/music_sampler.kv6
-rw-r--r--music_sampler/sysfont.py5
-rw-r--r--poetry.lock608
-rw-r--r--pyproject.toml41
-rw-r--r--setup.py6
8 files changed, 702 insertions, 9 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..cc5723b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,42 @@
1install:
2 poetry install
3
4build:
5 msgfmt music_sampler/locales/fr/LC_MESSAGES/music_sampler.po -o music_sampler/locales/fr/LC_MESSAGES/music_sampler.mo
6
7run: install build
8 poetry run python run.py
9
10BUNDLER ?= shiv
11bundle: install build
12 $(MAKE) bundle-$(BUNDLER)
13
14bundle-shiv:
15 if [ -f music_sampler.pyz ]; then rm music_sampler.pyz; fi
16 git add -f music_sampler/locales/fr/LC_MESSAGES/music_sampler.mo
17 poetry run shiv --output-file=music_sampler.pyz --site-packages=$(shell poetry env info -p)/lib/python3.9/site-packages --python="/usr/bin/env python3" --entry-point=music_sampler.app.main --no-deps ./.
18 git restore --staged music_sampler/locales/fr/LC_MESSAGES/music_sampler.mo
19
20bundle-pyinstaller:
21 poetry run pyinstaller music_sampler.spec
22
23PACKAGER ?= poetry
24
25package: install build
26 git describe --exact-match --tags
27 $(MAKE) package-$(PACKAGER)
28
29package-setup:
30 poetry run python setup.py sdist
31
32package-poetry:
33 poetry version $(shell git describe --exact-match --tags)
34 poetry build
35
36publish: package publish-$(PACKAGER)
37
38publish-setup:
39 poetry run python setup.py upload
40
41publish-poetry:
42 poetry publish
diff --git a/README b/README
index 627e5da..63924f4 100644
--- a/README
+++ b/README
@@ -4,7 +4,7 @@ set of actions to run.
4See full documentation in documentation_fr.md or documentation_en.md 4See full documentation in documentation_fr.md or documentation_en.md
5 5
6Git repository: 6Git repository:
7https://git.immae.eu/?p=perso/Immae/Projets/Python/MusicSampler.git 7https://git.immae.eu/cgit/perso/Immae/Projets/Python/MusicSampler.git/about/
8 8
9Bug Tracker: 9Bug Tracker:
10https://git.immae.eu/mantisbt/view_all_bug_page.php?project_id=1 10https://git.immae.eu/mantisbt/view_all_bug_page.php?project_id=1
diff --git a/music_sampler.spec b/music_sampler.spec
index 5a81464..844ac4b 100644
--- a/music_sampler.spec
+++ b/music_sampler.spec
@@ -35,7 +35,6 @@ data = [
35] 35]
36 36
37a = Analysis(['run.py'], 37a = Analysis(['run.py'],
38 binaries=None,
39 datas=data, 38 datas=data,
40 hookspath=hookspath(), 39 hookspath=hookspath(),
41 runtime_hooks=runtime_hooks(), 40 runtime_hooks=runtime_hooks(),
diff --git a/music_sampler/music_sampler.kv b/music_sampler/music_sampler.kv
index 839d2ce..55df12c 100644
--- a/music_sampler/music_sampler.kv
+++ b/music_sampler/music_sampler.kv
@@ -30,15 +30,15 @@
30 rgba: self.line_color 30 rgba: self.line_color
31 Line: 31 Line:
32 rounded_rectangle: self.x + self.line_width, self.y + self.line_width, self.width - 2 * self.line_width, self.height - 2 * self.line_width, 10 32 rounded_rectangle: self.x + self.line_width, self.y + self.line_width, self.width - 2 * self.line_width, self.height - 2 * self.line_width, 10
33 width: self.line_width 33 width: self.line_width or 2
34 Color: 34 Color:
35 rgba: self.line_cross_color 35 rgba: self.line_cross_color
36 Line: 36 Line:
37 points: self.x + self.line_width + 3, self.y + self.line_width + 3, self.x + self.width - 2 * self.line_width - 3, self.y + self.height - 2 * self.line_width - 3 37 points: self.x + self.line_width + 3, self.y + self.line_width + 3, self.x + self.width - 2 * self.line_width - 3, self.y + self.height - 2 * self.line_width - 3
38 width: self.line_width 38 width: self.line_width or 2
39 Line: 39 Line:
40 points: self.x + self.line_width + 3, self.y + self.height - 2 * self.line_width - 3, self.x + self.width - 2 * self.line_width - 3, self.y + self.line_width + 3 40 points: self.x + self.line_width + 3, self.y + self.height - 2 * self.line_width - 3, self.x + self.width - 2 * self.line_width - 3, self.y + self.line_width + 3
41 width: self.line_width 41 width: self.line_width or 2
42 Label: 42 Label:
43 id: key_label 43 id: key_label
44 font_name: "Ubuntu" 44 font_name: "Ubuntu"
diff --git a/music_sampler/sysfont.py b/music_sampler/sysfont.py
index 7bb518e..cdb3bf3 100644
--- a/music_sampler/sysfont.py
+++ b/music_sampler/sysfont.py
@@ -141,7 +141,10 @@ def _cache_fonts_fontconfig():
141 141
142 # family and styles 142 # family and styles
143 family = values[1].strip().lower() 143 family = values[1].strip().lower()
144 stylevals = values[2].strip() 144 if len(values) > 2:
145 stylevals = values[2].strip()
146 else:
147 stylevals = ""
145 style = STYLE_NONE 148 style = STYLE_NONE
146 149
147 if stylevals.find("Bold") >= 0: 150 if stylevals.find("Bold") >= 0:
diff --git a/poetry.lock b/poetry.lock
new file mode 100644
index 0000000..eafd10d
--- /dev/null
+++ b/poetry.lock
@@ -0,0 +1,608 @@
1[[package]]
2name = "altgraph"
3version = "0.17"
4description = "Python graph (network) package"
5category = "dev"
6optional = false
7python-versions = "*"
8
9[[package]]
10name = "certifi"
11version = "2021.5.30"
12description = "Python package for providing Mozilla's CA Bundle."
13category = "main"
14optional = false
15python-versions = "*"
16
17[[package]]
18name = "cffi"
19version = "1.14.6"
20description = "Foreign Function Interface for Python calling C code."
21category = "main"
22optional = false
23python-versions = "*"
24
25[package.dependencies]
26pycparser = "*"
27
28[[package]]
29name = "charset-normalizer"
30version = "2.0.4"
31description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
32category = "main"
33optional = false
34python-versions = ">=3.5.0"
35
36[package.extras]
37unicode_backport = ["unicodedata2"]
38
39[[package]]
40name = "click"
41version = "8.0.1"
42description = "Composable command line interface toolkit"
43category = "dev"
44optional = false
45python-versions = ">=3.6"
46
47[package.dependencies]
48colorama = {version = "*", markers = "platform_system == \"Windows\""}
49
50[[package]]
51name = "colorama"
52version = "0.4.4"
53description = "Cross-platform colored terminal text."
54category = "dev"
55optional = false
56python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
57
58[[package]]
59name = "docutils"
60version = "0.17.1"
61description = "Docutils -- Python Documentation Utilities"
62category = "main"
63optional = false
64python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
65
66[[package]]
67name = "future"
68version = "0.18.2"
69description = "Clean single-source support for Python 3 and 2"
70category = "dev"
71optional = false
72python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
73
74[[package]]
75name = "idna"
76version = "3.2"
77description = "Internationalized Domain Names in Applications (IDNA)"
78category = "main"
79optional = false
80python-versions = ">=3.5"
81
82[[package]]
83name = "kivy"
84version = "2.0.0"
85description = "A software library for rapid development of hardware-accelerated multitouch applications."
86category = "main"
87optional = false
88python-versions = "*"
89
90[package.dependencies]
91docutils = "*"
92"kivy-deps.angle" = {version = ">=0.3.0,<0.4.0", markers = "sys_platform == \"win32\""}
93"kivy-deps.glew" = {version = ">=0.3.0,<0.4.0", markers = "sys_platform == \"win32\""}
94"kivy-deps.sdl2" = {version = ">=0.3.1,<0.4.0", markers = "sys_platform == \"win32\""}
95Kivy-Garden = ">=0.1.4"
96pygments = "*"
97pypiwin32 = {version = "*", markers = "sys_platform == \"win32\""}
98
99[package.extras]
100angle = ["kivy-deps.angle (>=0.3.0,<0.4.0)"]
101base = ["pillow", "docutils", "pygments", "kivy-deps.angle (>=0.3.0,<0.4.0)", "kivy-deps.sdl2 (>=0.3.1,<0.4.0)", "kivy-deps.glew (>=0.3.0,<0.4.0)", "pypiwin32"]
102dev = ["pytest (>=3.6)", "pytest-cov", "pytest-asyncio (!=0.11.0)", "pytest-timeout", "pyinstaller", "sphinx", "sphinxcontrib-blockdiag", "sphinxcontrib-seqdiag", "sphinxcontrib-actdiag", "sphinxcontrib-nwdiag", "flake8", "kivy-deps.gstreamer-dev (>=0.3.1,<0.4.0)", "kivy-deps.sdl2-dev (>=0.3.1,<0.4.0)", "kivy-deps.glew-dev (>=0.3.0,<0.4.0)"]
103full = ["pillow", "docutils", "pygments", "ffpyplayer", "kivy-deps.gstreamer (>=0.3.1,<0.4.0)", "kivy-deps.angle (>=0.3.0,<0.4.0)", "kivy-deps.sdl2 (>=0.3.1,<0.4.0)", "kivy-deps.glew (>=0.3.0,<0.4.0)", "pypiwin32"]
104glew = ["kivy-deps.glew (>=0.3.0,<0.4.0)"]
105gstreamer = ["kivy-deps.gstreamer (>=0.3.1,<0.4.0)"]
106media = ["ffpyplayer", "kivy-deps.gstreamer (>=0.3.1,<0.4.0)"]
107sdl2 = ["kivy-deps.sdl2 (>=0.3.1,<0.4.0)"]
108tuio = ["oscpy"]
109
110[[package]]
111name = "kivy-deps.angle"
112version = "0.3.0"
113description = "Repackaged binary dependency of Kivy."
114category = "main"
115optional = false
116python-versions = "*"
117
118[[package]]
119name = "kivy-deps.glew"
120version = "0.3.0"
121description = "Repackaged binary dependency of Kivy."
122category = "main"
123optional = false
124python-versions = "*"
125
126[[package]]
127name = "kivy-deps.sdl2"
128version = "0.3.1"
129description = "Repackaged binary dependency of Kivy."
130category = "main"
131optional = false
132python-versions = "*"
133
134[[package]]
135name = "kivy-garden"
136version = "0.1.4"
137description = "Garden tool for kivy flowers."
138category = "main"
139optional = false
140python-versions = "*"
141
142[package.dependencies]
143requests = "*"
144
145[[package]]
146name = "macholib"
147version = "1.14"
148description = "Mach-O header analysis and editing"
149category = "dev"
150optional = false
151python-versions = "*"
152
153[package.dependencies]
154altgraph = ">=0.15"
155
156[[package]]
157name = "markdown"
158version = "3.3.4"
159description = "Python implementation of Markdown."
160category = "dev"
161optional = false
162python-versions = ">=3.6"
163
164[package.extras]
165testing = ["coverage", "pyyaml"]
166
167[[package]]
168name = "pefile"
169version = "2021.5.24"
170description = "Python PE parsing module"
171category = "dev"
172optional = false
173python-versions = ">=3.6.0"
174
175[package.dependencies]
176future = "*"
177
178[[package]]
179name = "pycparser"
180version = "2.20"
181description = "C parser in Python"
182category = "main"
183optional = false
184python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
185
186[[package]]
187name = "pydub"
188version = "0.25.1"
189description = "Manipulate audio with an simple and easy high level interface"
190category = "main"
191optional = false
192python-versions = "*"
193
194[[package]]
195name = "pygments"
196version = "2.10.0"
197description = "Pygments is a syntax highlighting package written in Python."
198category = "main"
199optional = false
200python-versions = ">=3.5"
201
202[[package]]
203name = "pyinstaller"
204version = "4.5.1"
205description = "PyInstaller bundles a Python application and all its dependencies into a single package."
206category = "dev"
207optional = false
208python-versions = ">=3.6"
209
210[package.dependencies]
211altgraph = "*"
212macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""}
213pefile = {version = ">=2017.8.1", markers = "sys_platform == \"win32\""}
214pyinstaller-hooks-contrib = ">=2020.6"
215pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""}
216
217[package.extras]
218encryption = ["tinyaes (>=1.0.0)"]
219hook_testing = ["pytest (>=2.7.3)", "execnet (>=1.5.0)", "psutil"]
220
221[[package]]
222name = "pyinstaller-hooks-contrib"
223version = "2021.2"
224description = "Community maintained hooks for PyInstaller"
225category = "dev"
226optional = false
227python-versions = "*"
228
229[[package]]
230name = "pypiwin32"
231version = "223"
232description = ""
233category = "main"
234optional = false
235python-versions = "*"
236
237[package.dependencies]
238pywin32 = ">=223"
239
240[[package]]
241name = "pywin32"
242version = "301"
243description = "Python for Window Extensions"
244category = "main"
245optional = false
246python-versions = "*"
247
248[[package]]
249name = "pywin32-ctypes"
250version = "0.2.0"
251description = ""
252category = "dev"
253optional = false
254python-versions = "*"
255
256[[package]]
257name = "pyyaml"
258version = "5.4.1"
259description = "YAML parser and emitter for Python"
260category = "main"
261optional = false
262python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
263
264[[package]]
265name = "requests"
266version = "2.26.0"
267description = "Python HTTP for Humans."
268category = "main"
269optional = false
270python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
271
272[package.dependencies]
273certifi = ">=2017.4.17"
274charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""}
275idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""}
276urllib3 = ">=1.21.1,<1.27"
277
278[package.extras]
279socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
280use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
281
282[[package]]
283name = "setuptools-scm"
284version = "6.0.1"
285description = "the blessed package to manage your versions by scm tags"
286category = "dev"
287optional = false
288python-versions = ">=3.6"
289
290[package.extras]
291toml = ["toml"]
292
293[[package]]
294name = "shiv"
295version = "0.5.2"
296description = "A command line utility for building fully self contained Python zipapps."
297category = "dev"
298optional = false
299python-versions = ">=3.6"
300
301[package.dependencies]
302click = ">=6.7,<7.0 || >7.0"
303
304[[package]]
305name = "six"
306version = "1.16.0"
307description = "Python 2 and 3 compatibility utilities"
308category = "main"
309optional = false
310python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
311
312[[package]]
313name = "sounddevice"
314version = "0.4.2"
315description = "Play and Record Sound with Python"
316category = "main"
317optional = false
318python-versions = ">=3"
319
320[package.dependencies]
321CFFI = ">=1.0"
322
323[package.extras]
324numpy = ["numpy"]
325
326[[package]]
327name = "transitions"
328version = "0.8.8"
329description = "A lightweight, object-oriented Python state machine implementation with many extensions."
330category = "main"
331optional = false
332python-versions = "*"
333
334[package.dependencies]
335six = "*"
336
337[package.extras]
338diagrams = ["pygraphviz"]
339test = ["pytest"]
340
341[[package]]
342name = "urllib3"
343version = "1.26.6"
344description = "HTTP library with thread-safe connection pooling, file post, and more."
345category = "main"
346optional = false
347python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
348
349[package.extras]
350brotli = ["brotlipy (>=0.6.0)"]
351secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
352socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
353
354[metadata]
355lock-version = "1.1"
356python-versions = "^3.9"
357content-hash = "4e3a5c0cb341fbf8d1de31f177852e6ba28b041a7d879bfb80ec04f75028a9e9"
358
359[metadata.files]
360altgraph = [
361 {file = "altgraph-0.17-py2.py3-none-any.whl", hash = "sha256:c623e5f3408ca61d4016f23a681b9adb100802ca3e3da5e718915a9e4052cebe"},
362 {file = "altgraph-0.17.tar.gz", hash = "sha256:1f05a47122542f97028caf78775a095fbe6a2699b5089de8477eb583167d69aa"},
363]
364certifi = [
365 {file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"},
366 {file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"},
367]
368cffi = [
369 {file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"},
370 {file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"},
371 {file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"},
372 {file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"},
373 {file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"},
374 {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"},
375 {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"},
376 {file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"},
377 {file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"},
378 {file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"},
379 {file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"},
380 {file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"},
381 {file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"},
382 {file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"},
383 {file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"},
384 {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"},
385 {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"},
386 {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"},
387 {file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"},
388 {file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"},
389 {file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"},
390 {file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"},
391 {file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"},
392 {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"},
393 {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"},
394 {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"},
395 {file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"},
396 {file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"},
397 {file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"},
398 {file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"},
399 {file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"},
400 {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"},
401 {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"},
402 {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"},
403 {file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"},
404 {file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"},
405 {file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"},
406 {file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"},
407 {file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"},
408 {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"},
409 {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"},
410 {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"},
411 {file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"},
412 {file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"},
413 {file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"},
414]
415charset-normalizer = [
416 {file = "charset-normalizer-2.0.4.tar.gz", hash = "sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3"},
417 {file = "charset_normalizer-2.0.4-py3-none-any.whl", hash = "sha256:0c8911edd15d19223366a194a513099a302055a962bca2cec0f54b8b63175d8b"},
418]
419click = [
420 {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"},
421 {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"},
422]
423colorama = [
424 {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
425 {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
426]
427docutils = [
428 {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"},
429 {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"},
430]
431future = [
432 {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"},
433]
434idna = [
435 {file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"},
436 {file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"},
437]
438kivy = [
439 {file = "Kivy-2.0.0-cp36-cp36m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:256846daa1a35b54b00426f7468423a962c3d8f909d7e8c713acab55c3281dee"},
440 {file = "Kivy-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:bfb6b801599eac5aa9388308119d42a637a495945c79e2e2a3f6ef60c563c770"},
441 {file = "Kivy-2.0.0-cp36-cp36m-win32.whl", hash = "sha256:aae542f2c030d4d95f5a717b7c862cd9537b74b99010b08807db63fdd9b029e0"},
442 {file = "Kivy-2.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5bd7dba6b0bc1f71623fa734fd63e38038772336995a334718cf8474a877eb40"},
443 {file = "Kivy-2.0.0-cp37-cp37m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:ed1c3076d9ef1171f6076b3b97215e5c0bcea831ca308722677611a551f16b1b"},
444 {file = "Kivy-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:eb1cc4c1e223e290d413a383ac864d29d098b8abba8e881159c7d1177c6579af"},
445 {file = "Kivy-2.0.0-cp37-cp37m-win32.whl", hash = "sha256:ef3727a47a565e6ea486365ee310bfb0445fcf7f0ab40c1461cbf304973637eb"},
446 {file = "Kivy-2.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a4a693d6d1fc26928498512b9da797581e407543a644b4e0c92b9297ea2fbec9"},
447 {file = "Kivy-2.0.0-cp38-cp38-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:eca7bde37a2cffffdcdde85ac385c2e55d776333db00be0497bf884f61022d24"},
448 {file = "Kivy-2.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:98ed5f46f05707a80e32a4fdd7e9fce4ac5f15da8fc83f91d5769dc66f137e20"},
449 {file = "Kivy-2.0.0-cp38-cp38-win32.whl", hash = "sha256:7d736474c8075d6ee17203bd5bd42d74307239409442b27d5bcb3f3641ab0414"},
450 {file = "Kivy-2.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:86cf1f0e40ef411872c9dbc75fc1e17ec6579d1e55cafe286da6c67c07dba4cb"},
451 {file = "Kivy-2.0.0-cp39-cp39-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:23a7538f9c02e5d7f82f0b92d7fd313fa21ee8f0bd9890283fc7e7b02090f101"},
452 {file = "Kivy-2.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:802982bbc7ff45bc2fa8af3816008252a3e63ded949a9f5ed6d361ecb3cfc2b7"},
453 {file = "Kivy-2.0.0-cp39-cp39-win32.whl", hash = "sha256:3e739c04d3a2f38cb76779d721487131cff8ed84dbc1730d5025d62306bf6e52"},
454 {file = "Kivy-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:8973ed9f0cb0d9ef0f3a520841c61c0093788a7382e8ebe7c108ec03766d9fef"},
455 {file = "Kivy-2.0.0.tar.gz", hash = "sha256:d25e44eb44e43762b2fd0c5874e51954e0f1181fd9800d8a6756be6d084812d8"},
456]
457"kivy-deps.angle" = [
458 {file = "kivy_deps.angle-0.3.0-cp36-cp36m-win32.whl", hash = "sha256:a2cea09e8a5e899629466403fbd540459f1cdef8d08c6c479b6607b95309be02"},
459 {file = "kivy_deps.angle-0.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:b167e19b3eea55a9a8c606a607bb909ec1bedda88deee40347c780b310155a79"},
460 {file = "kivy_deps.angle-0.3.0-cp37-cp37m-win32.whl", hash = "sha256:d0e7b7b9eb9669837a5d70808a7ea45f2b61961b56f9f69a233bad6bd36ce260"},
461 {file = "kivy_deps.angle-0.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b9d07976b0bf6bac724a42aa8ed5a8c7caa95609046db30c8f15bb731f8e4d36"},
462 {file = "kivy_deps.angle-0.3.0-cp38-cp38-win32.whl", hash = "sha256:99c40d53582a958748e251dfbd61aa67fb85963e27529ca08a21f2f5eeed04e1"},
463 {file = "kivy_deps.angle-0.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:50605fdd4c9fdbe9f717069734a598a9aba0afe5d3f0412afbe2ecff0326e92d"},
464 {file = "kivy_deps.angle-0.3.0-cp39-cp39-win32.whl", hash = "sha256:64ac7f33c000585dc30194e604aed925972c6b7c3848b5c3b073ae916fb0b55c"},
465 {file = "kivy_deps.angle-0.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:bb4d53f15a093214adbbe205c108ede5cc0f6af6eff104c1b8c468ddaaf6400a"},
466]
467"kivy-deps.glew" = [
468 {file = "kivy_deps.glew-0.3.0-cp36-cp36m-win32.whl", hash = "sha256:5a63e3dd0affef2613410fe5b9b8572f1932ae2285db60071446d62f37961825"},
469 {file = "kivy_deps.glew-0.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:28aa195875a767314b12091842bdcf832401077f9e65dd9975059ddb978f2f75"},
470 {file = "kivy_deps.glew-0.3.0-cp37-cp37m-win32.whl", hash = "sha256:6c941f321fa8fd34083054f74b9a810bc2a1f3e2560e4fa3df31995c9971f94a"},
471 {file = "kivy_deps.glew-0.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f836e249970b2e1fc0a0d1bd3716892165ee5180214c071c0f804a934c363396"},
472 {file = "kivy_deps.glew-0.3.0-cp38-cp38-win32.whl", hash = "sha256:4166c62999ed8a68036540bf154e25cc92ec1563fe78111926238f59b44a9af3"},
473 {file = "kivy_deps.glew-0.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:3e6f3376ea65b3ced19f07c63f831aa8d3028fac6970d01b400b031fbb8bbe4d"},
474 {file = "kivy_deps.glew-0.3.0-cp39-cp39-win32.whl", hash = "sha256:a79cc62489b1fc8dbe62aab7482865c670e1e781ec9b3f0d93f5bc87423af435"},
475 {file = "kivy_deps.glew-0.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:a57fece21c313c90c0f51a0c2b3e172a2f807bee867e0e5fad1cc014213a3543"},
476]
477"kivy-deps.sdl2" = [
478 {file = "kivy_deps.sdl2-0.3.1-cp36-cp36m-win32.whl", hash = "sha256:549e6423f55216bc761a11ec91508eb6fe836ffb984c7a3c7a58b7543d8f8f77"},
479 {file = "kivy_deps.sdl2-0.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:560de04f15f59e8e94955442b72d1a1164989d3d502b5a9d132437a4c229e52f"},
480 {file = "kivy_deps.sdl2-0.3.1-cp37-cp37m-win32.whl", hash = "sha256:a7cee2215eb428b0be34c1da0fad806036b1382804c0e4ef62b19b11320c8462"},
481 {file = "kivy_deps.sdl2-0.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:3e37948c010681e3f58c408940e62106226a2b1e5a2bf7764469cfd683025698"},
482 {file = "kivy_deps.sdl2-0.3.1-cp38-cp38-win32.whl", hash = "sha256:e9ad50f2f469c8bd92720f547ab722cc36ef13c1a25ef78154b6ab90d48bd960"},
483 {file = "kivy_deps.sdl2-0.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:984e7fa9e1fe06fd902bb745e986300b65e00ba0eb4ecfe278f52a1915370cd0"},
484 {file = "kivy_deps.sdl2-0.3.1-cp39-cp39-win32.whl", hash = "sha256:50726d6aeba460be1a9bd944ff0e763e58e122ef04b82ccbd03947ae7585cde4"},
485 {file = "kivy_deps.sdl2-0.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:4a5550410e2649b72984d294fb45564bc8d76fc0bef009406d8cb328d994855c"},
486]
487kivy-garden = [
488 {file = "Kivy Garden-0.1.4.tar.gz", hash = "sha256:9b7d9de5efacbcd0c4b3dd873b30622a86093c9965aa47b523c7a32f3eb34610"},
489 {file = "kivy-garden-0.1.4.tar.gz", hash = "sha256:c256f42788421273a08fbb0a228f0fb0e80dd86b629fb8c0920507f645be6c72"},
490]
491macholib = [
492 {file = "macholib-1.14-py2.py3-none-any.whl", hash = "sha256:c500f02867515e6c60a27875b408920d18332ddf96b4035ef03beddd782d4281"},
493 {file = "macholib-1.14.tar.gz", hash = "sha256:0c436bc847e7b1d9bda0560351bf76d7caf930fb585a828d13608839ef42c432"},
494]
495markdown = [
496 {file = "Markdown-3.3.4-py3-none-any.whl", hash = "sha256:96c3ba1261de2f7547b46a00ea8463832c921d3f9d6aba3f255a6f71386db20c"},
497 {file = "Markdown-3.3.4.tar.gz", hash = "sha256:31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49"},
498]
499pefile = [
500 {file = "pefile-2021.5.24.tar.gz", hash = "sha256:ed79b2353daa58421459abf4d685953bde0adf9f6e188944f97ba9795f100246"},
501]
502pycparser = [
503 {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
504 {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
505]
506pydub = [
507 {file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"},
508 {file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"},
509]
510pygments = [
511 {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"},
512 {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"},
513]
514pyinstaller = [
515 {file = "pyinstaller-4.5.1-py3-none-macosx_10_13_universal2.whl", hash = "sha256:ecc2baadeeefd2b6fbf39d13c65d4aa603afdda1c6aaaebc4577ba72893fee9e"},
516 {file = "pyinstaller-4.5.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:4d848cd782ee0893d7ad9fe2bfe535206a79f0b6760cecc5f2add831258b9322"},
517 {file = "pyinstaller-4.5.1-py3-none-manylinux2014_i686.whl", hash = "sha256:8f747b190e6ad30e2d2fd5da9a64636f61aac8c038c0b7f685efa92c782ea14f"},
518 {file = "pyinstaller-4.5.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c587da8f521a7ce1b9efb4e3d0117cd63c92dc6cedff24590aeef89372f53012"},
519 {file = "pyinstaller-4.5.1-py3-none-win32.whl", hash = "sha256:fed9f5e4802769a416a8f2ca171c6be961d1861cc05a0b71d20dfe05423137e9"},
520 {file = "pyinstaller-4.5.1-py3-none-win_amd64.whl", hash = "sha256:aae456205c68355f9597411090576bb31b614e53976b4c102d072bbe5db8392a"},
521 {file = "pyinstaller-4.5.1.tar.gz", hash = "sha256:30733baaf8971902286a0ddf77e5499ac5f7bf8e7c39163e83d4f8c696ef265e"},
522]
523pyinstaller-hooks-contrib = [
524 {file = "pyinstaller-hooks-contrib-2021.2.tar.gz", hash = "sha256:7f5d0689b30da3092149fc536a835a94045ac8c9f0e6dfb23ac171890f5ea8f2"},
525 {file = "pyinstaller_hooks_contrib-2021.2-py2.py3-none-any.whl", hash = "sha256:57964f93eb69255c49159ffdf052aae893feed223b0f69773dfd010ca6c569d9"},
526]
527pypiwin32 = [
528 {file = "pypiwin32-223-py3-none-any.whl", hash = "sha256:67adf399debc1d5d14dffc1ab5acacb800da569754fafdc576b2a039485aa775"},
529 {file = "pypiwin32-223.tar.gz", hash = "sha256:71be40c1fbd28594214ecaecb58e7aa8b708eabfa0125c8a109ebd51edbd776a"},
530]
531pywin32 = [
532 {file = "pywin32-301-cp35-cp35m-win32.whl", hash = "sha256:93367c96e3a76dfe5003d8291ae16454ca7d84bb24d721e0b74a07610b7be4a7"},
533 {file = "pywin32-301-cp35-cp35m-win_amd64.whl", hash = "sha256:9635df6998a70282bd36e7ac2a5cef9ead1627b0a63b17c731312c7a0daebb72"},
534 {file = "pywin32-301-cp36-cp36m-win32.whl", hash = "sha256:c866f04a182a8cb9b7855de065113bbd2e40524f570db73ef1ee99ff0a5cc2f0"},
535 {file = "pywin32-301-cp36-cp36m-win_amd64.whl", hash = "sha256:dafa18e95bf2a92f298fe9c582b0e205aca45c55f989937c52c454ce65b93c78"},
536 {file = "pywin32-301-cp37-cp37m-win32.whl", hash = "sha256:98f62a3f60aa64894a290fb7494bfa0bfa0a199e9e052e1ac293b2ad3cd2818b"},
537 {file = "pywin32-301-cp37-cp37m-win_amd64.whl", hash = "sha256:fb3b4933e0382ba49305cc6cd3fb18525df7fd96aa434de19ce0878133bf8e4a"},
538 {file = "pywin32-301-cp38-cp38-win32.whl", hash = "sha256:88981dd3cfb07432625b180f49bf4e179fb8cbb5704cd512e38dd63636af7a17"},
539 {file = "pywin32-301-cp38-cp38-win_amd64.whl", hash = "sha256:8c9d33968aa7fcddf44e47750e18f3d034c3e443a707688a008a2e52bbef7e96"},
540 {file = "pywin32-301-cp39-cp39-win32.whl", hash = "sha256:595d397df65f1b2e0beaca63a883ae6d8b6df1cdea85c16ae85f6d2e648133fe"},
541 {file = "pywin32-301-cp39-cp39-win_amd64.whl", hash = "sha256:87604a4087434cd814ad8973bd47d6524bd1fa9e971ce428e76b62a5e0860fdf"},
542]
543pywin32-ctypes = [
544 {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
545 {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
546]
547pyyaml = [
548 {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"},
549 {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"},
550 {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"},
551 {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"},
552 {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"},
553 {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"},
554 {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"},
555 {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"},
556 {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"},
557 {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"},
558 {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"},
559 {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"},
560 {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"},
561 {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"},
562 {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"},
563 {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"},
564 {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"},
565 {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"},
566 {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"},
567 {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"},
568 {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"},
569 {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"},
570 {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"},
571 {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"},
572 {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"},
573 {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"},
574 {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"},
575 {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"},
576 {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"},
577]
578requests = [
579 {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
580 {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"},
581]
582setuptools-scm = [
583 {file = "setuptools_scm-6.0.1-py3-none-any.whl", hash = "sha256:c3bd5f701c8def44a5c0bfe8d407bef3f80342217ef3492b951f3777bd2d915c"},
584 {file = "setuptools_scm-6.0.1.tar.gz", hash = "sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92"},
585]
586shiv = [
587 {file = "shiv-0.5.2-py2.py3-none-any.whl", hash = "sha256:54e125dce9aa583fc0728bb3871eff35b6111a84eb37e70f24671ae5d592a4c4"},
588 {file = "shiv-0.5.2.tar.gz", hash = "sha256:3fe5119226e6790d87e01bea7a839340ee8d55637aa3f7414088a267aee9ffd2"},
589]
590six = [
591 {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
592 {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
593]
594sounddevice = [
595 {file = "sounddevice-0.4.2-py3-none-any.whl", hash = "sha256:7820da4db09c83b5f8ff49a1caebd6a7a883c53e05df7edd09ca792bf1928b94"},
596 {file = "sounddevice-0.4.2-py3-none-macosx_10_6_x86_64.whl", hash = "sha256:ef5478d67e2dc9855c25b87dd3d5ef74c7ba25d21e6721419900c5bc8e4a9637"},
597 {file = "sounddevice-0.4.2-py3-none-win32.whl", hash = "sha256:18bfd7efa121872c923b983ab253d6985cba988c331eab87029e48b51e739dbb"},
598 {file = "sounddevice-0.4.2-py3-none-win_amd64.whl", hash = "sha256:22a5f72a9877ccba02f98f86dede44b7dc93a0fd468df6e8c0c47c2656274140"},
599 {file = "sounddevice-0.4.2.tar.gz", hash = "sha256:1c9b07cff59c837d258002ed806ee134ed367ef11042bd7d283d6ce407bf889c"},
600]
601transitions = [
602 {file = "transitions-0.8.8-py2.py3-none-any.whl", hash = "sha256:f35efa070fbdf9a0f3f093b19f1258068786af75786a8cbcc884444f3d1a66d4"},
603 {file = "transitions-0.8.8.tar.gz", hash = "sha256:e7a86b31a161a76133f189b3ae9dad2755a80ea4c1e0eee1805648d021fb677d"},
604]
605urllib3 = [
606 {file = "urllib3-1.26.6-py2.py3-none-any.whl", hash = "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4"},
607 {file = "urllib3-1.26.6.tar.gz", hash = "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f"},
608]
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..5fd4d3a
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,41 @@
1[tool.poetry]
2name = "music_sampler"
3version = "1.6.0"
4description = "A music player which associates each key on the keyboard to a set of actions to run"
5authors = ["Ismaël Bouya <ismael.bouya@normalesup.org>", "Denise Maurice <denise.maurice@normalesup.org"]
6license = "MIT"
7keywords = ["music", "sampler", "keyboard"]
8readme = "README"
9homepage = "https://git.immae.eu/cgit/perso/Immae/Projets/Python/MusicSampler.git/about/"
10repository = "https://git.immae.eu/perso/Immae/Projets/Python/MusicSampler.git"
11include = [
12 "music_sampler/locales/fr/LC_MESSAGES/*.mo",
13 "run.py"
14]
15classifiers = [
16 'Development Status :: 5 - Production/Stable',
17 'Intended Audience :: End Users/Desktop',
18 'Topic :: Multimedia :: Sound/Audio :: Players'
19]
20
21[tool.poetry.dependencies]
22python = "^3.9"
23pydub = "^0.25.1"
24sounddevice = "^0.4.2"
25transitions = "^0.8.8"
26PyYAML = "^5.4.1"
27Kivy = "^2.0.0"
28
29[tool.poetry.dev-dependencies]
30Markdown = "^3.3.4"
31Pygments = "^2.10.0"
32shiv = "^0.5.2"
33pyinstaller = "^4.5.1"
34setuptools-scm = "^6.0.1"
35
36[tool.poetry.scripts]
37music_sampler = "music_sampler.app:main"
38
39[build-system]
40requires = ["poetry-core>=1.0.0"]
41build-backend = "poetry.core.masonry.api"
diff --git a/setup.py b/setup.py
index 865881c..e9f2ca6 100644
--- a/setup.py
+++ b/setup.py
@@ -11,15 +11,15 @@ setup(name='music_sampler',
11 'to a set of actions to run', 11 'to a set of actions to run',
12 long_description=readme(), 12 long_description=readme(),
13 classifiers= [ 13 classifiers= [
14 'Development Status :: 4 - Beta', 14 'Development Status :: 5 - Production/Stable',
15 'Intended Audience :: End Users/Desktop', 15 'Intended Audience :: End Users/Desktop',
16 'License :: OSI Approved :: MIT License', 16 'License :: OSI Approved :: MIT License',
17 'Operating System :: POSIX :: Linux', 17 'Operating System :: POSIX :: Linux',
18 'Programming Language :: Python :: 3.5', 18 'Programming Language :: Python :: 3.9',
19 'Topic :: Multimedia :: Sound/Audio :: Players' 19 'Topic :: Multimedia :: Sound/Audio :: Players'
20 ], 20 ],
21 keywords='music sampler keyboard', 21 keywords='music sampler keyboard',
22 url='https://git.immae.eu/?p=perso/Immae/Projets/Python/MusicSampler.git', 22 url='https://git.immae.eu/cgit/perso/Immae/Projets/Python/MusicSampler.git/about/',
23 author='Ismaël Bouya', 23 author='Ismaël Bouya',
24 author_email='ismael.bouya@normalesup.org', 24 author_email='ismael.bouya@normalesup.org',
25 license='MIT', 25 license='MIT',