Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-27 Thread Christoph Haas
On Fri, Jul 27, 2007 at 05:25:43PM +1000, Paul Wise wrote:
 On 7/27/07, Neil Williams [EMAIL PROTECTED] wrote:
 
  There needs to be some way of indicating which packages have been
  reviewed but which are not ready for upload.
 
  Maybe mentors.debian.net could have some kind of wiki (or links to
  pages on wiki.debian.org) to track the status of such packages - the
  report could then look up such a page and link to that instead of the
  RFS.
 
 Perhaps someone could motivate siretart to adapt REVU
 (revu.tauware.de) features to mentors.d.n code and Debian? I seem to
 have seen a video or read somewhere that he intended to do something
 like this.

I'm about to refactor m.d.n anyway (as I do every to years for the sheer
boredom). There are a few planned features like better statistics, a
dicussion forum for each package, better tracking of whether a package
was uploaded etc. But mainly it's important that we allow direct
comments from potential sponsors on the respective package page. Like
with IRC notification to the sponsorees if they are online.

So if anyone could tell me what features REVU has that m.d.n is lacking
then I'll consider adding them in the next release. I'm not active in
Ubuntu so I can't tell how things work there. I just see the commenting
feature and colorful icons there. ;)

Cheers
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-27 Thread Christoph Haas
On Fri, Jul 27, 2007 at 03:03:22PM -0500, Raphael Geissert wrote:
 Personally I would prefer to keep m.d.n simple and not having all of
 REVU's features. I'm giving some comments on the features and how I
 would prefer to be added to m.d.n

The less features the better (to implement). :)

 On 27/07/07, Paul Wise [EMAIL PROTECTED] wrote:
  On 7/27/07, Christoph Haas [EMAIL PROTECTED] wrote:
 Instead of only using dates (not to mention the lack of year) it
 should also display the package version. And I don't think it would be
 very useful to keep all versions (maybe only the comments and purge
 them after some time).

Seconded. The sponsors will need to diff the changes anyway. I could
offer to save a debdiff perhaps. But if I sponsor packages I get the
previous version (e.g. the one in the Debian archives), dget -x the
new version and diff them (kdiff3) to find out what has changed.

  Automated archiving of uploaded packages (last I checked, there were
  still some packages on mentors/sponsor-pkglist that have been
  uploaded) - 2 examples are paris-traceroute and monotone

 This depends on the definition of 'archiving'. It would be nice to
 have the package deleted from m.d.n when it is uploaded so maintainers
 are able to choose the package sponsor's status (e.g. when looking for
 a sponsor).

That's done already. If m.d.n detects that a package is uploaded (by
monitoring the debian-devel-changes mailing list) then the
maintainer/sponsoree gets an email and the package is removed. The only
exception is when package versions differ - then the maintainer is
informed but the package is kept.

  I can view the diff.gz files in my browser
 
  Can mark comments as 'advocating an upload'
 
 By the way, is there any way to make sure that the person marking a
 comment as 'advocating an upload' is really a DD (or in REVU's case
 UD, if that's how they call them :-/ )

Two things that make a DD a DD are the PGP/GPG keyring membership and
the @debian.org address. So if DDs hat to sign up at m.d.n they could
get a confirmation email sent to their @debian.org address.

  Unpacked source trees
 
 I think it is easier to download the package files and check
 everything in the local computer than browsing every single file with
 a web browser. Otherwise I would expect the online file viewer to have
 syntax colouring and that kind of things.

I wouldn't want to hack that together really.

Cheers
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-27 Thread Christoph Haas
On Fri, Jul 27, 2007 at 04:13:21PM -0400, Scott Kitterman wrote:
 BTW, postfix-policyd-spf-perl is still looking for a sponsor:
 
 http://lists.debian.org/debian-mentors/2007/07/msg00578.html

Pretty off-thread-topic. :) But I would generally sponsor it if it were
running properly as a daemon (e.g. init.d).

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: RFS for postfix-policyd-spf-perl was - Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-27 Thread Christoph Haas
On Fri, Jul 27, 2007 at 04:26:54PM -0400, Scott Kitterman wrote:
 http://mentors.debian.net/debian/pool/main/p/postfix-policyd-spf-perl

Sponsored.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


signature.asc
Description: Digital signature


Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-27 Thread Christoph Haas
On Fri, Jul 27, 2007 at 03:31:16PM -0500, Raphael Geissert wrote:
 On 27/07/07, Christoph Haas [EMAIL PROTECTED] wrote:
  That's done already. If m.d.n detects that a package is uploaded (by
  monitoring the debian-devel-changes mailing list) then the
  maintainer/sponsoree gets an email and the package is removed. The only
  exception is when package versions differ - then the maintainer is
  informed but the package is kept.
 
 I can tell you that it doesn't works as expected, you can take a look at:
 http://mentors.debian.net/debian/pool/main/f/ffmpeg-php/
 http://mentors.debian.net/debian/pool/main/k/kgb/
 http://mentors.debian.net/debian/pool/main/p/php-adodb/
 
 Those three are already in Debian and I never received a notification.

Sorry, after checking I found that somehow the automatic processing
address on m.d.n was no longer subscribed to debian-devel-changes. This
should be fixed now.

I wish there were an easy way to parse the NEW queue. Perhaps I'll need
to use BeautifulSoup and just parse that page.

 Christoph


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Accepted python-authkit 0.4.0~r95-1 (source all)

2007-07-26 Thread Christoph Haas
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Format: 1.7
Date: Tue, 17 Jul 2007 00:37:16 +0200
Source: python-authkit
Binary: python-authkit
Architecture: source all
Version: 0.4.0~r95-1
Distribution: unstable
Urgency: low
Maintainer: Christoph Haas [EMAIL PROTECTED]
Changed-By: Christoph Haas [EMAIL PROTECTED]
Description: 
 python-authkit - authentication and authorisation framework for Python WSGI 
applic
Changes: 
 python-authkit (0.4.0~r95-1) unstable; urgency=low
 .
   * New upstream version (trunk, subversion revision 95) packaged.
 Upstream version 0.3.0 is deprecated and the current trunk is suggested
 for use by the upstream developer.
Files: 
 deb86a75b36a7818d05faca0c444af12 825 python optional 
python-authkit_0.4.0~r95-1.dsc
 af94f25328e4d7c756fa9347237acff0 165341 python optional 
python-authkit_0.4.0~r95.orig.tar.gz
 91e0562b13b59b87ab408fc3660ba3a3 3562 python optional 
python-authkit_0.4.0~r95-1.diff.gz
 d8c74a04b3336e3e6d3dce8765a5a177 57822 python optional 
python-authkit_0.4.0~r95-1_all.deb

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGqIMtCV53xXnMZYYRAiWyAKCAGkyQ8xI5BSeSajPOK8Joo4PzKQCgxjy4
XmjQtBsm7quV30KYQViCfp4=
=EaXC
-END PGP SIGNATURE-


Accepted:
python-authkit_0.4.0~r95-1.diff.gz
  to pool/main/p/python-authkit/python-authkit_0.4.0~r95-1.diff.gz
python-authkit_0.4.0~r95-1.dsc
  to pool/main/p/python-authkit/python-authkit_0.4.0~r95-1.dsc
python-authkit_0.4.0~r95-1_all.deb
  to pool/main/p/python-authkit/python-authkit_0.4.0~r95-1_all.deb
python-authkit_0.4.0~r95.orig.tar.gz
  to pool/main/p/python-authkit/python-authkit_0.4.0~r95.orig.tar.gz


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Why PHP is so much more popular for web-development

2007-07-25 Thread Christoph Haas
On Wed, Jul 25, 2007 at 12:34:08PM -0700, walterbyrd wrote:
 When I posted Python I meant the Python web-developement world. In
 particular, python frameworks, like CherryPy, have requirements that
 are not realistic for most shared hosting plans.

It's true that the requirements are higher than what the old-school
CGI/PHP web hosters offer. But with todays virtual root servers it's
really inexpensive to run such a server. And using frameworks allows you
to control all aspects of the web serving like URL dispatching, error
handling and is probably even faster than PHP because necessary
resources (like database connections) are initalized upon startup of the
web application. PHP and CGIs do this everytime they get called.

 Maybe I'm wrong, but I often get the idea that those  who develop
 python frameworks don't give a thought to the realities of shared
 hosting. They seem to think that everybody has complete control over
 the server. Things are very different in the PHP universe.

Without wanting to sound arrogant: it's my belief that web hosters just
offering htdocs/PHP will probably just be useful for the noob-customers
who have no idea of operating systems but just want their blinking
personal homepage online.

There are good PHP applications and I wouldn't want to give up
phpmyadmin or squirrelmail. But with today's demand for fully
controllable interactive (you will never hear me propagate that bullshit
buzzword Web x.0) web sites a framework seems to be a viable way.
For me PHP has a bitter taste of easy enough for every noob to use it
which makes it the language the most insecure applications are written
in.

 The point is: PHP framework makers are very considerate of the
 realities of shared hosting. Python framework makers don't seem to
 give it a thought. Just maybe, that's something that Python could
 learn from PHP.

Perhaps. But the hosting market changes. And I believe that PHP suits
the simpler applications better. I would point a beginner in web
programming more likely to PHP than torture them with frameworks. It's
just too heavy. OTOH full-featured frameworks are way more complicated
and have eviler requirements but there are hardly any limitation on the
kinds of sites you can power with them.

EO2¢

Cheers
 Christoph

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Sponsorship guidelines for codehelp - now online.

2007-07-24 Thread Christoph Haas
On Tue, Jul 24, 2007 at 03:32:15PM +0100, Neil Williams wrote:
 On Tue, 24 Jul 2007 18:50:08 +0530
 Kumar Appaiah [EMAIL PROTECTED] wrote:
 
  In fact, I precisely looked for that page in your Debian home page. Do
  get to making it when you get the time.
 
 Done.
 
 http://people.debian.org/~codehelp/#sponsor
 
 (If this could be added to mentors.debian.net in due course maybe? Ta.)

Done.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#434536: python-openid: Please rebuild the package to include egg information

2007-07-24 Thread Christoph Haas
Package: python-openid
Version: 2.0.0-1
Severity: normal

Please rebuild your package. No need to change anything. It will install
the egg information properly so that other packages that check if
python-openid is installed will not fail (e.g. python-authkit).

 Christoph

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (900, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-3-686 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages python-openid depends on:
ii  python2.4.4-6An interactive high-level object-o
ii  python-central0.5.14 register and build utility for Pyt
ii  python-urljr  1.0.1-1.1  Common interface to urllib2 and cu
ii  python-yadis  1.1.0-1.1  Yadis service discovery library

python-openid recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: RFS: moe

2007-07-22 Thread Christoph Haas
On Sun, Jul 22, 2007 at 04:40:43PM +0530, Kumar Appaiah wrote:
 I am looking for a sponsor for my package moe.

Sponsored.

 Christoph


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-22 Thread Christoph Haas
On Sun, Jul 22, 2007 at 07:37:13PM +0200, Nico Golde wrote:
 Hi,
 * Kumar Appaiah [EMAIL PROTECTED] [2007-07-22 19:26]:
  (Cross posted to debian-devel, debian-mentors)
  Dear Debian developers,
  
  I have written a few crude and rudimentary scripts to find an
  approximate list of packages which have been or have _not_ been
  sponsored despite an RFS to debian-mentors.
  
  The program generates bad output if the RFS mailer has not given the
  package name right after the first RFS in the subject, that too,
  with a space etc., but it's a start, and gives you the idea.
  
  Also, the list is a HTML page, with every package having a link. The
  link points to the RFS message in the Debian Mentors archive.
 [...] 
 Thanks for your work! But basically you do work that already 
 had been done by mentors.debian.net. Ok not everyone is 
 using this service but it would be good if they would.

Kumar and I talked on IRC and I wondered how many of the RFS'd packages
get actually uploaded. mentors.debian.net recognizes when an uploaded
package gets sponsored but so far I was too lazy to implement proper
statistics at that point. Even then it would only measure packages that
used mentors.debian.net as an intermediate repository.

The actual discussion came up when we talked about whether the current
GR on non-DDs with upload permissions is good or bad for Debian. And we
agreed that Debian lacks a lot of packages just because the poor package
maintainer (tm) didn't find a sponsor in time.

Cheers
 Christoph


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-22 Thread Christoph Haas
On Sun, Jul 22, 2007 at 08:23:39PM +0100, Neil Williams wrote:
 On Sun, 22 Jul 2007 21:01:20 +0200
 Ondrej Certik [EMAIL PROTECTED] wrote:
 
   The actual discussion came up when we talked about whether the
   current GR on non-DDs with upload permissions is good or bad for
   Debian. And we agreed that Debian lacks a lot of packages just
   because the poor package maintainer (tm) didn't find a sponsor in
   time.
  
  Yes, that is the most difficult part. I think it would also help, if
  there was some official repository for unnoficial packages, so that I
  (as non-DD) could just upload my package to mentors (which I can now)
  and then just add the deb line (not just deb-src) into
  sources.list and could easily use all packages from mentors (at least
  on i386). Because now everyone has it's own private repository, which
  I find very unfortunate.
 
 The reason packages on mentors.debian.net are not available as binaries
 for apt, only as source, is because packages for sponsoring often
 contain errors and problems that need to be fixed after review by a
 sponsor. It would not be wise, IMHO, for mentors.debian.net to send out
 a message that unreviewed packages are suitable for installation on
 the normal Debian systems of ordinary users.

Exactly. And that's what happened when we included the binary packages
in the repository. Users complained to our support address about bad
packages. Not even to mention the internet traffic (that costs me
real-world money). Source packages hardly create any traffic. Good thing
our scripts throw away binary packages. :)

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: List of (un)sponsored packages on Mentors (approximate)

2007-07-22 Thread Christoph Haas
On Sun, Jul 22, 2007 at 07:37:13PM +0200, Nico Golde wrote:
 Hi,
 * Kumar Appaiah [EMAIL PROTECTED] [2007-07-22 19:26]:
  (Cross posted to debian-devel, debian-mentors)
  Dear Debian developers,
  
  I have written a few crude and rudimentary scripts to find an
  approximate list of packages which have been or have _not_ been
  sponsored despite an RFS to debian-mentors.
  
  The program generates bad output if the RFS mailer has not given the
  package name right after the first RFS in the subject, that too,
  with a space etc., but it's a start, and gives you the idea.
  
  Also, the list is a HTML page, with every package having a link. The
  link points to the RFS message in the Debian Mentors archive.
 [...] 
 Thanks for your work! But basically you do work that already 
 had been done by mentors.debian.net. Ok not everyone is 
 using this service but it would be good if they would.

Kumar and I talked on IRC and I wondered how many of the RFS'd packages
get actually uploaded. mentors.debian.net recognizes when an uploaded
package gets sponsored but so far I was too lazy to implement proper
statistics at that point. Even then it would only measure packages that
used mentors.debian.net as an intermediate repository.

The actual discussion came up when we talked about whether the current
GR on non-DDs with upload permissions is good or bad for Debian. And we
agreed that Debian lacks a lot of packages just because the poor package
maintainer (tm) didn't find a sponsor in time.

Cheers
 Christoph


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Accepted python-yadis 1.1.0-1.1 (source all)

2007-07-22 Thread Christoph Haas
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Format: 1.7
Date: Mon, 23 Jul 2007 00:42:11 +0200
Source: python-yadis
Binary: python-yadis
Architecture: source all
Version: 1.1.0-1.1
Distribution: unstable
Urgency: low
Maintainer: Mikhail Gusarov [EMAIL PROTECTED]
Changed-By: Christoph Haas [EMAIL PROTECTED]
Description: 
 python-yadis - Yadis service discovery library
Closes: 433489
Changes: 
 python-yadis (1.1.0-1.1) unstable; urgency=low
 .
   * Non-maintainer upload (closes: #433489). Nothing changed. Just rebuilt to
 include egg information.
Files: 
 a052024c574499327736ac7684b13af3 689 python optional python-yadis_1.1.0-1.1.dsc
 717a6ade4baf8212893f789c7cf1c11e 1426 python optional 
python-yadis_1.1.0-1.1.diff.gz
 53528472af1514e88b5b145349cdf755 186658 python optional 
python-yadis_1.1.0-1.1_all.deb

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGo91+CV53xXnMZYYRAvMFAKCVk1ExA89JjSIwYXZZS6UGgZwQvwCfUDx0
yqwgu/VBNXJohedp2rGnMro=
=dlna
-END PGP SIGNATURE-


Accepted:
python-yadis_1.1.0-1.1.diff.gz
  to pool/main/p/python-yadis/python-yadis_1.1.0-1.1.diff.gz
python-yadis_1.1.0-1.1.dsc
  to pool/main/p/python-yadis/python-yadis_1.1.0-1.1.dsc
python-yadis_1.1.0-1.1_all.deb
  to pool/main/p/python-yadis/python-yadis_1.1.0-1.1_all.deb


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Accepted python-urljr 1.0.1-1.1 (source all)

2007-07-22 Thread Christoph Haas
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Format: 1.7
Date: Mon, 23 Jul 2007 00:34:29 +0200
Source: python-urljr
Binary: python-urljr
Architecture: source all
Version: 1.0.1-1.1
Distribution: unstable
Urgency: low
Maintainer: Mikhail Gusarov [EMAIL PROTECTED]
Changed-By: Christoph Haas [EMAIL PROTECTED]
Description: 
 python-urljr - Common interface to urllib2 and curl for making HTTP requests
Closes: 433485
Changes: 
 python-urljr (1.0.1-1.1) unstable; urgency=low
 .
   * Non-maintainer upload (closes: #433485). Nothing changed. Just rebuilt to
 include egg information.
Files: 
 8a0593889eb1cb0f45233d4bd8e47f07 688 python optional python-urljr_1.0.1-1.1.dsc
 22b59c9b65fef4bdc5fcae23ff595a2c 1436 python optional 
python-urljr_1.0.1-1.1.diff.gz
 d94eb3a4332673b211141b4d71c53b50 8246 python optional 
python-urljr_1.0.1-1.1_all.deb

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGo9w7CV53xXnMZYYRAkOpAJ9BfRyoHJGCvPjimBSRHHCWsSEtcQCg2UUl
u8xCcXXBng8e3yPCC1HjlDg=
=v6OV
-END PGP SIGNATURE-


Accepted:
python-urljr_1.0.1-1.1.diff.gz
  to pool/main/p/python-urljr/python-urljr_1.0.1-1.1.diff.gz
python-urljr_1.0.1-1.1.dsc
  to pool/main/p/python-urljr/python-urljr_1.0.1-1.1.dsc
python-urljr_1.0.1-1.1_all.deb
  to pool/main/p/python-urljr/python-urljr_1.0.1-1.1_all.deb


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Lazy for line in f ?

2007-07-22 Thread Christoph Haas
On Sun, Jul 22, 2007 at 09:10:50AM -0700, Alexandre Ferrieux wrote:
 I'm a total newbie in Python, but did give quite a try to the
 documentation before coming here.
 Sorry if I missed the obvious.
 
 The Tutorial says about the for line in f idiom that it is space-
 efficient.
 Short of further explanation, I interpret this as doesn't read the
 whole file before spitting out lines.

Correct. It reads one line at a time (as an iterator) and returns it.

 In other words, I would say lazy. Which would be a Good Thing, a
 much nicer idiom than the usual while loop calling readline()...

The space-efficiency is similar. The faux pas would rather to read the
whole file with readlines().

 But when I use it on the standard input, be it the tty or a pipe, it
 seems to wait for EOF before yielding the first line.

Standard input is a weird thing in Python. Try sending two EOFs
(Ctrl-D). There is some internal magic with two loops checking for EOF.
It's submitted as a bug report bug the developers denied a solution.
Otherwise it's fine. In a pipe you shouldn't even notice.

 Christoph

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Nagios version

2007-07-21 Thread Christoph Haas
On Sat, Jul 21, 2007 at 12:01:20AM +0200, Magnus Holmgren wrote:
 On Friday 20 July 2007 22:53, Christoph Haas wrote:
  David,
 
  please use your real email address. workaround.org is a domain hosted by
  myself and I'm pretty positive I didn't give you a freedotfr hostname in
  that domain.
 
 Dudu obviously sent a mail with an unqualified address in the From: field, 
 which your mail server (and mine) qualified with the local domain.

Oh, funny. Actually I intended my mail server to not do that. Been
bitten by my own ignorance. :)

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Nagios version

2007-07-20 Thread Christoph Haas
David,

please use your real email address. workaround.org is a domain hosted by
myself and I'm pretty positive I didn't give you a freedotfr hostname in
that domain.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Request for binNMU of python-yadis and python-urljr

2007-07-19 Thread Christoph Haas
On Thu, Jul 19, 2007 at 12:08:10AM -0700, Steve Langasek wrote:
 On Tue, Jul 17, 2007 at 08:56:41PM +0200, Christoph Haas wrote:
  Please rebuild these packages. They lack egg-info information that will
  be included if the packages are just rebuilt thanks to a more recent
  version of python-setuptools.
 
  This applies to:
 
  - python-urljr 1.0.1-1 [Closes: #433485]
  - python-yadis 1.1.0-1 [Closes: #433489]
 
 BinNMUs are not supported for arch: all packages.

True. But it is possible to rebuild them anyway without waiting for the
maintainer?

 Christoph


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#433485: python-urljr: Please install .egg-info file

2007-07-17 Thread Christoph Haas
Package: python-urljr
Version: 1.0.1-1
Severity: normal

Please install the .egg-info file properly in your debian/rules. Otherwise
packages that check for ez_setup/setuptools dependencies will assume that
python-urljr is not installed properly.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-4-686 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to de_DE.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages python-urljr depends on:
ii  python2.4.4-6An interactive high-level object-o
ii  python-central0.5.14 register and build utility for Pyt

Versions of packages python-urljr recommends:
ii  python-pycurl  7.16.2.1-3+b1 Python bindings to libcurl

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#433489: python-yadis: Please include egg-info

2007-07-17 Thread Christoph Haas
Package: python-yadis
Version: 1.1.0-1
Severity: normal

Please include the python_yadis-1.1.0.egg-info file. Otherwise other Python
modules that use ez_setup or setuptools cannot detect that python-yadis is
installed.

Interestingly I didn't even have to change your package. I just rebuilt it
and the egg file was there. So please consider rebuilding and re-uploading.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-4-686 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to de_DE.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages python-yadis depends on:
ii  python2.4.4-6An interactive high-level object-o
ii  python-central0.5.14 register and build utility for Pyt
ii  python-elementtree1.2.6-11   Light-weight toolkit for XML proce

python-yadis recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#433485: Just rebuild and upload

2007-07-17 Thread Christoph Haas
I just learned that you probably don't even have to change your package.
Just rebuild it and upload it. The current version of setuptools
installs the egg-info file automatically.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#433556: python-setuptools: Please update to 0.6c6

2007-07-17 Thread Christoph Haas
Package: python-setuptools
Version: 0.6c5-3
Severity: wishlist

Please update your package to upstream version 0.6c6
python-pylons will need it shortly. Thanks.

Please also consider putting your package under team maintenance of the
Debian Python Modules Team.
(http://python-modules.alioth.debian.org/python-modules-policy.html)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Pylons 0.9.6 Release Candidate 1

2007-07-17 Thread Christoph Haas

On Mon, Jul 16, 2007 at 03:19:16PM -0700, Ben Bangert wrote:
 On Jul 16, 2007, at 2:40 PM, Jose Galvez wrote:
 
 Sure,
 First I was testing with pylons-0.9.6rc2dev_r2256-py2.5.egg
 
 The project was created with pylons 0.9.4.1 and then converted after
 installing rc2 using overwrite the test project was not installed using
 easy_install simply created and run from the created egg
 
 Ah, when converting projects I highly recommend using the diff option with
 paster, then backing up the old file and merging changes. This way you don't
 miss important things, which happened in your case.

Is it possible to make that a tad more comfortable? Like running a
predefined command on those two files? vimdiff or kompare come to my
mind. Currently I'm watching the diff (which isn't always easy because
the output is confusing - you have to search thoroughly where the
current diff starts), launching another shell and running vimdiff. I'm
sure that can be improved. Or should I bug Ian about that?

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Pylons 0.9.6 Release Candidate 1

2007-07-17 Thread Christoph Haas

On Tue, Jul 17, 2007 at 11:34:03AM -0500, Ian Bicking wrote:
 
 Christoph Haas wrote:
  On Mon, Jul 16, 2007 at 03:19:16PM -0700, Ben Bangert wrote:
  On Jul 16, 2007, at 2:40 PM, Jose Galvez wrote:
 
  Sure,
  First I was testing with pylons-0.9.6rc2dev_r2256-py2.5.egg
 
  The project was created with pylons 0.9.4.1 and then converted after
  installing rc2 using overwrite the test project was not installed using
  easy_install simply created and run from the created egg
 
  Ah, when converting projects I highly recommend using the diff option with
  paster, then backing up the old file and merging changes. This way you 
  don't
  miss important things, which happened in your case.
  
  Is it possible to make that a tad more comfortable? Like running a
  predefined command on those two files? vimdiff or kompare come to my
  mind. Currently I'm watching the diff (which isn't always easy because
  the output is confusing - you have to search thoroughly where the
  current diff starts), launching another shell and running vimdiff. I'm
  sure that can be improved. Or should I bug Ian about that?
 
 Isn't it easier at that point just to backup the files and diff the 
 backup and the new file?

That's a slight improvement over my step-by-step approach I'm doing now.
I'd still prefer an extra option to launch vimdiff. But I surely can
live without it. Paster's upgrade process is great already. How many
frameworks or environments force you throw away everything...

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Request for binNMU of python-yadis and python-urljr

2007-07-17 Thread Christoph Haas
Please rebuild these packages. They lack egg-info information that will
be included if the packages are just rebuilt thanks to a more recent
version of python-setuptools.

This applies to:

- python-urljr 1.0.1-1 [Closes: #433485]
- python-yadis 1.1.0-1 [Closes: #433489]

Kindly
 Christoph


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Broken uploads to mentors.debian.net

2007-07-16 Thread Christoph Haas
On Sun, Jul 15, 2007 at 10:30:39PM +0100, Neil Williams wrote:
 On Sun, 15 Jul 2007 22:41:57 +0200
 Christoph Haas [EMAIL PROTECTED] wrote:
 
  On Sun, Jul 15, 2007 at 12:31:29AM +0200, I wrote:
   On Sat, Jul 14, 2007 at 10:42:52PM +0100, Neil Williams wrote:

However, the .dsc file uploaded to m.d.n references a
different .orig.tar.gz: 
8287bfd7e9ef9a507024bf34761791d8 9562064 xracer_0.96.9.orig.tar.gz
  
   I'll look into this later today and probably fix it.
  
  Now I checked the import script at mentors.debian.net and also did a
  few test uploads. If a 'dsc' file mentions an orig tarball then the
  old tarball is replaced in every case. So if the package maintainer
  would upload a package built with -sa (including the orig tarball
  even with non-1 revisions) then everything should work well.
  
  I have no good explanation for the situation Neil mentioned though.
 
 It turned out to be due to a broken upload - an FTP connection timeout.
 (I've been busy finalising the actual upload.)
 
 The maintainer used nemesis to keep the next connection alive.
 
  The package maintainer must have uploaded a package with an orig
  tarball. But then the orig tarball was changed and an upload without
  an orig tarball was done that mentioned the orig tarball though.
  
  How come the .dsc file mentions an orig file that is not uploaded? All
  files mentioned in the .dsc file must be uploaded. I'm confused.
 
 Is there some way of detecting a failed FTP upload and removing the
 corrupted files?

If files are missing that are listed in the .changes file then the
upload is rejected altogether. So I wonder how that could have lead to
this problem.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



SAContext and paster shell

2007-07-16 Thread Christoph Haas

Dear list,

I'm on SQLAlchemy 0.3.9 and SAContext 0.3.1 now with Pylons 0.9.6-rc1. A
lot of knowledge is useless now that SQLAlchemy changed quite a few
things regarding queries and Pylons doesn't have pylons.database any
longer.

Currently I'm trying to get myself acquainted with a lot of syntax and
wanted to use the paster shell to play around. But when using
SAContext the way it's described (pydoc sacontext) I just get this error
when I try to query the database:

*

In [4]: model.sac.query(model.Contact).get(1)
---
sqlalchemy.exceptions.InvalidRequestError   Traceback (most 
recent call last)

/home/chaas/projekte/pylons/phonebook/ipython console

/usr/lib/python2.4/site-packages/sqlalchemy/orm/query.py in get(self, ident, 
**kwargs)
101 return ret
102 key = self.mapper.identity_key(ident)
-- 103 return self._get(key, ident, **kwargs)
104
105 def load(self, ident, **kwargs):

/usr/lib/python2.4/site-packages/sqlalchemy/orm/query.py in _get(self, key, 
ident, reload, lockmode)
945 try:
946 statement = self.compile(self._get_clause, 
lockmode=lockmode)
-- 947 return self._select_statement(statement, params=params, 
populate_existing=reload, version_check=(lockmode is not None))[0]
948 except IndexError:
949 return None

/usr/lib/python2.4/site-packages/sqlalchemy/orm/query.py in 
_select_statement(self, statement, params, **kwargs)
953 if params is None:
954 params = {}
-- 955 return self.execute(statement, params=params, **kwargs)
956
957 def _should_nest(self, querycontext):

/usr/lib/python2.4/site-packages/sqlalchemy/orm/query.py in execute(self, 
clauseelement, params, *args, **kwargs)
853 
854
-- 855 result = self.session.execute(self.mapper, clauseelement, 
params=params)
856 try:
857 return self.instances(result, **kwargs)

/usr/lib/python2.4/site-packages/sqlalchemy/orm/session.py in execute(self, 
mapper, clause, params, **kwargs)
181 resources of the underlying ``Connection``, otherwise its a 
no-op.
182 
-- 183 return self.connection(mapper, 
close_with_result=True).execute(clause, params, **kwargs)
184
185 def scalar(self, mapper, clause, params, **kwargs):

/usr/lib/python2.4/site-packages/sqlalchemy/orm/session.py in connection(self, 
mapper, **kwargs)
168 return self.transaction.connection(mapper)
169 else:
-- 170 return self.get_bind(mapper).contextual_connect(**kwargs)
171
172 def execute(self, mapper, clause, params, **kwargs):

/usr/lib/python2.4/site-packages/sqlalchemy/orm/session.py in get_bind(self, 
mapper)
270 e = mapper.mapped_table.engine
271 if e is None:
-- 272 raise exceptions.InvalidRequestError(Could not locate 
any Engine bound to mapper '%s' % str(mapper))
273 return e
274

InvalidRequestError: Could not locate any Engine bound to mapper 
'Mapper|Contact|contacts'

*

Using pylons.database it was formerly necessary to bind the metadata to
an engine somehow using:

model.meta.connect(model.session_context.current.bind_to)

What should I do now with SAContext?

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Change in my sponsorship requirements

2007-07-15 Thread Christoph Haas
On Sun, Jul 15, 2007 at 12:41:16PM +0200, Bart Martens wrote:
 On Sun, 2007-07-15 at 11:45 +0200, martin f krafft wrote:
  I make use of
  the new ~ character in version strings. Even more my own packages,
  I'll release
  
1.0-1~unreleased.1
1.0-1~unreleased.2
1.0-1~unreleased.3
  
  until it's final and I can release 1.0-1, for which I merge the
  previous changelog entries. This is more work and requires more
  recompiles, but it does the job without cluttering the changelog.
 
 That is a good approach, in my opinion.
 
 To make this approach more complete, the packager requesting a sponsor
 could package the software initially with this version and revision:
 
1.0~rfs.1-1~rfs.1
 
 After each review the revision number is incremented:
 
1.0~rfs.1-1~rfs.2
1.0~rfs.1-1~rfs.3
1.0~rfs.1-1~rfs.4
 
 When the .orig.tar.gz needs repackaging, then this happens:
 
1.0~rfs.2-1~rfs.1
1.0~rfs.3-1~rfs.1
 
 And when it's finally allright, then the package (containing a
 debian/README.Debian-source) can still get this version and revision
 when uploaded to Debian:
 
1.0-1

As I outlined in the mentors.debian.net thread I'm a great fan of not
having different uploads with the same revision number. So I'd even like
to enforce that uploads to mentors.debian.net with the same revision
number as an existing upload is ignored.

However the above proposals have two issues I don't really like:

- they tell the package maintainer that the revision must be -1 when
  the package finally enters Debian. The pre releases using the
  ~unreleased.1 syntax tastes complicated.
- if the sponsor deems the package worthy to be uploaded then the
  sponsoree would still need to build the package again because it is
  finally allowed to carry the -1 revision

Why so complicated? Just increase the revision number. And if 1.0-8 is
the first revision that fits the sponsor's taste then be it so. The
ftp-master server is not oppinionated on revisions higher than -1.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Broken uploads to mentors.debian.net

2007-07-15 Thread Christoph Haas
On Sun, Jul 15, 2007 at 12:31:29AM +0200, I wrote:
 On Sat, Jul 14, 2007 at 10:42:52PM +0100, Neil Williams wrote:
  Just had a problem with a package for sponsoring that, AFAICT, could
  not happen with other repositories that I use, so I'm a tad concerned
  about how it happened on m.d.n.
  
  http://mentors.debian.net/debian/pool/main/x/xracer/
  
  A package has been uploaded to m.d.n several times during sponsoring
  (not uncommon) at the same version (also no uncommon) so
  the .orig.tar.gz is unchanged (which is correct):
  xracer_0.96.9.orig.tar.gz 26-Jun-2007 17:26  9.1M
  
  Other files have been updated, as expected:
  xracer_0.96.9-1.diff.gz   14-Jul-2007 17:28   28K  
  xracer_0.96.9-1.dsc   14-Jul-2007 17:28  1.4K  
  
  That .orig.tar.gz on m.d.n is the same as my last build:
   41bdf64eca9960ae8932e27e7ba2bea1 9562055 xracer_0.96.9.orig.tar.gz
  
  However, the .dsc file uploaded to m.d.n references a
  different .orig.tar.gz: 
  8287bfd7e9ef9a507024bf34761791d8 9562064 xracer_0.96.9.orig.tar.gz

 I'll look into this later today and probably fix it.

Now I checked the import script at mentors.debian.net and also did a few
test uploads. If a 'dsc' file mentions an orig tarball then the old
tarball is replaced in every case. So if the package maintainer would
upload a package built with -sa (including the orig tarball even with
non-1 revisions) then everything should work well.

I have no good explanation for the situation Neil mentioned though. The
package maintainer must have uploaded a package with an orig tarball.
But then the orig tarball was changed and an upload without an orig
tarball was done that mentioned the orig tarball though.

How come the .dsc file mentions an orig file that is not uploaded? All
files mentioned in the .dsc file must be uploaded. I'm confused.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Broken uploads to mentors.debian.net

2007-07-14 Thread Christoph Haas
On Sat, Jul 14, 2007 at 10:42:52PM +0100, Neil Williams wrote:
 Just had a problem with a package for sponsoring that, AFAICT, could
 not happen with other repositories that I use, so I'm a tad concerned
 about how it happened on m.d.n.
 
 http://mentors.debian.net/debian/pool/main/x/xracer/
 
 A package has been uploaded to m.d.n several times during sponsoring
 (not uncommon) at the same version (also no uncommon) so
 the .orig.tar.gz is unchanged (which is correct):
 xracer_0.96.9.orig.tar.gz 26-Jun-2007 17:26  9.1M
 
 Other files have been updated, as expected:
 xracer_0.96.9-1.diff.gz   14-Jul-2007 17:28   28K  
 xracer_0.96.9-1.dsc   14-Jul-2007 17:28  1.4K  
 
 That .orig.tar.gz on m.d.n is the same as my last build:
  41bdf64eca9960ae8932e27e7ba2bea1 9562055 xracer_0.96.9.orig.tar.gz
 
 However, the .dsc file uploaded to m.d.n references a
 different .orig.tar.gz: 
 8287bfd7e9ef9a507024bf34761791d8 9562064 xracer_0.96.9.orig.tar.gz
 
 Of course, dget -x now refuses to unpack this package - error from
 dpkg-source.
 
 I suspect an error in the .dsc but I thought that dput should have
 caught that or that the repository management tools at m.d.n should
 have complained (noisily):
 
 Uploaded foo.dsc needs foo.orig.tar.gz with md5sum  which differs
 from the existing foo.orig.tar.gz with md5sum  or similar and
 rejected the upload.
 
 I know I have had those kind of warnings from reprepro with other
 repositories - IIRC it is why we have md5sums in the .dsc in the first
 place (in addition to GnuPG signatures).
 
 Is this a result of the need to allow repeated uploads of packages at
 the same version?

Actually I don't like the idea of uploading a different file with the
same revision number. But a lot of sponsors seem to expect a ~mentors001
revision suffix or just always a -1 revision until the package is
sponsored. When I sponsor packages I always make my sponsorees use
proper revision numbers. Who cares if it takes 10 revisions until the
package is ready for upload? Let it be revision -10 then. At least I
don't need to know that the sponsoree meant the version from yesterday
evening 7 p.m. CET-4 but rather use revision -4. I found it
educationally better to handle mentors.debian.net just like the usual
ftp-master:
- once uploaded the orig tarball can't be altered any more
- new uploads are only valid with higher version/revision numbers

But since so many people insisted that the same revision should be
allowed to be overwritten I didn't enforce that.

 Can something be done with the m.d.n scripts that handle dput uploads
 to enforce a check that the existing .orig.tar.gz (which should not
 normally change during sponsorship) matches the reference in the .dsc
 and allow for the odd occasion where the .orig.tar.gz does have to be
 repackaged with an explicit mechanism?

I just checked the import script I wrote quite a while ago that handles
the uploaded files. There is but one situation that I can think of where
that clash of orig tarballs could happen:

- a sponsoree creates a package for the first time
- the orig tarball gets uploaded as it is referenced in the changes/dsc
  file
- the sponsoree somehow alters the orig tarball but keeps the filename
  (or rather the name and version number)
- mentors.debian.net believes it already has the orig file in the pool
  directory and ignores the newly uploaded file

Instead of obeying the MD5 sum of the package at that point (I do when
the .dsc file is checked though) I'll make sure that all the uploaded
files will replace all previous existing files of a source package in
the pool directories. That should do it.

 At the very least, m.d.n should be able to prevent this situation where
 'dget -x' fails as this is the most common method of sponsors obtaining
 sources from m.d.n.

Correct. I have to either forbid that or make it work gracefully.
I think I'll rather accept that but send the uploader a big warning.

 If it helps, I have been able to fettle the .dsc to use the correct
 values for the existing .orig.tar.gz and it has unpacked OK - it
 appears to simply be an error in the .dsc caused by some problem with
 the sponsoree. However, I am unable to upload the package in this
 condition (which is frustrating for the sponsoree because this package
 has had quite a few changes and he has put in a significant amount of
 work getting it ready for sponsoring). I was all ready to upload the
 package tonight too.

Current workaround: let the sponsoree delete the package through the web
interface and re-upload.

I'll look into this later today and probably fix it.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: putting binary data into the response

2007-07-13 Thread Christoph Haas

On Fri, Jul 13, 2007 at 01:09:06PM -0700, Jose Galvez wrote:
 Hi all, I know this should be simple but I can't find the answer anywhere, I
 have some images in a database that I need to send to a webpage.  So I have a
 simple controller that should just send the binary data but I can't find how 
 to
 stuff binary data into the response object.  here is my code
 
def photo(self, id):
 sac = model.sac
 q = sac.query
 binaryImage = q(model.Students).get(id).photo
 res = Response()
 res.headers['Content-type'] = 'image/jpeg'
 res.write(binaryImage)
 return res
 
 which displays nothing

I have written a function that returns XML. It looks like:

response = pylons.Response(the_actual_xml_string)
response.headers['content-type'] = text/xml
return response

Would that help? I just didn't use .write() here.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: PROBLEMS WITH TIMESTAMP variable in MySql

2007-07-13 Thread Christoph Haas

Disclaimer: I'm no SQLAlchemy guru.

On Fri, Jul 13, 2007 at 01:53:48PM -, robertz23 wrote:
  Hi,  I've been using SQLAlchemy since a month.  I'm having some
 problems with a one-to-many relationship.  I have 2 tables: one for
 users and one for users's emails.  The problem arises when I want to
 put a timestamp in the email table in order to see when a given
 account was created.  Here are the tables, my code, and the error:
 [...]
 user_table = Table('user', metadata, autoload=True)
 email_table = Table('email', metadata, autoload=True)
 class User(object):
 pass
 class Email(object):
 pass
 session_context = SessionContext(create_session)
 assign_mapper(session_context, User, user_table,
 properties={'emails':relation(Email)})
 assign_mapper(session_context, Email, email_table)
 
 obj = User()
 obj.get(1).emails

It looks like you are first creating a new User instance and then
calling .get(1) on it. I'd rather expect this to work:

emails = User.get(1).emails

Or following the query syntax that seems to be upcoming with 0.4:

emails = User.query.get(1).emails

Kindly
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



Re: A Python newbie ask a simple question

2007-07-13 Thread Christoph Haas
On Fri, Jul 13, 2007 at 06:35:16PM -, [EMAIL PROTECTED] wrote:
 what does the statement choice = raw_input(prompt)[0] mean? I don't
 know why there is a '[0]' in the statement.

It calls the raw_input function with the argument of prompt. That
function returns a list and you are getting the first ([0]) value from
that list.

Cheers
 Christoph

-- 
http://mail.python.org/mailman/listinfo/python-list


Bug#432515: pida: New upstream release 0.5

2007-07-10 Thread Christoph Haas
Package: pida
Version: 0.5-1
Severity: wishlist

Please package the current pida version 0.5


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: The is-Pylons-for-me post

2007-07-09 Thread Christoph Haas

Martin,

On Mon, Jul 09, 2007 at 12:30:18AM -0700, Martin Aspeli wrote:
 We've just (almost certainly) chosen Pylons for a quick-and-dirty web
 application project. There are just a few outstanding things that we
 need to do, which I'm not sure how to approach. Speed is of the
 essence here, so having examples or documentation would be a huge
 help. I also don't have much time for trial-and-error, so opinionated
 responses highly appreciated.
 
   1. We need a fairly heavily AJAXified UI. Is Prototype and the
 Railsish web helpers the best way to go?
 
 I'm a little wary of code generation in general and Prototype in
 particular, but I'm willing to ignore my instincts if this is the way
 people tend to do things. I haven't seen many tutorials or examples of
 alternative approaches, e.g. jQuery or MochiKit. The front page of
 pylonshq.com suggests other toolkits are supported, but I can't find
 any more resources. :-/

I am no Javascript guru. And I mainly use it for effects and features
like autocompletion or AJAX. Since the webhelpers support
script.aculo.us/prototype I started with that but in the used jQuery.
With jQuery you don't need much (if any) help by the webhelpers.
The Javascript code you write is so short that code generation is
unnecessary.

   2. Specifically, we need an auto-complete widget. I see
 Script.aculo.us has one of those, but no corresponding web helper.

Just include the Javascript code from the script.aculo.us web site into
your HTML template. However the widget never worked as expected here.
E.g. using backspace and typing other character for a new match cached
too much. Only this plugin for jQuery finally did what I expected:

http://www.pengoworks.com/workshop/jquery/autocomplete.htm

There is just a bug in it that I had to fix myself:

 - options.matchSubset = options.matchSubset || 1;

You cannot set matchSubset to 0 because it will always be set back to
1. I mailed the author about that a long time ago but never heard
anything since. Change it to:

 - options.matchSubset = options.matchSubset || 0;

And set the parameter to 1 should you need it.

 How easy would it be to hand-code the use of such a widget? Should I
 look for other frameworks instead?

I don't think that the webhelpers are really necessary to create
Javascript code. When I started with Pylons I assumed that I had to use
script.aculo.us but switching to jQuery was trivial.

 In fact, we need something even more dynamic: the user should use an
 auto-complete select box to find items and then press Enter or click a
 button to add it to a dynamically growing list, i.e. letting this act
 as a dynamic, auto-complete multi-select widget.

Didn't need that yet but doesn't sound hard.

   3. Are there any example applications that demonstrate the use of
 AuthKit (with a custom, in-the-app login form, and sensible
 permission/role/user handling and user storage)?

That's not too hard. Custom-made permissions are just Python code. So it
depends on what you put into them. The login form is used when you use
the forward method. Authkit - just like Pylons - doesn't hold you hand
here. Just create a database table for your users and store the
passwords (MD5-hashed) in there. Then let the login form verify that the
password matches and then allow the user in.

 I've seen the AuthKit tutorial, but it uses fairly frivolous examples.

I'm not happy with the Authkit documentation either. There are a dozen
copies flying around but they either deal with the not-yet-released 0.4
or speak of configuration parameters that are wrong.

 Maybe more questions later... but so far, what we've seen and tested
 of Pylons has been great.  :)

We love it, too. :)

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: RFS: alien-arena - First person online deathmatch shooter

2007-07-03 Thread Christoph Haas
On Sat, Jun 30, 2007 at 12:11:33AM -0400, Andres Mejia wrote:
 On 6/29/07, Christoph Haas [EMAIL PROTECTED] wrote:
 I have looked at your package. It looks good and is working. I would
 just suggest you shorten the texts in debian/copyright and
 debian/control to less than 80 characters per line.
 
 Thanks for the suggestions. With this I now have no lintian warnings
 or errors on both packages. :) The lines in debian/copyright and
 debian/control files in both packages have been shortened to less than
 80 characters.

The README.Debian still contains very long lines. Perhaps that can be
fixed in a next revision.

Other than that the package looks good to me and I'm currently uploading
it. Will probably take a while through my 384 kbps uplink.

Cheers
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#431573: python-policyd-spf: Please add proper init.d script

2007-07-03 Thread Christoph Haas
Package: python-policyd-spf
Version: 0.3-1
Severity: wishlist

This software is supposed to be a daemon. Please install it like a
daemon. init.d files, logging, /etc/default, config files, logrotate
etc. Thanks.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (900, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-3-686 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages python-policyd-spf depends on:
ii  python2.4.4-6An interactive high-level object-o
ii  python-spf2.0.3-2sender policy framework (SPF) modu
ii  python-support0.6.4  automated rebuilding support for p

Versions of packages python-policyd-spf recommends:
ii  postfix   2.4.0-3+b1 A high-performance mail transport 

-- debconf-show failed


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: RFS: powertop (updated package)

2007-07-01 Thread Christoph Haas
On Sun, Jul 01, 2007 at 05:21:03PM +0200, Krzysztof Burghardt wrote:
 I am looking for a sponsor for the new version 1.7~svn-r227-1
 of my package powertop.

Sponsored! Is there a reason you took the SVN version instead of 1.7
stable?

Funny though that uscan found out there is a 1.17 version online
although the web site says 1.7 is the most current version.

Cheers
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


signature.asc
Description: Digital signature


Re: A note on lintian clean packages and mentors.d.n

2007-07-01 Thread Christoph Haas
On Sun, Jul 01, 2007 at 06:11:00PM +0200, Nico Golde wrote:
 I saw many packages using the template from 
 mentors.debian.net which then always says:
 The package is lintian clean.
 
 And I saw many packages which are not lintian clean but 
 state otherwise which really sucks. Can you change this 
 string to something like:
 
 Please check your package for the Debian policy using
 the lintian package. If it doesn't complain please state
 that the package is lintian clean. This is a must for most
 of the packages.

Sounds a bit complicated. I have changed the text slightly to
...appears to be lintian-clean. The lintian version on
mentors.debian.net is the Etch version. We can install a backport
though.

Cheers
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


signature.asc
Description: Digital signature


Re: A note on lintian clean packages and mentors.d.n

2007-07-01 Thread Christoph Haas
On Sun, Jul 01, 2007 at 07:21:51PM +0200, Nico Golde wrote:
 Hi,
 * Christoph Haas [EMAIL PROTECTED] [2007-07-01 19:13]:
  On Sun, Jul 01, 2007 at 06:11:00PM +0200, Nico Golde wrote:
   I saw many packages using the template from 
   mentors.debian.net which then always says:
   The package is lintian clean.
   
   And I saw many packages which are not lintian clean but 
   state otherwise which really sucks. Can you change this 
   string to something like:
 [...] 
  Sounds a bit complicated. I have changed the text slightly to
  ...appears to be lintian-clean. The lintian version on
  mentors.debian.net is the Etch version. We can install a backport
  though.
 
 That would be very nice.

Lintian is now v1.23.31 instead of v1.23.28 (Etch). Hope that helps.

Cheers
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


signature.asc
Description: Digital signature


Re: A note on lintian clean packages and mentors.d.n

2007-07-01 Thread Christoph Haas
On Sun, Jul 01, 2007 at 02:39:10PM -0500, Raphael Geissert wrote:
 On 01/07/07, Christoph Haas [EMAIL PROTECTED] wrote:
 On Sun, Jul 01, 2007 at 07:21:51PM +0200, Nico Golde wrote:
  Hi,
  * Christoph Haas [EMAIL PROTECTED] [2007-07-01 19:13]:
   On Sun, Jul 01, 2007 at 06:11:00PM +0200, Nico Golde wrote:
I saw many packages using the template from
mentors.debian.net which then always says:
The package is lintian clean.
   
And I saw many packages which are not lintian clean but
state otherwise which really sucks. Can you change this
string to something like:
  [...]
   Sounds a bit complicated. I have changed the text slightly to
   ...appears to be lintian-clean. The lintian version on
   mentors.debian.net is the Etch version. We can install a backport
   though.
 
  That would be very nice.
 
 Lintian is now v1.23.31 instead of v1.23.28 (Etch). Hope that helps.
 
 Is lintian only checking the .deb file or the .dsc file too?
 By the way, what do you think about making linda check the package too?

The .deb file (if it is uploaded at all) is thrown away. Lintian is
doing the checks on the .dsc file.

/me puts linda on the todo list.

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: RFS: command-not-found

2007-07-01 Thread Christoph Haas
On Sun, Jul 01, 2007 at 10:08:47PM +0200, Julian Andres Klode wrote:
 Dear mentors,
 
 I am looking for a sponsor for my package command-not-found.
 
 * Package name: command-not-found
   Version : 0.2.4+debian-1
   Upstream Author : Zygmunt Krynicki [EMAIL PROTECTED]
 Michael Vogt [EMAIL PROTECTED]
 * URL : https://launchpad.net/command-not-found
 * License : GPL
   Section : admin

Not sure. Perhaps shell as a section might match better.

 It builds these binary packages:
 command-not-found - Suggest installation of packages in interactive bash 
 sessions
 command-not-found-data - Set of data files for command-not-found

I just built and installed it. There is some funny whitespace in between
the messages:

===
$ inetd
Command 'inetd' is available in '/usr/sbin/inetd'
The command could not be located because '/usr/sbin' is not i ncluded in the 
PATH environment variable.
This is most likely caused by the lack of administ rative priviledges 
associated with your user account.
bash: inetd: command not found
===

i ncluded - included
administ rative - administrative
priviledges - privileges

Did you talk to the Ubuntu maintainer already? Perhaps it make sense to
join forces so that only one package is built?

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: How do I set my form to be a unicode string?

2007-07-01 Thread Christoph Haas

On Sun, Jul 01, 2007 at 11:27:38AM -0300, Walter Cruz wrote:
 Well, I asked before search the in the list archives!

Sorry, no. If you like to continue the topic you brought up with another
thread then please use the other thread. I didn't follow the other
thread. If you start a new thread then I recommend you put all necessary
information into it.

 What I needed:
 
 tmpl_options['mako.input_encoding'] = 'UTF-8'
 tmpl_options['mako.output_encoding'] = 'UTF-8'
 tmpl_options['mako.default_filters'] = ['decode.utf8']
 request_settings = dict(charset='utf-8', errors='replace')
 return pylons.config.Config(tmpl_options, map,
 paths,request_settings=request_settings)

You shouldn't need the mako.default_filters setting. IMHO it slows done
things unnecessarily. The request_settings parameter does the work
already.

 In environment.py
 
 I changed my formencode validator to: UnicodeString and now it's ok.

Very good.

 But I'm with a doubt:
 
 Even with this, in my templates I've to use:
 
 ${h.link_to(uNova citação, h.url(action=new))}
 
 (Note the u before Nova citação).
 
 How can I configure this to avoid to say that this is string is unicode?

You can't. A string contains 7-bit character in Python. So if you use
anything besides 7-bit ASCII you need to use unicode objects. Generally
(not only with Pylons) it's wise to always use Unicode internally and
just convert them on input/output. Trust me - it will save you time and
hassle.

Kindly
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: RFS: alien-arena - First person online deathmatch shooter

2007-06-29 Thread Christoph Haas
Andres,

On Thu, Jun 28, 2007 at 07:49:01PM -0400, Andres Mejia wrote:
 I am looking for a sponsor for my package alien-arena.

I have looked at your package. It looks good and is working. I would
just suggest you shorten the texts in debian/copyright and
debian/control to less than 80 characters per line.

And of course the package is both non-free and huge. (It would take
hours to upload it to Debian via my tiny ISP uplink.) I'm a bit hesitant
regarding uploading it. And I can't verify the upstream tarball/zipball
due to lack of disk space currently. :(

Cheers
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


signature.asc
Description: Digital signature


Bug#430947: python-docutils: Please create man page from help output

2007-06-28 Thread Christoph Haas
Package: python-docutils
Version: 0.4-4
Severity: wishlist

I would appreciate to get proper manpages instead of reading the --help
output. Should be easy with help2man. Thanks in advance.


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-4-686 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to de_DE.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages python-docutils depends on:
ii  python2.4.4-6An interactive high-level object-o
ii  python-central0.5.14 register and build utility for Pyt
ii  python-roman  0.4-4  A module for generating/analyzing 

python-docutils recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#392302: Perhaps a workaround

2007-06-28 Thread Christoph Haas
I had the exact same trouble when upgrading from Sarge to Etch. But just
on one system. Nobody seemed to be able to help so I tried a desperate
thing and reinstalled the installed packages:

for pkg in `dpkg -l | grep ^i | awk '{print $2}'` ; do aptitude \
reinstall $pkg ; done

After that the problem was gone here. Can't tell more about the actual
cause.

 Christoph



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: problems with mentors.debian.net mailserver

2007-06-26 Thread Christoph Haas
On Mon, Jun 25, 2007 at 08:49:25PM +0200, Vincent Bernat wrote:
 OoO En cette aube naissante du  lundi 25 juin 2007, vers 07:00, Michael
 Gilbert [EMAIL PROTECTED] disait:
 
  hello,
  i tried to sign up for a mentors account today
  (http://mentors.debian.net/cgi-bin/maintainer-signup), but got the
  following error, which appears to be a mailserver failure:
 
 It  seems that  mentors.debian.net has  other problems  as well.  I have
 uploaded a package  yesterday but it is still  not available. Maybe they
 are upgrading the host to Etch ?

Yes, I was. There have been problems with the MTA (email) setup and the
import process didn't like to start. I hope the problems are fixed now.
Please reply if you still encounter trouble.

Kindly
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


signature.asc
Description: Digital signature


Re: problems with mentors.debian.net mailserver

2007-06-26 Thread Christoph Haas
On Tue, Jun 26, 2007 at 12:17:50PM +0200, Francesco Namuri wrote:
 I'm trying to send a mail to [EMAIL PROTECTED], but I get a
 bounce from the mailer daemon.

Right. I have a workaround installed now. But somehow the otrs is
borked. Working on it...

 Christoph


signature.asc
Description: Digital signature


[sqlalchemy] Re: Qualified column names in JOINs?

2007-06-23 Thread Christoph Haas

On Fri, Jun 22, 2007 at 08:30:07PM -, Michael Bayer wrote:
 the contents of the columns clause is configurable via the select()
 construct directly:
 
 result=select([records_a, records_ptr],
 records_a.c.type=='A',
 from_obj=[model.outerjoin(records_a, records_ptr,
 ( (records_a.c.inet==records_ptr.c.inet) 
 (records_ptr.c.type=='PTR') ))],
 use_labels=True).execute().fetchone()

Very good. That does what I wanted. A full outer join would be perfect
but I'm willing to UNION my way through. :)

Thank you.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Qualified column names in JOINs?

2007-06-22 Thread Christoph Haas

Dear list,

I'm trying to join a table with itself. That works well. However since
the column names are identical I had no luck accessing both the original
and the joined information.

I have aliased the tables already and run the join on the aliased names.
But the column names are still not qualified.

Example:

records_a   = model.records_table.alias('records_a')
records_ptr = model.records_table.alias('records_ptr')
joined = records_a.select(...,
from_obj=[outerjoin(records_a, records_ptr,
records_a.c.foo==records_ptr.c.bar)).execute().fetchone()

The records contain fields like 'id', 'type' or 'name'. So I tried
this and failed:

print joined[0].records_a.c.id
print joined[0]['records_a.id']

However I _can_ access the result columns without the table alias:

print joined[0].id
print joined[0]['id']

Is there some magical hidden parameter that qualifies the rows of the
result?

Kindly
 Christoph

P.S.: I'm now trying the example from self-referential mappers.
  But the general question is still valid because in every join
  it might happen that column names overlap.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Qualified column names in JOINs?

2007-06-22 Thread Christoph Haas

On Fri, Jun 22, 2007 at 11:50:51AM -0400, Michael Bayer wrote:
 On Jun 22, 2007, at 9:59 AM, Christoph Haas wrote:
 
  I'm trying to join a table with itself. That works well. However since
  the column names are identical I had no luck accessing both the  
  original
  and the joined information.
 
  I have aliased the tables already and run the join on the aliased  
  names.
  But the column names are still not qualified.
 
  Example:
 
  records_a   = model.records_table.alias('records_a')
  records_ptr = model.records_table.alias('records_ptr')
  joined = records_a.select(...,
  from_obj=[outerjoin(records_a, records_ptr,
  records_a.c.foo==records_ptr.c.bar)).execute().fetchone()
 
  The records contain fields like 'id', 'type' or 'name'. So I tried
  this and failed:
 
  print joined[0].records_a.c.id
  print joined[0]['records_a.id']
 
 that makes no sense.  joined is a result of fetchone() so it  
 therefore a RowProxy.  joined[0] is the first column of the row.  the  
 value of joined[0] should be a scalar.

Sorry, you are right. I was pasting incorrectly. Here is a real-life session:

In [2]: records_a=model.records_table.alias('records_a')

In [3]: records_ptr=model.records_table.alias('records_ptr')

In [4]: result=records_a.select(records_a.c.type=='A', 
from_obj=[model.outerjoin(records_a, records_ptr, ( 
(records_a.c.inet==records_ptr.c.inet)  (records_ptr.c.type=='PTR') 
))]).execute().fetchone()
2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c SELECT 
records_a.id, records_a.domain_id, records_a.dhcpzone_id, records_a.name, 
records_a.type, records_a.content, records_a.ttl, records_a.prio, 
records_a.change_date, records_a.mac_address, records_a.inet
FROM records AS records_a LEFT OUTER JOIN records AS records_ptr ON 
records_a.inet = records_ptr.inet AND records_ptr.type = %(records_ptr_type)s
WHERE records_a.type = %(records_a_type)s
2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c 
{'records_a_type': 'A', 'records_ptr_type': 'PTR'}

In [5]: result.keys()
Out[5]:
['id',
 'domain_id',
 'dhcpzone_id',
 'name',
 'type',
 'content',
 'ttl',
 'prio',
 'change_date',
 'mac_address',
 'inet']

As you see the keys are just there once. Although the actual SQL result
contains these columns for both records_a and the joined records_ptr.

 to see all the literal column names, use result.fetchone().keys().   
 or, just turn on SQL echoing and watch the names generated.  the  
 easiest way to get at the column you want is to target using the  
 Column objects themselves:
 
 result.fetchone()[records_a.c.id]

Does not work in the way I tried:

In [6]: result=records_a.select(records_a.c.type=='A', 
from_obj=[model.outerjoin(records_a, records_ptr, ( 
(records_a.c.inet==records_ptr.c.inet)  (records_ptr.c.type=='PTR') 
))]).execute().fetchone()[recordsd_a.c.type]
2007-06-22 18:11:38,571 INFO sqlalchemy.engine.base.Engine.0x..6c SELECT 
records_a.id, records_a.domain_id, records_a.dhcpzone_id, records_a.name, 
records_a.type, records_a.content, records_a.ttl, records_a.prio, 
records_a.change_date, records_a.mac_address, records_a.inet
FROM records AS records_a LEFT OUTER JOIN records AS records_ptr ON 
records_a.inet = records_ptr.inet AND records_ptr.type = %(records_ptr_type)s
WHERE records_a.type = %(records_a_type)s
2007-06-22 18:11:38,572 INFO sqlalchemy.engine.base.Engine.0x..6c 
{'records_a_type': 'A', 'records_ptr_type': 'PTR'}
---
exceptions.NameError Traceback (most recent 
call last)

/home/chaas/projekte/dnsdhcp/ipython console

NameError: name 'recordsd_a' is not defined

Kindly
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Qualified column names in JOINs?

2007-06-22 Thread Christoph Haas

On Fri, Jun 22, 2007 at 04:40:58PM -, Michael Bayer wrote:
 On Jun 22, 12:12 pm, Christoph Haas [EMAIL PROTECTED] wrote:
  2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c SELECT 
  records_a.id, records_a.domain_id, records_a.dhcpzone_id, records_a.name, 
  records_a.type, records_a.content, records_a.ttl, records_a.prio, 
  records_a.change_date, records_a.mac_address, records_a.inet
  FROM records AS records_a LEFT OUTER JOIN records AS records_ptr ON 
  records_a.inet = records_ptr.inet AND records_ptr.type = 
  %(records_ptr_type)s
  WHERE records_a.type = %(records_a_type)s
  2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c 
  {'records_a_type': 'A', 'records_ptr_type': 'PTR'}
 
  In [5]: result.keys()
  Out[5]:
  ['id',
   'domain_id',
   'dhcpzone_id',
   'name',
   'type',
   'content',
   'ttl',
   'prio',
   'change_date',
   'mac_address',
   'inet']
 
  As you see the keys are just there once. Although the actual SQL result
  contains these columns for both records_a and the joined records_ptr.
 
 set use_labels=True in your select() statement.  the point of that is
 to combine table or alias names with column names as labels for all
 selected columns, so that names are automatically unique.  the column-
 targeting i mentioned also would rely upon this to differentiate
 between the two tables.

Thank you. It's a tiny bit closer. However that still only gives the
left side of the join as results:

result=records_a.select(
records_a.c.type=='A',
from_obj=[model.outerjoin(records_a, records_ptr,
( (records_a.c.inet==records_ptr.c.inet)  (records_ptr.c.type=='PTR') 
))],
use_labels=True).execute().fetchone()

In [9]: result
Out[9]: (108914, 1, None, u'foo.domain.tld', u'A', u'192.168.26.39', 86400, 0, 
None, None, '192.168.26.39')

In [10]: result.keys()
Out[10]:
['records_a_id',
 'records_a_domain_id',
 'records_a_dhcpzone_id',
 'records_a_name',
 'records_a_type',
 'records_a_content',
 'records_a_ttl',
 'records_a_prio',
 'records_a_change_date',
 'records_a_mac_address',
 'records_a_inet']

Sorry for being a pain. But I'm kind of stuck here.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Qualified column names in JOINs?

2007-06-22 Thread Christoph Haas

On Fri, Jun 22, 2007 at 07:22:05PM +0200, Christoph Haas wrote:
 
 On Fri, Jun 22, 2007 at 04:40:58PM -, Michael Bayer wrote:
  On Jun 22, 12:12 pm, Christoph Haas [EMAIL PROTECTED] wrote:
   2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c SELECT 
   records_a.id, records_a.domain_id, records_a.dhcpzone_id, records_a.name, 
   records_a.type, records_a.content, records_a.ttl, records_a.prio, 
   records_a.change_date, records_a.mac_address, records_a.inet
   FROM records AS records_a LEFT OUTER JOIN records AS records_ptr ON 
   records_a.inet = records_ptr.inet AND records_ptr.type = 
   %(records_ptr_type)s
   WHERE records_a.type = %(records_a_type)s
   2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c 
   {'records_a_type': 'A', 'records_ptr_type': 'PTR'}
  
   In [5]: result.keys()
   Out[5]:
   ['id',
'domain_id',
'dhcpzone_id',
'name',
'type',
'content',
'ttl',
'prio',
'change_date',
'mac_address',
'inet']
  
   As you see the keys are just there once. Although the actual SQL result
   contains these columns for both records_a and the joined records_ptr.
  
  set use_labels=True in your select() statement.  the point of that is
  to combine table or alias names with column names as labels for all
  selected columns, so that names are automatically unique.  the column-
  targeting i mentioned also would rely upon this to differentiate
  between the two tables.
 
 Thank you. It's a tiny bit closer. However that still only gives the
 left side of the join as results:
 
 result=records_a.select(
 records_a.c.type=='A',
 from_obj=[model.outerjoin(records_a, records_ptr,
 ( (records_a.c.inet==records_ptr.c.inet)  
 (records_ptr.c.type=='PTR') ))],
 use_labels=True).execute().fetchone()
 
 In [9]: result
 Out[9]: (108914, 1, None, u'foo.domain.tld', u'A', u'192.168.26.39', 86400, 
 0, None, None, '192.168.26.39')
 
 In [10]: result.keys()
 Out[10]:
 ['records_a_id',
  'records_a_domain_id',
  'records_a_dhcpzone_id',
  'records_a_name',
  'records_a_type',
  'records_a_content',
  'records_a_ttl',
  'records_a_prio',
  'records_a_change_date',
  'records_a_mac_address',
  'records_a_inet']

Update: I found another way - but with .select instead of .outerjoin:

In [9]: result = model.select([records_a, records_ptr],
(records_a.c.inet==records_ptr.c.inet)  (records_ptr.c.type=='PTR'),
use_labels=True).execute().fetchone()

In [10]: result.keys()
Out[10]:
['records_a_id',
 'records_a_domain_id',
 'records_a_dhcpzone_id',
 'records_a_name',
 'records_a_type',
 'records_a_content',
 'records_a_ttl',
 'records_a_prio',
 'records_a_change_date',
 'records_a_mac_address',
 'records_a_inet',
 'records_ptr_id',
 'records_ptr_domain_id',
 'records_ptr_dhcpzone_id',
 'records_ptr_name',
 'records_ptr_type',
 'records_ptr_content',
 'records_ptr_ttl',
 'records_ptr_prio',
 'records_ptr_change_date',
 'records_ptr_mac_address',
 'records_ptr_inet']

So I finally get both sides of the join. But this appears to be just an
INNER JOIN. There are records_a with no matching records_ptr and vice
versa. So my actual goal is a FULL OUTER JOIN that just fills
non-matching rows with NULL values. If I understoog correctly then full
outer joins are not yet supported due to some complications with Oracle
databases. So I thought I'd try a LEFT OUTER JOIN with a UNION of a
INNER (RIGHT) JOIN as a workaround as described at
http://en.wikipedia.org/wiki/Join_(SQL)#Full_outer_join (last
paragraph).

Since the above query is just an INNER JOIN I'd have to do a LEFT JOIN +
INNER JOIN + RIGHT JOIN.

Phew...

 Christoph



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Mapper with relation/custom join condition fails

2007-06-19 Thread Christoph Haas

On Tue, Jun 19, 2007 at 02:21:51AM +0300, [EMAIL PROTECTED] wrote:
  Perfectly. Although all the hassle makes me think even harder if
  there is really no other way of connecting these two database
  tables. A casted join with string comparison gets dirtier every
  time I look at it. :(

 excuse me if it sounds dumb... what about a middleman table of proper 
 (casted) values that is automaticaly build by some trigger? 
 i can guess at least 3 objections right now, but it is an option in 
 general principle...

Doesn't sound dumb at all. I assume you are thinking of an intermediary
table that is connecting primary keys like row 10 of dns table is
connected to row 515 of dhcp table. Yes, I'm considering that, too.
With secondary properties SQLAlchemy makes such many-to-many relations
really easy. However I have a higher risk of rows that have different IP
address values in this case. I'll think about it though.

Thanks for the suggestion.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Mapper with relation/custom join condition fails

2007-06-18 Thread Christoph Haas

Dear list...

I'm having trouble with two assign-mappers with a custom JOIN condition.
(And I admit that I'm not yet good at that in SQLAlchemy. So be gentle.)

powerdns_records_table = Table(
'records', meta,
Column('id', Integer, primary_key=True),
Column('name', Unicode(80)),
Column('type', Unicode(10)),
Column('content', Unicode(200)),
)
 
dhcp_hosts_table = Table(
'dhcp_hosts', meta,
Column('id', Integer, primary_key=True),
Column('ip_address', PGInet, nullable=False),
)
 
assign_mapper(session_context, DhcpHost, dhcp_hosts_table)

assign_mapper(session_context, DnsRecord, powerdns_records_table,
properties={
'dhcphost': relation(DhcpHost,

primaryjoin=(cast(powerdns_records_table.c.content,PGInet)==dhcp_hosts_table.c.ip_address),
foreign_keys=[powerdns_records_table.c.content]),
}
)

Yes, this may look a bit dirty. The JOIN condition is really that and I
have no chance to alter the table schemas because that's what another
application demands. The powerdns_records_table uses a string and
dhcp_hosts_table uses a PostgreSQL inet object (defined in SQLAlchemy
as types.PGInet) and I am trying to match those. I added the
foreign_keys parameter when SQLAlchemy complained:

ArgumentError: Can't locate any foreign key columns in primary join
condition 'CAST(records.content AS INET) = dhcp_hosts.ip_address'
for relationship 'DnsRecord.dhcphost (DhcpHost)'.  Specify
'foreign_keys' argument to indicate which columns in the join
condition are foreign.

Now when I try DnsRecords.get_by(content='10.0.0.1') I get:

ArgumentError: No syncrules generated for join criterion
CAST(records.content AS INET) = dhcp_hosts.ip_address

When I try that again (or use
DnsRecords.select(DnsRecords.c.content='10.0.0.1') then I get:

AttributeError: 'PropertyLoader' object has no attribute 'strategy'

The actual SQL query I'd expect would be:

SELECT * FROM records JOIN dhcp_hosts ON CAST(records.content AS
inet)=dhcp_hosts.ip_address WHERE records.content='10.0.0.1';

My SQLAlchemy version is 0.3.7. Any idea what might be the problem? If
that join condition is generally not supposed to work in SA I'll have to
do that matching manually in my Python code (which I expect to be way
slower than pure SQL). Are primaryjoins with less than trivial integer
unique IDs unsupported?

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



Re: using decorators with controllers

2007-06-17 Thread Christoph Haas

On Sun, Jun 17, 2007 at 12:47:47AM -0700, voltron wrote:
 I am having problems using decorators with controllers. In a test
 controller:
 
 # testcontroller.py
 
 def dec(func):
 # do lotsa things
 print im doing something
 finished = True
 if finished:
 func() # call the function you were decorating
 
 
 class HomeController(BaseController):
 def index(self):
 return render_response('index.html')
 
 @dec(home)
 def test(self):
 return render_response('test.html')
 
 tryinf this, I get an error:
 exceptions.TypeError: home() takes exactly 1 argument (0 given)
 
 I have to pass self to the function passed to the decorator somehow,
 what would be the best way to do this? I want the decorator to carry
 out a few things before calling the controller function its
 decorating.

I'm no decoration guru. But don't you have to return func in the
decorator?

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Global Authkit app protection

2007-06-17 Thread Christoph Haas

On Sun, Jun 17, 2007 at 10:01:24AM -, Jose Figueras wrote:
 Following Authkit with Pylons article (and a mixture of other
 articles, docs, etc) If I try to protect my whole application I see
 this strange error: exceptions.AssertionError: Forwarding loop
 detected; '/signin' visited twice (internal redirect path: ['/public',
 '/signin']) .

It usually means that your signin controller couldn't be accessed
without authentication. If you enforce authentication everywhere there
is no signin action you can even reach because you are not yet
authenticated. Chicken, egg. Check that you can call /signin without
problems first.

3. code in my main controller controllers/home.py:
 
class HomeController(BaseController):
 
def signin(self):
username = str(request.params.get('username',
 '').strip().lower())
password = str(request.params.get('username',
 '').strip())

Shouldn't that read 'password'? :)

if len(request.params)  1 and username == password:
request.environ['paste.auth_tkt.set_user']
 (username)
request.environ['REMOTE_USER'] = username
 
session['user'] = username
session.save()

No need to save the username into the session. It is usually available
everywhere through request.environ.

 But, with this style, I must to add security on all my controllers.

You can at least say that all actions in a controller should require
authentication by following
http://docs.pythonweb.org/pages/viewpage.action?pageId=9011252

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Global Authkit app protection

2007-06-17 Thread Christoph Haas

On Sun, Jun 17, 2007 at 09:03:42PM -, Jose Figueras wrote:
 
 On 17 jun, 13:22, Christoph Haas [EMAIL PROTECTED] wrote:
  On Sun, Jun 17, 2007 at 10:01:24AM -, Jose Figueras wrote:
   Following Authkit with Pylons article (and a mixture of other
   articles, docs, etc) If I try to protect my whole application I see
   this strange error: exceptions.AssertionError: Forwarding loop
   detected; '/signin' visited twice (internal redirect path: ['/public',
   '/signin']) .
 
  It usually means that your signin controller couldn't be accessed
  without authentication. If you enforce authentication everywhere there
  is no signin action you can even reach because you are not yet
  authenticated. Chicken, egg. Check that you can call /signin without
  problems first.
 
 It's possible to un-enforce authentication on one controller's method
 (or one controller)?

I don't think so. You'll have to use authentication for all the methods
except the signin form. My personal preference is to have a login
controller that deals with authentication (login/logout). All the other 
controllers may enforce authentication. Perhaps you put too much
application logic into that very controller that has nothing to do with
the actual authentication?

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: documentation unsearchable

2007-06-17 Thread Christoph Haas

On Sun, Jun 17, 2007 at 07:28:04AM -0700, gardsted wrote:
 I find the documentation for sqlalchemy very confusing.
 I find no way of navigating it efficiently or searching it.

Perhaps partly. Although we have to admit that the documentation is
generally very extensive and provides good examples. It's just not
always easy to find something. With the time you know what to look for
and where.

As a workaround you may use google and search for e.g.

site:www.sqlalchemy.org/docs filter_by

That way you search for filter_by just in the SQLAlchemy
documentation. Maybe Michael can add a google search feature on the
pages to simplify that?

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



Re: Pylons success story (IncidentNews)

2007-06-16 Thread Christoph Haas

On Fri, Jun 15, 2007 at 03:48:07PM -0700, Mike Orr wrote:
 My first Pylons site is in production now at http://incidentnews.gov/ .
 It's running the following:
 
 Pylons 0.9.6 dev r2009
 [...]
 Christoph Haas's alternative paginator

Glad to hear that the paginator is production-ready. Thanks for the
credit. :)

 Linux Gentoo (switching to Ubuntu Server Edition soon)

Out of curiosity. Do you run on the stable Ubuntu release, do you use
the unstable branch or do you put everything into a workingenv?

Very nice site. pylons++!

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: logo redux

2007-06-16 Thread Christoph Haas

On Sat, Jun 16, 2007 at 12:02:11PM -0700, michael wrote:
 I was reading over the mailing list threads about the logo and I kinda
 had an idea.  I just wanted to throw in my two cents.
 
 http://www.genoverly.com/pylons_play/pylons_logo_01_html.html

I like it. Without a lot of philosophy it shows that any logo might do -
it doesn't have to contain a real-life pylon. A pylons is a rather
complex structure anyway and that may be tricky if we need a button on
the bottom of each page of Pylons-driven website. Projects like jQuery
use a simpler geometric figure that goes smoothly on such a button.

 I hope I am not adding too much noise, overstepped any bounds, or
 stomping on any toes.

The Pylons community is pretty hard to stomp on. The worst thing that
can happen is that your contribution is thankfully accepted. :)

my.2¢(just)

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: [RFC] Alternative paginator

2007-06-15 Thread Christoph Haas

On Fri, Jun 15, 2007 at 12:08:31PM -0700, Mike Orr wrote:
 There's a bug in Christoph Haas's alternative paginator
 (http://workaround.org/pylons/paginator/)
 if the result set contains zero records and 'show_if_single_page' is true.
 
 Module inews.lib.paginator:245 in navigator
 text = '%s' % (self.first_page+(start_with_one and 1))
 TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

Oops.

 self.first_page was set to None in line 121.
 
 I think the solution is to add a stanza after this one:
 
 # Don't show navigator if there is no more than one page
 if self.page_count = 1 and show_if_single_page == False:
 return ''
 
 adding at line 237:
 
 # If zero result records, return a fake navigator
 return 'strong[1]/strong'

Not sure what's better. If there's nothing to navigate I personally
prefer not to see a useless navigator. But I think I can make this
behavior customizable through options.

I'll fix that shortly. I have added support for jQuery, too, because I
have averted from scriptaculous/prototype. There's still your question
on my list on how to degrade gracefully if there is no Javascript
support (as you asked for recently) anyway. Suggestions welcome if
anyone's quicker.

Kindly
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: [RFC] Alternative paginator

2007-06-15 Thread Christoph Haas

On Fri, Jun 15, 2007 at 09:26:00PM +0200, Christoph Haas wrote:
 I have added support for jQuery, too.

UPDATE: the jQuery enabled version is already online at
http://workaround.org/pylons/paginate

I have also moved some logic around so it might well be the reported bug
is gone. I'll check though.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: going off line

2007-06-15 Thread Christoph Haas

On Fri, Jun 15, 2007 at 02:11:01PM -0700, Shannon -jj Behrens wrote:
 Wish me luck with my fourth child which is due in two weeks!

Best wishes! But next time you better thread instead of fork. Four
children is prolly enough. :)

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: AuthKit Authorization Manager?

2007-06-13 Thread Christoph Haas

On Wed, Jun 13, 2007 at 11:28:31AM -0700, HiTekElvis wrote:
 I just started using AuthKit and have it working pretty snappily.
 Very pleased.
 
 Have a question:
 
 Is there a way to have a sort of Authorization Manager, where you can
 keep all of the permissions and authorizations in one file and don't
 have decorators and such sprinkled throughout the individual
 controllers?

I'm using an own module in lib/my/auth.py that contains my own
Permission classes that I then include from the lib/base.py. So it's
available as my.auth.MyPermission from the controllers.

Of course you still need to use the decorators inside the controllers
because that's where they appeal.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Mapped class + querying for DISTINCT field

2007-06-13 Thread Christoph Haas

I use my assign_mapper'd classes with a lot of joy so far. But now I
feel trapped. My table:

records_table = Table(
'records', meta,
Column('id', Integer, primary_key=True),
Column('name', Unicode(80)),
Column('type', Unicode(10)),
Column('content', Unicode(200)),
Column('ttl', Integer),
Column('prio', Integer))

My mapping:

class DnsRecord(object): pass
assign_mapper(session_context, DnsRecord, records_table)

Now I'd like to select all objects from that table with unique values in
the name column. In old-school SQL that would be:

SELECT DISTINCT name,* FROM records;

When I start with...

DnsRecord.select(...)

...I can just change the WHERE clause but not the actually selected
data. Do I really have to use

select([DnsRecord.c.name], distinct=True)

? It's simple and working. But I'd rather like to get the result as a
mapped class so that I can work with other columns, too. This way I just
received a list of strings when I .execute() it.

On #sqlalchemy I was proposed to:
- use a subselect with .filter()
- map a select instead of a Table()
- use result-set mapping

But these solutions sounded like dirty workarounds and I couldn't even
figure out the proper syntax to try it.

I have seen similar requests on the list that went unanswered. Is it an
obviously lacking feature in SA or is my idea just plain stupid? What is
the one truly right way (tm) to handle this?

Thanks,
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



Re: Can't get the blog tutorial to work

2007-06-12 Thread Christoph Haas

On Tue, Jun 12, 2007 at 05:34:47AM -0700, kib2 wrote:
 I'm new to Pylons and even more to DataBases.
 
 I followed your tutorial on how to make a basic blog with Pylons, but
 once I launch my app I've got the following errors :
 
 File 'C:\\Documents and Settings\\kib\\Bureau\\KIB\\blogtutorial\
 \blogtutorial\\controllers\\blog.py', line 21 in list
   c.blogPosts = list(model.BlogPosts.select())
 File 'c:\\python25\\lib\\site-packages\\SQLObject-0.9.0-py2.5.egg\
 \sqlobject\\sresults.py', line 165 in __iter__
   return iter(list(self.lazyIter()))
 File 'c:\\python25\\lib\\site-packages\\SQLObject-0.9.0-py2.5.egg\
 \sqlobject\\sresults.py', line 173 in lazyIter
   return conn.iterSelect(self)
 File 'c:\\python25\\lib\\site-packages\\SQLObject-0.9.0-py2.5.egg\
 \sqlobject\\dbconnection.py', line 399 in iterSelect
   return select.IterationClass(self, self.getConnection(),
 File 'c:\\python25\\lib\\site-packages\\SQLObject-0.9.0-py2.5.egg\
 \sqlobject\\dbconnection.py', line 264 in getConnection
   conn = self.makeConnection()
 File 'c:\\python25\\lib\\site-packages\\SQLObject-0.9.0-py2.5.egg\
 \sqlobject\\mysql\\mysqlconnection.py', line 76 in makeConnection
   e, self.host, self.port, self.db, self.user, self.password)
 OperationalError: (1045, Access denied for user
 'kib'@'localhost' (using password: YES)); used connection string:
 host=localhost, port=3306, db=blogtutorial, user=kib, pwd=kib
 
 This is the first time I use MySQL , I was never asked to give a
 username during the installation process (on Windows). I was only
 asked for a password.

Please consult the MySQL documentation on access privileges:

http://dev.mysql.com/doc/refman/5.1/en/privilege-system.html

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Accepted cream 0.39-2 (source all)

2007-06-05 Thread Christoph Haas
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Format: 1.7
Date: Tue, 05 Jun 2007 19:52:40 +0200
Source: cream
Binary: cream
Architecture: source all
Version: 0.39-2
Distribution: unstable
Urgency: low
Maintainer: Christoph Haas [EMAIL PROTECTED]
Changed-By: Christoph Haas [EMAIL PROTECTED]
Description: 
 cream  - VIM macros that make the VIM easier to use for beginners
Changes: 
 cream (0.39-2) unstable; urgency=low
 .
   * Desktop file now sets icon into text editors category
Files: 
 637cb8ccddab3588341655f6a3bd2e1b 549 editors optional cream_0.39-2.dsc
 98e4ef78d185fa5ee202ba1e9675935e 8642 editors optional cream_0.39-2.diff.gz
 b9823cdde3cc14e2e9847e3d655da106 752238 editors optional cream_0.39-2_all.deb

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGZad8CV53xXnMZYYRAqlHAKCGy6mrjPhO8s+8yqVSC1IO1s7FXQCg9mWA
F/Ptjjj95e6XyZFQnApI7BM=
=kpyi
-END PGP SIGNATURE-


Accepted:
cream_0.39-2.diff.gz
  to pool/main/c/cream/cream_0.39-2.diff.gz
cream_0.39-2.dsc
  to pool/main/c/cream/cream_0.39-2.dsc
cream_0.39-2_all.deb
  to pool/main/c/cream/cream_0.39-2_all.deb


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: web development without using frameworks

2007-06-05 Thread Christoph Haas
On Tue, Jun 05, 2007 at 03:01:01PM -0400, Chris Stewart wrote:
 I'm interested in learning web based python without the use of fancy 
 frameworks
 that are out there.  I'm having a hard time coming up with resources and
 examples for this.  Does anyone have anything that could be helpful?

I'd say the only decent ways are either using a full-featured framework
(I favor Pylons) or write plain CGIs. Even for the later a look into
http://wiki.python.org/moin/WebFrameworks might be useful (I wouldn't
say that web.py is really a framework - and it's listed there). Or you
write plain-old CGIs with Python's cgi module. I have also started
like that but currently only use frameworks because the cgi module is
pretty limited (compared to what Perl offers) and for serious
applications not really the way to go.

My 2¢

 Christoph

-- 
http://mail.python.org/mailman/listinfo/python-list


Accepted cream 0.39-1 (source all)

2007-06-04 Thread Christoph Haas
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Format: 1.7
Date: Mon, 04 Jun 2007 23:14:59 +0200
Source: cream
Binary: cream
Architecture: source all
Version: 0.39-1
Distribution: unstable
Urgency: low
Maintainer: Christoph Haas [EMAIL PROTECTED]
Changed-By: Christoph Haas [EMAIL PROTECTED]
Description: 
 cream  - VIM macros that make the VIM easier to use for beginners
Changes: 
 cream (0.39-1) unstable; urgency=low
 .
   * New upstream release
Files: 
 ff3c64d8e2900a38e3d37c5152c44d77 549 editors optional cream_0.39-1.dsc
 caef5e026c740b28c9d19eec4504d428 756873 editors optional cream_0.39.orig.tar.gz
 1a60a77151a767d9102e30a57a262f77 8343 editors optional cream_0.39-1.diff.gz
 9b79a56819b0ba6795f9d53916dc99d5 752178 editors optional cream_0.39-1_all.deb

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGZIf/CV53xXnMZYYRAtrEAJ4pGWg9DhyJ3gZm7yJsuQwvgCEVoACZAej4
4j8lX3UnVzFQa1y4frz9h4U=
=Z0Gh
-END PGP SIGNATURE-


Accepted:
cream_0.39-1.diff.gz
  to pool/main/c/cream/cream_0.39-1.diff.gz
cream_0.39-1.dsc
  to pool/main/c/cream/cream_0.39-1.dsc
cream_0.39-1_all.deb
  to pool/main/c/cream/cream_0.39-1_all.deb
cream_0.39.orig.tar.gz
  to pool/main/c/cream/cream_0.39.orig.tar.gz


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Why not move Apt to a relational database

2007-06-03 Thread Christoph Haas
On Sun, Jun 03, 2007 at 11:31:18AM +0100, Neil Williams wrote:
 On Sun, 03 Jun 2007 10:55:01 +0100
 Justin Emmanuel [EMAIL PROTECTED] wrote:
  I am brand new to this mailing list, I joined it because I had an idea
  that I would like to have considered. Moving apt to a relational
  database, for several reasons.
 
 What about embedded systems that can barely run sqlite?

Is sqlite really *that* heavyweight? Storing information about tens of
thousands of packages in plain text files is surely not the best idea.
Historically grown. Okay. But still worth to think about.

 apt needs to be part of the debian-installer, why lumber the installer
 with postgres or mysql or whatever?

Nobody wants to use pgsql or mysql as a prerequisite to a base
installation. Not the right tool for the job. Perhaps there is other
software that is even more basic than sqlite but more basic.

 That doesn't justify adding 10-20Mb of extra code to a rootfs -
 especially when an Emdebian rootfs may need to be 5Mb in total.

The current sqlite package is ~80 KB uncompressed. It I can imagine that
the database might even be smaller and waste less inodes than what apt
currently does.

  So what do you think? Is this the correct mailing list to send this idea
  to?
 
 Right mailing list but, IMHO, not a particularly good idea. Sorry.

Right mailing list. Very good idea IMHO and right to the point. We just
need a volunteer who knows enough about apt to make it use sqlite
without breaking everything. Or do we have to wait until Ubuntu sends us
a patch? ;)

When I complained about the slow package database (it turned out to be
that that many files on ext3 make reading the package cache take longer
than formatting a floppy disc on a 1541) someone pointed to:

http://people.debian.org/~seanius/dpkg-sqlite/

 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.


signature.asc
Description: Digital signature


Re: SQLAlchemy object

2007-06-03 Thread Christoph Haas

On Sat, Jun 02, 2007 at 01:09:37PM -0400, Michael Bayer wrote:
 at Mike Orr's prodding, ive worked up a SQLAlchemy context object  
 based on his proposal for a facade that deals with the various session 
 (context)/engine/metadata mixtures.  I think this would be a good  
 idea for the very reason that it encapsulates all the details of how  
 engines/metadata/session/etc get created and used. [...]
 
 from pylons.database import SAContext
 sac = SAContext()   # connects to engine in the .ini file by default
 [...]

I like your prosal a lot. It addresses everything that has annoyed me so
far. But why is it limited to pylons.database? Elixir tries to make SA
simpler. Can't the session context itself be jazzed up so thar
pylons.database does little more than read the sqlalchemy.dburi and
provide a session context?

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Pylons Logo Design

2007-06-02 Thread Christoph Haas

On Fri, Jun 01, 2007 at 03:15:19PM -0700, Ben Bangert wrote:
 On Jun 1, 2007, at 11:11 AM, Mike Orr wrote:
  The introduction can be improved, certainly.  I wasn't here when
  Pylons was started or the website was created, but my sense is that
  Pylons has evolved since then.  Its first adherents were looking for
  *any* framework that was Paste-ified (and thus WSGI-ified) from the
  ground up, and Pylons was it.  Now we're getting more Pythoneers who
  want something more modular than Turbogears, non-Pythoneers who want
  something like Rails, newbies who want something easy to code,
  scalable, performant, and stable.  The trick is to address all these
  audiences.  If we focus totally on newbies, that leaves everybody else
  cold.  Plus we need to focus on building 1.0 right now, not on
  bringing in hordes of newbies  Because...
 
 We definitely need new copy for the website introduction and  
 overview. Any volunteers?

I'm currently extending my concepts of pylons article into a longer
(actually it looks like it's getting longer than I expected)
introduction. It's still beta but I tried to sum up the advantages and
fun features about Pylons in
http://workaround.org/pylons/beginning-pylons.html#what-makes-pylons-stand-out-from-other-frameworks

Perhaps some of these points should be mentioned in the introductory
paragraph on the hq site. At least those are the points that make using
Pylons fun for me.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Pylons Logo Design

2007-06-01 Thread Christoph Haas

Hi, James...

On Fri, Jun 01, 2007 at 09:57:31AM +0100, James Gardner wrote:
 Ben and I have started thinking again about what really makes Pylons 
 different from other web frameworks and how we can best highlight those 
 differences in the Pylons marketing to help attract people to the 
 community and see Pylons gain further recognition and adoption.
 
 As part of the process we'd like to hire a professional designer to 
 create a new and striking logo for Pylons but we don't know of anyone 
 suitable ourselves so I'd like to send out a challenge: Does anyone on 
 the list know a top notch logo designer who they can recommend and who 
 might be interested in helping us design a fresh Pylons logo?
 
 Any recommendations will be much appreciated and after we've discussed 
 the options here on the list we'll commission the person whose work best 
 reflects Pylons.

I'm not sure if you followed the discussion we had on IRC about logos.
Yannick Gingras pointed out that http://www.everaldo.com/ is supporting
open-source projects. Might be worth a try. The artwork doesn't look
ugly.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Pylons Logo Design

2007-06-01 Thread Christoph Haas

On Fri, Jun 01, 2007 at 11:43:00AM +0100, James Gardner wrote:
 I didn't see the discussion actually but I've just had a look at the 
 logs. Actually I like the style of the everaldo icons and logos, do you 
 know if they are very costly?

From IRC (Yannick is not subscribed here):

12:57  YGingras Signum: but for the record, they can cost 1k$ but they do
  support free software.  The best think to do is to ask them
  what they are willing to do within your budget
12:59  YGingras Signum: you can use the contact form on
  http://www.yellowicon.com/
13:01  YGingras Signum: but I have other contacts from designers who made
  graphics for Ubuntu that will charge much less if price is an
  issue

Consider joining us at #pylons on irc.freenode.net. :)

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Pylons Logo Design

2007-06-01 Thread Christoph Haas

On Fri, Jun 01, 2007 at 10:21:12AM -0400, Dan wrote:
 This is all highly opinionated, but here are some of my suggestions.
 
 I think you should consider changing domain names.  I don't think the 
 name Pylons is bad, just combined with the domain pylonshq.com it just 
 doesn't stick.  I'd suggest using pylonsframework.org for the following 
 reasons:
 
 .org - Eludes to an open source/non-profit.   If Pylons is open 
 source/non-profit I think its a feature that you should mention to your 
 visitors... I didn't see licensing information anywhere on the homepage?
 
 pylonsframework - Eludes to Pylons being a framework right in the 
 domain.  I'd click on a URL for pylonsframework.org before pylonshq.com.

I second every single word of the above statement. pylonshq.com is
really a weird URL. IMHO djangoproject.com suffers from similar
problems like pylonshq.com. They are .com(mercial) and they are a
project instead of a creator of some software. Everything with project
sounds like new-age jargon for a music band.

pylonsproject.org is it. Or maybe pylons-framework.org.

 In general, the things that brought me to Pylons was the 1) speed and 
 libraries of Python and 2) MVC development.  Both are not even mentioned 
 on  the homepage.  It should be in the first paragraph.  WSGI seems 
 important, even if I didn't know why, but not a reason I'd choose Pylons 
 over another framework.

It has taken a while until I understood the meaning of it. And many web
developer will hardly care about WSGI. Writting middleware is not a job
for a coffee break unless it's your daily business.

 Its not something that I would say in the first 
 paragraph.   I'd say that most people care about two things: speed (both 
 development time and application performance) and stability.  These two 
 key points should be the focus of the introduction, to grab the visitors 
 attention.

Hmmm, speed and stability. I'd rather outline fun and
production-savvyness. paster shell is fun. --reload is fun. The
online debugger is fun. And its community - small but great. 

 I do think Pylons is flexible, which can be a feature, but 
 it can also be a hindrance... especially for newbies.  Thats tricky.

It's very likely not a feature for newbies. I was scared by it. And
while I write some more documentation on Pylons I'm increasingly scared
the more I see. Well, soon I'll be a guru perhaps and Ben et al will
come out with a new version that makes my knowledge deprecated.

 I hate to mention the word, but 'screencasts' is almost a standard.  It 
 wouldn't hurt if someone could put one together.

On the Python wiki there are 30 different web frameworks. Even if
someone decides that among the 5 frameworks is Pylons then the web site
needs to give a lot of information in very little time highlighting the
fun features. A screencast would be great (30 minutes are far too much -
perhaps 5-10 minutes). I'd even do it myself but I'm unsure whether my
spoken english will probably rather drive people away. :)

 Christoph

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: assign_mapper query methods

2007-06-01 Thread Christoph Haas

On Fri, Jun 01, 2007 at 07:17:19AM -0700, Michael Bayer wrote:
 so i didnt add filter() because i didnt feel like getting all the bug
 reports from people who have instance variables called filter, and
 also because my plan was to do away with *all* the select/filter/etc
 methods and have everything go through query().

Right. I didn't think of that possibility. Do I read that as
assign_mapper will die anyway because you have an implicit PITA tag
on it already? ;)

 but if we dont think its a problem im certainly not going to hold back
 assign_mapper from what people want it to be, im just putting out the
 issues there and you all can decide.

I think I will refrain from using assign_mapper in the future. I'd like
to use .filter() because it's great and I'd rather use the explicit
mapper syntax instead of the (barely easier) assign_mapper syntax just
to be consistent. Sometimes using the assign_mapper because it's simpler
but in other places use the mapper methods because they are more
powerful doesn't really look consistent. If you asked me: either provide
these methods on the assign_mapper, too, or let the assign_mapper die
sooner or later. Am I right that we are just talking of

john = session.query(User).get_by(name=john)

versus

john = User.get_by(name=john)

here? I think I can live with that. Inserting/creating new objects looks
the same with both mapping methods AFAIK. So we are talking about
wasting 15 bytes in every query. I'll go waste some bytes then.

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: assign_mapper query methods

2007-06-01 Thread Christoph Haas

On Fri, Jun 01, 2007 at 10:50:33AM -0700, David Shoemaker wrote:
 Both
 session.query(User).select()
 and
 User.query().select()
 seem more verbose than they need to be for my taste. However, I think most
 people (myself included) define a base class for all their mapped classes.

Uhm, that (few) people I know just use assign_mapper as demonstrated in
the many tutorials. Even myself. And now that you mention it I like the
idea. Not duplicating what SA is providing but rather making your own
life easier.

 I've always used this base class to provide the interface I want, no
 matter what interface sqlalchemy provides

Now I'm curious. Could you share your base class?

 That said, if I was new to sqlalchemy, I think I'd be scared to see
 session.query(User).select() as the recommended way in the tutorial.

From lurking on IRC I'm sure most people are indeed scared by SA. :)

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



Re: Apache mod_proxy + Pylons

2007-05-31 Thread Christoph Haas

On Thu, May 31, 2007 at 11:04:33AM -0700, voltron wrote:
 Actually its easy
 
 paster serve --daemon production.ini
 
 Thats it. I would not advice you to use --reload of you are using
 Debian though,

What makes you draw *that* funny conclusion? I'm developing Pylons
applications on Debian for months now and never have I had problems
stopping a process. Perhaps there are problems with STDIN/STDOUT if you
run paster serve --reload foo.ini and close the window but that is not
a problem of Debian. If you really need that you should consider running
it in screen.

You may argue whether kill -9 is a good idea or not. Try killing
processes that hog system resources and see if you get further access to
the resources. Your system will become unstable. You cannot shoot a
bullet into a tire while driving on the highway and expect things to
work as smoothly as before.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: assign_mapper query methods

2007-05-31 Thread Christoph Haas

TOFU day? Okay, me too. ;)

If I may cast a vote: yes, please add these 10 methods (if they are
remotely connected to selecting or changing rows) and start with
.filter(). I'm working with assign_mapped objects most the time and just
have to use a completely different (Query) syntax if I want to
.filter(). It's great that the .filter() exists and that Query has
adopted the functionality of SelectResults. But even if it would be
extra work I'd love to see the methods be available both for the bare
Query object as well as for a mapped class. That keeped my code more
consistent. Otherwise I'll probably stop using assign_mapper - what
would a pity - for not having to explain to my coworkers why using two
different way to play with the database.

 Christoph

On Thu, May 31, 2007 at 08:47:01PM -0700, Michael Bayer wrote:
 heres the question.  Query gets 10 new methods one day.  do we then
 add 10 methods to assign_mapper() ?  must the user class be a total
 clone of Query ?  assign_mapper just bugs me for this reason.   hence
 i like entity.query() better.  im not sure which one youre saying you
 prefer ?
 
 On May 31, 5:46 pm, Mike Orr [EMAIL PROTECTED] wrote:
  What are future plans for the assign_mapper query methods?
 
  MyClass.select(...)
  -- works great.  A clear advantage for assign_mapper over the
  regular mapper.
 
  MyClass.filter(...)
  -- doesn't exist.
 
  MyClass.query().filter(...)
  -- works but is undocumented and requires a convoluted monkeypatch
  in the source.  Not so clear an advantage over the regular mapper
  because it's so verbose.
 
  The third is the one I've found most useful.  That way I can have
  functions that return a Query, and the caller can call .select(),
  .select(offset=,limit=), or .count() as they wish.
 
  --
  Mike Orr [EMAIL PROTECTED]
 
 
  

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



