#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from Dmitry
Pro Python-1.pdf
3.1 MB
а я хочу эту книгу прочитать
Forwarded from Freaking Mind
Но лучше уж fluent python почитать мне кажется
Forwarded from Инжиниринг Данных (Dmitry)
Amazon_SQL_and_Python_Task.pdf
79 KB
Phone Screening из Amazon - 2 задачки SQL + 1 Python.
Forwarded from Big Data Science [RU]
🌞Разработка на Python по 12 принципам SaaS c библиотекой Python-dotenv
Разработчики ML-моделей и аналитики данных не всегда чисто пишут код, как профессиональные программисты. Улучшить качество кода поможет простая методология разработки веб-приложений или SaaS, которая рекомендует:
• использовать декларативные форматы для автоматизации настройки, чтобы сократить время и силы новых разработчиков, присоединяющихся к проекту;
• иметь чистый контракт с базовой операционной системой, обеспечивающий максимальную переносимость между средами выполнения;
• запускать развертывания на современных облачных платформах, избавляя от необходимости администрирования серверов и систем;
• сокращать расхождения между разработкой и производством, обеспечивая непрерывное развертывание для максимальной гибкости;
• масштабироваться без существенных изменений в инструментарии, архитектуре или методах разработки.
Для реализации этих идей SaaS предлагает строить приложения по 12 принципам:
1. Одна кодовая база отслеживается в системе контроля версий, множество развертываний
2. Явно объявить и изолировать зависимости
3. Хранить конфигурацию в среде
4. Относиться к вспомогательным сервисам как к присоединенным ресурсам
5. Строго разделять этапы сборки и запуска
6. Исполнять приложение как один или несколько stateless-процессов
7. Экспортировать сервисы через привязку к порту
8. Обеспечивать параллелизм через масштабирование с помощью модели процесса
9. Максимальная надежность благодаря быстрому запуску и плавному завершению работы
10. Переносимость и похожесть сред от разработки до производства через тестовую
11. Логировать, чтобы рассматривать журналы как потоки событий
12. Выполнять задачи администрирования/управления как одноразовых процессов
Реализовать все это для Python-программы поможет открытая библиотека Python-dotenv. Она считывает пары ключ-значение из файла .env и может устанавливать их как переменные среды. Если приложение берет конфигурацию из переменных среды, запуск его в процессе разработки не очень практичен, т.к. разработчику нужно установить эти переменные среды самостоятельно. Добавив Python-dotenv в свое приложение, можно упростить процесс разработки. Библиотека сама загрузит конфигурацию из файла .env, оставаясь при этом настраиваемым через среду.
Также библиотека может загрузить конфигурацию без изменения среды, распарсить конфигурацию как поток и загрузить файлы .env в IPython. Инструмент также имеет CLI-интерфейс, чтобы манипулировать файлом .env, не открывая его вручную.
https://github.com/theskumar/python-dotenv
Forwarded from Datalytics
Интересная статья про разбор преимуществ языка R перед Python для задач анализа данных и data science

Основная мысль статьи, как мне кажется, вертится вокруг того, что R изначально был задуман как язык для различных манипуляций с данными, в итоге в нём предусмотрены необходимые типы данных, векторизация, удобная работа с табличными данными, пайплайны обработки данных и многое другое. В Python это всё тоже есть, но в виде «наворачиваемых» сверху пакетов, таких как numpy и pandas, но им неминуемо приходится адаптироваться к ООП-шной архитектуре Python, от чего возникает ряд решений, которые кто-то может назвать костыльными

Лично для меня Python всё-таки остаётся основным языком в анализе данных, так как уже слишком много времени и ресурсов затрачено на то, чтобы его изучить. Но для кого-то эта статья может быть хорошим набором аргументов для того, чтобы изучить R

https://habr.com/ru/post/670250/
Библиотеки Python для работы с базами данных и SQL-запросами

1. sqlite3
Библиотека позволяет работать с базами данных SQLite, которые записывают и читают данные с файлов, а значит пользователю не нужно устанавливать сервер для БД, что очень удобно)

2. psycopg2
Модуль для работы с базами данных PostgreSQL. Также позволяет все основные функции с базой данных: работа с таблицами, написание запросов и т.д.

3. mysql-connector-python
Как уже понятно из названия, модуль позволяет подключаться к БД MySQL) Включает в себя все те же функции, что и описанные выше модули. Подробная документация доступна по ссылкам в названии модулей

4. pymssql
Модуль позволяет подключаться к БД Microsoft SQL Server

5. SQLAlchemy
Алхимия при работе с базами данных из python) Библиотека позволяет подключаться к различным БД. Есть множество функций: создание/изменение/удаление таблиц, извлечение/вставка данных, написание запросов, изменение данных. Библиотека позволяет работать с БД с помощью объектно-ориентированного кода, не используя при этом SQL

6. PandaSQL
Модуль позволяет расширить функционал pandas и писать SQL запросы прямо к датафреймам. Как вариант использования модуля с другими библиотеками, после подключения к БД и извлечения данных, к датафрейму можно писать запросы как будто бы к обычной таблице в БД, не используя синтаксис pandas
Forwarded from Python Skills 🐍
Добавляем классу большую функциональность

Декоратор @classmethod — это метод, который получает класс в качестве параметра, который принято обозначать как cls. Он указывает на класс ToyClass, а не на объект этого класса.

Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.

Проще говоря, @classmethod — это обычный метод класса, имеющий доступ ко всем атрибутам класса, через который он был вызван.

#oop #classmethod
Forwarded from Python Skills 🐍
Наиболее частый элемент в списке

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

Большинство прибегает к использованию циклов для решения этой проблемы. Но вы можете упростить себе задачу, применив несколько встроенных функций.
Forwarded from Python Skills 🐍
Превью из длинного текста

Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.

Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.

Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.

#строки #textwrap
Forwarded from Python Skills 🐍
Присваиваем значение переменной окружения

Для присвоения значения любой переменной среды используется функция setdefault().

Давайте напишем код, чтобы с помощью функции setdefault() изменить значение переменной DEBUG на True (по умолчанию установлено False). После установки значения мы проверим его функцией get().

Если мы сделали всё правильно, выведется сообщение «Режим отладки включен», в противном случае – «Режим отладки выключен».
Forwarded from Python Skills 🐍
Красивые таблицы в терминале

PrettyTable – это простая библиотека, предназначенная для быстрого и легкого представления табличных данных в виде ASCII. Модуль можно установить привычным способом через pip.

Для создания таблиц и работы с ними используется класс PrettyTable из этого модуля. Задать название для столбцов можно с помощью атрибута fields_name. Строки в таблицу добавляются путем вызова метода add_row.

Более того, модуль prettytable позволяет регулировать различные параметры, сортировать данные, работать с html, а также взаимодействовать с csv и sql таблицами. Так что возможностей у этого модуля предостаточно.

#таблицы #prettytable
Forwarded from Python Skills 🐍
[Python] С помощью Python нужно записать данные в файл, но только в том случае, если файла ещё нет. Какой режим указать в инструкции open()?
Anonymous Poll
15%
'x'
31%
Никакой. Нужна предварительная проверка os.path.exists()
49%
'w'
5%
'r'