I published the #python binding for my #XML library called pyuppsala https://pypi.org/project/pyuppsala/

Как мы научились честно считать эффект промокодов: Causal Inference в онлайн-доставке X5 Digital
Сегодня расскажу о модели, которую мы построили для оценки реального эффекта промокодов. Главные вопросы: кому, какой, и зачем мы выдаем промокод. Спойлер: ответ нас удивил. И именно этот ответ стал главной причиной, по которой эту модель вообще стоило строить. Представьте стандартный отчёт по промокампании: «Пользователи, применившие промокод, потратили на 800 рублей больше среднего». Бизнес доволен, маркетинг рапортует об успехе. Но подождите, а сколько из них потратили бы эти деньги и без промокода? Это не риторический вопрос. Это принципиальная проблема, которая называется selection bias — систематическая ошибка отбора.
https://habr.com/ru/companies/X5Tech/articles/1005410/
#causal_inference #differenceindifference #propensity_score_matching #uplift_modeling #a_b_testing #counterfactual_learning #catboost #machine_learning #data_science #python
Si vous travaillez avec codium / vsCode sur un monorepo comprenant différents projets Python, votre IDE aura des difficultés à savoir quel environnement virtuel utiliser selon le fichier .py que vous consultez. Deux extensions pourront vous aider :
- Envy (https://marketplace.visualstudio.com/items?itemName=teticio.python-envy), qui
fonctionne de façon automatique
- Python Environments (https://devblogs.microsoft.com/python/python-in-visual-studio-code-february-2026-release/) qui nécessite un peu de configuration
#Python #IDE #extension #venv #monorepo
__str__ vs __repr__ в Python: конец путанице
« str для людей, а repr для машин» — эту фразу слышали многие, но на практике путаница всё равно остается. Почему функция print() иногда игнорирует ваши настройки? Что такое односторонний фолбэк? И зачем вообще писать оба метода?
https://habr.com/ru/articles/1006790/
#python #python3 #python_для_начинающих #python_3 #python_tutor #python_class #string #repr
Python Tip: itertools.chain()
from itertools import chain
lists = [[1,2], [3,4], [5,6]]
flat = list(chain.from_iterable(lists))
# [1, 2, 3, 4, 5, 6]
chain.from_iterable() flattens nested iterables without creating intermediate lists....
https://raccoonette.gumroad.com/l/Python-for-Beginners-From-Zero-to-Your-First-Projects
#Python #CodingTips #Programming
Python Tip: Multiple Assignment
# Swap without temp variable
a, b = b, a
# Multiple returns
def min_max(lst):
return min(lst), max(lst)
lo, hi = min_max([3,1,4,1,5])
Python's tuple packing/unpacking makes swaps and multiple returns elegant.
https://raccoonette.gumroad.com/l/Python-for-Beginners-From-Zero-to-Your-First-Projects
#Python #CodingTips #Programming
Airbnb is hiring Staff Machine Learning Engineer, Relevance and Personalization
🔧 #cplusplus #java #python #scala #kafka #kubernetes #machinelearning
🌎 United States
⏰ Full-time
🏢 Airbnb
Job details https://jobsfordevelopers.com/jobs/staff-machine-learning-engineer-relevance-and-personalization-at-airbnb-com-feb-11-2026-70d1aa?utm_source=mastodon.world&utm_medium=social&utm_campaign=posting
#jobalert #jobsearch #hiring
Unlike this kitten, you can vote to select talks & workshops for EuroPython 2026!
Head over to https://europython.eu/voting and follow the simple steps.
Voting closes today. Yikes!
#europython #conference #europython2026 #python #opensource #programme #communityvoting

🛠️ Neue Data Carpentries Lektion:
„Introduction to Data Analysis Basics with Python for the Humanities“
🐍 Einführung in die Datenanalyse mit Python
Keine Vorkenntnisse im Programmieren nötig!
✔️ Tabellarische Daten
✔️ Textanalyse
✔️ Netzwerke
Alle Materialien (Daten, Lösungen, Installationsanleitung) frei unter CC-BY-4.0.
Konzipiert von @goli_sf
#DigitalHumanities #DataScience #OpenScience #Python #OER #Hermes #Forschungstools

Python Tip: collections.Counter
from collections import Counter
words = 'the cat sat on the mat'.split()
Counter(words).most_common(2)
# [('the', 2), ('cat', 1)]
Counter counts occurrences in O(n) time. Better than writing your own dict-based counter.
https://raccoonette.gumroad.com/l/Python-for-Beginners-From-Zero-to-Your-First-Projects
#Python #CodingTips #Programming
Python Tip: dict.get() Default
config = {'debug': True}
verbose = config.get('verbose', False)
# Returns False instead of KeyError
dict.get(key, default) returns a default value instead of raising KeyError. Safer than direct...
https://raccoonette.gumroad.com/l/Python-for-Beginners-From-Zero-to-Your-First-Projects
#Python #CodingTips #Programming
Season 1 Lesson 6 Part 8 - Your First Steps - Hidden Power of - String Formatting in Python #dataanalysis #learncoding #pythoncode #dataengineer #python #vibecoding #pythonprogramming #codingtutorial #softwaredeveloper #jupyternotebook