Re: Sessions an Pylons

2007-05-27 Thread Christoph Haas

On Sun, May 27, 2007 at 01:04:30PM -0700, voltron wrote:
 I read this on the Beaker site:
 
 Beaker is light WSGI middleware layer that provides session's using
 Myghty's Container API
 
 Does this also work with Mako? Are all of the functions available?

Yes, the API works 1:1 on Mako. Ben has taken care of that.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: 'Address already in use' error

2007-05-27 Thread Christoph Haas

On Sun, May 27, 2007 at 01:55:55PM -0700, voltron wrote:
 one thing, just using kill process number on Linux, you would have
 to use kill -9, maybe its the same on OSX

Better not. Sending the signal 9 (SIGKILL) is a very harsh way that may
even lead to inconsistencies and make you need to reboot the system.
Use a normal kill without any signal number and you should be fine.

I have many coworkers who are so used to blindly sending signals 9
around and wonder why their systems become instable. :)

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Bug#425917: postinst: $DOMAINNAME unset

2007-05-24 Thread Christoph Haas
Package: dovecot-common
Version: 1:1.0.0-1
Severity: minor

The postinst file that is supposed to create the SSL certificates does
not seem to set the $DOMAINNAME variable so that the OU of the generated
certificate does not contain the domain part.

Suggestion: instead of $HOSTNAME.$DOMAINNAME use $FQDN.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (900, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-3-686 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages dovecot-common depends on:
ii  adduser  3.102   Add and remove users and groups
ii  libc62.5-5   GNU C Library: Shared libraries
ii  libcomer 1.39+1.40-WIP-2006.11.14+dfsg-2 common error description library
ii  libkrb53 1.6.dfsg.1-3MIT Kerberos runtime libraries
ii  libldap2 2.1.30-13.4 OpenLDAP libraries
ii  libmysql 5.0.38-3mysql database client library
ii  libpam-r 0.79-4  Runtime support for the PAM librar
ii  libpam0g 0.79-4  Pluggable Authentication Modules l
ii  libpq5   8.2.4-1 PostgreSQL C client library
ii  libsqlit 3.3.16-1SQLite 3 shared library
ii  libssl0. 0.9.8e-4SSL shared libraries
ii  openssl  0.9.8e-4Secure Socket Layer (SSL) binary a
ii  ucf  2.0021  Update Configuration File: preserv
ii  zlib1g   1:1.2.3-13  compression library - runtime

dovecot-common recommends no packages.

-- debconf-show failed


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: SQLAlchemy and Pylons

2007-05-23 Thread Christoph Haas

On Wed, May 23, 2007 at 12:14:34AM -0700, voltron wrote:
 What is the recommend usage of SQLAlchemy and Pylons? I found these
 links, what is preffered?
 
 http://docs.pythonweb.org/display/pylonscookbook/SQLAlchemy+for+people+in+a+hurry

I'm using this (^^^) approach. The only drawback is that you cannot
autoload=True currently. I'd be glad to see a solution for that.
But I have accepted to define all models/tables explicitly and then
this approach looks neat.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: RFS: QGFE -- Qt Gnuplot front end -- should be mature now

2007-05-16 Thread Christoph Haas
On Wed, May 16, 2007 at 04:23:34PM +0200, Giorgio Pioda wrote:
 the time has come to search for a sponsorship to upload qgfe (sid and
 backports I would propose).
 
 Qgfe is surely not the best GUI for a CLI program but in case of gnuplot
 is the only one available (actually there is also an old tcl version but
 is really very very old).

I just see minor things I would improve:

- dh_installexamples is not needed as you don't have examples
- dh_link is not needed as you don't have links

But you may remove these debhelper calls when you plan a new revision.
The package looks good and I just uploaded it.

Kindly
 Christoph
-- 
~
~
.signature [Modified] 1 line --100%--1,48 All


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Paster server in production

2007-05-15 Thread Christoph Haas

On Tue, May 15, 2007 at 12:56:53AM -0700, voltron wrote:
 I have taken the advice from this forum and have installed nginx as a
 proxy to the paster server. this works well, but I´m really, really
 worried about using the Paster server in a production site, for
 example, when testing a Mako template, the server just died. Are there
 tips out there to ensure stability? Or at least to make sure that all
 types of errors are handled gracefully?

I can't comment on how to make Paste handle internal error less evily but
http://docs.pythonweb.org/display/pylonscookbook/Pylons+deployment+with+daemontools
explains how to at least restart the daemon if it dies.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: [RFC] Alternative paginator

2007-05-15 Thread Christoph Haas

On Tue, May 15, 2007 at 03:27:39PM -0700, Mike Orr wrote:
 
 On 5/5/07, Christoph Haas [EMAIL PROTECTED] wrote:
  as some of you already know I have never been very happy with
  Webhelpers' built-in pagination module. So I wrote my own (that is NOT
  compatible with the existing one) and I love it so far.
 
  Interested? Get it from http://workaround.org/pylons/paginator/ and let
  me know what you think. Some of the features:
 
 Excellent, I'll have a use for it this week.  I suppose it can work
 with a SQLAlchemy Select as well as Table or an ORM query?

