pathlib-like Path object for smb protocol
Project description
smb-path
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:
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
iterdir
mkdir
- NOTE: param
mode
has currently no effect, it falls back to755
!
- NOTE: param
rmdir
unlink
rename
symlink_to
replace
Missing operations (throwing exception) with current version (and questionable whether all of them will come) are:
touch
chmod
hardlink_to
glob
resolve
- Resolves symlinks and makes relative paths absolute, latter is useless for SmbPath
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 and 0-9 allowed, eg.
filshr33
- optionally an arbitrary number of periods separated by a
.
, a-z and 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
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
File details
Details for the file smb_path-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: smb_path-0.5.0-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f9a87fac433c539c07665fed982e3762d78b5e4f43fabc867d88f527c249488 |
|
MD5 | 918048ec8c05aa8e52a3ce5d6466e41a |
|
BLAKE2b-256 | e40d80dc56dad01019574050dc1065b8a9f56396135cdb23ba800f52709c4c67 |