Add `name` parameter to a `SharedMemoryManager.ShareableList` method

オープン 初心者向け
#96,215 コメント 0 件 リアクション 2 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
60/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
python

調査の方向性

Lib/multiprocessing/managers.py のファイル末尾近くにある SharedMemoryManager.ShareableList メソッドから始め、shared_memory.ShareableList の name パラメーターと比較します。完了条件は、manager のメソッドが name を受け取って転送し、追跡とクリーンアップの動作を維持することです。

索引モデルが issue の本文から書いたものです。

説明

stdlib type-feature

Feature or enhancement

I would like to pass a name for shared list from SharedMemoryManager but I apparently cannot do this.

with SharedMemoryManager() as smm:
    my_shared_list = smm.ShareableList(sequence=range(10),name="special name")
    pass

What I get:

my_shared_list = smm.ShareableList(sequence=range(10),name="special name")
TypeError: SharedMemoryManager.ShareableList() got an unexpected keyword argument 'name'

Possible solution

Just change method ShareableList in the bottom of this source file to following:

        def ShareableList(self, sequence, name=None):
            """Returns a new ShareableList instance populated with the values
            from the input sequence, to be tracked by the manager."""
            with self._Client(self._address, authkey=self._authkey) as conn:
                sl = shared_memory.ShareableList(sequence=sequence,name=name)
                try:
                    dispatch(conn, None, 'track_segment', (sl.shm.name,))
                except BaseException as e:
                    sl.shm.unlink()
                    raise e
            return sl

I wonder

Why this feature is not implemented from the very beggining?

主要言語
Python
スター
77.2k
フォーク
36k
平均マージ
1日 9時間
マージ済み PR(30日)
558

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

python/cpython のほかの issue

python/cpython の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。