python / python/cpython

os.path.relpath() assumes '//' root is equivalent to '/'

Abierto
#92,737 5 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

stdlib type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
36k
Merge medio
1 d 9 h
PR fusionados (30 d)
558

Descripción

Bug report

pathlib's Path.relative_to() and os.path.relpath(), the two have different behavior: On Linux os.path.relpath() understands double-slash in path is same as single slash, but Path.relative_to() does not.

For example,

import os
os.path.relpath('//foo/bar', '/foo')                 # results 'bar'

from pathlib import Path
pathlib.PosixPath('//foo/bar').relative_to('/foo')   # raises ValueError

pytest issue https://github.com/pytest-dev/pytest/issues/9894 relates to this.

Your environment

  • CPython versions tested on: 3.9.2
  • Operating system and architecture: Debian Bullseye
Linked PRs
  • gh-103798

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza comparando os.path.relpath() y pathlib.PosixPath.relative_to() para el ejemplo de //foo/bar frente a /foo; después, revisa pytest issue #9894 y el PR enlazado gh-103798. Se considera terminado cuando el comportamiento previsto se haya resuelto de forma coherente y el ejemplo esté cubierto por pruebas relevantes.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
operating-systems
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.