## πŸ“œ Overview: ΠžΠ±Π·ΠΎΡ€ шаблона ### О шаблонС [`projectTemplate`](https://github.com/maxlansky1/projectTemplate) β€” это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ шаблон для создания Python-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ соврСмСнных ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, докумСнтирования ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ шаблон прСдоставляСт всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для старта Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: - 🐳 **ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Docker ΠΈ docker-compose** β€” для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ удобства развСртывания. - πŸ“š **НастроСнная Sphinx-докумСнтация с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ рСдактирования Π½Π° Markdown** β€” для Π»Ρ‘Π³ΠΊΠΎΠ³ΠΎ создания ΠΈ поддСрТания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. - πŸ”„ **Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ UML** β€” для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ структуры вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. - πŸ§‘β€πŸ’» **БистСма ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· Ruff ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‚Π΅Ρ€ Black** β€” для обСспСчСния качСства ΠΈ читаСмости ΠΊΠΎΠ΄Π°. - πŸš€ **CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ‹ для автоматичСского тСстирования ΠΈ дСплоя Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ** β€” для обСспСчСния Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстов ΠΈ развСртывания. - ⚑ **Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ Makefile для быстрого запуска ΠΊΠΎΠΌΠ°Π½Π΄** β€” для удобства Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. ```{eval-rst} .. uml:: ../../projectTemplate/diagrams/project_structure.puml :scale: 10% :align: center ``` ### Быстрый старт 1. УстановитС Python Π½Π° свой ПК ```{admonition} Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ :class:tip [ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ ΠΏΠΎ установкС Python](https://realpython.com/installing-python/) ``` 2. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ VS Code [с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта](https://code.visualstudio.com/) ```{admonition} ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ :class:tip [ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ ΠΏΠΎ Π½Π°Ρ‡Π°Π»Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с VS Code](https://habr.com/ru/articles/490754/) ``` 3. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ настройки VS Code Settings - Open Settings JSON Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚ΡƒΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния ```json { // Настройки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния для Windows "terminal.integrated.env.windows": { "PYTHONPATH": "${workspaceFolder}" }, // Настройки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния для Linux "terminal.integrated.env.linux": { "PYTHONPATH": "${workspaceFolder}" }, // Настройки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния для macOS "terminal.integrated.env.osx": { "PYTHONPATH": "${workspaceFolder}" } } ``` ```{tip} МоТно быстро Π·Π°ΠΉΡ‚ΠΈ Π² настройки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ `Ctrl+,`. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ раскладку ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΡƒΡŽ ``` 4. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΈ настройтС Git ```{admonition} ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ :class: tip [ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция ΠΏΠΎ установкС ΠΈ настройкС Git](https://habr.com/ru/articles/541258/) ``` 5. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Π΅ Π² VS Code Workspace 6. ΠžΡ‚ΠΊΡ€ΠΎΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Git Π² ΠΏΠ°ΠΏΠΊΠ΅ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ```{hint} На Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Terminal - New Terminal - Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ. ``` ```bash git init ``` Π’Π΅ΠΏΠ΅Ρ€ΡŒ Git отслСТиваСт вСрсии вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. 7. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ НС выходя ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ````{admonition} ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для ΠΏΠ°ΠΏΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ qwerty123 :class: dropdown ```bash python -m venv venv ``` ```` 8. АктивируйтС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ````{admonition} :class: dropdown Для Windows: ```bash .\venv\Scripts\activate ``` Для macOS/Linux: ```bash source venv/bin/activate ``` ```` ````{note} ПослС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ `(venv)` слСва ΠΎΡ‚ ΠΏΠ°ΠΏΠΊΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ```text (venv) PS C:\user\blablabla\qwerty123 ``` ```` 9. УстановитС `copier`, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ```bash pip install copier ``` 10. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ шаблон с GitHub ```bash copier copy gh:/maxlansky1/projectTemplate path/to/qwerty123 ``` ````{attention} `copier copy` - ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ шаблон `gh:/maxlansky1/projectTemplate` - ΠΏΡƒΡ‚ΡŒ ΠΊ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Π½Π° GitHub `path/to/qwerty123` - ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ вашСго локального ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ```{note} 1. Если ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΊΠΈ Π½Π° ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ 2. ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ ΠΌΡ‹ΡˆΠΊΠΈ Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° вставит тСкст ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ``` ```` Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° вопросы `copier` Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈΠ»ΠΈ просто Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter для согласия со стандартными ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ 11. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° GitHub, создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ сдСлайтС ΠΏΡƒΡˆ ```{note} ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория GitHub подскаТСт, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ``` 12. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ обновляйтС шаблон ```bash copier update ```