Python + Zeep にて、SOAPの wsi:swaRef でファイルを送信する

前回、swaRef にて、SOAPでファイルを送信してみました。 Python + Zeep にて、SOAPのswaRef でファイルを送信する - メモ的な思考的な 今回は、wsi:swaRefという仕様でファイルを送信してみます。 仕様書 Attachments Profile - Version 1.0 (Final) Attach…

Python + Zeep にて、SOAPのswaRef でファイルを送信する

以前、SOAP with Attachments (SwA) にて、SOAPでファイルを送信してみました。 Python + Zeep にて、SOAP with Attachment (SwA) でファイルを送信する - メモ的な思考的な 今回は、SwAに似た swaRefという仕様でファイルを送信してみます。 仕様書:SOAP M…

WSDLのelementにattributeを追加し、Python + ZeepでSOAPのエンベロープを作成する

swaRefの仕様書を眺めていたところ、 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <claim:insurance_claim_auto id="insurance_claim_document_id" xmlns:claim="http://schemas.risky-stuff.com/Auto-Claim"> </claim:insurance_claim_auto></soap-env:body></soap-env:envelope>

Python + Zeep にて、SOAP with Attachment (SwA) でファイルを送信する

前回、inline (Base64エンコード) にて、SOAPでファイルを送信してみました。 Python + Zeepにて、SOAPのinline(Base64エンコード)でファイルを送信する - メモ的な思考的な 今回は、SOAP with attachments (以降、SwA) でファイルを送信してみます。実装に…

Python + Zeepにて、SOAPのinline(Base64エンコード)でファイルを送信する

SOAPでファイルを送信する方法を調べたところ、5つほど見つかりました。 inline (Base64 エンコード) SOAP with Attachments (SwA) swaRef wsi:swaRef MTOM 参考:SOAP Attachments and Files | SoapUI Zeepではどれが実装されているかを調べたところ、eleme…

2018年の振り返りと2019年の目標

例年通り、2018年の振り返りと2019年の目標っぽいものを書いてみます。 2018年の振り返り 2017年の振り返りと2018年の目標 - メモ的な思考的な で立てた目標を振り返ってみます。 Pythonを通じて、いろいろな分野の基礎固め Blogを振り返ってみると、いろい…

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…