requirements.txtをPythonコードの中でパースする方法

pipにあるparse_requirements関数を使えば簡単にできます。 試しに、 django-skel のrequirements.txtをパースしてみます。 これがサンプルコードです(Python2.7, 3.4で動作確認しています): from pip.req import parse_requirements install_reqs = parse_requirements('requirements.txt') for i in install_reqs: print(i) これが出力結果です: Django>=1.5.0,<=1.5.9 (from -r reqs/common.txt (line 1)) django-celery==3.0.21 (from -r reqs/common.txt (line 2)) django-compressor==1.3 (from -r reqs/common.txt (line 3)) Fabric==1.6.1 (from -r reqs/common.txt (line 4)) South==0.8.1 (from -r reqs/common.txt (line 5)) Sphinx==1.1.3 (from -r reqs/common.txt (line 6)) boto==2.9.5 (from -r reqs/prod.txt (line 2)) cssmin==0.1.4 (from -r reqs/prod.txt (line 3)) django-heroku-memcacheify==0.4 (from -r reqs/prod.txt (line 4)) django-heroku-postgresify==0.3 (from -r reqs/prod.txt (line 5)) django-storages==1.1.4 (from -r reqs/prod.txt (line 6)) gevent==0.13.8 (from -r reqs/prod.txt (line 7)) gunicorn==0.14.3 (from -r reqs/prod.txt (line 8)) jsmin==2.0.3 (from -r reqs/prod.txt (line 9)) newrelic==1.12.0.56 (from -r reqs/prod.txt (line 10)) psycopg2==2.5 (from -r reqs/prod.txt (line 11)) pylibmc==1.2.3 (from -r requirements.txt (line 2)) -rで参照している他のファイルの内容も読み取ってくれます。 ...

4月 12, 2014 · Ryuji Tsutsui

django-model-utilsでmodel設計(Fields編)

先日の Django Meet up で読んだ Tow Scoops of Django 1.6 に載っていた django-model-utils がいい感じだったので、ちょっと調べてみました。 このエントリーでは、以下の環境で動作確認しています。 Python 3.4 django-model-utils 2.0.3 Django 1.6.2 ...

4月 9, 2014 · Ryuji Tsutsui

Django Meet up でやったことまとめ #djangoja

このエントリーは Django Meet up で書きました。 TWO SCOOPS of Django 1.6 げっとー #djangoja — Ryuji TSUTSUI (@ryu22e) 2014年4月5日 したので、Django Meet up中に読みました。読んだところまでで、気になったところをまとめます。...

4月 5, 2014 · Ryuji Tsutsui

FabricのDjango Integrationが地味に便利そう

Fabricの0.9.2から、 Django Integration という機能があるようです。 これを使うと、FabricからDjangoのコードを呼ぶことができます。 先日紹介した factory_boy と組み合わせると: # -*- coding: utf-8 -*- from fabric.api import task from fabric.contrib import django # Djangoのコードのimportの前にこれを書く django.project('fabric_django') from example.factories import BookFactory @task() def generate_books(): for i in range(10): BookFactory() これでWeb上の動作確認をするためのデータを生成することもできます。 今まで、私はこういったことをやるために、Djangoのコマンドを自作していたのですが、こちらの方が簡単に書けそうでいいですね。

12月 24, 2013 · Ryuji Tsutsui

factory_boyで楽々テストデータ生成

Python Advent Calendar 2013 の14日目です。 今日は、テストコードを書くときに便利なモジュール factory_boy を紹介します。 なお、この記事のサンプルコードは以下の環境で動作確認しています。 Python 3.3.3(2.7でも動くように書いています) factory_boy 2.2.1 SQLAlchemy 0.8.4 SQLite3 ...

12月 14, 2013 · Ryuji Tsutsui

PyCon APAC 2013 in Japan にスタッフとして参加しました #pyconapac #pyconjp

PyCon APAC 2013 in Japan にスタッフとして参加しました。 ...

9月 16, 2013 · Ryuji Tsutsui