Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import functools
import threading
import time
try:
# Python 3
from queue import Queue
@momijiame
momijiame / Vagrantfile
Created August 12, 2016 06:37
Vagrantfile for Docker Swarm
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "node#{i}" do |node|
node.vm.hostname = "node#{i}.example.com"
node.vm.box = "bento/centos-7.2"
node.vm.network "private_network", ip: "192.168.33.1#{i}"
node.vm.provision :shell do |shell|
shell.path = "deploy.sh"
end
@momijiame
momijiame / jobrunner.py
Created July 4, 2016 03:07
特定の時刻にジョブを実行する
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from abc import ABCMeta
from abc import abstractmethod
from datetime import datetime
from threading import Thread
import threading
import time
@momijiame
momijiame / threadspawn.py
Created July 4, 2016 02:22
スレッドを起動するサンプル
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from datetime import datetime
import threading
import time
def spawn(function, *args, **kwargs):
thread = threading.Thread(target=function, args=args, kwargs=kwargs)
@momijiame
momijiame / nextperiod.py
Created July 1, 2016 10:39
年、月まで考慮した時間の可算処理
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import calendar
from datetime import datetime
from datetime import timedelta
_FIELD_NAMES = [
'years',
'monthes',
@momijiame
momijiame / dtruncate.py
Created July 1, 2016 08:39
datetime オブジェクトの特定フィールド以下を 0 に切り捨てる
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from datetime import datetime
SECOND = {'microsecond': 0}
MINUTE = dict({'second': 0}, **SECOND)
HOUR = dict({'minute': 0}, **MINUTE)
DAY = dict({'hour': 0}, **HOUR)
MONTH = dict({'day': 0}, **DAY)
@momijiame
momijiame / click_importable.py
Last active January 26, 2016 06:24
Click で Python のインポート可能なパスを受け取るための型
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import importlib
import click
class ImportableType(click.ParamType):
''' Python のインポート可能なパスを受け取るための型 '''
@momijiame
momijiame / Vagrantfile
Created August 30, 2015 10:32
MariaDB Galera Cluster w/CentOS7 - sysbench
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.define :node1, primary: true do |node1|
node1.vm.box = "centos7"
node1.vm.box_url = "https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box"
node1.vm.network "private_network", ip: "192.168.33.11"
node1.vm.provider "virtualbox" do |vb|
@momijiame
momijiame / Vagrantfile
Last active December 18, 2018 09:09
MariaDB Galera Cluster w/ CentOS7
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.define :node1, primary: true do |node1|
node1.vm.box = "centos7"
node1.vm.box_url = "https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box"
node1.vm.network "private_network", ip: "192.168.33.11"
node1.vm.provider "virtualbox" do |vb|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
argparse の挙動が Python 2.x と Python 3.x で異なる件について
本家のチケット: http://bugs.python.org/issue16308
'''
import argparse