Re: [Tutor] run local script on a remote machine

2016-10-27 Thread Cameron Simpson

On 26Oct2016 10:44, Alex Kleider  wrote:
[... snipped experiment.py and the demo call.sh script ...]

3:
#!/usr/bin/env python3
#
# file: call.py

import os
import shlex
import subprocess

script = "/home/alex/Py/BackUp/Sandbox/Scripted/experiment.py"


This is fine.


if os.path.isfile(script):
   print("File exists on local machine.")
else:
   print("No such file.")


This is fine.


command = (
"ssh -p22 alex@10.10.10.10 python3 -u - one two three < {}"
   .format(script))
ret = subprocess.call(shlex.split(command))


This is not fine.

There are a few things wrong here.

First, as a maytter of practice you should _never_ construct command strings as 
you are doing here: embedding an arbitrary filename directly in a string that 
will be evaluated by a command parser. This applies equally to shell commands 
such as yours or to SQL or anything else where you're preparing text to be 
parsed. Supposing your filename has shell punctuation in it, even the lowly 
space character? The outcome would not be what you intended. You can see where 
I'm going here I'm sure. Read more here (SQL specific, though the principle is 
general):


 http://bobby-tables.com/

The second problem, and the one causing your immediate issue, is the use of 
shlex.split. This is _not_ a full shell parser. It is a convenience function 
that recognises common shell quoting syntax to be used when writing little 
minilanguages of your own - it gets you a preimplemented quoting parser you can 
then let your users access to mark off strings.


Your command looks like this, roughly:

 ssh -p22 ..blah blah blah... < /path/to/script.py

All shlex.split is going to do with this is to break it into separate strings:

   ssh
   -p22
   ..blah
   blah
   blah...
   <
   /path/to/script.py

They're just strings. No redirection recognition or implementation is happening 
here. Then when you call subprocess.call:


   ret = subprocess.call(shlex.split(command))

you're passing a list of those strings as the first argument. subprocess.call 
and its partner Popen have two modes for their first argument: if it is a 
string then it will be passed to the system shell, otherwise it is executed 
directly without being handled by a shell. Effectively the first form takes:


   subprocess.call(some_string)

and runs is as:

   subprocess.call(['/bin/sh', '-c', some_string])

You're using the second form, and that is by far the better thing to do, so 
good there. _However_, you're effectively invoking ssh with no redirections; 
instead your passing the strings '<' and '/path/to/script.py' as arguments to 
ssh.


What you really want to do is this (untested):

 with open(script) as scfp:
   ret = subprocess.call(['ssh', '-p22', 'alex@10.10.10.10',
  'python3', '-u', '-',
  'one', 'two', 'three'],
 stdin=scfp)

which arranges to attach an open file reading from your script to the ssh 
subprocess you are invoking. Note that it does _not_ pass the script pathname 
itself as an argument to ssh. Neither does your shell script.


Now for the confusing bit: what _was_ your program really doing? Well, ssh 
concatenates its command arguments:


 python3 -u - one two three

together and passes them to the far end, which hands them to the shell! So 
effectively, like the string form of subprocess.call, ssh itself effectively 
invokes:


 sh -c 'python3 -u - one two three'

at the far end. So you're going to need shell quotes in that string if you ever 
pass something slightly tricky, or something arbitrary. But you're not yet.


_However_, the original form of you program was passing _these_ strings as 
command arguments to ssh:


   python3 -u - one two three < 
/home/alex/Py/BackUp/Sandbox/Scripted/experiment.py

so ssh is invoking this:

   /bin/sh -c 'python3 -u - one two three < 
/home/alex/Py/BackUp/Sandbox/Scripted/experiment.py'

at the far end. (Those are all on one line, BTW, in case your email reader 
folds things up.)


So you might think: but then the shell _will_ see the "<" redirection! But of 
course that is the shell on the remote machine, and your script isn't on that 
machine, so the shell emits the error message you saw.


Hoping this clarifies what's going on and how to go forward.

Please feel free to ask any questions that occur.

Cheers,
Cameron Simpson 

