how to edit .wsgi file extebtions with IDLE on windows

G

gert

I can't figure out how to enable the .py shell and syntax highlighting
for .wsgi file extensions using IDLE for windows ?
 
G

Gabriel Genellina

I can't figure out how to enable the .py shell and syntax highlighting
for .wsgi file extensions using IDLE for windows ?

That's a Windows question, not a Python one. You have to associate the
..wsgi extension with the Python.File file type (the one used for .py
files):

D:\USERDATA\Gabriel>assoc .py
..py=Python.File

D:\USERDATA\Gabriel>assoc .wsgi=Python.File
..wsgi=Python.File
 
G

gert

That's a Windows question, not a Python one. You have to associate the  
.wsgi extension with the Python.File file type (the one used for .py  
files):

D:\USERDATA\Gabriel>assoc .py
.py=Python.File

D:\USERDATA\Gabriel>assoc .wsgi=Python.File
.wsgi=Python.File

Thanks that does make it open exactly like a .py file, expect that
there is no syntax highlighting. Don't know if this is also a windows
issue or a IDLE issue ?
 
C

Chris Rebert

Thanks that does make it open exactly like a .py file, expect that
there is no syntax highlighting. Don't know if this is also a windows
issue or a IDLE issue ?

That's an IDLE issue; it only highlights files with .py (and possibly
..pyw) extensions.

Cheers,
Chris
 
G

Gabriel Genellina

Any chance they would make a highlight option in the menu ?

Two alternatives:

a) Ensure your scripts contain a shebang - no purpose on Windows, but IDLE
recognizes the file as a Python file. That is, make sure the very first
line is like this:

#!c:\python26\python.exe

(it must start with #! and contain the word "python" somewhere)

b) Edit IDLE sources:

- Locate the file EditorWindow.py in the idlelib package.

- Add this line near the top:
import _winreg

- Modify function ispythonsource near line 580 as follows:

def ispythonsource(self, filename):
if not filename or os.path.isdir(filename):
return True
base, ext = os.path.splitext(os.path.basename(filename))
if os.path.normcase(ext) in (".py", ".pyw"):
return True
### add these 4 lines ###
with _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, ext) as key:
ftype = _winreg.QueryValueEx(key, None)[0]
if ftype.lower() in ("python.file","python.noconfile"):
return True
### end ###
try:
f = open(filename)
line = f.readline()
f.close()
except IOError:
return False
return line.startswith('#!') and line.find('python') >= 0
 
G

gert

Any chance they would make a highlight option in the menu ?

Two alternatives:

a) Ensure your scripts contain a shebang - no purpose on Windows, but IDLE  
recognizes the file as a Python file. That is, make sure the very first  
line is like this:

#!c:\python26\python.exe

(it must start with #! and contain the word "python" somewhere)

b) Edit IDLE sources:

- Locate the file EditorWindow.py in the idlelib package.

- Add this line near the top:
   import _winreg

- Modify function ispythonsource near line 580 as follows:

     def ispythonsource(self, filename):
         if not filename or os.path.isdir(filename):
             return True
         base, ext = os.path.splitext(os.path.basename(filename))
         if os.path.normcase(ext) in (".py", ".pyw"):
             return True
         ### add these 4 lines ###
         with _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, ext) as key:
             ftype = _winreg.QueryValueEx(key, None)[0]
             if ftype.lower() in ("python.file","python.noconfile"):
                 return True
         ### end ###
         try:
             f = open(filename)
             line = f.readline()
             f.close()
         except IOError:
             return False
         return line.startswith('#!') and line.find('python') >= 0

Thanks. Can you make a ispythonsource menu option in the next
python3.x release? There are many examples of txt, xml or wsgi files
having python parts in them.
 
G

Gabriel Genellina

Thanks. Can you make a ispythonsource menu option in the next
python3.x release? There are many examples of txt, xml or wsgi files
having python parts in them.

Please file a feature request at http://bugs.python.org/
I think a "This is a python file, apply syntax highlighting" menu option
is feasible, but doing the same only for part of a file is a lot harder.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,571
Members
45,045
Latest member
DRCM

Latest Threads

Top