Skip to content

Commit 7099bf6

Browse files
committed
Improve CLAUDE.md based on review feedback
- 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
1 parent 9e8f3ff commit 7099bf6

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

CLAUDE.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## Project Overview
66

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.
88

99
## Architecture
1010

@@ -15,11 +15,14 @@ The codebase is organized into two main packages:
1515
- **AuthServer.py**: Provides HTTP Basic Authentication layer on top of standard HTTP server.
1616
- **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.
1717
- **propfind.py, report.py, davcopy.py, davmove.py, delete.py**: Separate classes for each DAV method that handle XML parsing and response generation.
18+
- **davcmd.py**: Utility functions for DAV operations (copyone, copytree, moveone, movetree, delone, deltree).
1819
- **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.
1922
- **utils.py, status.py, errors.py, constants.py**: Utility functions and definitions.
2023

2124
### 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()`.
2326
- **fshandler.py**: `FilesystemHandler` class implements the `dav_interface` for serving files from a local filesystem. This serves as the reference implementation for custom backends.
2427
- **fileauth.py**: `DAVAuthHandler` - authentication handler implementation.
2528
- **mysqlauth.py**: `MySQLAuthHandler` - optional MySQL-based authentication.
@@ -64,7 +67,7 @@ Common options:
6467

6568
### Testing
6669
```bash
67-
python test/test_litmus.py # Run litmus WebDAV compliance tests
70+
python test/test_litmus.py # Run litmus WebDAV compliance tests (from repo root)
6871
```
6972

7073
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
139142
- `git-versioner`: Version management from git tags
140143

141144
Optional:
142-
- MySQL support requires MySQLdb
145+
- MySQL support requires MySQLdb (install separately: `pip install mysqlclient`)

0 commit comments

Comments
 (0)