Привет, я Денис! У меня 16 лет опыта в IT, из них 12 лет – в своей IT-компании. Я могу бесплатно тебя обучить с нуля до уровня Junior или Middle по нескольким направлениям.
Добро пожаловать в канал Python_Scripts! Здесь вы найдете скрипты на Python для самых разных целей. Боты, парсеры, чекеры, автоматизация и многое другое - все это доступно в нашем канале. Если вам нужен инструмент для работы с данными, автоматизации процессов или просто хотите узнать новое о программировании на Python, то вы попали по адресу. Мы постоянно обновляем наш контент и готовы делиться с вами самыми эффективными и полезными скриптами. Присоединяйтесь к нам и начните использовать мощь Python для улучшения своей работы и повседневной жизни! Ваши предложения приветствуются, пишите нам @binance_de.
14 Feb, 06:00
14 Feb, 05:00
13 Feb, 14:00
pip install peewee
13 Feb, 11:00
import time
import ccxt
def get_price(exchange, symbol):
try:
ticker = exchange.fetch_ticker(symbol)
return ticker['last']
except Exception as e:
print(f"Ошибка при получении цены с {exchange.id}: {e}")
return None
def main():
bybit = ccxt.bybit()
binance = ccxt.binance()
symbol = 'BTC/USDT'
while True:
price_bybit = get_price(bybit, symbol)
price_binance = get_price(binance, symbol)
if price_bybit and price_binance:
spread = abs(price_bybit - price_binance)
print(f"Цена Bybit: {price_bybit}, Цена Binance: {price_binance}, Спред: {spread}")
if spread > 200: # Порог арбитражной возможности
print("Арбитражная возможность найдена!")
else:
print("Нет арбитражных возможностей на данный момент.")
time.sleep(5) # Пауза перед следующим запросом
if __name__ == "__main__":
main()
13 Feb, 05:00
12 Feb, 14:00
pip install pygraphviz
12 Feb, 11:00
import requests
from collections import defaultdict
# Актуальный эндпоинт API Bybit
TRADES_URL = "https://api.bybit.com/v5/market/recent-trade"
SYMBOL = "BTCUSDT"
TRADE_LIMIT = 1000 # Количество сделок для анализа
BIN_SIZE = 50 # Группировка цен (шаг 50 USDT)
def fetch_trades():
"""Получает последние сделки"""
for category in ["spot", "linear", "inverse"]:
params = {"category": category, "symbol": SYMBOL, "limit": TRADE_LIMIT}
response = requests.get(TRADES_URL, params=params)
if response.status_code == 200:
data = response.json()
if "result" in data and "list" in data["result"]:
trades = data["result"]["list"]
if trades:
return trades
return []
def analyze_volume_clusters():
"""Анализирует кластеры объёма и выводит топ-10 уровней"""
trades = fetch_trades()
if not trades:
print("Нет данных о сделках.")
return
volume_clusters = defaultdict(float)
for trade in trades:
price = float(trade.get("price", trade.get("p", 0)))
volume = float(trade.get("size", trade.get("v", 0)))
if price == 0 or volume == 0:
continue
price_bin = round(price / BIN_SIZE,4) * BIN_SIZE
volume_clusters[price_bin] += volume
sorted_clusters = sorted(volume_clusters.items(), key=lambda x: x[1], reverse=True)
print("Топ-10 уровней с наибольшим объёмом:")
for i, (price_level, volume) in enumerate(sorted_clusters[:10]):
print(f"{i+1}. Цена: {price_level} USDT | Объём: {volume:.2f} BTC")
if __name__ == "__main__":
analyze_volume_clusters()
12 Feb, 05:00
11 Feb, 14:00
pip install lark-parser
11 Feb, 11:00
import requests
import time
# API Bybit (глубина стакана)
ORDER_BOOK_URL = "https://api.bybit.com/v5/market/orderbook"
SYMBOL = "BTCUSDT"
DEPTH = 50 # Берём топ-50 заявок
def get_order_book():
"""Получает стакан заявок"""
params = {"category": "spot", "symbol": SYMBOL, "limit": DEPTH}
response = requests.get(ORDER_BOOK_URL, params=params)
if response.status_code == 200:
data = response.json().get("result", {})
bids = [(float(price), float(size)) for price, size in data.get("b", [])]
asks = [(float(price), float(size)) for price, size in data.get("a", [])]
return bids, asks
else:
print(f"Ошибка API: {response.status_code}")
return None, None
def detect_iceberg_orders():
"""Выявляет скрытые Iceberg-заявки"""
prev_bids, prev_asks = get_order_book()
if not prev_bids or not prev_asks:
print("❌ Ошибка получения стакана.")
return
print("📡 Начинаем мониторинг Iceberg-заявок...")
while True:
time.sleep(2) # Ждём обновления стакана
bids, asks = get_order_book()
if not bids or not asks:
continue
# Анализ заявок (BID - покупатели)
for i in range(min(len(bids), len(prev_bids))):
if bids[i][0] == prev_bids[i][0] and bids[i][1] > prev_bids[i][1] * 1.5:
print(f"❄️ Iceberg-заявка в BID: {bids[i][0]} - новый объём {bids[i][1]} BTC (было {prev_bids[i][1]} BTC)")
# Анализ заявок (ASK - продавцы)
for i in range(min(len(asks), len(prev_asks))):
if asks[i][0] == prev_asks[i][0] and asks[i][1] > prev_asks[i][1] * 1.5:
print(f"❄️ Iceberg-заявка в ASK: {asks[i][0]} - новый объём {asks[i][1]} BTC (было {prev_asks[i][1]} BTC)")
prev_bids, prev_asks = bids, asks # Обновляем стакан
if __name__ == "__main__":
detect_iceberg_orders()
11 Feb, 05:00
10 Feb, 14:00
pip install falkon
10 Feb, 11:00
import requests
import numpy as np
# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 50 # Количество свечей для анализа
RANGE_THRESHOLD = 0.002 # Порог для консолидации (0.2% от цены)
def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None
def detect_consolidation():
"""Определяет консолидацию цены"""
candles = get_kline_data()
if not candles:
print("❌ Не удалось получить данные.")
return
closes = np.array([float(c[4]) for c in candles])
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])
min_price = np.min(lows[-10:]) # Минимальная цена за 10 свечей
max_price = np.max(highs[-10:]) # Максимальная цена за 10 свечей
price_range = (max_price - min_price) / closes[-1]
# 🔍 Добавляем отладку:
print(f"🔍 Анализируем последние 10 свечей...")
print(f"🔹 Min цена: {min_price:.2f}, Max цена: {max_price:.2f}")
print(f"🔹 Текущий диапазон: {price_range:.5f}, Порог: {RANGE_THRESHOLD}")
if price_range < RANGE_THRESHOLD:
print(f"📉 Консолидация: {min_price:.2f} - {max_price:.2f}, возможный пробой!")
else:
print("⏳ Нет консолидации. Ждем сигнала...")
if __name__ == "__main__":
detect_consolidation()
10 Feb, 05:00
09 Feb, 14:00
pip install kedro
09 Feb, 11:00
import requests
# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 50 # Количество свечей для анализа
def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None
def is_doji(open_price, close_price, high, low):
"""Паттерн Доджи (разворотный сигнал)"""
body = abs(close_price - open_price)
range_ = high - low
return body < 0.1 * range_
def is_hammer(open_price, close_price, high, low):
"""Паттерн Молот (бычий разворот)"""
body = abs(close_price - open_price)
lower_shadow = open_price - low if close_price > open_price else close_price - low
return lower_shadow > 2 * body and (high - max(open_price, close_price)) < body
def is_engulfing(prev_open, prev_close, open_price, close_price):
"""Паттерн Поглощение (разворот тренда)"""
return (close_price > open_price and open_price < prev_close and close_price > prev_open) or \
(close_price < open_price and open_price > prev_close and close_price < prev_open)
def analyze_patterns():
"""Анализ свечных паттернов"""
candles = get_kline_data()
if not candles:
return
for i in range(1, len(candles)): # Начинаем со 2-й свечи
prev_open, prev_close = float(candles[i-1][1]), float(candles[i-1][4])
open_price, close_price = float(candles[i][1]), float(candles[i][4])
high, low = float(candles[i][2]), float(candles[i][3])
if is_doji(open_price, close_price, high, low):
print(f"⚠️ Доджи на {i}-й свече: возможный разворот!")
if is_hammer(open_price, close_price, high, low):
print(f"✅ Молот на {i}-й свече: возможный рост!")
if is_engulfing(prev_open, prev_close, open_price, close_price):
print(f"🔥 Поглощение на {i}-й свече: возможный разворот тренда!")
if __name__ == "__main__":
analyze_patterns()
09 Feb, 05:00
08 Feb, 15:00
08 Feb, 14:00
pip install scalene
08 Feb, 11:00
import requests
import numpy as np
# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 100 # Количество свечей
def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None
def detect_anomalies():
"""Анализ аномальных движений"""
candles = get_kline_data()
if not candles:
return
closes = np.array([float(c[4]) for c in candles])
returns = np.diff(closes) # Вычисляем разницу между свечами
mean = np.mean(returns)
std = np.std(returns)
z_scores = (returns - mean) / std # Z-оценка для каждого изменения
threshold = 3 # Граница аномалий
anomalies = np.where(abs(z_scores) > threshold)[0]
for idx in anomalies:
move = "🚀 Резкий рост" if z_scores[idx] > 0 else "⚠️ Резкое падение"
print(f"{move}: Свеча {idx+1}, Изменение: {returns[idx]:.2f}, Z-Score: {z_scores[idx]:.2f}")
if __name__ == "__main__":
detect_anomalies()
08 Feb, 05:00
07 Feb, 14:00
pip install pyinfra
07 Feb, 11:00
import requests
import numpy as np
# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 100 # Количество свечей для анализа (для ATR)
ATR_PERIOD = 14 # Период ATR
BREAKOUT_MULTIPLIER = 1.5 # Насколько цена должна превысить ATR для подтвержденного пробоя
def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None
def calculate_atr(candles, period=ATR_PERIOD):
"""Рассчитывает ATR (средний истинный диапазон)"""
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])
closes = np.array([float(c[4]) for c in candles])
prev_closes = np.roll(closes, shift=1) # Смещаем массив на 1 (добавится дубликат первого элемента)
prev_closes[0] = closes[0] # Убираем лишнее смещение
tr = np.maximum(highs - lows, np.maximum(abs(highs - prev_closes), abs(lows - prev_closes)))
atr = np.convolve(tr, np.ones(period) / period, mode='valid')
return atr[-1] # Берем последнее значение ATR
def find_support_resistance(candles):
"""Определяет уровни поддержки и сопротивления"""
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])
support = np.min(lows)
resistance = np.max(highs)
return support, resistance
def detect_breakout():
"""Проверяет пробой уровней с фильтрацией по ATR"""
candles = get_kline_data()
if not candles:
return
support, resistance = find_support_resistance(candles[-50:]) # Берем последние 50 свечей
last_close = float(candles[-1][4])
atr = calculate_atr(candles)
breakout_threshold = atr * BREAKOUT_MULTIPLIER # Минимальный разрыв для подтверждения пробоя
if last_close >= resistance + breakout_threshold:
print(f"🚀 Подтвержденный пробой вверх! Цена {last_close:.2f} выше сопротивления {resistance:.2f} (ATR {atr:.2f})")
elif last_close <= support - breakout_threshold:
print(f"⚠️ Подтвержденный пробой вниз! Цена {last_close:.2f} ниже поддержки {support:.2f} (ATR {atr:.2f})")
else:
print(f"📊 Цена {last_close:.2f}, диапазон: {support:.2f} - {resistance:.2f} (без пробоя)")
if __name__ == "__main__":
detect_breakout()
07 Feb, 05:00
06 Feb, 14:00
pip install pint
06 Feb, 11:00
import requests
import numpy as np
# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 50 # Количество свечей для анализа
TOLERANCE = 0.002 # Допустимый разрыв (0.2%)
def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None
def find_support_resistance(candles):
"""Определяет уровни поддержки и сопротивления"""
closes = np.array([float(c[4]) for c in candles])
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])
support = np.min(lows)
resistance = np.max(highs)
return support, resistance
def detect_breakout():
"""Проверяет пробой уровней"""
candles = get_kline_data()
if not candles:
return
support, resistance = find_support_resistance(candles)
last_close = float(candles[-1][4])
if last_close >= resistance * (1 + TOLERANCE):
print(f"🚀 Пробой вверх! Цена {last_close:.2f} выше сопротивления {resistance:.2f}")
elif last_close <= support * (1 - TOLERANCE):
print(f"⚠️ Пробой вниз! Цена {last_close:.2f} ниже поддержки {support:.2f}")
else:
print(f"📊 Цена {last_close:.2f}, диапазон: {support:.2f} - {resistance:.2f} (без пробоя)")
if __name__ == "__main__":
detect_breakout()
06 Feb, 05:00
05 Feb, 14:00
pip install snoop
05 Feb, 11:00
import requests
import numpy as np
# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 100 # Количество свечей для расчета
RSI_PERIOD = 14 # Длина RSI
OVERBOUGHT = 70 # Уровень перекупленности
OVERSOLD = 30 # Уровень перепроданности
def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None
def calculate_rsi(prices, period=14):
"""Рассчитывает RSI"""
deltas = np.diff(prices)
gains = np.maximum(deltas, 0)
losses = np.abs(np.minimum(deltas, 0))
avg_gain = np.convolve(gains, np.ones(period) / period, mode='valid')
avg_loss = np.convolve(losses, np.ones(period) / period, mode='valid')
rs = avg_gain / (avg_loss + 1e-10)
rsi = 100 - (100 / (1 + rs))
return rsi
def analyze_rsi():
"""Анализирует рынок по RSI"""
candles = get_kline_data()
if not candles:
return
close_prices = np.array([float(c[4]) for c in candles])
rsi = calculate_rsi(close_prices, RSI_PERIOD)
if rsi[-1] > OVERBOUGHT:
print(f"🔥 RSI = {rsi[-1]:.2f} → Возможен разворот вниз (перекупленность)")
elif rsi[-1] < OVERSOLD:
print(f"🟢 RSI = {rsi[-1]:.2f} → Возможен разворот вверх (перепроданность)")
else:
print(f"📊 RSI = {rsi[-1]:.2f} → Нейтральная зона")
if __name__ == "__main__":
analyze_rsi()
05 Feb, 05:00
04 Feb, 14:00
pip install hatch
31 Jan, 14:00
python -m pip install --upgrade --force-reinstall numpy-quaternion
31 Jan, 11:00
import requests
import time
# Константы
TRADES_URL = "https://api.bybit.com/v5/market/recent-trade"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка (spot или linear для фьючерсов)
VOLUME_THRESHOLD = 5 # Минимальный объём сделки для "кита" (в BTC)
REFRESH_INTERVAL = 2 # Интервал обновления (в секундах)
def get_recent_trades():
"""Получить последние сделки"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"limit": 50 # Берём последние 50 сделок
}
response = requests.get(TRADES_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
raise Exception(f"Ошибка API Trades: {response.status_code}, {response.text}")
def detect_whale_trades():
"""Мониторинг крупных сделок (китов)"""
try:
print(f"Начинаем мониторинг крупных сделок для {SYMBOL}...\n")
while True:
trades = get_recent_trades()
for trade in trades:
price = float(trade["p"]) # Цена сделки
volume = float(trade["q"]) # Объём сделки
side = "🟢 Покупка" if trade["S"] == "Buy" else "🔴 Продажа"
# Фильтруем только крупные сделки
if volume >= VOLUME_THRESHOLD:
print(f"{side} на {volume:.2f} BTC по цене {price:.2f}")
time.sleep(REFRESH_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")
if __name__ == "__main__":
detect_whale_trades()
31 Jan, 05:00
30 Jan, 14:00
pip install blosc
30 Jan, 11:00
import requests
import time
# Константы
KLINE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка (spot или linear для фьючерсов)
INTERVAL = "1" # Таймфрейм свечей (1 минута)
SMA_PERIOD = 10 # Количество свечей для расчёта SMA
REFRESH_INTERVAL = 5 # Интервал обновления (в секундах)
def get_kline_data():
"""Получить исторические свечи"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": SMA_PERIOD # Берём последние N свечей
}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
result = response.json().get("result", {}).get("list", [])
if result:
return [float(candle[4]) for candle in result] # Закрытия свечей
else:
raise ValueError("Пустой ответ в 'result.list'.")
else:
raise Exception(f"Ошибка API Kline: {response.status_code}, {response.text}")
def calculate_sma(prices):
"""Рассчитать скользящую среднюю (SMA)"""
return sum(prices) / len(prices) if prices else 0
def monitor_trend():
"""Мониторинг тренда на основе SMA"""
try:
print(f"Начинаем мониторинг тренда {SYMBOL}...\n")
while True:
# Получаем закрытия свечей
closing_prices = get_kline_data()
current_price = closing_prices[-1] # Последняя цена закрытия
sma = calculate_sma(closing_prices)
# Определяем тренд
trend = "⬆️ Восходящий" if current_price > sma else "⬇️ Нисходящий"
# Выводим результаты
print(f"Цена: {current_price:.2f}, SMA({SMA_PERIOD}): {sma:.2f}, Тренд: {trend}")
# Интервал обновления
time.sleep(REFRESH_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")
if __name__ == "__main__":
monitor_trend()
30 Jan, 05:00
29 Jan, 14:00
pip install deeplake
29 Jan, 11:00
import requests
import time
# Константы
ORDERBOOK_URL = "https://api.bybit.com/v5/market/orderbook"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка (spot или linear для фьючерсов)
REFRESH_INTERVAL = 5 # Интервал обновления (в секундах)
def get_best_bid_ask():
"""Получить лучшие цены bid и ask"""
params = {
"category": CATEGORY,
"symbol": SYMBOL
}
response = requests.get(ORDERBOOK_URL, params=params)
if response.status_code == 200:
result = response.json().get("result")
if result:
best_bid = result.get("b", [])[0] # Лучшая цена bid
best_ask = result.get("a", [])[0] # Лучшая цена ask
return best_bid, best_ask
else:
raise ValueError("Пустой ответ в поле 'result'.")
else:
raise Exception(f"Ошибка API Orderbook: {response.status_code}, {response.text}")
def calculate_spread(best_bid, best_ask):
"""Рассчитать спред между лучшими ценами bid и ask"""
bid_price = float(best_bid[0])
ask_price = float(best_ask[0])
spread = ask_price - bid_price
return bid_price, ask_price, spread
def monitor_best_bid_ask():
"""Мониторинг лучших bid и ask"""
try:
print(f"Начинаем мониторинг лучших bid и ask для {SYMBOL}...\n")
while True:
# Получаем лучшие bid и ask
best_bid, best_ask = get_best_bid_ask()
# Рассчитываем спред
bid_price, ask_price, spread = calculate_spread(best_bid, best_ask)
# Выводим результаты
print(f"Bid: {bid_price:.2f}, Ask: {ask_price:.2f}, Спред: {spread:.2f}")
# Интервал обновления
time.sleep(REFRESH_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")
if __name__ == "__main__":
monitor_best_bid_ask()
29 Jan, 05:00
28 Jan, 14:00
pip install pyscaffold
28 Jan, 11:00
import requests
import time
# Константы
FUNDING_URL = "https://api.bybit.com/v5/market/funding/history"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "linear" # Тип рынка (фьючерсы)
CHECK_INTERVAL = 300 # Интервал проверки (в секундах)
def get_latest_funding_rate():
"""Получить последнюю ставку финансирования"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"limit": 1 # Только последнее значение
}
response = requests.get(FUNDING_URL, params=params)
if response.status_code == 200:
funding_data = response.json()["result"]["list"]
if funding_data:
return float(funding_data[0]["fundingRate"]), funding_data[0]["fundingRateTimestamp"]
else:
raise Exception("Нет данных по ставке финансирования.")
else:
raise Exception(f"Ошибка API Funding Rate: {response.status_code}, {response.text}")
def monitor_funding_rate():
"""Мониторинг ставки финансирования"""
try:
print(f"Начинаем мониторинг ставки финансирования для {SYMBOL}...\n")
previous_rate = None
while True:
# Получаем текущую ставку финансирования
funding_rate, timestamp = get_latest_funding_rate()
# Сравниваем с предыдущей ставкой
if previous_rate is not None:
rate_change = (funding_rate - previous_rate) * 100 # Изменение в процентах
print(f"Ставка финансирования: {funding_rate:.6f} (Изменение: {rate_change:+.2f}%)")
if abs(rate_change) > 0.01: # Порог изменения, при котором выводится предупреждение
print(f"🔔 Внимание! Ставка финансирования изменилась на {rate_change:+.2f}%!")
else:
print(f"Ставка финансирования: {funding_rate:.6f}")
# Обновляем предыдущую ставку
previous_rate = funding_rate
# Задержка перед следующей проверкой
time.sleep(CHECK_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")
if name == "main":
monitor_funding_rate()
28 Jan, 05:00
27 Jan, 14:00
pip install tenacity
27 Jan, 11:00
import requests
import time
# Константы
BASE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
INTERVAL = "60" # Интервал свечей (60 минут)
LIMIT = 50 # Количество свечей для анализа (N периодов)
THRESHOLD_MULTIPLIER = 2 # Умножитель для определения аномального объёма
def get_historical_volumes():
"""Получить исторические объёмы (Kline)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": LIMIT
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return [float(kline[5]) for kline in response.json()["result"]["list"]] # Объём сделок
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")
def detect_anomalous_volume(volumes):
"""Определить, есть ли аномальный объём"""
avg_volume = sum(volumes[:-1]) / (len(volumes) - 1) # Средний объём без последнего значения
last_volume = volumes[-1] # Последний объём
if last_volume > avg_volume * THRESHOLD_MULTIPLIER:
return True, avg_volume, last_volume
return False, avg_volume, last_volume
def main():
try:
print(f"Начинаем мониторинг объёмов для {SYMBOL}...\n")
while True:
# Получаем исторические данные объёмов
volumes = get_historical_volumes()
# Проверяем на наличие аномального объёма
is_anomalous, avg_volume, last_volume = detect_anomalous_volume(volumes)
if is_anomalous:
print(f"🔔 Аномальный объём обнаружен!")
print(f"Средний объём: {avg_volume:.2f}, Последний объём: {last_volume:.2f}\n")
else:
print(f"Объёмы в пределах нормы. Последний объём: {last_volume:.2f}, Средний объём: {avg_volume:.2f}")
# Задержка между проверками
time.sleep(60 * int(INTERVAL)) # Интервал совпадает с таймфреймом свечи
except Exception as e:
print(f"Ошибка: {e}")
if __name__ == "__main__":
main()
27 Jan, 05:00
26 Jan, 14:00
pip install flupy
26 Jan, 11:00
import requests
import pandas as pd
# Константы
BASE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
INTERVAL = "60" # Интервал свечей (60 минут)
LIMIT = 14 # Количество свечей для ATR (по умолчанию 14 периодов)
def get_historical_data():
"""Получить исторические данные (Kline)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": LIMIT + 1 # Нужно на 1 свечу больше для расчётов
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return response.json()["result"]["list"]
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")
def calculate_atr(klines):
"""Вычислить ATR (средний истинный диапазон)"""
# Преобразуем данные в DataFrame
data = [
{"high": float(kline[2]), "low": float(kline[3]), "close": float(kline[4])}
for kline in klines
]
df = pd.DataFrame(data)
# Вычисляем истинный диапазон (TR)
df["previous_close"] = df["close"].shift(1)
df["tr"] = df[["high", "previous_close"]].max(axis=1) - df[["low", "previous_close"]].min(axis=1)
# Рассчитываем ATR как скользящее среднее истинного диапазона
df["atr"] = df["tr"].rolling(window=LIMIT).mean()
# Возвращаем последнее значение ATR
return df["atr"].iloc[-1]
def main():
try:
print(f"Вычисляем ATR для {SYMBOL} за последние {LIMIT} периодов...\n")
# Получаем исторические данные
klines = get_historical_data()
# Вычисляем ATR
atr = calculate_atr(klines)
# Выводим результат
print(f"Средний истинный диапазон (ATR) за {LIMIT} периодов: {atr:.2f}")
except Exception as e:
print(f"Ошибка: {e}")
if __name__ == "__main__":
main()
26 Jan, 07:00
26 Jan, 05:00
25 Jan, 14:00
pip install poetry-dynamic-versioning
21 Jan, 14:00
pip install selenium-wire
21 Jan, 11:00
import requests
def get_order_book(symbol, limit=100):
"""
Получает стакан ордеров для указанной торговой пары.
"""
url = f"https://api.binance.com/api/v3/depth?symbol={symbol}&limit={limit}"
response = requests.get(url)
if response.status_code == 200:
return response.json()
else:
print(f"Ошибка получения стакана ордеров для {symbol}.")
return None
def analyze_order_book(order_book):
"""
Анализирует дисбаланс между заявками на покупку и продажу.
"""
bids = order_book['bids'] # Покупки
asks = order_book['asks'] # Продажи
# Суммируем объемы заявок
total_bid_volume = sum([float(bid[1]) for bid in bids]) # bid[1] = объем
total_ask_volume = sum([float(ask[1]) for ask in asks]) # ask[1] = объем
imbalance = (total_bid_volume - total_ask_volume) / (total_bid_volume + total_ask_volume) * 100
return total_bid_volume, total_ask_volume, imbalance
def main():
pair = input("Введите торговую пару (например, BTCUSDT): ").strip().upper()
print(f"Получение стакана ордеров для {pair}...")
order_book = get_order_book(pair)
if order_book:
bid_volume, ask_volume, imbalance = analyze_order_book(order_book)
print(f"\nАнализ стакана для {pair}:")
print(f"Общий объем покупок (bids): {bid_volume:.2f}")
print(f"Общий объем продаж (asks): {ask_volume:.2f}")
print(f"Дисбаланс: {imbalance:.2f}%")
if imbalance > 10:
print("Рынок перекуплен (давление покупателей).")
elif imbalance < -10:
print("Рынок перепродан (давление продавцов).")
else:
print("Рынок сбалансирован.")
else:
print("Не удалось получить данные стакана ордеров.")
if __name__ == "__main__":
main()
21 Jan, 05:00
20 Jan, 14:00
pip install pywebio
20 Jan, 11:00
import requests
import numpy as np
def get_market_data():
"""Получает данные о 24-часовой статистике торговых пар с Binance."""
url = "https://api.binance.com/api/v3/ticker/24hr"
response = requests.get(url)
if response.status_code == 200:
return response.json()
else:
print("Ошибка подключения к Binance API.")
return []
def calculate_fear_greed_index(data):
"""Рассчитывает индикатор страха и жадности."""
price_changes = []
volumes = []
for pair in data:
price_change = float(pair['priceChangePercent'])
volume = float(pair['quoteVolume'])
price_changes.append(price_change)
volumes.append(volume)
# Нормализуем данные
avg_price_change = np.mean(price_changes)
avg_volume = np.mean(volumes)
fear_index = 50 - (avg_price_change / 2) # Чем ниже, тем больше страха
greed_index = (avg_volume / np.max(volumes)) * 50 # Чем выше объем, тем больше жадности
total_index = max(0, min(100, fear_index + greed_index)) # Суммируем в пределах [0, 100]
return total_index
def main():
print("Индикатор страха и жадности на основе Binance...")
data = get_market_data()
if data:
index = calculate_fear_greed_index(data)
print(f"Текущий индекс страха и жадности: {index:.2f}/100")
if index < 25:
print("Рынок в зоне страха. Возможно, это хорошее время для покупки.")
elif index > 75:
print("Рынок в зоне жадности. Будьте осторожны с покупками.")
else:
print("Рынок сбалансирован.")
else:
print("Не удалось получить данные для расчета индикатора.")
if __name__ == "__main__":
main()
20 Jan, 05:00
19 Jan, 14:00
pip install mechanize
19 Jan, 11:00
import requests
import time
def get_price(symbol):
"""Получает текущую цену торговой пары с Binance."""
url = f"https://api.binance.com/api/v3/ticker/price?symbol={symbol}"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
return float(data["price"])
else:
print(f"Ошибка подключения к API Binance для пары {symbol}.")
return None
def price_tracker(symbol, target_price):
"""Отслеживает цену и уведомляет, если цель достигнута."""
print(f"Начинаю мониторинг {symbol}. Целевая цена: {target_price}")
try:
while True:
price = get_price(symbol)
if price:
print(f"Текущая цена {symbol}: {price}")
if price >= target_price:
print(f"🎉 Целевая цена достигнута! {symbol}: {price}")
break
time.sleep(5) # Интервал обновления (5 секунд)
except KeyboardInterrupt:
print("\nМониторинг остановлен.")
if __name__ == "__main__":
pair = input("Введите торговую пару (например, BTCUSDT): ").strip().upper()
try:
target = float(input(f"Введите целевую цену для {pair}: ").strip())
price_tracker(pair, target)
except ValueError:
print("Неверный ввод. Пожалуйста, укажите корректную цену.")
19 Jan, 05:00
18 Jan, 14:00
pip install authlib
18 Jan, 11:00
import requests
import time
def get_binance_data():
"""Получает данные о торговых парах с Binance."""
url = "https://api.binance.com/api/v3/ticker/24hr"
response = requests.get(url)
if response.status_code == 200:
return response.json()
else:
print("Ошибка подключения к Binance API.")
return []
def find_unusual_activity(data):
"""Находит пары с самым большим изменением объема торгов."""
unusual_pairs = sorted(data, key=lambda x: float(x['quoteVolume']), reverse=True)[:10]
return unusual_pairs
def main():
print("Анализ активности на Binance...")
while True:
data = get_binance_data()
if data:
unusual_pairs = find_unusual_activity(data)
print("\nТоп-10 пар с наибольшим объемом торгов за 24 часа:")
for pair in unusual_pairs:
print(f"{pair['symbol']} - Объем торгов: {pair['quoteVolume']} {pair['symbol'][-3:]}")
else:
print("Не удалось получить данные.")
print("\nОжидание 1 час для следующего обновления...")
time.sleep(3600) # Обновление каждый час
if __name__ == "__main__":
main()
18 Jan, 05:00
17 Jan, 14:00
pip install mpld3
17 Jan, 11:00
import requests
import json
# API endpoint
API_URL = "https://api.dexscreener.com/token-boosts/top/v1"
def fetch_token_data():
"""Fetch token data from the API and display all relevant details including icons and links."""
try:
# Make the API request
response = requests.get(API_URL)
# Check if the request was successful
if response.status_code == 200:
# Parse the response JSON
data = response.json()
# Iterate through the tokens and display relevant details
for token in data:
url = token.get("url", "N/A")
chain_id = token.get("chainId", "N/A")
token_address = token.get("tokenAddress", "N/A")
header = token.get("header", "No header available")
icon = token.get("icon", "No icon available")
description = token.get("description", "No description available")
# Handle links if available
links = token.get("links", [])
formatted_links = "\n".join(
[f"{link.get('type', 'Link')}: {link.get('url', 'No URL')}" for link in links]
)
# Print the token details
print(f"URL: {url}")
print(f"Chain ID: {chain_id}")
print(f"Token Address: {token_address}")
print(f"Header: {header}")
print(f"Icon: {icon}")
print(f"Description: {description}")
print(f"Links:\n{formatted_links if links else 'No links available'}")
print("-" * 40)
else:
print(f"Failed to fetch data. Status code: {response.status_code}")
except Exception as e:
print(f"Error fetching data: {e}")
if __name__ == "__main__":
fetch_token_data()
17 Jan, 05:00
16 Jan, 14:00
16 Jan, 11:00
import time
def tail(file_path):
"""Читает файл и выводит новые строки в реальном времени."""
try:
with open(file_path, "r") as file:
# Переходим в конец файла
file.seek(0, 2)
print(f"Мониторинг файла: {file_path}")
while True:
line = file.readline()
if not line:
time.sleep(1) # Ждем новые строки
continue
print(line, end="")
except FileNotFoundError:
print(f"Файл {file_path} не найден.")
except KeyboardInterrupt:
print("\nМониторинг завершен.")
if __name__ == "__main__":
path_to_file = input("Введите путь к файлу для мониторинга: ").strip()
tail(path_to_file)
16 Jan, 05:00
15 Jan, 14:00
pip install fugue
15 Jan, 11:00
import os
import time
def delete_old_files(directory, days):
"""Удаляет файлы старше указанного количества дней."""
current_time = time.time()
cutoff_time = current_time - (days * 86400) # 86400 секунд = 1 день
if not os.path.exists(directory):
print(f"Директория {directory} не существует.")
return
print(f"Очистка файлов в {directory}, старше {days} дней...")
for root, _, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
try:
file_mod_time = os.path.getmtime(file_path)
if file_mod_time < cutoff_time:
os.remove(file_path)
print(f"Удалено: {file_path}")
except Exception as e:
print(f"Ошибка при удалении {file_path}: {e}")
print("Очистка завершена.")
if __name__ == "__main__":
dir_to_clean = input("Введите путь к директории для очистки: ").strip()
days_old = int(input("Введите количество дней для удаления старых файлов: ").strip())
delete_old_files(dir_to_clean, days_old)
04 Jan, 14:00
pip install pybryt
04 Jan, 10:00
import csv
import matplotlib.pyplot as plt
def load_csv(file_path):
"""Считывает данные из CSV-файла."""
try:
with open(file_path, "r", encoding="utf-8") as file:
reader = csv.reader(file)
data = [row for row in reader]
return data
except FileNotFoundError:
print("Файл не найден.")
return None
def plot_bar_chart(data):
"""Создает столбчатый график."""
labels, values = zip(*data)
plt.bar(labels, values, color="skyblue")
plt.xlabel("Категории")
plt.ylabel("Значения")
plt.title("Столбчатый график")
plt.show()
def plot_pie_chart(data):
"""Создает круговую диаграмму."""
labels, values = zip(*data)
plt.pie(values, labels=labels, autopct="%1.1f%%", startangle=140)
plt.title("Круговая диаграмма")
plt.show()
def plot_line_chart(data):
"""Создает линейный график."""
labels, values = zip(*data)
plt.plot(labels, values, marker="o", color="green")
plt.xlabel("Категории")
plt.ylabel("Значения")
plt.title("Линейный график")
plt.show()
if __name__ == "__main__":
print("Программа: Генератор диаграмм из CSV")
file_path = input("Введите путь к CSV-файлу: ").strip()
raw_data = load_csv(file_path)
if raw_data:
try:
# Конвертируем данные в числа
data = [(row[0], float(row[1])) for row in raw_data]
except ValueError:
print("Ошибка: Убедитесь, что второй столбец содержит числовые значения.")
else:
print("\nВыберите тип диаграммы:")
print("1. Столбчатый график")
print("2. Круговая диаграмма")
print("3. Линейный график")
choice = input("Ваш выбор (1-3): ").strip()
if choice == "1":
plot_bar_chart(data)
elif choice == "2":
plot_pie_chart(data)
elif choice == "3":
plot_line_chart(data)
else:
print("Неверный выбор.")
04 Jan, 09:00
04 Jan, 06:00
03 Jan, 14:00
pip install textattack
03 Jan, 10:00
from collections import Counter
import re
def clean_text(text):
"""Очищает текст от пунктуации и приводит к нижнему регистру."""
text = re.sub(r'[^\w\s]', '', text) # Убираем пунктуацию
return text.lower()
def analyze_text(file_path):
"""Читает файл и анализирует частоту слов."""
try:
with open(file_path, 'r', encoding='utf-8') as file:
text = file.read()
cleaned_text = clean_text(text)
words = cleaned_text.split()
word_count = Counter(words)
return word_count
except FileNotFoundError:
print("Файл не найден.")
return None
def display_top_words(word_count, top_n=10):
"""Выводит топ N самых частых слов."""
print(f"\nТоп {top_n} самых частых слов:")
for word, count in word_count.most_common(top_n):
print(f"{word}: {count}")
if __name__ == "__main__":
print("Программа: Анализатор частоты слов")
file_path = input("Введите путь к текстовому файлу: ").strip()
word_count = analyze_text(file_path)
if word_count:
top_n = input("Сколько самых частых слов вывести? (По умолчанию: 10): ").strip()
top_n = int(top_n) if top_n.isdigit() else 10
display_top_words(word_count, top_n)
03 Jan, 06:00
02 Jan, 14:00
pip install snorkel
02 Jan, 10:00
import time
import json
TASKS_FILE = "time_tracker.json"
def load_tasks():
"""Загружает список задач из файла."""
try:
with open(TASKS_FILE, "r", encoding="utf-8") as file:
return json.load(file)
except FileNotFoundError:
return {}
except json.JSONDecodeError:
print("Ошибка чтения файла. Начинаем с пустого списка.")
return {}
def save_tasks(tasks):
"""Сохраняет список задач в файл."""
with open(TASKS_FILE, "w", encoding="utf-8") as file:
json.dump(tasks, file, indent=4)
def start_task(tasks):
"""Начинает отслеживать задачу."""
task_name = input("Введите название задачи: ").strip()
if task_name in tasks:
print(f"Задача '{task_name}' уже существует. Продолжение отслеживания.")
else:
print(f"Начато отслеживание задачи '{task_name}'.")
tasks[task_name] = tasks.get(task_name, 0)
start_time = time.time()
input("Нажмите Enter, чтобы остановить отслеживание...")
elapsed_time = time.time() - start_time
tasks[task_name] += round(elapsed_time)
print(f"Задача '{task_name}' обновлена: {tasks[task_name]} секунд.")
def view_tasks(tasks):
"""Отображает список задач и потраченное время."""
if not tasks:
print("Нет задач для отображения.")
else:
print("\nСписок задач:")
for task, seconds in tasks.items():
print(f"{task}: {seconds // 60} минут {seconds % 60} секунд")
def reset_task(tasks):
"""Сбрасывает время отслеживания задачи."""
task_name = input("Введите название задачи для сброса: ").strip()
if task_name in tasks:
tasks[task_name] = 0
print(f"Время задачи '{task_name}' сброшено.")
else:
print(f"Задача '{task_name}' не найдена.")
if __name__ == "__main__":
tasks = load_tasks()
print("Программа: Трекер времени задач")
while True:
print("\nМеню:")
print("1. Начать задачу")
print("2. Просмотреть задачи")
print("3. Сбросить задачу")
print("4. Выйти")
choice = input("Выберите действие (1-4): ").strip()
if choice == "1":
start_task(tasks)
save_tasks(tasks)
elif choice == "2":
view_tasks(tasks)
elif choice == "3":
reset_task(tasks)
save_tasks(tasks)
elif choice == "4":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
02 Jan, 06:00
01 Jan, 14:00
pip install transformers
01 Jan, 10:00
import os
import shutil
def list_files(directory):
"""Выводит список файлов в текущей директории."""
try:
files = os.listdir(directory)
if files:
print("\nСодержимое папки:")
for file in files:
print(f"- {file}")
else:
print("Папка пуста.")
except FileNotFoundError:
print("Указанная папка не найдена.")
except PermissionError:
print("Нет доступа к указанной папке.")
def copy_file(source, destination):
"""Копирует файл."""
try:
shutil.copy(source, destination)
print(f"Файл '{source}' успешно скопирован в '{destination}'.")
except FileNotFoundError:
print(f"Файл '{source}' не найден.")
except Exception as e:
print(f"Ошибка при копировании: {e}")
def rename_file(old_name, new_name):
"""Переименовывает файл."""
try:
os.rename(old_name, new_name)
print(f"Файл '{old_name}' переименован в '{new_name}'.")
except FileNotFoundError:
print(f"Файл '{old_name}' не найден.")
except Exception as e:
print(f"Ошибка при переименовании: {e}")
def delete_file(file_name):
"""Удаляет файл."""
try:
os.remove(file_name)
print(f"Файл '{file_name}' успешно удален.")
except FileNotFoundError:
print(f"Файл '{file_name}' не найден.")
except Exception as e:
print(f"Ошибка при удалении: {e}")
if __name__ == "__main__":
print("Программа: Файловый менеджер")
while True:
print("\nМеню:")
print("1. Просмотреть содержимое папки")
print("2. Копировать файл")
print("3. Переименовать файл")
print("4. Удалить файл")
print("5. Выйти")
choice = input("Выберите действие (1-5): ").strip()
if choice == "1":
directory = input("Введите путь к папке (оставьте пустым для текущей папки): ").strip() or "."
list_files(directory)
elif choice == "2":
source = input("Введите путь к исходному файлу: ").strip()
destination = input("Введите путь назначения (папка или имя файла): ").strip()
copy_file(source, destination)
elif choice == "3":
old_name = input("Введите текущее имя файла: ").strip()
new_name = input("Введите новое имя файла: ").strip()
rename_file(old_name, new_name)
elif choice == "4":
file_name = input("Введите имя файла для удаления: ").strip()
delete_file(file_name)
elif choice == "5":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
01 Jan, 06:00
31 Dec, 17:00
31 Dec, 14:00
pip install gym
31 Dec, 10:00
from cryptography.fernet import Fernet
def generate_key():
"""Генерирует и сохраняет ключ шифрования в файл."""
key = Fernet.generate_key()
with open("secret.key", "wb") as key_file:
key_file.write(key)
print("Ключ успешно сгенерирован и сохранен в файл 'secret.key'.")
def load_key():
"""Загружает ключ шифрования из файла."""
try:
with open("secret.key", "rb") as key_file:
return key_file.read()
except FileNotFoundError:
print("Ключ не найден. Сначала создайте его.")
return None
def encrypt_message(message, key):
"""Шифрует сообщение с использованием ключа."""
fernet = Fernet(key)
return fernet.encrypt(message.encode()).decode()
def decrypt_message(encrypted_message, key):
"""Расшифровывает сообщение с использованием ключа."""
fernet = Fernet(key)
return fernet.decrypt(encrypted_message.encode()).decode()
if __name__ == "__main__":
print("Программа: Шифрование и дешифрование текста")
while True:
print("\nМеню:")
print("1. Создать ключ шифрования")
print("2. Зашифровать сообщение")
print("3. Расшифровать сообщение")
print("4. Выйти")
choice = input("Выберите действие (1-4): ").strip()
if choice == "1":
generate_key()
elif choice in ["2", "3"]:
key = load_key()
if key:
if choice == "2":
message = input("Введите сообщение для шифрования: ").strip()
encrypted = encrypt_message(message, key)
print(f"Зашифрованное сообщение: {encrypted}")
elif choice == "3":
encrypted_message = input("Введите сообщение для расшифровки: ").strip()
try:
decrypted = decrypt_message(encrypted_message, key)
print(f"Расшифрованное сообщение: {decrypted}")
except Exception:
print("Не удалось расшифровать сообщение. Проверьте ключ и ввод.")
elif choice == "4":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
31 Dec, 06:00
30 Dec, 14:00
python -m pip install manim
30 Dec, 10:00
def calculate_bmi(weight, height):
"""Вычисляет индекс массы тела (ИМТ)."""
try:
bmi = weight / (height ** 2)
return round(bmi, 2)
except ZeroDivisionError:
print("Рост не может быть равен нулю.")
return None
def interpret_bmi(bmi):
"""Интерпретирует значение ИМТ."""
if bmi < 18.5:
return "Недостаточный вес"
elif 18.5 <= bmi < 24.9:
return "Нормальный вес"
elif 25 <= bmi < 29.9:
return "Избыточный вес"
else:
return "Ожирение"
if __name__ == "__main__":
print("Программа: Калькулятор ИМТ")
while True:
print("\nМеню:")
print("1. Рассчитать ИМТ")
print("2. Выйти")
choice = input("Выберите действие (1-2): ").strip()
if choice == "1":
try:
weight = float(input("Введите вес (кг): ").strip())
height = float(input("Введите рост (м): ").strip())
bmi = calculate_bmi(weight, height)
if bmi is not None:
category = interpret_bmi(bmi)
print(f"Ваш ИМТ: {bmi}")
print(f"Категория: {category}")
except ValueError:
print("Пожалуйста, введите корректные числовые значения.")
elif choice == "2":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
30 Dec, 06:00
29 Dec, 14:00
pip install pyttsx3
29 Dec, 10:00
import requests
API_URL = "http://www.omdbapi.com/"
API_KEY = "YOUR_API_KEY" # Получите бесплатный API-ключ на http://www.omdbapi.com/apikey.aspx
def get_movie_info(movie_name):
"""Получает информацию о фильме из OMDB API."""
try:
params = {
"t": movie_name,
"apikey": API_KEY
}
response = requests.get(API_URL, params=params)
if response.status_code == 200:
data = response.json()
if data.get("Response") == "True":
title = data.get("Title", "Неизвестно")
year = data.get("Year", "Неизвестно")
genre = data.get("Genre", "Неизвестно")
director = data.get("Director", "Неизвестно")
actors = data.get("Actors", "Неизвестно")
plot = data.get("Plot", "Нет описания")
imdb_rating = data.get("imdbRating", "Нет рейтинга")
print(f"\nИнформация о фильме '{title}':")
print(f"Год: {year}")
print(f"Жанр: {genre}")
print(f"Режиссер: {director}")
print(f"Актеры: {actors}")
print(f"Описание: {plot}")
print(f"Рейтинг IMDb: {imdb_rating}")
else:
print("Фильм не найден. Проверьте название.")
else:
print("Ошибка при запросе к API. Попробуйте позже.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
print("Программа: Информация о фильмах")
while True:
print("\nМеню:")
print("1. Найти информацию о фильме")
print("2. Выйти")
choice = input("Выберите действие (1-2): ").strip()
if choice == "1":
movie_name = input("Введите название фильма: ").strip()
get_movie_info(movie_name)
elif choice == "2":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
29 Dec, 06:00
28 Dec, 14:00
pip install facebook-sdk
28 Dec, 10:00
import requests
API_URL = "https://www.googleapis.com/books/v1/volumes"
def search_books(query, max_results=5):
"""Ищет книги по запросу с помощью Google Books API."""
try:
params = {
"q": query,
"maxResults": max_results
}
response = requests.get(API_URL, params=params)
if response.status_code == 200:
data = response.json()
books = data.get("items", [])
if books:
print(f"\nНайдено {len(books)} книг(и):\n")
for idx, book in enumerate(books, start=1):
title = book["volumeInfo"].get("title", "Нет названия")
authors = ", ".join(book["volumeInfo"].get("authors", ["Неизвестный автор"]))
description = book["volumeInfo"].get("description", "Нет описания")
print(f"{idx}. {title}")
print(f" Автор(ы): {authors}")
print(f" Описание: {description[:200]}...") # Ограничиваем описание
print("-" * 40)
else:
print("Книги по вашему запросу не найдены.")
else:
print("Ошибка при запросе к API. Попробуйте позже.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
print("Программа: Поиск книг")
while True:
print("\nМеню:")
print("1. Искать книги")
print("2. Выйти")
choice = input("Выберите действие (1-2): ").strip()
if choice == "1":
query = input("Введите название книги, автора или ключевое слово: ").strip()
search_books(query)
elif choice == "2":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
28 Dec, 06:00
27 Dec, 14:00
pip install praw
27 Dec, 10:00
import requests
API_URL = "https://restcountries.com/v3.1/name"
def get_country_info(country_name):
"""Получает информацию о стране из REST Countries API."""
try:
response = requests.get(f"{API_URL}/{country_name}")
if response.status_code == 200:
data = response.json()[0] # Получаем первый результат
name = data.get("name", {}).get("common", "Неизвестно")
capital = ", ".join(data.get("capital", ["Нет столицы"]))
population = data.get("population", "Нет данных")
area = data.get("area", "Нет данных")
currencies = ", ".join(data.get("currencies", {}).keys())
region = data.get("region", "Нет данных")
print(f"\nИнформация о стране '{name}':")
print(f"Столица: {capital}")
print(f"Население: {population}")
print(f"Площадь: {area} км²")
print(f"Регион: {region}")
print(f"Валюты: {currencies}")
else:
print("Страна не найдена. Проверьте правильность ввода.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
print("Программа: Информация о странах")
while True:
print("\nМеню:")
print("1. Получить информацию о стране")
print("2. Выйти")
choice = input("Выберите действие (1-2): ").strip()
if choice == "1":
country_name = input("Введите название страны (на английском): ").strip().lower()
get_country_info(country_name)
elif choice == "2":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
27 Dec, 06:00
26 Dec, 14:00
pip install sympy
26 Dec, 10:00
import requests
API_URL = "https://api.coingecko.com/api/v3/simple/price"
def get_crypto_price(crypto, currency="usd"):
"""Получает текущую цену криптовалюты в указанной валюте."""
try:
params = {
"ids": crypto,
"vs_currencies": currency
}
response = requests.get(API_URL, params=params)
if response.status_code == 200:
data = response.json()
if crypto in data:
price = data[crypto][currency]
print(f"Текущая цена {crypto.capitalize()} в {currency.upper()}: {price}")
else:
print("Криптовалюта не найдена.")
else:
print("Не удалось получить данные. Проверьте ввод.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
print("Программа: Текущие цены криптовалют")
while True:
print("\nМеню:")
print("1. Узнать цену криптовалюты")
print("2. Выйти")
choice = input("Выберите действие (1-2): ").strip()
if choice == "1":
crypto = input("Введите название криптовалюты (например, bitcoin): ").strip().lower()
currency = input("Введите валюту (например, usd, eur): ").strip().lower()
get_crypto_price(crypto, currency)
elif choice == "2":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
26 Dec, 06:00
25 Dec, 14:00
pip install pyinstrument
25 Dec, 10:00
import requests
API_URL = "https://api.adviceslip.com/advice"
def get_random_advice():
"""Получает случайный совет из API."""
try:
response = requests.get(API_URL)
if response.status_code == 200:
data = response.json()
advice = data["slip"]["advice"]
print(f"Совет дня: {advice}")
else:
print("Не удалось получить совет. Попробуйте позже.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
print("Программа: Случайный совет")
while True:
print("\nМеню:")
print("1. Получить случайный совет")
print("2. Выйти")
choice = input("Выберите действие (1-2): ").strip()
if choice == "1":
get_random_advice()
elif choice == "2":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
25 Dec, 06:00
24 Dec, 14:00
pip install python-decouple
24 Dec, 10:00
import os
FILE_NAME = "tasks.txt"
def load_tasks():
"""Загружает задачи из файла."""
if os.path.exists(FILE_NAME):
with open(FILE_NAME, "r") as file:
return [line.strip() for line in file.readlines()]
return []
def save_tasks(tasks):
"""Сохраняет задачи в файл."""
with open(FILE_NAME, "w") as file:
for task in tasks:
file.write(task + "\n")
def display_tasks(tasks):
"""Отображает список задач."""
if not tasks:
print("Ваш список задач пуст.")
else:
print("\nВаши задачи:")
for i, task in enumerate(tasks, 1):
print(f"{i}. {task}")
def main():
"""Главная функция программы."""
tasks = load_tasks()
while True:
print("\nМеню:")
print("1. Показать задачи")
print("2. Добавить задачу")
print("3. Удалить задачу")
print("4. Выйти")
choice = input("Выберите действие (1-4): ").strip()
if choice == "1":
display_tasks(tasks)
elif choice == "2":
task = input("Введите задачу: ").strip()
if task:
tasks.append(task)
save_tasks(tasks)
print("Задача добавлена!")
elif choice == "3":
display_tasks(tasks)
try:
task_num = int(input("Введите номер задачи для удаления: "))
if 1 <= task_num <= len(tasks):
removed_task = tasks.pop(task_num - 1)
save_tasks(tasks)
print(f"Задача '{removed_task}' удалена!")
else:
print("Неверный номер задачи.")
except ValueError:
print("Введите корректный номер.")
elif choice == "4":
print("Выход из программы. До свидания!")
break
else:
print("Неверный выбор. Попробуйте снова.")
if __name__ == "__main__":
main()
24 Dec, 06:00
23 Dec, 14:00
pip install ruts
23 Dec, 10:00
def addressVal(address):
dot = address.find(".")
at = address.find("@")
if (dot == -1):
print("Invalid")
elif (at == -1):
print("Invalid")
else:
print("Valid")
print("This program will decide if your input is a valid email address")
while(True):
print("A valid email address needs an '@' symbol and a '.'")
x = input("Input your email address:")
addressVal(x)
23 Dec, 06:00
22 Dec, 14:00
pip install htmy
22 Dec, 10:00
import sys
romanStr = sys.argv[1]
romanStr = str(romanStr)
dict = {
'I':1,
'V':5,
'X':10,
'L':50,
'C':100,
'D':500,
'M':1000
}
num = 0
romanStr = romanStr.replace("IV","IIII")
romanStr = romanStr.replace("IX","VIIII")
romanStr = romanStr.replace("XL","XXXX")
romanStr = romanStr.replace("XC","LXXXX")
romanStr = romanStr.replace("CD","CCCC")
romanStr = romanStr.replace("CM","DCCCC")
myStr = list(romanStr)
for char in myStr:
num = num + dict[char]
print(num)
22 Dec, 07:00
01 Dec, 19:16
01 Dec, 14:00
pip install mahotas
01 Dec, 10:00
from googletrans import Translator, LANGUAGES
translator = Translator()
language_options = LANGUAGES.items()
language_codes = []
language_names = []
def errors():
print('Unknown Language. Wisely choose from this')
print(f"Language Codes {language_codes}\n")
print(f'Or from Language Names \n {language_names}')
for options in language_options:
language_codes.append(options[0])
language_names.append(options[1].lower())
translating_from = input("Enter the language you want to translate from\n").lower()
word = input('Enter the word\n').lower()
translating_to = input("Enter the language you want to translate to\n").lower()
try:
if translating_from and translating_to in language_codes or language_names:
translation = translator.translate(word,src=translating_from, dest=translating_to).text
print(translation.capitalize())
else:
errors()
except:
print("Something went wrong or \n")
errors()
01 Dec, 06:00
30 Nov, 14:00
pip install hdwallet
30 Nov, 10:00
def encode_morse(message):
char_to_dots = {
'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',
'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',
'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',
'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
'Y': '-.--', 'Z': '--..', ' ': ' ', '0': '-----',
'1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..', '9': '----.',
'&': '.-...', "'": '.----.', '@': '.--.-.', ')': '-.--.-', '(': '-.--.',
':': '---...', ',': '--..--', '=': '-...-', '!': '-.-.--', '.': '.-.-.-',
'-': '-....-', '+': '.-.-.', '"': '.-..-.', '?': '..--..', '/': '-..-.'
}
string=""
for x in message:
string+=char_to_dots[x.upper()]+' '
return string[0:-1]
#test run
print("Morse code for Hello World!: ")
print(encode_morse("Hello World!"))
30 Nov, 06:00
29 Nov, 14:00
pip install beautifulsoup4
29 Nov, 10:00
import subprocess
data = (
subprocess.check_output(["netsh", "wlan", "show", "profiles"])
.decode("utf-8")
.split("\n")
)
profiles = [i.split(":")[1][1:-1] for i in data if "All User Profile" in i]
for i in profiles:
results = (
subprocess
.check_output(["netsh", "wlan", "show", "profile", i, "key=clear"])
.decode("utf-8")
.split("\n")
)
results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b]
try:
print("{:<30}| {:<}".format(i, results[0]))
except IndexError:
print("{:<30}| {:<}".format(i, ""))
29 Nov, 06:00
28 Nov, 14:00
pip install pillow
28 Nov, 10:00
import csv
from email.message import EmailMessage
import smtplib
def get_credentials(filepath):
with open("credentials.txt", "r") as f:
email_address = f.readline()
email_pass = f.readline()
return (email_address, email_pass)
def login(email_address, email_pass, s):
s.ehlo()
# start TLS for security
s.starttls()
s.ehlo()
# Authentication
s.login(email_address, email_pass)
print("login")
def send_mail():
s = smtplib.SMTP("smtp.gmail.com", 587)
email_address, email_pass = get_credentials("./credentials.txt")
login(email_address, email_pass, s)
# message to be sent
subject = "Welcome to Python"
body = """Python is an interpreted, high-level,
general-purpose programming language.\n
Created by Guido van Rossum and first released in 1991,
Python's design philosophy emphasizes code readability\n
with its notable use of significant whitespace"""
message = EmailMessage()
message.set_content(body)
message['Subject'] = subject
with open("emails.csv", newline="") as csvfile:
spamreader = csv.reader(csvfile, delimiter=" ", quotechar="|")
for email in spamreader:
s.send_message(email_address, email[0], message)
print("Send To " + email[0])
# terminating the session
s.quit()
print("sent")
if __name__ == "__main__":
send_mail()
28 Nov, 06:00
27 Nov, 14:00
pip install pandas-datareader
27 Nov, 10:00
import sys
import img2pdf
import os
filepath = sys.argv[1]
if os.path.isdir(filepath):
with open("output.pdf", "wb") as f:
imgs = []
for fname in os.listdir(filepath):
if not fname.endswith(".jpg"):
continue
path = os.path.join(filepath, fname)
if os.path.isdir(path):
continue
imgs.append(path)
f.write(img2pdf.convert(imgs))
elif os.path.isfile(filepath):
if filepath.endswith(".jpg"):
with open("output.pdf", "wb") as f:
f.write(img2pdf.convert(filepath))
else:
print("please input file or dir")
27 Nov, 06:00
26 Nov, 14:00
pip install paramiko
26 Nov, 10:00
import json
import xmltodict
with open('input.xml') as xml_file:
parsed_data = xmltodict.parse(xml_file.read())
xml_file.close()
json_conversion = json.dumps(parsed_data)
with open('output.json', 'w') as json_file:
json_file.write(json_conversion)
json_file.close()
26 Nov, 06:00
25 Nov, 14:00
pip install jsonobject
25 Nov, 10:00
from Crypto.Cipher import AES
from Crypto import Random
from binascii import b2a_hex
import sys
# get the plaintext
plain_text = sys.argv[1]
# The key length must be 16 (AES-128), 24 (AES-192), or 32 (AES-256) Bytes.
key = b'this is a 16 key'
# Generate a non-repeatable key vector with a length
# equal to the size of the AES block
iv = Random.new().read(AES.block_size)
# Use key and iv to initialize AES object, use MODE_CFB mode
mycipher = AES.new(key, AES.MODE_CFB, iv)
# Add iv (key vector) to the beginning of the encrypted ciphertext
# and transmit it together
ciphertext = iv + mycipher.encrypt(plain_text.encode())
# To decrypt, use key and iv to generate a new AES object
mydecrypt = AES.new(key, AES.MODE_CFB, ciphertext[:16])
# Use the newly generated AES object to decrypt the encrypted ciphertext
decrypttext = mydecrypt.decrypt(ciphertext[16:])
# output
file_out = open("encrypted.bin", "wb")
file_out.write(ciphertext[16:])
file_out.close()
print("The key k is: ", key)
print("iv is: ", b2a_hex(ciphertext)[:16])
print("The encrypted data is: ", b2a_hex(ciphertext)[16:])
print("The decrypted data is: ", decrypttext.decode())
25 Nov, 06:00
24 Nov, 15:00
24 Nov, 14:00
pip install SQLAlchemy
24 Nov, 10:00
# import openCV library for image handling
import cv2
# read image to be resized by imread() function of openCV library
img = cv2.imread('input.jpg')
print(img.shape)
# set the ratio of resized image
k = 5
width = int((img.shape[1])/k)
height = int((img.shape[0])/k)
# resize the image by resize() function of openCV library
scaled = cv2.resize(img, (width, height), interpolation=cv2.INTER_AREA)
print(scaled.shape)
# show the resized image using imshow() function of openCV library
cv2.imshow("Output", scaled)
cv2.waitKey(500)
cv2.destroyAllWindows()
# get the resized image output by imwrite() function of openCV library
cv2.imwrite('resized_output_image.jpg', scaled)
24 Nov, 06:00
23 Nov, 14:00
pip install questionary
23 Nov, 11:00
23 Nov, 10:00
from socket import *
import time
startTime = time.time()
if __name__ == '__main__':
target = input('Enter the host to be scanned: ')
t_IP = gethostbyname(target)
print ('Starting scan on host: ', t_IP)
for i in range(50, 500):
s = socket(AF_INET, SOCK_STREAM)
conn = s.connect_ex((t_IP, i))
if(conn == 0) :
print ('Port %d: OPEN' % (i,))
s.close()
print('Time taken:', time.time() - startTime)
23 Nov, 06:00
22 Nov, 14:00
pip install cryptography
22 Nov, 10:00
import os
import zipfile
import sys
import argparse
# Code to add the cli
parser = argparse.ArgumentParser()
parser.add_argument("-l", "--zippedfile", required=True, help="Zipped file")
args = vars(parser.parse_args())
#Catching the user defined zip file
zip_file = args['zippedfile']
file_name = zip_file
#To check if the entered zip file is present in the directory
if os.path.exists(zip_file) == False:
sys.exit("No such file present in the directory")
#Function to extract the zip file
def extract(zip_file):
file_name = zip_file.split(".zip")[0]
if zip_file.endswith(".zip"):
#Will use this to save the unzipped file in the current directory
current_working_directory = os.getcwd()
new_directory = current_working_directory + "/" + file_name
#Logic to unzip the file
with zipfile.ZipFile(zip_file, 'r') as zip_object:
zip_object.extractall(new_directory)
print("Extracted successfully!!!")
else:
print("Not a zip file")
extract(zip_file)
22 Nov, 06:00
21 Nov, 14:00
pip install PyYAML
21 Nov, 10:00
import os
from PIL import Image
def watermark_photo(input_image_path,watermark_image_path,output_image_path):
base_image = Image.open(input_image_path)
watermark = Image.open(watermark_image_path).convert("RGBA")
position = base_image.size
newsize = (int(position[0]*8/100),int(position[0]*8/100))
watermark = watermark.resize(newsize)
new_position = position[0]-newsize[0]-20,position[1]-newsize[1]-20
transparent = Image.new(mode='RGBA',size=position,color=(0,0,0,0))
transparent.paste(base_image,(0,0))
transparent.paste(watermark,new_position,watermark)
image_mode = base_image.mode
print(image_mode)
if image_mode == 'RGB':
transparent = transparent.convert(image_mode)
else:
transparent = transparent.convert('P')
transparent.save(output_image_path,optimize=True,quality=100)
print("Saving"+output_image_path+"...")
folder = input("Enter Folder Path:")
watermark = input("Enter Watermark Path:")
os.chdir(folder)
files = os.listdir(os.getcwd())
print(files)
if not os.path.isdir("output"):
os.mkdir("output")
c = 1
for f in files:
if os.path.isfile(os.path.abspath(f)):
if f.endswith(".png") or f.endswith(".jpg"):
watermark_photo(f,watermark,"output/"+f)
21 Nov, 06:00
20 Nov, 14:00
pip install sqlparse
20 Nov, 10:00
import csv
import requests
status_dict = {"Website": "Status"}
def main():
with open("websites.txt", "r") as fr:
for line in fr:
website = line.strip()
status = requests.get(website).status_code
status_dict[website] = "working" if status == 200 \
else "not working"
with open("website_status.csv", "w", newline="") as fw:
csv_writers = csv.writer(fw)
for key in status_dict.keys():
csv_writers.writerow([key, status_dict[key]])
if __name__ == "__main__":
main()
20 Nov, 06:00
19 Nov, 14:00
pip install cherrypy
19 Nov, 10:00
from mnemonic import Mnemonic
from unidecode import unidecode
LANGUAGES = {"en": "english",
"zh": "chinese_simplified",
"fr": "french",
"it": "italian",
"ja": "japanese",
"ko": "korean",
"es": "spanish"}
STRENGTHS = [128, 160, 192, 224, 256]
LENGTHS = [12, 15, 18, 21, 24]
LENGTH_STRENGTH = dict(zip(LENGTHS, STRENGTHS))
def strength(length: int) -> int:
strength = LENGTH_STRENGTH[length]
return strength
def generate_seed(strength: int, lang: str) -> str:
mnemo = Mnemonic(LANGUAGES[lang])
seed_phrase = mnemo.generate(strength=strength)
seed_list = seed_phrase.split()
final_seed_list = [unidecode(word) for word in seed_list]
final_seed_phrase = " ".join(final_seed_list)
return final_seed_phrase
19 Nov, 06:00
18 Nov, 14:00
pip3 install pywhat[optimize]
18 Nov, 10:00
import hashlib
import os
def hashFile(filename):
BLOCKSIZE = 65536
hasher = hashlib.md5()
with open(filename, 'rb') as file:
buf = file.read(BLOCKSIZE)
while(len(buf) > 0):
hasher.update(buf)
buf = file.read(BLOCKSIZE)
return hasher.hexdigest()
if __name__ == "__main__":
hashMap = {}
deletedFiles = []
filelist = [f for f in os.listdir() if os.path.isfile(f)]
for f in filelist:
key = hashFile(f)
if key in hashMap.keys():
deletedFiles.append(f)
os.remove(f)
else:
hashMap[key] = f
if len(deletedFiles) != 0:
print('Deleted Files')
for i in deletedFiles:
print(i)
else:
print('No duplicate files found')
18 Nov, 06:00
17 Nov, 14:00
pip install bokeh
17 Nov, 10:00
import asyncio
from shazamio import Shazam
async def main():
shazam = Shazam()
out = await shazam.recognize('dora.ogg')
print(out)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
17 Nov, 06:00
16 Nov, 14:45
16 Nov, 14:00
pip install ray
16 Nov, 10:00
from pytube import Playlist
playlist = Playlist("https://www.youtube.com/playlist?example")
print(f"Загрузка плейлиста: {playlist.title}")
for video in playlist.videos:
video.streams.first().download()
print(f"Видео {video.title} загружено")
16 Nov, 06:00
15 Nov, 14:00
pip install factory_boy
15 Nov, 10:00
import asyncio
from proxybroker import Broker
async def show(proxies):
while True:
proxy = await proxies.get()
if proxy is None: break
print('Found proxy: %s' % proxy)
proxies = asyncio.Queue()
broker = Broker(proxies)
tasks = asyncio.gather(
broker.find(types=['HTTP', 'HTTPS'], limit=10),
show(proxies))
loop = asyncio.get_event_loop()
loop.run_until_complete(tasks)
15 Nov, 06:00
14 Nov, 14:00
pip install xlwings
14 Nov, 10:00
from pywebcopy import save_website
save_website(
url="https://httpbin.org/",
project_folder="E://savedpages//",
project_name="my_site",
bypass_robots=True,
debug=True,
open_in_browser=True,
delay=None,
threaded=False,
)
14 Nov, 06:00
13 Nov, 14:00
pip install backtrader
13 Nov, 10:00
from rembg import remove
input_path = 'input.png'
output_path = 'output.png'
with open(input_path, 'rb') as i:
with open(output_path, 'wb') as o:
input = i.read()
output = remove(input)
o.write(output)
13 Nov, 06:00
12 Nov, 16:46
12 Nov, 14:00
pip install flask
12 Nov, 10:00
import qrcode
input_URL = "https://www.google.com/"
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=15,
border=4,
)
qr.add_data(input_URL)
qr.make(fit=True)
img = qr.make_image(fill_color="red", back_color="white")
img.save("url_qrcode.png")
print(qr.data_list)
12 Nov, 06:00
11 Nov, 15:22
11 Nov, 14:00
pip install urllib3
11 Nov, 10:00
from gtts import gTTS
import PyPDF2
pdf_File = open('name.pdf', 'rb')
pdf_Reader = PyPDF2.PdfFileReader(pdf_File)
count = pdf_Reader.numPages
textList = []
for i in range(count):
try:
page = pdf_Reader.getPage(i)
textList.append(page.extractText())
except:
pass
textString = " ".join(textList)
print(textString)
language = 'en'
myAudio = gTTS(text=textString, lang=language, slow=False)
myAudio.save("Audio.mp3")
11 Nov, 06:00
10 Nov, 14:00
pip install scikit-image
10 Nov, 08:00
09 Nov, 14:00
pip install eel
09 Nov, 08:00
08 Nov, 14:00
pip install responses
08 Nov, 08:00
07 Nov, 14:00
pip install statsforecast
07 Nov, 08:00
06 Nov, 14:00
pip install reactpy
06 Nov, 12:30
06 Nov, 08:00
05 Nov, 14:00
pip install quantstats
05 Nov, 08:00
04 Nov, 14:00
Pangolin, rviz, meshcat и Gradio
. pip install viser
04 Nov, 08:00
03 Nov, 14:00
pip install pytorch-ignite
03 Nov, 08:00
02 Nov, 14:00
pip install catboost
02 Nov, 08:00
01 Nov, 14:00
pip install json-repair
01 Nov, 08:00
31 Oct, 14:00
pip install arrow
31 Oct, 08:00
30 Oct, 14:00
pip install terminaltexteffects
30 Oct, 08:00
29 Oct, 14:00
pip install pynecone
29 Oct, 08:00
28 Oct, 14:00
conda create --name llmcompiler python=3.10 -y
conda activate llmcompiler
git clone https://github.com/SqueezeAILab/LLMCompiler
cd LLMCompiler
pip install -r requirements.txt
28 Oct, 08:00
27 Oct, 14:00
pip install tabled-pdf
27 Oct, 08:00
26 Oct, 14:00
pip install diagrams
26 Oct, 08:00
25 Oct, 14:00
pip install hotpdf
25 Oct, 08:00
24 Oct, 14:00
pip install gitpython
24 Oct, 08:00
23 Oct, 14:00
pip install testcontainers [postgres]
23 Oct, 08:00
22 Oct, 14:00
pip install gTTS
22 Oct, 08:00
21 Oct, 14:00
pip install pyftpdlib
21 Oct, 08:00
20 Oct, 14:00
pip install hupper
20 Oct, 08:00
19 Oct, 14:00
pip install langfun
19 Oct, 08:00
18 Oct, 14:00
pip install numerizer
18 Oct, 08:00
17 Oct, 14:00
pip install pyspark
17 Oct, 08:00
16 Oct, 14:00
16 Oct, 09:00