pytestのmockerについて
投稿者:齋藤拓海この記事は レコチョク Advent Calendar 2023 の7日目の記事となります。
はじめに次世代ビジネス推進部の齋藤拓海です。
最近は登山にハマってます。スノボもこれから楽しみです。
最近ハマっているアーティストはpeople 1、キタニタツヤです。
皆さんは普段テストを書いているでしょうか。
自分は現在Pythonで開発をしていて、単体テストはpytest を使用しています。
単体テストを記載して ...
FastAPI + Assistants API で英単語一問一答チャットボットを作ってみた
投稿者:小林圭一朗この記事はレコチョク Advent Calendar 2023 の 6 日目の記事となります。
はじめに株式会社レコチョクでバックエンドエンジニアをしている新卒2年目の小林です。
現在は、PythonによるAPIの開発やSolidityによるBlockchainのスマートコントラクトの開発を行っています。
趣味はゲームやアニメで、最近ハマっている曲はTVアニメ「ぼっち・ざ・ろっく!」作中バンドである結束バンドの「ギターと孤独と蒼い惑星」です。 ...
データ分析未経験の新卒エンジニアがレコメンド機能を実装した話
投稿者:早坂啓太この記事はレコチョク Advent Calendar 2021の24日目の記事となります。
こんにちは、株式会社レコチョク入社1年目の早坂と申します。
本記事では、今年のレコチョク新卒エンジニア研修の一環で行われた、サービスの企画から開発までを行うハンズオンの中で、私が実装したレコメンド機能についてご紹介します。
まずは新人なので、自己紹介をします。
自己紹介趣味カメラビートボックス(ボイパ)
カラオケ
音楽鑑賞 ...
異常検知手法を用いたバズり検知
投稿者:山田航大この記事はレコチョク Advent Calendar 2021 の 13 日目の記事となります。
今回は、異常検知手法を用いて、「アーティストのバズり検知ロジック」を作る過程を記事にしたいと思います。
はじめに現在、 TikTok やサブスクサービス等で楽曲がバズり、一気にスターダムまで駆け上がる例が出てきています。
バズりを素早く検知することができれば、次の施策に向けて予算を確保したり、企画を立てたり、素早く動き出すことができます。
Pythonのアンパックとタプル
投稿者:海津 純平Pythonの初見殺しです。
初見殺しPython 3.7.2 (default, Feb 12 2019, 08:15:36) [Clang 10.0.0 (clang-1000.11.45.5)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> *range(5) File "<stdin& ...cURLでCookieの維持
投稿者:海津 純平そもそもCookieを維持しなければならないAPIを使っているときに、
PythonのrequestsモジュールでCookieが維持できておらず、はまったことがはじまりでした。
Pythonのrequestsモジュールでは、Sessionを利用することでCookieを維持できます。
Cookieの維持ができているか確認するためにhttpbin.orgのAPIを使います。
今回使うAPI ...
Pythonで2つの辞書型(dict型)をマージ
投稿者:高橋克幸Pythonで次のような2つの辞書型をマージしたいケースがありました。
dict_a = { 'A': 'A', 'B': { 'C':'C', 'D':'D', & ...Lambdaのデプロイではまった話
投稿者:海津 純平LambdaでPythonの外部ライブラリPillowを含めてデプロイしようとしたときにはまった話です。
調べてみると結構でてきますが、備忘録を兼ねて。
Macのターミナル上でpipを使いPillowをインストールし、zipで圧縮してデプロイパッケージ作成、デプロイしてテストを行うと
失敗してしまいました。
調べてみると、Pillowはインストール時にOSに合わせてビルドするそう。
Lamb ...
Pythonで時間を止める方法
投稿者:高橋克幸Pythonで時間を止める方法を習得したので、紹介です。
freezegunというモジュールを利用することができます。
以下のように記載すると、関数内で detetime.detetime が返す日時を date に固定できます。
Lambda Python の共通処理プラグイン化
投稿者:高橋克幸Lambdaで共通処理の続きです。
デコレーターで共通処理が行えるようになったので、共通処理をプラグイン化しました。
これで、デコレーターに プラグイン情報(クラス情報)を定義することで既存のコードを変更せずに、処理を追加できるようになりました。
デコレーターの実装
from common.plugin import Pluginplugins = [ {   ...