Thanks to Ben's orm module it can. See the rest docs that accompany the
module. I just lack a good example in SQLObject.

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



AuthKit bails out on Unicode usernames

2007-05-14 Thread Christoph Haas

Hi, list...

I'm using AuthKit in my application and seem to have trouble when the
login form gets me the username as a Unicode string. I use the famous
line:

form_username = request.params.get('username')
request.environ['paste.auth_tkt.set_user'](form_username)

This leads to Unicode errors (I currently cannot reproduce it). Things
start to work though when I run str() on the Unicode string before:

form_username = str(request.params.get('username'))
request.environ['paste.auth_tkt.set_user'](form_username)

Does AuthKit have trouble with Unicode strings in general? Or am I
missing a configuration option?

Kindly
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Bad cookies (authkit cookie name clash)

2007-05-14 Thread Christoph Haas

Today I had a weird problem and wanted to post the solution just so
other people who have the same trouble may find it in the archives. :)

I had a Bad cookie, you have been signed out. when using the forward
method of AuthKit. It always happened to me when submitting the signin
form that submitted my login username and password. It turned out that
my cookie names were accidentally idental in my development.ini:

[app:main]
session_key = mycookie
authkit.cookie.name = mycookie

It appears like the names clashed and the values I had stored in the
(session_key) session confused the authkit's authentication cookie.