Hofstadter's Law: It always takes longer than you expect, even when you take
into account Hofstadter's Law.
- Douglas Hosfstadter, Godel, Escher, Bach: an Eternal Golden Braid
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] run local script on a remote machine

2016-10-27 Thread Wolfgang Maier

On 26.10.2016 19:44, Alex Kleider wrote:


I've got three files as follows:



keeping just the relevant lines

...

2:
#!/bin/bash
#
# file: call.sh

# Demonstrates running a local python script on another host
# with command line arguments specified locally.

ssh -p22 alex@10.10.10.10 python3 -u - one two three <
/home/alex/Py/BackUp/Sandbox/Scripted/experiment.py

3:
#!/usr/bin/env python3
#
# file: call.py

import os
import shlex
import subprocess

script = "/home/alex/Py/BackUp/Sandbox/Scripted/experiment.py"
if os.path.isfile(script):
print("File exists on local machine.")
else:
print("No such file.")

command = (
"ssh -p22 alex@10.10.10.10 python3 -u - one two three < {}"
.format(script))

ret = subprocess.call(shlex.split(command))



...



Running the shell script (2) executes a single shell command and leaves
the junk.txt file at 10.10.10.10 as desired.
Calling the same shell command using the subprocess module from with in
a python script (3) does not work:
alex@X301n3:~/Py/BackUp/Sandbox/Scripted$ ./call.py
File exists on local machine.
bash: /home/alex/Py/BackUp/Sandbox/Scripted/experiment.py: No such file
or directory


The structure of the command you are trying to execute would require you 
to set the "shell" argument of subprocess.call to True. Specifically, 
the "<" redirection operator is shell functionality.


Quoting from 
https://docs.python.org/3/library/subprocess.html?highlight=subprocess#subprocess.Popen:


"""
The shell argument (which defaults to False) specifies whether to use 
the shell as the program to execute. If shell is True, it is recommended 
to pass args as a string rather than as a sequence.


On POSIX with shell=True, the shell defaults to /bin/sh. If args is a 
string, the string specifies the command to execute through the shell. 
This means that the string must be formatted exactly as it would be when 
typed at the shell prompt. This includes, for example, quoting or 
backslash escaping filenames with spaces in them. If args is a sequence, 
the first item specifies the command string, and any additional items 
will be treated as additional arguments to the shell itself. That is to 
say, Popen does the equivalent of:


Popen(['/bin/sh', '-c', args[0], args[1], ...])
"""

This is exactly the behaviour you are expecting from your code: the 
shell gets called and sees a command for which the stdin should be 
replaced with the contents of a local file; it does that and executes 
the ssh command.
With the default shell=False, OTOH, the first item in your shlex.split 
generated list, 'ssh', becomes the executable and gets called with the 
rest of the list as arguments. ssh, however, does not interpret the '<' 
sign like the shell, runs the remote shell command, the remote shell 
sees and interprets the '<', fails to find the file on the remote 
machine and errors out.
The simple solution should be to not split your command string, but pass 
it directly to subprocess.call (untested):


subprocess.call(command, shell=True)

as long as you promise to NEVER use that code in production with user 
input. The problem with it is that it may allow users to inject shell 
commands as they like exactly because whatever ends up in the command 
string gets interpreted by the shell.


Best,
Wolfgang
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] String within a string solution (newbie question)

2016-10-27 Thread Wish Dokta
Hello Alan,

Thank you for the reply.

I have actually fixed that bug. If you are bored or for some other reason
would like to assist a newbro my code is here:

main: http://pastebin.com/LgbeywiB
functions: http://pastebin.com/vU7zzJKe

I'd be very grateful for any feedback on improvements to the code or how I
am coding in general. I'd be particularly interested in a better data
structure to use to store the directories and their sizes.

Many thanks,
Glen

On 26 October 2016 at 19:34, Alan Gauld via Tutor  wrote:

