├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── docs
├── competency-matrix
│ ├── index.md
│ └── python-backend.md
└── index.md
├── mkdocs.yaml
├── poetry.lock
└── pyproject.toml
/.gitignore:
--------------------------------------------------------------------------------
1 | site/
2 | .DS_Store
3 | .vscode/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Dihset
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dihset/awesome-corporate-dev/d45248e43376f5ae539c23d90b52d9a045281c65/Makefile
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # awesome-corporate-dev
2 |
3 | # About
4 |
5 | # Road Map
6 | ### Матрица компетенций backend-python
7 | - [ ] Реализована первая версия матрици.
8 | - [ ] Расставлены уровни влияния у навыков.
9 | - [ ] Добавлена литература для улучшения навыков.
10 |
11 | # Contributing
12 |
13 | # Sponsoring
--------------------------------------------------------------------------------
/docs/competency-matrix/index.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dihset/awesome-corporate-dev/d45248e43376f5ae539c23d90b52d9a045281c65/docs/competency-matrix/index.md
--------------------------------------------------------------------------------
/docs/competency-matrix/python-backend.md:
--------------------------------------------------------------------------------
1 | # Матрица компетенций Python Backend
2 |
3 | ## Цель
4 | Цель данной матрицы компетенций заключается в том, чтобы обеспечить эффективные инструменты для оценки текущих навыков сотрудников и формирования индивидуальных планов развития, способствующих профессиональному росту и улучшению квалификации.
5 | Матрица разработана специально для анализа и оценки уровня навыков Python Backend Developerов, работающих в среднем корпоративном сегменте разработки.
6 |
7 | Использование этой матрицы позволяет не только точно определить текущее состояние компетенций каждого разработчика, но и выявить потенциальные направления для дальнейшего обучения и развития.
8 | Это, в свою очередь, поможет нашим командам оставаться конкурентоспособными и эффективными в динамично меняющейся технологической среде.
9 |
10 | ## Матрица
11 |
12 |
13 |
14 | |
15 | Intern
|
16 | Junior
|
17 | Junior+
|
18 | Middle
|
19 | Middle+
|
20 | Senior
|
21 | Lead
|
22 |
23 |
24 | Python |
25 |
26 | 1. Понимание основных конструкций языка: переменные, условия, циклы. задач.
27 | 2. Основы работы с базовыми типами данных: строки, списки и словари.
28 | 3. Способность создавать простые программы для решения базовых задач.
29 | |
30 |
31 | 1. Уверенное владение основными структурами данных (списки, кортежи, множества).
32 | 2. Обработка ошибок и исключений.
33 | 3. Понимание основ объектно-ориентированного программирования.
34 | |
35 |
36 | 1. Продвинутое использование парадигмы ООП, включая полиморфизм и инкапсуляцию.
37 | 2. Понимание принципов работы декораторов и метаклассов.
38 | |
39 |
40 | 1. Использование инструментов для оптимизации и улучшения производительности Python-кода.
41 | 2. Глубокое понимание GIL (Global Interpreter Lock) и методов его обхода.
42 | 3. Понимание счетчика ссылок и сборщика мусора
43 | |
44 | |
45 | |
46 | |
47 |
48 |
49 | Структуры данных |
50 |
51 | 1. Понимание и использование основных структур данных, таких как списки, множества, словари.
52 | 2. Простые операции (вставка, удаление, поиск) на основных структурах данных.
53 | |
54 |
55 | 1. Эффективное использование списков и словарей для различных задач.
56 | 2. Работа с вложенными структурами данных.
57 | 3. Понимание принципов работы стеков и очередей.
58 | 4. Оценка временной и пространственной сложности алгоритмов на основных структурах данных.
59 | |
60 |
61 | 1. Понимание древовидных структур данных и графов.
62 | 2. Работа с бинарными деревьями, AVL-деревьями и графами.
63 | 3. Работа с двусвязными списками, кольцевыми списками и другими продвинутыми вариантами.
64 | 4. Углубленное понимание работы хеш-таблиц и коллизий.
65 | |
66 |
67 | 1. Работа с несбалансированными деревьями.
68 | 2. Работа с графами, включая алгоритмы обхода.
69 | |
70 |
71 | 1. Понимание распределенных структур данных для масштабируемости.
72 | 2. Работа с согласованными и непрерывными структурами данных.
73 | 3. Оптимизация производительности при использовании структур данных.
74 | 4. Анализ и улучшение сложности алгоритмов.
75 | |
76 |
77 | 1. Работа с потоками данных и безопасностью данных в многопоточных приложениях.
78 | 2. Применение структур данных для эффективного решения задач параллельных вычислений.
79 | |
80 |
81 | 1. Принятие стратегических решений по выбору структур данных в зависимости от требований проекта.
82 | 2. Определение стандартов и лучших практик по использованию структур данных в организации.
83 | 3. Использование структур данных в архитектуре проекта для достижения высокой производительности и масштабируемости.
84 | |
85 |
86 |
87 | Алгоритмы |
88 |
89 | 1. Базовые алгоритмы. (Сортировки. Бинарный поиск)
90 | 2. Сложность алгоритма
91 | |
92 |
93 | 1. Использование более эффективных алгоритмов сортировки (быстрая сортировка, сортировка слиянием).
94 | 2. Работа с бинарным поиском и поиском по хеш-таблицам.
95 | 3. Понимание понятия мемоизации.
96 | |
97 |
98 | 1. Работа с алгоритмами поиска в графах (DFS, BFS).
99 | 2. Применение алгоритмов кратчайшего пути (алгоритм Дейкстры, Флойда-Уоршелла, Беллмана-Форда). |
100 |
101 | 1. Работа с алгоритмами сортировки с временной сложностью O(n log n) (например, TimSort).
102 | 2. Стабильность алгоритмов
103 | 3. Работа с алгоритмами на деревьях (например, обходы дерева, поиск LCA).
104 | 4. Работа с регулярными выражениями.
105 | |
106 | |
107 |
108 | 1. Работа с алгоритмами для решения задач на графах высокой сложности (например, алгоритмы на сетях, потоки в графах).
109 | 2. Применение алгоритмов в распределенных системах и на параллельных архитектурах.
110 | 3. Работа с алгоритмами консенсуса и распределенной блокировкой.
111 | |
112 |
113 | 1. Принятие стратегических решений по выбору алгоритмов в зависимости от требований проекта.
114 | 2. Оценка производительности и масштабируемости алгоритмов.
115 | |
116 |
117 |
118 | Библиотеки |
119 |
120 | 1. Знание базовых библиотек, таких как math , random , sys , json , datetime , random , csv .
121 | |
122 |
123 | 1. Использование базовых библиотек: itertools , functools , logging , dataclasses , re , collections , pathlib , pickle , io , urllib .
124 | 2. Pydantic
125 | 3. requests / httpx
126 | 4. Простые запросы с использованием библиотеки SQLAlchemy для работы с базами данных.
127 | |
128 |
129 | 1. Использование базовых библиотек: threading , multiprocessing , contextlib , contextvars , abs , ast .
130 | 2. Pandas , numpy |
131 |
132 | 1. Работа с библиотекой asyncio . Понимание ее работы
133 | 2. Опыт использования aiohttp для асинхронных HTTP-запросов.
134 | |
135 |
136 | 1. Знание библиотек для обработки больших данных, таких как Apache Spark.
137 | 2. Опыт работы с библиотеками визуализации: matplotlib , seaborn , Plotly . |
138 | |
139 |
140 | 1. Принятие стратегических решений по выбору библиотек и фреймворков для проектов.
141 | |
142 |
143 |
144 | Django |
145 |
146 | 1. Понимание структуры проекта Django.
147 | 2. Создание простых моделей, представлений и шаблонов.
148 | 3. Работа с URL-маршрутизацией в Django.
149 | |
150 |
151 | 1. Работа с Django ORM для взаимодействия с базой данных.
152 | 2. Простые операции CRUD с использованием моделей Django.
153 | 3. Создание и обработка форм в Django.
154 | 4. Создание простых API на DRF / Django-Ninja
155 | 5. Создание простых асинхронных задач с использованием Celery
156 | |
157 |
158 | 1. Использование классов представлений (View) и их настройка.
159 | 2. Работа с различными типами представлений (ListView, DetailView и др.).
160 | 3. Работа с системой аутентификации Django.
161 | 4. Понимание фабрики сериализаторов.
162 | |
163 |
164 | 1. Использование кэширования и других методов оптимизации.
165 | 2. Работа с многопоточностью и асинхронными запросами.
166 | 3. Работа с Django Channels для создания асинхронных приложений.
167 | 4. Создание сложных цепочек асинхронных задач с использованием Celery
168 | |
169 |
170 | 1. Опыт написания / применения и отката сложных миграций
171 | 2. Использование django с elasticsearch / kafka / clickhouse и тп
172 | |
173 |
174 | 1. Интеграция Django с другими сервисами / микросервисами.
175 | 2. Работа с инструментами для управления множеством Django-приложений.
176 | |
177 | |
178 |
179 |
180 | FastAPI |
181 |
182 | 1. Понимание основных концепций FastAPI.
183 | 2. Создание простых эндпоинтов с использованием декораторов FastAPI.
184 | |
185 |
186 | 1. Использование Pydantic моделей для валидации данных.
187 | 2. Работа с дополнительными валидаторами Pydantic.
188 | 3. Понимание концепции зависимостей в FastAPI.
189 | 4. Использование инъекции зависимостей для работы с внешними ресурсами.
190 | |
191 |
192 | 1. Работа с системой аутентификации FastAPI.
193 | 2. Использование ORM / ODM, например SQLAlchemy, для взаимодействия с базой данных.
194 | 3. Работа с различными типами запросов и фильтров в FastAPI.
195 | |
196 |
197 | 1. Работа с коллекциями данных и связями между ресурсами.
198 | 2. Разработка WebSocket-эндпоинтов с использованием FastAPI.
199 | 3. Применение асинхронных операций для улучшения производительности.
200 | |
201 |
202 | 1. Интеграция FastAPI с микросервисами.
203 | 2. Работа с инструментами для управления множеством FastAPI-приложений.
204 | 3. Разработка стратегий обработки ошибок и безопасности.
205 | |
206 |
207 | 1. Знание инструментов оптимизации FastAPI приложений: orjson, httptools, uvloop
208 | 2. Опыт использование нескольких хранилищ в одном FastAPI приложении
209 | |
210 | |
211 |
212 |
213 | Хранилища |
214 |
215 | 1. Понимание базовых концепций реляционных баз данных.
216 | 2. Основы создания и использования SQL-запросов.
217 | 3. Понимание различий между реляционными и NoSQL базами данных.
218 | 4. Основы работы с NoSQL базами данных, такими как MongoDB или Cassandra.
219 | 5. Понимание принципов ключ-значение в Redis.
220 | 6. Основы создания простых запросов к Elasticsearch.
221 | 7. Загрузка и скачивание файлов из S3.
222 | |
223 |
224 | 1. Использование SQL для создания, изменения и извлечения данных в приложении.
225 | 2. Знание основных операций в NoSQL базах данных.
226 | 3. Использование Redis для кэширования данных в приложении.
227 | 4. Работа с запросами в Elasticsearch для фильтрации и сортировки данных.
228 | 5. Индексация и обновление данных в Elasticsearch.
229 | 6. Интеграция S3 для хранения и обработки файлов в приложении.
230 | |
231 |
232 | 1. Работа с транзакциями в реляционных базах данных.
233 | 2. Оптимизация производительности запросов с использованием индексов и анализа выполнения.
234 | 3. Использование различных типов NoSQL баз данных в зависимости от требований проекта.
235 | 4. Использование Pipelining и транзакций в Redis.
236 | 5. Работа с расширенными функциями поиска, такими как фасеты и агрегации.
237 | 6. Интеграция Elasticsearch в приложение для полнотекстового поиска.
238 | |
239 |
240 | 1. Проектирование и оптимизация схемы базы данных для реляционных и NoSQL баз данных.
241 | 2. Проектирование и настройка партицирования в NoSQL базах данных.
242 | 3. Работа с механизмами шардинга и репликации в Redis.
243 | 4. Использование Redis в распределенных системах.
244 | 5. Оптимизация индексации и поиска для высоконагруженных систем.
245 | 6. Использование репликации и разделения данных в Elasticsearch.
246 | |
247 |
248 | 1. Оптимизация работы с Redis в условиях высокой нагрузки.
249 | 2. Использование Redis в качестве брокера сообщений.
250 | 3. Продвинутая оптимизация SQL-запросов с использованием индексов, материализованных представлений и хранимых процедур.
251 | 4. Работа с механизмами кэширования и предварительной выборки данных.
252 | |
253 |
254 | 1. Работа с распределенными кешами и хранилищами.
255 | 2. Использование инструментов машинного обучения для улучшения поиска в Elasticsearch.
256 | 3. Работа с тематическим моделированием и рекомендательными системами.
257 | 4. Проектирование и внедрение высокодоступных и отказоустойчивых хранилищ данных в облаке.
258 | |
259 |
260 | 1. Принятие стратегических решений по выбору между SQL и NoSQL решениями в компании.
261 | 2. Внедрение новых технологий хранения данных.
262 | 3. Менторство и обучение команды в области работы с данными.
263 | |
264 |
265 |
266 | SQL |
267 |
268 | 1. Понимание основных операторов: SELECT, INSERT, UPDATE, DELETE.
269 | 2. Работа с условиями WHERE для фильтрации данных.
270 | 3. Знание простых JOIN-операций для объединения таблиц.
271 | 4. Создание простых таблиц и определение связей между ними.
272 | 5. Использование базовых типов данных (целые числа, строки, даты).
273 | |
274 |
275 | 1. Работа с индексами для улучшения производительности запросов.
276 | 2. Использование GROUP BY и агрегатных функций для анализа данных.
277 | 3. Понимание транзакционной модели данных и работа с транзакциями.
278 | 4. Знание команд COMMIT и ROLLBACK.
279 | |
280 |
281 | 1. Использование подзапросов для решения сложных задач.
282 | 2. Использование оконных функций.
283 | |
284 |
285 | 1. Проектирование сложных схем баз данных с учетом требований приложения.
286 | 2. Работа с инструментами моделирования данных (например, ER-диаграммы).
287 | |
288 | |
289 |
290 | 1. Оптимизация схем баз данных для различных видов запросов.
291 | |
292 |
293 | 1. Принятие стратегических решений по выбору технологий и методов хранения данных.
294 | |
295 |
296 |
297 | Тестирование и контроль качества |
298 | |
299 |
300 | 1. Умение писать тесты с использованием pytest / unittest.
301 | 2. Пользоваться настроенными линтерами и форматерами.
302 | |
303 |
304 | 1. Знание и умение применять mock, fixture, faker.
305 | 2. Понимание настроек линтеров.
306 | 3. Придерживаться типизации кода.
307 | |
308 |
309 | 1. Понимание ценности тестов в корпоративной разработке.
310 | 2. Умение настаивать линтеры и тайпчекеры.
311 | |
312 |
313 | 1. Написание нагрузочных тестов.
314 | 2. Понимание различия тестовых сред
315 | 3. Умение настраивать тестовые среды.
316 | |
317 |
318 | 1. Разработка через тестирование. Понимание плюсов и минусов.
319 | 2. Понимаение различий flake, pylint, ruff.
320 | |
321 | |
322 |
323 |
324 | Веб разработка |
325 |
326 | 1. Понимание базовых принципов работы веба (HTTP, HTTPS).
327 | 2. Работа с параметрами запросов и ответов.
328 | 3. Основы работы с заголовками HTTP.
329 | |
330 | 1. Работа с более сложными сценариями использования HTTP.
331 | 2. Знание и использование различных заголовков, таких как Authorization, Content-Type, и др.
332 | 3. Проектирование и разработка RESTful API.
333 | 4. Знание и применение форматов данных, таких как JSON.
334 | |
335 | 1. Работа с версионированием API.
336 | 2. Понимание основ GraphQL / grpc / jsonrpc и их преимуществ и недостатков.
337 | 3. Знание основ безопасности веб-приложений.
338 | |
339 | 1. Оптимизация запросов для повышения производительности.
340 | 2. Работа с кэшированием и заголовками для контроля кеширования.
341 | |
342 | 1. Использование асинхронных запросов для повышения производительности.
343 | 2. Работа с веб-сокетами для реализации асинхронных веб-приложений.
344 | 3. Защита GraphQL-запросов от уязвимостей.
345 | |
346 | 1. Использование CDN и других инструментов для улучшения распределения нагрузки.
347 | |
348 | 1. Принятие стратегических решений по выбору протоколов и технологий для проектов.
349 | |
350 |
351 |
352 | Асинхронное программирование и многозадачность |
353 |
354 | 1. Основы асинхронности.
355 | 2. Понимание многозадачности.
356 | 3. Понимание отличий параллельности и конкурентности.
357 | |
358 |
359 | 1. Работа с корутинами.
360 | 2. Знание asyncio. Использование async/await.
361 | 3. Работа с потоками.
362 | 4. Работа с процессами.
363 | 5. Опыт работы с celery.
364 | |
365 |
366 | 1. Понимание работы event loop.
367 | 2. Понимание работы процессов в операционной системе.
368 | 3. Понимание принципов обработки ошибок в асинхронном коде.
369 | 4. Понимание принципов взаимодействия между потоками.
370 | |
371 |
372 | 1. Оптимизация асинхронного кода.
373 | 2. Использование асинхронных паттернов.
374 | 3. Понимание отличий от wsgi и asgi.
375 | 4. Опыт межсервисного асинхронного взаимодействия с помощью брокеров или event store (rabbitbq / kafka).
376 | |
377 |
378 | 1. Опыт разрешения проблем в асинхронном коде.
379 | |
380 |
381 | 1. Опыт создания высоконагруженных асинхронных приложений.
382 | |
383 |
384 | 1. Руководство командой в области асинхронного программирования.
385 | 2. Архитектурные решения в асинхронных системах.
386 | |
387 |
388 |
389 | Системы контроля версий |
390 |
391 | 1. Понимание базовых концепций Git.
392 | 2. Основные команды: clone, commit, push, pull.
393 | 3. Работа с основными ветками: master, feature, develop.
394 | |
395 |
396 | 1. Создание и управление ветками для разработки новых функций и исправлений.
397 | 2. Слияние веток для интеграции изменений.
398 | 3. Работа с форками и создание pull request'ов.
399 | |
400 |
401 | 1. Работа с конфликтами при слиянии веток.
402 | 2. Ручное разрешение конфликтов и их предотвращение.
403 | 3. Создание и использование Git Hooks для автоматизации процессов (например, перед коммитом).
404 | |
405 |
406 | 1. Создание релизов и проставление тегов.
407 | 2. Управление версиями проекта в Git.
408 | 3. Работа с Git Flow для управления циклом разработки.
409 | 4. Понимание лучших практик для использования Git в командных проектах.
410 | |
411 |
412 | 1. Работа с подмодулями и поддеревьями.
413 | 2. Интеграция Git с другими инструментами разработки.
414 | |
415 | |
416 |
417 | 1. Принятие стратегических решений по выбору модели ветвления и релизного цикла в больших командах.
418 | |
419 |
420 |
421 | Linux |
422 |
423 | 1. Использование основных команд для навигации и управления файлами.
424 | 2. Знание основных команд для работы с пакетным менеджером (например, apt, yum).
425 | 3. Понимание основ прав доступа к файлам и директориям.
426 | 4. Применение базовых команд для управления правами доступа (rwx).
427 | |
428 |
429 | 1. Отслеживание и завершение процессов.
430 | 2. Работа с фоновыми и передними процессами.
431 | 3. Использование инструментов для диагностики сетевых проблем (например, ping, traceroute).
432 | |
433 |
434 | 1. Написание простых скриптов на Bash.
435 | 2. Использование переменных, циклов, условных операторов в скриптах.
436 | 3. Просмотр и анализ системных журналов (логов).
437 | |
438 |
439 | 1. Создание и управление пользователями и группами.
440 | 3. Установка и обновление программных пакетов.
441 | 4. Управление модулями ядра и ядром системы.
442 | |
443 |
444 | 1. Использование инструментов автоматизации (например, Ansible).
445 | 2. Написание скриптов для автоматизации рутинных задач.
446 | |
447 | |
448 | |
449 |
450 |
451 | DevOps |
452 |
453 | 1. Понимание основных операций в системном администрировании.
454 | 2. Знание принципов конфигурационного управления.
455 | |
456 |
457 | 1. Знание Docker и основы работы с контейнерами.
458 | 2. Использование Docker Compose для управления многоконтейнерными приложениями.
459 | |
460 |
461 | 1. Основы работы с Kubernetes для оркестрации контейнеров.
462 | 2. Понимание концепций подов, нод, сервисов и репликации в Kubernetes.
463 | |
464 |
465 | 1. Работа с blue-green и canary развертываниями.
466 | 2. Понимание принципов serverless.
467 | |
468 |
469 | 1. Оптимизация инфраструктуры для высоконагруженных проектов.
470 | 2. Работа с распределенными системами и горизонтальным масштабированием.
471 | 3. Оптимизация затрат и ресурсов в облачных средах.
472 | |
473 |
474 | 1. Опыт миграции высоконагруженного приложения от одного провайдера в другой.
475 | |
476 |
477 | 1. Принятие стратегических решений по выбору технологий развертывания.
478 | 2. Консультирование devops инженеров по особенностям работы python.
479 | |
480 |
481 |
482 | Мониторинг и логирование |
483 |
484 | 1. Умение использовать инструменты мониторинга.
485 | 2. Анализ метрик и журналов.
486 | 3. Понимание необходимости измеряемого продукта.
487 | |
488 |
489 | 1. Понимание принципов и использование централизованных систем логирования.
490 | 2. Создание мониторинговых дашбордов.
491 | 3. Настройка алертинга и уведомлений.
492 | 4. Автоматизация мониторинга и логирования.
493 | |
494 |
495 | 1. Решение проблем и оптимизация производительности на основе данных мониторинга.
496 | 2. Конфигурация и настройка мониторинга.
497 | 3. Опыт интеграции с инфраструктурными облачными решениями.
498 | |
499 |
500 | 1. Работа с распределенными системами мониторинга.
501 | 2. Настройка межсервисных трассировок.
502 | |
503 | |
504 | |
505 |
506 | 1. Руководство командой в области мониторинга и логирования.
507 | 2. Архитектурные решения для масштабируемого мониторинга и логирования.
508 | |
509 |
510 |
520 |
521 | Архитектура |
522 |
523 | 1. Знание основных паттернов: Singleton, Factory, Decorator.
524 | 2. Применение простых паттернов в проектах.
525 | |
526 |
527 | 1. Понимание основных принципов SOLID.
528 | 2. Применение принципа единственной ответственности в разработке.
529 | 3. Использование более сложных паттернов: Observer, Strategy, State, Mediator.
530 | 4. Проектирование с применением паттернов для повышения гибкости.
531 | |
532 |
533 | 1. Применение остальных принципов SOLID (Открытое/Закрытое, Подстановки Лисков, Инверсия зависимостей).
534 | 2. Понимание различных архитектурных стилей: монолит, микросервисы, serverless.
535 | |
536 |
537 | 1. Применение SOLID в реальных сценариях разработки.
538 | 2. Оценка и обновление архитектуры для соответствия принципам SOLID.
539 | 2. Понимание принципов гексагональной архитектуры.
540 | 4. Проектирование приложений с разделением бизнес-логики и инфраструктуры.
541 | 5. Проектирование систем с применением более сложных паттернов: CQRS, Event Sourcing.
542 | 6. Работа с асинхронными и распределенными системами.
543 | |
544 |
545 | 1. Проектирование высоконагруженных систем с учетом горизонтального масштабирования.
546 | 2. Использование шаблонов коммуникации между микросервисами.
547 | 3. Работа с различными стратегиями обновления приложений.
548 | 4. Проектирование и управление схемой версионирования API.
549 | |
550 | |
551 |
552 | 1. Применение принципов гексагональной архитектуры в сложных бизнес-сценариях.
553 | 2. Интеграция гексагональной архитектуры с микросервисной архитектурой.
554 | 3. Менторство и обучение команды в области архитектуры.
555 | 4. Разработка и внедрение стандартов архитектурного проектирования в организации.
556 | |
557 |
558 |
568 |
569 | Командная работа |
570 |
571 | 1. Участие в ежедневных статусах и созвонах.
572 | 2. Работа с задачами в системе управления проектами (например, Jira).
573 | 3. Обмен информацией с коллегами и руководством.
574 | 4. Способность задавать вопросы и просить помощи.
575 | |
576 |
577 | 1. Способность эффективно управлять своим временем и задачами.
578 | 2. Работа с приоритетами и соблюдение дедлайнов.
579 | 3. Работа в системах контроля версий (например, Git) в рамках команды.
580 | 4. Понимание принципов и целей Code Review.
581 | 5. Участие в процессе обзора кода, внесение своих комментариев.
582 | |
583 |
584 | 1. Улучшение навыков письменной и устной коммуникации.
585 | 2. Участие в обсуждении архитектурных решений и планировании задач.
586 | 3. Развитие навыков урегулирования конфликтов.
587 | 4. Способность конструктивно обсуждать разногласия в команде.
588 | |
589 |
590 | 1. Возможность взять на себя роль лидера в отсутствие руководителя.
591 | 2. Способность организовывать и направлять работу команды.
592 | 3. Помощь младшим членам команды в их профессиональном росте.
593 | 4. Делегирование задач и предоставление поддержки.
594 | 5. Умение эффективно управлять конфликтами и находить компромиссы.
595 | 6. Принятие участия в разрешении сложных ситуаций в команде.
596 | |
597 |
598 | 1. Разработка и внедрение стратегии управления командой.
599 | 2. Работа над мотивацией и вовлечением членов команды.
600 | 3. Развитие программ обучения и поддержка профессионального роста команды.
601 | 4. Участие в подборе новых сотрудников и их адаптация.
602 | |
603 |
604 | 1. Принятие стратегических решений в отношении структуры команды.
605 | 2. Развитие и внедрение культуры работы в команде.
606 | 3. Принятие инициативы в инновационных проектах и исследованиях.
607 | 4. Разработка стратегии внедрения новых технологий в команде.
608 | |
609 |
610 | 1. Разработка и внедрение стратегии развития отдела разработки.
611 | 2. Принятие ключевых стратегических решений в области технологического стека, архитектуры и методологии разработки.
612 | 3. Поддержка и поощрение исследовательской работы внутри команды.
613 | 4. Развитие программ для непрерывного обучения и профессионального роста команды.
614 | 5. Проведение регулярных обзоров производительности и обратной связи.
615 | 6. Внедрение и поддержание ценностей и культуры компании в отделе разработки.
616 | 7. Формирование положительного и вдохновляющего рабочего окружения.
617 | |
618 |
619 |
629 |
630 |
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | # AWESOME Корпоративная разработка
--------------------------------------------------------------------------------
/mkdocs.yaml:
--------------------------------------------------------------------------------
1 | site_name: AWESOME Корпоративная разработка
2 | docs_dir: docs/
3 | repo_name: 'Dihset/awesome-corporate-deve'
4 | repo_url: 'https://github.com/Dihset/awesome-corporate-dev'
5 | nav:
6 | - Введение: index.md
7 | - Матрица компетенций:
8 | - Python Backend: 'competency-matrix/python-backend.md'
9 | theme:
10 | name: material
--------------------------------------------------------------------------------
/poetry.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
2 |
3 | [[package]]
4 | name = "babel"
5 | version = "2.14.0"
6 | description = "Internationalization utilities"
7 | optional = false
8 | python-versions = ">=3.7"
9 | files = [
10 | {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"},
11 | {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"},
12 | ]
13 |
14 | [package.extras]
15 | dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"]
16 |
17 | [[package]]
18 | name = "certifi"
19 | version = "2024.2.2"
20 | description = "Python package for providing Mozilla's CA Bundle."
21 | optional = false
22 | python-versions = ">=3.6"
23 | files = [
24 | {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"},
25 | {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
26 | ]
27 |
28 | [[package]]
29 | name = "charset-normalizer"
30 | version = "3.3.2"
31 | description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
32 | optional = false
33 | python-versions = ">=3.7.0"
34 | files = [
35 | {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
36 | {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
37 | {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
38 | {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
39 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
40 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
41 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
42 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
43 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
44 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
45 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
46 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
47 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
48 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
49 | {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
50 | {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
51 | {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
52 | {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
53 | {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
54 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
55 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
56 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
57 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
58 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
59 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
60 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
61 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
62 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
63 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
64 | {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
65 | {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
66 | {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
67 | {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
68 | {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
69 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
70 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
71 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
72 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
73 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
74 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
75 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
76 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
77 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
78 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
79 | {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
80 | {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
81 | {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
82 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
83 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
84 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
85 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
86 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
87 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
88 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
89 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
90 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
91 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
92 | {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
93 | {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
94 | {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
95 | {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
96 | {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
97 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
98 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
99 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
100 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
101 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
102 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
103 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
104 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
105 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
106 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
107 | {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
108 | {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
109 | {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
110 | {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
111 | {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
112 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
113 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
114 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
115 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
116 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
117 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
118 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
119 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
120 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
121 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
122 | {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
123 | {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
124 | {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
125 | ]
126 |
127 | [[package]]
128 | name = "click"
129 | version = "8.1.7"
130 | description = "Composable command line interface toolkit"
131 | optional = false
132 | python-versions = ">=3.7"
133 | files = [
134 | {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
135 | {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
136 | ]
137 |
138 | [package.dependencies]
139 | colorama = {version = "*", markers = "platform_system == \"Windows\""}
140 |
141 | [[package]]
142 | name = "colorama"
143 | version = "0.4.6"
144 | description = "Cross-platform colored terminal text."
145 | optional = false
146 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
147 | files = [
148 | {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
149 | {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
150 | ]
151 |
152 | [[package]]
153 | name = "ghp-import"
154 | version = "2.1.0"
155 | description = "Copy your docs directly to the gh-pages branch."
156 | optional = false
157 | python-versions = "*"
158 | files = [
159 | {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"},
160 | {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"},
161 | ]
162 |
163 | [package.dependencies]
164 | python-dateutil = ">=2.8.1"
165 |
166 | [package.extras]
167 | dev = ["flake8", "markdown", "twine", "wheel"]
168 |
169 | [[package]]
170 | name = "idna"
171 | version = "3.7"
172 | description = "Internationalized Domain Names in Applications (IDNA)"
173 | optional = false
174 | python-versions = ">=3.5"
175 | files = [
176 | {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"},
177 | {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"},
178 | ]
179 |
180 | [[package]]
181 | name = "jinja2"
182 | version = "3.1.3"
183 | description = "A very fast and expressive template engine."
184 | optional = false
185 | python-versions = ">=3.7"
186 | files = [
187 | {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"},
188 | {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"},
189 | ]
190 |
191 | [package.dependencies]
192 | MarkupSafe = ">=2.0"
193 |
194 | [package.extras]
195 | i18n = ["Babel (>=2.7)"]
196 |
197 | [[package]]
198 | name = "markdown"
199 | version = "3.6"
200 | description = "Python implementation of John Gruber's Markdown."
201 | optional = false
202 | python-versions = ">=3.8"
203 | files = [
204 | {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"},
205 | {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"},
206 | ]
207 |
208 | [package.extras]
209 | docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"]
210 | testing = ["coverage", "pyyaml"]
211 |
212 | [[package]]
213 | name = "markupsafe"
214 | version = "2.1.5"
215 | description = "Safely add untrusted strings to HTML/XML markup."
216 | optional = false
217 | python-versions = ">=3.7"
218 | files = [
219 | {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
220 | {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
221 | {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"},
222 | {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"},
223 | {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"},
224 | {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"},
225 | {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"},
226 | {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"},
227 | {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"},
228 | {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"},
229 | {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"},
230 | {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"},
231 | {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"},
232 | {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"},
233 | {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"},
234 | {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"},
235 | {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"},
236 | {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"},
237 | {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"},
238 | {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"},
239 | {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"},
240 | {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"},
241 | {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"},
242 | {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"},
243 | {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"},
244 | {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"},
245 | {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"},
246 | {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"},
247 | {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"},
248 | {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"},
249 | {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"},
250 | {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"},
251 | {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"},
252 | {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"},
253 | {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"},
254 | {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"},
255 | {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"},
256 | {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"},
257 | {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"},
258 | {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"},
259 | {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"},
260 | {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"},
261 | {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"},
262 | {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"},
263 | {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"},
264 | {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"},
265 | {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"},
266 | {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"},
267 | {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"},
268 | {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"},
269 | {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"},
270 | {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"},
271 | {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"},
272 | {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"},
273 | {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"},
274 | {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"},
275 | {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"},
276 | {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"},
277 | {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"},
278 | {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
279 | ]
280 |
281 | [[package]]
282 | name = "mergedeep"
283 | version = "1.3.4"
284 | description = "A deep merge function for 🐍."
285 | optional = false
286 | python-versions = ">=3.6"
287 | files = [
288 | {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"},
289 | {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"},
290 | ]
291 |
292 | [[package]]
293 | name = "mkdocs"
294 | version = "1.5.3"
295 | description = "Project documentation with Markdown."
296 | optional = false
297 | python-versions = ">=3.7"
298 | files = [
299 | {file = "mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1"},
300 | {file = "mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2"},
301 | ]
302 |
303 | [package.dependencies]
304 | click = ">=7.0"
305 | colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""}
306 | ghp-import = ">=1.0"
307 | jinja2 = ">=2.11.1"
308 | markdown = ">=3.2.1"
309 | markupsafe = ">=2.0.1"
310 | mergedeep = ">=1.3.4"
311 | packaging = ">=20.5"
312 | pathspec = ">=0.11.1"
313 | platformdirs = ">=2.2.0"
314 | pyyaml = ">=5.1"
315 | pyyaml-env-tag = ">=0.1"
316 | watchdog = ">=2.0"
317 |
318 | [package.extras]
319 | i18n = ["babel (>=2.9.0)"]
320 | min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"]
321 |
322 | [[package]]
323 | name = "mkdocs-material"
324 | version = "9.5.18"
325 | description = "Documentation that simply works"
326 | optional = false
327 | python-versions = ">=3.8"
328 | files = [
329 | {file = "mkdocs_material-9.5.18-py3-none-any.whl", hash = "sha256:1e0e27fc9fe239f9064318acf548771a4629d5fd5dfd45444fd80a953fe21eb4"},
330 | {file = "mkdocs_material-9.5.18.tar.gz", hash = "sha256:a43f470947053fa2405c33995f282d24992c752a50114f23f30da9d8d0c57e62"},
331 | ]
332 |
333 | [package.dependencies]
334 | babel = ">=2.10,<3.0"
335 | colorama = ">=0.4,<1.0"
336 | jinja2 = ">=3.0,<4.0"
337 | markdown = ">=3.2,<4.0"
338 | mkdocs = ">=1.5.3,<1.6.0"
339 | mkdocs-material-extensions = ">=1.3,<2.0"
340 | paginate = ">=0.5,<1.0"
341 | pygments = ">=2.16,<3.0"
342 | pymdown-extensions = ">=10.2,<11.0"
343 | regex = ">=2022.4"
344 | requests = ">=2.26,<3.0"
345 |
346 | [package.extras]
347 | git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4,<2.0)"]
348 | imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=10.2,<11.0)"]
349 | recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"]
350 |
351 | [[package]]
352 | name = "mkdocs-material-extensions"
353 | version = "1.3.1"
354 | description = "Extension pack for Python Markdown and MkDocs Material."
355 | optional = false
356 | python-versions = ">=3.8"
357 | files = [
358 | {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"},
359 | {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"},
360 | ]
361 |
362 | [[package]]
363 | name = "packaging"
364 | version = "24.0"
365 | description = "Core utilities for Python packages"
366 | optional = false
367 | python-versions = ">=3.7"
368 | files = [
369 | {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"},
370 | {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"},
371 | ]
372 |
373 | [[package]]
374 | name = "paginate"
375 | version = "0.5.6"
376 | description = "Divides large result sets into pages for easier browsing"
377 | optional = false
378 | python-versions = "*"
379 | files = [
380 | {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"},
381 | ]
382 |
383 | [[package]]
384 | name = "pathspec"
385 | version = "0.12.1"
386 | description = "Utility library for gitignore style pattern matching of file paths."
387 | optional = false
388 | python-versions = ">=3.8"
389 | files = [
390 | {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
391 | {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
392 | ]
393 |
394 | [[package]]
395 | name = "platformdirs"
396 | version = "4.2.0"
397 | description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
398 | optional = false
399 | python-versions = ">=3.8"
400 | files = [
401 | {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"},
402 | {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"},
403 | ]
404 |
405 | [package.extras]
406 | docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"]
407 | test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"]
408 |
409 | [[package]]
410 | name = "pygments"
411 | version = "2.17.2"
412 | description = "Pygments is a syntax highlighting package written in Python."
413 | optional = false
414 | python-versions = ">=3.7"
415 | files = [
416 | {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"},
417 | {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"},
418 | ]
419 |
420 | [package.extras]
421 | plugins = ["importlib-metadata"]
422 | windows-terminal = ["colorama (>=0.4.6)"]
423 |
424 | [[package]]
425 | name = "pymdown-extensions"
426 | version = "10.8"
427 | description = "Extension pack for Python Markdown."
428 | optional = false
429 | python-versions = ">=3.8"
430 | files = [
431 | {file = "pymdown_extensions-10.8-py3-none-any.whl", hash = "sha256:3539003ff0d5e219ba979d2dc961d18fcad5ac259e66c764482e8347b4c0503c"},
432 | {file = "pymdown_extensions-10.8.tar.gz", hash = "sha256:91ca336caf414e1e5e0626feca86e145de9f85a3921a7bcbd32890b51738c428"},
433 | ]
434 |
435 | [package.dependencies]
436 | markdown = ">=3.6"
437 | pyyaml = "*"
438 |
439 | [package.extras]
440 | extra = ["pygments (>=2.12)"]
441 |
442 | [[package]]
443 | name = "python-dateutil"
444 | version = "2.9.0.post0"
445 | description = "Extensions to the standard Python datetime module"
446 | optional = false
447 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
448 | files = [
449 | {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
450 | {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
451 | ]
452 |
453 | [package.dependencies]
454 | six = ">=1.5"
455 |
456 | [[package]]
457 | name = "pyyaml"
458 | version = "6.0.1"
459 | description = "YAML parser and emitter for Python"
460 | optional = false
461 | python-versions = ">=3.6"
462 | files = [
463 | {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"},
464 | {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"},
465 | {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"},
466 | {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"},
467 | {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"},
468 | {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"},
469 | {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"},
470 | {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"},
471 | {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"},
472 | {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"},
473 | {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"},
474 | {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"},
475 | {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"},
476 | {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"},
477 | {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"},
478 | {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"},
479 | {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"},
480 | {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"},
481 | {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"},
482 | {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"},
483 | {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"},
484 | {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"},
485 | {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"},
486 | {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"},
487 | {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"},
488 | {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"},
489 | {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"},
490 | {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"},
491 | {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"},
492 | {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"},
493 | {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"},
494 | {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"},
495 | {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"},
496 | {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"},
497 | {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"},
498 | {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"},
499 | {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"},
500 | {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"},
501 | {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"},
502 | {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"},
503 | {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"},
504 | {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"},
505 | {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"},
506 | {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"},
507 | {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"},
508 | {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"},
509 | {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"},
510 | {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"},
511 | {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"},
512 | {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"},
513 | {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"},
514 | ]
515 |
516 | [[package]]
517 | name = "pyyaml-env-tag"
518 | version = "0.1"
519 | description = "A custom YAML tag for referencing environment variables in YAML files. "
520 | optional = false
521 | python-versions = ">=3.6"
522 | files = [
523 | {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"},
524 | {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"},
525 | ]
526 |
527 | [package.dependencies]
528 | pyyaml = "*"
529 |
530 | [[package]]
531 | name = "regex"
532 | version = "2024.4.16"
533 | description = "Alternative regular expression module, to replace re."
534 | optional = false
535 | python-versions = ">=3.7"
536 | files = [
537 | {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb83cc090eac63c006871fd24db5e30a1f282faa46328572661c0a24a2323a08"},
538 | {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8c91e1763696c0eb66340c4df98623c2d4e77d0746b8f8f2bee2c6883fd1fe18"},
539 | {file = "regex-2024.4.16-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:10188fe732dec829c7acca7422cdd1bf57d853c7199d5a9e96bb4d40db239c73"},
540 | {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:956b58d692f235cfbf5b4f3abd6d99bf102f161ccfe20d2fd0904f51c72c4c66"},
541 | {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a70b51f55fd954d1f194271695821dd62054d949efd6368d8be64edd37f55c86"},
542 | {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c02fcd2bf45162280613d2e4a1ca3ac558ff921ae4e308ecb307650d3a6ee51"},
543 | {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4ed75ea6892a56896d78f11006161eea52c45a14994794bcfa1654430984b22"},
544 | {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd727ad276bb91928879f3aa6396c9a1d34e5e180dce40578421a691eeb77f47"},
545 | {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7cbc5d9e8a1781e7be17da67b92580d6ce4dcef5819c1b1b89f49d9678cc278c"},
546 | {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:78fddb22b9ef810b63ef341c9fcf6455232d97cfe03938cbc29e2672c436670e"},
547 | {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:445ca8d3c5a01309633a0c9db57150312a181146315693273e35d936472df912"},
548 | {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:95399831a206211d6bc40224af1c635cb8790ddd5c7493e0bd03b85711076a53"},
549 | {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7731728b6568fc286d86745f27f07266de49603a6fdc4d19c87e8c247be452af"},
550 | {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4facc913e10bdba42ec0aee76d029aedda628161a7ce4116b16680a0413f658a"},
551 | {file = "regex-2024.4.16-cp310-cp310-win32.whl", hash = "sha256:911742856ce98d879acbea33fcc03c1d8dc1106234c5e7d068932c945db209c0"},
552 | {file = "regex-2024.4.16-cp310-cp310-win_amd64.whl", hash = "sha256:e0a2df336d1135a0b3a67f3bbf78a75f69562c1199ed9935372b82215cddd6e2"},
553 | {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1210365faba7c2150451eb78ec5687871c796b0f1fa701bfd2a4a25420482d26"},
554 | {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9ab40412f8cd6f615bfedea40c8bf0407d41bf83b96f6fc9ff34976d6b7037fd"},
555 | {file = "regex-2024.4.16-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fd80d1280d473500d8086d104962a82d77bfbf2b118053824b7be28cd5a79ea5"},
556 | {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bb966fdd9217e53abf824f437a5a2d643a38d4fd5fd0ca711b9da683d452969"},
557 | {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20b7a68444f536365af42a75ccecb7ab41a896a04acf58432db9e206f4e525d6"},
558 | {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b74586dd0b039c62416034f811d7ee62810174bb70dffcca6439f5236249eb09"},
559 | {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8290b44d8b0af4e77048646c10c6e3aa583c1ca67f3b5ffb6e06cf0c6f0f89"},
560 | {file = "regex-2024.4.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2d80a6749724b37853ece57988b39c4e79d2b5fe2869a86e8aeae3bbeef9eb0"},
561 | {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3a1018e97aeb24e4f939afcd88211ace472ba566efc5bdf53fd8fd7f41fa7170"},
562 | {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8d015604ee6204e76569d2f44e5a210728fa917115bef0d102f4107e622b08d5"},
563 | {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:3d5ac5234fb5053850d79dd8eb1015cb0d7d9ed951fa37aa9e6249a19aa4f336"},
564 | {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:0a38d151e2cdd66d16dab550c22f9521ba79761423b87c01dae0a6e9add79c0d"},
565 | {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:159dc4e59a159cb8e4e8f8961eb1fa5d58f93cb1acd1701d8aff38d45e1a84a6"},
566 | {file = "regex-2024.4.16-cp311-cp311-win32.whl", hash = "sha256:ba2336d6548dee3117520545cfe44dc28a250aa091f8281d28804aa8d707d93d"},
567 | {file = "regex-2024.4.16-cp311-cp311-win_amd64.whl", hash = "sha256:8f83b6fd3dc3ba94d2b22717f9c8b8512354fd95221ac661784df2769ea9bba9"},
568 | {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:80b696e8972b81edf0af2a259e1b2a4a661f818fae22e5fa4fa1a995fb4a40fd"},
569 | {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d61ae114d2a2311f61d90c2ef1358518e8f05eafda76eaf9c772a077e0b465ec"},
570 | {file = "regex-2024.4.16-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ba6745440b9a27336443b0c285d705ce73adb9ec90e2f2004c64d95ab5a7598"},
571 | {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295004b2dd37b0835ea5c14a33e00e8cfa3c4add4d587b77287825f3418d310"},
572 | {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4aba818dcc7263852aabb172ec27b71d2abca02a593b95fa79351b2774eb1d2b"},
573 | {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0800631e565c47520aaa04ae38b96abc5196fe8b4aa9bd864445bd2b5848a7a"},
574 | {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08dea89f859c3df48a440dbdcd7b7155bc675f2fa2ec8c521d02dc69e877db70"},
575 | {file = "regex-2024.4.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eeaa0b5328b785abc344acc6241cffde50dc394a0644a968add75fcefe15b9d4"},
576 | {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4e819a806420bc010489f4e741b3036071aba209f2e0989d4750b08b12a9343f"},
577 | {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c2d0e7cbb6341e830adcbfa2479fdeebbfbb328f11edd6b5675674e7a1e37730"},
578 | {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:91797b98f5e34b6a49f54be33f72e2fb658018ae532be2f79f7c63b4ae225145"},
579 | {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:d2da13568eff02b30fd54fccd1e042a70fe920d816616fda4bf54ec705668d81"},
580 | {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:370c68dc5570b394cbaadff50e64d705f64debed30573e5c313c360689b6aadc"},
581 | {file = "regex-2024.4.16-cp312-cp312-win32.whl", hash = "sha256:904c883cf10a975b02ab3478bce652f0f5346a2c28d0a8521d97bb23c323cc8b"},
582 | {file = "regex-2024.4.16-cp312-cp312-win_amd64.whl", hash = "sha256:785c071c982dce54d44ea0b79cd6dfafddeccdd98cfa5f7b86ef69b381b457d9"},
583 | {file = "regex-2024.4.16-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e2f142b45c6fed48166faeb4303b4b58c9fcd827da63f4cf0a123c3480ae11fb"},
584 | {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e87ab229332ceb127a165612d839ab87795972102cb9830e5f12b8c9a5c1b508"},
585 | {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81500ed5af2090b4a9157a59dbc89873a25c33db1bb9a8cf123837dcc9765047"},
586 | {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b340cccad138ecb363324aa26893963dcabb02bb25e440ebdf42e30963f1a4e0"},
587 | {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c72608e70f053643437bd2be0608f7f1c46d4022e4104d76826f0839199347a"},
588 | {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a01fe2305e6232ef3e8f40bfc0f0f3a04def9aab514910fa4203bafbc0bb4682"},
589 | {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:03576e3a423d19dda13e55598f0fd507b5d660d42c51b02df4e0d97824fdcae3"},
590 | {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:549c3584993772e25f02d0656ac48abdda73169fe347263948cf2b1cead622f3"},
591 | {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:34422d5a69a60b7e9a07a690094e824b66f5ddc662a5fc600d65b7c174a05f04"},
592 | {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:5f580c651a72b75c39e311343fe6875d6f58cf51c471a97f15a938d9fe4e0d37"},
593 | {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3399dd8a7495bbb2bacd59b84840eef9057826c664472e86c91d675d007137f5"},
594 | {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8d1f86f3f4e2388aa3310b50694ac44daefbd1681def26b4519bd050a398dc5a"},
595 | {file = "regex-2024.4.16-cp37-cp37m-win32.whl", hash = "sha256:dd5acc0a7d38fdc7a3a6fd3ad14c880819008ecb3379626e56b163165162cc46"},
596 | {file = "regex-2024.4.16-cp37-cp37m-win_amd64.whl", hash = "sha256:ba8122e3bb94ecda29a8de4cf889f600171424ea586847aa92c334772d200331"},
597 | {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:743deffdf3b3481da32e8a96887e2aa945ec6685af1cfe2bcc292638c9ba2f48"},
598 | {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7571f19f4a3fd00af9341c7801d1ad1967fc9c3f5e62402683047e7166b9f2b4"},
599 | {file = "regex-2024.4.16-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:df79012ebf6f4efb8d307b1328226aef24ca446b3ff8d0e30202d7ebcb977a8c"},
600 | {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e757d475953269fbf4b441207bb7dbdd1c43180711b6208e129b637792ac0b93"},
601 | {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4313ab9bf6a81206c8ac28fdfcddc0435299dc88cad12cc6305fd0e78b81f9e4"},
602 | {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d83c2bc678453646f1a18f8db1e927a2d3f4935031b9ad8a76e56760461105dd"},
603 | {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9df1bfef97db938469ef0a7354b2d591a2d438bc497b2c489471bec0e6baf7c4"},
604 | {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62120ed0de69b3649cc68e2965376048793f466c5a6c4370fb27c16c1beac22d"},
605 | {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c2ef6f7990b6e8758fe48ad08f7e2f66c8f11dc66e24093304b87cae9037bb4a"},
606 | {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8fc6976a3395fe4d1fbeb984adaa8ec652a1e12f36b56ec8c236e5117b585427"},
607 | {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:03e68f44340528111067cecf12721c3df4811c67268b897fbe695c95f860ac42"},
608 | {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ec7e0043b91115f427998febaa2beb82c82df708168b35ece3accb610b91fac1"},
609 | {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c21fc21a4c7480479d12fd8e679b699f744f76bb05f53a1d14182b31f55aac76"},
610 | {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:12f6a3f2f58bb7344751919a1876ee1b976fe08b9ffccb4bbea66f26af6017b9"},
611 | {file = "regex-2024.4.16-cp38-cp38-win32.whl", hash = "sha256:479595a4fbe9ed8f8f72c59717e8cf222da2e4c07b6ae5b65411e6302af9708e"},
612 | {file = "regex-2024.4.16-cp38-cp38-win_amd64.whl", hash = "sha256:0534b034fba6101611968fae8e856c1698da97ce2efb5c2b895fc8b9e23a5834"},
613 | {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a7ccdd1c4a3472a7533b0a7aa9ee34c9a2bef859ba86deec07aff2ad7e0c3b94"},
614 | {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f2f017c5be19984fbbf55f8af6caba25e62c71293213f044da3ada7091a4455"},
615 | {file = "regex-2024.4.16-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:803b8905b52de78b173d3c1e83df0efb929621e7b7c5766c0843704d5332682f"},
616 | {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:684008ec44ad275832a5a152f6e764bbe1914bea10968017b6feaecdad5736e0"},
617 | {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65436dce9fdc0aeeb0a0effe0839cb3d6a05f45aa45a4d9f9c60989beca78b9c"},
618 | {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea355eb43b11764cf799dda62c658c4d2fdb16af41f59bb1ccfec517b60bcb07"},
619 | {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c1165f3809ce7774f05cb74e5408cd3aa93ee8573ae959a97a53db3ca3180d"},
620 | {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cccc79a9be9b64c881f18305a7c715ba199e471a3973faeb7ba84172abb3f317"},
621 | {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00169caa125f35d1bca6045d65a662af0202704489fada95346cfa092ec23f39"},
622 | {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6cc38067209354e16c5609b66285af17a2863a47585bcf75285cab33d4c3b8df"},
623 | {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:23cff1b267038501b179ccbbd74a821ac4a7192a1852d1d558e562b507d46013"},
624 | {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:b9d320b3bf82a39f248769fc7f188e00f93526cc0fe739cfa197868633d44701"},
625 | {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:89ec7f2c08937421bbbb8b48c54096fa4f88347946d4747021ad85f1b3021b3c"},
626 | {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4918fd5f8b43aa7ec031e0fef1ee02deb80b6afd49c85f0790be1dc4ce34cb50"},
627 | {file = "regex-2024.4.16-cp39-cp39-win32.whl", hash = "sha256:684e52023aec43bdf0250e843e1fdd6febbe831bd9d52da72333fa201aaa2335"},
628 | {file = "regex-2024.4.16-cp39-cp39-win_amd64.whl", hash = "sha256:e697e1c0238133589e00c244a8b676bc2cfc3ab4961318d902040d099fec7483"},
629 | {file = "regex-2024.4.16.tar.gz", hash = "sha256:fa454d26f2e87ad661c4f0c5a5fe4cf6aab1e307d1b94f16ffdfcb089ba685c0"},
630 | ]
631 |
632 | [[package]]
633 | name = "requests"
634 | version = "2.31.0"
635 | description = "Python HTTP for Humans."
636 | optional = false
637 | python-versions = ">=3.7"
638 | files = [
639 | {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
640 | {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
641 | ]
642 |
643 | [package.dependencies]
644 | certifi = ">=2017.4.17"
645 | charset-normalizer = ">=2,<4"
646 | idna = ">=2.5,<4"
647 | urllib3 = ">=1.21.1,<3"
648 |
649 | [package.extras]
650 | socks = ["PySocks (>=1.5.6,!=1.5.7)"]
651 | use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
652 |
653 | [[package]]
654 | name = "six"
655 | version = "1.16.0"
656 | description = "Python 2 and 3 compatibility utilities"
657 | optional = false
658 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
659 | files = [
660 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
661 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
662 | ]
663 |
664 | [[package]]
665 | name = "urllib3"
666 | version = "2.2.1"
667 | description = "HTTP library with thread-safe connection pooling, file post, and more."
668 | optional = false
669 | python-versions = ">=3.8"
670 | files = [
671 | {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"},
672 | {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"},
673 | ]
674 |
675 | [package.extras]
676 | brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
677 | h2 = ["h2 (>=4,<5)"]
678 | socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
679 | zstd = ["zstandard (>=0.18.0)"]
680 |
681 | [[package]]
682 | name = "watchdog"
683 | version = "4.0.0"
684 | description = "Filesystem events monitoring"
685 | optional = false
686 | python-versions = ">=3.8"
687 | files = [
688 | {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"},
689 | {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"},
690 | {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"},
691 | {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"},
692 | {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"},
693 | {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"},
694 | {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"},
695 | {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"},
696 | {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"},
697 | {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85"},
698 | {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4"},
699 | {file = "watchdog-4.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605"},
700 | {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101"},
701 | {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca"},
702 | {file = "watchdog-4.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8"},
703 | {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"},
704 | {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"},
705 | {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"},
706 | {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"},
707 | {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"},
708 | {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"},
709 | {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"},
710 | {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"},
711 | {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"},
712 | {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"},
713 | {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"},
714 | {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"},
715 | {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"},
716 | {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"},
717 | ]
718 |
719 | [package.extras]
720 | watchmedo = ["PyYAML (>=3.10)"]
721 |
722 | [metadata]
723 | lock-version = "2.0"
724 | python-versions = "^3.10"
725 | content-hash = "c903dd4f569ec6f181518702a8f56c65d5f8d17b6330b336cebe6ee6677f9261"
726 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.poetry]
2 | name = "awesome-corporate-dev"
3 | version = "0.1.0"
4 | description = ""
5 | authors = ["Egor