$ docker network create n1
$ docker run --rm -it --name t1 --net n1 -e TARANTOOL_REPLICATION=t1:3301,t2:3301 progaudi/tarantool:1.10.1-135-g193ef4150
from functools import wraps | |
def side_effect(callback, before=True, after=False): | |
"""A decorator. | |
Wraps the decorated function. The callback will be called before and after each | |
call of the decorated function according to the parameters. | |
Args: |
# Source: | |
# https://forum.sublimetext.com/t/retrieving-inserted-and-deleted-text/18697/24 | |
import sublime | |
import sublime_plugin | |
def get_cursors(view): | |
# can't use `view.sel()[:]` because it gives an error `TypeError: an integer is required` | |
return [cursor for cursor in view.sel()] |
# install Jupyter Notebook into system site-packages | |
pip install -U notebook | |
# create a virtualenv and use the Jupyter from the system site-packages | |
mkvirtualenv --system-site-packages myvenv | |
# the virtualenv is now activated | |
pip install ipykernel | |
VM_NAME=myvm python -m ipykernel install --user --name $VM_NAME --display-name $VM_NAME | |
python -m jupyter notebook | |
# In the browser: New -> select kernel "myvm" |
import signal | |
def set_run_timeout(timeout): | |
"""Set maximum execution time of the current Python process""" | |
def alarm(*_): | |
raise SystemExit("Timed out!") | |
signal.signal(signal.SIGALRM, alarm) | |
signal.alarm(timeout) |
#!/usr/bin/env bash | |
cat <<EE > app.lua | |
box.cfg { | |
listen = 3301, | |
read_only = false, | |
wal_mode = "write", | |
replication = {"t1:3301", "t2:3301"}, | |
} |
import itertools | |
import functools | |
class It: | |
"""A handy iterator with method chaining. | |
>>> It([1, 2, 3]).map(lambda x: x**2).filter(lambda x: x<5).chain_after('abc').apply(list) | |
['a', 'b', 'c', 1, 4] | |
""" |
from collections import deque | |
from functools import partial, wraps | |
class Deferred: | |
""" | |
Deferred functions execution. | |
Usage: |
Python 3.7.0 (default, Jun 29 2018, 09:12:54) | |
[GCC 4.9.2] on linux | |
Type "help", "copyright", "credits" or "license" for more information. | |
>>> import asyncio, asynctnt | |
>>> asyncio.run(asynctnt.Connection(host='aa', port=1234).connect()) | |
Traceback (most recent call last): | |
File "<stdin>", line 1, in <module> | |
File "/usr/local/lib/python3.7/asyncio/runners.py", line 43, in run | |
return loop.run_until_complete(main) | |
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 568, in run_until_complete |