FsspecStore fails for local URL-style windows paths
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia da FsspecStore.exists e dal percorso _info/_ls mostrato nel traceback, confrontando la sua gestione di file:///C:/dev/tmp con la chiamata fsspec funzionante e il caso diretto C:/dev/tmp. Il lavoro è completato quando i percorsi locali Windows in stile URL non diventano più C:\C:\dev\tmp ed exists restituisce il risultato previsto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi,
I noticed the following bug when working with local Windows URL-style paths:
✅works fine
import fsspec
local_path = "file:///C:/dev/tmp"
fs_fsspec = fsspec.filesystem("file")
fs_fsspec.exists(local_path)
❌ fails
from obstore.fsspec import FsspecStore
local_path = "file:///C:/dev/tmp"
fs_fsspecstore = FsspecStore("file")
fs_fsspecstore.exists(local_path)
---------------------------------------------------------------------------
GenericError Traceback (most recent call last)
Cell In[18], line 10
7 fs_fsspec.exists(local_path)
9 fs_fsspecstore = FsspecStore('file')
---> 10 fs_fsspecstore.exists(local_path)
File c:\Users\...\.venv\lib\site-packages\fsspec\asyn.py:118, in sync_wrapper.<locals>.wrapper(*args, **kwargs)
115 @functools.wraps(func)
116 def wrapper(*args, **kwargs):
117 self = obj or args[0]
--> 118 return sync(self.loop, func, *args, **kwargs)
File c:\Users\...\.venv\lib\site-packages\fsspec\asyn.py:103, in sync(loop, func, timeout, *args, **kwargs)
101 raise FSTimeoutError from return_result
102 elif isinstance(return_result, BaseException):
--> 103 raise return_result
104 else:
105 return return_result
File c:\Users\...\.venv\lib\site-packages\fsspec\asyn.py:56, in _runner(event, coro, result, timeout)
54 coro = asyncio.wait_for(coro, timeout=timeout)
55 try:
---> 56 result[0] = await coro
57 except Exception as ex:
58 result[0] = ex
File c:\Users\...\.venv\lib\site-packages\fsspec\asyn.py:695, in AsyncFileSystem._exists(self, path, **kwargs)
693 async def _exists(self, path, **kwargs):
694 try:
--> 695 await self._info(path, **kwargs)
696 return True
697 except FileNotFoundError:
File c:\Users\...\.venv\lib\site-packages\obstore\fsspec.py:520, in FsspecStore._info(self, path, **_kwargs)
515 pass
517 # Ref: https://github.com/fsspec/s3fs/blob/01b9c4b838b81375093ae1d78562edf6bdc616ea/s3fs/core.py#L1471-L1492
518 # We check to see if the path is a directory by attempting to list its
519 # contexts. If anything is found, it is indeed a directory
--> 520 out = await self._ls(path, detail=True)
521 if len(out) > 0:
522 return {
523 "name": f"{bucket}/{path_no_bucket}",
524 "type": "directory",
525 "size": 0,
526 }
File c:\Users\...\.venv\lib\site-packages\obstore\fsspec.py:555, in FsspecStore._ls(self, path, detail, **_kwargs)
552 bucket, path = self._split_path(path)
553 store = self._construct_store(bucket)
--> 555 result = await obs.list_with_delimiter_async(store, path)
556 objects = result["objects"]
557 prefs = result["common_prefixes"]
GenericError: Generic LocalFileSystem error: Unable to walk dir: IO error for operation on C:\C:\dev\tmp: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch. (os error 123)
Debug source:
Generic {
store: "LocalFileSystem",
source: UnableToWalkDir {
source: Error {
depth: 0,
inner: Io {
path: Some(
"C:\\C:\\dev\\tmp",
),
err: Os {
code: 123,
kind: InvalidFilename,
message: "Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.",
},
},
},
},
}
✅works fine
fs_fsspecstore.exists("C:/dev/tmp")
- Lingua principale
- Python
- Stelle
- 826
- Fork
- 45
- Merge medio
- 5h 44m
- PR unite (30g)
- 14
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di developmentseed/obstore
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 75/100
developmentseed/obstore#779 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 67/100
developmentseed/obstore#778 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
developmentseed/obstore#772 ·
I maintainer di solito rispondono entro 1 giorno
-
LocalStore fsspec adding extra path stuff in WindowsForse già presa @dajiaohuang l’ha presa 11 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
developmentseed/obstore#763 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
developmentseed/obstore#754 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di developmentseed/obstore
Issue simili
-
No test checks that scheduled workflows declare minimal permissions, concurrency and a timeoutApertaci enhancement testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
area/config comp/tools P2 platform/telegram type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
NousResearch/hermes-agent#145412 ·
I maintainer di solito rispondono entro 1 giorno
-
[oblt-aw][autodoc] Update docs for security org scaffolding and Docs AI menu permission changesForse già presa @github-actions l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
curriculum documentation quality
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
githubnext/gh-aw-workshop#5039 ·
I maintainer di solito rispondono entro 1 giorno
-
Community project: hosted MOSS-Image studio with a visual JSON layout builder (no ComfyUI needed)Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 65/100
OpenMOSS/MOSS-Image#27 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno