pathlib-like Path object for smb protocol
Project description
smb-path
| Version | |
| Project | |
| CI | |
| Code |
pathlib-like Path object for smb protocol
Table of Contents
About
Many tools make use of pathlib.Path internally. This is a problem if the files are located on a fileshare. smb-path provides wrapper of Path which acts accordingly but using the SMB protocol for file operations instead of the local hosts file system. Atm. smb-path focuses on pure reading of the data. The SMB protocol implementation of smbprotocol is used.
All the utility functions of Path should work for SmbPath as well (like the / operator, with_suffix, parents, etc.).
Currently the following SMB dependent functions are implemented:
glob(experimental)iterdirmkdir- NOTE: param
modehas currently no effect, it falls back to755!
- NOTE: param
open- and hence dependent funtions like
read_bytes, etc.
- and hence dependent funtions like
stat- and hence dependent functions like
lstat,is_file,is_dir,exists, etc.
- and hence dependent functions like
renamereplacermdirsymlink_tounlink
Missing operations (throwing exception) with current version (and questionable whether all of them will come) are:
chmodhardlink_toresolve- Resolves symlinks and makes relative paths absolute, latter is useless for SmbPath
touch
Installation
pip install smb-path
Usage
smb-path just needs to be installed. After the installation, you just use Path() to instantiate a SmbPath. It is checked whether the provided path string applies to the regex pattern r"(//|\\\\)([a-z0-9_-]+)((\.[a-z0-9_-]+)*)(\.[a-z]+){1}".
The path string
- must start with
//or\\ - must continue with a server name,
a-z,0-9and_,-allowed, eg.filshr33 - optionally an arbitrary number of periods separated by a
.,a-z,0-9,_,-allowed, eg..us.dieterscompany - must continue with an url closing with
.then a-z, eg..com - can contain trailing fileshare names, directories or files, eg.
/myShare/myDir/myFile.txt
Hence //filshr33.us.dieterscompany.com/myShare/myDir/myFile.txt would be a valid SMB path.
If the pattern does not match, a Path object like you are used to it is returned (WindowsPath or PosixPath).
SMB Configuration
Use smbclient.ClientConfig to configure the SMB connection. Eg. smbclient.ClientConfig(username="itsme", password="myPW"). Refer to smbprotocol for further information.
Compatibility
smbprotocol is platform agnostic since it does not care about the path separator.
Tested with installation into a python -m venv virtual environment.
License
smb-path is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smb_path-0.6.2-py3-none-any.whl.
File metadata
- Download URL: smb_path-0.6.2-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee24518f848c8ab0167895069e7845874eebebcc96d78fc6ee366f2c0178ebca
|
|
| MD5 |
d6ddda033a6a5781be51cc18150b9344
|
|
| BLAKE2b-256 |
a01bef7a38ef4f72d5c0c2f5ccd6f773f2bfa3b42ff3604e120a73059f53c058
|