
I think I'm ready to do a merge of the DAV branch.
exarkun, I think I've addressed all on the list you sent me.
Anyone else want to review the code first? Other objections?
I'll give you some targets to criticize:
- The DAV property store code depends on Bob Ippolito's xattr library, which works on Mac OS, some Linuxes, and possible FreeBSD. Non-Mac uses require a filesystem that supports it.
Alternate property stores are not going to be had to plug in, and we have several ways to proceed there, but I think these are generally out of scope for work on this branch, which I'm trying to keep from growing into a large and scary thing.
- I use datetime in XML processing, which is apparently a Python 2.3+ feature. It would be unfortunate to have to avoid datetime, though, since it would mean adding the relevant code to twisted somewhere.
The datetime issue we can either wave off by saying you need 2.3 to use dav, or we go ahead and copy in a bunch of code. I'd prefer to do that after merging if we think it's necessary to do so. I vote for requiring 2.3, but maybe that's my inner laziness talking.
- Some python files have capital letters. exarkun says that may bug some people, specifically Windows types. Is it actually a problem?
I can fix the capital letters if it's an issue.
-wsv

On Dec 20, 2005, at 12:38 PM, Wilfredo Sánchez Vega wrote:
- I use datetime in XML processing, which is apparently a Python
2.3+ feature. It would be unfortunate to have to avoid datetime, though, since it would mean adding the relevant code to twisted somewhere.
The datetime issue we can either wave off by saying you need 2.3 to use dav, or we go ahead and copy in a bunch of code. I'd prefer to do that after merging if we think it's necessary to do so. I vote for requiring 2.3, but maybe that's my inner laziness talking.
If 2.2 support is required, I would suggest taking the datetime.py module from pypy (from Python, was translated to C, and then the C implementation was modified slightly. Then PyPy imported it from Python and modified to match the C impl).
Or 2.2 could just be dropped.
James

On Dec 20, 2005, at 10:10 AM, James Y Knight wrote:
On Dec 20, 2005, at 12:38 PM, Wilfredo Sánchez Vega wrote:
- I use datetime in XML processing, which is apparently a Python
2.3+ feature. It would be unfortunate to have to avoid datetime, though, since it would mean adding the relevant code to twisted somewhere.
The datetime issue we can either wave off by saying you need 2.3 to use dav, or we go ahead and copy in a bunch of code. I'd prefer to do that after merging if we think it's necessary to do so. I vote for requiring 2.3, but maybe that's my inner laziness talking.
If 2.2 support is required, I would suggest taking the datetime.py module from pypy (from Python, was translated to C, and then the C implementation was modified slightly. Then PyPy imported it from Python and modified to match the C impl).
Or 2.2 could just be dropped.
James
I'm not sure that there is a policy for minimum version support across subprojects, but I support bumping the minimum python requirement for Twisted.web2 to python2.3. I'm a little bit more bothered by the xattr requirement. I'd support making this pluggable atleast before release (even if we only have a single xattr based implementation) But I'm leaning towards that this shouldn't block the merge, as there is significant interest in Dav and it's generally better to branch from trunk (i.e. to improve vfs usage *ahem* stephen.)
-David

On Tue, 20 Dec 2005 12:25:36 -0600, David Reid dreid@dreid.org wrote:
I'm not sure that there is a policy for minimum version support across subprojects, but I support bumping the minimum python requirement for Twisted.web2 to python2.3. I'm a little bit more bothered by the xattr requirement. I'd support making this pluggable atleast before release (even if we only have a single xattr based implementation) But I'm leaning towards that this shouldn't block the merge, as there is significant interest in Dav and it's generally better to branch from trunk (i.e. to improve vfs usage *ahem* stephen.)
-David
Has anyone taken a peek at the WebDAV implementation that was done for Google's Summer of Code? I think it was called PyFileServer, or something like that. Just wondering if that author came up with a solution that didn't require xattr.
Daniel

On Dec 20, 2005, at 12:10 PM, L. Daniel Burr wrote:
On Tue, 20 Dec 2005 12:25:36 -0600, David Reid dreid@dreid.org wrote:
I'm not sure that there is a policy for minimum version support across subprojects, but I support bumping the minimum python requirement for Twisted.web2 to python2.3. I'm a little bit more bothered by the xattr requirement. I'd support making this pluggable atleast before release (even if we only have a single xattr based implementation) But I'm leaning towards that this shouldn't block the merge, as there is significant interest in Dav and it's generally better to branch from trunk (i.e. to improve vfs usage *ahem* stephen.)
-David
Has anyone taken a peek at the WebDAV implementation that was done for Google's Summer of Code? I think it was called PyFileServer, or something like that. Just wondering if that author came up with a solution that didn't require xattr.
Daniel
I was not aware of any such implementation, was this using Twisted? Really xattr is an implementation detail, and should be easily abstracted into a more pluggable solution.
-David

Yep. The xattr code is all in xattrprops.py, which defines a class xattrPropertyStore. In dav/static.py, we have, in the class DAVFile:
dead_properties = property(xattrPropertyStore)
xattrPropertyStore could easily be replaced with any other callable that returns a dict-like object which will store the dead properties.
That shouldn't be too far from what we need for pluggability.
-wsv
On Dec 20, 2005, at 10:25 AM, David Reid wrote:
I'm not sure that there is a policy for minimum version support across subprojects, but I support bumping the minimum python requirement for Twisted.web2 to python2.3. I'm a little bit more bothered by the xattr requirement. I'd support making this pluggable atleast before release (even if we only have a single xattr based implementation) But I'm leaning towards that this shouldn't block the merge, as there is significant interest in Dav and it's generally better to branch from trunk (i.e. to improve vfs usage *ahem* stephen.)

On Tue, 20 Dec 2005 13:10:53 -0500, James Y Knight foom@fuhm.net wrote:
On Dec 20, 2005, at 12:38 PM, Wilfredo Sánchez Vega wrote:
- I use datetime in XML processing, which is apparently a Python 2.3+
feature. It would be unfortunate to have to avoid datetime, though, since it would mean adding the relevant code to twisted somewhere.
The datetime issue we can either wave off by saying you need 2.3 to use dav, or we go ahead and copy in a bunch of code. I'd prefer to do that after merging if we think it's necessary to do so. I vote for requiring 2.3, but maybe that's my inner laziness talking.
(A)
If 2.2 support is required, I would suggest taking the datetime.py module from pypy (from Python, was translated to C, and then the C implementation was modified slightly. Then PyPy imported it from Python and modified to match the C impl).
(B)
Or 2.2 could just be dropped.
Let's just start with option A since it involves less discussion :). It sounds easy, anyway - if it's not, (B) seems like an eventual inevitability anyway, so let's do that if the discussion that will ensue on t-py will be less effort than porting datetime.
participants (5)
-
David Reid
-
glyph@divmod.com
-
James Y Knight
-
L. Daniel Burr
-
Wilfredo Sánchez Vega