タグ

Pythonに関するodmishienのブックマーク (10)

  • Python3.7以上のデータ格納はdataclassを活用しよう - Qiita

    はじめに Pythonでデータを格納する際に辞書や普通のクラスを使っていませんか?Python3.7からはデータ格納に便利なdataclassデコレータが用意されています。 この記事では公式ドキュメントやPEP557の説明ではいまいち掴めない、どういった時に便利で、なぜ使うべきなのかという点に触れつつ、使い方を説明していきます。 なお、以前のバージョンではPython3.6に限りpip install dataclassesによって使えるようになります。執筆時点ではGoogle Colaboratoryの環境がPython3.6.9ですが、デフォルトでdataclassesがインストールされています。 想定読者 dataclassの存在を知ったが何なのかよく分からない人 可読性高くデータを扱いたい人 「前はこんな機能なかったし、自分は別に使わなくて良いよ・・・」と思っている人 よく見かける

    Python3.7以上のデータ格納はdataclassを活用しよう - Qiita
  • 「伸び悩んでいる3年目Webエンジニアのための、Python Webアプリケーション自作入門」を更新しました

    を更新しました チャプター: 「まともなWebサーバー」へ進化する を更新しました。 続きを読みたい方は、ぜひBookの「いいね」か「筆者フォロー」をお願いします ;-) 以下、書籍の内容の抜粋です。 まともなWebサーバーになるためには? 章では、既に皆さんに作っていただいた 「へなちょこWebサーバー」を、「まともなWebサーバー」へ進化させていきます。 そこで、皆さんに作っていただいたWebサーバーが具体的何がへなちょこだったのか整理しておきましょう。 そもそもWebサーバーとは、 HTTPのルールにしたがって通信を行うサーバー のことでした。 逆に言うと、いっぱしのWebサーバーになるためには、 HTTPのルールに従ってレスポンスを返せるサーバー でなくてはありません。 しかし、皆さんのへなちょこWebサーバーは、HTTPのルールにしっかりと従っているとは言えません。 具体的に

    「伸び悩んでいる3年目Webエンジニアのための、Python Webアプリケーション自作入門」を更新しました
  • Python 3.9の新機能 - python.jp

    Python 3.9 のリリース予定日である2020年10月05日が間近に迫ってきました。 https://docs.python.org/3.9/whatsnew/3.9.html から、Python3.9の主要な新機能を紹介します。 辞書のマージ演算子¶2つの辞書オブジェクトを| 演算子で併合して、 一つの新しい辞書オブジェクトを作成できるようになりました。 PEP 584 -- Add Union Operators To dict 2つの辞書オブジェクトの和から、新しい辞書オブジェクトを作成します。

    Python 3.9の新機能 - python.jp
    odmishien
    odmishien 2020/10/28
    “Python3.9では zoneinfo モジュールが追加され、標準ライブラリだけでタイムゾーン名を利用してタイムゾーンを指定できるようになりました。”
  • Flaskユーザー向けFastAPIの使い方まとめ

    はじめに 記事は、「FastAPI for Flask Users」を翻訳したものになります。 この記事では、FlaskとFastAPIを比較しながらわかりやすく解説した記事なので、許可をとって翻訳することにしました。 以下、文になります。 記事文 Flaskは機械学習プロジェクトでのAPI開発の事実上の選択肢となっていますが、 FastAPIと呼ばれる新しいフレームワークがあり、コミュニティーから多くの支持を得ています。 最近、Flaskで作成されたプロジェクトを移行することになり、FastAPIを試してみることにしました。 FastAPIはFlaskライクな文法で記述されているので、移し替えが非常に簡単で、わずか数時間で起動して実行できました。 自動データ検証、ドキュメント生成、およびpydanticスキーマやpythonタイピングなどのベストプラクティスの追加により、これは

    Flaskユーザー向けFastAPIの使い方まとめ
  • Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech

    こんにちは、けんにぃです。ナビタイムジャパンで公共交通の時刻表を使ったサービス開発やリリースフローの改善を担当しています。 今回は Python 製の Web フレームワークとして FastAPI を導入した話をしようと思います。 Python 製の Web フレームワークPython には代表的な Web フレームワークが 2 つあります。 ・Django: フルスタックフレームワーク ・Flask: マイクロフレームワーク Django は大規模開発向け、Flask は小中規模開発向けと言われますが、今回開発したサーバは小規模なサーバだったため、以前は Flask で開発していました。 しかし、どちらのフレームワークを使う場合でも下記のような機能を使おうとするとプラグインやサードパーティの助けを借りる必要があります。 ・OpenAPI ・JSON Schema ・GraphQL ・We

    Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech
  • Python3.7で導入されたdataclass入門 - MyEnigma

    Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ) 目次 目次 はじめに 通常のclassとdataclassの比較 dataclassの良いところ データを格納する箱であることを明確にできる。 クラス定義を短くかける 型情報を書くことでデータ構造が見やすくなる。 Printしたときに、そのままオブジェクトの中身を表示できる。 asdict関数でdictに変換できる。(Dictから簡単にJSONにも変換できる) Dict(JSON)からdataclassを作ることもできる Frozen引数を使うことで、簡単にイミュータブルにもできる。 データが作られたときに、自動後処理機能を追加することができる。 dataclassの残念なところ コレクションの初期化 参考資料 MyEnigma Supporters はじめに C++ユーザやJ

    Python3.7で導入されたdataclass入門 - MyEnigma
  • Poetry: Python の依存関係管理とパッケージングを支援するツール

    Python には依存関係を管理するツールがたくさんあります。 Python歴史あるプログラミング言語なので仕方ないですが、情報が多すぎて特に初心者は混乱してしまいます。 結局の所、pip、virtualenv (venv) を使えば十分な場合が多いので、まずはこれらの使い方を学習しましょう。 近頃は Pipenv という依存関係管理ツールが登場して人気です。 日語でも Pipenv の情報をよく見かけるようになりました。 さらに、最近になって Poetry という依存関係管理とパッケージングを支援するツールが登場しました。 意外と Poetry に関する日語の情報がないようなので、簡単に紹介してみようと思います。 各ツールの機能をまとめた表 が公開されていたので参考にしてください。 Pipenv 2017 年 1 月に Pipenv というツールが登場しました。 Pipenv に

  • Poetryを使ったPythonパッケージ開発からPyPI公開まで - PYTHONIC BOOM BOOM HEAD

    この記事は BeProud Advent Calender 2018 の20日目の記事です。そのためいつもよりボリュームたっぷり、文体も丁寧にお送りします。 adventar.org 記事ではPoetryを使ってパッケージ開発→PyPIへ登録するまでの流れを紹介します。 github.com プロジェクト作成からPyPI登録までわずか30秒 Poetry について 基的な使い方 Poetry と Pipenv Pipenvは確かに便利だけど Pipenv から Poetry に乗り換える Poetry と Pyenv PEP517 と PEP518 Poetryの各種設定 venvの作成先をプロジェクト内にしたい TestPyPIへアップロードできるようにする TestPyPIのユーザー名とパスワードを設定する ここまでの設定 プロジェクトを用意する 新規作成 標準的なレイアウト sr

    Poetryを使ったPythonパッケージ開発からPyPI公開まで - PYTHONIC BOOM BOOM HEAD
  • Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ

    砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Python歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ

    Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
  • 2019年に向けてPythonのモダンな開発環境について考える - 朝日ネット 技術者ブログ

    はじめに 開発部の tasaki です。 6 月の記事(「Pythonのパッケージングのベストプラクティスについて考える2018」)では setuptools, pip, venv を使ったパッケージングのフローについて考えました。 techblog.asahi-net.co.jp 今回はモダンな開発用ツールチェーンを持つ他の言語(具体的には JavaScript (Node.js), Go, Rust あたりを意識)と似たような開発フローを Python において構築するにはどうすればよいかということを考えていきます。 はじめに 対象バージョン 備考 TL;DR (結論) pip と virtualenv の統合 (Pipenv) 概要 使い方 インストール Pipenv プロジェクトの新規作成 setup.py との併用 静的な型の検査 (mypy) 概要 設定例 使い方 Lintin

    2019年に向けてPythonのモダンな開発環境について考える - 朝日ネット 技術者ブログ
  • 1