Installation¶
Requirements¶
PanPath requires Python 3.9 or higher.
Core Installation¶
Install the core library which includes support for local file operations:
The core installation includes:
- ✅ Local filesystem support (sync and async)
- ✅ Path manipulation and operations
- ✅ Type hints and type safety
- ✅ Zero cloud dependencies
Cloud Storage Support¶
PanPath uses optional dependencies for cloud storage backends. Install only what you need:
Amazon S3¶
Google Cloud Storage¶
Azure Blob Storage¶
Convenience Bundles¶
All Sync Backends¶
Install all synchronous cloud storage backends:
Includes: S3, Google Cloud Storage, and Azure Blob Storage (sync only)
All Async Backends¶
Install all asynchronous cloud storage backends:
Includes: S3, Google Cloud Storage, and Azure Blob Storage (async only)
Everything¶
Install all backends (both sync and async):
Includes: All sync and async backends for all cloud providers
Development Installation¶
To contribute to PanPath or run tests:
# Clone the repository
git clone https://github.com/pwwang/panpath.git
cd panpath
# Install in development mode with all dependencies
pip install -e .[all,dev]
The dev extra includes:
pytest>=7.0.0- Testing frameworkpytest-asyncio>=0.21.0- Async test supportpytest-cov>=4.0.0- Coverage reportingmypy>=1.0.0- Type checkingblack>=23.0.0- Code formattingruff>=0.1.0- Lintingmoto[s3]>=4.0.0- AWS mocking for tests
Verifying Installation¶
After installation, verify that PanPath is working:
from panpath import PanPath
# Test local paths
local = PanPath("/tmp/test.txt")
print(f"Local path created: {local}")
# Test cloud paths (if installed)
try:
s3 = PanPath("s3://bucket/key")
print(f"S3 path created: {s3}")
except ImportError as e:
print(f"S3 not available: {e}")
Troubleshooting¶
Import Errors¶
If you see ImportError when trying to use cloud paths:
Solution: Install the appropriate cloud backend:
Dependency Conflicts¶
If you encounter dependency conflicts:
-
Use a virtual environment:
-
Update pip:
-
Check installed packages:
Version Requirements¶
Ensure you're using a supported Python version:
Next Steps¶
- Quick Start Guide - Learn the basics with hands-on examples
- Basic Concepts - Understand PanPath's architecture
- User Guide - Dive into detailed feature documentation