ホーム 1. Python を始める 2. 基本仕様 3. クラス 4. モジュールとパッケージ 5. ファイル操作 6. 例外 7. ジェネレータ 8. テスト 9. 便利ツール
忘備録として。 はまった点はsecureに空のタプルを指定するという点。 とりあえずこれで動いてはいますが、本当にそれでいいのかというのはよく分かっていません。 LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'handlers': { 'mail_handlers': { 'level': 'ERROR', 'class': 'logging.handlers.SMTPHandler', 'mailhost': ('smtp.gmail.com', 587), 'fromaddr': 'from_mail@gmail.com', 'toaddrs': ['to_mail_1@a.com', 'to_mail_2@a.com'], 'subject': 'error log', 'credentials': ('fro
Pythonは3.5から、C#みたいなasync/awaitを用いた非同期処理が可能になっている。 これ系のパターンでは「非同期処理を待つ」ためにawaitキーワードを使い、「(awaitを含む) 非同期処理が行われる関数をマークする」ためにasyncキーワードを使う。非同期処理の終了は行儀よくawaitで待ち受けるのが普通だが、時には単に非同期処理を投げっぱなしにしたいこともある。ログを書くとか、通知を飛ばすとか。 C#においてはasyncかつ返り値をvoidにすればawaitせずにコールできる非同期メソッドが書ける(逆に言うと、awaitする必要がある非同期メソッドはTaskかTaskを返すということになっている)のだが、pythonだとぱっと見どうすれば同じことが出来るのか分からない。その上、われわれ日本人にはどういう単語で検索すればいいかよくわからない。 知ってる人は「fire a
大変おまたせしました。 数年前からずっと書く書くと詐欺してきた asycnio の記事です。 日本語のasyncio関連のブログエントリは大体読んだ気がします。(英語の記事も少し) リファレンスが多いので、ページ末に参考URLをリンクしてあります。詳しくはそちらも参照ください。 infoasyncio はいろいろな概念が同居しており、学習コストが高めです。「なんとなく」とは書きましたが、割と詳細に書いているので概要だけ知りたいという方は 「概要」セクションだけ読んでブラウザバックしたほうがいいかもしれません。タイトル詐欺ですね。読み進める上でジェネレータの概念が必要ですので、わからないという方は先にこちらからどうぞ。 [Python] 部屋とYシャツとイテレータとジェネレータと私 (何だこのクソみたいなタイトル)なお、この記事では Python 3.7 を使います。 3.7以上でしか使えな
この記事は過去に自分が携わっていた案件のコードを理解するために書いたものです。 前は公式の日本語ドキュメントがあったんですが、迷宮に迷い込んだようです(404) ちなみに英語ドキュメントは普通にあるので読める人はそっちを読んだほうがいいです。 https://docs.pytest.org/en/latest/ 以下のようにインストールします。 info2021年09月に以下のバージョンで確認しながら大幅に加筆・訂正を行いました。pytest 6.2.5Python 3.9.6 テストランナーとしてのpytest pytestは簡単に始められます。フレームワークに依存していなければテストケースを置き換えなくても実行するだけでOKです。 手始めに以下のファイルを作成します。 from unittest import TestCase def test_1(): a = 1 b = 1 ass
engine apiと接続 SQLAlchemyが提供するengineとは、接続を始めとしたSQLAlchemyの機能を使用するための起点となるオブジェクトです。 engineだけでも最低限のDB操作、つまりデータベースへの接続の作成、SQLステートメントの送信、および結果の取得を行うことができます。 engineオブジェクトは、create_engine関数を呼び出してデータソース名を渡すことによって作成されます。 engineを使用した簡単なサンプルを見てみましょう。sqlite3のオンメモリのDBに接続し、SQLを実行してみます。 from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:') # 接続する with engine.connect() as con: # テーブルの作成
ソフトウェアエンジニアにとって、不具合に対抗する最も一般的な方法は自動化されたテストを書くこと。 テストでは、書いたプログラムが誤った振る舞いをしないか確認する。 一口に自動テストといっても、扱うレイヤーによって色々なものがある。 今回は、その中でも最もプリミティブなテストであるユニットテストについて扱う。 ユニットテストでは、関数やクラス、メソッドといった単位の振る舞いについてテストを書いていく。 Python には標準ライブラリとして unittest というパッケージが用意されている。 これは、文字通り Python でユニットテストを書くためのパッケージとなっている。 このエントリでは、最初に unittest パッケージを使ってユニットテストを書く方法について紹介する。 その上で、さらに効率的にテストを記述するためにサードパーティ製のライブラリである pytest を使っていく。
今回は Google が公開した python-fire というパッケージを試してみた。 python-fire では、クラスやモジュールを渡すことで、定義されている関数やメソッドを元に CLI を自動で生成してくれる。 ただし、一つ注意すべきなのは、できあがる CLI はそこまで親切な作りではない、という点だ。 実際にユーザに提供するような CLI を実装するときは、従来通り Click のようなフレームワークを使うことになるだろう。 では python-fire はどういったときに活躍するかというと、これは開発時のテストだと思う。 実装した内容をトライアンドエラーするための CLI という用途であれば python-fire は非常に強力なパッケージだと感じた。 今回使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion:
適切にテーブル設計が出来ていれば O/R マッパーが自動生成する SQL で事足りるのだろうけれども、それでもやはり直接 SQL を記述したい場合もある。 そして、そういう時は得てしてパフォーマンスを追求したい場合が多い。 となると、バインド・パラメータを利用して、SQL 文の解析処理及び実行計画の生成をある程度抑制する必要が出てくる。 というわけで、SQLAlchemy を使って、生 SQL の利用と、バインド・パラメータの利用を試してみた。 SQL Expression Language Tutorial — SQLAlchemy 1.2 Documentation http://docs.sqlalchemy.org/en/latest/core/tutorial.html#using-textual-sql 〜略〜 Session = sessionmaker(bind=engin
この記事では、PythonのSqlAlchemyで生のSQL文(任意の文字列のSELECTやINSERT文)を実行する方法を紹介します。 SqlAlchemyはPythonのORMで便利です。ただ複雑な結合・集計などがあるSQL(SELECT文)をORMで表現すると、ソースが難解になり、逆に普通にSQLを書いたほうが綺麗になる時があります。 今回はそんな時に役立つ、SqlAlchemyで生SQLを実行する方法を紹介します。 スポンサーリンク SELECT文をSqlAlchemyで実行 生のSELECT文を、PythonのSqlAlchemyで実行するサンプルコードです。コード見て貰えれば分かりますが、SqlAlchemyは簡単に生SQLを実行できるようになってます。 from sqlalchemy.sql import text #(1)生のSELECTを定義 t = text("SELE
Dataloreの魅力 blog.jetbrains.com 要はクラウド上で動かせるJupyter Notebookといったところです。 ホーム画面 この手のサービスでは、Google ColaborateryやAzure Notebooksがあります。 それらのサービスがありながらも圧倒的な存在感のあるサービスです。 とにかく、使いやすいです。 JetBrainsはチェコの企業だけあって、どうしても日本では馴染みが薄いと思いますので、この記事を見て、興味を持っていただければ幸いです。 インテリセンス 使いやすさの最大の理由として、JetBrainsならではのインテリセンスが提供される点にあります。 Jupyter Notebookにおいて気になっていた点としては、インテリセンスがない点です。 前に書いたソースをコピペ 真面目に英語のAPI仕様書を見る ということがあります。そうした手間
(English article is here) こんにちは、吉岡([twitter:@yoshiokatsuneo])です。 Pythonは、CSVなどのデータ処理、Webサービスの開発、スクレイピング、ボット作成など幅広い目的で使われているプログラミング言語です。特に最近は、機械学習・AIのなどの開発に適したライブラリが充実していることもあって注目が高まっていますよね。 ただ、Pythonを単体でインストールしても、表やグラフを作ったり、データなどを整理したりする機能はありません。 そこで、Jupyter Notebookというツールがあります。 Jupyter Notebookを使うと、ブラウザ上で簡単にプログラムを実行できるうえ、表やグラフなども表示できます。 また、Markdownなどで文章も書けるため、プログラムと文章をわかりやすくまとめることができます。このまとめたノートは
はじめに 皆様は機械学習やDeep Learningを行う際の実行環境には何をお使いでしょうか。Local PCでやりくり?AWS等のIaaS?それとも社内や自宅に専用機があったりするのでしょうか。 機械学習やDeep Learningを快適に行うためにはそれなりのマシンスペックが必要になります。ある程度のメモリ容量はもちろん、GPUも必須といっていいレベルでしょう。 通常使用のPCでは、メモリが足りず処理できなかったり、1試行ごとに数十分~数時間待つことになったりということがあるのではないでしょうか。また、IaaSを用いれば高スペックな環境を手に入れることはできますが、コストもかかりますし、環境設定に翻弄されることも多いですよね。 実は上に挙げたものは私たちのチームが直面した問題でした。機械学習やDeep Learningを行う際、処理待ちや環境設定に時間を取られてしまい、本来行いたい、
Python 3.14.5 documentation Welcome! This is the official documentation for Python 3.14.5. Documentation sections: What's new in Python 3.14? Or all "What's new" documents since Python 2.0 Tutorial Start here: a tour of Python's syntax and features Library reference Standard library and builtins Language reference Syntax and language elements Python setup and usage How to install, configure, and u
pythonのスクリプトでログを出力しようとして、 色々と調べて、結局どうすればよいのかを自分なりに整理したので、 メモを残しておきます。 このエントリでは、以下の想定要件で、ログ出力を実装してみます。 本番環境では、INFOレベル以上をファイルに出力 開発環境では、DEBUGレベル以上を標準エラー出力とファイルに出力 ログファイルは日ごとにローテション importするモジュールのログ出力レベルは、メイン処理とは別に設定 ログにはスクリプト名と行数を出力 以下の流れで段階を追って、実装してきます。 ファイルにログ出力 ログのローテート ログのフォーマット変更 開発環境向け: 標準エラー出力にログを出力 ライブラリ固有のログ出力を設定 ファイルにログ出力 ファイルにログを出力するように、 メインのスクリプトと、logging.conf(ログ出力の設定)を作成します。 sample.py #
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く