Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
200 lines (130 sloc) 10.1 KB

PEPの紹介

2019-08-18

本資料は、 PyLadies Tokyo Meetup #44 夏休み! PEP自由研究発表会 の資料です。

お前誰よ

大村 亀子( @okusama27

  • PyLadies Tokyo スタッフ
  • 普段はPython教育サービスの開発、Pythonを利用した受託開発に従事
  • 最近は投資分析の勉強中

images/cow.png

Pythonの歴史

詳しくは、 Python の歴史 を参照ください。

1989年

オランダ人の Guido van Rossum がクリスマス休暇中に暇だったので開発を開始したのがはじまり。

イギリスで大人気だったテレビ番組「空飛ぶモンティ・パイソン」(Monty Python's Flying Circus)から取って、Pythonと名付けた。

images/python-logo-master-v3-TM.png

2001年

Pythonソフトウェア財団、PSF( PythonSoftwareFoundation )が組織される。

Python関連の知的所有権を所有するために作られた非営利団体。 Pythonのリリースはすべて オープンソース です。

参照: Python公式ドキュメント: 歴史とライセンス

PEPとは

PEP はPython 拡張提案(Python Enhancement Proposal)の略語です。

Pythonについて大きな変更が行われるときは、PEPという文書が書かれて議論されます。

最初のコミットは2000年7月13日: Initial set of Python Enhancement Proposals

PEPの利用方法、書き方などの運用のプロセスも PEPとしてまとまっています。

PEPについて詳しくは、 に記載があります。

また、 PEP 0 -- Index of Python Enhancement Proposals (PEPs) を参照すると、PEPの歴史を一覧で参照できます。

PEP 1 -- PEPの目的とガイドライン

PEP 1 -- PEP Purpose and Guidelines の紹介をします。

PEPの対象者

PEPの主な対象者は、Python言語の実装者です。

PEPの種類

PEPには以下の3つの種類のドキュメントがあります。

Standards Track(標準化過程)

Pythonの新しい機能や実装について説明するドキュメント

Informational(情報)

Pythonの設計上の課題や、Pythonコミュニティに知らせる一般的なガイドラインや情報などを説明するドキュメント

Process(プロセス)

Pythonを取り巻くプロセスについて説明をしたり、プロセスや、プロセス中のイベントについて提案したりするドキュメント

images/20190817_1.png

PEPワークフロー

PEPの作成からの流れを紹介します。

Pythonの運営委員会

PEPを受け入れるか拒否するかを最終的に決めるPythonの運営委員会があります。詳しくは、 PEP13 で説明されています。

現在は以下の5人の人が投票で選ばれました。選出についての PEP8100 もあります。

  • Barry Warsaw
  • Brett Cannon
  • Carol Willing
  • Guido van Rossum
  • Nick Coghlan

Pythonの生みの親であるGuidoさんも選挙に参加しています。投票はアクティブなPythonコアの開発者が行います。

以前は、GuidoさんがBDFL(慈悲深き終身独裁者)として決めていましたが、2018年7月にBDFLから引退しました。

アイデア

Pythonの言語に関するアイデアは特定のメーリングリスト( python-ideas@python.orgpython-list@python.org)や SIG's などで議論されている。

アイデアを思いついたら、メーリングリストやSIG'sに投げて議論します。

PEPの提出

議論後、PEPを提出します。PEP作成者がコア開発者でない場合は、コア開発スポンサーを見つける必要があります。コア開発スポンサーは、PEP作成者をメンターとして支援します。

PEPの提出準備ができたら、PEPのDraftとして、GitHubのプルリクエストを作成します。PEPの書き方( PEP12 )を守って記述します。 書き方を守らないと却下されます(ちょっとした不具合はPEP編集者が直してくれる場合もあります)。

Draft(草案)

PEP編集者が承認するとPEP番号が割り当てられます。ステータスは"Draft"(草案)になります。

Accepted(受理)、Rejected(却下)

PEPができたら、コア開発者にレビューを要求できます。 最終的に運営委員会が受理か、却下を行います。 そのPEPの最終決定を行うのにふさわしい経験があるコア開発者が申し出れば、BDFLの権利を移譲したりします。

Final(確定)

承認されて、 リファレンス実装(Reference implementation) が完成し、main source code repositoryに取り込まれたら、"Final"(確定)になります。

PEPのステータスの移行可能な経路

流れはこんな感じだそうですが、違う場合もあるそうです。

images/pep_image.png

図は、 PEP1 より参照。

Deferred(延期)、Withdrawn(取り下げ)、Active(完成させることを意図していない。PEP1など)などに設定されることもあります。

PEPを読もう

新しいPythonに採用されたPEPがわかります。

例. Python3.8 の「What’s New In Python 3.8」をクリックすると追加させた機能などが見れます。

参考資料

日本人のPEPへの貢献

日本人にもPEPを作り確定した方がいらっしゃいます。

PEP8 しか読んだことがなかったので、これからはもうちょっと読んでいこうと思います。

リンク一覧

You can’t perform that action at this time.