Python/ django
59K subscribers
2.54K photos
197 videos
48 files
3.27K links
по всем вопросам @workakkk

@itchannels_telegram - 🔥 все ит каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
🐍 Python-совет: как объединить списки разной длины и не потерять данные

Обычный zip() останавливается на самом коротком списке:


numbers = [1, 2, 3, 4, 5]
letters = ["a", "b", "c"]

print(list(zip(numbers, letters)))
# [(1, 'a'), (2, 'b'), (3, 'c')]


Элементы 4 и 5 просто исчезнут. Чтобы сохранить их, используйте zip_longest():


from itertools import zip_longest

result = zip_longest(
numbers,
letters,
fillvalue="нет значения",
)

print(list(result))


Результат:


[
(1, "a"),
(2, "b"),
(3, "c"),
(4, "нет значения"),
(5, "нет значения"),
]


А когда списки обязаны иметь одинаковую длину, в Python 3.10+ лучше включить проверку:


zip(numbers, letters, strict=True)


Вместо тихой потери данных Python сразу выбросит ValueError.

Полезно при обработке таблиц, CSV, результатов API и параллельных наборов данных.

#Python #Programming #PythonTips
🔥87👍6🎉1
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта

GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.

Что внутри:

- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.


from graphforge import GraphForge

graph = GraphForge("research/")

result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")

print(result.to_pandas())


При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.

Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.

https://github.com/CurateLabs/graphforge

#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
7👍6🔥2
XY - новая open-source библиотека визуализации от команды Reflex. Она пытается объединить удобство Matplotlib с интерактивностью браузерных графиков и производительностью Rust.

Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.


import xy

chart = xy.line_chart(
xy.line(
[1, 2, 3, 4, 5],
[120, 180, 165, 240, 310]
)
)

chart


Есть даже совместимость с привычным стилем Matplotlib:


import xy.pyplot as plt

fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()


По собственному бенчмарку разработчиков на Apple M5 Pro:

- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.

Под капотом:


Python API

ColumnStore

Rust compute

binary buffers

WebGL2 / Canvas


Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.

Установка:


pip install xy


Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.

Источник:
https://github.com/reflex-dev/xy

#Python #DataScience #Visualization #Rust
7🔥5👍3
🐍 Django-разработчикам: `DEBUG=True` в проде опаснее, чем кажется.

Это не просто красивые страницы ошибок. При включённом DEBUG приложение может раскрывать stack trace, настройки, пути файлов, middleware, URL-паттерны и другие детали окружения.

Главная рекомендация - fail closed:


DEBUG = False


То есть по умолчанию DEBUG всегда выключен, а включается только локально.

Даже staging, QA и preview-среды, доступные из интернета, лучше запускать с DEBUG=False.

Отдельная ловушка - переменные окружения:


DEBUG = os.environ.get("DEBUG", "False") != "False"


Здесь DEBUG=false или DEBUG=0 могут неожиданно превратиться в True.

Лучше явно парсить boolean или использовать django-environ.

Мелкая настройка, которая однажды может спасти production от очень неприятной утечки.

https://lincolnloop.com/blog/setting-djangos-debug-safely/

#Python #Django #Backend #Security #DevOps
6👍6🔥1😁1🎉1🤩1
🐍 В Python у while есть else. И многие разработчики узнают об этом спустя годы

Выглядит непривычно:


number = 0

while number < 5:
print(number)
number += 1
else:
print("Цикл завершился")


Блок else выполнится, если цикл закончился естественно, то есть условие while стало ложным.

Но есть важный нюанс. Если внутри сработает break, else уже не выполнится.


number = 0

while number < 5:
if number == 3:
break

number += 1
else:
print("Сюда не попадём")


Из-за этого while...else удобно использовать там, где нужно отличить нормальное завершение поиска от досрочного выхода.

Например, цикл пытается найти нужное значение. Если нашёл, делает break. Если дошёл до конца без успеха, срабатывает else.

Синтаксис существует в Python давно, но до сих пор выглядит как маленькая пасхалка языка.

#Python #Programming #Backend #PythonTips
16👍8🔥5😱4🎉2
🐍 Опытный Python-разработчик рассказал, для каких проектов в 2026 году он уже не выбирает Python первым.

Автор десятилетиями использовал Python практически для всего, но со временем пришёл к простой мысли: хороший универсальный язык не обязан быть лучшим инструментом для каждой задачи.

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

При этом это не очередное «Python умер».

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

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

https://menno.io/presentations/not-python-2026/index.html#/

#Python #Programming #SoftwareEngineering #Development
5👍5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Интегрируйте OCR в ваш Python-продукт за 15 минут 🚀

Создаёте SaaS, автоматизируете B2B или собираете ИИ-агентов на Python? Забудьте про облачные костыли и отправку конфиденциальных данных на чужие сервера!

Provision OCR — российский движок для локального распознавания документов в защищенном контуре.

⚡️ Python-friendly: интеграция через REST API и gRPC для FastAPI, Django или Flask.
⚡️ Docker-ready: быстрый запуск в один контейнер без сложной настройки окружения.
⚡️ 100% локальности: полное соответствие требованиям безопасности.
⚡️ Производительность: от <3 сек/стр. на GPU (RTX 2070+) или работа на CPU, точность до 99%.
⚡️Готовые шаблоны любых документов на русском: договоры, счета-фактуры и другие.

💻 Пример интеграции с Django:

https://github.com/Provision-Labs/Django_OCR_UI

💡 Дистрибутив в нашем Telegram-канале: @ProvisionLabs

#Python #Django #FastAPI #OCR #ProvisionOCR #Backend #OnPremise #AI #DevOps #OpenSource #ИИ
👍63😱2🔥1🎉1