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)