[Python-Dev] Information about how cpython in benchmarked

2011-03-29 Thread Tennessee Leeuwenburg
Hi all,

Apologies for emailing this list with such an apparently trivial question.
Is there some source of documentation or information on how Python is
benchmarked? I am aware of the Python regression testing module,
regrtest.py, which I presume, if profiled, would good be a good baseline
test.

PyPy maintains http://speed.pypy.org/, which provides very clear information
about the relative performance of PyPy trunk against some version of cpython
(presumably 2.6 or 2.7). I'm not aware of a similar site for cpython, but
that could easily just be my ignorance speaking.

My interest is that I'm looking at building a benchmarking solution at work.
and I can't think of a better way to build something good and general than
to try and write something that could potentially be released as open source
and be useful to others. As such I thought that benchmarking cpython would
be a great use case, but I want to find out as much as I can about how
people currently go about benchmarking Python. Initially I'm just looking at
CPU profiling since it's easiest.

Anyway, if this is the wrong place to send this email, I'm very sorry for
clogging up your inbox.

Thanks very much,
-Tennessee
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Information about how cpython in benchmarked

2011-03-29 Thread Tennessee Leeuwenburg
Hi Nick, Jesse,

Thanks both for your responses, it's much appreciated! It's very useful to
have a clear pointer to the right place to begin looking.

Regards,
-Tennessee

On Tue, Mar 29, 2011 at 10:47 PM, Jesse Noller jnol...@gmail.com wrote:

 On Tue, Mar 29, 2011 at 7:00 AM, Nick Coghlan ncogh...@gmail.com wrote:
  On Tue, Mar 29, 2011 at 8:01 PM, Tennessee Leeuwenburg
  tleeuwenb...@gmail.com wrote:
  PyPy maintains http://speed.pypy.org/, which provides very clear
 information
  about the relative performance of PyPy trunk against some version of
 cpython
  (presumably 2.6 or 2.7). I'm not aware of a similar site for cpython,
 but
  that could easily just be my ignorance speaking.
  My interest is that I'm looking at building a benchmarking solution at
 work.
  and I can't think of a better way to build something good and general
 than
  to try and write something that could potentially be released as open
 source
  and be useful to others. As such I thought that benchmarking cpython
 would
  be a great use case, but I want to find out as much as I can about how
  people currently go about benchmarking Python. Initially I'm just
 looking at
  CPU profiling since it's easiest.
 
  One of the points coming out of the VM summit at Pycon is actually
  that we want to create a shared benchmarking site for CPython, PyPy,
  Jython, IronPython (and possibly Stackless) under the python.org
  banner (either speed.python.org, or possibly performance.python.org,
  since we want to do memory profiling as well).
 
  speed.pypy.org will be the reference site for this, but Maciej
  indicated at the VM summit that the code that runs that site needs
  some improvements before it will really be up to the task of
  effectively benchmarking multiple targets.
 
  So, according to http://speed.pypy.org/about/, the place to start with
  your benchmarking system would probably be
  https://github.com/tobami/codespeed.
 
  Cheers,
  Nick.

 Essentially echoing what nick said. I'm currently working on getting
 the HW for this together.




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter release schedule?

2009-05-12 Thread Tennessee Leeuwenburg
On Wed, May 13, 2009 at 1:26 PM, Martin v. Löwis mar...@v.loewis.dewrote:

  Just food for thought here, but seeing how 3.1 is going to be a real
 featureful
  schedule despite being released shortly after 3.0, wouldn't it make sense
 to
  tighten future release planning a little?

 Do you have any specific releases in mind that you would like to apply
 such a tightened schedule to?

  I was thinking something like doing a
  major release every 12 months (rather than 18 to 24 months as has been
  heuristically the case lately).


If I can just respond with a bit of feedback from my workplace, I'd say that
slower is better. I'm grimacing as I write that :) because I personally love
to be able to take advantage of the new capabilities in each release.

Can I ask if there's any sense in pursuing a release schedule which is slow
for whatever might be deemed the most core modules but faster for less
core modules?

This is really a response to my workplace environment. The pro of that is
that it's a real example, but the con is that it may not be best practise :)


Something else which would definitely be useful for me personally would be a
kind of update egg which I could apply to, say, Python 3.0 to bring it up to
3.1 capabilities. Something that already happens now at work reasonably
often is that on my PC I have Python 2.4, 2.5, 2.6 and 3.0 installed. I tend
to develop under 2.6 from preference. However, server X only has 2.4
installed or worse, 2.3 which I don't even have. Recently I was bitten by
this as my code was relying heavily on some functionality in datetime which
had changed. I was faced with having to do some re-architecting that I
really didn't want to do.

Now, I don't know of course (I found another way around the issue), but
suppose the changes to Python I needed were relatively cosmetic, i.e. the
kind of thing I could maybe install into a virtualenv wrapper, then it would
have been quite easy for me to run my scripts written for Python 2.6.

To get to the point, I wonder if it would be possible to release new
versions alongside a patch or egg which someone with only user-level
privileges could use on a server to avoid being held back by a slower server
update cycle. A more frequent update cycle would then be easier to deal
with. More features would get out into use more quickly, while the pressures
of the lowest-common-denominator would be eased.


Just some thoughts...
Regards,
-Tennessee
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Issue5434: datetime.monthdelta

2009-04-16 Thread Tennessee Leeuwenburg
Hi Jess,