Solution: use different cookie names!

And in case you may want to get more debug information from AuthKit I
found a way to get log information in the paster serve window.
Add these lines to the config/middleware.py right after
app = authkit.authenticate.middleware...

import logging
log_StreamHandler = logging.StreamHandler() # points to stderr
authkit.authenticate.log.addHandler(log_StreamHandler)
authkit.authenticate.log.setLevel(logging.DEBUG)

In the above case I got the strange error message
BadTicket: userid is not followed by ! which made me look for empty
cookies and finally pointed me at the real cause.

Kindly
 Christoph
-- 
Peer review means that you can feel better because someone else
missed the problem, too.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Installing pylons on Debian Sarge

2007-05-13 Thread Christoph Haas

On Sun, May 13, 2007 at 02:45:48AM -0700, voltron wrote:
 Nevermind, I reinstalled and upgraded setuptools, then all was well.
 weird.

Why do you spoil your system with setuptools at all? All up-to-date
Pylons components are available in Debian. aptitude ist your friend.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Real globals inside a module

2007-05-13 Thread Christoph Haas
On Sun, May 13, 2007 at 11:41:12AM +0200, Jorgen Bodde wrote:
 I am wrestling with some architecture inside my app. Let's say I have
 a tunings collection, which contains e.g. 23 types of guitar tunings.
 In my song object I want to restore a relation between one of the
 tuning objects inside the tunings module.
 
 I already figured out I need somethign like a global collection inside
 the tunings module,. but how global is it? When I am inside my app
 object, and import the tunings module, can I access the same global
 class as when I am inside my songs module and load the tunings module?

