Comments (4)
Edit: I would be happy and try to contribute a basic SMB implementation, is there any guide or example I can follow?
Sorry, just saw your comment. Thank you for offering to contribute! You would have to create tests in upath/tests/implementations/test_smb.py which requires you to write a fixture that sets up the smb filesystem via a docker container. There is code in the fsspec/filesystem_spec repository that does this. You would then put your minimal implementation in upath/implementations/smb.py and add an entry pointing at your new class into upath/registry.py
This should allow you to run the test suite against your class and make adjustments for various edge cases.
Cheers,
Andreas 😊
from universal_pathlib.
I appear I can fix this behaviour by implementing a very simple subclass that returns an absolute path:
class SMBPath(UPath):
@property
def path(self):
return "/" + super().path
The docs from ffspec mention that:
Note: if using this with the open or open_files, with full URLs, there is no way to tell if a path is relative, so all paths are assumed to be absolute.
Which sounds like interpreting every path as absolute should be the default behaviour. Should I maybe file a bug with fsspec instead?
from universal_pathlib.
The fact that it worked with a previous version of UPath suggests that it's a UPath bug which got introduced during the refactor. Ideally we would add a SMBPath implementation to UPath to be able to give more guarantees for all the path methods.
I'm on holiday until the end of May and will then try to find some time to work on setting this up. We would need to implement an SMBPath subclass and the test fixtures to run the base test suite against it.
from universal_pathlib.
Hi, we have the same problem with an sftp-based filesystem:
path = UPath("ssh://myserver.mydomain.com/home/user1/Documents/hello.txt")
print(path.path)
'home/user1/Documents/hello.txt'
ie the first /
is missing.
from universal_pathlib.
Related Issues (20)
- Passing abfs as fs parameter to UPath fails. HOT 3
- SSH / SFTP Implementations HOT 5
- s3fs kwarg unexpected keyword argument in `AioSession` HOT 2
- Static analysis of types broken in `>=0.2.0` HOT 1
- Relative paths don't work when `_protocol_dispatch = False`. HOT 4
- Behaviour of joinpath when the second path has protocol HOT 6
- `relative_to` doesn't work for FilePath HOT 2
- `S3Path.touch` with `exist_ok=True` on existing file raises an error HOT 3
- `pip install -e .` under Python 3.12.3, pip 24.0 fails because `description` is not dynamic HOT 8
- Support for huggingface filesystem `hf` protocol
- Test against 3.13
- Prepare for release v0.3.0
- `path.iterdir()` yields `path` itself as the first item (with S3) HOT 6
- Efficient copying via shutil HOT 5
- Investigate python3.12 http fs path parsing errors HOT 3
- rename (move) file over different file system HOT 3
- Cannot use UPath on S3 with pandas: PermissionError/Access Denied HOT 3
- Test regressions with Python 3.13 HOT 1
- samefile() is not implemented HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from universal_pathlib.