You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Specify Python 3.8+ as minimum version in project overview
- Document INI_Parse.py, dbconn.py, and davcmd.py in architecture
- Clarify run() vs runserver() functions in server.py
- Add pip install command for optional MySQL dependency
- Note that tests should be run from repository root
Copy file name to clipboardExpand all lines: CLAUDE.md
+7-4Lines changed: 7 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
4
4
5
5
## Project Overview
6
6
7
-
PyWebDAV3 is a Python 3 implementation of a WebDAV server and library supporting WebDAV levels 1 and 2 (including LOCK/UNLOCK). The project provides both a standalone server (`davserver`) and a library for integrating WebDAV capabilities into applications.
7
+
PyWebDAV3 is a Python 3.8+ implementation of a WebDAV server and library supporting WebDAV levels 1 and 2 (including LOCK/UNLOCK). The project provides both a standalone server (`davserver`) and a library for integrating WebDAV capabilities into applications.
8
8
9
9
## Architecture
10
10
@@ -15,11 +15,14 @@ The codebase is organized into two main packages:
15
15
-**AuthServer.py**: Provides HTTP Basic Authentication layer on top of standard HTTP server.
16
16
-**iface.py**: Abstract interface class (`dav_interface`) that defines the contract for backend data sources. Any custom backend must implement this interface to handle property retrieval, data access, and resource management.
17
17
-**propfind.py, report.py, davcopy.py, davmove.py, delete.py**: Separate classes for each DAV method that handle XML parsing and response generation.
-**locks.py**: `LockManager` class implementing WebDAV level 2 locking functionality.
20
+
-**INI_Parse.py**: Configuration file parser for server settings.
21
+
-**dbconn.py**: Database connection utilities for optional MySQL support.
19
22
-**utils.py, status.py, errors.py, constants.py**: Utility functions and definitions.
20
23
21
24
### pywebdav/server/ - Reference Server Implementation
22
-
-**server.py**: Entry point for the standalone server. Includes `runserver()` function and command-line parsing. Installed as `davserver` console script.
25
+
-**server.py**: Entry point for the standalone server. Contains `run()` function (CLI wrapper with argument parsing) and `runserver()` function (internal server startup). The `davserver` console script calls `run()`.
23
26
-**fshandler.py**: `FilesystemHandler` class implements the `dav_interface` for serving files from a local filesystem. This serves as the reference implementation for custom backends.
The test suite uses litmus 0.13, a C-based WebDAV server protocol compliance test suite originally by Joe Orton. The test harness (`test/test_litmus.py`) automatically:
@@ -139,4 +142,4 @@ Uses `git-versioner` for version numbers from git tags. Version is read from `py
139
142
-`git-versioner`: Version management from git tags
140
143
141
144
Optional:
142
-
- MySQL support requires MySQLdb
145
+
- MySQL support requires MySQLdb (install separately: `pip install mysqlclient`)
0 commit comments