You are on the right way. If you import the same module a second time in
another place of your application you get access to the exact same data.
That is called a singleton. I often use such a singleton for global
configuration data.

 So basically I want to access the same global list in both modules,
 but not re-create the list in every module since it should be restored
 by the database layer once.

Import your global module and just run the initalisation once. That
should do it.

 Thanks for any advice, I do not want to make a global manager object
 that I need to pass around all the time, that would be silly..

Indeed. That would suck.

 Christoph

-- 
http://mail.python.org/mailman/listinfo/python-list


Bug#414182: closed by Thomas Huriaux [EMAIL PROTECTED] (closing old ITP bug)

2007-05-12 Thread Christoph Haas
 From: Thomas Huriaux [EMAIL PROTECTED]
 Subject: closing old ITP bug

Thanks. I forget the -v option when building the package so the
closes: didn't make it into the changes file.

 Christoph



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#414182: closed by Thomas Huriaux [EMAIL PROTECTED] (closing old ITP bug)

2007-05-12 Thread Christoph Haas
 From: Thomas Huriaux [EMAIL PROTECTED]
 Subject: closing old ITP bug

Thanks. I forget the -v option when building the package so the
closes: didn't make it into the changes file.

 Christoph



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [RFC] Alternative paginator

2007-05-11 Thread Christoph Haas

