Re: Python as a default shell, replacement of bash, sh, cmd ?
Well, if not modify python itself, I was thinking of making another shell,
which borrows a lot from python, something like merging bash and python. such
that I can do `cd ~/Desktop/dev` and `for i in open('file.txt'): print i` at
the some shell. This I think would be VERY useful.
IPyhton is very good, but after all, it is just an advanced interpreter, not a
default shell. I don't want this to run on top of bash or sh. But it should run
on its own, at shell level.
Bash and sh, according to me, have very ugly syntaxes and the general user does
not even use those. Python put on the shell would be adhering to python's
vision, i.e. bringing programming to the masses.
The general user, who earlier could not do batch operations, and had to buy
software and such for all that, could now write his open simple python script
and run it in his shell that would do as he wants.
Python on the shell could effectively remove learning grep, awk, sed, bash and
the various unix utilities.
Don't take me wrong. Those are awesome tools, and I use them. But the
awesomeness is not experienced by the general UNIX user on mac or linux. Python
could do that.
We all know how great a programming language python is. Imagine being able to
control your computer with such an elegant language. Imagine that I import some
speech recognition utility on the terminal shell, and voila, I'm speaking to
the computer and it is doing stuff on the terminal for me.
Shell would give python raw power! And Python would manage it well.
--
http://mail.python.org/mailman/listinfo/python-list
Re: Python as a default shell, replacement of bash, sh, cmd ?
Well, if not modify python itself, I was thinking of making another shell,
which borrows a lot from python, something like merging bash and python. such
that I can do `cd ~/Desktop/dev` and `for i in open('file.txt'): print i` at
the some shell. This I think would be VERY useful.
IPyhton is very good, but after all, it is just an advanced interpreter, not a
default shell. I don't want this to run on top of bash or sh. But it should run
on its own, at shell level.
Bash and sh, according to me, have very ugly syntaxes and the general user does
not even use those. Python put on the shell would be adhering to python's
vision, i.e. bringing programming to the masses.
The general user, who earlier could not do batch operations, and had to buy
software and such for all that, could now write his open simple python script
and run it in his shell that would do as he wants.
Python on the shell could effectively remove learning grep, awk, sed, bash and
the various unix utilities.
Don't take me wrong. Those are awesome tools, and I use them. But the
awesomeness is not experienced by the general UNIX user on mac or linux. Python
could do that.
We all know how great a programming language python is. Imagine being able to
control your computer with such an elegant language. Imagine that I import some
speech recognition utility on the terminal shell, and voila, I'm speaking to
the computer and it is doing stuff on the terminal for me.
Shell would give python raw power! And Python would manage it well.
--
http://mail.python.org/mailman/listinfo/python-list
Re: Python as a default shell, replacement of bash, sh, cmd ?
On Sun, 19 Feb 2012 00:16:43 -0800, SherjilOzair wrote:
> Well, if not modify python itself, I was thinking of making another
> shell, which borrows a lot from python, something like merging bash and
> python. such that I can do `cd ~/Desktop/dev` and `for i in
> open('file.txt'): print i` at the some shell. This I think would be VERY
> useful.
>
> IPyhton is very good, but after all, it is just an advanced interpreter,
> not a default shell. I don't want this to run on top of bash or sh. But
> it should run on its own, at shell level.
That's up to your operating system. If your OS lets you choose a shell,
tell it to use IPython. IPython already supports being used as the system
shell:
http://ipython.org/ipython-doc/dev/interactive/shell.html
http://transneptune.net/2009/06/16/ipython-as-your-default-shell/
If your OS doesn't support choosing a shell, you can't use anything but
the built-in shell regardless of what Python does.
Either way, this is not a Python problem to solve. It is an OS issue.
--
Steven
--
http://mail.python.org/mailman/listinfo/python-list
Re: entering unicode (was Python usage numbers)
On Feb 19, 8:44 am, Steven D'Aprano wrote: > On Sun, 12 Feb 2012 19:09:32 -0800, rusi wrote: > > I have some bunch of sanskrit (devanagari) to type. It would be easiest > > for me if I could have the English (roman) as well as the sanskrit > > (devanagari). > > > For example using the devanagari-itrans input method I can write the > > gayatri mantra using > > > OM bhUrbhuvaH suvaH > > tatsaviturvarenyam > > bhargo devasya dhImahi > > dhiyo yonaH prachodayAt > > > and emacs produces *on the fly* (ie I cant see/edit the above) > > > ॐ भूर्भुवः सुवः तत्सवितुर्वरेण्यम् भर्गो > > देवस्य धीमहि धियो योनः > > > प्रचोदयात् > > > Can I do it in batch mode? ie write the first in a file and run some > > command on it to produce the second? > > What is the devanagari-itrans input method? Do you actually type the > characters into a terminal? Its one of the dozens (hundreds actually) of input methods that emacs has. In emacs M-x set-input-method and then give devanagari-itrans. Its details are described (somewhat poorly) here http://en.wikipedia.org/wiki/ITRANS > > If so, you should be able to type the first into a file, copy it, then > paste it into the input buffer to be processed. For now Ive got it working in emacs with some glitches but it will do for now: http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/bfa6b05ce565d96d# > > -- > Steven Thanks [Actually thanks-squared one for looking two for backing up this thread to something more useful than ... :-) ] Coincidentally, along this, your response, Ive got another mail to another unicode related interest of mine: apl under linux. So far I was the sole (known) user of this: http://www.emacswiki.org/emacs/AplInDebian I hear the number of users has just doubled :-) -- http://mail.python.org/mailman/listinfo/python-list
Re: Python as a default shell, replacement of bash, sh, cmd ?
On 2/19/2012 3:18 AM, SherjilOzair wrote:
Well, if not modify python itself, I was thinking of making another
shell, which borrows a lot from python, something like merging bash
and python. such that I can do `cd ~/Desktop/dev` and `for i in
'cd xxx' cannot work because that is not python syntax. "cd('xxx')"
could. Right now, one can import os and do shell stuff, but not so
convinient for interactive use. 'os.chdir' is not so convenient as 'cd'.
Two possible options, either of which might exist on PyPI:
1. a shell module used as 'from bashshell import *' which would have
functions closely mimicking, in this example, bash
2. a shell module used as 'from bashshell import bash; bash()' which
would invoke an sub-interactive mode like help() that would allow 'cd
xxx' and similar syntax, which still affecting the global environment.
The latter would trade the inconvenience of '()'s for the inconvenience
of entering and exiting a special submode.
I have not used IPYthon so I have no idea how close it gets to either of
these.
--
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list
logging with logging.config.fileConfig
I tried to use file to config my logger and I got a weird situation
that each message is outputted twice...
Here is my scenario:
python: 2.6
file abc_logging.conf:
[loggers]
keys=root,abc
[handlers]
keys=consoleHandler
[formatters]
keys=detailFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_abc]
level=DEBUG
handlers=consoleHandler
qualname=abc
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=detailFormatter
args=(sys.stdout,)
[formatter_detailFormatter]
format=%(asctime)-15s %(levelname)s: %(filename)s:%(lineno)s: %(message)s
datefmt=%Y-%m-%d %H:%M:%S
Then in my program, i config the file with this:
SCRIPT_DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
logging.config.fileConfig(SCRIPT_DIR + os.path.sep + 'abc_logging.conf')
LOG = logging.getLogger('abc')
I tried to print out the logger handlers with this:
print("*"*10)
print("number of handlers: %s" % len(LOG.handlers))
print(LOG.handlers)
LOG.debug(sql)
But there is no suspicious behavior:
**
number of handlers: 1
[]
2012-02-19 12:21:56 DEBUG: abc.py:88: SELECT ...
2012-02-19 12:21:56 DEBUG: abc.py:88: SELECT ...
--
http://mail.python.org/mailman/listinfo/python-list
Re: logging with logging.config.fileConfig
On 19/02/2012 20:23, Herman wrote:
I tried to use file to config my logger and I got a weird situation
that each message is outputted twice...
Here is my scenario:
python: 2.6
file abc_logging.conf:
[snip]
[logger_abc]
level=DEBUG
handlers=consoleHandler
qualname=abc
Add this line to stop the logging message from being propagated to
higher level (ancestor) loggers:
propagate=0
[snip]
Then in my program, i config the file with this:
SCRIPT_DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
logging.config.fileConfig(SCRIPT_DIR + os.path.sep + 'abc_logging.conf')
LOG = logging.getLogger('abc')
I tried to print out the logger handlers with this:
print("*"*10)
print("number of handlers: %s" % len(LOG.handlers))
print(LOG.handlers)
LOG.debug(sql)
But there is no suspicious behavior:
**
number of handlers: 1
[]
2012-02-19 12:21:56 DEBUG: abc.py:88: SELECT ...
2012-02-19 12:21:56 DEBUG: abc.py:88: SELECT ...
--
http://mail.python.org/mailman/listinfo/python-list
Re: Python as a default shell, replacement of bash, sh, cmd ?
On 02/18/2012 11:58 AM, SherjilOzair wrote:
> Has it been considered to add shell features to python, such that it
> can be used as a default shell, as a replacement for bash, etc.
>
> I'm sure everyone would agree that doing this would make the terminal
> very powerful.
>
> What are your views on this?
I use python for system programming all the time, in place of bash.
However Python is not designed as shell language, just as Bash is not
really designed for the type of application development that Python is.
Bash works by giving you a view of the file system as your primary way
of interacting with it as a shell. This is ideal because usually you
want to manipulate files and processes (that's just what you do on a
command line shell normally). Python doesn't work on that level. Like
other langueages like php, you can manipulate files and processes
through standard library calls. Frankly doing:
cd ~/blah
is much faster and more convenient in an interactive shell than:
import os
os.chdir(os.getenv("HOME") + "/blah")
Also bash is designed to start and control processes:
ls *.txt | wc -l
or
someprocess | grep something 2>&1 > /tmp/somefile.txt
In python there is no direct correlation to these things, and in fact
Python has different ways of doing that kind of thing (better for some
things) if you want to write scripts (for example,
http://www.dabeaz.com/generators/)
My own experience has shown me that Python is a very capable
systems-programming language, but that traditional shells are there for
a reason. And if I need to script something, I usually go to Bash first
because it's simpler and easier, at least for very small tasks. Once
the bash script gets to be 100 lines or more, I switch to python. Then
I use some modules I wrote myself to make subprocess.Popen a little
simpler. Another library that I heard about on this list, called
extproc, also seems to be similarly great for doing this.
There have been attempts over the years to bring access to files and
processes into python and still be pythonic, but they are all awkward.
For example, this sort of syntax using dynamic attributes:
shell.wc(shell.ls('/tmp/*.txt'), "-l")
or
shell.ls('/tmp/*.txt').pipe(shell.wc())
But it turns out that coming up with a python-compatible syntax is
pretty hard, especially when it comes to pipes (don't forget standard
err!) Besides all this, it's just plain awkward and unnecessary.
--
http://mail.python.org/mailman/listinfo/python-list
Re: Python as a default shell, replacement of bash, sh, cmd ?
在 2012年2月20日星期一UTC+8上午8时23分33秒,Michael Torrie写道: > On 02/18/2012 11:58 AM, SherjilOzair wrote: > > Has it been considered to add shell features to python, such that it > > can be used as a default shell, as a replacement for bash, etc. > > > > I'm sure everyone would agree that doing this would make the terminal > > very powerful. > > > > What are your views on this? > > I use python for system programming all the time, in place of bash. > However Python is not designed as shell language, just as Bash is not > really designed for the type of application development that Python is. > To use Python as a shell with customized scripts is feasiable for those hose have to work on different OS enviroments from time to time. This is a handy approach to ease the user the burden to memorize different commands of different OS environments. Of course, this might add some overheads in executing some operations. Nowadays attracting more people especially noices to use linux is the way to keep unix programming alive in the future. -- http://mail.python.org/mailman/listinfo/python-list
