Skip to content

Instantly share code, notes, and snippets.

@w495
w495 / dns_resolver_middleware.py
Last active June 21, 2017 00:19
Scrapy downloader middleware class for handling IPv6-only hosts.
# -*- coding: utf8 -*-
from __future__ import absolute_import, division, print_function
import socket
from urlparse import urlparse
class DnsResolverMiddleware(object):
"""
@w495
w495 / aggregate_concat.py
Last active April 18, 2017 17:09 — forked from ludoo/aggregate_concat.py
Django aggregates GROUP_CONCAT support for MySQL
"""
From http://harkablog.com/inside-the-django-orm-aggregates.html
with a couple of fixes.
Usage: MyModel.objects.all().annotate(new_attribute=GroupConcat('related__attribute', separator=':')
"""
from django.db.models import Aggregate
from django.db.models.sql.aggregates import Aggregate as SQLAggregate
@w495
w495 / pyav_rtmp_example.py
Last active June 15, 2019 21:15
Пример работы с видео в Python. Есть RTMP-поток и RTMP-сервер, на который нужно отправить этот поток. Создано по мотивам https://ru.stackoverflow.com/a/664973/203032
# -*- coding: utf8 -*-
import av
# Откроем ресурс на чтение
input_resource = av.open(
'rtmp://src_stream:1935/play'
)
# Откроем ресурс на запись.
output_resource = av.open(
import logging
class OneLineHandler(logging.StreamHandler):
def emit(self, record):
try:
msg = self.format(record)
stream = self.stream
stream.write('\u001b[1000D' + msg)
@w495
w495 / cyrillic2latin_file_renamer.py
Created August 13, 2017 00:48 — forked from etrushkin/cyrillic2latin_file_renamer.py
Cyrillic to Latin File Changer
#!/usr/bin/python
# -*- coding: utf-8 -*-
# http://stackoverflow.com/questions/5574702/how-to-print-to-stderr-in-python
from __future__ import print_function
import sys
def eprint(*args, **kwargs):
print(*args, file=sys.stderr, **kwargs)
import errno
# -*- coding: utf8 -*-
from __future__ import absolute_import, print_function
import six
class BaseFieldDao(object):
_value = None
_entity = None
@w495
w495 / telesport-vod-example
Created February 2, 2018 14:11
Требования по VOD API
[
{
"content_id": "87fc1328-cde3-40b0-9b9b-ced0498747c4",
"content_url": "https://h2.silatv.ru/highlight/12121/1080.mp4",
"thumbnail": "http://cdn.okultureno.ru/medialibrary/87f/87f2341b53596e8ca592a1e885261ccf/khokkey-_1_.jpg"
"type" : "game",
"channel": "telesport1",
"release_timestamp": 1518421201, // не нужно при наличие start_time & finish_time
"start_time": 1518421200,
"finish_time": 1518429600,
import sys
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split,GridSearchCV, cross_val_score,StratifiedKFold,validation_curve,learning_curve
from sklearn.metrics import confusion_matrix, f1_score, matthews_corrcoef, precision_recall_curve, auc, classification_report, roc_curve, cohen_kappa_score, make_scorer,accuracy_score,roc_auc_score,precision_score,recall_score, brier_score_loss
from imblearn.ensemble import BalancedBaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from xgboost.sklearn import XGBClassifier
from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
@w495
w495 / encoding.py
Last active March 26, 2018 01:39
Почему «Билл Гейтс» превратился в `«Р‘илл Гейтс»` или проблема с кодировками cp1251 и utf8
## РОДНОЕ ПРЕДСТАВЛЕНИЕ UTF8-СТРОКИ:
>>> [ord(i) for i in 'Бил Гейтс']
[208, 145, 208, 184, 208, 187,
32,
208, 147, 208, 181, 208, 185, 209, 130, 209, 129]
# Что тут происходит:
# * Я перебираю все символы строки через цикл FOR.
@w495
w495 / hls-checker.py
Created October 22, 2018 22:32
Micro chunk HLS checker
# -*- coding: utf8 -*-
from __future__ import absolute_import, division, print_function
import logging
import sys
import requests
MIN_CHUNK_SIZE = 1.0