Please open Telegram to view this post
VIEW IN TELEGRAM
❤54😁32🤣12👍7
Представляю Goldman Sachs GS-Quant
Python-инструментарий для количественного анализа, созданный Goldman Sachs.
GS Quant — это Python-набор инструментов для квант-финансов, построенный на базе одной из самых мощных платформ управления рисками.
GS Quant создан для ускорения разработки квант-трейдинговых стратегий и решений для риск-менеджмента. В его основе более 25 лет опыта работы на глобальных рынках.
Чтобы получить доступ к API, нужен client id и secret. Они доступны только институциональным клиентам Goldman Sachs.
Исходники GS-Quant можно найти на GitHub:
https://github.com/goldmansachs/gs-quant
👉 @PythonPortal
Python-инструментарий для количественного анализа, созданный Goldman Sachs.
GS Quant — это Python-набор инструментов для квант-финансов, построенный на базе одной из самых мощных платформ управления рисками.
GS Quant создан для ускорения разработки квант-трейдинговых стратегий и решений для риск-менеджмента. В его основе более 25 лет опыта работы на глобальных рынках.
Чтобы получить доступ к API, нужен client id и secret. Они доступны только институциональным клиентам Goldman Sachs.
Исходники GS-Quant можно найти на GitHub:
https://github.com/goldmansachs/gs-quant
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤11👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Теперь в Minecraft можно генерировать 3D-объекты по одному промпту.
Мод Falcraft добавляет в игру продвинутый AI. Можно на лету менять текстуры блоков через NanoBanana или генерировать целые 3D-структуры одной командой прямо во время игры.🌟
Скачать на GitHub: https://github.com/blendi-remade/falcraft?tab=readme-ov-file
👉 @PythonPortal
Мод Falcraft добавляет в игру продвинутый AI. Можно на лету менять текстуры блоков через NanoBanana или генерировать целые 3D-структуры одной командой прямо во время игры.
Скачать на GitHub: https://github.com/blendi-remade/falcraft?tab=readme-ov-file
Please open Telegram to view this post
VIEW IN TELEGRAM
❤26😁4💊4
Совет по чистым тестам в Python:
В большинстве случаев твои тесты должны покрывать:
- все happy path сценарии
- edge/corner/boundary кейсы
- негативные тесты
- проверки на безопасность и некорректные вводы
👉 @PythonPortal
В большинстве случаев твои тесты должны покрывать:
- все happy path сценарии
- edge/corner/boundary кейсы
- негативные тесты
- проверки на безопасность и некорректные вводы
import uuid
from dataclasses import dataclass
from typing import Optional
@dataclass
class User:
username: str
class InMemoryUserRepository:
def __init__(self):
self._users = []
def add(self, user: User) -> None:
self._users.append(user)
def search(self, query: Optional[str] = None) -> list[User]:
if query is None:
return self._users
else:
return [
user
for user in self._users
if query in user.username
]
# happy path
def test_search_users_without_query_lists_all_users():
user1 = User(username="[email protected]")
user2 = User(username="[email protected]")
repository = InMemoryUserRepository()
repository.add(user1)
repository.add(user2)
assert repository.search() == [user1, user2]
# happy path
def test_search_users_with_email_part_lists_all_matching_users():
user1 = User(username="[email protected]")
user2 = User(username="[email protected]")
user3 = User(username="[email protected]")
repository = InMemoryUserRepository()
repository.add(user1)
repository.add(user2)
repository.add(user3)
assert repository.search("doe") == [user1, user3]
# edge test case
def test_search_users_with_empty_query_lists_all_users():
user1 = User(username="[email protected]")
user2 = User(username="[email protected]")
repository = InMemoryUserRepository()
repository.add(user1)
repository.add(user2)
assert repository.search("") == [user1, user2]
# negative test case
def test_search_users_with_random_query_lists_zero_users():
user1 = User(username="[email protected]")
repository = InMemoryUserRepository()
repository.add(user1)
assert repository.search(str(uuid.uuid4())) == []
# security test
def test_search_users_with_sql_injection_has_no_effect():
user1 = User(username="[email protected]")
repository = InMemoryUserRepository()
repository.add(user1)
repository.search("DELETE FROM USERS;")
assert repository.search() == [user1]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤32👍3👀2
Media is too big
VIEW IN TELEGRAM
Большая новость: теперь Google Colab можно запускать прямо внутри VS Code.
То есть можно писать код в нормальном редакторе, а ноутбук подключать к Colab GPU/TPU окружению для ML/AI задач.
Настройка занимает пару минут. И бесплатно.
Как стартануть:
1. Ставишь расширение Google Colab из Marketplace в VS Code
2. Открываешь .ipynb
3. Выбираешь ядро Colab
4. Авторизуешься и всё, поехали
👉 @PythonPortal
То есть можно писать код в нормальном редакторе, а ноутбук подключать к Colab GPU/TPU окружению для ML/AI задач.
Настройка занимает пару минут. И бесплатно.
Как стартануть:
1. Ставишь расширение Google Colab из Marketplace в VS Code
2. Открываешь .ipynb
3. Выбираешь ядро Colab
4. Авторизуешься и всё, поехали
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤35👍13🔥7💊1
Oxylabs это довольно известная компания в сфере веб-скрейпинга с десятилетним опытом.
Они выпустили Python-пакет для веб-парсинга. С его помощью можно вытаскивать данные из e-commerce сайтов, поисковиков, сервисов недвижимости и многого другого.
Вот простой пример парсинга результатов Bing:
Oxylabs умеет работать практически с любыми сайтами, но у них есть отдельные, более заточенные API для популярных площадок:
- Amazon
- Google
- Google Shopping
- Bing
- Kroger
- Wayfair
- YouTube Transcript
Подробнее про Oxylabs можно узнать на их сайте
Если нужен только Python-пакет для веб-скрейпинга, его можно найти на GitHub
👉 @PythonPortal
Они выпустили Python-пакет для веб-парсинга. С его помощью можно вытаскивать данные из e-commerce сайтов, поисковиков, сервисов недвижимости и многого другого.
Вот простой пример парсинга результатов Bing:
from oxylabs import RealtimeClient
# Указываем данные для авторизации в Oxylabs API
username = "username"
password = "password"
# Создаем Realtime-клиент с нашими кредами
client = RealtimeClient(username, password)
# Используем bing_search, чтобы получить результаты Bing по запросу "nike"
result = client.bing.scrape_search("nike")
# Выводим сырые данные (как есть)
print(result.raw)
Oxylabs умеет работать практически с любыми сайтами, но у них есть отдельные, более заточенные API для популярных площадок:
- Amazon
- Google Shopping
- Bing
- Kroger
- Wayfair
- YouTube Transcript
Подробнее про Oxylabs можно узнать на их сайте
Если нужен только Python-пакет для веб-скрейпинга, его можно найти на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍6🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣54❤20👍8😁2🤝1
Как получить минимальное и максимальное значения последовательности в Python, используя встроенные функции.
Обрати внимание: обе функции поддерживают удобный параметр default, который можно задать на случай, если последовательность окажется пустой.
👉 @PythonPortal
Обрати внимание: обе функции поддерживают удобный параметр default, который можно задать на случай, если последовательность окажется пустой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👀9❤4😁1
Разработчики ядра Python предлагают сделать язык программирования Rust жёсткой зависимостью для Python.
Конкретно речь идёт о CPython (де-факто эталонной реализации Python)
Такая зависимость от Rust фактически сделает невозможным современный Python на ряде платформ, не поддерживаемых Rust (включая RiscOS, PPC-Mac’и, некоторые версии CentOS и другие)
👉 @PythonPortal
Конкретно речь идёт о CPython (де-факто эталонной реализации Python)
Такая зависимость от Rust фактически сделает невозможным современный Python на ряде платформ, не поддерживаемых Rust (включая RiscOS, PPC-Mac’и, некоторые версии CentOS и другие)
Please open Telegram to view this post
VIEW IN TELEGRAM
💊38❤5😁3🌚3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Я только что нашёл сайт, который объясняет HTTP-коды… через мемы.
200, 404, 500 и вся эта банда.
Учить HTTP таким способом надо прямо на первом курсе программирования.
→ https://github.com/keijeizei/httpmemes
👉 @PythonPortal
200, 404, 500 и вся эта банда.
Учить HTTP таким способом надо прямо на первом курсе программирования.
→ https://github.com/keijeizei/httpmemes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤13😁5🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
ПОСЛЕДНИЕ НОВОСТИ: Вчера Cloudflare на пару минут лег , и следователи обвиняют в этом Whiskers. 👀
👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁82❤10💊3👍2🌚1
Новая игрушка для тех, кто обожает странные, технологичные и слегка психоделические штуки. 👍
Недавно нашёл экспериментальный редактор, который больше похож на арт-инсталляцию для хакеров, чем на обычный IDE.
Что внутри:
Живёт на Windows, macOS и Debian. А ещё его можно воткнуть в своё приложение на ImGui, если хочется интегрировать редактор прямо в движок или тулзу.
Ссылка для любопытных: github.com/nealmick/ned
👉 @PythonPortal
Недавно нашёл экспериментальный редактор, который больше похож на арт-инсталляцию для хакеров, чем на обычный IDE.
Что внутри:
Шейдерные эффекты, неон и эффект старого экрана. Не обязательно, но включить можно
Полноценная подсветка синтаксиса и разбор кода через Tree Sitter. Rust, Python, Go, C++ и ещё куча языков.
LSP работает на ура. Переходы по символам, автокомплит, подсказки типов. Настраивать ничего не пришлось.
Встроенный терминал, и не просто терминал, а на основе st. Для любителей минимализма и сурового UX.
Мультикурсор, кастомные парсеры и всякие удобства для тех, кто пишет на своём таинственном языке, о котором знают три человека в мире.
Поддержка ИИ-подсказок. Можно цеплять модели через OpenRouter и выбирать, кто сегодня будет вашим робот-напарником.
Живёт на Windows, macOS и Debian. А ещё его можно воткнуть в своё приложение на ImGui, если хочется интегрировать редактор прямо в движок или тулзу.
Ссылка для любопытных: github.com/nealmick/ned
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤4