Forwarded from Moscow Python (Valentin Dombrovsky)
На этой неделе мы будем выкладывать видео с Moscow Python Conf Online, которая прошла в марте этого года.
Первое видео: Mastering a data pipeline with Python / Robson Luis Monteiro Junior (Microsoft)
Building data pipelines are a consolidated task, there are a vast number of tools that automate and help developers to create data pipelines with few clicks on the cloud. It might solve non-complex or well-defined standard problems. This presentation is a demystification of years of experience and painful mistakes using Python as a core to create reliable data pipelines and manage insanely amount of valuable data. Let's cover how each piece fits into this puzzle: data acquisition, ingestion, transformation, storage, workflow management and serving. Also, we'll walk through best practices and possible issues. We'll cover PySpark vs Dask and Pandas, Airflow, and Apache Arrow as a new approach.
https://www.youtube.com/watch?v=25fUlUsmg38
Первое видео: Mastering a data pipeline with Python / Robson Luis Monteiro Junior (Microsoft)
Building data pipelines are a consolidated task, there are a vast number of tools that automate and help developers to create data pipelines with few clicks on the cloud. It might solve non-complex or well-defined standard problems. This presentation is a demystification of years of experience and painful mistakes using Python as a core to create reliable data pipelines and manage insanely amount of valuable data. Let's cover how each piece fits into this puzzle: data acquisition, ingestion, transformation, storage, workflow management and serving. Also, we'll walk through best practices and possible issues. We'll cover PySpark vs Dask and Pandas, Airflow, and Apache Arrow as a new approach.
https://www.youtube.com/watch?v=25fUlUsmg38
YouTube
Mastering a data pipeline with Python / Robson Luis Monteiro Junior (Microsoft)
Python Conf++ 2020 Online
Тезисы и презентация:
https://conf.python.ru/moscow/2020/abstracts/6316
Building data pipelines are a consolidated task, there are a vast number of tools that automate and help developers to create data pipelines with few clicks…
Тезисы и презентация:
https://conf.python.ru/moscow/2020/abstracts/6316
Building data pipelines are a consolidated task, there are a vast number of tools that automate and help developers to create data pipelines with few clicks…
Forwarded from Python Lounge: работа и стажировки для программистов
Как одной математической формулой по номеру месяца посчитать количество дней в нем?
Попробуем написать функцию f(x), которая бы давала следующий список значений (таблица №1), то есть количество дней в месяцах. Помимо стандартных арифметических операций, мы будем использовать целочисленное деление и взятие остатка по модулю.
Обычно количество дней в месяце колеблется между 30 и 31. При этом, можно заметить зависимость этого числа от четности месяца — значит, воспользуемся операцией взятия остатка по модулю 2. Кажется, это должно быть нечто, вроде:
Пока что не обращая внимания на февраль, нам нужно, чтобы +1 в делимом «активировалось» только при достижении аргументом значений, больших 8. При этом значения аргумента не могут превосходить 12. Значит, нам идеально подойдет целочисленное деление аргумента на 8:
Все правильно, кроме февраля. Как неожиданно. В самой последней версии нашей формулы февралю достались целых 30 дней. А потому нам нужно отсечь у него пару дней. Естественно, от этого пострадают и еще какие-то месяцы, поэтому нам придется пожертвовать именно январем, затем подправив формулу и для него. Отсечь дни для первого и второго месяцев можно с помощью выражения 2 % x. Тогда наша формула принимает уже следующий вид:
Остался последний шаг — подлатать январь. Это сделать не так сложно: просто добавим 2 дня только к нему, т.е. к такому месяцу, чей номер меньше либо равен единице. Как вам идея использовать для этой цели
Превосходно, 12 из 12. Подобная функция на языке Python может быть записана следующим образом:
Попробуем написать функцию f(x), которая бы давала следующий список значений (таблица №1), то есть количество дней в месяцах. Помимо стандартных арифметических операций, мы будем использовать целочисленное деление и взятие остатка по модулю.
Обычно количество дней в месяце колеблется между 30 и 31. При этом, можно заметить зависимость этого числа от четности месяца — значит, воспользуемся операцией взятия остатка по модулю 2. Кажется, это должно быть нечто, вроде:
f₁(x) = 30 + x % 2
# таблица №2
Пока что не обращая внимания на февраль, нам нужно, чтобы +1 в делимом «активировалось» только при достижении аргументом значений, больших 8. При этом значения аргумента не могут превосходить 12. Значит, нам идеально подойдет целочисленное деление аргумента на 8:
f₃(x) = 30 + (x + x // 8) % 2
# таблица №3
Все правильно, кроме февраля. Как неожиданно. В самой последней версии нашей формулы февралю достались целых 30 дней. А потому нам нужно отсечь у него пару дней. Естественно, от этого пострадают и еще какие-то месяцы, поэтому нам придется пожертвовать именно январем, затем подправив формулу и для него. Отсечь дни для первого и второго месяцев можно с помощью выражения 2 % x. Тогда наша формула принимает уже следующий вид:
f₄(x) = 28 + (x + x // 8) % 2 + 2 % x
# таблица №4
Остался последний шаг — подлатать январь. Это сделать не так сложно: просто добавим 2 дня только к нему, т.е. к такому месяцу, чей номер меньше либо равен единице. Как вам идея использовать для этой цели
1 // x
? Проверяем:f₅(x) = 28 + (x + x // 8) % 2 + 2 % x + 1 // x * 2
# таблица №5
Превосходно, 12 из 12. Подобная функция на языке Python может быть записана следующим образом:
f = lambda x: 28 + (x + x // 8) % 2 + 2 % x + 1 // x * 2
print(f'В июне {f(6)} дней')
# Out: В июне 30 дней
Forwarded from Python Lounge: работа и стажировки для программистов
Паттерн проектирования Singleton
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Итак, нам требуется такой класс, который будет при вызове возвращать один и тот же экземпляр, поэтому нам придется переопределить магический метод new.
new__(cls, *args, **kwargs) –– вызывается для создания экземпляра класса, перед вызовом __init. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).
То есть при вызове конструктора класса Singleton, будет возвращаться один и тот же объект из памяти.
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Итак, нам требуется такой класс, который будет при вызове возвращать один и тот же экземпляр, поэтому нам придется переопределить магический метод new.
new__(cls, *args, **kwargs) –– вызывается для создания экземпляра класса, перед вызовом __init. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).
class Singleton:
instance = None
def __new__(cls):
if cls.instance is None:
cls.instance = super().__new__(cls)
return cls.instance
Здесь мы проверяем, есть ли значение у атрибута instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.То есть при вызове конструктора класса Singleton, будет возвращаться один и тот же объект из памяти.
a = Singleton()
b = Singleton()
Создали два экземпляра, теперь убедимся, что они содержат одинаковый объект. print(a is b) # True
Forwarded from MoscowPython Conf Channel
❌Python не поддерживает функциональное программирование.
– Так считают многие Python-программисты. А если явно писать типы, то Python перестанет быть самим собой.
Но без нормальной типизации и принципов функционального программирования мы получаем месиво из кода, кучу потенциальных и реальных ошибок и проблемы в использовании принципа единой ответственности (SRP). SRP позволяет разложить сложные задачи на простые строительные блоки и составить из них корректное и нужное вам программное обеспечение.
💥На Russian Python Week 2020 теме типизации и функционального программирования будет посвящён отдельный мастер-класс от Pablo Aguilar, одного из основных разработчиков dry-python. Поговорим о том, как распределять ответственность, научимся решать проблемы с безопасностью и разберёмся, наконец, с типизацией.
✅ Бронируйте билеты! С промокодом дешевле на 5% (действует до 6 сентября) mpc2020-online-conf_tg_36
– Так считают многие Python-программисты. А если явно писать типы, то Python перестанет быть самим собой.
Но без нормальной типизации и принципов функционального программирования мы получаем месиво из кода, кучу потенциальных и реальных ошибок и проблемы в использовании принципа единой ответственности (SRP). SRP позволяет разложить сложные задачи на простые строительные блоки и составить из них корректное и нужное вам программное обеспечение.
💥На Russian Python Week 2020 теме типизации и функционального программирования будет посвящён отдельный мастер-класс от Pablo Aguilar, одного из основных разработчиков dry-python. Поговорим о том, как распределять ответственность, научимся решать проблемы с безопасностью и разберёмся, наконец, с типизацией.
✅ Бронируйте билеты! С промокодом дешевле на 5% (действует до 6 сентября) mpc2020-online-conf_tg_36
conf.python.ru
Pablo Aguilar на Russian Python Week 2020
I thought in this presentation flow, the slides are following it:* Show the presentation idea: Divide the code, Conquer maintainability* Flask code examples: Flaks minimal application, Flask + DB, Flask + DB + Marshmallow.Highlighting code pieces to show…
Forwarded from MoscowPython Conf Channel
🔥Чемпионат России по Python! Узнал сам — расскажи коллегам.
Cегодня анонсируем самый огонь — Чемпионат России по Python!
Каждый Python-разработчик может присоединиться к этой движухе: посостязаться в мастерстве, определить свой уровень и получить независимую оценку своих скиллов среди Python-разработчиков со всей страны. Главное и единственное требование ко всем участникам — знание стандартной библиотеки Python. Участие в Чемпионате бесплатно и доступно всем желающим.
❗️Как будет проходить Чемпионат?
В отборочном туре 30-35 вопросов в формате онлайн-квиза: 2 минуты на вопрос. Чем быстрее скорость ответа — тем больше очков возможно получить. Второй тур, он же финал: снова квиз на 15 вопросов по 2 минуты. Далее задачи, где нужно будет найти ошибку в коде. Ну и подведение итогов: определяем сильнейших питонистов России по итогам двух этапов конкурса и набранных очков. Ведущая Чемпионата — Злата Обуховская, тимлид в Nvidia.
✅Регистрируйся для участия в Чемпионате.
Cегодня анонсируем самый огонь — Чемпионат России по Python!
Каждый Python-разработчик может присоединиться к этой движухе: посостязаться в мастерстве, определить свой уровень и получить независимую оценку своих скиллов среди Python-разработчиков со всей страны. Главное и единственное требование ко всем участникам — знание стандартной библиотеки Python. Участие в Чемпионате бесплатно и доступно всем желающим.
❗️Как будет проходить Чемпионат?
В отборочном туре 30-35 вопросов в формате онлайн-квиза: 2 минуты на вопрос. Чем быстрее скорость ответа — тем больше очков возможно получить. Второй тур, он же финал: снова квиз на 15 вопросов по 2 минуты. Далее задачи, где нужно будет найти ошибку в коде. Ну и подведение итогов: определяем сильнейших питонистов России по итогам двух этапов конкурса и набранных очков. Ведущая Чемпионата — Злата Обуховская, тимлид в Nvidia.
✅Регистрируйся для участия в Чемпионате.
conf.python.ru
Чемпионат России по Python
Как джуниору победить сеньора? На Чемпионате по Python на Russian Python Week.
Forwarded from 🐍 PythonGuru — работа и стажировки для программистов
Хочешь изучить один из самых востребованных языков программирования Python?
Запишись на онлайн курс «Профессия Python-разработчик». Получи быстрый старт и практику кодинга. Освой востребованную, высокооплачиваемую профессию за двенадцать месяцев. Создай искусственный интеллект на дипломе!
👉 Все подробности по ссылке: https://clc.am/C9deFg
Чему научишься:
⚡️ создавать простые и сложные модульные программы: от консольных скриптов до чат-ботов;
⚡️ работать с базами данных;
⚡️ использовать промышленные средства разработки: Git, PyCharm;
⚡️ тестировать код;
⚡️ понимать место Django в семействе веб-фреймворков;
⚡️ оптимизировать старые и/или неудачные веб-приложения.
Центр карьеры Skillbox окажет индивидуальную поддержку на протяжении всего обучения — от помощи с выбором профессии до выхода на работу мечты.
Последний блок - Английский для IT-специалистов, благодаря чему создашь резюме на английском, подготовишься к интервью, подтянешь деловую переписку и специальную лексику.
Будь в числе первых двадцати и забери курс со скидкой 40%!
Подробности по ссылке: https://clc.am/C9deFg.
Запишись на онлайн курс «Профессия Python-разработчик». Получи быстрый старт и практику кодинга. Освой востребованную, высокооплачиваемую профессию за двенадцать месяцев. Создай искусственный интеллект на дипломе!
👉 Все подробности по ссылке: https://clc.am/C9deFg
Чему научишься:
⚡️ создавать простые и сложные модульные программы: от консольных скриптов до чат-ботов;
⚡️ работать с базами данных;
⚡️ использовать промышленные средства разработки: Git, PyCharm;
⚡️ тестировать код;
⚡️ понимать место Django в семействе веб-фреймворков;
⚡️ оптимизировать старые и/или неудачные веб-приложения.
Центр карьеры Skillbox окажет индивидуальную поддержку на протяжении всего обучения — от помощи с выбором профессии до выхода на работу мечты.
Последний блок - Английский для IT-специалистов, благодаря чему создашь резюме на английском, подготовишься к интервью, подтянешь деловую переписку и специальную лексику.
Будь в числе первых двадцати и забери курс со скидкой 40%!
Подробности по ссылке: https://clc.am/C9deFg.
Forwarded from 🐍 PythonGuru — работа и стажировки для программистов
Модуль - Wikipedia
Если модуля Howdoi было недостаточно, теперь мы можем импортировать всю Википедию! Да, теперь мы можем импортировать Википедию в Python с помощью модуля
Установите его с помощью команды:
И используйте его так:
#модули
Если модуля Howdoi было недостаточно, теперь мы можем импортировать всю Википедию! Да, теперь мы можем импортировать Википедию в Python с помощью модуля
Wikipedia
. Используйте непрерывный поток знаний с Python для повседневных нужд.Установите его с помощью команды:
pip install wikipedia
И используйте его так:
import wikipedia
result = wikipedia.page("GeeksforGeeks")
print(result.summary)
#модули
Forwarded from Библиотека питониста | Python, Django, Flask
Ehmatthes
Cleaning up a messy, exploratory Python project
One of my current projects is in a state that many people will probably recognize: it’s a small project that grew through the exploratory phase, got really messy, but has now proven to be really useful.
Forwarded from Pythonist.ru - образование по питону
Топ вопросов по ООП с собеседований
Объектно-ориентированное программирование является одной из основных концепций, поэтому вопросы по этой теме задают на каждом интервью. В этой статье мы собрали наиболее часто задаваемые новичкам вопросы по ООП (с ответами, конечно).
Читать статью
#топ
Объектно-ориентированное программирование является одной из основных концепций, поэтому вопросы по этой теме задают на каждом интервью. В этой статье мы собрали наиболее часто задаваемые новичкам вопросы по ООП (с ответами, конечно).
Читать статью
#топ
Forwarded from Pythonist.ru - образование по питону
Tips & Tricks. Сравнение объектов: «is» vs «==»
Разбираемся на примерах, чем отличается сравнение объектов в Python при помощи операторов "==" и "is".
Читать статью
#ооп
Разбираемся на примерах, чем отличается сравнение объектов в Python при помощи операторов "==" и "is".
Читать статью
#ооп
Forwarded from Библиотека питониста | Python, Django, Flask
🔁 Как писать «правильные» циклы на Python: разбираемся на примерах
Несколько соображений о том, как сделать код циклов Python более производительным и ясным с помощью функций встроенного модуля itertools: product, isslice, takewhile.
https://proglib.io/sh/QmYbLWSflt
Несколько соображений о том, как сделать код циклов Python более производительным и ясным с помощью функций встроенного модуля itertools: product, isslice, takewhile.
https://proglib.io/sh/QmYbLWSflt
Forwarded from Библиотека питониста | Python, Django, Flask
Осбуждение с Reddit: Поддержка f-строк в Python 3.8 = для самодокументирующихся выражений и отладки.
https://proglib.io/w/f28e132a
https://proglib.io/w/f28e132a
reddit
In case you didn't know: Python 3.8 f-strings support = for...
Python 3.8 added an `=` specifier to `f-strings`. An `f-string` such as `f'{expr=}'` will expand to the text of the expression, an equal sign,...
Forwarded from Python задачки
Тест «Наследование в Python»
Составили совместно с @pythonist_ru для вас тест из 10 вопросов.
Пишите в комментариях, кто на сколько ответил.
Пройти тест
Составили совместно с @pythonist_ru для вас тест из 10 вопросов.
Пишите в комментариях, кто на сколько ответил.
Пройти тест
Forwarded from Python Academy
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
#трюки #urllib
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
urlencode
из модуля urllib
.#трюки #urllib
Forwarded from Python Academy
How Do I
Сегодня наткнулся на модуль, который за вас может гуглить вопросы по программированию. Просто в консоли пишите
Модуль просто парсит верхние ответы со StackOverflow, и всё. Устанавливается это чудо через
#модули #howdoi
Сегодня наткнулся на модуль, который за вас может гуглить вопросы по программированию. Просто в консоли пишите
"howdoi ..."
, где вместо многоточия – ваш вопрос.Модуль просто парсит верхние ответы со StackOverflow, и всё. Устанавливается это чудо через
pip
, а для его использования, очевидно, нужен интернет.#модули #howdoi
Forwarded from Python Academy
Немного про цифры и юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.
Это влияет на такие функции, как
#числа #юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.
Это влияет на такие функции, как
int
, unicode.isdecimal
и даже re.match
. Предупрежден – значит вооружен.#числа #юникод
Forwarded from Python Academy
Сортировка словаря по значениям
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
#словари #сортировка
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
key
функции sorted
для указания функции, которая будет вызываться на каждом элементе до сравнения.#словари #сортировка
Forwarded from Python Academy
Нахождение наиболее частых элементов списка
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Метод
#collections #counter
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Counter
из библиотеки collections
.Метод
Counter.most_common(x)
возвращает x
кортежей, в которых первое значение – элемент, а второе – количество его повторений.#collections #counter
Forwarded from Python Academy
Python — самый популярный язык общего назначения.
Авторский канал @pythonotes рассказывает о его тонкостях, интересных библиотеках и фактах из мира Python.
Хотите изучить Python или узнать его еще лучше?
🔸 помощь начинающим
🔸 практические советы
🔸 интересные фишки языка
🔸 трики синтаксиса
🔸 комментарии к PEP
🔸 обзоры библиотек
Подписывайтесь, будет интересно!
📌@pythonotes
Авторский канал @pythonotes рассказывает о его тонкостях, интересных библиотеках и фактах из мира Python.
Хотите изучить Python или узнать его еще лучше?
🔸 помощь начинающим
🔸 практические советы
🔸 интересные фишки языка
🔸 трики синтаксиса
🔸 комментарии к PEP
🔸 обзоры библиотек
Подписывайтесь, будет интересно!
📌@pythonotes
Forwarded from Python Academy