2009-07-17T00:52:25  <amartani> ThomasWaldmann: on http://hg.moinmo.in/moin/2.0-storage/rev/efb8fcd22967 shouldn't it be from MM.items import Item (instead of storage)?
2009-07-17T01:20:15  <CIA-36> Pawel Pacana <pawel.pacana (at) gmail.com> default * 6070:34f2d146ad8e 2.0-storage/MoinMoin/storage/backends/newhg.py:
2009-07-17T01:20:15  <CIA-36> (hg) added some try: blocks for mercurial API compatibility
2009-07-17T01:20:15  <CIA-36> tested on all releases between 1.0 - 1.3
2009-07-17T01:20:17  <CIA-36> Pawel Pacana <pawel.pacana (at) gmail.com> default * 6071:1a08122269c8 2.0-storage/MoinMoin/storage/backends/newhg.py: merge with local branch
2009-07-17T02:03:02  *** amartani has quit IRC
2009-07-17T02:11:14  *** dennda has quit IRC
2009-07-17T02:11:14  *** birkenfeld has quit IRC
2009-07-17T02:11:14  *** ThomasWaldmann has quit IRC
2009-07-17T02:11:52  *** dennda has joined #moin-dev
2009-07-17T02:11:52  *** birkenfeld has joined #moin-dev
2009-07-17T02:11:52  *** ThomasWaldmann has joined #moin-dev
2009-07-17T02:33:42  <CIA-36> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6072:d8c9908377ee 2.0-storage/MoinMoin/storage/backends/acl.py: storage: not == -> !=
2009-07-17T02:33:44  <CIA-36> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6073:f9a21e641f48 2.0-storage/MoinMoin/ (config/multiconfig.py storage/backends/acl.py): storage: multiconfig: Use ACL constants
2009-07-17T02:33:45  <CIA-36> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6074:ce5ab62cb466 2.0-storage/MoinMoin/storage/backends/newhg.py: merge remote 2.0-storage
2009-07-17T02:46:55  *** amartani has joined #moin-dev
2009-07-17T02:55:09  *** xorAxAx has quit IRC
2009-07-17T02:59:17  *** ThomasWaldman2 has joined #moin-dev
2009-07-17T02:59:26  *** dreimark_ has joined #moin-dev
2009-07-17T03:03:28  *** xorAxAx has joined #moin-dev
2009-07-17T03:07:40  *** ThomasWaldmann has quit IRC
2009-07-17T03:09:13  *** dreimark has quit IRC
2009-07-17T03:34:54  *** grzywacz has quit IRC
2009-07-17T07:38:53  <CIA-36> Alexandre Martani <amartani AT gmail DOT com> default * 6148:8c5ca5c2aa3a 2.0-storage-editor-amartani/MoinMoin/ (action/mobwrite.py caching.py): Real-time editor: use Item from storage
2009-07-17T07:38:56  <CIA-36> Alexandre Martani <amartani AT gmail DOT com> default * 6149:ceedc4fbc087 2.0-storage-editor-amartani/MoinMoin/ (items/__init__.py templates/modify_text.html items/lock.py): Real-time editor: Created ItemLock class for locking items when editing (based on PageEditor)
2009-07-17T07:38:57  <CIA-36> Alexandre Martani <amartani AT gmail DOT com> default * 6150:4a37ad105e5e 2.0-storage-editor-amartani/MoinMoin/wikiutil.py: wikiutil: fix scope on set_edit_lock
2009-07-17T07:41:03  *** amartani has quit IRC
2009-07-17T08:19:26  <ThomasWaldman2> moin
2009-07-17T08:28:27  <dimazest> morning
2009-07-17T08:40:49  <CIA-36> Dmitrijs Milajevs <dimazest@gmail.com> default * 4843:65bef5bcec41 1.9-groups-dmilajevs/MoinMoin/datastruct/backends/ (8 files in 2 dirs): Groups2009: Experimental config_lazy_groups backend was added. GreedyGroup class was introduced for groups which store their members internally. Some header fixes and copyright notice clean up.
2009-07-17T09:10:12  <ThomasWaldman2> dimazest: you want to check your "lazy" docstrings for grammar and understandability
2009-07-17T09:10:29  <dimazest> ok
2009-07-17T09:11:48  *** dreimark_ is now known as dreimark
2009-07-17T09:13:56  <ThomasWaldman2> dimazest: except that, it looks quite good (of course, one can't show lazy behaviour very well with config groups which are always completely there)
2009-07-17T09:15:00  *** ThomasWaldman2 is now known as ThomasWaldmann
2009-07-17T09:17:17  <dreimark> moin
2009-07-17T09:17:38  <dimazest> dreimark: moin
2009-07-17T09:20:21  <dreimark> dimazest: besides the "docstrings" do you have anything else in the pipe for groups and dicts?
2009-07-17T09:21:20  <dimazest> dreimark: wikipage and snippets for dict need to be done
2009-07-17T09:22:36  <dreimark> docs/CHANGES.dmilajevs too
2009-07-17T09:23:15  <dimazest> yes
2009-07-17T09:23:16  <dreimark> it would be good that could be mostly finished today
2009-07-17T09:24:34  <dreimark> the xapian code is not easy and will need some time to understand
2009-07-17T09:24:41  <dimazest> dreimark: i would like to finish it today
2009-07-17T09:27:18  <dreimark> :)
2009-07-17T10:04:14  <dimazest> ThomasWaldmann: http://paste.pocoo.org/show/NLizQ1UKgJjCmKwRGu3I/
2009-07-17T10:06:06  <dreimark> s/to find out/examine/ (sounds better)
2009-07-17T10:06:52  <dimazest> :)
2009-07-17T10:07:42  * dimazest thinkinng about taking an English course to improve my writting skills
2009-07-17T10:08:03  <dreimark> Initialization of a proxy. Needed parameters (an uri, credentials) may be passed.
2009-07-17T10:08:26  <dreimark> I don't see how the uri may be passed
2009-07-17T10:08:41  <dreimark> def __init__(self, groups): shows no param to do this
2009-07-17T10:11:08  <dimazest> dreimark: but they are specific
2009-07-17T10:11:34  <dimazest> for a backend
2009-07-17T10:12:22  <dimazest> there groups are passed, for other proxy some connection string is needed
2009-07-17T10:12:51  <dreimark> may be add a sentence which describes it
2009-07-17T10:16:15  <dimazest> dreimark:         Parameters which are specific for a proxy are passed. Here
2009-07-17T10:16:15  <dimazest>         <groups> are passed, for other implementations connection
2009-07-17T10:16:16  <dimazest>         string and credentials may be passed instead.
2009-07-17T10:20:35  <dreimark> :)
2009-07-17T10:21:11  <dreimark> the question now is if groups as input var is to specific
2009-07-17T10:24:25  <dimazest> dreimark: i think s/may be passed instead/should be passed instead
2009-07-17T10:25:00  <dimazest> dreimark: sure it is specific, if i understood you right
2009-07-17T10:27:25  <dreimark> ok, you are right
2009-07-17T10:33:15  <ThomasWaldmann> dimazest: can you show the complete files instead of a diff?
2009-07-17T10:33:51  <dimazest> yes, should i commit them? or put to the paste?
2009-07-17T10:33:58  <ThomasWaldmann> dimazest: paste
2009-07-17T10:34:26  <ThomasWaldmann> dimazest: and about the english course: just read slashdot and planet.python.org daily :D
2009-07-17T10:34:58  <dimazest> http://paste.pocoo.org/show/129106/
2009-07-17T10:35:33  <dimazest> ThomasWaldmann: :) good advice
2009-07-17T10:35:47  <ThomasWaldmann>  A lazy group does not store members internally, but gets them
2009-07-17T10:35:47  <ThomasWaldmann>     from a proxy when needed.
2009-07-17T10:36:34  <ThomasWaldmann> i think the point of lazy vs. greedy is that not ALL members are read at once and stored inside the group object.
2009-07-17T10:37:06  <ThomasWaldmann> but maybe that should be told that way in the base classes
2009-07-17T10:37:26  <ThomasWaldmann> no need to reexplain in the special backends
2009-07-17T10:38:39  <ThomasWaldmann>   NOTE that the backend is experimental and is implemented to
2009-07-17T10:38:39  <ThomasWaldmann>     examine how other backends, e.g LDAP backend, should work.
2009-07-17T10:39:05  <ThomasWaldmann> "proof-of-concept implementation"?
2009-07-17T10:39:18  <dimazest> LazyGroup should be moved to the __init__ nd some BaseProxy should be defined there too
2009-07-17T10:39:38  <dimazest> s/nd/and
2009-07-17T10:41:10  * dreimark indeed that diff reading was confusing
2009-07-17T10:41:20  <dimazest> ThomasWaldmann:     NOTE that this is proof-of-concept implementation. LDAP backend
2009-07-17T10:41:23  <dimazest>     should be based on this concept.
2009-07-17T10:44:56  <ThomasWaldmann> 66 is processed_groups needed?
2009-07-17T10:45:43  <dimazest> ThomasWaldmann: yes, because other groups may pass it
2009-07-17T10:46:31  <dimazest> from here http://hg.moinmo.in/moin/1.9-groups-dmilajevs/file/65bef5bcec41/MoinMoin/datastruct/backends/__init__.py#l82
2009-07-17T10:48:52  <ThomasWaldmann> yes, but you do not use it
2009-07-17T10:49:08  <ThomasWaldmann> and afaics, you do only direct member checks
2009-07-17T10:50:30  <dimazest> ThomasWaldmann: yes, because ldap do not have recursive groups
2009-07-17T10:50:53  <ThomasWaldmann> hmm, recursive member checks maybe in general don't play well with lazyness
2009-07-17T10:51:15  <ThomasWaldmann> but you should add a note about that difference
2009-07-17T10:52:40  <ThomasWaldmann> LazyConfigGroups almost looks like generic code
2009-07-17T10:54:10  <ThomasWaldmann> maybe create a LazyGroups backend class that gets a proxy object as __init__ param
2009-07-17T10:56:08  <ThomasWaldmann> then derive LazyConfigGroups from it
2009-07-17T10:57:30  <ThomasWaldmann> s/Proxy/ConfigProxy/
2009-07-17T10:59:01  <ThomasWaldmann> add implementation notes for developers (they'll likely only have to write a very small child class of LazyGroups and a FooProxy)
2009-07-17T10:59:39  <ThomasWaldmann> check the names of the classes for consistency btw
2009-07-17T11:00:45  <dimazest> ThomasWaldmann: i think FooProxy is the only thing which should be implemented
2009-07-17T11:11:38  <ThomasWaldmann> well, as the real lazy backends might need different params, you won't get around some minimal derived backend class
2009-07-17T11:12:03  <ThomasWaldmann> but what I am thinking about is whether that Proxy class makes sense
2009-07-17T11:12:48  <ThomasWaldmann> because all the backend class is doing right now is to store the proxy and then forward everything to it
2009-07-17T11:13:03  <ThomasWaldmann> it could also be the proxy itself
2009-07-17T11:13:31  <dimazest> ThomasWaldmann: you are right
2009-07-17T11:23:17  <ThomasWaldmann> dimazest: btw, use "if processed_groups is None". if you just use "if not processed_groups", the empty set would also trigger.
2009-07-17T11:23:41  <ThomasWaldmann> might not happen in that case, but better be precise there.
2009-07-17T11:25:29  <ThomasWaldmann> BaseGroup has wrong indentation
2009-07-17T11:27:31  <ThomasWaldmann> (same for checking "yielded_members is None")
2009-07-17T11:33:41  <ThomasWaldmann> BaseGroupsBackend.get maybe should rather use try/except
2009-07-17T11:34:44  <ThomasWaldmann> (first checking key in self and then returning self[key] might be twice as expensive)
2009-07-17T11:36:27  <ThomasWaldmann> your dicts are always greedy, please document that
2009-07-17T11:36:43  <ThomasWaldmann> (not sure whether we need lazy dicts)
2009-07-17T11:37:45  <ThomasWaldmann> your dicts have __len__, your groups don't
2009-07-17T11:39:54  <dimazest> i think too that lazy dicts are not needed
2009-07-17T11:40:00  <ThomasWaldmann> CompositeGroups/Dicts also first to the "key in ..." check and then [key] -> try/except
2009-07-17T11:40:13  <ThomasWaldmann> s/to/do/
2009-07-17T11:42:42  <ThomasWaldmann> ok, gtg now, have fun :)
2009-07-17T12:05:05  <ThomasWaldmann> dennda: as you seem to have quite some exams until the end of the month, I would like to see some time planning for that time
2009-07-17T12:23:06  <CIA-36> Dmitrijs Milajevs <dimazest@gmail.com> default * 4844:be20907b4747 1.9-groups-dmilajevs/MoinMoin/datastruct/backends/ (3 files in 2 dirs): Groups2009: LazyGroup and LazyGroupsBackend classes were added. The config_lazy_groups backend was refactored.
2009-07-17T12:23:08  <CIA-36> Dmitrijs Milajevs <dimazest@gmail.com> default * 4845:77837e7984ea 1.9-groups-dmilajevs/MoinMoin/datastruct/backends/__init__.py: Groups2009: BaseGroup indentation fix.
2009-07-17T12:23:09  <CIA-36> Dmitrijs Milajevs <dimazest@gmail.com> default * 4846:e1a25e722434 1.9-groups-dmilajevs/MoinMoin/datastruct/backends/ (3 files in 2 dirs): Groups2009: Try ... except is used in place of if check for composite dicts and groups __getitem__. Test fix.
2009-07-17T12:28:25  <dimazest> do groups need len(), because group is something iteratable
2009-07-17T12:29:45  <dimazest> and iterators are unsized objects
2009-07-17T12:30:44  <dimazest> ThomasWaldmann: ^^
2009-07-17T12:31:42  <CIA-36> Dmitrijs Milajevs <dimazest@gmail.com> default * 4847:b8a22aa1854c 1.9-groups-dmilajevs/MoinMoin/datastruct/backends/__init__.py: Groups2009: Notice for BaseDict that it is greedy.
2009-07-17T12:41:43  <CIA-36> Dmitrijs Milajevs <dimazest@gmail.com> default * 4848:85c15a83b7f2 1.9-groups-dmilajevs/wiki/config/more_samples/dicts_wikiconfig_snippet: Groups2009: Configuration snippets for dicts.
2009-07-17T12:57:45  <ThomasWaldmann> dimazest: what's the difference to dicts?
2009-07-17T12:58:17  <ThomasWaldmann> (you can also iterate over dict's keys or items)
2009-07-17T12:58:52  <ThomasWaldmann> >>> s=set([1,2,3])
2009-07-17T12:58:52  <ThomasWaldmann> >>> len(s)
2009-07-17T12:58:52  <ThomasWaldmann> 3
2009-07-17T12:59:18  <ThomasWaldmann> maybe check whether we need that, for groups and for dicts
2009-07-17T12:59:41  <ThomasWaldmann> because for both, this can be a rather expensive operation
2009-07-17T13:08:43  <dimazest> ThomasWaldmann: dict tests use len
2009-07-17T13:09:40  <dimazest> while group is converted to list to know its len
2009-07-17T13:27:01  <franklin_> Hi, could you add www.feed.eklmnhost.com to BadSpam, as they are spamming our wiki... see https://wiki.debian.org/singapore-airlines-preferred-seat-55?action=raw&rev=7
2009-07-17T13:27:10  <franklin_> thanks
2009-07-17T13:48:26  <ThomasWaldmann> franklin_: you can do that yourself
2009-07-17T13:48:38  <ThomasWaldmann> http://master18.moinmo.in/BadContent
2009-07-17T13:50:29  <dennda> ThomasWaldmann: I'm unsure what you expect
2009-07-17T13:50:41  <dennda> for said planning
2009-07-17T13:54:47  <ThomasWaldmann> that you schedule some days for preparing your exams and some days for soc project?
2009-07-17T13:55:02  <ThomasWaldmann> or some daily hours for one and some for other?
2009-07-17T13:57:50  <dennda> I'll see what I can do...
2009-07-17T14:03:40  <ThomasWaldmann> usually the hours where you should be preparing but you don't like to prepare are the most productive for coding :D
2009-07-17T14:04:24  <dreimark> franklin_: read http://moinmo.in/EditingOnMoinMaster and add it to http://master18.moinmo.in/BadContent yourselfs
2009-07-17T16:59:45  *** _peck_ has joined #moin-dev
2009-07-17T16:59:50  <_peck_> hi
2009-07-17T17:00:40  <_peck_> i want to be able to use ldap groups in acl
2009-07-17T17:01:03  <_peck_> if i implement it, would it have a chance to get into the main source
2009-07-17T17:17:51  <dimazest> _peck_: i think so
2009-07-17T17:18:37  <dimazest> btw, all you need to do is to write backend for a new groups code
2009-07-17T17:21:23  <_peck_> i couldn't find where to define a new group code so i tried to override the may method in AccessControlList class
2009-07-17T17:22:20  <dimazest> _peck_: have a look at http://moinmo.in/Groups2009
2009-07-17T17:22:33  <dimazest> and http://hg.moinmo.in/moin/1.9-groups-dmilajevs/
2009-07-17T17:23:04  <_peck_> thnak you
2009-07-17T17:23:05  <dimazest> new group code is almost finished, and should be merged with 1.9 branch soon
2009-07-17T17:23:38  <_peck_> cool, it should be easier for me
2009-07-17T17:23:47  <dimazest> _peck_: have you done the code which uses ldap?
2009-07-17T17:25:07  <_peck_> not yet
2009-07-17T17:25:25  <dimazest> actually, today i kind of finished backend which is a prototype for ldap
2009-07-17T17:25:36  <dimazest> you can find it here http://hg.moinmo.in/moin/1.9-groups-dmilajevs/file/85c15a83b7f2/MoinMoin/datastruct/backends/config_lazy_groups.py
2009-07-17T17:26:38  <_peck_> ok
2009-07-17T17:27:02  <_peck_> and i'd like to reuse code and configuration from ldap auth
2009-07-17T17:27:21  <_peck_> so i might have to modify it
2009-07-17T17:27:47  <dimazest> i'm not familiar with auth code, you should talk to ThomasWaldmann or dreimark about auth
2009-07-17T17:28:06  <_peck_> ConfigLazyGroups is a template for new group schemes ?
2009-07-17T17:28:33  <_peck_> first i will copy/paste but it would be better to merge
2009-07-17T17:28:53  <dimazest> _peck_: you can use it a a template
2009-07-17T17:29:31  <_peck_> ok
2009-07-17T17:31:39  <_peck_> so i should checkout 1.9-groups-dmilajevs to make my dev
2009-07-17T17:31:51  <dimazest> yes
2009-07-17T17:32:51  <_peck_> do you know when 1.9 is planned out ?
2009-07-17T17:33:09  <dimazest> no
2009-07-17T17:37:43  <_peck_> ok, i'll write womething and see if it works
2009-07-17T17:37:55  <dimazest> :)
2009-07-17T18:01:55  <ThomasWaldmann> _peck_: for a good ldap group implementation it is important that you implement lazy behaviour (that means: do not read all group members just to find out whether x is member in that group)
2009-07-17T18:02:07  <ThomasWaldmann> dimazest has already prepared that.
2009-07-17T18:02:37  <ThomasWaldmann> _peck_: 1.9 = 2009
2009-07-17T18:03:33  <ThomasWaldmann> (also, configurability, flexibility and documentation will be important)
2009-07-17T18:10:05  <ThomasWaldmann> _peck_: you could create a wiki page about the ldap groups backend, I guess quite some people are interested in that
2009-07-17T18:11:29  <_peck_> ThomasWaldmann: yes it will be implementer with a query/filter
2009-07-17T18:11:55  <_peck_> i will write doc is i have something that works
2009-07-17T18:12:23  <ThomasWaldmann> _peck_: what do you work with, is it AD or OpenLDAP?
2009-07-17T18:12:30  <_peck_> openldap
2009-07-17T18:12:49  <_peck_> hope it will be AD compatible
2009-07-17T18:12:55  <ThomasWaldmann> ok, good :)
2009-07-17T18:13:19  <ThomasWaldmann> some feedback / testing from AD users would be useful, though
2009-07-17T18:13:36  <_peck_> i won't have an ad to test
2009-07-17T18:15:06  <ThomasWaldmann> you don't need. but try to gather some ldap folks by being open :)
2009-07-17T18:15:15  <_peck_> :)
2009-07-17T18:15:44  <_peck_> as for the ldap code, is it possible to put the query part from auth into a separate class to have configuration and code in commen
2009-07-17T18:15:53  <ThomasWaldmann> (I personally don't use ldap stuff for moin, but quite some of our users do)
2009-07-17T18:16:25  <ThomasWaldmann> i think having some sort of "ldap connection object" in common between auth and group would make sense
2009-07-17T18:17:47  <_peck_> ok
2009-07-17T18:18:00  <_peck_> maybe after, when womething works :)
2009-07-17T18:18:05  <ThomasWaldmann> :)
2009-07-17T18:18:27  <ThomasWaldmann> for the beginning, maybe just use the same kwargs as ldap auth has
2009-07-17T18:18:41  <ThomasWaldmann> (for the server connection params)
2009-07-17T19:07:13  <_peck_> dimazest: why didn't you implement is_group and groups_with_member in configlazygroups ?
2009-07-17T19:14:59  <dimazest> _peck_: configlazygroups inherits these methods
2009-07-17T19:16:04  <ThomasWaldmann> groups_with_member is slightly dangerous for big ldap directories X)
2009-07-17T19:16:43  <dimazest> ThomasWaldmann: but it stil exists
2009-07-17T19:17:42  <dimazest> ThomasWaldmann: does only SystemAdmin use groups_with_member?
2009-07-17T19:17:57  <ThomasWaldmann> likely
2009-07-17T19:19:56  <dimazest> so i think it is not a big issue, it is part of admin functionality, and admin people should be aware of it
2009-07-17T19:20:49  <dimazest> in the end we can test this behaviour with a real setup and then see if it is a problem
2009-07-17T19:37:07  <dimazest> bbl
2009-07-17T19:37:45  <dimazest> dreimark: i still need to update diary, i remember about it
2009-07-17T20:04:59  *** grzywacz has joined #moin-dev
2009-07-17T21:39:53  <ThomasWaldmann> dimazest: tests/__init__:97
2009-07-17T21:40:50  <ThomasWaldmann> 113
2009-07-17T21:41:37  <ThomasWaldmann> 112
2009-07-17T21:56:32  <ThomasWaldmann> dimazest: please fix those lines
2009-07-17T22:24:08  <ThomasWaldmann> dimazest: test_lazy_config_groups:33 ???
2009-07-17T22:26:07  *** aigarius has joined #moin-dev
2009-07-17T22:26:35  *** aigarius has left #moin-dev
2009-07-17T22:35:50  <ThomasWaldmann> dimazest: grep wsgiapp.py and web/contexts.py for _manager_init
2009-07-17T22:41:25  <ThomasWaldmann> dimazest: and while fixing that: dict_manager_init and group_manager_init is somewhat longish for something the use has to put in his config
2009-07-17T22:42:32  <ThomasWaldmann> how about "dicts" and "groups"? better ideas?
2009-07-17T22:51:25  *** amartani has joined #moin-dev
2009-07-17T23:10:36  <ThomasWaldmann> dimazest:   File "/home/tw/w/mm19groups/MoinMoin/wsgiapp.py", line 52, in init_group_manager
2009-07-17T23:10:39  <ThomasWaldmann>     context.groups = context.cfg.group_manager_init(context)
2009-07-17T23:10:42  <ThomasWaldmann> AttributeError: 'LocalConfig' object has no attribute 'group_manager_init'
2009-07-17T23:11:11  <ThomasWaldmann> do you USE the wiki sometimes? :)
2009-07-17T23:29:36  <ThomasWaldmann> dimazest: looks like some default in config.multiconfig is missing.

MoinMoin: MoinMoinChat/Logs/moin-dev/2009-07-17 (last edited 2009-07-16 23:00:02 by IrcLogImporter)