Re: python backup script

2013-05-06 Thread Jerry Hill
On Mon, May 6, 2013 at 3:01 PM, MMZ  wrote:

> I am trying to backup database on CentOS linux server,I'm getting error
> when running the following script. anyone can help?
>
> Traceback (most recent call last):
>   File "./backup.py", line 8, in ?
> username = config.get('client', 'mmz')
>   File "/usr/lib/python2.4/ConfigParser.py", line 511, in get
> raise NoSectionError(section)
>

​I've never used ConfigParser, but that ​

​error message looks pretty simple to interpret.  You've set up a
ConfigParser object, told it to read in ~/my.cnf, the asked for the value
of section 'client', option 'mmz'.  The error indicates that your config
files doesn't have a section named 'client'.

What is the content of your ~/my.cnf file?

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


Re: PEP 378: Format Specifier for Thousands Separator

2013-05-23 Thread Jerry Hill
On Thu, May 23, 2013 at 6:20 PM, Carlos Nepomuceno <
carlosnepomuc...@outlook.com> wrote:

> Can str.format() do the following?
>
> f = '%d %d %d'
> v = '1,2,3'
> print f % eval(v)
>

​Sure:

Python 3.2.2 (default, Sep  4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)]
on win32
>>> f = "{} {} {}"
>>> v = "1,2,3"
>>> print(f.format(*eval(v)))
1 2 3
>>>

The * unpacks the tuple returned from eval(), so that you get 3 separate
parameters passed to format(), instead of the single tuple.​

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


Re: detect key conflict in a JSON file

2013-05-29 Thread Jerry Hill
On Wed, May 29, 2013 at 1:10 PM, Chris Rebert  wrote:

> On Wed, May 29, 2013 at 4:16 AM, Jabba Laci  wrote:
> > I have a growing JSON file that I edit manually and it might happen
> > that I repeat a key. If this happens, I would like to get notified.
> > Currently the value of the second key silently overwrites the value of
> > the first.
>
> You can pass an appropriate object_pairs_hook function to json.load():
> http://docs.python.org/2/library/json.html#repeated-names-within-an-object
> http://docs.python.org/2/library/json.html#json.load
>

​That makes it pretty easy to provide any validation you might like to your
JSON data. Here's a quick example that raises ValueError on duplicate keys,
since the docs didn't have any examples.

Python 3.2.2 (default, Sep  4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)]
on win32

​>>> s = '{"x": 1, "x": 2, "x": 3}'
>>> def json_checker(seq):
d = {}
for key, value in seq:
if key in d:
raise ValueError("Duplicate key %r in json document" % key)
else:
d[key]=value
return d

>>> json.loads(s, object_pairs_hook=json_checker)
Traceback (most recent call last):
  File "", line 1, in 
json.loads(s, object_pairs_hook=checker)
  File "C:\Python32\lib\json\__init__.py", line 320, in loads
return cls(**kw).decode(s)
  File "C:\Python32\lib\json\decoder.py", line 351, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python32\lib\json\decoder.py", line 367, in raw_decode
obj, end = self.scan_once(s, idx)
  File "", line 5, in json_checker
raise ValueError("Duplicate key %r in json document" % key)
ValueError: Duplicate key 'x' in json document

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


Re: Geo Location extracted from visitors ip address

2013-07-08 Thread Jerry Hill
On Fri, Jul 5, 2013 at 3:08 PM, Νίκος Gr33k  wrote:
> Is there a way to extract out of some environmental variable the Geo
> location of the user being the city the user visits out website from?
>
> Perhaps by utilizing his originated ip address?

No, you'd need to take the originating IP address and look it up in a
geolocation database or submit it to a geolocation service and get the
response back from them.  It's not stored in any environment
variables.

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


Re: PyGLet, 2to3...?

2013-07-26 Thread Jerry Hill
On Thu, Jul 25, 2013 at 7:49 PM, John Ladasky
 wrote:
> ===
>
> john@john:~/Desktop/pyglet-1.2alpha1$ sudo python3 setup.py install
>
> [sudo] password for john:
>
> running install
> running build
> running build_py
> running install_lib
> running install_egg_info
> Removing /usr/local/lib/python3.3/dist-packages/pyglet-1.2alpha1.egg-info
> Writing /usr/local/lib/python3.3/dist-packages/pyglet-1.2alpha1.egg-info

Pyglet was installed to /usr/local/lib/python3.3/dist-packages ...

> john@john:~/Desktop/pyglet-1.2alpha1$ python3
>
> Python 3.3.1 (default, Apr 17 2013, 22:30:32)
> [GCC 4.7.3] on linux
> Type "help", "copyright", "credits" or "license" for more information.
 import pyglet
> Traceback (most recent call last):
>   File "", line 1, in 
>   File "./pyglet/__init__.py", line 276
> print '[%d] %s%s %s' % (thread, indent, name, location)
>^
> SyntaxError: invalid syntax

... But here, the error message is talking about ./pyglet/__init__.py.
 I think you're accidentally importing the pyglet package from the
local directory instead of from the proper location in dist-packages.
Try changing back to your home directory and trying this again.  I
think you're picking up the code from
~/Desktop/pyglet-1.2alpha1/pyglet instead of from
/usr/local/lib/python3.3/dist-packages.

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


Re: howto do a robust simple cross platform beep

