• 21Oct

    http://shell.appspot.com/
    http://lotrepls.appspot.com/

    Rating 3.00 out of 5
    [?]
  • 15Oct

    Идея в том, что мы делаем дамп объекта cPickle и сохраняем его в нем же. А после, чтоб узнать, изменился ли объект – делаем его дамп еще раз и проверяем результаты. Так что кода строчек 5

    вот что у меня получилось:

    1. from cPickle import dumps
    2.  
    3. #base class for monitoring changes
    4. class ChangesMonitor:
    5.     _cm_last_dump = None
    6.     def is_chaged(self):
    7.         prev_dump = self._cm_last_dump
    8.         self._cm_last_dump = None
    9.         cur_dump = dumps(self, -1)
    10.         self._cm_last_dump = cur_dump
    11.         return ( ( prev_dump is not None ) and ( prev_dump != cur_dump ) )
    12.        
    13. if __name__ == '__main__':
    14.     print 'Test Example'    
    15.    
    16.     #mix monitoring class with your common class
    17.     class MyGreateObject(ChangesMonitor,object):
    18.         one_val = 5
    19.         second_val = 7
    20.         def some_changes(self):
    21.             self.second_val += 5
    22.    
    23.     #and testing
    24.     my_obj = MyGreateObject()
    25.     print my_obj.is_chaged()
    26.     print my_obj.is_chaged()
    27.     my_obj.some_changes()
    28.     print my_obj.is_chaged()
    29.     print my_obj.is_chaged()
    Rating 3.00 out of 5
    [?]

    Tags: , , ,

  • 08Oct

    linux

    bsd

    microsoft

    Это тематические поиски от гуглы. И я просто не смог удержатся, да простит меня дядюшка Гейтс.

    Rating 3.00 out of 5
    [?]

    Tags: , , , ,

  • 01Oct

    Я уже посягал на суверинитет джанги. Но это было давно и не правда. Более того, меня тогда убедили, что делаю я глупости, и я даже убедился сам, в последствии, что на самом деле делаю глупости. Но мысть о том, что urls.py не нужен – не перестает меня беспакоить. Поэтому очередно фин, аморальный бред – называйте как хотите, но мне безумно нравится.

    Идея проста. Вьюха и урла всегда вместе – а значит одно должно быть декоратаром для другого.

    Итак главный urls.py имеет обычный вид

    1. from django.conf.urls.defaults import *
    2.  
    3. urlpatterns = patterns('',
    4.     (r'^someurl/',include('someapp.url_view')),
    5. )

    /someapp/url_view.py – тут у нас сбстно и хранятся вьюхи с урлами. Как видите, декоратор tourl нам земенил запись в urls.py

    1. from django.http import HttpResponse
    2. from tourl import tourl
    3.  
    4. @tourl(r'^and/$')
    5. def and_(request):
    6.     return HttpResponse('and')
    7.  
    8. @tourl(r'^gg/$')
    9. def index(request):
    10.     return HttpResponse('OK')

    /someapp/tourl.py – ну и код самого декоратора

    1. from django.conf.urls.defaults import *
    2. import sys
    3. import functools
    4. def tourl(url_patern,*args,**kwargs):
    5.     def paramed_decorator(func):
    6.         @functools.wraps(func)
    7.         def decorated(self):
    8.             return func(self)
    9.         module =sys.modules[func.__module__]
    10.        
    11.         if not hasattr(module, 'urlpatterns'):
    12.             module.urlpatterns = patterns('',)
    13.              
    14.         module.urlpatterns   += patterns('',
    15.             url(url_patern,decorated,*args,**kwargs),
    16.         )
    17.         return decorated
    18.     return paramed_decorator

    Помоему и симпотично и по производительности не бьет. Вобщем конфетка! Что скажите?

    PS: Добавил снипет.

    PSS: В снипетсах посоветовали добавить functools.wraps

    PSS: А еще можно использовать и так

    1. from django.http import HttpResponse
    2. from tourl import tourl, patterns,url
    3.  
    4.  
    5.  
    6. @tourl(r'^and/$')
    7. def and_(request):
    8.     return HttpResponse('and')
    9.  
    10.  
    11. def index(request):
    12.     return HttpResponse('OK')
    13.  
    14. tourl(r'^gg/$')(index)
    15.  
    16.  
    17. def ordinary(request):
    18.     return HttpResponse('Ordinary')
    19.  
    20. urlpatterns += patterns('',
    21.             url(r'^ord/$',ordinary)
    22.         )
    Rating 3.00 out of 5
    [?]

    Tags: , , , , ,

   

Recent Posts

Recent Comments

  • Я просто оставлю это тут: ...
  • спасибо...
  • Если вдуматься в каждое слово, то время беСконечно в русском...
  • Спасибо, Евгений, исправленно.P.S.: перехал на диску...
  • за опечатку - спасибо...