Skip to content

Instantly share code, notes, and snippets.

@kurogelee
kurogelee / dummy_server.py
Last active December 1, 2018 15:34
Pythonで接続エラーなどのテスト用のダミーWebサーバを作る ref: https://qiita.com/kurogelee/items/e257edb927fc21e87f71
from itertools import chain, repeat
from time import sleep
try:
# python3
from http.server import HTTPServer, SimpleHTTPRequestHandler
except:
# python2
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import HTTPServer
@kurogelee
kurogelee / returns.py
Created November 10, 2018 13:18
デコレータとyieldを使ってdictを返す関数でちょっと楽する方法 ref: https://qiita.com/kurogelee/items/1c081a5a7e209e81921c
def returns(wrap_function):
def decorator(f):
def decorated(*args, **kwargs):
return wrap_function(f(*args, **kwargs))
return decorated
return decorator
@kurogelee
kurogelee / file1.txt
Created October 8, 2018 06:56
Pythonで文字列クラスを継承する方法 ref: https://qiita.com/kurogelee/items/88885733c2aba73420c8
test id1
@kurogelee
kurogelee / type_check.py
Created October 5, 2018 15:36
Pythonの基本的な型の階層構造を図にしてみた ref: https://qiita.com/kurogelee/items/f45abd15b8782944a0a3
from typing import *
from typing import IO, BinaryIO, TextIO
import collections
import datetime
import enum
import numbers
import decimal
import fractions
from itertools import groupby
from more_itertools import first
@kurogelee
kurogelee / peek.py
Created September 8, 2018 04:25
Pythonでイテレータの先読みやPushBackをするには ref: https://qiita.com/kurogelee/items/654e6083d37c4259d42d
from typing import TypeVar, Iterable, Generator, List
from more_itertools import peekable
T = TypeVar("T")
Gen = Generator[T, None, None]
def partition(items: Iterable[T]) -> Gen[List[T]]:
items = peekable(items)
result = []
import * as _ from "lodash";
function mapToObj<V>(map: Map<number, V>): _.NumericDictionary<V>;
function mapToObj<V>(map: Map<string, V>): _.Dictionary<V>;
function mapToObj<V>(map: Map<any, V>): _.Dictionary<V> {
return _.fromPairs([...map]);
}
function objToMap<V>(obj: _.NumericDictionary<V>): Map<number, V>;
function objToMap<V>(obj: _.Dictionary<V>): Map<string, V>;
@kurogelee
kurogelee / file2.txt
Created April 26, 2018 10:14
Mapped typeとConditional typeを使ってclass/interfaceのプロパティの型を変更するサンプル ref: https://qiita.com/kurogelee/items/a6955d2f399d3929ef03
{
id: string;
id2?: number;
key: string;
value?: boolean;
names?: Array<string>;
names2: Array<string>;
value2?: Array<Array<string>>;
}
const log = console.log;
async function f0() {
return "ZZZ";
}
async function f1() {
await f0();
return "XXX";
}
@kurogelee
kurogelee / anon.ts
Last active April 19, 2018 15:14
TypeScriptで匿名クラス・内部クラス ref: https://qiita.com/kurogelee/items/fd7b86ba5d5660180bb3
class Base {
public static create() {
return new class extends Base {
constructor() {
super("XXX");
}
}();
}
constructor(private value: string) {
@kurogelee
kurogelee / notuple.ts
Created April 17, 2018 14:32
TypeScriptでタプルへの型推論を行う方法 ref: https://qiita.com/kurogelee/items/12c45f9fb1615877a61f
const tupleStrNum = ["X", 2]; // (string|number)[]