タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとProgrammingとpythonに関するhajimepgのブックマーク (38)

  • 2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog

    こんにちは、研究開発部 Data Analysisグループの笛木です。 4/26(水)〜 4/28(金)で研究開発部内の技術研修を行いました。 こちらのブログの続きでテストコードについての研修資料を一部公開します。研修では新卒2年目の私が1年間で部内のコードなどから学んだ情報を共有しました。至らない部分もあるかもしれませんが、ご参考になれば幸いです。 こちらの研修で使用したGitHubのコードリンクは以下です。適宜、ご参照ください。 github.com 目次 目次 はじめに この研修の目的 研修スコープ外 テストコードについて テストコードの便利な点 テストコードの悪い例 テストコードに関するFAQ pytestによるテストコードの書き方 ファイル名 ディレクトリ 基編 Parametrize Fixture 異常系 Mock indirect conftest 知っておくと活用する場

    2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog
  • Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる

    Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる 概要 Pythonのテストライブラリといえばpytestが一般的です。 Python標準のuniitestとは異なり、クラスベースではなく関数ベースでテストコードを記述することが一般的ですが、fixture,conftest,parametrizeを理解すると一気に世界が変わり、テスト体験が圧倒的に向上するため、これらの実装方法を紹介します。 リポジトリ 記事の説明に使用しているサンプルのテスト実装は、以下のリポジトリです。 想定読者 PythonやGitの基的な使い方を理解している方を想定しているため、基的な用語説明は省略しています。 環境 エンジニアの利用率の高いmacOSを前提として説明していますので、その他の環境の方は随時読み替えてください。 開

    Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる
  • uv (pythonパッケージマネージャー)の使い方 詳細版

    簡易版はこちら Pythonのパッケージ管理はこれまで pip、venv、poetry などで行われてきましたが、最近 uv が注目を集めています。 稿では uv をシステム開発で使うための詳細な情報、特に、poetry、venv、pipからの移行手順を解説します。 uv公式ドキュメント uv (github) 1. uvの概要 1.1 uvとは? uvは 高速な動作、クロスプラットフォーム対応のロックファイル、ツール管理の専用インターフェースを提供することで、快適な開発環境を実現しています。 1.2 uvのアーキテクチャ uvはRustで実装されており、高いパフォーマンスとメモリ安全性を誇ります。Rustの並行処理能力を活用し、依存関係解決を高速化しています。また、効率的なキャッシュ機構を備えており、ダウンロードしたパッケージ、ビルドされたwheelファイル、ソースコードなどをキャッシ

    uv (pythonパッケージマネージャー)の使い方 詳細版
  • Python 3.8以降(~3.11)の型ヒント革命:DataclassとPydanticの徹底比較

    はじめに 📘 この記事は ラクスパートナーズ Advent Calendar 2023 の1日目の記事になります!! 社の ラクス Advent Calendar 2023 の7日目にも参加予定なのでそちらもよろしくお願い致します🥳 長い間 Python3.7 環境のプロジェクトに携わっていましたが、この度 Python3.10~ 環境のプロジェクトに携わることになりました。 そこでこの機会に python3.8 以降の最新の型ヒントやコード品質向上のテクニックについて、改めて情報をキャッチアップしながらまとめていきたいと思います。 この記事の対象者 🎯 Python の型ヒントについて学び直したい方 Python3.8 以降の型ヒントについて理解を深めたい方 python のドメインモデルクラスについて理解を深めたい方 型ヒントを使用したことがないが、興味がある方 なぜ型ヒントを

    Python 3.8以降(~3.11)の型ヒント革命:DataclassとPydanticの徹底比較
  • Pythonパッケージ管理 [uv] 完全入門

    uvは超高速なPythonパッケージマネージャ 仮想環境作成・パッケージ管理・Pythonバージョン管理を一元化 Rust製で10〜100倍の速度向上

    Pythonパッケージ管理 [uv] 完全入門
  • 『Python Distilled―プログラミング言語Pythonのエッセンス』を翻訳しました - 何かを書き留める何か

    Pythonを、嗜む 2023年10月14日にオライリージャパンから『Python Distilled』の邦訳である 『Python Distilled―プログラミング言語Pythonのエッセンス』が発売される。 www.oreilly.co.jp この度、翻訳を務めた。 原著の存在を知ったのは2022年4月頃、翻訳の話が上がったのは2022年6月頃、翻訳作業は2023年1月から9月の約9ヶ月であった。 『ロバストPython』の監訳作業は2022年5月から2023年2月なので、精神的には並行して、実際には連続しての作業であった。 何が書いてあるか 大雑把に言えば、C言語におけるK&Rのようなである。 つまり、特定のプログラミング言語の高度な入門書という位置づけである。 目次を読むとわかる通り、プログラミング言語Pythonから基となる、重要な要素を蒸留した(Distilled)であ

    『Python Distilled―プログラミング言語Pythonのエッセンス』を翻訳しました - 何かを書き留める何か
  • Python Distilledは幅広い人にPythonの基礎を叩き込む本 | フューチャー技術ブログ

    秋のブログ週間2023、3週目・13目です。 Python Distilledというがオライリーから出版されました。作者のDave Beazleyはかなり昔からPythonを使い込んでいる人ですので、このには信頼しかない、と思い読んでみました。Daveは大学の教授をしていて、コンピュータサイエンスで表彰もされている筋金入りです。家PyConでも何度も発表されているようです。Python歴は27年でOSSとしてはC/C++をラップして他の言語で使えるようにコードを生成するSWIGはすでに20年以上の歴史がありますし、パーサージェネレータのPLYとSLY。curioというコルーチンのライブラリなどを作っています。僕は以前、SWIGのドキュメント翻訳をしてCマガジンに特集記事を書かせていただいたこともあり、僕の大学時代の顔写真がSWIGのウェブサイトに公開されていたりします。 そういう世

    Python Distilledは幅広い人にPythonの基礎を叩き込む本 | フューチャー技術ブログ
  • 基礎の学び直しから実践へ。『エキスパートPythonプログラミング』翻訳者が推薦するPython本3冊 | レバテックラボ(レバテックLAB)

    TOPコラムプロフェッショナルの技術書棚基礎の学び直しから実践へ。『エキスパートPythonプログラミング』翻訳者が推薦するPython3冊 Python書籍翻訳者 清水川 貴之 株式会社ビープラウド所属。一般社団法人PyCon JP Association会計理事。 2003年にPythonを使い始め、それがオープンソースとコミュニティー活動に関わり始めるきっかけとなった。業ではソフトウェアエンジニアとして自社サービスの開発に携わり、上から下まで幅広く担当。業のかたわら、Python mini Hack-a-thonやSphinx-users.jpなどPython関連イベント運営、カンファレンスでの講演や書籍の執筆翻訳、またOSS開発を通じて技術情報を発信している。 1. 『改訂新版 最短距離でゼロからしっかり学ぶ Python入門 必修編〜プログラミングの基礎からエラー処理、テ

    基礎の学び直しから実践へ。『エキスパートPythonプログラミング』翻訳者が推薦するPython本3冊 | レバテックラボ(レバテックLAB)
  • 『現場のPython』を読んでPythonでWeb Appを作るために必要なものが大体わかった気になった - 空の箱

    書籍はこちら。 現場のPython──Webシステム開発から、機械学習データ分析まで Web+DB PRESS plus 作者:altnight,石上 晋,delhi09,鈴木 たかのり,斎藤 努技術評論社Amazon 元々WEB+DB PRESS plus で連載されていた内容をまとめた。連載期間は2020年6月〜2023年8月のものだったらしいけど、書籍化にあたって加筆されているらしい。 初版の発行は2024年9月と最近である。 このを読もうと思った経緯 仕事で少しだけPythonを使うことになったから。作るものは簡単なツールだったんだけど、それにあたって環境周りやらLinterFormatterとかは最近は何を使うといんだろう?っていうのをキャッチアップしたかった。 こればっかりはとっかかりがないことにはドキュメントを見に行くこともできないので、いい感じにまとめられてる情報を

    『現場のPython』を読んでPythonでWeb Appを作るために必要なものが大体わかった気になった - 空の箱
  • Python滅ぼす協会に入会したい

    なぜ令和にもなって動的型付け言語を使うのか シフトレフトという概念が生まれたのは二十年以上も前のはずだ。 それにもかかわらず動かしてみるまで答え合わせもできない言語で開発をするという発想自体がどうかしている。 同じ動的型付けといってもJavaScriptはブラウザという事情があるし、型の表現力に優れたTypeScriptがあるからまだよい。 しかし、Pythonはどうだ。他にいくらでも選択肢があるなかで、サーバーサイドにわざわざ選定する言語ではなかろう。 貧弱な型ヒント、しかも書いたところで大した効用もない。 使っている外部ライブラリにひとつでも型ヒントがクソなものがあれば即座に破綻する。 型というガードレールもシートベルトもなしで糞を撒き散らしながらする開発にはうんざりだ。 シンタックスもキモい 動的型付けもさることながら、シンタックスもキモい。とにかく思考を妨げる語順になっている。 m

    Python滅ぼす協会に入会したい
  • Python普及しろ協会に入会したい

    この記事はタナイ氏によるPython滅ぼす協会に入会したいを読んでから執筆したものです。 この記事の趣旨はPython滅ぼす協会に入会したいに対する反論という形をとりながら、タナイ氏により「バカの言語」と揶揄され、「使ってエンジニアを名乗るというのは」「滑稽」とまで言われたPythonの立場を再考することです。 追記 記事は「Pythonはこれだけ優れた言語だからみんな使おう!」というものではなく「言うほど酷くないと思うよ」程度のものです。 型アノテーションがあるからと言って静的型付けを軽視しているわけでもなければ、map関数をもってmapメソッドを不要だと言っているわけでもありません。 この記法は嫌い〜この記法が好き〜と表明することは個人の自由ですが、同様に「この記法は実はこういう意味があって〜」という意見があればそれを聞いた上で、物事を判断して欲しいです。もちろん、聞いても意見が変わ

    Python普及しろ協会に入会したい
  • pythonで小さなツールを作る時のtips - Qiita

    自分で小さいツールを作る時に心に留めているtipsです. 書き始めたときは「どうせ書捨てだし」と思って書き始めると意外と長い間,もしくはいろんなところで使うことになったりするので,気をつけておくと後から楽になるというような小技です.大規模なソフトウェアの開発ではまた違った流儀があると思います. メインルーチンを関数にする 関数名はなんでもいいのですが,自分は趣味で main() という名前の関数を用意し,メインルーチンは全てそこに書くようにしています. pythonの小さなサンプルコードを見たりすると関数外の部分にベタで実行コードが書かれていたりします.もちろんそれでも動くのですが,以下の2点で後々面倒になることがあります. グローバル変数だらけになり管理が追いつかなくなる:「どうせ小さなスクリプトだし」ではじめると最初は見通しが良くてもだんだんどこでどの変数名を使っているか分からなくなっ

    pythonで小さなツールを作る時のtips - Qiita
  • Scrapy + Scrapy Cloudで快適Pythonクロール+スクレイピングライフを送る - Gunosyデータ分析ブログ

    はじめに こんにちは、データ分析部の久保 (@beatinaniwa) です。 今日は義務教育で教えても良いんじゃないかとよく思うWebクロールとスクレイピングの話です。 私自身、日頃は社内に蓄積されるニュース記事データや行動ログをSQLPythonを使って取得・分析することが多いですが、Web上にある外部データを使って分析に役立てたいというシーンはままあります。 単独のページをガリガリスクレイピングしたいときなどは、下の1年半ぐらい前の会社アドベントカレンダーに書いたような方法でやっていけば良いんですが、いくつもの階層にわかれたニュースポータルサイトやグルメポータルサイトを効率よくクロール+スクレイピングするためには、それに適したツールを使うのがすごく便利です。 qiita.com そこでPythonスクレイピングフレームワークScrapyの登場です。 Scrapy | A Fast

    Scrapy + Scrapy Cloudで快適Pythonクロール+スクレイピングライフを送る - Gunosyデータ分析ブログ
  • Python 2 と型ヒント (Type Hints) – ymyzk’s blog

    この記事では PEP 484 — Type Hints の更新によって提案されている Python 2 における型ヒントについての情報をまとめます. 型ヒントとは Python 3.5 から導入された型ヒント (Type Hints) はソースコードに型注釈 (型アノテーション) を記述する標準的な方法を定義するものです. この記法は mypy で利用されていたものの影響を強く受けており, Python 3.0 で導入された関数アノテーションを利用します. 型ヒントは次のように記述します: def add(x: int, y: int) -> int: """docstring here""" return x + y Python 3.5 は様々な型を記述するために typing モジュールが追加されました. この typing モジュールは Python 3.5 以前でもバックポートが

    Python 2 と型ヒント (Type Hints) – ymyzk’s blog
  • 私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD

    最近、このモジュールをに紹介したところ、そのシンプルさと実用性に驚いていました。 joblib joblibの存在は以前から知ってはいたものの、実際のところはよく理解しておらず、いろいろな機能を寄せ集めたようなモジュールだと思っていました。まあ、その印象は今もあまり変わりませんが、実は非常に便利なモジュールだったのです。私は Flowminder の同僚から再度joblibを勧められて、このモジュールをデータ分析用のコードに幅広く使用しました。では、その機能について紹介しましょう。joblibは大きく分けて、 キャッシング 、 並列化 、 永続化 (データの保存と読み込み)の3つの機能から成ります。実を言うと、私はまだ並列プログラミングの機能は使ったことがないのですが、あとの2つの機能は頻繁に使ってきました。 キャッシング機能とは、シンプルなデコレータを使って、関数を簡単に”メモ化”する

    私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD
  • Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc) | yunabe.jp

    Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc) Python のパッケージ管理関係の情報がオフィシャルには整理されてなく、 またパッケージ管理まわりででてくるキーワードもいくつもあって分かり難いので完結にまとめてみました。 このドキュメント自体は少し長いですが、結論としては2015年1月時点では 原則 pip を使ってパッケージの管理を行う setuptools も広く使われているので入れておくとよい。そもそも pip のインストール時に自動的ににインストールされる distribute は 2013年に setuptools にマージされたので不要 という方針でよいと思います。 ただ少し古い情報ソースやパッケージのドキュメントを読んでいると distribute の利用が勧められていたり、 site-packages, e

  • py.testのおすすめプラグイン - WonderPlanet DEVELOPER BLOG

    サーバーエンジニアの原です。 今回は、Python製テスティングフレームワークpy.testの数あるプラグインのうち、おすすめプラグインをご紹介します。 Python 3.4、pytest 2.7.0を前提とします。 pytest-flakes pytest-flakesは、Pythonの文法/コードスタイルチェッカーであるpyflakesをテスト時に実行できるようになるプラグインです。 例えばこのような(全く役に立たない)テストコードがあったとします。 # -*- coding: utf-8 -*- def test(): a = 5 assert 1+2 == 3 これを--flakesオプションを付けてテストを実行すると、未使用の変数があるため、テストが失敗します。 $ py.test --flakes ===================================== te

    py.testのおすすめプラグイン - WonderPlanet DEVELOPER BLOG
  • Pythonスクリプトのパフォーマンス計測ガイド | Yakst

    Pythonスクリプトの速度を計測し、そのボトルネックを探る。さらに、メモリ使用量、メモリリークの原因特定までの調査方法を解説する。 あなたが書いたすべてのPythonプログラムで厳密なパフォーマンス計測が必要になるというわけではないにせよ、その時が来たら、役に立ってくれる様々な種類のツールがPythonのエコシステムにはあるのだということを知っておけば安心できるだろう。 プログラムのパフォーマンスを計測することは、すなわち以下の4つの基的な質問に答えることだと要約できる。 どのくらい高速に実行できるか? スピードのボトルネックはどこか? どのくらいのメモリを使うか? メモリリークしているのはどこか? これから、いくつかの素晴らしいツールを使ってこれらの質問に答えていくための詳細を見ていこう。 大ざっぱな実行時間 素早くざっくりとコードの実行時間を計るのに、古き良きUNIXのユーティリテ

    Pythonスクリプトのパフォーマンス計測ガイド | Yakst
  • PythonとかScrapyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - orangain flavor

    2016-12-09追記 「Pythonクローリング&スクレイピング」というを書きました! Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド- 作者: 加藤耕太出版社/メーカー: 技術評論社発売日: 2016/12/16メディア: 大型この商品を含むブログを見る 2015年6月21日 追記: この記事のクローラーは動かなくなっているので、Scrapy 1.0について書いた新しい記事を参照してください。 2014年1月5日 16:10更新: デメリットを修正しました。 以下の記事が話題になっていたので、乗っかってPythonの話を書いてみたいと思います。 Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ 複数並行可能なRubyのクローラー、「cosmicrawler」を試してみた - プログラマにな

    PythonとかScrapyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - orangain flavor
  • Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web

    はじめに 今までテストを書くどころかデバッガを使ったことがなかったのですが、id:Kesinさんの↓の記事を読んで、このままではマズイと思ったので勉強しました。 研究のプログラミングにおける悲劇を無くすためのGitとテスト デバッガ Pythonには標準でpdbというデバッガが付いてるらしい。 pdbPython デバッガ Pythonのpdbモジュールでデバッグする こちらによると、 使い方はいろいろあるみたいだけど、とりあえず set_trace は便利なのですぐにでも使ってみるべき。pdb.set_trace() でデバッグ用の対話シェルが実行される。 とのこと。他のサイトでもプログラムの気になる所にpdb.set_trace()を埋め込んで使っていました。 import pdb pdb.set_trace() 使い方 PyCon JP 2012 hands-on セッション/

    Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web