> On 26/10/16 19:06, Wish Dokta wrote:
>
> > folders with a drive/directory. To do this I am storing each directory
> in a
> > dict as the key, with the value being the sum of the size of all files in
> > that directories (but not directories).
> >
> > For example:
> >
> > for "C:\\docs\\code" in key:
> >
> > Which works fine and will return "C:\\docs\\code" : 20,
> > "C:\\docs\\code\\snippets" : 5, "C:\\docs\\code\\python" : 10 = (35)
> >
> > However it fails when I try to calculate the size of a directory such as
> > "C:\\docs", as it also returns "C:\\docs123".
> >
> > I'd be very grateful if anyone could offer any advice on how to correct
> > this.
>
> We can't guess what your code looks like, you need to show us.
> Post the code and we can maybe help.
>
> --
> Alan G
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
> http://www.amazon.com/author/alan_gauld
> Follow my photo-blog on Flickr at:
> http://www.flickr.com/photos/alangauldphotos
>
>
> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] String within a string solution (newbie question)

2016-10-27 Thread Wish Dokta
Thank you Bob,

While you were correct adding "\\" helped, I also needed to add "\\" to the
dict key so it would also pic up the root directory.

Many thanks,
Glen

On 26 October 2016 at 19:43, Bob Gailer  wrote:

> On Oct 26, 2016 2:07 PM, "Wish Dokta"  wrote:
> >
> > Hello,
> >
> > I am currently writing a basic program to calculate and display the size
> of
> > folders with a drive/directory. To do this I am storing each directory
> in a
> > dict as the key, with the value being the sum of the size of all files in
> > that directories (but not directories).
> >
> > For example:
> >
> > { "C:\\docs" : 10, "C:\\docs123" : 200, "C:\\docs\\code\\snippets" : 5,
> > "C:\\docs\\code" : 20, "C:\\docs\\pics" : 200, "C:\\docs\\code\\python" :
> > 10  }
> >
> > Then to return the total size of a directory I am searching for a string
> in
> > the key:
> >
> > For example:
> >
> > for "C:\\docs\\code" in key:
>
> Put "\\" at the end of the search string.
> >
> > Which works fine and will return "C:\\docs\\code" : 20,
> > "C:\\docs\\code\\snippets" : 5, "C:\\docs\\code\\python" : 10 = (35)
> >
> > However it fails when I try to calculate the size of a directory such as
> > "C:\\docs", as it also returns "C:\\docs123".
> >
> > I'd be very grateful if anyone could offer any advice on how to correct
> > this.
> > ___
> > Tutor maillist  -  Tutor@python.org
> > To unsubscribe or change subscription options:
> > https://mail.python.org/mailman/listinfo/tutor
>
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] String within a string solution (newbie question)

2016-10-27 Thread Bob Gailer
BubOn Oct 27, 2016 8:38 AM, "Wish Dokta"  wrote:
>
> Hello Alan,
>
> Thank you for the reply.
>
> I have actually fixed that bug. If you are bored or for some other reason
> would like to assist a newbro my code is here:
>
> main: http://pastebin.com/LgbeywiB
> functions: http://pastebin.com/vU7zzJKe

Code following first while needs to be indented.
Too many unnecessary blank lines.
Since a drive is a letter ask user to enter a letter rather than going
through the exercise of translating letters to numbers and back.
Minimize the number of statements following try.
To print a message surrounded by blank lines consider:
print("\nMessage\n") or
print("""
Message
""")
>
> I'd be very grateful for any feedback on improvements to the code or how I
> am coding in general. I'd be particularly interested in a better data
> structure to use to store the directories and their sizes.
>
> Many thanks,
> Glen
>
> On 26 October 2016 at 19:34, Alan Gauld via Tutor 
wrote:
>
> > On 26/10/16 19:06, Wish Dokta wrote:
> >
> > > folders with a drive/directory. To do this I am storing each directory
> > in a
> > > dict as the key, with the value being the sum of the size of all
files in
> > > that directories (but not directories).
> > >
> > > For example:
> > >
> > > for "C:\\docs\\code" in key:
> > >
> > > Which works fine and will return "C:\\docs\\code" : 20,
> > > "C:\\docs\\code\\snippets" : 5, "C:\\docs\\code\\python" : 10 = (35)
> > >
> > > However it fails when I try to calculate the size of a directory such
as
> > > "C:\\docs", as it also returns "C:\\docs123".
> > >
> > > I'd be very grateful if anyone could offer any advice on how to
correct
> > > this.
> >
> > We can't guess what your code looks like, you need to show us.
> > Post the code and we can maybe help.
> >
> > --
> > Alan G
> > Author of the Learn to Program web site
> > http://www.alan-g.me.uk/
> > http://www.amazon.com/author/alan_gauld
> > Follow my photo-blog on Flickr at:
> > http://www.flickr.com/photos/alangauldphotos
> >
> >
> > ___
> > Tutor maillist  -  Tutor@python.org
> > To unsubscribe or change subscription options:
> > https://mail.python.org/mailman/listinfo/tutor
> >
> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] String within a string solution (newbie question)

