requestsを使ってAPIからデータ取ろうと思った時に調べたこと。 まずはリトライ設定をしつつAPIの内容をローカルファイルにダウンロードする処理。リトライについてはAdapterを使うらしい。下記を参考にした。 http://www.mobify.com/blog/http-requests-are-hard/ ダウンロードする方法として、下記Stackoverflowのページを参考にした。requests.getにstream=Trueを設定することでファイルサイズが大きくてもメモリサイズを食わずにダウンロードできる。 http://stackoverflow.com/questions/16694907/how-to-download-large-file-in-python-with-requests-py import requests def download(url, o
砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*本編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小本です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Pythonは歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ
以前[Pythonのパッケージ周りのベストプラクティスを理解する(2019年現在)] (https://www.m3tech.blog/entry/python-packaging)を書きました。 この記事では「基本的には pipenvを使えばOK」と書きましたが、意図的に無視していた部分があります。 Poetryです。 Poetryは調べてみたのですが、各種日本語の記事(は一部の英語記事)はざっと読んだ限りでは、Poetryはどうにも了解できないことが多かったからです。そして、現時点ではPoetryよりPipenvの方が知名度が高そうだし、Pipenv自体は十分実用的なので「pipenvを使えばOK」としました。 とは言え、来年にはPoetryが天下をとっているかもしれません。そこで、そのうち書く記事の足がかりとして、あわよくば誰かが教えてくれたらいいなという虫のいい期待を込め、疑問点を
乗り換えるリポジトリ pyproject.toml の生成 依存パッケージのインストール コマンドラインツールとして実行できるようにする 乗り換えるリポジトリ GitHub - kk6/aeroplast: Transparent PNG conversion (Mainly for Twitter) twitterにアップロードしたPNGがJPGに強制変換されて見栄えが悪いという問題がある。それを回避するために画像の四隅どこかに1pxの透過ドットを打ち込むという方法がある。いちいちペイントソフトでそれを毎回やるのが面倒なのでコマンドラインで画像のPath渡したら変換してくれるコマンドラインツールを以前作った。こいつをPipenvで管理しているので、Poetryへの乗り換えを試してみる。 Poetry については数日中にもうちょっと突っ込んだ記事書きます。 pyproject.toml の
この記事は BeProud Advent Calender 2018 の20日目の記事です。そのためいつもよりボリュームたっぷり、文体も丁寧にお送りします。 adventar.org 本記事ではPoetryを使ってパッケージ開発→PyPIへ登録するまでの流れを紹介します。 github.com プロジェクト作成からPyPI登録までわずか30秒 Poetry について 基本的な使い方 Poetry と Pipenv Pipenvは確かに便利だけど Pipenv から Poetry に乗り換える Poetry と Pyenv PEP517 と PEP518 Poetryの各種設定 venvの作成先をプロジェクト内にしたい TestPyPIへアップロードできるようにする TestPyPIのユーザー名とパスワードを設定する ここまでの設定 プロジェクトを用意する 新規作成 標準的なレイアウト sr
テストを書くときに、外部の HTTP API を叩く処理が組み込まれている場合は、何かしらモックが必要です。 どう書くのがスマートなのか良くわからないので色々試してみる 準備するモノ python 2.7.x mock simplejson requests nose covarage テストのデファクト あまりまとまってるのがないので、まとめておきます。 テストランナーは nose または py.test nose はプラグインがステキ py.test はなにやら色々嬉しい事があるらしい モック/スタブは mock テストは unittest (unittest2) カヴァレッジは covarage ? これは良くわからず、基本 Jenkins に食べさせらるタイプで出力できればおk この辺が今のところデファクトでしょうか、ご意見お待ちしております。 mock patch を使うと綺麗に
PEP 484 – Type Hints PEP 484 – Type Hints Author: Guido van Rossum <guido at python.org>, Jukka Lehtosalo <jukka.lehtosalo at iki.fi>, Łukasz Langa <lukasz at python.org> BDFL-Delegate: Mark Shannon Discussions-To: Python-Dev list Status: Final Type: Standards Track Topic: Typing Created: 29-Sep-2014 Python-Version: 3.5 Post-History: 16-Jan-2015, 20-Mar-2015, 17-Apr-2015, 20-May-2015, 22-May-2015
Andrew Montalenti @amontalenti – Founder/CTO. Coding in: Python, JavaScript, Zig. Menu and widgets In 2010, the Python core team wrote PEP 3107, which introduced function annotations for Python 3.x. Nearly 4 years ago, I wrote this response to the PEP, but I published it to a discussion site that ended up becoming defunct (Clusterify). I saw that recently, interest in function annotations for type
デフォルト引数周りの型のことでちょっと把握できなかった部分があったのでメモ。 余分なデフォルト引数を持つ実装について 例えば、以下の様なプロトコルがあるとする。 import typing as t import typing_extensions as tx class Adder(tx.Protocol): def add(self, x: int, y: int) -> int: ... このAdder.addメソッドはデフォルト引数を持たない。一方で、デフォルト引数を持つような実装はこのプロトコルの制約を満たすのかということが気になる。 例えば以下のようなもの class A: def add(self, x: int, y: int, *, verbose: bool = False) -> int: return x + y class B: def add(self, x:
Type hints cheat sheet¶ This document is a quick cheat sheet showing how to use type annotations for various common types in Python. Variables¶ Technically many of the type annotations shown below are redundant, since mypy can usually infer the type of a variable from its value. See Type inference and type annotations for more details. # This is how you declare the type of a variable age: int = 1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く