Python

MongoDB Associate Developer Certificationに合格した話

勉強時間約15時間、無料で受験して保持資格増やせました。 模擬試験も無料で用意されてて、それを完璧にするだけでどうにかなる試験です。 しかも自宅オンライン受験ができるのでとても受けやすい。 詳細は各ページに書いてますのでぜひ。 Japanese qiita.co…

I3D Feature Extractionと実装についてまとめてみる

English: medium.com この記事は 大学の卒論のためにI3D特徴抽出(I3D feature extraction)を使う必要が出てきたのですが、とても情報が少ないようです。 英語でもあんまりないのに特に日本語だと解説している記事がないようだったので、自分なりにまとめて…

MediapipeのFace mesh/hand/poseランドマークポイント一覧ビュー

この記事 is 英語版はこちら medium.com Mediapipe公式ドキュメントにはFace meshのランドマークポイント番号一覧があるけど、画質が低くて全く読めない。困る。 見やすいように、高画質でマッピング+番号表示をした画像を作りました。 たぶん、特定の体の…

携帯に通知が来るとピカピカして教えてくれるIoTっぽい物を作った

できた!携帯に通知が入るとお星さまを光らせるょ pic.twitter.com/DmWGFTFTqk— Hotaru (@fluorite2411) August 5, 2022 ソースコード はじめてGitHubでパブリックのリポジトリ作った。 github.com 回路図 こんな感じです。電気の事わからないので、雰囲気で…

Pushbullet APIをWebSocketで利用してリアルタイムに通知を受け取る

ずっとやりたいなーと思いつつやってなかったPushbullet APIを遂に触りました。非同期処理わからんでちょっと難しかった。 ちょっと戦って色々理解できたので、ラズパイでこの通知を受信してなにかやろうと思っています。 サンプルコードはそれぞれ以下に。 …

Python + Twitter APIでただ単純にツイートするだけ

