An opinionated guide to the best Python frameworks, libraries, tools, and resources. Maintained by @vinta and @JinyangWang27.
こんにちは。本日3月13日を最終出社としてアマゾンウェブサービスジャパン合同会社を退職しました。 ※業務連絡: 私の退職に伴ってAWSにおけるデベロッパーアドボケイトのポジションがオープンになると思います。ご興味がある方はヘッドカウントを持っている(元)上司につなぎますので、お気軽にご連絡ください。コミュニティが好きで技術が好きな人にはとても楽しいポジションだと思います! 2024年11月入社なので、1年半弱の在籍でした。転職から半年ちょっと様々なことが重なっていたため、転職直後から2025年7月くらいまでは半分くらい記憶がありません。入社直後にre:Invent 2024のためのさまざまなSlackチャンネルに入れられて、オンボーディング中でまだ会社のクレジットカードもない状況で、いきなりラスベガス行きの出張の手配をするところから始まって慌ただしかったことを覚えています。コミュニティマネ
これらのアノテーションは実行時に普通の __annotations__ 属性として参照できる一方で、 実行時には型チェックを行いません 。その代わり、この提案は独立したオフライン型チェッカーの存在を仮定しています。ユーザーはそのような型チェッカーを使って自主的にソースコードを検査できます。基本的にこういった型チェッカーは非常に強力なリンター (linter) として機能します。(もちろん似たようなチェッカーを使って個々のユーザー向けに契約による設計 (Design By Contract) の強制や JIT 最適化を実行時に行うこともできるはずですが、そういったツールはまだ実用レベルにはなっていません。) この提案は mypy [mypy] に強く触発されています。例えば、"整数型のシーケンス" の型は Sequence[int] のように記述します。角括弧を使うことで言語に新しい構文を追
Curriculum Vitaeと呼ぶには何かが欠けている気がするが気にしない。 各種アカウント Twitter 何だかんだ学生時代から続けている。ある意味20代の歴史である。 Mastodon 流行りだしたので作って放置していたが、一応生きている。 misskey.io にわかに流行りだしていたので作ってみた。 Bluesky 招待制ではなくなったので、とりあえず作る。 連絡方法 TwitterのDMはだれでも送信できるように設定してある。ただし、スパム扱いされた場合は通知が来ないので、気づかない可能性もある。 BlueskyのDMはだれでも送信できるように設定してある。 Mastodon、misskey.ioはほとんど見ていないため、気づかない可能性が非常に高い。 よって、TwitterまたはBlueskyでコンタクトを取り、適宜、適切な手段に移行する、となる。 翻訳 『Python
非同期ジェネレータ 現在のPythonでは、ジェネレータを使って、とてもお手軽にイテレータを作成できる。例えば、奇数列を生成するジェネレータは、次のように書ける。 def odds(): i = 1 while True: yield i i += 2 しかし、ジェネレータが存在しなかった頃のPythonでは、わざわざ__iter__メソッドなどの特殊メソッドを実装したクラスを定義し、 class Odds: def __init__(self): self._cur = 1 def __iter__(self): return self def next(self): ret = self._cur self._cur += 2 return ret などと書かなければならなかった。 Python3.5で導入された コルーチン は、イテレータと同様な概念として 非同期イテレータ をサポー
クラス定義のカスタマイズ これまで、Pythonのクラス定義をカスタマイズする手段として、メタクラスが使われてきた。しかし、メタクラスを利用したカスタマイズは、Pythonのオブジェクトモデルや型システムの知識が必要で実装が難しく、また複数のメタクラスを同時に使用するのが難しい、などの問題点があった。そこで、PEP 487 -- Simpler customisation of class creation では、メタクラスを使わずにクラスをカスタマイズする手段を提供している init_subclass() メソッド クラスのサブクラスが作成されたときに呼び出され、引数として、派生クラスと、クラス定義の引数が渡される。__init_subclass__()メソッドは、自動的にクラスメソッドとなる。 class Spam: def __init_subclass__(cls, **kwarg
ファイルシステムパス プロトコル pathlib はPython3.4で導入されたが、pathlibで表現されるファイルパスは、 open() やos.path.* などの、既存のファイル操作関連関数では使用できないため、あまり便利には使えていなかった。 Python3.6からは、pathlib.Path などのファイルパスをあらわすオブジェクトに特殊メソッド __fspath__() が実装された。ファイル名を引数として受け取る、open() などの関数は、__fspath__()を呼び出して、ファイルパスを取得するように変更された。 >>> import pathlib >>> spam = pathlib.Path('./spam') >>> spam.__fspath__() 'spam' >>> open(spam, 'w') <_io.TextIOWrapper name='s
f文字列 これまで、Pythonで文字列に変数を埋め込む方式にはいくつかあったが、ついに式を文字列中に直接記述できるようになった。 (PEP 498 -- Literal String Interpolation) 式を埋め込んだ文字列はf文字列(formatted string:フォーマット済み文字列)と呼ばれ、raw文字列の r と同じように、先頭に f を指定する f文字列は通常の文字列と同じようも使えるが、文字列内の {} で囲まれた部分は、Pythonの式として評価し、その結果を文字列として出力する。 >>> f'hello' # 式を含まないf文字列 'hello' >>> f'100+1={100+1}' # 式を評価 '100+1=101' >>> order={'spam':100, 'ham':200} >>> f'spam: {order["spam"]}, ham:
変数アノテーション PEP 484 -- Type Hintsで導入された型ヒントが、モジュールのグローバル変数や、クラスのインスタンス変数などにも指定できるようになった。PEP 526 -- Syntax for Variable Annotations 変数の型アノテーションは、mypy などではコメントとして指定するようになっていたが、Python3.6以降では、正式なPythonの構文で指定できるようになった。 >>> SPAM:str = 'global spam string' # SPAM は str型グローバル変数 >>> class Ham: ... EGG: int = 100 # EGGはint型クラス変数 この例では、代入文で変数を作成するのと同時に型を宣言しているが、変数の値を指定せずに、変数の型だけでも宣言できる。この場合は代入文では使用せずに、 >>> SPA
Compile-time type checking Static typing makes it easier to find bugs with less debugging. Easier maintenance Type declarations act as machine-checked documentation. Static typing makes your code easier to understand and easier to modify without introducing bugs. Grow your programs from dynamic to static typing You can develop programs with dynamic typing and add static typing after your code has
Herokuで30秒以上かかるプログラム(メール送信、Push通知の送信 etc…)を実行させる場合はプログラムをバックグラウンドで実行させる必要があるのですが、APSchedulerというライブラリを使うと簡単に実装ができたので自分のためにメモしておきます。 Install まずは、APSchedulerをインストールします。 $ pip install apscheduler $ pip freeze > requirements.txt Coding 次にclock.pyを作成します。 例として平日はdo_workメソッドを呼び出して、休日はdo_restメソッドを日本時間の9時30分に定期的に実行するプログラムを書いてみます。 clock.py from apscheduler.schedulers.blocking import BlockingScheduler import
Pythonのイテレータ(iterator)とジェネレータ(generator)についてまとめてみます。 (追記2018.12.25: Python3の文法に全面的に置き換えました) イテレータ: 要素を反復して取り出すことのできるインタフェース ジェネレータ: イテレータの一種であり、1要素を取り出そうとする度に処理を行い、要素をジェネレートするタイプのもの。Pythonではyield文を使った実装を指すことが多いと思われる Python組み込みのコレクション(list, tuple, set, dictなど)はどれもイテレーション可能ですが、組み込みのコレクションを使った繰り返し処理ではあらかじめコレクションに値を入れておく必要があるため、以下のようなケースではイテレータやジェネレータを自分で実装したいというケースがあると思います。 無限に繰り返すイテレーション 要素すべてをあらかじめ
Free software, open standards, and web services for interactive computing across all programming languages JupyterLab: A Next-Generation Notebook Interface JupyterLab is the latest web-based interactive development environment for notebooks, code, and data. Its flexible interface allows users to configure and arrange workflows in data science, scientific computing, computational journalism, and ma
# !/usr/bin/env python # -*- coding: utf-8 -*- import time import os from watchdog.events import FileSystemEventHandler from watchdog.observers import Observer BASEDIR = os.path.abspath(os.path.dirname(__file__)) def getext(filename): return os.path.splitext(filename)[-1].lower() class ChangeHandler(FileSystemEventHandler): def on_created(self, event): if event.is_directory: return if getext(event
Pythonのモジュールの基本を押さえる:特集:Visual Studioで始めるPythonプログラミング(1/3 ページ) 本稿ではモジュールの作成、インポート、グローバル変数__name__、コマンドラインからのモジュールの実行など、Pythonのモジュールの基礎を取り上げる。 連載目次 前回はPythonのクラスについて解説した。例外処理など、まだ説明していない要素も多いが、基本的な構文要素や関数、クラスなどについては前回までにおおよその紹介が終わったので、今回はこれらをコードの再利用を促すためのキーパーツである「モジュール」について見ていこう。 モジュールとは Pythonにおける「モジュール」とは「独立したファイルに収められたPythonスクリプト」のことだ。そういうわけで、前回まではPython Tools for Visual Studio(以下、PTVS)が提供する[In
view-source:https://munchery.com/menus/sf/#/0/dinnerNotice that the data is wrapped by a <script> tag? That data is in JSON format and is rendered to HTML upon loading. We have the option to parse the JSON data, but let’s say we want to extract based on what we see or generated. Let’s write the steps on how we’d do that: Go to www.munchery.com. (be sure to check their robots.txt and terms before p
概要 自分の復習用のメモですが、誰かの役に立つかも・・・と思い、投稿しました。 読者はPythonプログラミング初学者を想定しております。 Pythonの環境構築は、古い情報も多く、ネットで調べると色々な情報が混在しているため、 初学者にとっては最初に躓く壁です。 Python環境構築あるある Pythonの2系と3系の違いがわからない。どちらをいれるべき? 環境構築に関してググると、"virtualenv"・"pyenv"・"easyinstall"・"setuptools"など、色々検索に引っかかるがどれを使えばいい?時代遅れはどれ? 結局、初学者でも簡単に導入でき、Pythonのバージョンアップにも楽に対応できる拡張性・汎用性のある方法は? Python環境構築するにあたり 他の記事を見て、混乱しないよう簡潔にオススメの環境構築の結論を述べます。 今後のことを考え、Python3の開
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く