├── .gitignore
├── Fault-Signal-Schematic-Diagram.png
├── README.md
├── fault_signals.py
├── poetry.lock
└── pyproject.toml
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | *.png
--------------------------------------------------------------------------------
/Fault-Signal-Schematic-Diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vuong-viet-hung/Bearing-Fault-Simulation-Python/aa6ce588c4bfae5612e0fea30ac1654ee82e095f/Fault-Signal-Schematic-Diagram.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Fault-Bearing-Signal-Simulation
2 | ## I - Description
3 | The program simulate fault bearing signal for CNN-designated classification task.
4 | The implementation is based on:
5 |
6 | - [Calculation of Radial Load Distribution on Ball and Roller Bearings with Positive, Negative and Zero Clearance](https://www.sciencedirect.com/science/article/abs/pii/S0020740317304174)
7 | - [Vibration Model of Rolling Element Bearings in a Rotor-bearing](https://www.sciencedirect.com/science/article/pii/S0022460X12009236)
8 |
9 | For more details on the classification of fault bearing signal using CNN, please refer to:
10 |
11 | - [An Intelligent Fault Diagnosis Approach Based on Transfer Learning](https://www.sciencedirect.com/science/article/abs/pii/S0888327018308367)
12 | - [CNN-Based Bearing Health Monitoring for Embedded Systems](https://mdpi-res.com/d_attachment/sensors/sensors-20-06886/article_deploy/sensors-20-06886.pdf?version=1606900214)
13 | - [Deep Learning-Based Bearing Fault Diagnosis]()
14 |
15 | ## II - Experiment
16 | The project is currently in progress, the expected outcome signal should obtain the shape similar to the figure below:
17 |
18 | 
19 |
20 | ## III - Installation
21 | The project uses [Poetry](https://python-poetry.org/) as packages and environment manager. In order to install Poetry, follow the [installation guide](https://python-poetry.org/docs/#osx--linux--bashonwindows-install-instructions). \
22 | Run the flowing commands inside the project directory:
23 | ```
24 | poetry install
25 | ```
26 | to install project dependencies.
27 | ```
28 | poetry shell
29 | ```
30 | to activate the environment.
31 |
--------------------------------------------------------------------------------
/fault_signals.py:
--------------------------------------------------------------------------------
1 | from dataclasses import dataclass
2 | from typing import Optional
3 |
4 | import matplotlib.pyplot as plt
5 | import numpy as np
6 |
7 |
8 | N_TIME_SAMPLES = 1000
9 | N_SIMULATED_IMPULSES = 5
10 |
11 | NATURAL_FREQUENCY = 10.0
12 | DECAY_RATE = 5.0
13 |
14 | AVERAGE_PERIOD = 1.0
15 |
16 |
17 | @dataclass
18 | class DecayComponentCreator:
19 | """Class that represents the decay component of fault signal."""
20 |
21 | natural_frequency: float
22 | decay_rate: float
23 |
24 | def __call__(self, t: np.ndarray) -> np.ndarray:
25 | decay_component = np.exp(-self.decay_rate * t) * np.cos(
26 | 2 * np.pi * self.natural_frequency * t
27 | )
28 | # Set signal amplitude for time before zero to zero
29 | decay_component[t < 0] = np.zeros(np.sum(t < 0))
30 | return decay_component
31 |
32 |
33 | @dataclass
34 | class FaultSignalCreator:
35 | """Class that represents the fault signal."""
36 |
37 | impulse_amplitudes: np.ndarray
38 | create_decay_component: DecayComponentCreator
39 | average_period: float
40 | period_fluctuations: Optional[np.ndarray] = None
41 |
42 | def _create_fault_impulse(self, t: np.ndarray, idx: int) -> np.ndarray:
43 | """Create a single fault impulse."""
44 | fault_impulse = self.impulse_amplitudes[idx] * self.create_decay_component(
45 | t - idx * self.average_period - self.period_fluctuations[idx]
46 | )
47 | return fault_impulse
48 |
49 | def __call__(self, t: np.ndarray) -> np.ndarray:
50 | if self.period_fluctuations is None:
51 | self.period_fluctuations = np.zeros(len(t))
52 | fault_impulses = np.array(
53 | [
54 | self._create_fault_impulse(t, idx)
55 | for idx, _ in enumerate(self.impulse_amplitudes)
56 | ]
57 | )
58 | fault_signal = np.sum(fault_impulses, axis=0)
59 | return fault_signal
60 |
61 |
62 | def main() -> None:
63 | impulse_amplitudes = np.ones(N_SIMULATED_IMPULSES)
64 | create_decay_component = DecayComponentCreator(NATURAL_FREQUENCY, DECAY_RATE)
65 | create_fault_signal = FaultSignalCreator(
66 | impulse_amplitudes,
67 | create_decay_component,
68 | AVERAGE_PERIOD,
69 | )
70 |
71 | signal_duration = AVERAGE_PERIOD * N_SIMULATED_IMPULSES
72 | t = np.linspace(0, signal_duration, N_TIME_SAMPLES)
73 | x = create_fault_signal(t)
74 |
75 | plt.plot(t, x)
76 | plt.grid(True)
77 | plt.show()
78 |
79 |
80 | if __name__ == "__main__":
81 | main()
82 |
--------------------------------------------------------------------------------
/poetry.lock:
--------------------------------------------------------------------------------
1 | [[package]]
2 | name = "astroid"
3 | version = "2.11.7"
4 | description = "An abstract syntax tree for Python with inference support."
5 | category = "dev"
6 | optional = false
7 | python-versions = ">=3.6.2"
8 |
9 | [package.dependencies]
10 | lazy-object-proxy = ">=1.4.0"
11 | typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""}
12 | wrapt = ">=1.11,<2"
13 |
14 | [[package]]
15 | name = "black"
16 | version = "22.6.0"
17 | description = "The uncompromising code formatter."
18 | category = "dev"
19 | optional = false
20 | python-versions = ">=3.6.2"
21 |
22 | [package.dependencies]
23 | click = ">=8.0.0"
24 | mypy-extensions = ">=0.4.3"
25 | pathspec = ">=0.9.0"
26 | platformdirs = ">=2"
27 | tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""}
28 | typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}
29 |
30 | [package.extras]
31 | colorama = ["colorama (>=0.4.3)"]
32 | d = ["aiohttp (>=3.7.4)"]
33 | jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
34 | uvloop = ["uvloop (>=0.15.2)"]
35 |
36 | [[package]]
37 | name = "click"
38 | version = "8.1.3"
39 | description = "Composable command line interface toolkit"
40 | category = "dev"
41 | optional = false
42 | python-versions = ">=3.7"
43 |
44 | [package.dependencies]
45 | colorama = {version = "*", markers = "platform_system == \"Windows\""}
46 |
47 | [[package]]
48 | name = "colorama"
49 | version = "0.4.5"
50 | description = "Cross-platform colored terminal text."
51 | category = "dev"
52 | optional = false
53 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
54 |
55 | [[package]]
56 | name = "cycler"
57 | version = "0.11.0"
58 | description = "Composable style cycles"
59 | category = "main"
60 | optional = false
61 | python-versions = ">=3.6"
62 |
63 | [[package]]
64 | name = "dill"
65 | version = "0.3.5.1"
66 | description = "serialize all of python"
67 | category = "dev"
68 | optional = false
69 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*"
70 |
71 | [package.extras]
72 | graph = ["objgraph (>=1.7.2)"]
73 |
74 | [[package]]
75 | name = "fonttools"
76 | version = "4.34.4"
77 | description = "Tools to manipulate font files"
78 | category = "main"
79 | optional = false
80 | python-versions = ">=3.7"
81 |
82 | [package.extras]
83 | all = ["fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "zopfli (>=0.1.4)", "lz4 (>=1.7.4.2)", "matplotlib", "sympy", "skia-pathops (>=0.5.0)", "uharfbuzz (>=0.23.0)", "brotlicffi (>=0.8.0)", "scipy", "brotli (>=1.0.1)", "munkres", "unicodedata2 (>=14.0.0)", "xattr"]
84 | graphite = ["lz4 (>=1.7.4.2)"]
85 | interpolatable = ["scipy", "munkres"]
86 | lxml = ["lxml (>=4.0,<5)"]
87 | pathops = ["skia-pathops (>=0.5.0)"]
88 | plot = ["matplotlib"]
89 | repacker = ["uharfbuzz (>=0.23.0)"]
90 | symfont = ["sympy"]
91 | type1 = ["xattr"]
92 | ufo = ["fs (>=2.2.0,<3)"]
93 | unicode = ["unicodedata2 (>=14.0.0)"]
94 | woff = ["zopfli (>=0.1.4)", "brotlicffi (>=0.8.0)", "brotli (>=1.0.1)"]
95 |
96 | [[package]]
97 | name = "isort"
98 | version = "5.10.1"
99 | description = "A Python utility / library to sort Python imports."
100 | category = "dev"
101 | optional = false
102 | python-versions = ">=3.6.1,<4.0"
103 |
104 | [package.extras]
105 | pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
106 | requirements_deprecated_finder = ["pipreqs", "pip-api"]
107 | colors = ["colorama (>=0.4.3,<0.5.0)"]
108 | plugins = ["setuptools"]
109 |
110 | [[package]]
111 | name = "kiwisolver"
112 | version = "1.4.4"
113 | description = "A fast implementation of the Cassowary constraint solver"
114 | category = "main"
115 | optional = false
116 | python-versions = ">=3.7"
117 |
118 | [[package]]
119 | name = "lazy-object-proxy"
120 | version = "1.7.1"
121 | description = "A fast and thorough lazy object proxy."
122 | category = "dev"
123 | optional = false
124 | python-versions = ">=3.6"
125 |
126 | [[package]]
127 | name = "matplotlib"
128 | version = "3.5.2"
129 | description = "Python plotting package"
130 | category = "main"
131 | optional = false
132 | python-versions = ">=3.7"
133 |
134 | [package.dependencies]
135 | cycler = ">=0.10"
136 | fonttools = ">=4.22.0"
137 | kiwisolver = ">=1.0.1"
138 | numpy = ">=1.17"
139 | packaging = ">=20.0"
140 | pillow = ">=6.2.0"
141 | pyparsing = ">=2.2.1"
142 | python-dateutil = ">=2.7"
143 | setuptools_scm = ">=4"
144 |
145 | [[package]]
146 | name = "mccabe"
147 | version = "0.7.0"
148 | description = "McCabe checker, plugin for flake8"
149 | category = "dev"
150 | optional = false
151 | python-versions = ">=3.6"
152 |
153 | [[package]]
154 | name = "mypy"
155 | version = "0.971"
156 | description = "Optional static typing for Python"
157 | category = "dev"
158 | optional = false
159 | python-versions = ">=3.6"
160 |
161 | [package.dependencies]
162 | mypy-extensions = ">=0.4.3"
163 | tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
164 | typing-extensions = ">=3.10"
165 |
166 | [package.extras]
167 | dmypy = ["psutil (>=4.0)"]
168 | python2 = ["typed-ast (>=1.4.0,<2)"]
169 | reports = ["lxml"]
170 |
171 | [[package]]
172 | name = "mypy-extensions"
173 | version = "0.4.3"
174 | description = "Experimental type system extensions for programs checked with the mypy typechecker."
175 | category = "dev"
176 | optional = false
177 | python-versions = "*"
178 |
179 | [[package]]
180 | name = "numpy"
181 | version = "1.23.1"
182 | description = "NumPy is the fundamental package for array computing with Python."
183 | category = "main"
184 | optional = false
185 | python-versions = ">=3.8"
186 |
187 | [[package]]
188 | name = "packaging"
189 | version = "21.3"
190 | description = "Core utilities for Python packages"
191 | category = "main"
192 | optional = false
193 | python-versions = ">=3.6"
194 |
195 | [package.dependencies]
196 | pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
197 |
198 | [[package]]
199 | name = "pathspec"
200 | version = "0.9.0"
201 | description = "Utility library for gitignore style pattern matching of file paths."
202 | category = "dev"
203 | optional = false
204 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
205 |
206 | [[package]]
207 | name = "pillow"
208 | version = "9.2.0"
209 | description = "Python Imaging Library (Fork)"
210 | category = "main"
211 | optional = false
212 | python-versions = ">=3.7"
213 |
214 | [package.extras]
215 | docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"]
216 | tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
217 |
218 | [[package]]
219 | name = "platformdirs"
220 | version = "2.5.2"
221 | description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
222 | category = "dev"
223 | optional = false
224 | python-versions = ">=3.7"
225 |
226 | [package.extras]
227 | docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"]
228 | test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"]
229 |
230 | [[package]]
231 | name = "pylint"
232 | version = "2.14.5"
233 | description = "python code static checker"
234 | category = "dev"
235 | optional = false
236 | python-versions = ">=3.7.2"
237 |
238 | [package.dependencies]
239 | astroid = ">=2.11.6,<=2.12.0-dev0"
240 | colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
241 | dill = ">=0.2"
242 | isort = ">=4.2.5,<6"
243 | mccabe = ">=0.6,<0.8"
244 | platformdirs = ">=2.2.0"
245 | tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
246 | tomlkit = ">=0.10.1"
247 | typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""}
248 |
249 | [package.extras]
250 | spelling = ["pyenchant (>=3.2,<4.0)"]
251 | testutils = ["gitpython (>3)"]
252 |
253 | [[package]]
254 | name = "pyparsing"
255 | version = "3.0.9"
256 | description = "pyparsing module - Classes and methods to define and execute parsing grammars"
257 | category = "main"
258 | optional = false
259 | python-versions = ">=3.6.8"
260 |
261 | [package.extras]
262 | diagrams = ["railroad-diagrams", "jinja2"]
263 |
264 | [[package]]
265 | name = "python-dateutil"
266 | version = "2.8.2"
267 | description = "Extensions to the standard Python datetime module"
268 | category = "main"
269 | optional = false
270 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
271 |
272 | [package.dependencies]
273 | six = ">=1.5"
274 |
275 | [[package]]
276 | name = "setuptools-scm"
277 | version = "7.0.5"
278 | description = "the blessed package to manage your versions by scm tags"
279 | category = "main"
280 | optional = false
281 | python-versions = ">=3.7"
282 |
283 | [package.dependencies]
284 | packaging = ">=20.0"
285 | tomli = ">=1.0.0"
286 | typing-extensions = "*"
287 |
288 | [package.extras]
289 | test = ["pytest (>=6.2)", "virtualenv (>20)"]
290 | toml = ["setuptools (>=42)"]
291 |
292 | [[package]]
293 | name = "six"
294 | version = "1.16.0"
295 | description = "Python 2 and 3 compatibility utilities"
296 | category = "main"
297 | optional = false
298 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
299 |
300 | [[package]]
301 | name = "tomli"
302 | version = "2.0.1"
303 | description = "A lil' TOML parser"
304 | category = "main"
305 | optional = false
306 | python-versions = ">=3.7"
307 |
308 | [[package]]
309 | name = "tomlkit"
310 | version = "0.11.1"
311 | description = "Style preserving TOML library"
312 | category = "dev"
313 | optional = false
314 | python-versions = ">=3.6,<4.0"
315 |
316 | [[package]]
317 | name = "typing-extensions"
318 | version = "4.3.0"
319 | description = "Backported and Experimental Type Hints for Python 3.7+"
320 | category = "main"
321 | optional = false
322 | python-versions = ">=3.7"
323 |
324 | [[package]]
325 | name = "wrapt"
326 | version = "1.14.1"
327 | description = "Module for decorators, wrappers and monkey patching."
328 | category = "dev"
329 | optional = false
330 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
331 |
332 | [metadata]
333 | lock-version = "1.1"
334 | python-versions = "^3.9"
335 | content-hash = "4216a3776b3f6d81ba581971a94c05a03ab2cd68f52c19528a2f2f418d4e6444"
336 |
337 | [metadata.files]
338 | astroid = []
339 | black = []
340 | click = [
341 | {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
342 | {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
343 | ]
344 | colorama = []
345 | cycler = [
346 | {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"},
347 | {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"},
348 | ]
349 | dill = [
350 | {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"},
351 | {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"},
352 | ]
353 | fonttools = []
354 | isort = [
355 | {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"},
356 | {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"},
357 | ]
358 | kiwisolver = []
359 | lazy-object-proxy = [
360 | {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"},
361 | {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"},
362 | {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"},
363 | {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"},
364 | {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"},
365 | {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"},
366 | {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"},
367 | {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"},
368 | {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"},
369 | {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"},
370 | {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"},
371 | {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"},
372 | {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"},
373 | {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"},
374 | {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"},
375 | {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"},
376 | {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"},
377 | {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"},
378 | {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"},
379 | {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"},
380 | {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"},
381 | {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"},
382 | {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"},
383 | {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"},
384 | {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"},
385 | {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"},
386 | {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"},
387 | {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"},
388 | {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"},
389 | {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"},
390 | {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"},
391 | {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"},
392 | {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"},
393 | {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"},
394 | {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"},
395 | {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"},
396 | {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"},
397 | ]
398 | matplotlib = [
399 | {file = "matplotlib-3.5.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:03bbb3f5f78836855e127b5dab228d99551ad0642918ccbf3067fcd52ac7ac5e"},
400 | {file = "matplotlib-3.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49a5938ed6ef9dda560f26ea930a2baae11ea99e1c2080c8714341ecfda72a89"},
401 | {file = "matplotlib-3.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:77157be0fc4469cbfb901270c205e7d8adb3607af23cef8bd11419600647ceed"},
402 | {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5844cea45d804174bf0fac219b4ab50774e504bef477fc10f8f730ce2d623441"},
403 | {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c87973ddec10812bddc6c286b88fdd654a666080fbe846a1f7a3b4ba7b11ab78"},
404 | {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a05f2b37222319753a5d43c0a4fd97ed4ff15ab502113e3f2625c26728040cf"},
405 | {file = "matplotlib-3.5.2-cp310-cp310-win32.whl", hash = "sha256:9776e1a10636ee5f06ca8efe0122c6de57ffe7e8c843e0fb6e001e9d9256ec95"},
406 | {file = "matplotlib-3.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:b4fedaa5a9aa9ce14001541812849ed1713112651295fdddd640ea6620e6cf98"},
407 | {file = "matplotlib-3.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ee175a571e692fc8ae8e41ac353c0e07259113f4cb063b0ec769eff9717e84bb"},
408 | {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e8bda1088b941ead50caabd682601bece983cadb2283cafff56e8fcddbf7d7f"},
409 | {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9480842d5aadb6e754f0b8f4ebeb73065ac8be1855baa93cd082e46e770591e9"},
410 | {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6c623b355d605a81c661546af7f24414165a8a2022cddbe7380a31a4170fa2e9"},
411 | {file = "matplotlib-3.5.2-cp37-cp37m-win32.whl", hash = "sha256:a91426ae910819383d337ba0dc7971c7cefdaa38599868476d94389a329e599b"},
412 | {file = "matplotlib-3.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:c4b82c2ae6d305fcbeb0eb9c93df2602ebd2f174f6e8c8a5d92f9445baa0c1d3"},
413 | {file = "matplotlib-3.5.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ebc27ad11df3c1661f4677a7762e57a8a91dd41b466c3605e90717c9a5f90c82"},
414 | {file = "matplotlib-3.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a32ea6e12e80dedaca2d4795d9ed40f97bfa56e6011e14f31502fdd528b9c89"},
415 | {file = "matplotlib-3.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2a0967d4156adbd0d46db06bc1a877f0370bce28d10206a5071f9ecd6dc60b79"},
416 | {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2b696699386766ef171a259d72b203a3c75d99d03ec383b97fc2054f52e15cf"},
417 | {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7f409716119fa39b03da3d9602bd9b41142fab7a0568758cd136cd80b1bf36c8"},
418 | {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b8d3f4e71e26307e8c120b72c16671d70c5cd08ae412355c11254aa8254fb87f"},
419 | {file = "matplotlib-3.5.2-cp38-cp38-win32.whl", hash = "sha256:b6c63cd01cad0ea8704f1fd586e9dc5777ccedcd42f63cbbaa3eae8dd41172a1"},
420 | {file = "matplotlib-3.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:75c406c527a3aa07638689586343f4b344fcc7ab1f79c396699eb550cd2b91f7"},
421 | {file = "matplotlib-3.5.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4a44cdfdb9d1b2f18b1e7d315eb3843abb097869cd1ef89cfce6a488cd1b5182"},
422 | {file = "matplotlib-3.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3d8e129af95b156b41cb3be0d9a7512cc6d73e2b2109f82108f566dbabdbf377"},
423 | {file = "matplotlib-3.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:364e6bca34edc10a96aa3b1d7cd76eb2eea19a4097198c1b19e89bee47ed5781"},
424 | {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea75df8e567743207e2b479ba3d8843537be1c146d4b1e3e395319a4e1a77fe9"},
425 | {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:44c6436868186564450df8fd2fc20ed9daaef5caad699aa04069e87099f9b5a8"},
426 | {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d7705022df2c42bb02937a2a824f4ec3cca915700dd80dc23916af47ff05f1a"},
427 | {file = "matplotlib-3.5.2-cp39-cp39-win32.whl", hash = "sha256:ee0b8e586ac07f83bb2950717e66cb305e2859baf6f00a9c39cc576e0ce9629c"},
428 | {file = "matplotlib-3.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:c772264631e5ae61f0bd41313bbe48e1b9bcc95b974033e1118c9caa1a84d5c6"},
429 | {file = "matplotlib-3.5.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:751d3815b555dcd6187ad35b21736dc12ce6925fc3fa363bbc6dc0f86f16484f"},
430 | {file = "matplotlib-3.5.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:31fbc2af27ebb820763f077ec7adc79b5a031c2f3f7af446bd7909674cd59460"},
431 | {file = "matplotlib-3.5.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4fa28ca76ac5c2b2d54bc058b3dad8e22ee85d26d1ee1b116a6fd4d2277b6a04"},
432 | {file = "matplotlib-3.5.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:24173c23d1bcbaed5bf47b8785d27933a1ac26a5d772200a0f3e0e38f471b001"},
433 | {file = "matplotlib-3.5.2.tar.gz", hash = "sha256:48cf850ce14fa18067f2d9e0d646763681948487a8080ec0af2686468b4607a2"},
434 | ]
435 | mccabe = [
436 | {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
437 | {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
438 | ]
439 | mypy = []
440 | mypy-extensions = [
441 | {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
442 | {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
443 | ]
444 | numpy = []
445 | packaging = [
446 | {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
447 | {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
448 | ]
449 | pathspec = [
450 | {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"},
451 | {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
452 | ]
453 | pillow = []
454 | platformdirs = [
455 | {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
456 | {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
457 | ]
458 | pylint = []
459 | pyparsing = [
460 | {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
461 | {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
462 | ]
463 | python-dateutil = [
464 | {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
465 | {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
466 | ]
467 | setuptools-scm = []
468 | six = [
469 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
470 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
471 | ]
472 | tomli = [
473 | {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
474 | {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
475 | ]
476 | tomlkit = []
477 | typing-extensions = []
478 | wrapt = [
479 | {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"},
480 | {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"},
481 | {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"},
482 | {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"},
483 | {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"},
484 | {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"},
485 | {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"},
486 | {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"},
487 | {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"},
488 | {file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"},
489 | {file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"},
490 | {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"},
491 | {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"},
492 | {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"},
493 | {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"},
494 | {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"},
495 | {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"},
496 | {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"},
497 | {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"},
498 | {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"},
499 | {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"},
500 | {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"},
501 | {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"},
502 | {file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"},
503 | {file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"},
504 | {file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"},
505 | {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"},
506 | {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"},
507 | {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"},
508 | {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"},
509 | {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"},
510 | {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"},
511 | {file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"},
512 | {file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"},
513 | {file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"},
514 | {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"},
515 | {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"},
516 | {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"},
517 | {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"},
518 | {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"},
519 | {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"},
520 | {file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"},
521 | {file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"},
522 | {file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"},
523 | {file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"},
524 | {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"},
525 | {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"},
526 | {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"},
527 | {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"},
528 | {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"},
529 | {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"},
530 | {file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"},
531 | {file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"},
532 | {file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"},
533 | {file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"},
534 | {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"},
535 | {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"},
536 | {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"},
537 | {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"},
538 | {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"},
539 | {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"},
540 | {file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"},
541 | {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"},
542 | {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"},
543 | ]
544 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.poetry]
2 | name = "fault-bearing-signal-simulation"
3 | version = "0.1.0"
4 | description = "The program simulate fault bearing signal for CNN-based classification task."
5 | authors = ["vuong-viet-hung "]
6 |
7 | [tool.poetry.dependencies]
8 | python = "^3.9"
9 | numpy = "^1.23.1"
10 | matplotlib = "^3.5.2"
11 |
12 | [tool.poetry.dev-dependencies]
13 | black = "^22.6.0"
14 | mypy = "^0.971"
15 | pylint = "^2.14.5"
16 |
17 | [build-system]
18 | requires = ["poetry-core>=1.0.0"]
19 | build-backend = "poetry.core.masonry.api"
20 |
--------------------------------------------------------------------------------