Python

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…

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

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

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…

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

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

Python3 + google-api-python-clientで、Google Drive APIを使ってpdfファイルをアップロードし、OCR処理をする

手元の画像pdfファイルをOCR処理したいことがありました。 手軽にOCR処理する方法がないかを調べたところ、Google DriveにOCR機能があることを知りました。 GoogleDriveのOCR機能を使って、大量の画像ファイルをテキストに変換する そこで、Google DriveのOC…

Django + django-localflavorで、フォームの郵便番号入力や都道府県選択を作成してみた

Djangoのフォームで 郵便番号入力 都道府県選択 を簡単に作る方法を調べたところ、 django-localflavor がありました。 django/django-localflavor: Country-specific Django helpers, formerly of contrib fame The “local flavor” app — django-localflavo…

Python2 + nfcpyで、「長野市バス共通ICカード KURURU(くるる)」の履歴を読んでみた

以前、Android + RubotoにてFeliCaのKURURUの履歴を読んでみました。 Rubotoを使い、Androidで「長野市バス共通ICカード KURURU(くるる)」の履歴を読んでみた - メモ的な思考的な そこで今回は Python2 + nfcpy でKURURUを読んでみます。 とはいえ、nfcpyでF…

Python2 + nfcpyで、W525DZのFeliCa Plugを読んでみた

毎年冬になるとつらいのが冷え性です。 今までは身体が冷えてるような気がするから冷え性だろうと思っていました。しかし、「推測するな計測せよ」という言葉を思い出しました。 そこで記録が手軽に残せる体温計を探してみました。すると、NFCでデータを転送…

Python2 + Scapyでマジックパケットを作成し、Wake on LANをしてみた

今まで、遠隔からPCの電源を入れる場合、Wake on LAN 用のツールを使っていました。 Wake-on-LAN - Wikipedia そこで今回、ScapyでWake on LANのマジックパケットを作ってみて、ツールの代替となるかを試してみました。 目次 目次 環境 ネットワーク構成 ネ…

Mac + Python2 + Scapyで、使用中のIPアドレスを探してみた

以前、Windowsにて現在のIPアドレス利用状況を知りたい時は、以下の記事のようにしていました。 Windowsで、使用中のIPアドレスを調査する:Tech TIPS - @IT Scapyを使えばARPパケットだけで同じことができるのではと思い、試してみました。 目次 環境 実装…

IntelliJのremote interpreter方式を使って、Raspbian上のScapyをリモートデバッグしてみた

Raspberry Pi 2 Model BでScapyを書いていると、リモートデバッグしたくなりました。 そこで、IntelliJのremote interpreter方式を使って、Raspbian上のScapyをリモートデバッグしてみた時のメモを残します。 目次 環境 公開鍵を使ったSSHを可能にするよう設…

最新のScapy(2.3.3.dev957)では、Macにpcapやdnetモジュールのインストールが不要っぽい

前回の記事の中で、MacへのScapyのインストールについて触れました。 Mac + Python2 + Scapyで、DHCPサーバを探してみた - メモ的な思考的な 公開後、Twitterにて Scapy works natively on macOS since 2.3.3. There is no need to install pcap and dnet mo…

Mac + Python2 + Scapyで、DHCPサーバを探してみた

Scapyを使ってDHCPサーバを探してみようと、実装方法を調べてみました。 すると、Scapyの公式ドキュメントにあったり、既に実装している方々がいました。 Identifying rogue DHCP servers on your LAN | Usage — Scapy 2.3.3-dev documentation Python(Scap…