2012-07-24 Thread Jerry Hill
On Fri, Jul 13, 2012 at 9:00 PM, Gelonida N  wrote:
> I tried the simplest approach (just printing the BEL character '\a' chr(7)
> to the console.

That's what I do when I want to send an audible alert to the user of a
console based program.  It's then up to the user's terminal to do
whatever the user wants. Printing a BEL character has the added
advantage that it plays nicely with programs that are run remotely
(through ssh sessions and the like).

Personally, I'm usually in a screen session, inside either an xterm or
over an ssh link, and have visual bells turned on so I can see the
alerts, even when they pop up in another screen.

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


Re: print(....,file=sys.stderr) buffered?

2012-08-13 Thread Jerry Hill
On Mon, Aug 13, 2012 at 11:16 AM, Helmut Jarausch  wrote:
> Now, when executing this, I always get
>
> +++ before calling foo
> --- after  calling foo
 entering foo ...

Can you give us a piece of code we can run that produces this output
for you?  You gave us an outline in your original post, but it would
be useful to have a self contained example that you can say reliably
produces the unexpected output for you.

Also, what environment, OS, and exact python version is this?  Is the
code being run in an IDE of some sort?  Does the behavior change if
you call your code directly from the command line?

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


Re: How do I display unicode value stored in a string variable using ord()

2012-08-17 Thread Jerry Hill
On Fri, Aug 17, 2012 at 1:49 PM,   wrote:
> The character '…', Unicode name 'HORIZONTAL ELLIPSIS',
> is one of these characters existing in the cp1252, mac-roman
> coding schemes and not in iso-8859-1 (latin-1) and obviously
> not in ascii. It causes Py3.3 to work a few 100% slower
> than Py<3.3 versions due to the flexible string representation
> (ascii/latin-1/ucs-2/ucs-4) (I found cases up to 1000%).
>
 '…'.encode('cp1252')
> b'\x85'
 '…'.encode('mac-roman')
> b'\xc9'
 '…'.encode('iso-8859-1') # latin-1
> Traceback (most recent call last):
>   File "", line 1, in 
> UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026'
> in position 0: ordinal not in range(256)
>
> If one could neglect this (typographically important) glyph, what
> to say about the characters of the European scripts (languages)
> present in cp1252 or in mac-roman but not in latin-1 (eg. the
> French script/language)?

So... python should change the longstanding definition of the latin-1
character set?  This isn't some sort of python limitation, it's just
the reality of legacy encodings that actually exist in the real world.


> Very nice. Python 2 was built for ascii user, now Python 3 is
> *optimized* for, let say, ascii user!
>
> The future is bright for Python. French users are better
> served with Apple or MS products, simply because these
> corporates know you can not write French with iso-8859-1.
>
> PS When "TeX" moved from the ascii encoding to iso-8859-1
> and the so called Cork encoding, "they" know this and provided
> all the complementary packages to circumvent this. It was
> in 199? (Python was not even born).
>
> Ditto for the foundries (Adobe, Linotype, ...)


I don't understand what any of this has to do with Python.  Just
output your text in UTF-8 like any civilized person in the 21st
century, and none of that is a problem at all.  Python make that easy.
 It also makes it easy to interoperate with older encodings if you
have to.

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


Re: ONLINE SERVER TO STORE AND RUN PYTHON SCRIPTS

2012-08-19 Thread Jerry Hill
On Sun, Aug 19, 2012 at 6:27 PM, coldfire  wrote:
> Also I have no idea how to deploy a python script online.
> I have done that on my local PC using Apache server and cgi but it Works fine.
> Whats this all called? as far as I have searched its Web Framework but I dont 
> wont to develop  a website Just a Server which can run my scripts at specific 
> time and send me email if an error occurs.
> I use Python And i am not getting any lead.

If you want to host web pages, like your're doing on your local pc
with Apache and cgi, then you need an account with a web server, and a
way to deploy your scripts and other content.  This is often known as
a 'web hosting service'[1].  The exact capabilities and restrictions
will vary from provider to provider.

If you just want an alway-on, internet accessable place to store and
run your python scripts, you may be interested in a 'shell
account'[2], or if you need more control over the environment, a
'virtual private server'[3].

That may give you a few terms to google, and see what kind of service you need.

1 http://en.wikipedia.org/wiki/Shell_account
2 http://en.wikipedia.org/wiki/Web_host
3 http://en.wikipedia.org/wiki/Virtual_private_server

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


Re: Why doesn't Python remember the initial directory?

2012-08-19 Thread Jerry Hill
On Sun, Aug 19, 2012 at 9:57 PM, kj  wrote:
> By now I have learned to expect that 99.99% of Python programmers
> will find that there's nothing wrong with behavior like the one
> described above, that it is in fact exactly As It Should Be, because,
> you see, since Python is the epitome of perfection, it follows
> inexorably that any flaw or shortcoming one may *perceive* in Python
> is only an *illusion*: the flaw or shortcoming is really in the
> benighted programmer, for having stupid ideas about programming
> (i.e. any idea that may entail that Python is not *gasp* perfect).
> Pardon my cynicism, but the general vibe from the replies I've
> gotten to my post (i.e. "if Python ain't got it, it means you don't
> need it") is entirely in line with these expectations.

Since you have no respect for the people you're writing to, why
bother?  I know I certainly have no desire to spend any time at all on
your problem when you say things like that.  Perhaps you're looking
for for the argument clinic instead?

http://www.youtube.com/watch?v=RDjCqjzbvJY

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


Re: python 6 compilation failure on RHEL

2012-08-21 Thread Jerry Hill
On Tue, Aug 21, 2012 at 12:34 AM, John Nagle  wrote:
> After a thread of clueless replies, it's clear that nobody
> responding actually read the build log.  Here's the problem:

The very first reply, Emile's, pointed out that these were optional
modules, and that python did, in fact build successfully.

>   Failed to find the necessary bits to build these modules:
> bsddb185
> dl
> imageop
> sunaudiodev
>
> What's wrong is that the Python 2.6 build script is looking for
> some antiquated packages that aren't in a current RHEL.  Those
> need to be turned off.

They don't need to be turned off.  They can either be ignored (because
they aren't needed, and did not cause the build to fail), or the
development libraries for those pieces can be installed and python
recompiled.

The rest of the thread has been commenting on the OP's choice of
python version and operating system.  That's not exactly on topic, but
the original question was answered in the very first response.

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


Re: writelines puzzle

2012-08-22 Thread Jerry Hill
On Wed, Aug 22, 2012 at 11:38 AM, William R. Wing (Bill Wing)
 wrote:
> Much to my surprise, when I looked at the output file, it only contained 160 
> characters.  Catting produces:
>
> StraylightPro:Logs wrw$ cat RTT_monitor.dat
> 2354[ 734716.72185185  734716.72233796  734716.72445602 ...,  734737.4440162
>   734737.45097222  734737.45766204][ 240.28.5   73.3 ...,   28.4   27.4   
> 26.4]

If that's the full output, then my guess is that x_dates and y_rtt are
not actual python lists.  I bet they are, in fact, numpy arrays and
that the string representation of those arrays (what you're getting
from str(x_dates), etc) include the '...' in the middle instead of the
full contents.

Am I close?

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


Re: Objects in Python

2012-08-23 Thread Jerry Hill
On Thu, Aug 23, 2012 at 4:59 AM, Jussi Piitulainen
 wrote:
> I don't get it either. To me the python-has-no-variables campaigners
> seem confused. As far as I can see, Python can be seen in terms of
> variables bound to (locations containing) values perfectly well, in a
> way that should be quite familiar to people who come from Java (or
> Lisp, Scheme like me).

Personally, when I was learning python I found the idea of python
having names and values (rather than variables and references) to
clear up a lot of my misconceptions of the python object model.  I
think it's done the same for other people too, especially those who
come from the C world, where a variable is a named and typed location
in memory.

Perhaps those that come from the Java and Lisp world don't find the
name/value paradigm as helpful.  Still, it seems silly to excoriate
people on the list for trying to explain python fundamentals in
several different ways.  Sometimes explaining the same idea in
different words helps people understand the concept better.

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


Re: Accessing dll

2012-09-06 Thread Jerry Hill
On Thu, Sep 6, 2012 at 11:07 AM, Helpful person  wrote:
> I am a complete novice to Python.  I wish to access a dll that has
> been written to be compatible with C and VB6.  I have been told that
> after running Python I should enter  "from ctypes import *" which
> allows Python to recognize the dll structure.  I have placed the dll
> into my active directory (if that's the correct word, one on my path)
> for simplification.
>
> I tried:   "import name.dll" but this just gave me an error telling me
> that there was no such module.
>
> Can someone please help?

You should start by reading the ctypes documentation, here:
http://docs.python.org/library/ctypes.html .  It has a lot of examples
that ought to get you started.

When you run into more specific problems, you're going to have to
provide a lot more information before we can help you, including the
specific documentation of the DLL you're trying to wrap, your
platform, and python version.  If you are not permitted to share those
things, we may not be able to give you much help.  Ctypes is very
specific to the actual library you are accessing, and requires that
you understand the requirements of the underlying DLL.

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


Re: Accessing dll

2012-09-06 Thread Jerry Hill
On Thu, Sep 6, 2012 at 12:46 PM, Helpful person  wrote:
> The reference might help if I could get Python to recognize the dll as
> a module.

That's never going to happen.  It's a DLL, not a python module.  I
think the documentation lays that out pretty explicitly.  Have you
experimented with the very first bit of example code in the
documentation?  What do you get if you do the following at the
interactive interpreter?

>>> from ctypes import *
>>> print windll.


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


Re: How to limit CPU usage in Python

2012-09-20 Thread Jerry Hill
On Thu, Sep 20, 2012 at 11:12 AM, Rolando Cañer Roblejo
 wrote:
> Hi all,
>
> Is it possible for me to put a limit in the amount of processor usage (%
> CPU) that my current python script is using? Is there any module useful for
> this task? I saw Resource module but I think it is not the module I am
> looking for. Some people recommend to use nice and cpulimit unix tools, but
> those are external to python and I prefer a python solution. I am working
> with Linux (Ubuntu 10.04).

Maximum percentage of CPU used isn't normally something you control.
The only way I know of to do it involves having another process
monitor the thing you want to control and sending signals to stop and
start it (e.g., http://cpulimit.sourceforge.net/).

Typically, you instead want to control the priority (so that higher
priority apps can easily take more CPU time).  That's what nice is for
(http://docs.python.org/library/os.html#os.nice).  If you want to
limit a process in the same way that ulimit does, then the resources
module is what you want
(http://docs.python.org/library/resource.html#resource.setrlimit).

Is there a particular reason that you'd rather have your CPU sitting
idle, rather than continuing with whatever code is waiting to be run?
I'm having a hard time understanding what problem you might be having
that some combination of setting the nice level and imposing resource
limits won't handle.

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


Re: How to apply the user's HTML environment in a Python programme?

2012-09-21 Thread Jerry Hill
On Fri, Sep 21, 2012 at 9:31 AM, BobAalsma  wrote:
> Thanks, Joel, yes, but as far as I'm aware these would all require the Python 
> programme to have the user's username and password (or "credentials"), which 
> I wanted to avoid.

No matter what you do, your web service is going to have to
authenticate with the remote web site.  The details of that
authentication are going to vary with each remote web site you want to
connect to.

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


Re: How to limit CPU usage in Python

2012-09-27 Thread Jerry Hill
On Thu, Sep 27, 2012 at 12:58 PM, Prasad, Ramit
 wrote:
> On *nix you should just set the appropriate nice-ness and then
> let the OS handle CPU scheduling. Not sure what you would do
> for Windows--I assume OS X is the same as *nix for this context.

On windows, you can also set the priority of a process, though it's a
little different from the *nix niceness level.  See
http://code.activestate.com/recipes/496767/ for a recipe using
pywin32.  I believe the psutil module handles this too, but I don't
think it manages to abstract away the platform differences.

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


Re: Python source code easy to hack?

2012-09-28 Thread Jerry Hill
On Fri, Sep 28, 2012 at 10:18 AM,   wrote:
> Python bytecode is not easier to hack than Java or .NET bytecodes.

This is true, but both java and .net are also relatively easy to decompile.

In general though, why does it matter?  What are you trying to protect
yourself against?  If you're including secrets in your code like
encryption keys or bank account numbers, there's no way to keep them
out of the hands of a determined attacker that has access to your
file, no matter what language it may be written in.

If you must keep anyone from ever seeing how your code works, the only
way to do that is to keep all the sensitive bits running on a machine
that you control.  Typically, you would do that by distributing a
client portion of your application, and also running a web service.
Then you can have your client connect to the web service, request that
the sensitive calculations, or money transfer, or whatever, be done on
the server, and just pass back the results.

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


Re: get google scholar using python

2012-10-01 Thread Jerry Hill
On Mon, Oct 1, 2012 at 1:28 PM, রুদ্র ব্যাণার্জী  wrote:
> So, If I manage to use the User-Agent as shown by you, will I still
> violating the google EULA?

Very likely, yes.  The overall Google Terms of Services
(http://www.google.com/intl/en/policies/terms/) say "Don’t misuse our
Services. For example, don’t interfere with our Services or try to
access them using a method other than the interface and the
instructions that we provide."

The only method that Google appears to allow for accessing Scholar is
via the web interface, and they explicitly block web scraping through
that interface, as you discovered.  It's true that you can get around
their block, but I believe that doing so violates the terms of
service.

Google does not appear to offer an API to access Scholar
programatically, nor do I see a more specific EULA or TOS for the
Scholar service beyond that general TOS document.

That said, I am not a lawyer.  If you want legal advice, you'll need
to pay a lawyer for that advice.

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


Re: string contains and special characters

2012-10-09 Thread Jerry Hill
On Tue, Oct 9, 2012 at 10:02 AM, loial  wrote:
> I am trying to match a string that containing the "<" and ">" characters, 
> using the string contains function, but it never seems to find the lines 
> containing the string
>
> e.g if mystring.contains("") :
>
> Do I need to escape the characters...and if so how?

Strings don't have a contains() method.  Assuming that mystring is
actually a string, you should be getting a very specific error,
telling you exactly what's wrong with your code (something like
AttributeError: 'str' object has no attribute 'contains').

If that isn't what you're seeing, you'll need to provide the full and
complete text of the error you are getting, and preferably enough of
your code that we can reproduce the issue and help you solve it.

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


Re: problem with usbtmc-communication

2012-12-11 Thread Jerry Hill
On Tue, Dec 11, 2012 at 1:58 AM, Jean Dubois  wrote:
>
> I found examples in the usbtmc kernel driver documentation (the
> examples there are given in C):
> http://www.home.agilent.com/upload/cmc_upload/All/usbtmc.htm?&cc=BE&lc=dut

Thanks for that link.  I think it explains how the driver works pretty
well.  I haven't done any work with devices like this, but I see a few
things in those docs that might help.

In their example code, they open the device with: open(“/dev/usbtmc1”,O_RDWR);

That's not exactly the same as what you've been doing.  I would try
opening the file this way in python:
usb_device = open('/dev/usbtmc1', 'w+', buffering=0)

That truncates the file after it opening it, and disables any
buffering that might be going on.

Then, I would try writing to the device with usb_device.write() and
usb_device.read().  read() attempts to read to end-of-file, and based
on the docs, the driver will work okay that way.  Doing that, along
with turning off buffering when you open the file, should eliminate
any issues with the driver failing to emit newlines someplace.

Personally, I would probably try playing with the device from python's
interactive interpreter.  I think that could shed a lot of light on
the behavior you're seeing.

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


Re: Python parser problem

2012-12-12 Thread Jerry Hill
On Wed, Dec 12, 2012 at 2:10 PM, RCU  wrote:
> With this occasion I would like to ask also what are the limits of the
> Python 2.x and 3.x parser. Where can I find what are the limits on the
> size/lines of the parsed script?

The Python Language Reference is probably what you're looking for:
http://docs.python.org/2/reference/index.html

See, particularly, section 2 about lexical analysis and possibly
section 9 for the grammar.  The short answer though, is that python
doesn't have any limits on the line length or the size of a script,
other than that execution will obviously fail if you run out of memory
while parsing or compiling the script.

PEP 8 (http://www.python.org/dev/peps/pep-0008/) is the Python style
guide, and it does have some recommendations about line length
(http://www.python.org/dev/peps/pep-0008/#maximum-line-length).  That
document suggests a maximum length of 79 characters per line, and
that's probably what PythonTidy was trying to accomplish by splitting
your line.

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


Re: Else statement executing when it shouldnt

2013-01-23 Thread Jerry Hill
On Wed, Jan 23, 2013 at 8:35 AM, Jussi Piitulainen
 wrote:
>> The feature isn't bad, it's just very, very badly named.
>
> I believe it would read better - much better - if it was "for/then"
> and "while/then" instead of "for/else" and "while/else".

That's always been my opinion too.  I'd remember how the construct
worked if it was for/then (and while/then).  Since seeing for/else
always makes my brain lock up for a few seconds when I'm reading code,
I don't bother using it.

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


Re: Maximum Likelihood Estimation

2013-02-01 Thread Jerry Hill
On Fri, Feb 1, 2013 at 1:59 PM, Michael Torrie  wrote:
> Most people on this list consider 8 dihedral to be a badly
> programmed bot.

For what it's worth, I think it's a very cleverly programmed bot.  It
usually makes just enough sense for me to wonder if there really is a
human being behind the keyboard.

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


Re: Parsing a serial stream too slowly

2012-01-23 Thread Jerry Hill
On Mon, Jan 23, 2012 at 4:48 PM, M.Pekala  wrote:

> Hello, I am having some trouble with a serial stream on a project I am
> When one sensor is running my python script grabs the data just fine,
> removes the formatting, and throws it into a text control box. However
> when 3 or more sensors are running, I get output like the following:
>
> Sensor 1: 373
> Sensor 2: 112$$M-160$G373
> Sensor 3: 763$$A892$
>
> I am fairly certain this means that my code is running too slow to
> catch all the '$' markers. Below is the snippet of code I believe is
> the cause of this problem...
>

That doesn't sound right.  Being too slow seems unlikely to produce the
wrong data...


def OnSerialRead(self, event):
>text = event.data
>self.sensorabuffer = self.sensorabuffer + text
>self.sensorbbuffer = self.sensorbbuffer + text
>self.sensorcbuffer = self.sensorcbuffer + text
>
>if sensoraenable:
>sensorresult = re.search(r'\$A.*\$.*', self.sensorabuffer )
>

Here, you search in sensorabuffer (which, by the way, would be much more
readable to me as sensor_a_buffer, as recommended by the PEP 8 style guide).



>if sensorbenable:
>sensorresult = re.search(r'\$A.*\$.*', self.sensorbenable)
>

here, you're not searching in the buffer, but in the enable flag.



>if sensorcenable:
>sensorresult = re.search(r'\$A.*\$.*', self.sensorcenable)
>

And here too.

Does that fix the problem?

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


Re: windows and home path

2012-01-24 Thread Jerry Hill
On Tue, Jan 24, 2012 at 9:56 AM, Andrea Crotti
 wrote:
> Window never stops to surprise me, I've been banging my head since yesterday
> and only
> now I now what is the problem.
>
> So suppose I have something like
>
> from os import path
> print path.expanduser('~')
>
> If I run it from cmd.exe I get /Users/user, doing the same in an emacs
> eshell buffer I get
> /Users/user/AppData/Roaming.
>
> What sense does it make??
> Is there a way to get always the same variable from python somehow?

The os.path.exanduser() docs (
http://docs.python.org/library/os.path.html#os.path.expanduser ) say
that "On Windows, HOME and USERPROFILE will be used if set, otherwise
a combination of HOMEPATH and HOMEDRIVE will be used. An initial ~user
is handled by stripping the last directory component from the created
user path derived above."

So, my guess is that emacs is mangling your HOME environment variable.
 That appears to be confirmed by the emacs documentation here:
http://www.gnu.org/software/emacs/manual/html_node/emacs/General-Variables.html#General-Variables
.

At a guess, you do not have a system-wide HOME environment variable.
When you launch python from the command line, it uses either your
USERPROFILE setting, or is falling back to using HOMEDIRVE and
HOMEPATH.  When you launch emacs, it sees that HOME is not set, and
emacs helpfully sets it for you, to whatever path it thinks is
correct.  That would explain why you see different answers in
different environments.

Does that explain the behavior you're seeing?

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


Re: windows and home path

2012-01-24 Thread Jerry Hill
On Tue, Jan 24, 2012 at 11:05 AM, Jerry Hill  wrote:
> So, my guess is that emacs is mangling your HOME environment variable.
>  That appears to be confirmed by the emacs documentation here:
> http://www.gnu.org/software/emacs/manual/html_node/emacs/General-Variables.html#General-Variables

I know, it's bad form to follow up to my own email, but here's a more
concrete reference stating that emacs will set HOME  when emacs
starts: 
http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html

"[Wherever Emacs finds your .emacs file], Emacs sets the value of the
HOME environment variable to point to it, and it will use that
location for other files and directories it normally creates in the
user's home directory. "

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


Re: windows and home path

2012-01-24 Thread Jerry Hill
On Tue, Jan 24, 2012 at 11:10 AM, Andrea Crotti
 wrote:
> Ah yes thanks for the explanation, on Python 2.7 on Linux I don't see
> the same doc, it might have been updated later..
> Anyway I just want to make sure that I get always the same path,
> not depending on the program.
>
> From a first look it seems that just using os.getenv('HOMEPATH') on
> windows might make the trick..

It would not do the trick on my windows XP workstation here.  Your
target environments may be different, of course.  From a general
command prompt (cmd.exe) on my work machine, here's what you would
have to work with:

HOMEDRIVE=H:
HOMEPATH=\
HOMESHARE=\\server\share\userdirectory
USERPROFILE=C:\Documents and Settings\username

There is no HOME set here.  So, what's the right home directory for me
on this PC?  Depending on your opinion of "right" you could end up
with three different answers:  "H:\", "\\server\share\userdirectory",
or "C:\Documents and Settings\username" all seem like valid candidates
to me.  Just going by HOMEPATH isn't going to be helpful if I were to
run your code though.

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


Re: search google with python

2012-01-25 Thread Jerry Hill
On Wed, Jan 25, 2012 at 5:36 AM, Tracubik  wrote:
> thanks a lot but it say it's deprecated, is there a replacement? Anyway
> it'll useful for me to study json, thanks :)

I don't believe Google is particularly supportive of allowing
third-parties (like us) to use their search infrastructure.  All of
the search-related APIs they used to provide are slowly going away and
not being replaced, as far as I can tell.

If you just need to search images (and not Google Image Search in
particular), Bing's API appears to be supported and not about to go
away.  ( http://msdn.microsoft.com/en-us/library/dd900818.aspx )

You could, in theory, make requests to Google just like a web browser
and parse the resulting HTML, but that tends to be fragile and prone
to break.  I believe it also violates Google's Terms of Service.

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


Re: object aware of others

2012-01-29 Thread Jerry Hill
On Sun, Jan 29, 2012 at 1:47 AM, Lee  wrote:

> I was afraid that a list/set/dictionary and alike is the answer, but,
> anyway, thanks everybody.
>
>
It doesn't seem too bad to keep track of the instances in the class object
using weak references (http://docs.python.org/py3k/library/weakref.html).
Here's an example that seems to do what you're asking using python 3.2, but
it should be pretty similar in python 2:

import weakref

class A:
_instances = set()
def __init__(self):
self.myname = 'IamA'
print('This is A')
self.__class__._instances.add(weakref.ref(self))
def foo(self):
print("foo")
def update(self):
for ref in self.__class__._instances:
obj = ref()
if obj is not None:
print("The only friends I've got are ", ref, obj.myname)


If you're creating lots of instances of A and deleting them, it would
probably be worth removing the old weakrefs from the _instances set instead
of just ignoring them when calling update().

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


Re: package extension problem

2012-02-13 Thread Jerry Hill
On Sun, Feb 12, 2012 at 1:46 PM, Fabrizio Pollastri wrote:

> Hello,
>
> I wish to extend the functionality of an existing python package by
> creating
> a new package that redefines the relevant classes of the old package. Each
> new class inherits the equivalent old class and adds new methods.
> ...

There is a way to solve this problem without redefining in the new package
> all the
> methods of the old package that return old classes?
>

The general answer is no.  If you want the methods of your subclass to
behave differently, in any way, from the same methods in the superclass,
then you must write new code that defines the behavior that you want.

Sometimes people write their classes so they automatically play nicely when
subclassed, and sometimes they don't.  In general, it's impossible to
always do the right thing when you don't know what particular behavior a
subclass might need to override, so a lot of times people don't bother to
write their classes to check for subclasses being passed in, etc.

Since you haven't actually shown us any code, that's about all I can tell
you.

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


Re: Just curious: why is /usr/bin/python not a symlink?

2012-02-23 Thread Jerry Hill
On Thu, Feb 23, 2012 at 2:11 PM, HoneyMonster  wrote:
> $ cd /usr/bin
> $ ls -l python*
> -rwxr-xr-x 2 root root 9496 Oct 27 02:42 python
> lrwxrwxrwx 1 root root    6 Oct 29 19:34 python2 -> python
> -rwxr-xr-x 2 root root 9496 Oct 27 02:42 python2.7
> $ diff -s  python python2.7
> Files python and python2.7 are identical
> $
>
> I'm just curious: Why two identical files rather than a symlink?

It's not two files, it's a hardlink.  You can confirm by running ls
-li python* and comparing the inode numbers.

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


Re: Just curious: why is /usr/bin/python not a symlink?

2012-02-23 Thread Jerry Hill
On Thu, Feb 23, 2012 at 2:34 PM, HoneyMonster  wrote:
> On Thu, 23 Feb 2012 14:24:23 -0500, Jerry Hill wrote:
>> It's not two files, it's a hardlink.  You can confirm by running ls -li
>> python* and comparing the inode numbers.
>
> You are spot on. Thank you, and sorry for my stupidity.

I don't think you're stupid.  It's hard to tell the difference between
two separate files with the same file size and a hardlink.  The
biggest clue is the number "2" in the second column.  If I recall
correctly, for directories, that's the number of entries in the
directory.  For files, that number is the number of hardlinks
referring to that file.

Even with that, it's hard to tell what files are hardlinked together,
and figuring it out by inode is a pain in the neck.  Personally, I
prefer symlinks, even if they introduce a small performance hit.
Readability counts, even in the filesystem.

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


Re: GUI for pickle read

2012-02-28 Thread Jerry Hill
On Tue, Feb 28, 2012 at 12:51 PM, Smiley 4321  wrote:
> Can I have some thoughts about - building a GUI to display the results of
> the pickle read?
>
> A prototype code should be fine on Linux.

It doesn't seem like it would be all that useful, though I may just be
lacking in imagination.  What would you do with such a thing?

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


Re: Python simulate browser activity

2012-03-15 Thread Jerry Hill
On Thu, Mar 15, 2012 at 10:54 PM, Chris Rebert  wrote:
> On Thu, Mar 15, 2012 at 7:23 PM, choi2k  wrote:
>> The application aims to simulate user activity including visit a
>> website and perform some interactive actions (click on the menu,
>> submit a form, redirect to another pages...etc)
>
> Did you look at Selenium?
> http://seleniumhq.org/

You might also be interested in Sikuli (http://sikuli.org/), which
uses Jython to write scripts to automate other programs using
screenshots.  It's pretty neat if you need to automate a GUI that is
otherwise difficult to deal with.

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


Re: Python Script Works Locally But Not Remotely with SSH

2012-04-02 Thread Jerry Hill
On Tue, Mar 27, 2012 at 8:51 PM, goldtech  wrote:
> I have a WinXP PC running an SSH server and I have a Linux PC with an
> SSH client  and logged into the XP seemingly OK. It's all on my
> personal LAN, the connection seems OK.
>
> I have a py file on the XP that I run via SSH from the Linux, it's:
>
> import webbrowser
> webbrowser.open('www.google.com')
>
> This runs OK started on the local XP PC, the browser Firefox opens and
> goes to the site, or it opens a tab to the site. But executing that
> same file via SSH does not open Firefox...doing it via SSH starts
> Firefox ( I see it begin in the process manager and I see web
> activity) but Firefox does not open it's window.
>
> Why the does the window not open when the script is started remotely?

How are you running the ssh server on the windows machine?  Is it a
windows service?  If so, what user does it run as, and is the service
configured to be allowed to interact with the desktop?

IIRC, by default most windows services run as a different user than
you, and do not have permission to interact with your desktop session.
 You may be able to get the firefox window to pop up on the ssh server
machine if you allow it to interact with the desktop, assuming that's
what you're trying to do.

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


Re: Python Script Works Locally But Not Remotely with SSH

2012-04-08 Thread Jerry Hill
On Sat, Apr 7, 2012 at 5:41 PM, Dennis Lee Bieber  wrote:
>        The WinXP machine would need to have X-client translator (something
> that redirects all the Windows native graphics into X protocol and ships
> it to the specified server machine).
>
>        As I recall -- such are not cheap applications.

X Servers for windows aren't expensive pieces of software anymore.
XMing is quite good, and free.  Cygwin also has an X server, but
Cygwin always seems like too much of a hassle to me.

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


Re: md5 check

2012-04-18 Thread Jerry Hill
On Wed, Apr 18, 2012 at 9:31 PM, contro opinion  wrote:
> i have download  file (gpg4win-2.1.0.exe  from
> http://www.gpg4win.org/download.html)
> when i run :
>
> Type "help", "copyright", "credits" or "license" for
 import md5
 f=open('c:\gpg4win-2.1.0.exe','r')
 print md5.new(f.read()).hexdigest()
> 'd41d8cd98f00b204e9800998ecf8427e'
>
> it is not  =  f619313cb42241d6837d20d24a814b81a1fe7f6d gpg4win-2.1.0.exe
> please see   :gpg4win-2.1.0.exe  from  http://www.gpg4win.org/download.html
>
> why ?

Probably because you opened the file in text mode, instead of binary
mode.  Try opening the file this way:

 f=open('c:\gpg4win-2.1.0.exe','rb')

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


Re: syntax for code blocks

2012-05-01 Thread Jerry Hill
On Tue, May 1, 2012 at 1:07 PM, Kiuhnm
 wrote:
> If you had read the module's docstring you would know that the public
> version uses

Are you aware that you've never posted a link to your module, nor it's
docstrings?  Are you also aware that your module is essentially
unfindable on google?  Certainly nothing on the first two pages of
google results for 'python codeblocks' jumps out at me as a python
module of that name.

Perhaps you would have better luck if you either post the actual code
you want people to critique, or posted a link to that code.

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


Re: DateTime objectFormatting

2012-05-02 Thread Jerry Hill
On Wed, May 2, 2012 at 10:49 AM, Nikhil Verma  wrote:
> What i am able to achieve with this class object to return is :-
>
> Gen GI Monday  May 7
>
> I want that the this class should return object like this :-
>
> Gen GI Monday AM, May 7
> Pancreas Tuesday PM, May 8

Check the documentation for the strftime method:
http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior
 That has a list of the various formatting directives that can be used
to lay out your date and time as you wish.

In this case, instead of "%A %B %d", you probably want "%A %p, %B %d".
 That is, Full Weekday Name, followed by the AM/PM marker, then a
comma, then the Full Month Name and the day of month.

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


Re: English version for Mémento Python 3 (draft, readers needed)

2012-06-06 Thread Jerry Hill
On Wed, Jun 6, 2012 at 4:10 PM, Alec Ross  wrote:
> FWIW, English idiomatic usage includes "see overleaf", and "see over", for
> the obverse side of a page/sheet, i.e, the following page; and "see facing
> page", w/ the obvious meaning.

For what it's worth, I've never seen either of those constructs ("see
overleaf" and "see over").  Are they perhaps more common in a
particular academic context, or possibly more common in places that
use "British English" spellings rather than "American English"?
Typically I've just seen "see other side", or (very occasionally) "see
reverse" and "see obverse".

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


Re: using identifiers before they are defined

2012-06-12 Thread Jerry Hill
On Tue, Jun 12, 2012 at 2:33 PM, Julio Sergio  wrote:
> Suppose I have to define two functions, aa, and, bb that are designed to call
> each other:
>
>  def aa():
>     ...
>     ... a call of bb() somewhere in the body of aa
>     ...
>
>  def bb():
>     ...
>     ... a call of aa() somewhere in the body of bb
>     ...
>
>
> Whatever the order of definition of aa and bb the problem remains, one of the
> two identifiers is not known ...

This works just fine in python, exactly as you've written it.  What's
the actual problem you're having?

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


Re: Significant figures calculation

2011-06-24 Thread Jerry Hill
On Fri, Jun 24, 2011 at 4:46 PM, Steven D'Aprano
 wrote:
> Really? It works for me.
>
 import decimal
 D = decimal.Decimal
 decimal.getcontext().prec = 2

 D('32.01') + D('5.325') + D('12')
> Decimal('49')

I'm curious.  Is there a way to get the number of significant digits
for a particular Decimal instance?  I spent a few minutes browsing
through the docs, and didn't see anything obvious.  I was thinking
about setting the precision dynamically within a function, based on
the significance of the inputs.

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


Re: Python 3 syntax error question

2011-06-26 Thread Jerry Hill
On Sun, Jun 26, 2011 at 11:31 AM, Chris Angelico  wrote:
> Sure, but you don't _have_ to look at the diff. Just run it through
> 2to3 and see how it runs. Never know, it might work direct out of the
> box!

This has been my experience, by the way.  I've used a few small pure
python libraries written for python 2.x that don't have 3.x versions,
and they've all worked just fine with just a quick run through the
2to3 process.  I can't speak for larger libraries, or ones with lots
of compiled code, but my experience with 2to3 has been great.

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


Re: How do I access IDLE in Win7

2011-07-27 Thread Jerry Hill
On Wed, Jul 27, 2011 at 12:28 PM, W. eWatson  wrote:
> If I run cmd.exe and work my way down to  .../idlelib, I find nothing but
> idle.bat. strange. Hidden?  I can get into line mode by using python.exe.
> That is, I can type in print "abc", and get a result.

So, you don't have an idle.py or idle.pyw in C:\Python26\Lib\idlelib\
(or where ever you installed python)?  If not, it sounds to me like
your python installation is screwed up.  I would re-install.

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


Re: How do I access IDLE in Win7

2011-07-27 Thread Jerry Hill
On Wed, Jul 27, 2011 at 3:34 PM, W. eWatson  wrote:
> On 7/27/2011 9:48 AM, Jerry Hill wrote:
>> So, you don't have an idle.py or idle.pyw in C:\Python26\Lib\idlelib\
>> (or where ever you installed python)?  If not, it sounds to me like
>> your python installation is screwed up.  I would re-install.
>
> Yes, I have both. Neither shows anything on the monitor when I double click
> them.

Oh, I guess I misunderstood.  Go ahead and open that cmd.exe window
back up.  Please run the following and report back the results.  In
the cmd.exe window run:

assoc .py
assoc .pyw
ftype Python.File
ftype Python.NoConFile

Those four commands should show us how the python file associations
are set up on your computer.

Then, let's try to run idle and capture whatever error message is
popping up.  I don't think you've mentioned what version of python you
have installed.  The following is for 2.6, since that's what I have
installed here, but it should work on any other version if you swap in
your installation directory for the 2.6 one below.  Still in your
cmd.exe window, run the following:

c:\Python26\python.exe C:\Python26\Lib\idlelib\idle.py

If you get an exception, please copy and paste the details for us.  If
that works and opens idle, please try running this:

C:\Python26\Lib\idlelib\idle.py

Based on the behavior you've described so far, that ought to fail, and
hopefully give some sort of message or exception for us to diagnose.

PS: If you're just trying to get things working, and don't care what
might be wrong, I would recommend just re-installing python.  That
ought to clean up all the file associations and set things up properly
for you.  That's likely the quickest way to just get things working.

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


Re: How do I access IDLE in Win7

2011-07-28 Thread Jerry Hill
On Wed, Jul 27, 2011 at 5:26 PM, W. eWatson  wrote:
> .py=Python.File
> .pyw=Python.NoConFile
> Python.File="C:\Python25\python.exe" "%1" %*
> Python.File="C:\Python25\python.exe" "%1" %*
> Python.NoConFile="C:\Python25\pythonw.exe" "%1" %*

That all looks good.

> I cannot copy from the cmd window. It ends with [errorno 13] Permission
> denied to c:||Users\\Wayne\\idlerc\\recent-files.lst'

That sounds like the root of the problem, then.  I'm assuming Wayne is
your username, but I don't know why you wouldn't have permission to
access something in your own user directory.  Can you try deleting
that file in the windows explorer?  You could try messing with the
permissions, but I doubt you care about a recent file list that sounds
several months old.  You might even try removing (or renaming) the
whole C:\Users\Wayne\idlerc folder.  Idle should re-build anything it
needs if it's not there when you start up.

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


Re: Only Bytecode, No .py Files

2011-07-29 Thread Jerry Hill
On Fri, Jul 29, 2011 at 8:51 AM, John Roth  wrote:
> Sorry. I thought what you posted was from the OP. I guess I don't
> really expect someone to post a completely irrelevant trace in a
> thread started by someone who has a problem.

I'm not sure why you would think that that post was by the original
poster, or that it was irrelevant.  It seems to me that it
demonstrated exactly the behavior Eldon was complaining about as a
normal part of the operation of lots of normal unix programs.  Thomas
even said that in the very first line of his post (after the quoted
bit).

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


Re: What is xrange?

2011-07-29 Thread Jerry Hill
On Fri, Jul 29, 2011 at 3:36 PM, Billy Mays  wrote:
> Is xrange not a generator?  I know it doesn't return a tuple or list, so
> what exactly is it?  Y doesn't ever complete, but x does.
>
> x = (i for i in range(10))
> y = xrange(10)

xrange() does not return a generator.  It returns an iterable xrange
object.  If you want the iterator derived from the iterable xrange
object, you can get it like this:  iterator = y.__iter__()

See http://docs.python.org/library/functions.html#xrange for the
definition of the xrange object.

http://www.learningpython.com/2009/02/23/iterators-iterables-and-generators-oh-my/
seems to cover the differences between iterables, iterators, and
generators pretty well.

Some more reading:
http://docs.python.org/howto/functional.html
http://www.python.org/dev/peps/pep-0255/
http://www.python.org/dev/peps/pep-0289/

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


Re: Determine what msvcrt.getch() is getting?

2011-08-16 Thread Jerry Hill
On Tue, Aug 16, 2011 at 5:43 PM, John Doe  wrote:
> Whatever msvcrt.getch() is returning here in Windows, it's not within
> the 1-255 number range. How can I determine what it is returning?
>
> I would like to see whatever it is getting.

Just print it.  Like this:

import msvcrt
ch = msvcrt.getch()
print (ch)

for a bit more information, do this instead:
import msvcrt
ch = msvcrt.getch()
print(type(ch), repr(ch), ord(ch))

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


Re: Wait for a keypress before continuing?

2011-08-16 Thread Jerry Hill
On Tue, Aug 16, 2011 at 5:59 PM, John Doe  wrote:
> No. I am running this from within Windows, all sorts of Windows.

What does that mean?  You seem very resistant to answering anyone's
questions about your code.  Is your code run from the command line, or
does it have a GUI?  If it has a GUI, what windowing toolkit are you
using?  If you have code that's not working, please, show us a short,
run-able bit of sample code that demonstrates the problem you're
experiencing. Describe the behavior you see, the behavior you expected
instead, and the full text of any traceback you may be getting.

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


Re: How to convert a list of strings into a list of variables

2011-08-18 Thread Jerry Hill
On Thu, Aug 18, 2011 at 11:19 AM, noydb  wrote:
> I am being passed the list of strings.  I have variables set up
> already pointing to files.  I need to loop through each variable in
> the list and do things to the files.  The list of strings will change
> each time, include up to 22 of the same strings each time.

If you have a mapping of strings to values, you should just go ahead
and store them in a dictionary.  Then the lookup becomes simple:

def foo(list_of_strings):
mapping = {
"bar0": "/var/log/bar0.log",
"bar1": "/usr/local/bar/bar1.txt",
"bar2": "/home/joe/logs/bar2.log",
}
for item in list_of_strings:
filename = mapping[item]
do_something(filename)


(Untested)

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


Re: Reading pen drive data

2011-09-03 Thread Jerry Hill
On Sat, Sep 3, 2011 at 12:21 PM, mukesh tiwari  wrote:

> I am getting
> Traceback (most recent call last):
>  File "Mount.py", line 7, in 
>observer = QUDevMonitorObserver(monitor)
> NameError: name 'QUDevMonitorObserver' is not defined
>
> Could any one please tell me how to avoid this error .
>

It looks to me like that should be pyudev.QUDevMonitorObserver, shouldn't
it?

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


Re: embedding interactive python interpreter

2011-03-27 Thread Jerry Hill
On Sun, Mar 27, 2011 at 9:33 AM, Eric Frederich
 wrote:
> This is behavior contradicts the documentation which says the value
> passed to sys.exit will be returned from Py_Main.
> Py_Main doesn't return anything, it just exits.
> This is a bug.

Are you sure that calling the builtin exit() function is the same as
calling sys.exit()?

You keep talking about the documentation for sys.exit(), but that's
not the function you're calling.  I played around in the interactive
interpreter a bit, and the two functions do seem to behave a bit
differently from each other.  I can't seem to find any detailed
documentation for the builtin exit() function though, so I'm not sure
exactly what the differences are.

A little more digging reveals that the builtin exit() function is
getting set up by site.py, and it does more than sys.exit() does.
Particularly, in 3.1 it tries to close stdin then raises SystemExit().
 Does that maybe explain the behavior you're seeing?  I didn't go
digging in 2.7, which appears to be what you're using, but I think you
need to explore the differences between sys.exit() and the builtin
exit() functions.

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


Re: Embedding Python: estimate size of dict/list

2011-03-28 Thread Jerry Hill
On Mon, Mar 28, 2011 at 7:18 PM, Chris Angelico  wrote:
> I have an application that embeds Python to allow third-party
> scripting. The Python code returns data to the application in the form
> of a list or dictionary, and I'd like to have a quick check on the
> size of the outputted object before my code goes too deep into
> processing it.

For python 2.6 and later, sys.getsizeof() will probably do what you
want.  It relies on objects implementing a __sizeof__() method, so
third-party objects may or may not support this, but since you're
looking at dicts and lists, you should be all set.

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


Re: Embedding Python: estimate size of dict/list

2011-03-28 Thread Jerry Hill
On Mon, Mar 28, 2011 at 8:26 PM, Chris Angelico  wrote:
> Based on the docs and http://code.activestate.com/recipes/577504/ I
> understand that to be non-recursive. I'm guessing then that there
> isn't a recursive version, and that it's best to recurse myself?

Yes, you're right.  I completely missed that bit when I was looking at
the documentation.

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


Re: Python program termination and exception catching

2011-04-10 Thread Jerry Hill
On Sun, Apr 10, 2011 at 3:25 PM, Jason Swails  wrote:
>
> Hello everyone,
>
> This may sound like a bit of a strange desire, but I want to change the way 
> in which a python program quits if an exception is not caught.  The program 
> has many different classes of exceptions (for clarity purposes), and they're 
> raised whenever something goes wrong.  Most I want to be fatal, but others 
> I'd want to catch and deal with.
>
> Is there any way to control Python's default exit strategy when it hits an 
> uncaught exception (for instance, call another function that exits 
> "differently")?

When an exception is raised and uncaught, the interpreter calls
sys.excepthook. You can replace sys.excepthook with your own function.
 See http://docs.python.org/library/sys.html#sys.excepthook

If your program is threaded, you may need to look at this bug:
http://bugs.python.org/issue1230540.  It describes a problem with
replacing sys.excepthook when using the threading module, along with
some workarounds.

There's a simple example of replacing excepthook here:
http://code.activestate.com/recipes/65287/

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


Re: How best to convert a string "list" to a python list

2011-05-13 Thread Jerry Hill
On Fri, May 13, 2011 at 1:15 PM, noydb  wrote:
> I want some code to take the items in a semi-colon-delimted string
> "list" and places each in a python list.  I came up with below.  In
> the name of learning how to do things properly, do you experts have a
> better way of doing it?

Strings have a split method, which splits the string into a list based
on a delimiter, like this:

>>> x = "red;blue;green;yellow"
>>> color_list = x.split(";")
>>> print color_list
['red', 'blue', 'green', 'yellow']

That's how I'd do it.

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


Re: Deleting a file?

2011-05-16 Thread Jerry Hill
On Mon, May 16, 2011 at 5:23 PM, garyr  wrote:
> A file can be deleted by opening it with mode os.O_TEMPORARY and then
> closing it. How can a file be moved to the Recycle Bin, a la Windows?

I see a send2trash module (http://hg.hardcoded.net/send2trash and
http://www.hardcoded.net/articles/send-files-to-trash-on-all-platforms.htm)

The source code looks pretty straightforward, but I don't think
there's anything in the standard library that does that.

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


Re: if statement on lenght of a list

2011-05-17 Thread Jerry Hill
On Tue, May 17, 2011 at 2:02 PM, Joe Leonardo wrote:

> Hey all,
>
>
>
> Totally baffled by this…maybe I need a nap. Writing a small function to
> reject input that is not a list of 19 fields.
>
>
>
> def breakLine(value):
>
> if value.__class__() != [] and value.__len__() != 19:
>
>
This should use an "or" test, not "and".  And is probably better written as:
if not isinstance(value, list) or len(value) != 19:

That would allow for subclasses of list, assuming that would be okay.

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


Re: float("nan") in set or as key

2011-06-01 Thread Jerry Hill
> On Wed, Jun 1, 2011 at 1:30 PM, Carl Banks  wrote:
> True, but why should the "non-integer number" type be floating point
> rather than (say) rational?

You seem to be implying that python only provides a single non-integer
numeric type.  That's not true.  Python ships with a bunch of
different numeric types, including a rational type.  Off the top of my
head, we have:

IEEE floating point numbers
(http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex)
Rationals (http://docs.python.org/library/fractions.html)
Base-10 fixed and floating point numbers
(http://docs.python.org/library/decimal.html)
Complex numbers
(http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex
plus http://docs.python.org/library/cmath.html)
Integers (both ints and longs, which are pretty well unified by now)

Floats have far and away the best performance in most common
situations, so they end up being the default, but if you want to use
something different, it's usually not hard to do.

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


Re: [Tutor] beginning to code

2017-09-20 Thread Jerry Hill
On Tue, Sep 19, 2017 at 8:26 PM, Rick Johnson
 wrote:
> In the spirit of my last comment, i was going to say: "Or if
> `x` does not support rich comparisons", but alas, it seems that
> _all_ objects in Python support rich comparisons, even when
> it doesn't make sense to! o_O For example:
>
> >>> False > 1
> False
> >>> dir > 1
> True
> >>> isinstance < 100
> False
> >>> "" >= 10
> True
> >>> (1,) <= 500
> False

Rick, I'm pretty sure you already know that you're being deceptive
here.  If anyone else comes across this and doesn't already realize
it, note that Rick is complaining about behavior that changed almost a
decade ago (with the release of Python 3.0).

Here's what a modern python does with those same statements:

Python 3.5.2 (default, Aug 18 2017, 17:48:00)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> False > 1
False
>>> dir > 1
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unorderable types: builtin_function_or_method() > int()
>>> isinstance < 100
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unorderable types: builtin_function_or_method() < int()
>>> "" >= 10
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unorderable types: str() >= int()
>>> (1,) <= 500
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unorderable types: tuple() <= int()
>>>

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Finding keyword arguments in the documentation

2017-09-26 Thread Jerry Hill
On Tue, Sep 26, 2017 at 12:32 PM, Peter Otten <__pete...@web.de> wrote:
> Newer Python versions will show
>
> Help on built-in function sin in module math:
>
> sin(x, /)
> Return the sine of x (measured in radians).
>
>
> where the arguments before the slash are positional-only:

What version of python do you need to see that output from help?  I'm
not seeing it in 3.6.1 on windows:

Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32
bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> help (math.sin)
Help on built-in function sin in module math:

sin(...)
sin(x)

Return the sine of x (measured in radians).

>>>

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: replacing `else` with `then` in `for` and `try`

2017-11-02 Thread Jerry Hill
On Wed, Nov 1, 2017 at 5:12 PM, Alexey Muranov 
wrote:

> what do you think about the idea of replacing "`else`" with "`then`" in
> the contexts of `for` and `try`?
>

​I wish the core python developers​ had done it 20 years ago.  Given that
python is a relatively mature language at this point, I don't expect that
it will ever change.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Can't Uninstall !

2018-02-13 Thread Jerry Hill
On Tue, Feb 13, 2018 at 10:30 AM, Pedro Crescencio 
wrote:

3. How did you try to uninstall it?
> Using Windows standard uninstall procedure
> https://www.windowscentral.com/how-to-uninstall-apps-windows-10
>

​That page describes two different ways of uninstalling programs (from the
start screen, or from the Apps & Features control panel).  I don't know if
it matters, but it might help someone to know which one you used.​


> 4. What messages did you get when you tried to uninstall it?
> The message says : "Uninstalled". But I still have the icon over the App
> list.
>

​You say you have "the" icon.​

​What icon is that? A normal python install should have a bunch of
different stuff on the start menu -- on the Windows 7 installation ​I have
in front of me, I have a "Python 3.6" folder, with four different links
nested inside - "IDLE (Python 3.6 32-bit)", "Python 3.6 (32-bit)", "Python
3.6 Manuals (32-bit)", and "Python 3.6 Module Docs (32-bit)".  What do you
have?

​When you installed python, do you remember if you installed it for "All
Users" or "Just Me"?​

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why don't we call the for loop what it really is, a foreach loop?

2016-09-13 Thread Jerry Hill
On Tue, Sep 13, 2016 at 4:57 PM,   wrote:
> It would help newbies and prevent confusion.

Are you asking why Guido didn't call it foreach back in 1989, or why
the core developers don't change it now, 27 years later?  I can't
speak for the historical perspective, but I'm sure there's basically
no chance that it will be changed now.  It would be a totally
backwards incompatible change, invalidate every tutorial and bit of
python documentation that's been written over the last three decades,
and break pretty much every python program that works today. In
exchange, you get newbies who are a slightly less confused about for
loops.  That tradeoff isn't worth it.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to evaluate a ast tree and change Add to Multiply ?

2016-10-19 Thread Jerry Hill
On Wed, Oct 12, 2016 at 5:55 AM, meInvent bbird  wrote:
> i just expect to
> rewrite + become multiply
> by edit the example in the link provided

This seems to work.  You need to define visit_BinOp instead of
visit_Num (since you want to mess with the binary operations, not the
numbers).  Then,in visit_BinOp, we just replace the ast.Add node with
an ast.Mult node.

import ast

class ChangeAddToMultiply(ast.NodeTransformer):
"""Wraps all integers in a call to Integer()"""
def visit_BinOp(self, node):
if isinstance(node.op, ast.Add):
node.op = ast.Mult()
return node

code = 'print(2+5)'
tree = ast.parse(code)
tree = ChangeAddToMultiply().visit(tree)
ast.fix_missing_locations(tree)
co = compile(tree, '', "exec")

exec(code)
exec(co)

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Missing python36.dll

2018-03-19 Thread Jerry Hill
On Mon, Mar 19, 2018 at 5:07 PM, MRAB  wrote:

> You didn't say which installer you used.
>

​It might also be helpful to know:

Did you install python for "Just Me" or "All Users" in the installer?

Does the user you're logged in as have enough authority to install for All
Users if that's what you picked?

What OS ​are you using?  Since you're asking about DLLs, it's obviously
some flavor of Windows, but you don't say which one.

Did you notice any errors messages or log files generated by the installer?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Python Console Menu

2018-07-31 Thread Jerry Hill
On Tue, Jul 31, 2018 at 12:31 PM juraj.papic--- via Python-list
 wrote:
> I will check the links thanks for that tips, is there any page where I can 
> see more examples?

I like Doug Hellmann's Python Module of the Week site for in-depth
looks at particular modules (including subprocess).  If you're using
python 3, the subprocess module's page is here:
https://pymotw.com/3/subprocess/.

>From your sample code, you may still be using python 2.  If so, the
PyMOTW page for that version is here:
https://pymotw.com/2/subprocess/.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Problem using pip

2020-01-14 Thread Jerry Hill
On Tue, Jan 14, 2020 at 2:18 AM proplayer raj
 wrote:
>
> dear team
> I have encountered a problem while using pip , that it did not allowed to
> install webbrowsing and OS module it show the error that it does not found
> any matching distributor and does not fount the version which can fulfill
> the requirement.

Can you be specific about which modules you are trying to install?  I
don't see any sign of a python package called 'webbrowsing' anywhere
on the internet, for instance.  Are you possibly looking for the
'webbrowser' module?  If so, it's not installed via pip, it's part of
the python standard library (see docs here:
https://docs.python.org/3/library/webbrowser.html).  There's also an
'os' module in the standard library
(https://docs.python.org/3/library/os.html). Are those the modules you
were looking for?

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why is there no natural syntax for accessing attributes with names not being valid identifiers?

2013-12-04 Thread Jerry Hill
On Wed, Dec 4, 2013 at 3:35 PM, Piotr Dobrogost
 wrote:
> Right. If there's already a way to have attributes with these "non-standard" 
> names (which is a good thing) then for uniformity with dot access to 
> attributes with "standard" names there should be a variant of dot access 
> allowing to access these "non-standard" named attributes, too.

Given the follow code, what do you think should print?

class My_Class(object):
pass

bar = 1
my_object = My_Class()
setattr(my_object, 'foo', 10)
setattr(my_object, 'bar', 100)
setattr(my_object, 'foo-bar', 1000)

print(my_object.foo-bar)

Today (in python 3.3), it prints 9, because my_object.foo is 10, the
local variable bar is equal to 1, and 10 minus 1 is 9..  Under your
new proposal, it would print 1000, right?  Is there any way for your
proposal to be backwards compatible?

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Copy a file like unix cp -a --reflink

2013-12-18 Thread Jerry Hill
On Wed, Dec 18, 2013 at 1:37 PM, Paulo da Silva
 wrote:
> Hi!
>
> Is there a way to copy a file the same as Unix command:
>
> cp -a --reflink src dest
>
> without invoking a shell command?

I started to dig through the cp man page to see what that did, then
gave up when each option expanded out to several more.  i.e., "-a,
--archive same as -dR --preserve=all" leads to looking up -d -R and
--preserve, etc.

To me, it's just not worth it to spend more time researching your
question than you spent writing the email asking it. If you don't get
the answers you're looking for, you might try asking again, specifying
the exact behavior you'd like to achieve.

PS: That isn't really meant as any kind of complaint about your
question.  It's consise, easy to read, and gets right to the point.
It just assumes a lot of background knowledge.  If someone else
happens to already know all of that background, they may be able to
help right off.  If not, they may be interested enough to do the
research to figure it all out and then help. You just may be able to
prompt more people to help by cutting down on the amount of work it
would take them to do so.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to develop code using a mix of an existing python-program and console-commands

2013-12-18 Thread Jerry Hill
On Wed, Dec 18, 2013 at 3:17 PM, Jean Dubois  wrote:
> I have a python-program which I want to perform its task first, then
> switch to
> the python console to experiment with further commands, using what was
> already
> defined in the python-program.
> I want this as an alternative for what I do now (but which is not very
> efficient):
> I start the python-console and then manually copy-paste line per line from
> the program in the console, then try out possible continuation commands,
> if however something goes wrong I have to redo the whole process.

On the command line, python itself can take command line options,
including one that does exactly what you're looking for.

python -i script.py

That command will run script.py to its end, then drop you into the
interactive interpreter with the environment intact from running the
script.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: How to make a tkinter GUI work on top of a CUI program?

2014-01-03 Thread Jerry Hill
On Fri, Jan 3, 2014 at 9:44 PM, Beinan Li  wrote:
> But some console programs have their own shell or ncurse-like CUI, such as
> cscope.
> So I figured that I need to first subprocess.popen a bidirectional pipe and
> send command through stdin and get results from stdout and stderr.
>
> But in such a case I found that communicate('cmd') will freeze.

Right.  communicate() waits for the subprocess to end, and the
subprocess is still waiting for you to do something.  Instead, you'll
need to read() and write() to the subprocess' stdin and stdout
attributes, probably something like this (untested):

def OnClickBtn(self, event):
print('OnClickBtn')
self.subProc.stdin.write('symbolName\n')
print(self.subProc.stdout.read())

It looks like cscope has both a screen-oriented mode and a line-based
mode.  When you're working with a subprocess like this, you're going
to want to be in the line-based mode, so you'll probably want to add
-l or -L to your command line.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: [OT] Usage of U+00B6 PILCROW SIGN (was: generator slides review and Python doc (+/- text bug))

2014-02-04 Thread Jerry Hill
On Tue, Feb 4, 2014 at 1:51 AM,   wrote:
> I got it. If I'm visiting a page like this:
>
> http://docs.python.org/3/tutorial/index.html#the-python-tutorial
>
> 1) To read the page, I'm scrolling down.
> 2) When I have finished to read the page, I scroll up
> (or scroll back/up) to the top of the page until I see
> this "feature" and the title.
> 3) I click on this "feature".
> 4) The title, already visible, moves, let's say, "2cm" higher.
>
> ...?

Those links aren't for navigation.

They're so you can discover anchor links in the page and pass them to
someone else.  For instance, if I want to point someone to the section
of the tutorial that talks about reading and writing files, I could
just give them this link:
http://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files,
instead of pointing them to the main page and instructing them to
scroll down until they see Section 7.2

I was able to discover that link by opening the page, highlighting the
section header with my mouse, then clicking the pilcrow.  That gives
me the anchor link to that section header.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Text input with keyboard, via input methods

2016-03-10 Thread Jerry Hill
On Thu, Mar 10, 2016 at 5:51 AM, Marko Rauhamaa  wrote:
> I don't have an answer. I have requirements, though:
>
>  * I should be able to get the character by knowing its glyph (shape).
>
>  * It should be very low-level and work system-wide, preferably over the
>network (I'm typing this over the network).

This probably doesn't meet all your needs, but there are web services
that get you to draw an approximation of a glyph, then present you
with some possible unicode characters to match. I thought there were a
couple of these sites, but on a quick search, I only find one for
unicode glyphs: http://shapecatcher.com/  and another one for TeX
codes: http://detexify.kirelabs.org/classify.html

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: html page mail link to webmail program

2014-11-12 Thread Jerry Hill
On Tue, Nov 11, 2014 at 8:04 PM, Ethan Furman  wrote:
> My wife (using a Win7 machine) will be on a web page that has a link to mail
> somebody.  She clicks on it, and it opens the currently installed but unused
> Thunderbird.

As others have mentioned, this is more a question of configuring your
browser than anything involving python.

That said, those links on a web page that open an email window are
called "mailto" links.  A google search for "open mailto links in
gmail" (without the quotes) gets a bunch of general information, and
if you add your wife's browser of choice to the search terms, you
should get some explicit instructions for setting everything up
properly.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Simple Object assignment giving me errors

2014-02-12 Thread Jerry Hill
On Wed, Feb 12, 2014 at 4:42 PM, Nir  wrote:
> If this makes sense to you, great. I am trying to break it down so that I can 
> make sense of it. As you mentioned self["name"] = filename doesn't work 
> unless I built a class to handle it. I guess my question then, is how is the 
> class handling it in this code? If you can show me by stripping it down to 
> the bare minimum or write an example that would be awesome.

This example works because the UserDict object being used in this code
was built to handle it.  The UserDict class in the standard library
does a lot more than the little snippet you had in your original code.
 Your original code would work if you did the same thing, like this:

from collections import UserDict

class FileInfo(UserDict):
def __init__(self, filename=None):
UserDict.__init__(self)
self["name"] = filename


jeez = FileInfo("yo")

(If you're using Python 2, then the first line should be "from
UserDict import UserDict" instead).

You can take a look at the source code for the userDict class here:
http://hg.python.org/cpython/file/3.3/Lib/collections/__init__.py#l862
.  In that class, the code responsible for handling the bracketed name
lookup (i.e., self["name"]), is in the __getitem__ and __setitem__
methods (and peripherally in __delitem__, __len__ and __contains__)

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Win32 Write RAW Physical Disk Python 3.3.2

2014-02-21 Thread Jerry Hill
On Wed, Feb 19, 2014 at 7:42 AM, khanta  wrote:
> Hello,
>  I am trying to write to the raw physical disk on Windows 8.1 but I
> get an error:
> PermissionError: [Errno 13] Permission denied: '.\\PHYSICALDRIVE2'

Is there a volume mounted from the drive at the time you're attempting
to write to the physical device?  According to some MSDN documentation
(http://msdn.microsoft.com/en-us/library/aa365747%28VS.85%29.aspx ),
it doesn't look like you can write to a physical device if the sectors
you're attempting to write are mounted at the time. There appear to be
a lot of caveats.  Take a look at the section of that page starting
with "If you write directly to a volume that has a mounted file
system, you must first obtain exclusive access to the volume." for
lots of details.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: posting code snippets

2014-02-27 Thread Jerry Hill
On Thu, Feb 27, 2014 at 7:13 AM, Mark H. Harris  wrote:
> hi folks,
>Its been too long... can't remember... are there rules here about posting 
> code snippets, or length considerations, and so forth?

Chris' advice about just posting your code inline with your message is
good.  If the problem is that you think your code is too long to post
inline, you're probably right.  That means it's probably also too long
for people to give it much attention.  If you really want people to
help figure out what is going on with code you don't understand, the
best thing to do is to post a Short, Self Contained, Correct Example
(http://www.sscce.org/).  That means cutting the code down to the bare
minimum required to demonstrate your issue.  Many times, the very act
of cutting the code down to a digestible chunk will show you the
problem without posting.  And if you still don't understand what's
going on, you're much more likely to get help when you present a
problem that can be read in a single screenful or so of code.

>A related question, is there a python repository for uploading  py  files, 
> patches, suggestions, etc?

Assuming this goes beyond posting code for people on the list to look
at, yes, there are lots of places to post python code.

For short bits, Activestate has a repository of python recipes:
http://code.activestate.com/recipes/langs/python/

For publishing full modules and packages, there's the python package
index: https://pypi.python.org/pypi

Patches, bugs and feature requests for the python language itself
belong here: http://bugs.python.org/ attached to an appropriate
tracker issue.  Feature requests should probably be raised on the
python-ideas mailing list
(https://mail.python.org/mailman/listinfo/python-ideas) before opening
an issue on the bug tracker.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Reference

2014-03-03 Thread Jerry Hill
On Mon, Mar 3, 2014 at 4:51 PM, Tim Chase  wrote:
> There are a couple use-cases I've encountered where "is" matters:
>
> 1) the most popular:
>
>   if foo is None:
> do_stuff()

I know this is the one that always comes up, but honestly, I feel like
"is" doesn't matter here.  That code would be just as correct if it
was written as:

if foo == None:
do_stuff()

The only time it would give you a different result from the "is"
version is if foo was bound to an object that returned True when
compared with None.  And if that were the case, I'm still not
convinced that you can tell from looking at those two lines of code
which one is buggy, except for the fact that there has been 20 years
of custom saying that comparing to None with equality is wrong.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Reference

2014-03-04 Thread Jerry Hill
On Mon, Mar 3, 2014 at 11:52 PM, Steven D'Aprano  wrote:
> If your intention is to treat None as a singleton sentinel, not as a
> value, then you ought to use "is" to signal that intention, rather than
> using == even if you know that there won't be any false positives.

In all of the years I've been on this list, I don't think I've seen
more than one or two cases of someone deliberately treating None as a
singleton sentinel.  In most cases, they're either checking the return
value from a function or using it as a default argument to a function
to force some default behavior when no parameter is passed.  I'm
pretty sure you're going to say that the latter use is exactly where
you should us 'is' instead of '=='.  Respectfully, I disagree.

For a beginning python user, identity checking is an attractive
nuisance. The only time most beginners should use it is when comparing
to None.  But, as soon as they are taught that there are two
comparison operators, I start to see 'is' cropping up in more and more
places where they ought to use '=='.  And the problem is that
sometimes it works for them, and sometimes it doesn't.  Sure, students
eventually need to understand the difference between identity and
equality.  My problem is that by enshrining in python custom that the
only correct way to compare to None is with 'is', we have to explain
that concept way early in the teaching process.  I can't count the
number of times that a thread has completely derailed into identity vs
equality, then into interning of strings and small integers, and
suddenly the thread is 40 messages long, and no one has actually
talked about the code that was originally posted beyond that issue.
In approximately zero cases, have I seen code where 'is' versus '=='
actually made any difference, except where the 'is' is wrong.  I've
also never seen the supposedly ever-present boogie man of an object
that mistakenly compares equal to None, much less seen that object
passed to functions with None-based sentinels.

I feel like 'is' is an operator that ought to be saved for an advanced course.

Out of curiosity, do you think we should be doing truth checking with
'is'?  True and False are singletons, and it seems to me that the
justification for idenity versus equality should be just as strong
there, but I don't think I've ever seen anyone even suggest that.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Joining centos 6.5 member Domain Controller to an existing Windows Domain

2014-05-06 Thread Jerry Hill
On Mon, May 5, 2014 at 11:18 AM, Joshua Knights
 wrote:
>
> Here is my Issue and I think it may be a python path bug?

It's not a bug in Python.  It looks to me like a configuration problem.

I'm going to assume you have a good reason for bypassing your OS's
package management system.  In general, this is a bad idea, but since
this isn't a linux administration list, I'll leave it at that.

> Then I downloaded Samba with the following command:
> git clone git://git.samba.org/samba.git samba-master
> Then I installed the additional openldap-devel Library
> then I did the ./configure --enable-debug --enable-selftest
> then initiated the make command

So you configured it, and built it, but did not install it, right?
You didn't do a make install or make altinstall?  Installing would
presumably have put the files in the right place for them to be picked
up by python.  Since you just built samba without installing it, it
looks like you have to point python to the right place.

> When I do a find / - name samba.netcmd.main
>
> It pulls up: NOTHING!!

Right, that's not surprising.  samba.netcmd.main is a python package,
not a module, so it won't be named samba.netcmd.main.py or whatever
you were thinking.

> If I pull up : find / -name netcmd
>
> I get:
>
> /root/samba-master/python/samba/netcmd
> /root/samba-master/bin/python/samba/netcmd
> /root/samba-master/bin/default/python/samba/netcmd
>
> In my research somebody said: to export the PYTHONPATH and to change it to 
> the correct path of the netcmd command.

You'll want to add the directory up to the "/python" bit.  I'm not
sure which one of those three is really the right location for the
module you're looking for, but I would start by trying
'/root/samba-master/bin/python'.  From there, python should be able to
find the samba package.

> if I wanted to fix it permanently then to update my bash.rc file.
>
> In other words Tell my samba tool where to look, and this look is only 
> temporary till I close my terminal. Placing the command in the bash.rc file 
> will run this script every time I open my terminal. Well, I tried all 3 and 
> none of them worked.

This is not a good way to leave your system.  It's okay if you're just
testing the new samba build, but you really ought to install the
software, not just run it out of the build directory.  Best of all
would be to install a version that's actually been packaged up for
your OS using the CentOS packaging system.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: The “does Python have variables?” debate

2014-05-07 Thread Jerry Hill
On Wed, May 7, 2014 at 2:18 AM, Marko Rauhamaa  wrote:
> Ned Batchelder :
>
>> Why is "variable" sacrosanct and can only be used to describe C
>> semantics, but we're OK reusing class, int, and function?
>
> The Python language specification calls them variables; the terminology
> discussion should end there.

Personally, I found the idea that a python variable is a name + value
pairing to be useful when learning the language, especially when I was
struggling with the calling semantics (that is, the differences
between call-by-value, call-by-reference, and call-by-object).  I
think it's rather silly for someone to insist that python doesn't have
variables.  On the other hand, I think it can be useful to point out
that python variable aren't like C variables, and that thinking of
python variables as having two parts -- names and values -- really can
help people who are struggling to learn the language.  I know it
certainly helped me.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Error while calling round() from future.builtins

2014-05-10 Thread Jerry Hill
On Sat, May 10, 2014 at 7:39 AM, Preethi  wrote:
> future==0.9.0

It looks like that library is out of date.  The current version looks
to be 0.12.0, and it also looks like this bug was fixed in the 0.12.0
release.  I'd upgrade your version if at all possible.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: PEPs should be included with the documentation download

2013-08-21 Thread Jerry Hill
On Wed, Aug 21, 2013 at 1:55 PM,   wrote:
> I think, though, that if there's any useful information that can be
> obtained by reading accepted PEPs but not the documentation, or if
> things are explained less clearly than in the PEPs, that's a bug in the
> documentation, and should be remedied by adding to the documentation.

Personally, the only PEPs I've used as reference material as PEP 8
(the Python Style Guide), and PEP 249 (the Python Database API
Specification v2.0).  If I recall correctly, one of the database
adapters I used basically said that they were PEP 249 compliant, and
didn't have much documentation beyond that.

It seems to me that adding the PEPs to the compiled documentation
would be a good thing.  They are at least as useful as the Language
Reference or the Embedding and Extending Python sections that are
already included.

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


Re: subprocess.Popen instance hangs

2013-08-30 Thread Jerry Hill
On Fri, Aug 30, 2013 at 11:32 AM, Tim Johnson  wrote:
>   The objective is to display all output, but to also separate error
>   messages from normal output.

I still think you want to use communicate().  Like this:

p = subprocess.Popen(args,stderr=subprocess.PIPE,stdout=subprocess.PIPE)
output, err = p.communicate()

That's it.  No need for a loop, or manually handling the fact that
stderr and/or stdout could end up with a full buffer and start to
block.

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


Re: Python GUI?

2013-09-12 Thread Jerry Hill
On Wed, Sep 11, 2013 at 4:55 PM,   wrote:
> Have you got anything to say on what one I should be using(excluding PyQT 
> because it has a D&D designer >:( )? Is Tkinter really dead? Should I stick 
> with wxPython?

If that's a reason for excluding a GUI toolkit, you're in trouble.
Drag and drop layout tools exist for all of your proposed systems.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Automation of Windows app?

2015-03-20 Thread Jerry Hill
On Fri, Mar 20, 2015 at 2:10 PM, Grant Edwards  wrote:
> I need to automate operation of a Windows application.

I've used Sikuli (http://www.sikuli.org/) for similar things in the
past.  It's an automation framework built on Jython, and it worked
great for what I needed at the time.

I think AutoHotKey is also widely used for automating windows GUI
apps, but it's not related to python at all.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Anyone used snap.py for drawing a graph?

2015-04-13 Thread Jerry Hill
On Sun, Apr 12, 2015 at 10:29 PM, Pippo  wrote:
> Any guide on this?
>
> http://snap.stanford.edu/snappy/#download

Sure.  http://snap.stanford.edu/snappy/#docs
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: What means "->"?

2015-04-28 Thread Jerry Hill
On Tue, Apr 28, 2015 at 1:18 PM,   wrote:
> in the Python Language Specification, I've found the delimiter -> (cf.
> https://docs.python.org/3/reference/lexical_analysis.html#delimiters, last
> entry in the table´s second line). Could you please describe the effects of
> this delimiter? I read nothing about -> by now. In addition, help("->")
> didn´t work.

It's part of the syntax for function annotations.

See here in the reference manual:
https://docs.python.org/3/reference/compound_stmts.html#index-23
and/or refer to PEP 3107 for more background:
https://www.python.org/dev/peps/pep-3107/

If you're interested, PEP 484
(https://www.python.org/dev/peps/pep-0484/) is attempting to chart out
the future uses of function annotation for doing type checking in
external tools (keep in mind that PEP 484 isn't final yet, nor has it
been accepted, my impression is that it's still a work in progress).

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Need Help w. Getting the Eclipse Python Add-On.

2015-07-17 Thread Jerry Hill
On Fri, Jul 17, 2015 at 2:22 PM, Steve Burrus  wrote:
> I Need immediate Help w. Getting the Eclipse Python Add-On. I looked all 
> around the Eclipse website to try to get this but didn't see the add-on for 
> this. Can someone please help me to find it? Thanx.

I think you're looking for PyDev: http://www.pydev.org/

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Question about Pass-by-object-reference?

2014-07-22 Thread Jerry Hill
On Tue, Jul 22, 2014 at 6:17 PM, fl  wrote:
> Thanks for your example. I do not find the explanation of [:] on line. Could 
> you
> explain it to me, or where can I find it on line?

It's pretty hard to find if you don't already know what's going on.

First, you need to know that mylst[i:j] refers to a slice of  the list
"mylist".  Specifically, the items from the list starting with the
item at index i, up to but not including the item at index j.  If you
leave the i off (e.g., mylist[:j]) that's a slice from the start of
the list up to (but not including) the j-th item.  If you leave the
end position off, (e.g., mylist[i:]), that gets you the i-th item to
the end (including the last item).  If you leave off both indexes from
the slice, you get back the entire contents of the list.  So that's
what mylist[:] means.

Then you need to know that you can assign to the slice and it will
replace the old elements from the slice with the new ones.  You can
see that defined here, in the docs (second item in the table under
"4.6.3. Mutable Sequence Types"):

https://docs.python.org/3/library/stdtypes.html#mutable-sequence-types

So, when you so mylist[:] = [0,1] you're taking all of the contents of
the existing list, and replacing them with the contents of the list
[0,1].  That changes the existing list, it doesn't just assign a new
list to the name mylist.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: .Net Like Gui Builder for Python?

2014-07-25 Thread Jerry Hill
On Fri, Jul 25, 2014 at 10:55 AM, Orochi  wrote:
> So,Is there any Gui App builder like Visual Studio or having features like 
> Visual Studio for Python.

I'm not aware of anything with the same level of functionality as
Visual Studio's GUI building tools.  Glade is the closest I've seen,
and as you mentioned, it's not as interactive and integrated into an
IDE as Visual Studio is.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: NumPy, SciPy, & Python 3X Installation/compatibility issues

2014-09-23 Thread Jerry Hill
On Tue, Sep 23, 2014 at 1:54 PM, SK  wrote:
> Hi EK,
> Did you figure out questions 1, 2 and 3? SciPy (0.14.0) on installation asks 
> me for Python 2.7. First day on Python here, I am really struggling :/
> Thanks,
> SK

Did you download the SciPy installer for python 3.3?  I see it listed
for download on the sourceforge site here:
http://sourceforge.net/projects/scipy/files/scipy/0.14.0/scipy-0.14.0-win32-superpack-python3.3.exe/download

There are also versions for python 3.4, 3.2, 2.7 and 2.6, so you have
to make sure you get the one that matches the version of python you're
using.

-- 
Jerry
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: How to mix-in __getattr__ after the fact?

2011-10-28 Thread Jerry Hill
On Fri, Oct 28, 2011 at 1:34 PM, dhyams  wrote:
> If I call __getattr__ directly, as in bessie.__getattr__('foo'), it
> works as it should obviously; so the method is bound and ready to be
> called.  But Python does not seem to want to call __getattr__
> appropriately if I mix it in after the object is already created.  Is
> there a workaround, or am I doing something wrongly?

Python looks up special methods on the class, not the instance (see
http://docs.python.org/reference/datamodel.html#special-method-lookup-for-new-style-classes).

It seems like you ought to be able to delegate the special attribute
access from the class to the instance somehow, but I couldn't figure
out how to do it in a few minutes of fiddling at the interpreter.

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


Re: String splitting by spaces question

2011-11-23 Thread Jerry Hill
On Wed, Nov 23, 2011 at 12:10 PM, Massi  wrote:

> Hi everyone,
>
> I have to parse a string and splitting it by spaces. The problem is
> that the string can include substrings comprises by quotations which
> must mantain the spaces. What I need is to pass from a string like:
>
> This is an 'example string'
>
> to the following vector:
>
> ["This", "is", "an", "example string"]
>
> Which is the best way to achieve this?
>


This sounds a lot like the way a shell parses arguments on the command
line.  If that's your desire, python has a module in the standard library
that will help, called shlex (http://docs.python.org/library/shlex.html).
Particularly, shlex.split may do exactly what you want out of the box:

Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit
(Intel)] on win32

>>> import shlex
>>> s = "This is an 'example string'"
>>> shlex.split(s)
['This', 'is', 'an', 'example string']
>>>

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


Re: Can I submit an issue with Python 2.5.6?

2011-11-29 Thread Jerry Hill
2011/11/29 Toshiyuki Ogura 

>  I found a problem with Python 2.5.6.
>
...

> Can I submit the issue at bugs.python.org?
> I think many people are still using Python 2.5 because of Google App
> Engine and fixing bugs with 2.5 is still helpful.
>

I don't think they'll be accepted.  Python 2.5 is not slated to receive any
more releases, ever.  Not even source-only security fixes.  According to
http://www.python.org/getit/releases/2.5.6/, "This release is the final
release of Python 2.5; under the current release policy, no security issues
in Python 2.5 will be fixed anymore."  Given that they're not even
accepting security patches, I'm sure they won't accept non-security
bugfixes either.

If your goal is to get your patch accepted and deployed on google's app
engine infrastructure, you could try getting a hold of someone at google,
and asking if they accept patches directly, since there will be no further
maintenance from the core python developers.  I have no idea how difficult
it would be to do that, or if there's any interest in accepting patches
against python 2.5 at google.

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


Re: Py and SQL

2011-11-30 Thread Jerry Hill
On Wed, Nov 30, 2011 at 3:30 PM, Verde Denim  wrote:

> dbCursor1.execute('select lpad(' ', 2*level) || c "Privilege, Roles and
> Users" from ( select null p, name c from system_privilege_map where name
> like upper(\'%&enter_privliege%\') union select granted_role p, grantee c
> from dba_role_privs union select privilege p, grantee c from dba_sys_privs)
> start with p is null connect by p = prior c')
>

I think this is your problem.  Your string is delimited with single quotes
on the outside ('), but you also have a mix of single and double quotes
inside your string.  If you were to assign this to a variable and print it
out, you would probably see the problem right away.

You have two options.  First, you could flip the outer quotes to double
quotes, then switch all of the quotes inside the string to single quotes (I
think that will work fine in SQL).  Second, you could use a triple-quoted
string by switching the outer quotes to ''' or """.  Doing that would let
you mix whatever kinds of quotes you like inside your string, like this
(untested):

sql = '''select lpad(' ', 2*level) || c "Privilege, Roles and Users" from (
select null p, name c from system_privilege_map where name like
upper(\'%&enter_privliege%\') union select granted_role p, grantee c from
dba_role_privs union select privilege p, grantee c from dba_sys_privs)
start with p is null connect by p = prior c'''

dbCursor1.execute(sql)

Once you do that, I think you will find that the "&enter_priviliege" bit in
your SQL isn't going to do what you want.  I assume you're expecting that
to automatically pop up some sort of dialog box asking the user to enter a
value for that variable?  That isn't going to happen in python.  That's a
function of the database IDE you use.  You'll need to use python to ask the
user for the privilege level, then substitute it into the sql yourself.

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


  1   2   3   4   >