A comprehensive toolkit for handling UNC paths, network drives, and substituted drives
Project description
UNCtools
A comprehensive toolkit for handling UNC paths, network drives, and substituted drives across different environments.
Features
- Convert between UNC paths (\\server\share) and local drive paths (Z:\)
- Detect UNC paths, network drives, and substituted drives
- Handle Windows security zones for improved UNC path access
- Provide high-level file operations that work seamlessly with UNC paths
- Cross-platform compatibility with graceful degradation
Installation
Standard Installation
pip install unctools
With Windows-specific Support
pip install unctools[windows]
Development Mode
For development and testing:
git clone https://github.com/yourusername/unctools.git
cd unctools
pip install -e .[dev]
Usage
Basic Path Conversion
from unctools import convert_to_local, convert_to_unc
# Convert UNC path to local drive path
local_path = convert_to_local("\\\\server\\share\\folder\\file.txt")
# Result (if mapped): "Z:\\folder\\file.txt"
# Convert local drive path back to UNC
unc_path = convert_to_unc("Z:\\folder\\file.txt")
# Result: "\\\\server\\share\\folder\\file.txt"
Path Detection
from unctools import is_unc_path, is_network_drive, is_subst_drive, get_path_type
# Check if a path is a UNC path
if is_unc_path("\\\\server\\share\\file.txt"):
print("This is a UNC path")
# Check if a drive is a network drive
if is_network_drive("Z:"):
print("Z: is a network drive")
# Get the type of a path
path_type = get_path_type("C:\\Users\\")
# Result: "local", "network", "subst", "unc", etc.
Safe File Operations
from unctools import safe_open, safe_copy, batch_convert
# Open a file, handling UNC paths automatically
with safe_open("\\\\server\\share\\file.txt", "r") as f:
content = f.read()
# Copy a file, handling path conversions
safe_copy("\\\\server\\share\\file.txt", "local_copy.txt")
# Convert multiple paths at once
paths = ["\\\\server\\share\\file1.txt", "\\\\server\\share\\file2.txt"]
converted = batch_convert(paths, to_unc=False)
Windows Security Zones
from unctools.windows import fix_security_zone, add_to_intranet_zone
# Fix security zone issues for a server
fix_security_zone("server")
# Add a server to the Local Intranet zone
add_to_intranet_zone("server")
Network Drive Management
from unctools.windows import create_network_mapping, remove_network_mapping
# Create a network drive mapping
success, drive = create_network_mapping("\\\\server\\share", "Z:")
# Remove a network drive mapping
remove_network_mapping("Z:")
Platform Compatibility
UNCtools is designed to work across various platforms:
- Windows: Full functionality including security zones and network drive management
- Linux/macOS: Basic path conversion and detection, with graceful degradation for Windows-specific features
Development
Running Tests
pytest
Code Style
black unctools
flake8 unctools
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
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 Distribution
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 unctools-0.1.0.tar.gz.
File metadata
- Download URL: unctools-0.1.0.tar.gz
- Upload date:
- Size: 63.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9e1622efc0ada8131b0298e1dd8a297ca3f3aec8e736e5c20a60985d8bd12b1
|
|
| MD5 |
3e80681770a066f8260a3c8201052665
|
|
| BLAKE2b-256 |
4bbe7e5262f799e0fdfdd2859c14f7e2a9b206dbda3249e5207a40031e66859e
|
File details
Details for the file unctools-0.1.0-py3-none-any.whl.
File metadata
- Download URL: unctools-0.1.0-py3-none-any.whl
- Upload date:
- Size: 38.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76f9a120a220a944d5128bfbf6a05dd6d74cc9eafa755a4e5143f8dbbd4f3d58
|
|
| MD5 |
9d7fab0df02d48956e03928382b7c0de
|
|
| BLAKE2b-256 |
dd05a945d967f771adbb7b868e3e0977eb69e10713988f0703ec1cb6d7de05b0
|