2016-10-27 Thread Matt Ruffalo
On 10/26/2016 02:06 PM, Wish Dokta wrote:
> Hello,
>
> I am currently writing a basic program to calculate and display the size of
> folders with a drive/directory. To do this I am storing each directory in a
> dict as the key, with the value being the sum of the size of all files in
> that directories (but not directories).
>
> For example:
>
> { "C:\\docs" : 10, "C:\\docs123" : 200, "C:\\docs\\code\\snippets" : 5,
> "C:\\docs\\code" : 20, "C:\\docs\\pics" : 200, "C:\\docs\\code\\python" :
> 10  }
>
> Then to return the total size of a directory I am searching for a string in
> the key:
>
> For example:
>
> for "C:\\docs\\code" in key:
>
> Which works fine and will return "C:\\docs\\code" : 20,
> "C:\\docs\\code\\snippets" : 5, "C:\\docs\\code\\python" : 10 = (35)
>
> However it fails when I try to calculate the size of a directory such as
> "C:\\docs", as it also returns "C:\\docs123".
>
> I'd be very grateful if anyone could offer any advice on how to correct
> this.

Hello-

As you saw in your current approach, using strings for paths can be
problematic in a lot of scenarios. I've found it really useful to use a
higher-level abstraction instead, like what is provided by pathlib in
the standard library. You're obviously using Windows, and you didn't
mention your Python version, so I'll assume you're using something
current like 3.5.2 (at least 3.4 is required for the following code).

You could do something like the following:

"""
from pathlib import PureWindowsPath

# From your example
sizes_str_keys = {
"C:\\docs": 10,
"C:\\docs123": 200,
"C:\\docs\\code\\snippets": 5,
"C:\\docs\\code": 20,
"C:\\docs\\pics": 200,
"C:\\docs\\code\\python": 10,
}

# Same dict, but with Path objects as keys, and the same sizes as values.
# You would almost definitely want to use Path in your code (and adjust
# the 'pathlib' import appropriately), but I'm on a Linux system so I had
# to use a PureWindowsPath instead.
sizes_path_keys = {PureWindowsPath(p): s for (p, s) in
sizes_str_keys.items()}

def filter_paths(size_dict, top_level_directory):
for path in size_dict:
# Given some directory we're examining (e.g. c:\docs\code\snippets),
# and top-level directory (e.g. c:\docs), we want to yield this
# directory if it exactly matches (of course) or if the top-level
# directory is a parent of what we're looking at:

# >>>
pprint(list(PureWindowsPath("C:\\docs\\code\\snippets").parents))
# [PureWindowsPath('C:/docs/code'),
#  PureWindowsPath('C:/docs'),
#  PureWindowsPath('C:/')]

# so in that case we'll find 'c:\docs' in iterating over
path.parents.

# You'll definitely want to remove the 'print' calls too:
if path == top_level_directory or top_level_directory in
path.parents:
print('Matched', path)
yield path
else:
print('No match for', path)

def compute_subdir_size(size_dict, top_level_directory):
total_size = 0
for dir_key in filter_paths(size_dict, top_level_directory):
total_size += size_dict[dir_key]
return total_size
"""

Then you could call 'compute_subdir_size' like so:

"""
>>> compute_subdir_size(sizes_path_keys, PureWindowsPath(r'c:\docs'))
Matched C:\docs\code\snippets
No match for C:\docs123
Matched C:\docs\code\python
Matched C:\docs\pics
Matched C:\docs\code
Matched C:\docs
245
>>> compute_subdir_size(sizes_path_keys, PureWindowsPath(r'c:\docs\code'))
Matched C:\docs\code\snippets
No match for C:\docs123
Matched C:\docs\code\python
No match for C:\docs\pics
Matched C:\docs\code
No match for C:\docs
35
"""

MMR...
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] run local script on a remote machine

2016-10-27 Thread Alex Kleider

On 2016-10-27 00:57, Wolfgang Maier wrote:


The structure of the command you are trying to execute would require
you to set the "shell" argument of subprocess.call to True.
Specifically, the "<" redirection operator is shell functionality.


Thank you Wolfgang.  Simply eliminating the call to shlex.split() made 
everything work as desired.


.



as long as you promise to NEVER use that code in production with user
input. The problem with it is that it may allow users to inject shell
commands as they like exactly because whatever ends up in the command
string gets interpreted by the shell.


I promise!

Thanks again.
Alex


_

Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] run local script on a remote machine

2016-10-27 Thread Alex Kleider

On 2016-10-27 00:22, Cameron Simpson wrote:

On 26Oct2016 10:44, Alex Kleider  wrote:

command = (
"ssh -p22 alex@10.10.10.10 python3 -u - one two three < {}"
   .format(script))
ret = subprocess.call(shlex.split(command))


This is not fine.

..

 http://bobby-tables.com/


Thanks for the warning.  I'm aware of the injection problem and should 
have mentioned that the code exposed itself to this only because I was 
trying to make it as short as possible to demonstrate the problem.




The second problem, and the one causing your immediate issue, is the
use of shlex.split.


Eliminating it made things work as desired.


Hoping this clarifies what's going on and how to go forward.


It does that indeed.  Thank you very much.


Please feel free to ask any questions that occur.


Also gratitude to you and the others on this list that are so generous 
with your advice.


Sincerely,
Alex
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


[Tutor] New to Python

2016-10-27 Thread Rusty Bayles
I  just installed 3.5.2 interpreter and cannot  figure out how to  run
program.  I am a database developer and my first attempt at sqllite3 has
beeen a disasterr! When I run a program (after importinh sqllite and doing
connection setups and attempting to setup table. When I press run (F5?) the
first line in the program fails at 3.5.2 on the five? Also if I setup new
fille and start typing sometimes I get prompt and sometimes not? I am
signed up at stackskills for a class but they don't mention how to run
program-they just do it. Also noticed-when starting new file sometimes I
see run at the top sometimes not? Lots of questions. Familiar with
programming  in C.

-- 
Cheers,,

Rusty
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] New to Python

2016-10-27 Thread Alan Gauld via Tutor
On 27/10/16 23:41, Rusty Bayles wrote:
> I  just installed 3.5.2 interpreter and cannot  figure out how to  run
> program.  

I strongly suggest you go to Youtube and search for IDLE.
There are several short (3-10min) videos there that should
make it clear where you are going wrong. Watch a couple of them.


> ...When I run a program (after importinh sqllite and doing
> connection setups and attempting to setup table. When I press run (F5?) the
> first line in the program fails at 3.5.2 on the five? 

It looks like you are typing (cut n pasting?) the Python prompt into
your program.

Its possible you are trying to save an interactive session and then
run it, but that won't work (unfortunately, it would be good if you could!)

> ... if I setup new file and start typing sometimes I get prompt 
> and sometimes not?

New file should always be a blank text screen, I'm not sure
how you are getting a prompt.

My best suggestion is to watch a couple of the video tutorials.

Danny Yoo also has an HTML tutorial but it's quicker to watch
the vids - and if you have experience in coding you should
get the point pretty quickly.

If you are stuck Danny's tutorial is here:

 http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html

Its quite old so a few menu options/labels may have changed but
the basics are the same.

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


[Tutor] comp.lang.python on gmane

2016-10-27 Thread Jim Byrnes

Is comp.lang.python available on gmane?

I've googled and found references to it being on gmane but I can't find 
it there. I'd like to use gmane because Comcast doesn't do usenet anymore.


Thanks,  Jim


___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] New to Python