On Thu, May 10, 2007 at 04:27:19PM -0700, Ben Bangert wrote:
 Christoph Haas wrote:
  I'd personally accept that the API changes as long as the module is
  called something else. The Python standard library has a lot of examples
  where old modules became deprecated with the time and modules with
  similar names appeared that has different APIs. I don't mean to say that
  my intention is to deprecate the built-in paginator. That's e.g. Ben's
  decision. :)

 I'm not at all attached to the paginator in WebHelpers, it was ported
 rather hastilly from Rails and had the other collection handling methods
 tacked on. I'd be happy to use this one, especially if someone else will
 be maintaining it. ;)

If others are happy with the API as it is I'd be happy to see it
included as an alternative module in the webhelpers. I'll be maintaining
it. As long as you maintain the black magic orm module. ;)

Would it be okay if the old module stay in there for a while with the
name webhelpers.pagination and the new one is included as
webhelpers.paginate? Those who use the currently existing paginator
will not want to have their applications break due to the completely
different API.

If there is functionality missing in my module please let me know. I
haven't used the old pagination module that in-depth.

 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: [RFC] Alternative paginator

2007-05-10 Thread Christoph Haas

On Wed, May 09, 2007 at 05:08:01PM -0700, Philip Jenvey wrote:
 On May 8, 2007, at 12:14 AM, Christoph Haas wrote:
 
 
  On Mon, May 07, 2007 at 02:49:24PM -0700, Philip Jenvey wrote:
  On May 5, 2007, at 1:07 PM, Christoph Haas wrote:
  as some of you already know I have never been very happy with
  Webhelpers' built-in pagination module. So I wrote my own (that  
  is NOT
  compatible with the existing one) and I love it so far.
 
  Interested? Get it from http://workaround.org/pylons/paginator/ and
  let me know what you think. Some of the features:
 
  Without having compared your paginator and WebHelpers', would it be
  possible to rewrite the WebHelpers' paginator to use your code
  (maintaining the old API)?
 
  It would be. You probably mean adding features to it while keeping the
  API. But IMHO my paginator is both simpler to use and has more  
  features.
  Where the original paginator uses three classes for Paginator, Page  
  and
  Window I just have one. You can use my paginator to iterate over it
  directly because it subclasses the list class. While it would be
  possible to make it backwards-compatible it would not help much. I can
  imagine having it included in the Webhelpers as a module that is  
  called
  differently (paginator2 or whatever) though.
 
 I was thinking if we wanted to replace the old one with it, we could  
 rewrite the old API to use your code and issue a deprecation warning  
 directing users to use the new API calls. We could just issue the  
 deprecation warning without rewriting it too.

IMHO although the functionality is similar the API is very different.
I'd personally accept that the API changes as long as the module is
called something else. The Python standard library has a lot of examples
where old modules became deprecated with the time and modules with
similar names appeared that has different APIs. I don't mean to say that
my intention is to deprecate the built-in paginator. That's e.g. Ben's
decision. :)

 The paginate and your Page class's __init__ function prototype look  
 almost identical is why I asked.

But the methods are different.

 Is there any reason why the Page class is a list as opposed to being  
 an iterator (i.e. implementing __iter__)

No real reason. I was glad that I managed to subclass list at all. :)
Wouldn't that mean that people can't access any element any more? Since
the elements of a page get pulled from the database anyway I wouldn't
mind having them kept in memory. I'd rather use an iterator if I'm
walking through a long list of lines where I don't even know if all
elements fit into memory. The page is supposed to contain no more items
than what fits on a screen I'd say a list is nice. But I'm no Python
professional and willing to learn.

 Note I haven't used either Paginator so beware, I probably don't know  
 what I'm talking about =]

I get your points anyway. :)

 Christoph

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Alternative paginator

2007-05-10 Thread Christoph Haas

Michael...

On Thu, May 10, 2007 at 09:59:09AM -, Michael G. Noll wrote:
 first of all, thanks for your work on an alternative paginator. I'm
 currently testing it, and I am pleased so far :-)

Thank you for the feedback. I already thought I'm the only who uses that
module. :)

 Bug
 ===
 
 The relevant code is in Page.__init__().
 
 $ diff paginate_original.py paginate.py
 128c128
  self.page_count = int(ceil(self.item_count /
 self.items_per_page))
 ---
  self.page_count = int(ceil(1.0 * self.item_count / 
  self.items_per_page))
 
 In the original paginate.py, integer division is used. For example, if
 item_count is 8 and items_per_page is 5, than item_count /
 items_per_page gives 1 as an int where it should give 1.6 as a float
 and thus 2 after ceil(). The best workaround to force true division is
 to multiply with 1.0 first [1].

Right. I forgot about integer division again. I took Matt's proposal and
changed the source. Thanks for the pointer.

 Documentation
 =
 For Page.navigator(), the doc string says:
 
 Either link_format or link_var must be set!
 
 First, the link_format parameter does not exist (I guess: not
 anymore).

Correct. Before I used the abilities of the Routes mapping I had a
format string that was used to generate links. But Routes is more
versatile here. I removed that line from the docstring. Oh, well, the
API has changed a dozen times already before I dared publishing my code.

 Second, link_var has a very beautiful default value, so
 nothing must be set in advance. :-)

Right. I love good defaults, too. Saves typing later.

 On a side node, the paginator.rest file is more up to date when it
 talks about adding $ {c.paginator.navigator()} (without parameters)
 for integrating navigation into the example.

I revised the rest documentation. But I believe people will need the
rest file in addition to the docstrings for examples.

The new version is online at http://workaround.org/pylons

Cheers
 Christoph


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Using Mako templates

2007-05-10 Thread Christoph Haas

On Wed, May 09, 2007 at 11:18:12AM -0700, KyleJ wrote:
 
 On May 5, 3:08 am, Christoph Haas [EMAIL PROTECTED] wrote:
  tmpl_options['mako.default_filters'] = ['decode.utf8']
 
 You may wish to not use that option.
 
 From the Mako docs ( 
 http://www.makotemplates.org/docs/unicode.html#unicode_handling
 ):
 Note that the built-in decode object is slower than the unicode
 function, since unlike unicode its not a Python builtin, and it also
 checks the type of the incoming data to determine if string conversion
 is needed first.
 
 If you comment that out and you start getting unicode errors, it's
 likely because your strings aren't being converted to unicode objects.

I had trouble indeed. But I'm willing to come back if that's happening
again.

 You can either decode them yourself (one variable at a time
 via .decode('utf-8')  ), or you can have request.params output to
 unicode (see 
 http://pylonshq.com/project/pylonshq/browser/Pylons/trunk/docs/internationalization.txt#L516
 ) along with SQLAlchemy (use_unicode=True in either create_engine or
 make_session).

Where (in a standard Pylons project) would I set use_unicode=True? I
just found references to create_engine in the websetup.py which is
obviously not the right place. And my models/__init__.py just has the
line

meta = DynamicMetaData()

 Christoph

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Using Mako templates

2007-05-10 Thread Christoph Haas

On Thu, May 10, 2007 at 02:37:13PM -0700, Shannon -jj Behrens wrote:
 On 5/10/07, Christoph Haas [EMAIL PROTECTED] wrote:
  Where (in a standard Pylons project) would I set use_unicode=True? I
  just found references to create_engine in the websetup.py which is
  obviously not the right place. And my models/__init__.py just has the
  line
 
  meta = DynamicMetaData()
 
 I fought long and hard with this problem.  Back then, it turned out
 that letting SQLAlchemy do the encoding with use_unicode=True wouldn't
 work because of a bug in MySQLdb.  However, it looks like that bug has
 been fixed in a recent release of MySQLdb.
 
 These days, I bet you can just add ?use_unicode=1 to the end of your
 db uri, and it'll work.

Do you mean encoding='utf-8' or convert_unicode=True as documented
in http://www.sqlalchemy.org/docs/dbengine.html#dbengine_options ?

 Christpoh

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Bug#422927: Typo...

2007-05-09 Thread Christoph Haas
Small typo in the addition. These three lines should do it better:

for python in $(PYVERS); \
do dh_install -i formencode/i18n 
usr/lib/$$python/site-packages/formencode ; \
done



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



<    3   4   5   6   7   8   9   10   11   12   >