I'm sorry if I'm failing to understand the use of this function from not
looking closely at your code. I'm a bit dubious about the usefulness of this
(I'm not sure I understand the use cases), but I'm very open to being
convinced. Datetime semantics are very important in some areas -- I use them
a lot.

I'm not convinced the semantics of monthdelta are obvious.

A month doesn't have a consistent length -- it could be 28, 29, 30 or 31
days.

What happens when you ask for the date in 1 month's time on the 31st Jan?
What date is a month after the 31st Jan?

Do you have a good spec (er, I mean PEP) for this describing what happens in
the edge cases and what is meant by a monthdelta? The bug notes say it
deals sensibly with these issues, but that's really not enough to
understand what the function is likely to do. At the very least, a few
well-chosen examples would help to illustrate the functionality much more
clearly.

Cheers,
-Tennessee


On Thu, Apr 16, 2009 at 4:18 PM, Jess Austin jess.aus...@gmail.com wrote:

 hi,

 I'm new to python core development, and I've been advised to write to
 python-dev concerning a feature/patch I've placed at
 http://bugs.python.org/issue5434, with Rietveld at
 http://codereview.appspot.com/25079.

 This patch adds a monthdelta class and a monthmod function to the
 datetime module.  The monthdelta class is much like the existing
 timedelta class, except that it represents months offset from a date,
 rather than an exact period offset from a date.  This allows us to
 easily say, e.g. 3 months from now without worrying about the number
 of days in the intervening months.

 date(2008, 1, 30) + monthdelta(1)
datetime.date(2008, 2, 29)
 date(2008, 1, 30) + monthdelta(2)
datetime.date(2008, 3, 30)

 The monthmod function, named in (imperfect) analogy to divmod, allows
 us to round-trip by returning the interim between two dates
 represented as a (monthdelta, timedelta) tuple:

 monthmod(date(2008, 1, 14), date(2009, 4, 2))
(datetime.monthdelta(14), datetime.timedelta(19))

 Invariant: dt + monthmod(dt, dt+td)[0] + monthmod(dt, dt+td)[1] == dt + td

 These also work with datetimes!  There are more details in the
 documentation included in the patch.  In addition to the C module
 file, I've updated the datetime CAPI, the documentation, and tests.

 I feel this would be a good addition to core python.  In my work, I've
 often ended up writing annoying one-off add-a-month or similar
 functions.  I think since months work differently than most other time
 periods, a new object is justified rather than trying to shoe-horn
 something like this into timedelta.  I also think that the round-trip
 functionality provided by monthmod is important to ensure that
 monthdeltas are first-class objects.

 Please let me know what you think of the idea and/or its execution.

 thanks,
 Jess Austin
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Issue5434: datetime.monthdelta

2009-04-16 Thread Tennessee Leeuwenburg
My thoughts on balance regarding monthdeltas:
  -- Month operations are useful, people will want to do them
  -- I think having a monthdelta object rather than a method makes sense to
me
  -- I think the documentation is severely underdone. The functionality is
not intuitive
 and therefore the docs need a lot more detail than usual
  -- Can you specify 1 month plus 10 days?, i.e. add a monthdelta to a
timedelta?
  -- What about other cyclical periods (fortnights, 28 days, lunar cycles,
high tides)?

Cheers,
-T
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python-Dev Digest, Vol 69, Issue 143

2009-04-16 Thread Tennessee Leeuwenburg
Actually, that's a point.

If its' the 31st of Jan, then +1 monthdelta will be 28 Feb and another +1
will be 28 March whereas 31st Jan +2 monthdeltas will be 31 March.

That's the kind of thing which really needs to be documented, or I think
people really will make mistakes.

For example, should a monthdelta include a goal-day so that the example
above would go 31 Jan / 28 Feb / 31 March?

-T

On Fri, Apr 17, 2009 at 11:55 AM, Greg Ewing greg.ew...@canterbury.ac.nzwrote:

 Jess Austin wrote:

  This is a perceptive observation: in the absence of parentheses to
 dictate a different order of operations, the third quantity will
 differ from the second.


 Another aspect of this is the use case mentioned right
 at the beginning of this discussion concerning a recurring
 event on a particular day of the month.

 If you do this the naive way by just repeatedly adding one
 of these monthdeltas to the previous date, and the date is
 near the end of the month, it will eventually end up
 drifting to the 28th of every month.

 --
 Greg

 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Google Summer of Code/core Python projects - RFC

2009-04-10 Thread Tennessee Leeuwenburg
Well, I think Numpy is of huge importance to a major Python user segment,
the scientific community. I don't know if that makes it 'core', but I
strongly agree that it's important.
Better testing is always useful, and more core, but IMO less important.

-T

On Sat, Apr 11, 2009 at 6:38 AM, C. Titus Brown c...@msu.edu wrote:

 Hi all,

 this year we have 10-12 GSoC applications that I've put in the relevant
 to core Python development category.  These projects, if mentors etc
 are found, are *guaranteed* a slot under the PSF GSoC umbrella.  As
 backup GSoC admin and general busybody, I've taken on the work of
 coordinating these as a special subgroup within the PSF GSoC, and I
 thought it would be good to mention them to python-dev.

 Note that all of them have been run by a few different committers,
 including Martin, Tarek, Benjamin, and Brett, and they've been obliging
 enough to triage a few of them.  Thanks, guys!

 Here's what's left after that triage.  Note that except for the four at
 the top, these have all received positive support from *someone* who is
 a committer and I don't think we need to discuss them here -- patches
 etc. can go through normal python-dev channels during the course of the
 summer.

 I am looking for feedback on the first four, though.  Can these
 reasonably be considered core priorites for Python?  Remember, this
 costs us something in the sense of preferring these over Python
 subprojects like (random example) Cython, NumPy, PySoy, Tahoe, Gajim,
 etc.

 ---

 Questionable core:

 2x port NumPy to py3k -- NumPy is a major Python module and porting it
to py3k fits with Guido's request that more stuff get ported.
To be clear, I don't think anyone expects all of NumPy to get
ported this summer, but these students will work through issues
associated with porting big chunks o' code to py3k.

One medium/strong proposal, one medium/weak proposal.

 Comments/thoughts?

 2x improve testing tools for py3k -- variously focus on improving test
coverage and testing wrappers.

One proposes to provide a nice wrapper to make nose and py.test
capable of running the regrtests, which (with no change to
regrtest) would let people run tests in parallel, distribute or
run tests across multiple machines (including Snakebite), tag
and run subsets of tests with personal and/or public tags, and
otherwise take advantage of many of the nice features of nose
and py.test.

The other proposes to measure  increase the code coverage of
the py3k tests in both Python and C, integrate across multiple
machines, and otherwise provide a nice set of integrated reports
that anyone can generate on their own machines.  This proposal,
in particular, could move smoothly towards the effort to produce
a Python-wide test suite for CPython/IronPython/PyPy/Jython.
(This wasn't integrated into the proposal because I only found
out about it after the proposals were due.)

I personally think that both testing proposals are good, and
they grew out of conversations I had with Brett, who thinks that
the general ideas are good.  So, err, I'm looking for pushback,
I guess ;).  I can expand on these ideas a bit if people are
interested.

Both proposals are medium at least, and I've personally been
positively impressed with the student interaction.

 Comments/thoughts?

 ---

 Unquestionably core by my criteria above:

 3to2 tool -- 'nuff said.

 subprocess improvement -- integrating, testing, and proposing some of
the various subprocess improvements that have passed across this
list  the bug tracker

 IDLE/Tkinter patch integration  improvement -- deal with ~120 tracker
issues relating to IDLE and Tkinter.

 roundup VCS integration / build tools to support core development --
a single student proposed both of these and has received some
support.  See http://slexy.org/view/s2pFgWxufI for details.

 sphinx framework improvement -- support for per-paragraph comments and
user/developer interface for submitting/committing fixes

 2x keyring package -- see

 http://tarekziade.wordpress.com/2009/03/27/pycon-hallway-session-1-a-keyring-library-for-python/
 .
 The poorer one of these will probably be axed unless Tarek gives it
 strong support.

 --

 --titus
 --
 C. Titus Brown, c...@msu.edu
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http

Re: [Python-Dev] http://bugs.python.org/issue2240

2009-04-08 Thread Tennessee Leeuwenburg
On Wed, Apr 8, 2009 at 3:55 PM, Jeroen Ruigrok van der Werven 
asmo...@in-nomine.org wrote:

 -On [20090408 05:24], Tennessee Leeuwenburg (tleeuwenb...@gmail.com)
 wrote:
 It seems like the bug relates only to an older version of a 'weird'
 operating system ducks and could perhaps be left unfixed without causing
 anyone any problems.

 Being one of the FreeBSD guys I'll throw peanuts at you. :P

 In any case, 6.3 is from early 2008 and 6.4 is from November 2008. The
 6-STABLE branch is still open and a lot of users are still tracking this.

 However, the main focus is 7 and with 8 looming on the horizon. And FreeBSD
 7 does away with libc_r and uses a whole different model for its threading.
 Are the tests going ok there? If so, then I shouldn't worry about the 6
 branch.


:)

Thanks for your input. I've done the paper shuffling so someone else can
pick up the FreeBSD cleanup job as a new issue...

Cheers,
-T
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Is there an issue with bugs.python.org currently

2009-04-07 Thread Tennessee Leeuwenburg
Sadly, my work firewall/proxy often handles things badly, so I can't
actually tell. Is bugs.python.org accepting changes at the moment (I'm
trying to update the Stage of an issue)?

Cheers,
-T

