#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
​​Python. Разработка на основе тестирования
Автор: Персиваль Г.

Книга рассказывает о таком методе разработки, как разработка на основе тестирования (Test-Driven Development, TDD) программ на языке Python. Чтобы читатель оценил все возможности такого подхода, в книге подробно описывается процесс разработки реального веб-приложения от начала до конца.

#книгадня
Разаработка на Python в Visual Studio Code
В этой статье вы узнаете о том, как:
- установить Visual Studio Code;
- найти и установить расширения, облегчающие разработку на Python;
- написать простое приложение на Python;
- узнаете, как запускать и отлаживать существующие программы Python в VS Code;
- подключать Visual Studio Code к Git и GitHub, чтобы поделиться своим кодом со всем миром.

#статьядня

http://clc.am/qkQNsg
Когда вы пишете надежный код, тесты необходимы для проверки правильности, надежности и эффективности логики вашего приложения. Однако ценность ваших тестов зависит от того, насколько хорошо они демонстрируют эти критерии. Препятствия, такие как сложная логика и непредсказуемые зависимости, затрудняют написание ценных тестов. Библиотека фиктивных объектов Python, unittest.mock, может помочь вам преодолеть эти препятствия.

#статьядня

https://prglb.ru/3lsbb
Когда вы разветвляете свой процесс, случайное начальное число, которое вы используете, копируется между процессами. Это может привести к тому, что процессы будут давать одинаковый «случайный» результат.

Чтобы избежать этого, вы должны вручную вызывать random.seed() в каждом процессе.

Однако, если вы используете multiprocessing, он делает это за вас.

import multiprocessing
import random
import os
import sys
                            
def test(a):                       
    print(random.choice(a), end=' ')
                                   
# a = [1, 2, 3, 4, 5]

for _ in range(5):
    test(a)
print()

for _ in range(5):                 
    p = multiprocessing.Process(   
        target=test, args=(a,))
    p.start()                      
    p.join()                       
print()                            

for _ in range(5):
    pid = os.fork()
    if pid == 0:
        test(a)
        sys.exit()
    else:
        os.wait()
print()


# Результат:
4 4 4 5 5
1 4 1 3 3
2 2 2 2 2

Более того, если вы используете Python 3.7 или новее,  os.fork делает то же самое, благодаря новому хуку at_fork.

Вывод приведенного выше кода для Python 3.7:
1 2 2 1 5
4 4 4 5 5
2 4 1 3 1
4 метода тестирования приложений Python для командной строки (CLI)
В этом руководстве вы изучите четыре практических метода тестирования приложений командной строки Python:

Отладка «Lo-Fi» с print()
Использование визуального отладчика Python
Юнит тестирование с помощью pytest и mocks
Интеграционное тестирование

#статьядня

https://prglb.ru/5ju7z
Подборочка статей по тестированию в Python

#статьядня

https://prglb.ru/ue2v
Тестирование в Python

Есть много способов проверить ваш код. В этом учебном пособии вы изучите приемы, состоящие из самых простых шагов, и перейдете к продвинутым методам.

#статьядня

https://prglb.ru/4k8cv
Python Unit Testing With VS Code

VS Code может автоматически распознавать существующие тесты Python и запускать их. Разбираемся, как настроить его для запуска наборов тестов и отдельных тестов, а также как просмотреть результаты теста.

#видеодня

https://prglb.ru/31v92
​​Python Unit Test Automation
Автор: Ashwin Pajankar

В настоящем руководстве вы познакомитесь с юнит-тестированием для проектов на языке программирования Python на примере таких библиотек, как doctest, unittest, nose, nose2 и pytest

#книгадня

https://t.me/progbook/3696
Несколько хороших страничек в Twitter. Join! :) Полезно для разработчика любого уровня.

Full Stack Python
Обучающие и информационные материалы.

Python Digest
Русскоязычный аккаунт.

Talk Python Podcast
Подкасты о Python на английском языке.

Python Hub
Полезные новости.

Python StackOverflow
Вопросы о Python со StackOverflow.

Raymond Hettinger
Советы для разработчиков.
#python python... PYTHON 🔛 🚀
The Python 3 Standard Library by Exa.pdf
Chapter 19.pdf
492.3 KB
Chapter 19
Modules and Packages
Python’s primary extension mechanism uses source code saved to modules and incorporated
into a program through the import statement. The features that most developers think of
as “Python” are actually implemented as the collection of modules called the Standard
Library, the subject of this book. Although the import feature is built into the interpreter
itself, the library also includes several modules related to the import process.
The importlib (page 1329) module exposes the underlying implementation of the import mechanism used by the interpreter. It can be used to import modules dynamically at
runtime, instead of using the import statement to load them during start-up. Dynamically
loading modules is useful when the name of a module that needs to be imported is not
known in advance, such as for plug-ins or extensions to an application.
Python packages can include supporting resource files such as templates, default configuration files, images, and other data, along with sourc
me, daddy: inspect.stack()[1][2],.. [2][3]
Метрики кода. Почему метрики кода важны?
Метрики кода могут быть получены с помощью инструментов статического анализа кода для определения сложности и нестандартных практик.

Почему метрики кода важны?
Метрики кода позволяют разработчикам находить проблемные области кодовой базы, которые могут нуждаться в рефакторинге. Кроме того, некоторые показатели, такие как техническая задолженность, помогают разработчикам сообщать нетехнической аудитории, почему возникают проблемы с системой.

Проекты с открытым исходным кодом

Radon — это инструмент для получения необработанных метрик на счетчиках линий, метрик цикломатической сложности, метрик Холстеда и метрик ремонтопригодности.

Pylint содержит средства проверки соответствия стиля кода PEP8, дизайна, исключений и многих других инструментов анализа исходного кода.

PyFlakes анализирует исходные файлы на наличие ошибок и сообщает о них.

Pyntch — это статический анализатор кода, который пытается обнаружить ошибки во время выполнения. Он не выполняет проверку стиля кода.

Prospector проверяет файлы исходного кода Python, чтобы предоставить данные о типе и местоположении классов, методов и другую связанную информацию об источнике.

Flake8 — это средство обеспечения соблюдения правил в формате кода. Его целью является не сбор метрик, а обеспечение единого стиля во всех ваших программах на Python для максимальной читабельности. Правила для Flask8 все определены в этом списке , который сворачивает зависимости Flake8 от pycodestyle, pyflakes и McCabe.

Black — это средство форматирования кода Python с сильными, бескомпромиссными предположениями о том, как ваш код должен быть отформатирован.

Dlint является носителем для безопасного кодирования.

pylintdb помещает результаты pylint в базу данных SQLite для программного доступа и поиска. Нед Бэтчелдер написал его и написал о том, как он использует программу в этом инструменте командной строки размером с кусочек: сообщение pylintdb .

Flask8-eradicate ( исходный код ) — это плагин Flask8 для определения мертвого кода.

Службы метрик размещенного кода
Следующие инструменты готовы к использованию, перейдя в службу, введя URL-адрес вашего сайта, позволив им выполнить анализ и затем прочитав результаты.

Coveralls показывает покрытие кода из наборов тестов и других метрик, чтобы помочь разработчикам улучшить качество своего кода.

webhint, ранее Sonarwhal, сканирует ваш сайт на предмет доступности, скорости и безопасности. Существует как онлайн-версия, на которую вы можете указать произвольный URL, так и версия для командной строки для запуска самостоятельно.

Codecov подключается к GitHub, BitBucket или GitLab и сообщает о покрытии кода в ваших хранилищах кода.