2018-01-01から1年間の記事一覧

Python3で、bytes型の文字列にstr型の文字列を埋め込むため、%演算子 + %a を使う

Python3では、文字列表現として str型 bytes型 の2つの型があります。 通常はstr型を使うのですが、データ通信などではbytes型を使ったりします。 両者は別モノなので、 $ python Python 3.7.1 (default, Dec 19 2018, 21:58:12) [Clang 10.0.0 (clang-1000.…

GCP Cloud Functions + Python + Slack Outgoing WebHooks App + Zaim APIで、SlackからZaimへ登録する

最近、 Zaim を使って家計簿をつけています。 https://zaim.net/ ただ、時々入力を忘れたり、重複入力してしまうことがありました。 そこで、 日頃Slackを使っている ZaimにはWeb APIがある ということから、SlackからZaimのデータを登録する仕組みを作りま…

Python 3.6.4で、pip install python-memcached==1.58 したところ「tuple index out of range」エラー

python-memcachedの環境構築をする時に # 仮想環境を作る $ python -m venv env364 # アクティベート $ source env364/bin/activate # Pythonのバージョンを確認 (env364) $ python --version Python 3.6.4 # pipでインストール (env364) $ pip install pyth…

Python + msoffcrypto-toolで、Excelの読み取りパスワードを解除する

前回、Python + openpyxlで、ブックやシートの保護・解除を試しました。 Python + openpyxlで、ブックやシートの保護・解除を試してみた - メモ的な思考的な その際、openpyxlではExcelの読み取りパスワードを解除できませんでした。 ただ、読み取りパスワー…

Python + openpyxlで、ブックやシートの保護・解除を試してみた

Excelには、ブックやシートを保護するための機能があります。 読み取りパスワード 書き込みパスワード ブックの保護 シートの保護 それらをopnepyxlでやるにはどうしたら良いかを試した時のメモです。 なお、パスワードは把握している前提です。パスワードの…

Python + openpyxlで、 0:00 という値を持つセルが正しく保存されない

JSL (日本システム技研) Advent Calendar 2018 - Qiita の5日目の記事です。 Excel (*.xlsx) ファイルをPythonで作成するため、openpyxlを使いました。 https://bitbucket.org/openpyxl/openpyxl/src そんな中、 0:00 という値を持つセルが正しく保存されな…

2018年12月時点における、PythonのSOAPライブラリについて

Python その2 Advent Calendar 2018 - Qiita 兼 JSL (日本システム技研) Advent Calendar 2018 - Qiita の3日目の記事です。 APIというと、最近はRESTやgRPCなどがメジャーですが、場所によってはSOAPがまだまだ使われています。 もし、SOAPクライアント/サ…

Python + Zeep で、WSDLで定義された SOAP API エンドポイントとは別のエンドポイントにアクセスする

SOAP APIのテストなどでは、 WSDLの定義とは別のエンドポイント(テスト用エンドポイント)にアクセスしたい ただし、WSDLは修正したくない という状況があるかもしれません。 そこで、Zeepではどのようにやるのかを調べた時のメモを残します。 目次 環境 方法…

Python + Zeep + History pluginで、SOAPのリクエストとレスポンスを確認してみた

前回、Zeep + SOAP UI + 自作WSDLを使ってSOAPのリクエスト・レスポンスを試してみました。 Python + Zeep + SOAP UI + 自作WSDLで、SOAPのリクエストとレスポンスを試してみた - メモ的な思考的な 実際のリクエスト・レスポンスの内容は、SOAP UI のログで…

Python + Zeep + SOAP UI + 自作WSDLで、SOAPのリクエストとレスポンスを試してみた

前回、Python + Zeepで、SOAP APIクライアントを作成しました。 Python + Zeep で SOAP API クライアントを作ってみた - メモ的な思考的な そんな中、自分でもWSDLを書いてみたくなりました。 ただ、Zeepを使ってSOAP通信するには、WSDLの他にSOAPサーバが必…

Python + Zeep で SOAP API クライアントを作ってみた

Python + Zeep で SOAP API クライアントを作ってみたため、その時のメモを残します。 目次 環境 Zeepとは 使えそうな SOAP APIを探す mzeepオプションにて、WSDLを解析する 型情報を見やすくする ZeepでAPIクライアントを作ってみる clientの生成 SOAP API…

pytestのkオプションは、マーカー名でマッチしているものもテスト対象だった

pytestでテストを実行する時、今までは -m オプションは、マーカー(@pytest.marker.xxx)に一致するもの -k オプションは、テストクラス名やテストメソッド名でマッチするもの を対象のテストコードとして実行するものと考えていました。 ただ、最近 -k オプ…

Werkzeugでレスポンスボディを後から差し替えてみた

Werkzeugでは werkzeug.wrappers.Response を使ってレスポンスオブジェクトを生成する際、 Response('Hello world') のようにコンストラクタの引数にレスポンスボディを渡します。 ただ、Responseオブジェクト生成後にレスポンスボディを修正する方法を知り…

RedisをJSONに差し替えて、Werkzeugの公式チュートリアルを写経してみた

前回・前々回と、Werkzeugをさわってみました。 Werkzeugでリクエスト・レスポンス・Cookieを試してみた - メモ的な思考的な WerkzeugでJSON等のいろいろなレスポンスを作ってみた - メモ的な思考的な 今回は、公式のチュートリアルを写経した時のメモを残し…

WerkzeugでJSON等のいろいろなレスポンスを作ってみた

前回、Werkzeugでいろいろと試してみました。 Werkzeugでリクエスト・レスポンス・Cookieを試してみた - メモ的な思考的な 今回は、WerkzeugでいろいろなHTTPレスポンスを作ってみました。 目次 環境 特定のHTTPメソッドのみレスポンスを許可 JSONレスポンス…

Werkzeugでリクエスト・レスポンス・Cookieを試してみた

Flaskでも使われているライブラリ Werkzeug でいろいろと試した時のメモです。 公式ドキュメントはこちらです。以下のサンプルでも公式ドキュメントへのリンクを記載しています。 http://werkzeug.pocoo.org/docs/0.14/ なお、curlでの動作検証時、以下が参…

Ubuntu18.04 + mod_python 3.3.1で、リクエスト・レスポンス・Cookieを試してみた

Ubuntu 18.04 に mod_python をセットアップし、いろいろと試した時のメモです。 mod_python - Apache / Python Integration なお、mod_pythonは 非WSGI 動作にはApacheが必要 なことに注意します。 ドキュメントは以下を参考にしました。 公式版:Mod_pytho…

#pyconjp PyCon JP 2018に参加しました

9/17(日)・18(月・祝)に、大田区産業プラザ PiOで開催された「PyCon JP 2018」に参加しました。 トップ - PyCon JP 2018 去年と同様、無事に参加できてよかったです。 #pyconjp PyCon JP 2017に参加しました - メモ的な思考的な 動画も既に公開されているた…

「PythonユーザのためのJupyter実践入門」を写経しながら読みました

最近、Pythonを機械学習やデータサイエンス方面で使う機会がありました。 これまでPythonをWebアプリで使うことが多かったこともあり、最初のうちは各種ツールを雰囲気で使っていました。 ただ、使っていくうちに、ツールを基本的なところから理解したくなり…

Jupyter Notebookで「TypeError: __init__() got an unexpected keyword argument 'io_loop'」エラーのため、コードが実行できない

$ jupyter notebook でJupyter Notebookを起動したところ、 コードを入力し、Ctrl + Enter を押してもコードが実行されない Jupyter Notebookの右側に connected が青点滅している ことがありました。 その時の対応をメモします。 目次 環境 調査 対応 環境 …

jQuery1.6.0より、属性がない時のattr()の戻り値が、空文字からundefinedへと変更されていた

jQueryのバージョンを上げる時に出くわしたのでメモを残します。 目次 環境 現象 原因 実験 ソースコード 環境 対象のjQuery 1.5.2 1.6.0 現象 jQueryの attr() を使って属性の値を取得しているコードのうち、 <p>Hello World</p> <script> // class属性がないのに attr() </script>…

DjangoのModelのFieldのオプション null と blank の違いについて

DjangoにてDBのNOT NULL 制約を外したい場合、nullとblankのどちらを使えばよいのか忘れることがあるため、メモしておきます。 目次 環境 違い 確認 Model マイグレーションファイルの作成 sqlmigrateで、発行されるSQLを確認 マイグレーションファイルを適…

Django2.0のプロジェクトのurls.pyにおける、include()での引数namespaceについて調べてみた

Django 2.0にて、プロジェクトの urls.py を from django.urls import path, include urlpatterns = [ path('old/', include('myapp.urls', namespace='old')), ... ] アプリの urls.py を from django.urls import path from django.views.generic import T…

Mac + Polipoで、SSHの動的フォワード(SOCKS) に HTTP Proxy をつなげてみた

よく分からないタイトルですが... 同一LAN内で、以下の論理構成とした時に、AndroidでアクセスしたときもRaspberry Piからのアクセスに見えるかどうかを試した時のメモです。 Android | (HTTP Proxy、ポート 23000) | Mac + polipo | (ssh -N -D 0.0.0.0:160…

Pythonで、super()で呼ばれる親メソッドの中で呼ばれるメソッドを、子でオーバーライドしてみた

良いタイトルが思い浮かばなかったのですが... 以下のソースコードを実行した時に、何がprintされるかを試した時のメモです。 class Parent: def reply(self): self.say() def say(self): print('parent!') class Child1(Parent): def reply(self): super().…

Djangoで、アプリ用ディレクトリを作成し、INSTALLED_APPSにAppConfigのサブクラスを設定してみた

Djangoでアプリの数が増えると見づらいかなと思い、アプリ用ディレクトリを作成してみました。 その時に INSTALLED_APPS に AppConfig を指定する場合で少し悩んだため、メモを残します。 なお、こんな感じでプロジェクトとアプリを作成しました。 # Django…

Raspberry Pi 2 Model B + docker-compose上に、Django + PostgreSQLなアプリをデプロイしてみた

Raspberry Pi 2 Model Bを使ってDjangoアプリを作ろうかなと思いました。 環境構築をどうするかと考えたところ、RaspbianでDockerを動かせると知りました。 Docker comes to Raspberry Pi - Raspberry Pi Dockerが動くならdocker-composeもいけるのではと思…

Python 3 エンジニア認定基礎試験に合格しました

5/18にPython 3 エンジニア認定基礎試験を受けてきました。 基礎試験 | 一般社団法人Pythonエンジニア育成推進協会 無事に合格したため、メモを残します。 受験した経緯 社内Slackにて試験話が盛り上がっていました。 自分もビッグウェーブに乗ろうとPython …

DjangoCongress JP 2018で発表するまでの準備を振り返ってみた #djangocongress

前回書いた通り、DjangoCongress JP 2018にて発表しました。 DjangoCongress JP 2018 ただ、カンファレンスでの発表は未経験だったので、ゼロから準備をしました。 今書かないと忘れてしまいそうなので、発表するまでの準備を振り返ってみます。 なお、CfPを…

DjangoCongress JP 2018 に参加 & 発表しました #djangocongress

5/19に開催された、DjangoCongress JP 2018に参加 & 発表しました。 DjangoCongress JP 2018 場所は、サイボウズ株式会社の東京オフィスでした。 東京オフィス アクセスマップ | サイボウズ株式会社 ここが日本橋か pic.twitter.com/FiTUXSpXn1— thinkAmi (@…