-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] http://bugs.python.org/issue2240

2009-04-07 Thread Tennessee Leeuwenburg
This issue has been largely resolved, but there is an outstanding bug where
the (reviewed and committed) solution does not work on certain versions of
FreeBSD (broken in 6.3, working in 7+). Do we have a list of 'supported
platforms', and is FreeBSD 6.3 in it?

What's the policy with regards to supporting dependencies like this? Should
I set this issue to 'pending' seeing as no-one is currently working on a
patch for this? Or is leaving this open and hanging around exactly the right
thing to do?

Cheers,
-T



-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] http://bugs.python.org/issue2240

2009-04-07 Thread Tennessee Leeuwenburg
On Wed, Apr 8, 2009 at 1:14 PM, Guilherme Polo ggp...@gmail.com wrote:

 On Tue, Apr 7, 2009 at 11:54 PM, Tennessee Leeuwenburg
 tleeuwenb...@gmail.com wrote:
  This issue has been largely resolved, but there is an outstanding bug
 where
  the (reviewed and committed) solution does not work on certain versions
 of
  FreeBSD (broken in 6.3, working in 7+). Do we have a list of 'supported
  platforms', and is FreeBSD 6.3 in it?
 
  What's the policy with regards to supporting dependencies like this?
 Should
  I set this issue to 'pending' seeing as no-one is currently working on a
  patch for this? Or is leaving this open and hanging around exactly the
 right
  thing to do?
 

 I would find more appropriate to close this as fixed because the issue
 was about adding setitimer and getitimer wrappers and that is done.

 We could then create another issue regarding this bug in specific
 versions of freebsd towards this setitimer/getitimer wrapper. That is
 what makes more sense to me.


Hi Guilherme,

I'd agree with that. I just wonder whether it's necessary to create another
issue, or whether the issue can be marked as 'fixed' without opening the new
issue. It seems like the bug relates only to an older version of a 'weird'
operating system ducks and could perhaps be left unfixed without causing
anyone any problems.

Cheers,
-T
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] slightly inconsistent set/list pop behaviour

2009-04-07 Thread Tennessee Leeuwenburg
Now, I know that sets aren't ordered, but...

foo = set([1,2,3,4,5])
bar = [1,2,3,4,5]

foo.pop() will reliably return 1
while bar.pop() will return 5

discuss :)


Cheers,
-T
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] setuptools has divided the Python community

2009-03-25 Thread Tennessee Leeuwenburg
GSOC?

On Thu, Mar 26, 2009 at 6:05 AM, Steven Bethard steven.beth...@gmail.comwrote:

 On Wed, Mar 25, 2009 at 7:08 AM, Paul Moore p.f.mo...@gmail.com wrote:
  I use Python for systems admin scripts, Windows services, and database
  management. In my experience (and I agree, it's only one, limited, use
  case) availability of download-and-run bdist_wininst installers for
  every package I used was the only significant requirement I had for
  Python package distribution (I remember pre-distutils days, when being
  able to install a 3rd party package on Windows was a nightmare of
  build-it-yourself guesswork).
 
  Since setuptools came on the scene, I can state with some certainty
  that many packages which would otherwise have been distributed as
  bdist_wininst installers, now aren't. In some cases, only source
  packages are provided (on the basis that easy_install will build what
  you need). In those cases, I can accept that maybe the developer would
  not have built Windows installers even before setuptools arrived. But
  in a significant number of cases - including setuptools itself -
  binary, version-specific eggs for Windows are provided, but no
  bdist_wininst installers. If the developer is willing to build an egg,
  he could just as easily have built an installer - but he now has to
  choose - build one or the other, or both. And not everyone chooses the
  same way.

 I'd just like to chime in and agree with Paul here. I'm a Windows
 user, and I won't install a Python module that I can't get as a
 wininst (or preferably a .msi), because I prefer to use the Windows
 package management system, not some Python specific thing. I can
 generally build installers myself for Python-only packages, but binary
 ones are harder. And I've seen several projects with exactly the kind
 of thing Paul describes - where a good Windows installer would
 probably have been available if it weren't for the interference of
 setuptools.

 Steve
 --
 I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
 tiny blip on the distant coast of sanity.
--- Bucky Katt, Get Fuzzy
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] setuptools has divided the Python community

2009-03-25 Thread Tennessee Leeuwenburg
I would suggest there may be three use cases for Python installation tools.
Bonus -- I'm not a web developer! :)
Case One: Developer wishing to install additional functionality into the
system Python interpreter forever
Case Two: Developer wishing to install additional functionality into the
system Python interpreter for a specific task
Case Three: Person wanting to install an application which happens to be
written in Python

The prime limitation of setuptools appears to me to come when there are
conflicts. Other than that, for packages where it is available, I have never
had an issue with the functioning of setuptools. It's Just Fine. For issues
where there are conflicts, where I have been sufficiently motivated, setting
up a virtualenv has more than met my needs. In fact, that's and *awesome*
piece of functionality.

For case one, where I want to install additional functionality into my
system Python interpreter forever, it would be great to have my system
manage this. On my ubuntu machine, this happens. The Ubuntu packages take
care of things very satisfactorily and I don't see how anyone would have a
problem with it. I don't know what the situation is under Windows, however
systems such as the Enthought Python Suite do provide kitchen-sink-included
Python distributions.

Perhaps an automated updates site could be configured such that there was a
package for a variety of Python + some extra modules scenarios.

For installing applications, I would presume that app developers would
generally take care of this themselves, through the use of an MSI or .deb
file in order to protect their dependencies somewhat.

For anyone looking to extend their interpreter for some specific task,
virtualenv and setuptools should do the job, and the developer can just go
the extra mile to do the work to get it right themselves.

Perhaps the most under-served use case is people who want a
kitchen-sink-included distribution, to be managed by their system packages.
Either they are not away of systems such as EPS or are opposed to it in
principle. Were time and effort no obstacle, I would suggest that it may be
worth Python.org offering to host and/or maintain a variety of Python
distributions available for installation which include various standard
extensions. The model that eclipse takes, with a base system and plugins,
but with flavoured versions available (i.e. Scientic Python Distribution to
include SciPy, Numpy and MatPlotLib for example).

Thoughts?

