Skip to content

Instantly share code, notes, and snippets.

View aodag's full-sized avatar

Atsushi Odagiri aodag

View GitHub Profile
@aodag
aodag / console.md
Created February 14, 2015 04:33
python3.5からbytesでも%演算子が有効になった。( https://www.python.org/dev/peps/pep-0461/ ) ただしbytesに対する%sはstrでなくbytesを使わなければならない
Python 3.5.0a1 (default, Feb 14 2015, 11:41:57) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> b"%s"
b'%s'
>>> b"%s" % 'a'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %b requires bytes, or an object that implements __bytes__, not 'str'
@aodag
aodag / wheeling.ini
Created February 14, 2015 08:25
各種Pythonバージョンのwheelを作るtox設定
[tox]
envlist = py33,py34,py35
skipsdist = true
[testenv]
deps = wheel
commands = pip wheel -r requirements.txt -f wheelhouse
[testenv:py35]
basepython = python3.5
@aodag
aodag / deps.py
Created February 14, 2015 09:18
指定パッケージと依存ライブラリのインストールバージョンを確認するスクリプト。現在のwheelがpydist.jsonでなくpackage.jsonを作るのでパッチを当てる。
import sys
from pprint import pprint
import distlib.database
dist_name = sys.argv[1]
dist_path = distlib.database.DistributionPath(include_egg=True)
dists = list(dist_path.get_distributions())
dist = dist_path.get_distribution(dist_name)
@aodag
aodag / datelocal.rst
Created April 11, 2015 07:18
UTC表記の日時をパースしてローカルタイムゾーンで表示するまで

>>> d = dateutil.parser.parse('2015-01-01 00:00:00+00') >>> d datetime.datetime(2015, 1, 1, 0, 0, tzinfo=tzutc()) >>> d.astimezone(dateutil.tz.tzlocal()) datetime.datetime(2015, 1, 1, 9, 0, tzinfo=tzlocal()) >>> d.astimezone(dateutil.tz.tzlocal()).strftime('%c') '01/01/15 09:00:00' >>> d.astimezone(dateutil.tz.tzlocal()).strftime('%z') '+0900' >>> d.astimezone(dateutil.tz.tzlocal()).strftime('%X')

@aodag
aodag / adapter.py
Last active August 29, 2015 14:19
filter内で使いたいhybrid_methodをQueryオブジェクトのメソッドのようにして流すアイディアの検討
from sqlalchemy.sql import func
def query_maker(session, cls):
query = session.query(cls)
return Adapter(query, cls)
def faster_count_query(query):
count_q = query.statement.with_only_columns([func.count()]).order_by(None)
import os
import logging
import deform
import pkg_resources
import whitenoise
from webob.exc import (
HTTPFound,
HTTPNotFound,
)
from colanderalchemy import SQLAlchemySchemaNode
@aodag
aodag / cd-ghq.ps1
Last active August 29, 2015 14:26
ghq プロジェクトへの移動を pecoで選択
function g
{
cd $(ghq list -p | peco)
}
>>> from sqlalchemy.sql.expression import table, column
>>> from sqlalchemy.sql.expression import select
>>> from sqlalchemy.sql.types import VARCHAR
>>> from sqlalchemy.dialects.postgresql import dialect
>>> employee = table('employee', column('id', VARCHAR), column('job_id', VARCHAR))
>>> job = table('job', column('id', VARCHAR), column('name', VARCHAR))
>>> str(select([employee.join(job, employee.c.job_id == job.c.id)]).compile(dialect=dialect()))
'SELECT employee.id, employee.job_id, job.id, job.name \nFROM employee JOIN job ON employee.job_id = job.id'
>>> stmt = select([employee.join(job, employee.c.job_id == job.c.id)]).where(job.c.name == 'programmer')
>>> str(stmt.compile(dialect=dialect()))
set -g prefix C-t
unbind C-b
bind C-t send-prefix
@aodag
aodag / run.md
Created August 20, 2015 22:47
pip 7.1.1 (distlib 0.2.1) でwindowsの日本語ファイルパスの扱いが修正された
(.venv) PS C:\Users\aodag\Documents\works\日本語>    pip --version
pip 7.1.1 from c:\users\aodag\documents\works\日本語\.venv\lib\site-packages (python 3.5)