PipenvからPoetryへのお引越しツール作った

動機 引っ越しツール 概要 インストール 使い方 既知の不具合 動機 1/13にPoetry 0.12.11 がリリースされました。 poetry.eustace.io それに伴い、poetry init で会話形式でいろいろ設定していく際に依存パッケージを事前に検索して記述する機能のバグが修正…

Poetry + Read the Docs でハマった話

pythonhosted.org でのホスティングはオワコン 以前は pythonhosted.org でホスティングしていた ホスティングサポート終了 Read the Docs を再び試す 依存ライブラリの ImportError が発生する 他のリポジトリを参考にする Yamlにビルドの設定を書く readth…

Poetryでインストール時にTooManyRedirectsが起こるときの対処法

問題 Issueを探る Poetryのキャッシュを削除する 問題 二日前は成功していた pre-commit というライブラリのインストールが失敗するようになった。 $ poetry add -D pre-commit Creating virtualenv demo-py3.7 in /Users/kk6/sandbox/demo/.venv [TooManyRe…

Poetryを使ったPythonパッケージ開発からPyPI公開まで

この記事は BeProud Advent Calender 2018 の20日目の記事です。そのためいつもよりボリュームたっぷり、文体も丁寧にお送りします。 adventar.org 本記事ではPoetryを使ってパッケージ開発→PyPIへ登録するまでの流れを紹介します。 github.com プロジェクト…

Pipenv から Poetry への乗り換え

乗り換えるリポジトリ pyproject.toml の生成 依存パッケージのインストール コマンドラインツールとして実行できるようにする 乗り換えるリポジトリ GitHub - kk6/aeroplast: Transparent PNG conversion (Mainly for Twitter) twitterにアップロードしたPN…

またPyenv環境に戻してみた

動機 事前確認 pyenvのインストール python3.6をインストールしてみるも失敗する 最近Mojaveにアップグレードしたのが原因だった それぞれのPythonを呼び出せるようにする simlink作成(非推奨) pyenv global コマンド brewで入れたpython3.7をどうするか問…

RSCSS という CSS 設計について

CSS

Components Components の命名規則 Elements Elements の命名規則 Element のセレクター 複数の単語が使いたい タグセレクタを避ける Variant Variant の命名 Element の variant ダッシュ・プレフィックス ネストした Component ネストした Component の Va…

DjangoでImageFieldを持つフォームのテスト

DjangoでImageFieldを持ったFormがあるとします。こんな感じ。ModelFormでもいい(というか実際のコードはそっちで書いてる)。 class UploadForm(forms.Form): title = forms.CharField() photo = forms.ImageField() これをテストする際にStringIOで適当に…

cajonでjavascriptを分割管理

JavaScript module loader for the browser that can load CommonJS/node and AMD modulesrequirejs/cajon · GitHub cajon(カホンって読むっぽい。ペルー発祥の打楽器の名前らしい)なんてものを見つけた。require.js上に構築されてるとかなんとか。require.…

Ubuntu serverに入れてるDropboxが変なメッセージを出すようになった

ちょっと前くらいからこんなメッセージが出るようになった $ Unable to monitor entire Dropbox folder hierarchy. Please run "echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches" and restart Dropbox to correct the problem. わけもわから…

コミット時にpdb消し忘れてないかチェックするhg hook

チェック用のスクリプト こんな感じのスクリプト作成 #!/usr/bin/env python import os import sys COMMAND = r"find . -name '*.py' | xargs grep -lr '{pattern}'" INFO = '{filename}: pdb found.' def check(pattern): return os.popen(COMMAND.format(p…

インスタンスに動的にメソッドを追加する

追記: 記事を公開してからおんなじような記事あったりするかなと思ってググったら2年前にIanさんがほとんど同じ内容書いてた。 Pythonでメソッドをクラスまたはインスタンスに動的に追加する - Ian Lewis しかも僕その記事はてブしてたよ… Interactive Shel…

celeryのPeriodic Taskについてのメモ

必要になったので自分用にメモ。今必要な部分だけざっくりと把握しただけなので間違ったこと書いてたらごめんなさい。 Periodic Taskとは Periodic Tasks — Celery 3.0.9 documentationceleryにはPeriodic Taskというタスクをある一定時間ごとに実行してくれ…

sftpserverモジュールをforkしていじった件

諸事情によりテスト用のsftpサーバーが必要になったのでsftpserverなるモジュールを見つけてきた。しかしこいつシングルスレッドなので、やりたいことのためにはmultiprocessingと併用する必要があったわけなんだけど、そうするとなんかエラーが出る。 raise…

Djangoの発行する生SQLが見たい

ForeignKeyとfilterのメモ - AtAsAtAmAtArA DjangoのORマッパーでSQL文を簡単に出力するサンプル - 十番目のムーサというやりとりを見て。シェルで確かめるのが楽だし便利。 django.db.connection.queriesで見られます。おもむろにdjangoのシェルを起動 $ py…

シェル操作課題をPythonでやってみた

はてブのマイホットエントリーを眺めてたらこんなものを見つけた。 シェル操作課題 (cut, sort, uniq などで集計を行う) 設問編 - Yamashiro0217の日記 awkとか全然知らないから勉強になるかなと思って覗いてみたんだけど… いっそpythonのワンライナーで実行…

Python2.7のunittestのassertRaisesはコンテキストマネージャーとして使用出来る

テスト対象 def add(x, y): return x + y 適当すぎだけどご勘弁。異なった型同士を足そうとすれば当然TypeError吐きますよね。 本題 Python2.7以前のunittestのassertRaisesは assertRaises(exception, callback, *args, **kwargs) というように呼び出す必要…

Grubのデフォルト起動OSを変更する

あまり使わなくなったWin/Ubuntuデュアルブートマシンを同居人が使いたいということで、デフォルト起動OSをWindowsになるようにしなくてはいけなくなった。で、いちおうぐぐってみたらすぐ見つかったんだけど、同じくらいのタイミングでこんなアドバイスをい…

Django 1.4 で新しくプロジェクトを作成した際にしておくsettings.pyの設定

django 1.4 からはプロジェクトを作成した際のディレクトリ構成が変わったのでどのように設定するのがいいかを、まだ数の少ないネット上のサンプルを参考にしつつまとめてみた。ちなみに以下の様な構成を想定してます。 └── project_root ├── app1 │ ├── __i…

デコレータを作ってみる

前回の記事(Pythonのデコレータを理解するときに残したメモ - kk6のメモ帳*)でデコレータについて理解したので、じゃあ今度はデコレータを作ってみようと思う。あんまり詳しくないけどflaskを題材としてみる。 # hello.py from flask import Flask from fl…

Pythonのデコレータを理解するときに残したメモ

Pythonのデコレータ(decorator)を理解する 3 - -を1,2,3全て読んで、以前僕がデコレータを理解するために残したメモもこんな感じだったなというのを思い出した。ずっと記事にしようと思いつつ忘れてたんだけどせっかくなので加筆修正しつつ公開してみる。 引…

集合演算の実行速度:メソッドと演算子

集合演算をメソッドでやる場合と演算子でやる場合、どちらが速いのか気になったので試してみた。なんとなくの予想だと、対象を全てset型に揃えないといけない演算子による計算よりも、メソッドの引数がイテラブルであればなんでもよいメソッド演算のほうが速…

DjangoでreStructuredText

探し方が悪かったのか、見つけるのに手間取った。でもその割に設定はすごく簡単だったというオチ。まあそもそも素のdjangoで出来るという考えが全くなかったのがいけない。まず、docutilsがインストールされてないと元も子もないので、無ければインストール…

pdbのデバッガコマンド

とりあえず自分用に。あとでちゃんとまとめ直す...かも。 コマンド h(elp) [command] コマンドのヘルプを表示。引数なしで利用可能コマンド一覧を表示| s(tep) 一行実行(ステップイン) n(ext) 一行実行(ステップオーバー)| unt(il) (Python2.6から)行番号が…

Ubuntuを12.04にupgradeしたらvirtualenv環境で'cannot import urandom'と出るようになった

Ubuntu 12.04 がリリースされたということで、僕も 11.10 から 12.04 にアップグレードしてみた。とりあえず仕事に支障がないかひと通り確認してみたところ、とある仕事用のvirtualenv環境をactivateした状態で、テストを走らせようとしたところ ImportError…

DjangoのモデルのManagerクラスのメソッドをメソッドチェインさせる

※追記:django-model-utils というパッケージの PassThroughManager が同じようなことしてくれるみたいです Model Managers — django-model-utils 2.3a1 documentation 例えば下記のような、書籍名・本棚登録済みかのフラグ・出版日を持ったモデルクラスがあ…

ログイン時に.bashrcが読み込まれなくなった

zsh使えっていうツッコミは(ry そろそろ検討しようかなぁ ubuntuの.bashrcには元々 alias la="ls -A" のようなaliasが設定されている。これがいつの間にか読み込まれなくなってることに気づいた。 bashrcとかの読み込み順 こんな感じらしい bashrcの設定の読…

Mercurial + less に色を付ける

mercurialを使っててlogとかdiffとか長くなるものだと "hg diff | less" とかするじゃないですか。でも、less使うと色が付かないので見づらくてしかたがなかった。 漢(オトコ)のコンピュータ道: lessでソースコードに色をつけるをやってもダメ。じゃあどうす…

VirtualBoxをコマンドラインからGUI無しで起動

会社のMacを立ち上げて毎回「VirtualBoxを起動→VMを選択→VM起動」というフローが面倒になってきたのでCUIで起動できないかなと思って調べてみた。あと、どうせssh接続しかしないからGUIもいらないのでそれもついでに。結論としては以下のコマンドでできた。 …

Ubuntuのskypeでチャットの通知をgrowl風にしたい

linuxバージョンのskypeはずいぶん質素ですよね。 まあ質素なのは別にいいんですが、チャットの通知のポップアップの文字がやたら小さくて目に優しくない。なのでMacのGrowlみたいな素敵な表示ができないかなーと思って調べてみたら、ありました。 skype-not…