2016-10-27 Thread Alan Gauld via Tutor
On 28/10/16 01:05, Rusty Bayles wrote:
> Thanks for the reply Alan,
> Could you please tell me more detail on the videos? Like who made them.

Some are just amateurs others are professional (or at least Youtube
regulars)

Here are a couple of links, but to be honest just about any of them
would meet your immediate needs.


Short (my recommendation):
https://www.*youtube*.com/watch?v=bOvqYw1SZJg

longer:
https://www.*youtube*.com/watch?v=lBkcDFRA958



 1.




Very different styles but they both contain the essentials.

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] comp.lang.python on gmane

2016-10-27 Thread Danny Yoo
On Thu, Oct 27, 2016 at 5:40 PM, Jim Byrnes  wrote:
> Is comp.lang.python available on gmane?
>
> I've googled and found references to it being on gmane but I can't find it
> there. I'd like to use gmane because Comcast doesn't do usenet anymore.

Hi Jim,


I think Gmane is still recovering:

https://lars.ingebrigtsen.no/2016/07/28/the-end-of-gmane/

http://home.gmane.org/2016/08/29/next-steps-gmane/


It sounds like they're making good progress at recovery so far.  Until
then, you can still get at comp.lang.python via web interface with
Google Groups:

https://groups.google.com/forum/#!forum/comp.lang.python


Besides those, the archive is available at:

http://mail.python.org/pipermail/python-list/



If you have more questions, please feel free to ask.  Best of wishes!
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] New to Python

2016-10-27 Thread Danny Yoo
> program-they just do it. Also noticed-when starting new file sometimes I
> see run at the top sometimes not? Lots of questions. Familiar with
> programming  in C.


If you're a database and C developer, then you probably have enough
experience to go through the Python tutorial, as it is aimed for the
experienced programmer.

https://docs.python.org/3/tutorial/interpreter.html#using-the-python-interpreter
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] comp.lang.python on gmane

2016-10-27 Thread Jim Byrnes

On 10/27/2016 08:09 PM, Danny Yoo wrote:

On Thu, Oct 27, 2016 at 5:40 PM, Jim Byrnes  wrote:

Is comp.lang.python available on gmane?

I've googled and found references to it being on gmane but I can't find it
there. I'd like to use gmane because Comcast doesn't do usenet anymore.


Hi Jim,


I think Gmane is still recovering:

https://lars.ingebrigtsen.no/2016/07/28/the-end-of-gmane/


I read that but had forgotten about it because up until now gmane seemed 
to be working normally for me.



http://home.gmane.org/2016/08/29/next-steps-gmane/


It sounds like they're making good progress at recovery so far.  Until
then, you can still get at comp.lang.python via web interface with
Google Groups:

https://groups.google.com/forum/#!forum/comp.lang.python


Besides those, the archive is available at:

http://mail.python.org/pipermail/python-list/



I am trying to solve a problem with Selenium and googling hasn't helped. 
I wanted to ask a question on the list, but wanted to search back 5 or 6 
months first to see it it had already been solved. I have always found 
the web interfaces so cumbersome to use I don't know if I can do a 
search like that on them.


Thanks,  Jim

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] comp.lang.python on gmane

2016-10-27 Thread Wolfgang Maier

On 28.10.2016 04:49, Jim Byrnes wrote:

On 10/27/2016 08:09 PM, Danny Yoo wrote:

On Thu, Oct 27, 2016 at 5:40 PM, Jim Byrnes 
wrote:

Is comp.lang.python available on gmane?

I've googled and found references to it being on gmane but I can't
find it
there. I'd like to use gmane because Comcast doesn't do usenet anymore.


Hi Jim,


I think Gmane is still recovering:

https://lars.ingebrigtsen.no/2016/07/28/the-end-of-gmane/


I read that but had forgotten about it because up until now gmane seemed
to be working normally for me.


Despite the recent turbulences with gmane comp.lang.python works 
perfectly fine for me through thunderbird via:


news://news.gmane.org:119/gmane.comp.python.general

When I last checked it was only the web interface they were still having 
trouble with.


Wolfgang
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor