Python Advent Calendar25日目を担当します@giginetです。最終日なので遅れないように何とか書き上げました。 先日、Django向けに簡単なプラグインを開発しました。 そこで、実装したプラグインをPython2と3の違いを吸収して複数環境でテストするようにCI環境を構築したところ、ハマりどころが多かったため、この機会にまとめてみます。 この記事ではTravis CIを使って、複数のPythonバージョンにまたがるテストを実行して、カバレッジを計測する方法をご紹介します。 モジュールを実装する まず、テストしたい簡単なモジュールを実装しましょう。今回はcalculatorモジュールにcalculator.pyを置き、Calculatorクラスを実装しました。 今回は全てのコードをPython3で実装することを想定しています。
Redux Toolkit で React.js の状態管理をもっと簡単にする方法[TypeScript版] React.jsの状態管理ライブラリはReduxが有名ですが、結構複雑だったりステートを一つ更新するだけでもタイプ量が多くなってしまうというデメリットもあります。 そこでこの記事ではRedux Toolkitというライブラリを使用して、もう少し簡単に状態管理する方法をご紹介します。 投稿日2020年01月27日 更新日2020年01月29日 環境は react : 16.12 typescript : 3.7 @reduxjs/toolkit : 1.2 react-redux : 7.1 でお送りします。 この記事でやること 基本的に以前作成したTodoアプリにRedux Toolkitを導入します。 Todoアプリについては下記記事を参照ください。 React.js + Typ
タイトルの通りです。Go は LL 的に使える、とはよく申しますが、そういう意識で使っていると REPL 的なことをしたいときに困りがちですよね。そこで作りました。gore。いい名前ですね。 motemen/gore · GitHub 以下のスクリーンキャストでだいたいの雰囲気をお察し下さい。 (スクリーンキャストは cho45/KeyCast を使って撮影しました) 特徴 gore の特徴は以下の通りです。 ラインエディタと履歴 複数行入力 パッケージのインポート、補完つき 式および文を実行可能 コード補完(nsf/gocode を利用) プリティプリント(k0kubun/pp か davecgh/go-spew がおすすめ) ドキュメントも引ける(godoc が必要) 以上のように、非常に便利なものになっております。むしろこの程度 REPL には当然あってほしい機能だとも言える。 イン
PySnooper を使うと print() や pdb を使わずにデバッグを行うことが出来ます。 PySnooper のページには PySnooper is a poor man's debugger. と書かれていました。 PySnooper の使い方をメモしておきます。 尚、ソースコードは cool-RR / PySnooper にありました。 ソースコードの行数 単純に行数だけ数えた場合、現時点では約 800 行のようです。 熟読出来ていませんが、中核となる実装は tracer.py に集中しているように見えました。 $ git clone https://github.com/cool-RR/PySnooper $ cd PySnooper/pysnooper/ $ find . -name '*.py' | xargs wc -l 30 ./__init__.py 82 ./p
[tox] envlist = py{36,37} skip_missing_interpreters = true [testenv] description = Unit Test and Integration Test with coverages passenv = LANG deps = pytest pytest-cov pytest-pythonpath flake8 pep8 pyflakes pytest-flake8 pytest-pep8 coverage black commands = python setup.py install coverage run --source=hogehoge -m pytest --junit-xml=test_results.xml coverage report -m coverage html coverage xml
概要 Pythonモジュールに対するCIで、勉強がてらtoxを導入してみたため、自分用に設定ファイルによく書きそうな内容をまとめて記述しておきます。 ※toxバージョン>=3.14での内容となります。 toxとは virtualenvを利用したMultiEnvironmentでのテストを実施することができるツールです。 複数バージョンのPythonでモジュールに対するテスト実施できる点が便利です。 設定ファイル種別 ドキュメントによると、3種類のファイルを次の優先順位で読み込みます。 1. pyproject.toml 2. tox.ini 3. setup.cfg 以下に記載していくのはtox.iniの内容となります。 埋め込み変数 各セクションで利用できる埋め込み変数の一覧です。 設定名 概要
この記事はLIFULL Advent Calendar その3の遅れてきた16日目の記事です。 今までPythonの開発にPipenvを使っていたのですが、こちらの記事「Poetryを使ったPythonパッケージ開発からPyPI公開まで」読んで、Poetryというツールが気になっていました。 Poetryの便利なところは、パッケージをビルドした際にこの設定がそのまま setup.py の console_scripts として記述される。ビルドする時にコマンドとして実行できるようにあらためてsetup.pyを書く必要がない。 そのテストも兼ねて、社内用のPythonライブラリをPipenvからPoetryに移行してみました。また、Rustを少し触っていて遊んでいた(コンパイルが通らずに泣いていた)ときに、開発ツールのcargoが洗練されていて羨ましかったのですが、それに使い勝手が近そうな印
カバレッジを計測するには pytestのテストコードを作ったら、カバレッジを確認しましょう。 pytestのpluginでカバレッジ計測の便利なライブラリがあります。 名前は、「pytest-cov」です。 pytest-covの最新情報はこちら参照。 https://pypi.org/project/pytest-cov/ 上記サイトにオプションの指定例がいろいろ書いてあります。 知っておくと便利なオプションを選んで、やりたいこと別にコマンドと実行例を記載します。 pytest-covのインストール前に、pytestのインストールから動かし方まではこちらです。 https://qiita.com/kg1/items/4e2cae18e9bd39f014d4 pytest-covインストール pipコマンドで簡単に導入できます。 フォルダ構成、プログラム 例として以下のフォルダ構成、プログ
This is a system I only somewhat tongue in cheek refer to as “The Fully General System For Learning To Do Hard Things”. It’s a useful conceptual framework for how to get better at things that you currently find difficult. I don’t always explicitly follow it, but I often find that when I’ve succeeded my success comes from implicitly following it, and almost every time someone asks me for advice on
Pythonとipaddressライブラリで、 ネットワークエンジニアがよく使うIPアドレスを表現する方法を例示します。 from ipaddress import ip_interface >>> ip = ip_interface("192.168.1.124/24") >>> ip IPv4Interface('192.168.1.124/24') >>> str(ip) '192.168.1.124/24' はじめに PythonでIPアドレスを取り扱う方法を調査してみました。 過去に、Rubyで調査したので、ほぼ同じことをできるか、Pythonで調査しました。 ネットワークエンジニアのためのIPアドレス計算 for Ruby Python3.3から標準モジュールとしてipaddressライブラリが追加となっています。 より詳細な解説は、ライブラリのドキュメントを参照してください。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く