##// END OF EJS Templates
Add test utility for parsing test output from stdout/stderr
Add test utility for parsing test output from stdout/stderr

File last commit:

r2102:d3a059eb merge
r2353:65414365
Show More
platutils_win32.py
87 lines | 2.5 KiB | text/x-python | PythonLexer
/ IPython / platutils_win32.py
ville
initialization (no svn history)
r988 # -*- coding: utf-8 -*-
""" Platform specific utility functions, win32 version
Importing this module directly is not portable - rather, import platutils
to use these functions in platform agnostic fashion.
"""
#*****************************************************************************
# Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#*****************************************************************************
import os
Fernando Perez
Make set_term_title() default to no-op, as it can cause problems....
r1852 ignore_termtitle = True
ville
initialization (no svn history)
r988
try:
import ctypes
Fernando Perez
Refactor of platutils for cleanup....
r1331
SetConsoleTitleW = ctypes.windll.kernel32.SetConsoleTitleW
SetConsoleTitleW.argtypes = [ctypes.c_wchar_p]
def set_term_title(title):
"""Set terminal title using ctypes to access the Win32 APIs."""
ville
initialization (no svn history)
r988 SetConsoleTitleW(title)
except ImportError:
Fernando Perez
Refactor of platutils for cleanup....
r1331 def set_term_title(title):
"""Set terminal title using the 'title' command."""
global ignore_termtitle
try:
# Cannot be on network share when issuing system commands
curr = os.getcwd()
os.chdir("C:")
ret = os.system("title " + title)
finally:
os.chdir(curr)
ville
initialization (no svn history)
r988 if ret:
Fernando Perez
Refactor of platutils for cleanup....
r1331 # non-zero return code signals error, don't try again
ignore_termtitle = True
Brian Granger
Moving find_exe -> platutils.find_cmd and making is cross platform....
r1975
Fernando Perez
Merging (slightly modified) Tom Fetherston's demo branch....
r2102
Brian Granger
Moving find_exe -> platutils.find_cmd and making is cross platform....
r1975 def find_cmd(cmd):
"""Find the full path to a .bat or .exe using the win32api module."""
try:
import win32api
except ImportError:
raise ImportError('you need to have pywin32 installed for this to work')
else:
try:
(path, offest) = win32api.SearchPath(os.environ['PATH'],cmd + '.exe')
except:
(path, offset) = win32api.SearchPath(os.environ['PATH'],cmd + '.bat')
return path
Administrator
Added platutils.get_long_path_name to expand paths with "~" on win32....
r1986
def get_long_path_name(path):
"""Get a long path name (expand ~) on Windows using ctypes.
Examples
--------
>>> get_long_path_name('c:\\docume~1')
u'c:\\\\Documents and Settings'
"""
try:
import ctypes
except ImportError:
raise ImportError('you need to have ctypes installed for this to work')
_GetLongPathName = ctypes.windll.kernel32.GetLongPathNameW
_GetLongPathName.argtypes = [ctypes.c_wchar_p, ctypes.c_wchar_p,
ctypes.c_uint ]
buf = ctypes.create_unicode_buffer(260)
rv = _GetLongPathName(path, buf, 260)
if rv == 0 or rv > 260:
return path
else:
return buf.value
Fernando Perez
Merging (slightly modified) Tom Fetherston's demo branch....
r2102
Tom Fetherston
rollback to working
r1939 def term_clear():
os.system('cls')