import requests from requests_oauthlib import OAuth1 consumer_api_key = "xxx" consumer_api_secret = "xxx" access_token = "xxx" access_token_secret = "xxx" oauth = OAuth1(consumer_api_key, consumer_api_secret, access_token, access_token_sec…

Slack botが投稿したメッセージだけまとめて消すスクリプトを作る

やりたいこと 動体検知ペットカメラ(Slackに動画を投稿)を設置したら誤検知含めてSlackにバンバン投稿しまくるのでメッセージ数上限にすぐに到達してしまったので消すゾ でもBotが投稿したメッセージ以外は消さないようにしたいゾ 手順 1. Slack Botに権限…

アメリカの運送会社USPSのAPIで貨物追跡がしたい

概要 日本→アメリカ移住にあたり船便でいくつか荷物を送ったが、到着まで3ヶ月くらいタイムラグがある。 普段すっかり忘れてるんだけど、時々寝る前に突如思い出してロストしてないか心配になるサイクルを4ヶ月くらいやっていたのだが、公式がちゃんとAPを提…

Django Rest Framework + django.test.RequestFactoryを使うと期待値と異なるbodyが渡される

まとめ Django Rest Frameworkを使っている場合、テストを書くときのRequestFactoryは rest_framework.test.APIRequestFactory を使ったほうがいい 起きたこと テストとpostmanからリクエストを受けたときでRequestオブジェクト内のbodyの型が違ったので調べ…

flake8拡張+vultureでよりストイックなlintルールを作ってみた

何 仕事で使っているプロジェクトにflake8を導入していたが、PRでlintで拾いきれないちまちましたものを指摘する頻度が上がってきたので、この手間を減らすべく色々試してみた。 tox.ini + flake8の構成は変えずに、これを拡張する形でプロジェクトをもっと…

Serverlessルートディレクトリの外にある自作モジュールを読み込ませる

概要 repo-root ├ functions │ ├ func_a │ │ ├ main.py │ │ └ serverless.yml │ └ func_b │ ├ main.py │ └ serverless.yml ├ libs │ └ mod_c │ └ foo.py └ tox.ini とあるServerlessのLamdaを管理するリポジトリがあります。 このリポジトリは(歴史的背景に…

定期的に忘れるPyCharmのDocstringsフォーマット変更方法と自動入力例

こちらにある通り。 https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000784410/comments/115000640424 [Settings → Tools → Python Integrated Tools → Docstring format] の順に辿ることで変更可能。 選択可能なスタイルは5種類。 Pl…

PyConJP2019に当日スタッフとして参加しました

2018年9月から本格的に業務でPythonを使い始めて1年が経ちました。 満を持して!初PyConJPに参加してきました。 しかも当日スタッフとして。 自分の中ではかなりのチャレンジをしました…! 9/15(前日) 事前準備から参加しました。何もないだだっ広い大展示ホ…

Qiitaに初投稿した

qiita.com 温めてたブログ用ネタのうち、 そこそこのサイズ感で、Qiitaに出しても一応恥ずかしくなさそうなやつを選んだつもり…つもり。 バーンと出すのが恥ずかしい小さいやつはブログ、そうじゃないやつはQiitaに流していこうと思いました。

mimetypes.guess_type()の挙動はOS依存だよ

なんだこれゎ。 mimetypes.guess_type() でどのmimetypeが返ってくるかは動作している環境のOSに依存する様子。 そのため、たとえば hogehoge.csv というファイルを引数に与えたとき、 Windowsでは application/vnd.ms-excel が返り、Linuxでは text/csv が…

Djangoのテストでsettingsの値をモックする

定期的に忘れるのでメモ settingsの値をモックしたいときは、 django.test.utils.override_settings か TestCase.settings を使う。 override_settingsを使う場合 参考: https://gist.github.com/blaix/2294982#gistcomment-1318400 に書いてある通り。 fro…

moto+boto3のテストでOSError、NoCredentialErrorが出る場合

現象 moto == 1.3.7, boto3 == 1.9.130 環境でテスト実行時に発生。 urllib3.exceptions.NewConnectionError: <botocore.awsrequest.AWSHTTPConnection object at xxxxxxxxxxxxxxxx>: Failed to establish a new connection: [WinError 10051] 到達できないネットワークでソケット操作を実行しようとしました。 テストのときにbo</botocore.awsrequest.awshttpconnection>…

Windows環境でpipenvコマンドが認識されないとき

pip install pipenv したのに C:\Users\foo\var\ >pipenv 'pipenv' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 になるときの対処法。 stackoverflow.com stackoverflowに対処法があった。 …

serverless-python-requirementsで変名Pipfileを読むことはできない

タイトルの通り。 serverless-python-requirements で無理をしたかったができなかった話。 serverless-python-requirementsはpipだけでなくpipenvにも対応している。 custom: pythonRequirements: usePipenv: true でpipenvのPipfileを読むことが可能になる…

Python+Django+MySQL環境でMySQLdbがModuleNotFoundErrorになったときの対処

こんなエラーログ File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 15, in <module> import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' 対処方法 使っているsettingファイルに、以下のコードブロ</module>…

Django Rest FrameworkのSerializerでバリデーションをして、ついでにkey名を変更したいとき

Modelから取得したレコードをシリアライズするSerializerでは、入出力するkey(カラム)名が異なる場合、sourceオプションで入力元のカラム名を指定すればよい。 しかし、dictを整形したりvalidationしたいがためだけにSerializerを使う場合、これが逆にする…

Djangoで空文字・Noneを許容する文字列Validateを作る

やりたいこと DjangoのSerializerで、 空文字とNoneと、ついでに未入力も許容する文字列バリデータをつくる 結論 CharFieldを定義するときに、 requiredだけでなく allow_blank, allow_null も設定しよう(でも罠がある) class TestSerializer(serializers.…