python / python/cpython

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

Aberta Para iniciantes
#96,215 0 comentários 2 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

stdlib type-feature
Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Merge médio
1d 9h
PRs com merge (30d)
558

Descrição

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?

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece em Lib/multiprocessing/managers.py, no método SharedMemoryManager.ShareableList próximo ao final do arquivo, e compare-o com o parâmetro name de shared_memory.ShareableList. A tarefa estará concluída quando o método do manager aceitar e encaminhar name, mantendo seu comportamento de rastreamento e limpeza.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
operating-systems
Tipo de issue
Funcionalidade
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
60/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.