Resolved: (MODPYTHON-93) Improve util.FieldStorage
Web Server forum
Back To The Forum Home!Search!Private Messaging System

Web Server Talk Web Server Talk > Web Servers reviews > Apache Server configuration support > Apache Mod-Python > Resolved: (MODPYTHON-93) Improve util.FieldStorage




  Last Thread   Next Thread Next
  Show Printable Version Email this Page Subscribe to this Thread      Post New Thread    Post A Reply      

    Resolved: (MODPYTHON-93) Improve util.FieldStorage  
Graham Dumpleton (JIRA)


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
10-24-06 06:12 AM

[ http://issues.apache.org/jira/brows...HON-93?page=all ]

Graham Dumpleton resolved MODPYTHON-93.
---------------------------------------

Resolution: Fixed

I have looked at the code for this again and to somehow accommodate older ve
rsions of Trac is only going to introduce horrible little hacks in mod_pytho
n that we don't need, so it just isn't worth the trouble to try and support 
the older versions. People
will simply need to upgrade to at least Trac 0.10.0 if they want to use mod_
python 3.3.

If the hacks were done, there would be two parts to it. The first is that Tr
ac derives from util.FieldStorage and adds a __setitem__() method. This woul
d need to be overridden from the base class by replacing it with add_field()
.

def __init__(self, ...):
..
self.__setitem__ = self.add_field

It has to be done in the constructor and not just as a method, as doing it a
s a method means derived class overrides it. At that point in the constructo
r, derived class one is in place and so we effectively replace it.

The second part would be more difficult and why it isn't worth the trouble. 
The problem here is that although the derived class adds __setitem__(), it d
oesn't itself use it in the derived class constructor. Instead, it does the 
nasty thing of accessing th
e base class 'list' attribute directly, thereby duplicating the same code as
 in __setitem__() that we need to replace. The only way around this nastines
s would be for the base class to override the 'append()' method of the 'list
' attribute itself and do e
xtra special magic to check for arguments of the old style and change things
 on the fly, updating the associated index attribute as well. This is just a
ll too messy and magic and would surely come back and bite us.

In summary, not worth the trouble. Trac people will just have to upgrade.



> Improve util.FieldStorage efficiency
> ------------------------------------
>
>                 Key: MODPYTHON-93
>                 URL: http://issues.apache.org/jira/browse/MODPYTHON-93
>             Project: mod_python
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 3.2.7
>            Reporter: Jim Gallacher
>         Assigned To: Jim Gallacher
>            Priority: Minor
>             Fix For: 3.3
>
>         Attachments: modpython325_util_py_dict.patch
>
>
> Form fields are saved as a list in a FieldStorage class instance. The class implem
ents a __getitem__ method to provide dict-like behaviour.  This method iterates over
 the complete list for every call to __getitem__. Applications that need to access a
ll
the fields when processing the form will show O(n^2) behaviour where n == the number of form
 fields. This overhead could be avoided by creating a dict (to use as an index) when the Fie
ldStorage instance is created.
> Mike Looijmans has been investigating StringField and Field as well. It is probabl
y reasonable to include information on his work in this issue as well, so that we ca
n consider all of these efficiency issues in toto.






[ Post a follow-up to this message ]



    Sponsored Links  




 





   All times are GMT. The time now is 10:07 PM.      Post New Thread    Post A Reply      
  Last Thread   Next Thread Next


Most Popular forums 

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
 
Medical and Health forum | Computer Games Reviews | Graphics design forum

Back To The Top
Home | Usercp | Faq | Register