Skip to content

Instantly share code, notes, and snippets.

@IlyaSkriblovsky
IlyaSkriblovsky / ordered_start_stop.py
Created January 13, 2016 07:37
Dependency-Ordered start/stop demo
#!/usr/bin/env python3
import codecs
import sys
import time
from threading import Thread
import six
from six.moves.queue import Queue, Empty
class APIError(Exception):
swagger: '2.0'
info:
title: ZONT API
description: Управляйте вашими устройствами
version: "1.0.0"
host: zont-online.ru
schemes:
- https
@IlyaSkriblovsky
IlyaSkriblovsky / get-boiler-fail-state.py
Last active April 20, 2017 10:02
Example of getting temperatures and setting guard state of ZONT H-1
# -*- coding: utf-8 -*-
import requests
device_id = 1580
login = 'demo'
password = 'demo'
client = 'your@email.com'
result = requests.post(
'https://zont-online.ru/api/devices',
@IlyaSkriblovsky
IlyaSkriblovsky / adapt.pyx
Last active February 29, 2020 05:25
Calling C++ dll from Python
from cython.operator cimport dereference as deref
from libcpp.list cimport list as c_list
cdef extern from "test.h":
c_list[int]* c_create_list "create_list" ()
def create_list():
l = c_create_list()
try:
@IlyaSkriblovsky
IlyaSkriblovsky / klein_composition_example.py
Created August 3, 2017 06:31
yet another approach to composable Klein apps
from twisted.internet import defer
from klein import Klein
from mocked_db import Database
def users_aspect(app: Klein, db: Database):
@app.route('/')
@defer.inlineCallbacks
@IlyaSkriblovsky
IlyaSkriblovsky / twisted_refcycle_test.py
Last active January 28, 2018 16:45
Demo of circular dependencies created while using TLSMemoryBIOProtocol
import sys
import os
import gc
from twisted.protocols.tls import TLSMemoryBIOFactory, TLSMemoryBIOProtocol
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import ssl, defer, error
from twisted.internet.task import react
from twisted.protocols.loopback import loopbackAsync
import psutil
@IlyaSkriblovsky
IlyaSkriblovsky / mongodatabasequeue.py
Created December 4, 2018 08:41
Batching txmongo requests
WriteOp = Union[
InsertOne,
UpdateOne, UpdateMany,
DeleteOne, DeleteMany,
ReplaceOne
]
class MongoCollectionQueue:
# FIXME:
#include <cstdio>
class A {
public:
int x;
A(int x): x(x) {}
};
class B: public A {
@IlyaSkriblovsky
IlyaSkriblovsky / docker-compose.yml
Last active January 24, 2019 09:40
Minimal dockerized OpenVPN
version: '2'
## INITIAL SETUP
# docker-compose run --rm ovpn ovpn_genconfig -u udp://<IP>
# docker-compose run --rm ovpn ovpn_initpki
# docker-compose up -d
# docker-compose run --rm ovpn easyrsa build-client-full myvpn nopass
# docker-compose run --rm ovpn ovpn_getclient myvpn > myvpn.ovpn
services:
from attr import dataclass
from rx import AnonymousObservable, Observable
from rx.core import ObservableBase
from rx.subjects import Subject
from twisted.internet import reactor, defer
from twisted.internet.defer import Deferred
from twisted.internet.protocol import Protocol, connectionDone, Factory
from twisted.python.failure import Failure