On Thu, Mar 26, 2009 at 9:56 AM, Ben Finney 
bignose+hates-s...@benfinney.id.au bignose%2bhates-s...@benfinney.id.auwrote:

 Paul Moore p.f.mo...@gmail.com writes:

  If you would, I'd appreciate it. Sometimes I feel that the
  distutils/setuptools discussions need better input from the
  non-web-developer community. And even more so from the not a
  developer, just a user community!

 And the often-obscured community: those who desperately want the
 Python stuff to just behave the same way everything else on their
 system does, i.e. be managed approrpiately by the operating system
 package manager. A Python-specific packaging system which makes it
 harder to fit Python packages into a broader OS policy works very much
 at odds with that.

 However, I, too, am on a different continent from the conference.

 --
  \“Kill myself? Killing myself is the last thing I'd ever do.” |
  `\—Homer, _The Simpsons_ |
 _o__)  |
 Ben Finney

 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] tracker status options

2009-03-24 Thread Tennessee Leeuwenburg
Hi Ron,

Good flowchart.

Cheers,
-T

On Wed, Mar 25, 2009 at 1:11 PM, Ron Adam r...@ronadam.com wrote:



 Tennessee Leeuwenburg wrote:

 Hi all,

 I'm continuing to (slowly) work through issues. I have been looking
 particularly at a lot of the open issues regarding strftime.

 It would be great to put in some of those extra status options that were
 discussed recently...

   Open/New
   Needs help / Chatting
   Under development
   Pending feedback
   Closed

 For everyone's reference, after some debate, the above list of status
 options was where the conversation finished. So the two options Needs help
 / chatting and Under development would need to be added. Issues that are
 Under development should revert to Needs help / chatting after a month
 of inactivity.

 Would it be possible to get these put in? Maybe I'm one of a small number
 of people who are nibbling at the bottom end of the bugs, but I find it
 somewhat frustrating not to be able to classify the issues that I find into
 needs help / chatting vs under development to help make more sense of
 the search results.

 Cheers,
 -T




 Maybe a flow chart can help unambiguize things a bit.  What follows is
 maybe one starting place.  I tried to separate steps that might be done by
 users from developers so that there is a clear order to the process.  This
 seems to follow the general way that python issues are resolved from what
 I've observed.

 While this chart separates the descriptive/brain storming and patch making
 parts of an issue, in actuality, a patch (tests, fix, and docs) can be
 developed partially or fully in the discussion faze for the purpose of
 helping the discussion, then later reused and fine tuned in the patch making
 faze.

 Hope this is helpful and doesn't get too mangled in sending.

(new issue)
|
v

[discuss issue] -+
| |
v |
  |
{request issue review}|
| |
v |
  |
invalid issue ? (yes)-- [close issue]  |
   (no)|  |
|  v  |
|   (closed)  |
v |
  |
valid issue ? (no)--+
  (yes)
|
v

[develop patch]  --+
|   |
v   |
|
{request patch review}  |
|   |
v   |
|
patch ready ? (no) ---+
  (yes)
|
v

[apply patch]
|
v

[close issue]
|
v

(closed)






-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] tracker status options

2009-03-23 Thread Tennessee Leeuwenburg
On Tue, Mar 24, 2009 at 11:00 AM, Martin v. Löwis mar...@v.loewis.dewrote:

  That would be great. It occurs to me that if we wanted to use
  Stage settings, it would be easy to search for issues which are
  not closed by literally searching for 'not closed' rather than
  'open'. I think it's also unclear whether the 'pending' stage means
  'suspended pending additional user feedback' or 'resolution of this
  issue is impending'. My understanding was that it meant 'pending
  additional feedback' in the sense of awaiting, rather than imminent.
 
 
  It's the latter; it's pending feedback.

 Which latter (there seem to be multiple pairs in Tennessee's message)?

 In any case, it's not really pending feedback. Instead, it means if
 there is no feedback really soon, it will get closed. So closure is
 impending and imminent.


I think this indicates that the flag in not sufficiently self-descriptive.
My understanding, and I think the understanding of some others, is that this
flag indicates a suspension of development pending additional feedback,
rather the impending conclusion of development pending further feedback. In
some of my earlier emails to this list, other developers were happy to mark
issues that were being deferred as a result of requiring further
specification or clarification as pending feedback, which is quite the
opposite of imminent closure.

While some may feel that the use of this flag is unambiguously used to
signify imminent closure, I respectfully point out the recent occasions
where confusion has occurred, and not just from a single individual.

Perhaps some developers have a well-established workflow and interpret these
flag in a particular, consistent fashion, however part of the purpose of the
issue tracker is to allow a diverse group to work on development as a group.
On that basis, I feel that more documentation, and clearer terminology, is
required in order to support the bug resolution process.

I have identified some gaps in the workflow process which impact me
personally in classifying issues. These issues will not impact on all
developers; clearly they will be entirely superfluous, perhaps even
confusing, for some individuals. However the impact still remains for some.
There appears to be a general agreement that ability to distinguish between
issues on the following bases would be useful:
   * Whether the nature of the requirement is still under debate or whether
it is well-understood
   * Whether the issue is up for grabs by any developer or whether
responsibility lies with an individual or group already
   * Whether the issue is ready for more serious consideration by more
experienced or core developers

Since these issues relate primarily to the long-standing, dubious or complex
issues which are not fully resolved, often of lower priority, it is apparent
that more experienced developers will not find a lot of use in the addition
of further flag, but I don't see that their workflow would be frustrated
either.

I'm happy to put my time an effort into classification of low-priority
issues, classification, and code development for areas which would probably
not otherwise receive much attention. However, to do this effectively, I
need to be able to set up additional parameters against the issues to
support the search requirements needed. Doing this on the development
tracker seems to be the best approach, seeing as there seems to be some
closely-held positions regarding the existing set of flags -- it would be
quite inappropriate to disrupt existing workflows for the more experienced
and core developers without demonstrating the value of new flags. However, I
do feel that adding flags is of very clear value to the development process
overall.

My suggestion remains to add two additional attributes, either as stage or
status options (personally I still feel 'status' is appropriate, but I
don't mind where they go):
   * Under discussion
   * Under development

This would flag Open issues as being up for grabs by any developer, Under
discussion as something which is not ready for a developer to start work on
a solution and which is still being worked out. Under development
similarly means that everyone who needs to be involved is already involved.
Issues that were under discussion or under development would drop back
to Open after a month of inactivity. Issues which could not be advanced
without further feedback would be marked as suspended pending feedback,
and never drop back to Open. The current pending feedback which appears to
be used to indicate imminent closure should perhaps be altered to pending
closure.

Thus, Open indicated triage is required. The default view on the issue
tracker should be all issues not closed. The default view for a triage
nurse would be show me everything that is open.

I'm all for more debate on options for these new flags, but I haven't heard
a whole lot of alternatives to date...

Cheers,
-Tennessee

Re: [Python-Dev] tracker status options

2009-03-22 Thread Tennessee Leeuwenburg
Hi Daniel,

That would be great. It occurs to me that if we wanted to use Stage
settings, it would be easy to search for issues which are not closed by
literally searching for 'not closed' rather than 'open'. I think it's also
unclear whether the 'pending' stage means 'suspended pending additional user
feedback' or 'resolution of this issue is impending'. My understanding was
that it meant 'pending additional feedback' in the sense of awaiting, rather
than imminent.

In any case, let me know when the tracker is online and I will suggest the
tag alterations that I think would be appropriate.

Regards,
-Tennessee

On Fri, Mar 20, 2009 at 10:53 AM, Daniel (ajax) Diniz aja...@gmail.comwrote:

 Martin v. Löwis wrote:
  In addition, I would like to see a specification of the exact labels to
  be used, plus a one-line description that should be attached to the
  labels.

 Tennessee,
 If you'd like to test those additional status options, I'm setting a
 test instance of the Python tracker up at
 http://bot.bio.br/python-dev/ . It might be frequently offline for a
 while, but once things are stable it'll be reliable enough to perform
 such experiments.

 If it's easy on resource usage, I might have one instance following
 the Python tracker code closely and a more bleeding-edge one :)

 Regards,
 Daniel
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] tracker status options

2009-03-18 Thread Tennessee Leeuwenburg
Hi all,

I'm continuing to (slowly) work through issues. I have been looking
particularly at a lot of the open issues regarding strftime.

It would be great to put in some of those extra status options that were
discussed recently...

   Open/New
   Needs help / Chatting
   Under development
   Pending feedback
   Closed

For everyone's reference, after some debate, the above list of status
options was where the conversation finished. So the two options Needs help
/ chatting and Under development would need to be added. Issues that are
Under development should revert to Needs help / chatting after a month
of inactivity.

Would it be possible to get these put in? Maybe I'm one of a small number of
people who are nibbling at the bottom end of the bugs, but I find it
somewhat frustrating not to be able to classify the issues that I find into
needs help / chatting vs under development to help make more sense of
the search results.

Cheers,
-T
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Capability to alter issue metadata

2009-03-12 Thread Tennessee Leeuwenburg
Hi all,

I am continuing to look at issues in the issue tracker. It would be handy to
be able to update some of the metadata fields. For contributions, it's fine
to just be able to upload patches / post messages, but I can see any number
of issues which could use a bit of looking after.

e.g. http://bugs.python.org/issue4535 should probably be set to pending
feedback

I'd be happy to do this kind of thing if people are happy for me to do so...

-T

-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Approaches to argument type-checking

2009-03-11 Thread Tennessee Leeuwenburg
Hi all,

I am currently looking at issue 5236. This issue regards the exception
raised when a bytes string is passed into time.strptime. In addition to the
specific question I have regarding this issue, I wasn't sure if this was
something for python-dev or for the issue comment. However, it does concern
general Python coding approach, so just give me a pointer over whether this
is better kept on the tracker or whether posting to the list was a good idea
(I'm slowly learning!)

EXAMPLE OF PROBLEM:

 time.strptime(b'2009', %Y)
Traceback (most recent call last):
  File stdin, line 1, in module
  File /home/tjl/python3/lib/python3.1/_strptime.py, line 454, in
_strptime_time
return _strptime(data_string, format)[0]
  File /home/tjl/python3/lib/python3.1/_strptime.py, line 322, in
_strptime
found = format_regex.match(data_string)
TypeError: can't use a string pattern on a bytes-like object


WHEREAS:

 time.strftime(b%Y)
Traceback (most recent call last):
  File stdin, line 1, in module
TypeError: strftime() argument 1 must be str, not bytes


What is occurring here is that the arguments to strftime are being
type-checked up-front, whereas in strptime they are not. Further, srtptime
is implemented in a python file, _strptime.py, whiel strftime is implemented
in timemodule.c.

It appears as though it is generally the case (or at least often the case)
that C functions are making use of the vgetargs function which performs a
goodly bit of type checking. However, the same does not seem to hold for the
Python interface functions.

From the Python interpreter perspective, though, both are in the time module
(time.strftime and time.strptime) so the inconsistency is a bit jarring. I
can see that I could solve this a few ways:
  * Do a false-parse of the arguments using the same vgetargs1 method, but
not do anything with the return value
  * Perform a type-check on the relevant argument, data_string, in Python
and raise a more specific Exception
  * Write some kind of generic type-checking helper method which could be
re-used

Is there a general strategy used in Python development which I should be
aware of? i.e. is it customary to type-check every argument of an interface
method? Or is it customary not to perform type checking up-front and simply
allow the exception to occur deeper in the code? Are there performance
issues surrounding defensive programming?

Regards,
-Tennessee


-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Fwd: Addition of further status options to tracker

2009-03-10 Thread Tennessee Leeuwenburg
On Wed, Mar 11, 2009 at 9:43 AM, Brett Cannon br...@python.org wrote:



 On Tue, Mar 10, 2009 at 15:33, Nick Coghlan ncogh...@gmail.com wrote:

 Brett Cannon wrote:
  If we can come up with a simple solution to this problem (perhaps have
  issues set to under development with no activity shift down a status
  level after a month) then maybe we will have something everyone can be
  happy with.

 If an issue is assigned, then somebody has claimed it and is working on
 it (or it has at least been sent to a specific person for consideration).


 Right, but that is for core developers only. I think Tennessee is worrying
 about non-core folks.


Absolutely, I don't have any issue with the way the most important issues
are being worked on now, I just think that less-experienced developers could
do a lot more to help out with simple tasks / early-stage tasks. If the rest
of us can help ease the burden by getting issues properly sorted out before
they go to core developers (writing unit tests, sorting out requirements
clearly, documentation, patch suggestions etc) then they won't need to spend
as much time on simple maintenance.

Cheers,
-T



-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] reviewing patches

2009-03-09 Thread Tennessee Leeuwenburg
Hi all,

I have seen it said that one very useful activity is reviewing patches. Of
the issues in the tracker, it is not immediately clear to me what is
required of such a review. Many of these patches appear to be bundled in
with feature requests, leaving the question of whether the review it judging
the quality of the code or the merits of the feature request. I do realise
that these issues have probably been previously discussed on this list.
Let's take as an example the following issue:

  http://bugs.python.org/issue1818

This has obviously been around for a while, but not been implemented for
some reason. There are no links in any of the comments to any email threads
regarding its merits, however I recognise the name of the submitter. This
makes me think the patch is probably implementing desirable functionality.
However, it has no priority set, which makes me think that the community
hasn't yet given it any kind of 'status', insofar as a priority can stand in
for desirability.

It seems to make sense that code quality reviews should be separated from
feature request reviews (quality code evaluation vs desirability of function
evaluation) but I don't see how this occurs. I feel a lot more qualified to
evaluate code quality than desirability of function.

Questions like this make it difficult for someone in my position, who is
happy to tackle 'whatever needs to be done', to begin the task of patch
reviews. While I'm not sure that a formal or semi-formal approval process
would make anything better, I think it would be good if there were some kind
of 'executive review' process by which an issue could be marked as being a
good thing or not.

Regards,
-Tennessee

-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Addition of further status options to tracker

2009-03-09 Thread Tennessee Leeuwenburg
Hi all,

I am beginning reviewing some more issues in the tracker. I think it would
be useful to have the following status options (new status options marked
with a '+'):
  Open: Means that the issue has been created and not further reviewed
  + Request Approved: Means that the issue is marked as worth further
development by the community
  + Specification Approved: Means that the functionality to be developed is
written down in some form, and agreed at least in general terms (preferably
in fairly specific terms)
  + Under Development: Means that an implementation is currently under
development
  Pending Feedback: Means that work is suspended pending feedback
  + Under Final Review: Means that a patch has been submitted and may be a
flag that core developers can usefully review the work done without having
to revisit the whole process
  Closed: Means that the issue is either suspended indefinitely or has been
resolved (see resolution value)

My reasoning for this is as follows:
  Example one: I am currently reviewing issue 2706 which covers
datetime.timedelta operators. I have a reasonable amount of familiarity with
time programming and think I have some valuable input on the functionality
aspects, however I'm not a super-great C programmer. I'd like to help with
coming up with the final feature specification, but then leave it to others
to consider the merits of the C code patch. Being able to help get this
marked as request approved, then specification approved might help speed
up a lot of the process of developing the patch and getting it accepted. It
also saves code developers from having to develop an implementation while a
functionality debate is still ongoing...

  I think that having these additional steps will help to avoid erroneous
development of non-features, and also break up the review process into more
manageable chunks of work. Of course I realise not everything needs such a
delineated process, but by the same token it might assist in keeping some of
the less visible/popular changes moving through the process...

Comments welcome! Crocker's rules, but please keep it constructive...

-T


-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Addition of further status options to tracker

2009-03-09 Thread Tennessee Leeuwenburg
On Tue, Mar 10, 2009 at 2:39 PM, Brett Cannon br...@python.org wrote:



 On Mon, Mar 9, 2009 at 20:25, Tennessee Leeuwenburg 
 tleeuwenb...@gmail.com wrote:

 Hi all,

 I am beginning reviewing some more issues in the tracker. I think it would
 be useful to have the following status options (new status options marked
 with a '+'):
   Open: Means that the issue has been created and not further reviewed
   + Request Approved: Means that the issue is marked as worth further
 development by the community
   + Specification Approved: Means that the functionality to be developed
 is written down in some form, and agreed at least in general terms
 (preferably in fairly specific terms)
   + Under Development: Means that an implementation is currently under
 development
   Pending Feedback: Means that work is suspended pending feedback
   + Under Final Review: Means that a patch has been submitted and may be a
 flag that core developers can usefully review the work done without having
 to revisit the whole process
   Closed: Means that the issue is either suspended indefinitely or has
 been resolved (see resolution value)


  I assume you want all of this for the Status field, correct?

 As for the options, some of these overlap with the Stage field. For
 instance, if something has been set to any stage other than
 accepted/rejected it means it needs to be looked into, so that duplicates
 your Request Approved status. Similar thing with the review stages and
 Under Final Review.

 But a general under development status would probably be worth adding.
 That way if an issue is open it needs attention, Under development means
 someone is working on a solution, pending means someone is blocking the
 issue for more information, and closed means closed.

 One thing to watch out for, Tennessee, is getting too specific. Like your
 Request Approved and Specification Approved just seems too heavy-handed
 to my tastes. Personally, I prefer to make sure the issue workflow to be
 somewhat simple so that people don't end up arguing over stuff like whether
 something has been specified well enough to have it set to Spec Approved
 even if someone else disagrees (which you know would happen).

 -Brett


Hi Brett,

Some great points. The stage settings do overlap a lot of what I had
suggested. What I'm trying to reach is a way to flag quite clearly whether a
tracker issue is:
  * In need of a first response
  * Being taken care of by someone
  * Needs the attention of core developers, just about ready

At the moment, the open/closed settings are a bit useless -- issues are
Open until they are finished, at which point they are Closed. I
personally suspect that Pending feedback is little-used. At the moment,
many Open issues are in various states of maturity or disrepair, so the
only really useful information is whether an issue is Closed.

Examining the stage options more closely, they are very code-oriented.
Really they relate to implementation, not other parts of the process. It's
difficult for me as someone who wants to help out with the Issue resolution
process as much as coding to take an atomic action to help advance the issue
through a process.

What do you think about the following Status flags:

  * Open: Means newly-created, needs early attention
  * + Request for Comment: Means that a discussion regarding functionality
is requested
  * + Under Development: Means that a caring developer is taking care of it
  * Pending Feedback: blocking on new information
  * Closed: Means closed

Once the issue is marked as under development, more information is then
provided by the Stage flag.

Request for Comment means that anyone who is stuck on trying to get their
ideas sorted or a loose specification agreed on can call for feedback
through this flag. There's still some risk of arguments blocking the
progression to Under development, but the issue owner can at least pass to
Under development at their own will without requiring universal agreement.

Core developers can then search on 'commit review' or 'patch review' to see
what could use their attention, while people who are happy to contribute to
the debate can search on Open and Request for Comment issues. Obviously
the RFC flag is redundant when an issue is first raised, since the submitter
always has the option of simply emailing this list. However, for older,
potentially stale issues, it is a useful indicator that the issue may be
either closed out or could use refreshing.

I don't mind what approach is taken -- I'm happy to work within the current
infrastructure if someone can suggest a good way. I really just want to be
able to start distinguishing between issues that are essentially new and
under debate versus issues that most people agree are a Good Thing To Do,
and then helping those issues advance to the point of implementation by
discussing and, if necessary, formalising or recording requirements against
them.

Regards,
-Tennessee

[Python-Dev] Review of Issue http://bugs.python.org/issue2706, timedelta operators

2009-03-09 Thread Tennessee Leeuwenburg
Hi all,

I'm just trying to find my feet with regards to the proper process for
reviewing. I'm not sure what's best:
  * Post the review as a comment on the associated issue. Only nosies will
be updated.
  * Post the review as a comment on the issue, then post a one-line
information update to this list
  * Post the review to this list for consideration
  *  other

http://bugs.python.org/issue2706
General topic: Math operations on timedelta objects
Last activity: 12 Dec 08
Original owner: webograph

This issue covers a number of discrete functional changes. I here review
each in turn:

1) Allow truediv, the operator '/', to be applied to two timedeltas (e.g.
td1 / td2). The return value is a float representing the number of times
that td2 goes into td1.

Evaluation: Since both time deltas are quantitative values of the same unit,
it makes sense they should be able to support basic math operations. In this
case, operation to be added is '/' or truediv. I would personally find this
functionality useful, and believe it is a natural addition to the code.

Recommendation: That this functionality be recommended for development

2) Allow truediv to be applied to a timedelta and an int or float. The
return value is a timedelta representing the fractional proportion of the
original timedelta.

Evaluation: This makes total sense.
Recommendation: That this functionality be recommended for development

2) Allow divmod, the operator '%', to be applied to two timedeltas (e.g. td1
% td2). I think there is some debate here about whether the return value be
an integer in microsends, or a timedelta. I personally believe that a
timedelta should be returned, representing the amount of time remaining
after (td1 // td2)  * td2 has been subtracted.

The alternative is an integer, but due to a lack of immediate clarity over
what time quanta this integer represents, I would suggest returning a unit
amount. There is also some discussion of returning (long, timedelta), but I
personally fail to see the merits of returning the long without some unit
attached.

3) Allow divmod, the operator '%', to be applied to a timedelta and an
integer or float. (e.g. timedelta % 3). I'm not quite as sold on this.  I
suggest that more discussion is required to flesh this out further.


A patch has been attached which implements some of this behaviour. I would
suggest that it's valuable to start doing this work in discrete chunks so
that progress can be begun before the issues under debate are resolved. I
suggest that it would be appropriate to create three smaller issues, each
tackling just one piece of functionality. This should make the changes more
atomic and the code patch simpler.

-T

-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Addition of further status options to tracker

2009-03-09 Thread Tennessee Leeuwenburg

  I don't mind what approach is taken -- I'm happy to work within the
 current infrastructure if someone can suggest a good way. I really just want
 to be able to start distinguishing between issues that are essentially new
 and under debate versus issues that most people agree are a Good Thing To
 Do, and then helping those issues advance to the point of implementation by
 discussing and, if necessary, formalising or recording requirements against
 them.


 I have always viewed it that if Stage is set to anything other than its
 empty default it is worth looking into. But it seems to me what you are
 after is some obvious way to disambiguate issues that are feature requests
 that someone has just asked for and anyone can work on if they want, and
 issues that require attention, i.e. bugs and patches. Is that accurate?


Pretty much. I've got two views. One is that I'd like to search for issues
that are up for grabs which I could take over, hack on, and generally not
get underfoot of core development activity. The other is that I think I can
help with issue gardening -- splitting issues up into those which still need
some more thought, those which someone should pick up and start working on,
etc.

   * Ideas needing more consideration
   * Ideas being hotly debated
   * Good ideas with no owning developer
   * Ideas currently under initial development
   * Ideas ready for consideration by the core developers

In order to make the most use of experienced developers, I'd say it's
important that they spend most of their time concentrated at the bottom of
that list. Bugs and patches more or less automatically qualify for that, and
they can be searched on pretty effectively now. However, doing gardening on
the issues which aren't quite there yet is currently pretty clumsy.

Say I'm a core developer and very busy. I'd like to quickly address bugs if
possible, and I'm happy to help out on important new issues. I certainly
don't want to trawl through a whole lot of immature issues and do the triage
myself -- what a waste of time!  Right now, what can such a person search on
to find the relevant issues? It looks like patch review or commit review
will do nicely. This isn't going to change, so that is still supported. Bugs
are essentially everything not a feature request, so that doesn't change
either.

Okay, so the developer workflow is simple and supported. But what about
pre-core development workflow?

How about for those involved in performing triage and specification? Where I
work, at least 50% of the time is spent just working out what to do. There's
a lot of real work in triage and specification, and it really shouldn't be
done by core developers who could be churning out shiny new stuff. That
means that the triage team (or issue janitors) need to be able to support a
workflow this is pretty easy on them, too. At this stage, we're not dealing
with code, we're just dealing with problems.

If we want people with great ideas to get to the top of the heap quickly, we
need some way to facilitate that, while issues that are either inappropriate
or being hotly contested don't suck time away from more important things.

Anyway, I really do just want to fit in. I'm just butting into some workflow
things which seem a bit clumsy when doing issue gardening or when finding
coding tasks that are up for grabs for a python-dev newbie...

Cheers,
-T
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] draft 3.1 release schedule

2009-03-06 Thread Tennessee Leeuwenburg
 Well, that happens.  An alternative to withdrawing entirely, would be
 increasing the price (eg, to ten patches as you originally suggested).
 Or specifying windows in your calendar when the offer is open.  Eg,
 avoid doubling up on release times when you need make time to build
 installers etc. ... but of course just before release is when people
 will get antsy about their lost patches.

 I hope that somebody will pick up the slack here, because review is
 really important to the workflow, and getting more people involved in
 reviewing at some level is more important (because it's less
 glamorous in itself) than attracting coders.


It's funny ... I would have thought that one of the most attractive aspects
of offering patches for inclusion was not just getting feature X into the
language, but the opportunity to have your code reviewed by the best of the
best, or similarly to review the code of others and really think about its
strengths and weaknesses. I would have said that participating in a project
at that level would basically be the best opportunity for ongoing learning
and development available.
I guess I'm saying that I'm surprised people aren't a bit more appreciative
of the opportunity to review code. I mean, I wouldn't think that Python was
just work for anyone who has the passion to commit back to the core
project. I don't think I would even be on this list or attempting to put
together my first (and almost inconseqentially small) patch if it weren't
for the fact that I see it as a huge opportunity. It's certainly not an
attempt to 'push' anything into the language.

Obviously that's what you found though -- people who weren't really
understanding of how the language gets put together. I can imagine having
held that view in the past myself, also. I can to some extent understand the
perspective of feeling you have some fantastic idea which you'd love to get
implemented; yet the people who can make it happen are too concerned with
their own issues to take the time to roll in your changes.

Would you object to my blogging on the topic in line with the comments that
I have just made? I almost feel silly making that kind of suggestion after
having only been here a short time -- I feel a bit boorish! -- but having
run The Python Papers and also no longer being a 'green' developer at work,
I feel as though I do have something to contribute on the topic even if it
is somewhat immaturely conceived.

Regards,
-Tennessee
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Forgotten Py3.0 change to remove Queue.empty() and Queue.full()

2009-03-06 Thread Tennessee Leeuwenburg
I don't mind whether its in or out, but as a language user I think it's
best to minimise undocumented interfaces.
According to that principle, if it's in, then it should also work as
documented (and be documented), and be supported. If it's out then it
should either be removed entirely or be marked private (i.e. leading
underscore, unless I'm mistaking my style guidelines).

Cheers,
-T

On Sat, Mar 7, 2009 at 10:19 AM, Raymond Hettinger pyt...@rcn.com wrote:


 [Martin v. Löwis]

 I disagree that our users are served by constantly breaking the
 API, and removing stuff just because we can. I can't see how
 removing API can possibly serve a user.


 Am not following you here.  My suggestion was to remove the two
 methods in Py3.1 which isn't even in alpha yet.  This is for a feature
 that has a simple substitute, was undocumented for Py3.0, and had
 long been documented in Py2.x as being unreliable.

 It's seems silly to me that an incomplete patch from a year ago
 would need to wait another two years to ever see the light of day
 (am presuming that 3.1 goes final this summer and that 3.2 follows
 18 months later). That being said, I don't really care much.
 We don't actually have to do anything.  It could stay in forever
 and cause no harm.


 Raymond
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 372 -- Adding an ordered directory to collections ready for pronouncement

2009-03-04 Thread Tennessee Leeuwenburg
Hello all,

First a comment on-thread:
  I can't wait to get an ordered dictionary in the stdlib! The discussion
regarding suggestions for the name appears to be ongoing. What about the
name 'orderdict' instead of 'ordereddict'?. It doesn't contain the double-d,
is slightly shorter, and I think a little more typo-friendly. Just my 2c,
please feel free to ignore. OrderDict would of course be the
alternative-casing version.

Secondly, regarding this list:
  I couldn't find a lot of documentation regarding list culture, so I'm
quite nervous about the potential for stepping in where I'm not welcome
before I have spent a lot of time 'spinning up' on this issues of this list.
I am interested in learning more about how Python is written and, if I can,
providing some assistance to that task. However it's going to be a long,
slow process for me. At the same time, I do have firsthand knowledge of how
hard it can be to get people to contribute to anything to any degree, and as
such don't want to be a part of the problem by being too tentative in
introducing myself.

I would appreciate any pointers regarding what is appreciated on this list
and what is not. Hopefully, over time I will be able to make some form of
useful, concrete code contributions in the form of patches or documentation,
but I do realise it will take a lot of hands-on learning first. Trying to
grok the discussions on this list seems like a big part of that.

Thanks,
-Tennessee
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Forgotten Py3.0 change to remove Queue.empty() and Queue.full()

2009-03-04 Thread Tennessee Leeuwenburg
That code doesn't look t scary... is trying to add a DeprecationWarning
something that I could try to learn how to do and try my hand at? Maybe if
someone else would like to address that more quickly, they'd be able to keep
me in the loop so I can start learning how Things are Done?

It looks as though all that is required is to add a warn message indicating
the planned removal?

I'm not sure if it's better for me to have a go at things quietly or to be
more interactive about getting to grips with the code...

Cheers,
-T

On Thu, Mar 5, 2009 at 12:04 PM, Benjamin Peterson benja...@python.orgwrote:

 2009/3/4 Raymond Hettinger pyt...@rcn.com:
  Just notices that the empty() and full() methods were still there.
  IIRC, we agreed to take them out (but leaving qsize() exposed).
  The docs entries and test cases were taken out, but the actual
  methods were accidentally left in.

 If so, the only thing to do is deprecate it in 3.1 for removal in 3.2.



 --
 Regards,
 Benjamin
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Forgotten Py3.0 change to remove Queue.empty() and Queue.full()

2009-03-04 Thread Tennessee Leeuwenburg
Hi all, just FYI... sorry for any list pollution

I went ahead and tried adding a warning to my local checkout. The test suite
raised a DeprecationWarning -- it appears those methods are currently in use
by other Lib code:


test_multibytecodec_support
test_multiprocessing
/home/tjl/python3/lib/python3.1/queue.py:98: DeprecationWarning:
Queue.empty() is deprecated, and won't be in 3.2.
  DeprecationWarning)
/home/tjl/python3/lib/python3.1/queue.py:109: DeprecationWarning:
Queue.full() is deprecated, and won't be in 3.2.
  DeprecationWarning)
/home/tjl/python3/lib/python3.1/queue.py:98: DeprecationWarning:
Queue.empty() is deprecated, and won't be in 3.2.
  DeprecationWarning)
/home/tjl/python3/lib/python3.1/queue.py:109: DeprecationWarning:
Queue.full() is deprecated, and won't be in 3.2.
  DeprecationWarning)
test_mutants
test_netrc
test_nis

Regards,
-T

On Thu, Mar 5, 2009 at 12:30 PM, Raymond Hettinger pyt...@rcn.com wrote:

 Just noticed that the empty() and full() methods were still there.
 IIRC, we agreed to take them out (but leaving qsize() exposed).
 The docs entries and test cases were taken out, but the actual
 methods were accidentally left in.


 If so, the only thing to do is deprecate it in 3.1 for removal in 3.2.


 I recommend adding a warning to 3.0.2 and removing in 3.1.
 Waiting for more 3.x uptake doesn't serve our users well.
 IIRC, that was the rationale for cmp() removal in 3.0.1.
 Even in 2.x, these methods were documented as being unreliable and were
 removed from the 3.0 docs entirely.
 We discussed removing them and most of the work was done.

 Guido, any thoughts?


 Raymond

 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] forgive my patch submission

2009-03-04 Thread Tennessee Leeuwenburg
I am trying to learn the systems... I'm not trying to force a particular
approach to the solution but I want to learn how to correctly follow the
process. Please feel free to reject this -- I'm not trying to jump the gun
given there isn't even an agreed requirement at this stage.

Regards,
-Tennessee

-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Forgotten Py3.0 change to remove Queue.empty() and Queue.full()

2009-03-04 Thread Tennessee Leeuwenburg
Hi Jesse,

I'm not sure what the most appropriate thing to do is. I could:
  (a) leave any multiprocessing changes to you,
  (b) alter the functioning of the method queue_empty inside
test_multiprocessing to test for emptiness in a different manner

I'm happy to go ahead and try my hand at making the appropriate changes but
I don't want to tread in areas of the code that other people have ownership
of.

It appears as though the only place in multiprocessing which uses the
deprecated call is in the test_multiprocessing file.

I also found a call to Queue.empty in wsgui.py. I don't see any authorship
tags at the top of this file but the last commiter was Andrew Kuchling. Do I
need to contact him regarding this or is it appropriate for me to make the
appropriate modifications without consulting him?

Apologies to anyone if I appear to be overly tentative OR overly pushy -- I
am aware that some people take a great deal of personal ownership of their
works, while others are impatient with a soft approach.

Regards,
-Tennessee

On Thu, Mar 5, 2009 at 12:41 PM, jnol...@gmail.com wrote:

 Yup, I'd need to remove support in multiprocessing too.


 On Mar 4, 2009 8:39pm, Tennessee Leeuwenburg tleeuwenb...@gmail.com
 wrote:
  Hi all, just FYI... sorry for any list pollution
 
  I went ahead and tried adding a warning to my local checkout. The test
 suite raised a DeprecationWarning -- it appears those methods are currently
 in use by other Lib code:
 
 
 
  test_multibytecodec_support
  test_multiprocessing
  /home/tjl/python3/lib/python3.1/queue.py:98: DeprecationWarning:
 Queue.empty() is deprecated, and won't be in 3.2.
DeprecationWarning)
  /home/tjl/python3/lib/python3.1/queue.py:109: DeprecationWarning:
 Queue.full() is deprecated, and won't be in 3.2.
 
DeprecationWarning)
  /home/tjl/python3/lib/python3.1/queue.py:98: DeprecationWarning:
 Queue.empty() is deprecated, and won't be in 3.2.
DeprecationWarning)
  /home/tjl/python3/lib/python3.1/queue.py:109: DeprecationWarning:
 Queue.full() is deprecated, and won't be in 3.2.
 
DeprecationWarning)
  test_mutants
  test_netrc
  test_nis
 
  Regards,
  -T
 
  On Thu, Mar 5, 2009 at 12:30 PM, Raymond Hettinger pyt...@rcn.com
 wrote:
 
 
 
  Just noticed that the empty() and full() methods were still there.
 
  IIRC, we agreed to take them out (but leaving qsize() exposed).
 
  The docs entries and test cases were taken out, but the actual
 
  methods were accidentally left in.
 
 
 
 
 
  If so, the only thing to do is deprecate it in 3.1 for removal in 3.2.
 
 
 
 
 
  I recommend adding a warning to 3.0.2 and removing in 3.1.
 
  Waiting for more 3.x uptake doesn't serve our users well.
 
  IIRC, that was the rationale for cmp() removal in 3.0.1.
 
  Even in 2.x, these methods were documented as being unreliable and were
 removed from the 3.0 docs entirely.
 
  We discussed removing them and most of the work was done.
 
 
 
  Guido, any thoughts?
 
 
 
 
 
  Raymond
 
 
  ___
 
  Python-Dev mailing list
 
  Python-Dev@python.org
 
  http://mail.python.org/mailman/listinfo/python-dev
 
  Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/tleeuwenburg%40gmail.com
 
 
 
 
 
 
  --
  --
  Tennessee Leeuwenburg
  http://myownhat.blogspot.com/
  Don't believe everything you think
 




-- 
--
Tennessee Leeuwenburg
http://myownhat.blogspot.com/
Don't believe everything you think
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Removing the GIL (Me, not you!)

2007-09-13 Thread Tennessee Leeuwenburg
Pardon me for talking with no experience in such matters, but...

Okay, incrementing a reference counter is atomic, therefore the cheapest
possible operation. Is it possible to keep reference counting atomic in a
multi-thread model?

Could you do the following... let's consider two threads, A and B. Each
time an object is created, a reference count is created in both A and B.
Let's suppose A has a real reference and B has no reference really.
Couldn't the GC check two reference registers for a reference count? The
object would then be cleaned up only if both registers were 0.

To exploit multiple CPUs, you could have two persistent Python processes on
each CPU with its own mini-GIL. Object creation would then involve a call to
each process to create the reference and GC would involve checking each
process to see what their count is. However, it would mean that within each
process, threads could create additional references or remove references in
an atomic way.

In a single-CPU system, this would be the same cost as currently, since I
think that situation would devolve to having just one place to check for
references. This seems to mean that it is the case that it would be no more
expensive for a single-CPU system.

In a two-CPU system, I'm no expertise on the actual call overheads of object
creation and garbage collection, but logically it would double the effort of
object creation and destruction (all such operations now need to occur on
both processes) but would keep reference increments and decrements atomic.

Once again, I'm really sorry if I'm completely off-base since I have never
done any actual coding in this area, but I thought I'd make the suggestion
just in case it happened to have relevance.

Thanks,
-Tennessee
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Compiling Python 2.5 and settinf UCS2 flag

2007-09-11 Thread Tennessee Leeuwenburg
Hi all,

I have an unusual use case in which some software I work on compiles a
version of Python for distribution. I'm not 100% across this as it's not at
all my area of responsibility, but I have been having some issues lately.

My hand-compiled version of Python 2.5 works just fine, and in turn uses a
hand-compiled Tcl/Tk with threading disabled.

The system then re-compiles Python2.5 for its own purposes. At this point,
it appears to ignore some of the options originally set using configure for
Python.

I have enough knowledge/control over the system to pass in some additional
compiler flags. I would like to try to force some behaviour normally set as
a flag to the configure script.

Is there a C compiler flag I can use to force the use of UCS2 unicode?

Thanks,
-Tennessee
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com