Skip to content

Instantly share code, notes, and snippets.

@whosaysni
whosaysni / buttons_and_text.py
Last active August 8, 2016 15:05
ボタンを押したら textctrl に表示
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# generated by wxGlade 0.6.8 on Sun Jul 24 23:47:27 2016
#
import wx
import csv
# begin wxGlade: dependencies
@whosaysni
whosaysni / ppspp.py
Last active June 19, 2016 15:04
PSP parser in pure python
# coding: utf-8
"""PPSP: Pure Python Server Pages
(c) 2016 Yasushi Masuda.
"""
from collections import OrderedDict
from re import compile, M, S
# State symbols
@whosaysni
whosaysni / memoserv.py
Last active June 6, 2016 15:25
bug brain httpd
# coding: utf-8
"""memoserv
使い方
起動すると、ローカルホストのポート8000で待ち受けます。
POST すると、サーバに値が保存されます。
GET すると、保存されていた値を返し、消去します。
"""
# coding: utf-8
import sys
from inspect import getinnerframes
from functools import wraps
from pprint import pprint
def inspect_on_failure(msg_fmt):
def decorator(func):
@wraps(func)
@whosaysni
whosaysni / sample.py
Created March 29, 2016 15:26
解像度チェック用のPDFサンプルを生成する
# coding: utf-8
from reportlab.lib.pagesizes import A4
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate
from reportlab.lib.units import mm
from reportlab.platypus.flowables import PageBreak, Spacer
from reportlab.platypus.paragraph import Paragraph
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib import colors
@whosaysni
whosaysni / gist:7816978
Last active December 30, 2015 10:39
IDとパスワードを本文から抜き出す
# coding: utf-8
import re
# いろいろなパターンを作るためのフォーマット
text_fmt = u"""
...
お客様の%(id_label)s/%(pw_label)sをご入力ください。
...
%(id_label_prefix)s%(id_label)s%(label_suffix)s%(sep)s%(value_prefix)s%(id)s
%(pw_label_prefix)s%(pw_label)s%(label_suffix)s%(sep)s%(value_prefix)s%(pw)s
@whosaysni
whosaysni / gist:7685212
Last active December 29, 2015 14:39
POSTing CSRF-protected actions in Catalyst::Test
# common logic for *session_request.
sub _session_request {
my ($res, $path) = @_;
my $req = Catalyst::Utils::request($path);
$req->header('Cookie'=>$res->headers->{'set-cookie'});
return $req;
}
# build request with session, using given response.
sub session_request {
@whosaysni
whosaysni / gist:7685186
Created November 28, 2013 00:02
HTTP digest auth client for Catalyst
# do HTTP digest login
sub digest_login_request {
my ($schema, $username, $pw_override) = @_;
my $res = request('/login');
my %digest_hdr = map {
my @key_val = split /=/, $_, 2; # /
$key_val[0] = lc $key_val[0];
$key_val[1] =~ s{"}{}g; # remove the quotes
@key_val;
} split /,\s?/, substr( $res->header('WWW-Authenticate'), 7 ); #/;
@whosaysni
whosaysni / force_etree_ns
Created July 4, 2013 05:46
Forcing ElementTree to serialize extra namespaces
# coding: utf-8
"""
To parse XML with namespaces using ElementTree, keeping namespace prefix, you will need register_namespace.
>>> from xml.etree.ElementTree import register_namespace, fromstring, tostring
>>> base_ns = {
... 'http://example.com/article': 'article',
... 'http://example.com/report': 'report',
... 'http://example.com/book': 'book',
@whosaysni
whosaysni / gist:5749644
Last active December 18, 2015 07:49
とこちゃんはどこ
# coding: utf-8
"""とこちゃんはどこ
"""
from random import choice, randrange
import random, sys
s = ["と", "こ", "ち", "ゃ", "ん"]
def tokochan(width, height):