Wed, 13 Feb 2019 18:59:31 +0100
Fixed some code style issues detected by the updated style checker (over-indented lines).
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
6645
ad476851d7e0
Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6596
diff
changeset
|
3 | # Copyright (c) 2003 - 2019 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
3670
f0cb7579c0b4
Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3656
diff
changeset
|
7 | Package implementing various functions/classes needed everywhere within eric6. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3145
a9de05d4a22f
# __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3144
diff
changeset
|
10 | from __future__ import unicode_literals |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2319
diff
changeset
|
11 | try: |
5624
cdd346d8858b
Removed a bunch of __IGNORE_WARNING_M131__ markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5616
diff
changeset
|
12 | str = unicode |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
13 | import locale |
3141
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
14 | import urllib |
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
15 | |
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
16 | def quote(url): |
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
17 | """ |
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
18 | Replacement for the urllib.quote function because of unicode problems. |
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
19 | |
3144
bb63e24383e4
Types in docstring added.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3141
diff
changeset
|
20 | @param url text to quote (string) |
bb63e24383e4
Types in docstring added.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3141
diff
changeset
|
21 | @return quoted url (string) |
3141
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
22 | """ |
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
23 | return urllib.quote(url.encode('utf-8')) |
3484 | 24 | except NameError: |
2574
9d6b6cf31ec6
Fix for SyntaxCheckDialog and eflags evaluation.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2572
diff
changeset
|
25 | basestring = str |
3141
72f3bde98c58
SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3099
diff
changeset
|
26 | from urllib.parse import quote # __IGNORE_WARNING__ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2319
diff
changeset
|
27 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | import os |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | import sys |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
30 | import codecs |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | import re |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | import fnmatch |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | import glob |
114
f6e7cec11168
Changed the getUserName() function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
34 | import getpass |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
36 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
37 | def __showwarning(message, category, filename, lineno, file=None, line=""): |
141
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
38 | """ |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
39 | Module function to raise a SyntaxError for a SyntaxWarning. |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
40 | |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
41 | @param message warning object |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
42 | @param category type object of the warning |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
43 | @param filename name of the file causing the warning (string) |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
44 | @param lineno line number causing the warning (integer) |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
45 | @param file file to write the warning message to (ignored) |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
46 | @param line line causing the warning (ignored) |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
47 | @raise SyntaxError |
5726
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5708
diff
changeset
|
48 | """ # __IGNORE_WARNING_D252__ __IGNORE_WARNING_D253__ |
141
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
49 | if category is SyntaxWarning: |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
50 | err = SyntaxError(str(message)) |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
51 | err.filename = filename |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
52 | err.lineno = lineno |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
53 | raise err |
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
54 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | import warnings |
141
c76f1ec28766
Added code to handle syntax warnings during the compile much better.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
114
diff
changeset
|
56 | warnings.showwarning = __showwarning |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | from codecs import BOM_UTF8, BOM_UTF16, BOM_UTF32 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3628
diff
changeset
|
60 | from PyQt5.QtCore import QRegExp, QDir, QProcess, Qt, QByteArray, \ |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
61 | qVersion, PYQT_VERSION_STR, QCoreApplication, QCryptographicHash |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3628
diff
changeset
|
62 | from PyQt5.Qsci import QSCINTILLA_VERSION_STR, QsciScintilla |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
832
diff
changeset
|
64 | # import these methods into the Utilities namespace |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3173
diff
changeset
|
65 | from Globals import ( # __IGNORE_WARNING__ |
6289
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
66 | isWindowsPlatform, isLinuxPlatform, isMacPlatform, desktopName, |
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
67 | getConfigDir, setConfigDir, getPythonModulesDirectory, |
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
68 | getPyQt5ModulesDirectory, getQtBinariesPath, getPyQtToolsPath, |
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
69 | qVersionTuple) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
53
diff
changeset
|
71 | from E5Gui.E5Application import e5App |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | from UI.Info import Program, Version |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | import Preferences |
5616
adcffadf4962
Reworked some __IGNORE_WARNING__ comments to be more specific.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5604
diff
changeset
|
76 | from Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck import ( |
adcffadf4962
Reworked some __IGNORE_WARNING__ comments to be more specific.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5604
diff
changeset
|
77 | # __IGNORE_WARNING__ |
3484 | 78 | normalizeCode) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
3670
f0cb7579c0b4
Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3656
diff
changeset
|
80 | from eric6config import getConfig |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
81 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | configDir = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
84 | codingBytes_regexps = [ |
6075
281a47a8be9d
Extended the search for a 'coding' statement from the first two lines to the first 5 lines because some scripts include empty lines between the she-bang line and the coding line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
85 | (5, re.compile(br'''coding[:=]\s*([-\w_.]+)''')), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
86 | (1, re.compile(br'''<\?xml.*\bencoding\s*=\s*['"]([-\w_.]+)['"]\?>''')), |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
87 | ] |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
88 | coding_regexps = [ |
6075
281a47a8be9d
Extended the search for a 'coding' statement from the first two lines to the first 5 lines because some scripts include empty lines between the she-bang line and the coding line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
89 | (5, re.compile(r'''coding[:=]\s*([-\w_.]+)''')), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
90 | (1, re.compile(r'''<\?xml.*\bencoding\s*=\s*['"]([-\w_.]+)['"]\?>''')), |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
91 | ] |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
92 | |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
93 | supportedCodecs = [ |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
94 | 'utf-8', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
95 | 'iso8859-1', 'iso8859-15', 'iso8859-2', 'iso8859-3', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
96 | 'iso8859-4', 'iso8859-5', 'iso8859-6', 'iso8859-7', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
97 | 'iso8859-8', 'iso8859-9', 'iso8859-10', 'iso8859-11', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
98 | 'iso8859-13', 'iso8859-14', 'iso8859-16', 'latin-1', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
99 | 'koi8-r', 'koi8-u', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
100 | 'utf-16', 'utf-32', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
101 | 'cp037', 'cp424', 'cp437', 'cp500', 'cp737', 'cp775', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
102 | 'cp850', 'cp852', 'cp855', 'cp856', 'cp857', 'cp860', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
103 | 'cp861', 'cp862', 'cp863', 'cp864', 'cp865', 'cp866', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
104 | 'cp869', 'cp874', 'cp875', 'cp932', 'cp949', 'cp950', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
105 | 'cp1006', 'cp1026', 'cp1140', 'cp1250', 'cp1251', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
106 | 'cp1252', 'cp1253', 'cp1254', 'cp1255', 'cp1256', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
107 | 'cp1257', 'cp1258', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
108 | 'gb2312', 'gb18030', |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
109 | 'ascii' |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
110 | ] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
112 | |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
113 | class CodingError(Exception): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
114 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
115 | Class implementing an exception, which is raised, if a given coding is |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
116 | incorrect. |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
117 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
118 | def __init__(self, coding): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
119 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
120 | Constructor |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
121 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
122 | @param coding coding to include in the message (string) |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
123 | """ |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
124 | self.errorMessage = QCoreApplication.translate( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
125 | "CodingError", |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
126 | "The coding '{0}' is wrong for the given text.").format(coding) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
127 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
128 | def __repr__(self): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
129 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3525
diff
changeset
|
130 | Special method returning a representation of the exception. |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
131 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
132 | @return string representing the error message |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
133 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
134 | return str(self.errorMessage) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
135 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
136 | def __str__(self): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
137 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3525
diff
changeset
|
138 | Special method returning a string representation of the exception. |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
139 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
140 | @return string representing the error message |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
141 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
142 | return str(self.errorMessage) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
143 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
144 | |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
145 | def get_codingBytes(text): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
146 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
147 | Function to get the coding of a bytes text. |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
148 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
149 | @param text bytes text to inspect (bytes) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
150 | @return coding string |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
151 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
152 | lines = text.splitlines() |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
153 | for coding in codingBytes_regexps: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
154 | coding_re = coding[1] |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
155 | head = lines[:coding[0]] |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
156 | for l in head: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
157 | m = coding_re.search(l) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
158 | if m: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
159 | return str(m.group(1), "ascii").lower() |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
160 | return None |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
161 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
162 | |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
163 | def get_coding(text): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
164 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
165 | Function to get the coding of a text. |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
166 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
167 | @param text text to inspect (string) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
168 | @return coding string |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
169 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
170 | lines = text.splitlines() |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
171 | for coding in coding_regexps: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
172 | coding_re = coding[1] |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
173 | head = lines[:coding[0]] |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
174 | for l in head: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
175 | m = coding_re.search(l) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
176 | if m: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
177 | return m.group(1).lower() |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
178 | return None |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
179 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
180 | |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
181 | def readEncodedFile(filename): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
182 | """ |
2763
e4794166ad70
Fixed a serious typo.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
183 | Function to read a file and decode its contents into proper text. |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
184 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
185 | @param filename name of the file to read (string) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
186 | @return tuple of decoded text and encoding (string, string) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
187 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
188 | f = open(filename, "rb") |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
189 | text = f.read() |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
190 | f.close() |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
191 | return decode(text) |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
192 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
193 | |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
194 | def readEncodedFileWithHash(filename): |
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
195 | """ |
2763
e4794166ad70
Fixed a serious typo.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
196 | Function to read a file, calculate a hash value and decode its contents |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
197 | into proper text. |
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
198 | |
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
199 | @param filename name of the file to read (string) |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
200 | @return tuple of decoded text, encoding and hash value (string, string, |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
201 | string) |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
202 | """ |
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
203 | f = open(filename, "rb") |
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
204 | text = f.read() |
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
205 | f.close() |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
206 | hashStr = str(QCryptographicHash.hash( |
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
207 | QByteArray(text), QCryptographicHash.Md5).toHex(), encoding="ASCII") |
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
208 | return decode(text) + (hashStr, ) |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
565
diff
changeset
|
209 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
210 | |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
211 | def decode(text): |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
212 | """ |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
213 | Function to decode some byte text into a string. |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
214 | |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
215 | @param text byte text to decode (bytes) |
46
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
216 | @return tuple of decoded text and encoding (string, string) |
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
217 | """ |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
218 | try: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
219 | if text.startswith(BOM_UTF8): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
220 | # UTF-8 with BOM |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
221 | return str(text[len(BOM_UTF8):], 'utf-8'), 'utf-8-bom' |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
222 | elif text.startswith(BOM_UTF16): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
223 | # UTF-16 with BOM |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
224 | return str(text[len(BOM_UTF16):], 'utf-16'), 'utf-16' |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
225 | elif text.startswith(BOM_UTF32): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
226 | # UTF-32 with BOM |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
227 | return str(text[len(BOM_UTF32):], 'utf-32'), 'utf-32' |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
228 | coding = get_codingBytes(text) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
229 | if coding: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
230 | return str(text, coding), coding |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
231 | except (UnicodeError, LookupError): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
232 | pass |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
233 | |
159
2e79b9c72e59
Changed order of encodings detection to give UTF-8 a chance first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
141
diff
changeset
|
234 | # Assume UTF-8 |
2e79b9c72e59
Changed order of encodings detection to give UTF-8 a chance first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
141
diff
changeset
|
235 | try: |
2e79b9c72e59
Changed order of encodings detection to give UTF-8 a chance first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
141
diff
changeset
|
236 | return str(text, 'utf-8'), 'utf-8-guessed' |
2e79b9c72e59
Changed order of encodings detection to give UTF-8 a chance first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
141
diff
changeset
|
237 | except (UnicodeError, LookupError): |
2e79b9c72e59
Changed order of encodings detection to give UTF-8 a chance first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
141
diff
changeset
|
238 | pass |
2e79b9c72e59
Changed order of encodings detection to give UTF-8 a chance first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
141
diff
changeset
|
239 | |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
240 | guess = None |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
241 | if Preferences.getEditor("AdvancedEncodingDetection"): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
242 | # Try the universal character encoding detector |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
243 | try: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
244 | import ThirdParty.CharDet.chardet |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
245 | guess = ThirdParty.CharDet.chardet.detect(text) |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
246 | if guess and guess['confidence'] > 0.95 and \ |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
247 | guess['encoding'] is not None: |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
248 | codec = guess['encoding'].lower() |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
249 | return str(text, codec), '{0}-guessed'.format(codec) |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
250 | except (UnicodeError, LookupError): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
251 | pass |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
252 | except ImportError: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
253 | pass |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
254 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
255 | # Try default encoding |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
256 | try: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
257 | codec = Preferences.getEditor("DefaultEncoding") |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
258 | return str(text, codec), '{0}-default'.format(codec) |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
259 | except (UnicodeError, LookupError): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
260 | pass |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
261 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
262 | if Preferences.getEditor("AdvancedEncodingDetection"): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
263 | # Use the guessed one even if confifence level is low |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
264 | if guess and guess['encoding'] is not None: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
265 | try: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
266 | codec = guess['encoding'].lower() |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
267 | return str(text, codec), '{0}-guessed'.format(codec) |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
268 | except (UnicodeError, LookupError): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
269 | pass |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
270 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
271 | # Assume UTF-8 loosing information |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
272 | return str(text, "utf-8", "ignore"), 'utf-8-ignore' |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
273 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
274 | |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
275 | def readEncodedFileWithEncoding(filename, encoding): |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
276 | """ |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
277 | Function to read a file and decode its contents into proper text. |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
278 | |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
279 | @param filename name of the file to read (string) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
280 | @keyparam encoding encoding to be used to read the file (string) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
281 | @return tuple of decoded text and encoding (string, string) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
282 | """ |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
283 | f = open(filename, "rb") |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
284 | text = f.read() |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
285 | f.close() |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
286 | if encoding: |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
287 | try: |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
288 | return str(text, encoding), '{0}-selected'.format(encoding) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
289 | except (UnicodeError, LookupError): |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
290 | pass |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
291 | # Try default encoding |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
292 | try: |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
293 | codec = Preferences.getEditor("DefaultEncoding") |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
294 | return str(text, codec), '{0}-default'.format(codec) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
295 | except (UnicodeError, LookupError): |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
296 | pass |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
297 | # Assume UTF-8 loosing information |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
298 | return str(text, "utf-8", "ignore"), 'utf-8-ignore' |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
299 | else: |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
300 | return decode(text) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
301 | |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3206
diff
changeset
|
302 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
303 | def writeEncodedFile(filename, text, origEncoding, forcedEncoding=""): |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
304 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
305 | Function to write a file with properly encoded text. |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
306 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
307 | @param filename name of the file to read |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
308 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
309 | @param text text to be written |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
310 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
311 | @param origEncoding type of the original encoding |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
312 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
313 | @param forcedEncoding encoding to be used for writing, if no coding |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
314 | line is present |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
315 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
316 | @return encoding used for writing the file |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
317 | @rtype str |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
318 | """ |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
319 | etext, encoding = encode(text, origEncoding, forcedEncoding=forcedEncoding) |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
320 | |
46
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
321 | f = open(filename, "wb") |
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
322 | f.write(etext) |
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
323 | f.close() |
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
324 | |
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
325 | return encoding |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
326 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
327 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
328 | def encode(text, origEncoding, forcedEncoding=""): |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
329 | """ |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
330 | Function to encode text into a byte text. |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
331 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
332 | @param text text to be encoded |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
333 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
334 | @param origEncoding type of the original encoding |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
335 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
336 | @param forcedEncoding encoding to be used for writing, if no coding line |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
337 | is present |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
338 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
339 | @return tuple of encoded text and encoding used |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
340 | @rtype tuple of (bytes, str) |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
341 | @exception CodingError raised to indicate an invalid encoding |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
342 | """ |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
343 | encoding = None |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
344 | if origEncoding == 'utf-8-bom': |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
345 | etext, encoding = BOM_UTF8 + text.encode("utf-8"), 'utf-8-bom' |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
346 | else: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
347 | # Try declared coding spec |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
348 | coding = get_coding(text) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
349 | if coding: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
350 | try: |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
351 | etext, encoding = text.encode(coding), coding |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
352 | except (UnicodeError, LookupError): |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
353 | # Error: Declared encoding is incorrect |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
354 | raise CodingError(coding) |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
355 | else: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
356 | if forcedEncoding: |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
357 | try: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
358 | etext, encoding = ( |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
359 | text.encode(forcedEncoding), forcedEncoding) |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
360 | except (UnicodeError, LookupError): |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
361 | # Error: Forced encoding is incorrect, ignore it |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
362 | pass |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
363 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
364 | if encoding is None: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
365 | # Try the original encoding |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
366 | if origEncoding and origEncoding.endswith( |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
367 | ('-selected', '-default', '-guessed', '-ignore')): |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
368 | coding = origEncoding\ |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
369 | .replace("-selected", "")\ |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
370 | .replace("-default", "")\ |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
371 | .replace("-guessed", "")\ |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
372 | .replace("-ignore", "") |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
373 | try: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
374 | etext, encoding = text.encode(coding), coding |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
375 | except (UnicodeError, LookupError): |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
376 | pass |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
377 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
378 | if encoding is None: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
379 | # Try configured default |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
380 | try: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
381 | codec = Preferences.getEditor("DefaultEncoding") |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
382 | etext, encoding = text.encode(codec), codec |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
383 | except (UnicodeError, LookupError): |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
384 | pass |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
385 | |
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
386 | if encoding is None: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
387 | # Try saving as ASCII |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
388 | try: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
389 | etext, encoding = text.encode('ascii'), 'ascii' |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
390 | except UnicodeError: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
391 | pass |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
392 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
393 | if encoding is None: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
394 | # Save as UTF-8 without BOM |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6080
diff
changeset
|
395 | etext, encoding = text.encode('utf-8'), 'utf-8' |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
396 | |
46
b09750fd2a06
Added utility functions to encode/decode some text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
397 | return etext, encoding |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
398 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
399 | |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
400 | def decodeString(text): |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
401 | """ |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
402 | Function to decode a string containing Unicode encoded characters. |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
403 | |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
404 | @param text text containing encoded chars (string) |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
405 | @return decoded text (string) |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
406 | """ |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
407 | buf = b"" |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
408 | index = 0 |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
409 | while index < len(text): |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
410 | if text[index] == "\\": |
6596
2d82cd481adc
Utilities: fixed an issue related to a forgotten conversion of str to bytes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6545
diff
changeset
|
411 | qb = QByteArray.fromHex(text[index:index + 4].encode()) |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
412 | buf += bytes(qb) |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
413 | index += 4 |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
414 | else: |
2716
98c11482598e
Python2 compatible decodeString (used e.g. in menu item Manage SSL Certificates)
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2679
diff
changeset
|
415 | buf += codecs.encode(text[index], "utf-8") |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
416 | index += 1 |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
417 | buf = buf.replace(b"\x00", b"") |
1109
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
418 | return decodeBytes(buf) |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
419 | |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1109
diff
changeset
|
420 | |
1109
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
421 | def decodeBytes(buffer): |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
422 | """ |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
423 | Function to decode some byte text into a string. |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
424 | |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
425 | @param buffer byte buffer to decode (bytes) |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
426 | @return decoded text (string) |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
427 | """ |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
428 | # try UTF with BOM |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
429 | try: |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
430 | if buffer.startswith(BOM_UTF8): |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
431 | # UTF-8 with BOM |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
432 | return str(buffer[len(BOM_UTF8):], encoding='utf-8') |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
433 | elif buffer.startswith(BOM_UTF16): |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
434 | # UTF-16 with BOM |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
435 | return str(buffer[len(BOM_UTF16):], encoding='utf-16') |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
436 | elif buffer.startswith(BOM_UTF32): |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
437 | # UTF-32 with BOM |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
438 | return str(buffer[len(BOM_UTF32):], encoding='utf-32') |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
439 | except (UnicodeError, LookupError): |
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
440 | pass |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
441 | |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
442 | # try UTF-8 |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
443 | try: |
1109
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
444 | return str(buffer, encoding="utf-8") |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
445 | except UnicodeError: |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
446 | pass |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
447 | |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
448 | # try codec detection |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
449 | try: |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
450 | import ThirdParty.CharDet.chardet |
1109
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
451 | guess = ThirdParty.CharDet.chardet.detect(buffer) |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
452 | if guess and guess['encoding'] is not None: |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
453 | codec = guess['encoding'].lower() |
1109
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
454 | return str(buffer, encoding=codec) |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
455 | except (UnicodeError, LookupError): |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
456 | pass |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
457 | except ImportError: |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
458 | pass |
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
459 | |
1109
9552b5e16a07
Added some more search engines to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
988
diff
changeset
|
460 | return str(buffer, encoding="utf-8", errors="ignore") |
753
e19a516f0a97
Continued implementing the certificate manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
682
diff
changeset
|
461 | |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
462 | |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
463 | def readStringFromStream(stream): |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
464 | """ |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
465 | Module function to read a string from the given stream. |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
466 | |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
467 | @param stream data stream opened for reading (QDataStream) |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
468 | @return string read from the stream (string) |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
469 | """ |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
470 | data = stream.readString() |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
471 | if data is None: |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
472 | data = b"" |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
473 | return data.decode('utf-8') |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
474 | |
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2079
diff
changeset
|
475 | |
2079
febae63bb821
Extended the html_encode function a bit to prepare to use it instead of Qt.escape (step 3 of Qt5 compatibility changes).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2030
diff
changeset
|
476 | _escape = re.compile("[&<>\"'\u0080-\uffff]") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | _escape_map = { |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
479 | "&": "&", |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | "<": "<", |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | ">": ">", |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | '"': """, |
2079
febae63bb821
Extended the html_encode function a bit to prepare to use it instead of Qt.escape (step 3 of Qt5 compatibility changes).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2030
diff
changeset
|
483 | "'": "'", |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | } |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
486 | |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
487 | def escape_entities(m, escmap=_escape_map): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | Function to encode html entities. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | @param m the match object |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
492 | @param escmap the map of entities to encode |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | @return the converted text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | char = m.group() |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
496 | text = escmap.get(char) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | if text is None: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
498 | text = "&#{0:d};".format(ord(char)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | return text |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
501 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | def html_encode(text, pattern=_escape): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | Function to correctly encode a text for html. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | @param text text to be encoded (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | @param pattern search pattern for text to be encoded (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | @return the encoded text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | if not text: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | text = pattern.sub(escape_entities, text) |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
513 | return text |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | |
56
3bd61d38c924
Fixed a problem in Utilities related to HTML encoding of unicode characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
515 | _uescape = re.compile('[\u0080-\uffff]') |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
517 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | def escape_uentities(m): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | Function to encode html entities. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | @param m the match object |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | @return the converted text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | char = m.group() |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
526 | text = "&#{0:d};".format(ord(char)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | return text |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
529 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | def html_uencode(text, pattern=_uescape): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | Function to correctly encode a unicode text for html. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | @param text text to be encoded (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | @param pattern search pattern for text to be encoded (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | @return the encoded text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | if not text: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | text = pattern.sub(escape_uentities, text) |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
541 | return text |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | |
6247
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
543 | _uunescape = re.compile(r'&#\d+;') |
1732
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
544 | |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
545 | |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
546 | def unescape_uentities(m): |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
547 | """ |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
548 | Function to decode html entities. |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
549 | |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
550 | @param m the match object |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
551 | @return the converted text (string) |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
552 | """ |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
553 | char = m.group() |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
554 | ordinal = int(char[2:-1]) |
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
555 | return chr(ordinal) |
1732
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
556 | |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
557 | |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
558 | def html_udecode(text, pattern=_uunescape): |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
559 | """ |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
560 | Function to correctly decode a html text to a unicode text. |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
561 | |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
562 | @param text text to be decoded (string) |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
563 | @param pattern search pattern for text to be decoded (string) |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
564 | @return the decoded text (string) |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
565 | """ |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
566 | if not text: |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
567 | return "" |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
568 | text = pattern.sub(unescape_uentities, text) |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
569 | return text |
b140a24e147a
Rewrote the reader for HTML bookmark files to cope with the various dates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1659
diff
changeset
|
570 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
571 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | def convertLineEnds(text, eol): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | Function to convert the end of line characters. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | @param text text to be converted (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | @param eol new eol setting (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | @return text with converted eols (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | if eol == '\r\n': |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | regexp = re.compile(r"""(\r(?!\n)|(?<!\r)\n)""") |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
582 | return regexp.sub(lambda m, eol='\r\n': eol, text) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | elif eol == '\n': |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | regexp = re.compile(r"""(\r\n|\r)""") |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
585 | return regexp.sub(lambda m, eol='\n': eol, text) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | elif eol == '\r': |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | regexp = re.compile(r"""(\r\n|\n)""") |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
588 | return regexp.sub(lambda m, eol='\r': eol, text) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
590 | return text |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
592 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | def linesep(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | """ |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
595 | Function to return the line separator used by the editor. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | @return line separator used by the editor (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | eolMode = Preferences.getEditor("EOLMode") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | if eolMode == QsciScintilla.EolUnix: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | return "\n" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
602 | elif eolMode == QsciScintilla.EolMac: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | return "\r" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | return "\r\n" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
607 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
608 | def extractFlags(text): |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
609 | """ |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
610 | Function to extract eric specific flags out of the given text. |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
611 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
612 | Flags are contained in comments and are introduced by 'eflag:'. |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
613 | The rest of the line is interpreted as 'key = value'. value is |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
614 | analyzed for being an integer or float value. If that fails, it |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
615 | is assumed to be a string. If a key does not contain a '=' |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
616 | character, it is assumed to be a boolean flag. Flags are expected |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
617 | at the very end of a file. The search is ended, if a line without |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
618 | the 'eflag:' marker is found. |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
619 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
620 | @param text text to be scanned (string) |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
621 | @return dictionary of string, boolean, complex, float and int |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
622 | """ |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
623 | flags = {} |
2574
9d6b6cf31ec6
Fix for SyntaxCheckDialog and eflags evaluation.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2572
diff
changeset
|
624 | if isinstance(text, basestring): |
9d6b6cf31ec6
Fix for SyntaxCheckDialog and eflags evaluation.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2572
diff
changeset
|
625 | lines = text.rstrip().splitlines() |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
805
diff
changeset
|
626 | else: |
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
805
diff
changeset
|
627 | lines = text |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
628 | for line in reversed(lines): |
3099
d5dcda74d839
Fix the syntaxcheck if only one file is tested. Fix seldom bug if last line has unicode characters in it.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3065
diff
changeset
|
629 | try: |
d5dcda74d839
Fix the syntaxcheck if only one file is tested. Fix seldom bug if last line has unicode characters in it.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3065
diff
changeset
|
630 | index = line.index("eflag:") |
d5dcda74d839
Fix the syntaxcheck if only one file is tested. Fix seldom bug if last line has unicode characters in it.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3065
diff
changeset
|
631 | except ValueError: |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
632 | # no flag found, don't look any further |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
633 | break |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
634 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
635 | flag = line[index + 6:].strip() |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
636 | if "=" in flag: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
637 | key, value = flag.split("=", 1) |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
638 | key = key.strip() |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
639 | value = value.strip() |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
640 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
641 | if value.lower() in ["true", "false", "yes", "no", "ok"]: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
642 | # it is a flag |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
643 | flags[key] = value.lower() in ["true", "yes", "ok"] |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
644 | continue |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
645 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
646 | try: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
647 | # interpret as int first |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
648 | value = int(value) |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
649 | except ValueError: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
650 | try: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
651 | # interpret as float next |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
652 | value = float(value) |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
653 | except ValueError: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
654 | pass |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
655 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
656 | flags[key] = value |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
657 | else: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
658 | # treat it as a boolean |
4514
e410e76d6538
Added capability to disable code style checks using an eflags: comment like 'eflags: noqa = M601, M702'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4384
diff
changeset
|
659 | if flag[0] == "-": |
e410e76d6538
Added capability to disable code style checks using an eflags: comment like 'eflags: noqa = M601, M702'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4384
diff
changeset
|
660 | # false flags start with '-' |
e410e76d6538
Added capability to disable code style checks using an eflags: comment like 'eflags: noqa = M601, M702'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4384
diff
changeset
|
661 | flags[flag[1:]] = False |
e410e76d6538
Added capability to disable code style checks using an eflags: comment like 'eflags: noqa = M601, M702'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4384
diff
changeset
|
662 | else: |
e410e76d6538
Added capability to disable code style checks using an eflags: comment like 'eflags: noqa = M601, M702'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4384
diff
changeset
|
663 | flags[flag] = True |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
664 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
665 | return flags |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
768
diff
changeset
|
666 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
667 | |
1166
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
668 | def extractFlagsFromFile(filename): |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
669 | """ |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
670 | Function to extract eric specific flags out of the given file. |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
671 | |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
672 | @param filename name of the file to be scanned (string) |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
673 | @return dictionary of string, boolean, complex, float and int |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
674 | """ |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
675 | try: |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
676 | source, encoding = readEncodedFile(filename) |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
677 | except (UnicodeError, IOError): |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
678 | return {} |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
679 | |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
680 | return extractFlags(source) |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
681 | |
a94b0a2fafd7
Extended the unit test interface to support skipped tests, expected failures and unexpected successes and to better cope with Python2 scripts when run from the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1142
diff
changeset
|
682 | |
5586
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
683 | def extractLineFlags(line, startComment="#", endComment="", flagsLine=False): |
1308
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
684 | """ |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
685 | Function to extract flags starting and ending with '__' from a line |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
686 | comment. |
1308
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
687 | |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
688 | @param line line to extract flags from (string) |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
689 | @keyparam startComment string identifying the start of the comment (string) |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
690 | @keyparam endComment string identifying the end of a comment (string) |
5586
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
691 | @keyparam flagsLine flag indicating to check for a flags only line (bool) |
1308
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
692 | @return list containing the extracted flags (list of strings) |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
693 | """ |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
694 | flags = [] |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
695 | |
5586
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
696 | if not flagsLine or ( |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
697 | flagsLine and line.strip().startswith(startComment)): |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
698 | pos = line.rfind(startComment) |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
699 | if pos >= 0: |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
700 | comment = line[pos + len(startComment):].strip() |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
701 | if endComment: |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
702 | endPos = line.rfind(endComment) |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
703 | if endPos >= 0: |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
704 | comment = comment[:endPos] |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
705 | flags = [f.strip() for f in comment.split() |
0e5421d679e7
Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5421
diff
changeset
|
706 | if (f.startswith("__") and f.endswith("__"))] |
1308
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
707 | return flags |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
708 | |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1190
diff
changeset
|
709 | |
5020
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
710 | def filterAnsiSequences(txt): |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
711 | """ |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
712 | Function to filter out ANSI escape sequences (color only). |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
713 | |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
714 | @param txt text to be filtered |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
715 | @type str |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
716 | @return text without ANSI escape sequences |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
717 | @rtype str |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
718 | """ |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
719 | ntxt = txt[:] |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
720 | while True: |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
721 | start = ntxt.find("\33[") # find escape character |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
722 | if start == -1: |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
723 | break |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
724 | end = ntxt.find("m", start) |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
725 | if end == -1: |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
726 | break |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
727 | ntxt = ntxt[:start] + ntxt[end + 1:] |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
728 | |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
729 | return ntxt |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
730 | |
d0afdfd8e45b
Added capability to filter ANSI escape sequences out of output strings. This is limited to color sequences at the moment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4869
diff
changeset
|
731 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
732 | def toNativeSeparators(path): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
733 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
734 | Function returning a path, that is using native separator characters. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
735 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
736 | @param path path to be converted (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
737 | @return path with converted separator characters (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
738 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
739 | return QDir.toNativeSeparators(path) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
740 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
741 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
742 | def fromNativeSeparators(path): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
743 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
744 | Function returning a path, that is using "/" separator characters. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
745 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
746 | @param path path to be converted (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
747 | @return path with converted separator characters (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
748 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
749 | return QDir.fromNativeSeparators(path) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
750 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
751 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
752 | def normcasepath(path): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
753 | """ |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
754 | Function returning a path, that is normalized with respect to its case |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
755 | and references. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
756 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
757 | @param path file path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
758 | @return case normalized path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
759 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
760 | return os.path.normcase(os.path.normpath(path)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
761 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
762 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
763 | def normabspath(path): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
764 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
765 | Function returning a normalized, absolute path. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
766 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
767 | @param path file path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
768 | @return absolute, normalized path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
769 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
770 | return os.path.abspath(path) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
771 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
772 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
773 | def normcaseabspath(path): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
774 | """ |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
775 | Function returning an absolute path, that is normalized with respect to |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
776 | its case and references. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
777 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
778 | @param path file path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
779 | @return absolute, normalized path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
780 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
781 | return os.path.normcase(os.path.abspath(path)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
782 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
783 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
784 | def normjoinpath(a, *p): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
785 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
786 | Function returning a normalized path of the joined parts passed into it. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
787 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
788 | @param a first path to be joined (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
789 | @param p variable number of path parts to be joind (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
790 | @return normalized path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
791 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
792 | return os.path.normpath(os.path.join(a, *p)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
793 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
794 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
795 | def normabsjoinpath(a, *p): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | """ |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
797 | Function returning a normalized, absolute path of the joined parts passed |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
798 | into it. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
799 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
800 | @param a first path to be joined (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
801 | @param p variable number of path parts to be joind (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
802 | @return absolute, normalized path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
803 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
804 | return os.path.abspath(os.path.join(a, *p)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
805 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
806 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
807 | def relpath(path, start=os.path.curdir): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
808 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
809 | Return a relative version of a path. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
810 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
811 | @param path path to make relative (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
812 | @param start path to make relative from (string) |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
813 | @return relative path (string) |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
814 | @exception ValueError raised to indicate an invalid path |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
815 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
816 | if not path: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
817 | raise ValueError("no path specified") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
818 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
819 | start_list = os.path.abspath(start).split(os.path.sep) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
820 | path_list = os.path.abspath(path).split(os.path.sep) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
821 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
822 | # Work out how much of the filepath is shared by start and path. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
823 | i = len(os.path.commonprefix([start_list, path_list])) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
824 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
825 | rel_list = [os.path.pardir] * (len(start_list) - i) + path_list[i:] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
826 | if not rel_list: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
827 | return os.path.curdir |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
828 | return os.path.join(*rel_list) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
829 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
830 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
831 | def isinpath(file): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
832 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
833 | Function to check for an executable file. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
834 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
835 | @param file filename of the executable to check (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
836 | @return flag to indicate, if the executable file is accessible |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
837 | via the searchpath defined by the PATH environment variable. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
838 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
839 | if os.path.isabs(file): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
840 | return os.access(file, os.X_OK) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
841 | |
1329
ac21bb9cf8b9
Ammended 'isinpath' and 'getExecutablePath' to check the current directory as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1316
diff
changeset
|
842 | if os.path.exists(os.path.join(os.curdir, file)): |
ac21bb9cf8b9
Ammended 'isinpath' and 'getExecutablePath' to check the current directory as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1316
diff
changeset
|
843 | return os.access(os.path.join(os.curdir, file), os.X_OK) |
ac21bb9cf8b9
Ammended 'isinpath' and 'getExecutablePath' to check the current directory as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1316
diff
changeset
|
844 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
845 | path = getEnvironmentEntry('PATH') |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
846 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
847 | # environment variable not defined |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
848 | if path is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
849 | return False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
850 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
851 | dirs = path.split(os.pathsep) |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
852 | for directory in dirs: |
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
853 | if os.access(os.path.join(directory, file), os.X_OK): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
854 | return True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
855 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
856 | return False |
3833
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
857 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
858 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
859 | def startswithPath(path, start): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
860 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
861 | Function to check, if a path starts with a given start path. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
862 | |
3833
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
863 | @param path path to be checked (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
864 | @param start start path (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
865 | @return flag indicating that the path starts with the given start |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
866 | path (boolean) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
867 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
868 | if start: |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
869 | if path == start: |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
870 | return True |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
871 | elif normcasepath(toNativeSeparators(path)).startswith( |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
872 | normcasepath(toNativeSeparators(start + "/"))): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
873 | return True |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
874 | else: |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
875 | return False |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
876 | else: |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
877 | return False |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
878 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
879 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
880 | def relativePath(path, start): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
881 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
882 | Function to convert a file path to a path relative to a start path. |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
883 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
884 | @param path file or directory name to convert (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
885 | @param start start path (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
886 | @return relative path or unchanged path, if path does not start with |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
887 | the start path (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
888 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
889 | if startswithPath(path, start): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
890 | if path == start: |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
891 | return "" |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
892 | else: |
5385
b1ed8297b183
Fix for Utilities.relativePath() not considering the path to make relative to ending in '/' or '\'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5331
diff
changeset
|
893 | if start.endswith(("/", "\\")): |
b1ed8297b183
Fix for Utilities.relativePath() not considering the path to make relative to ending in '/' or '\'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5331
diff
changeset
|
894 | return path[len(start):] |
b1ed8297b183
Fix for Utilities.relativePath() not considering the path to make relative to ending in '/' or '\'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5331
diff
changeset
|
895 | else: |
b1ed8297b183
Fix for Utilities.relativePath() not considering the path to make relative to ending in '/' or '\'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5331
diff
changeset
|
896 | return path[len(start) + 1:] |
3833
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
897 | else: |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
898 | return path |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
899 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
900 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
901 | def relativeUniversalPath(path, start): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
902 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
903 | Function to convert a file path to a path relative to a start path |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
904 | with universal separators. |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
905 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
906 | @param path file or directory name to convert (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
907 | @param start start path (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
908 | @return relative path or unchanged path, if path does not start with |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
909 | the start path with universal separators (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
910 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
911 | return fromNativeSeparators(relativePath(path, start)) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
912 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
913 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
914 | def absolutePath(path, start): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
915 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
916 | Public method to convert a path relative to a start path to an |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
917 | absolute path. |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
918 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
919 | @param path file or directory name to convert (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
920 | @param start start path (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
921 | @return absolute path (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
922 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
923 | if not os.path.isabs(path): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
924 | path = os.path.join(start, path) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
925 | return path |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
926 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
927 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
928 | def absoluteUniversalPath(path, start): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
929 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
930 | Public method to convert a path relative to a start path with |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
931 | universal separators to an absolute path. |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
932 | |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
933 | @param path file or directory name to convert (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
934 | @param start start path (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
935 | @return absolute path with native separators (string) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
936 | """ |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
937 | if not os.path.isabs(path): |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
938 | path = toNativeSeparators(os.path.join(start, path)) |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
939 | return path |
64b5f5fa3b00
Changed multi project files to contain relative paths to the contained project files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
940 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
941 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
942 | def getExecutablePath(file): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
943 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
944 | Function to build the full path of an executable file from the environment. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
945 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
946 | @param file filename of the executable to check (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
947 | @return full executable name, if the executable file is accessible |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
948 | via the searchpath defined by the PATH environment variable, or an |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
949 | empty string otherwise. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
950 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
951 | if os.path.isabs(file): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
952 | if os.access(file, os.X_OK): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
953 | return file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
954 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
955 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
956 | |
1329
ac21bb9cf8b9
Ammended 'isinpath' and 'getExecutablePath' to check the current directory as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1316
diff
changeset
|
957 | cur_path = os.path.join(os.curdir, file) |
ac21bb9cf8b9
Ammended 'isinpath' and 'getExecutablePath' to check the current directory as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1316
diff
changeset
|
958 | if os.path.exists(cur_path): |
ac21bb9cf8b9
Ammended 'isinpath' and 'getExecutablePath' to check the current directory as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1316
diff
changeset
|
959 | if os.access(cur_path, os.X_OK): |
1474
1eaec11a0078
Fixed a few PEP-8 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1465
diff
changeset
|
960 | return cur_path |
1329
ac21bb9cf8b9
Ammended 'isinpath' and 'getExecutablePath' to check the current directory as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1316
diff
changeset
|
961 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
962 | path = os.getenv('PATH') |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
963 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
964 | # environment variable not defined |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
965 | if path is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
966 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
967 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
968 | dirs = path.split(os.pathsep) |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
969 | for directory in dirs: |
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
970 | exe = os.path.join(directory, file) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
971 | if os.access(exe, os.X_OK): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
972 | return exe |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
973 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
974 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
975 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
976 | |
2553
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
977 | def getExecutablePaths(file): |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
978 | """ |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
979 | Function to build all full path of an executable file from the environment. |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
980 | |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
981 | @param file filename of the executable (string) |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
982 | @return list of full executable names (list of strings), if the executable |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
983 | file is accessible via the searchpath defined by the PATH environment |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
984 | variable, or an empty list otherwise. |
2553
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
985 | """ |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
986 | paths = [] |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
987 | |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
988 | if os.path.isabs(file): |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
989 | if os.access(file, os.X_OK): |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
990 | return [file] |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
991 | else: |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
992 | return [] |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
993 | |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
994 | cur_path = os.path.join(os.curdir, file) |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
995 | if os.path.exists(cur_path): |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
996 | if os.access(cur_path, os.X_OK): |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
997 | paths.append(cur_path) |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
998 | |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
999 | path = os.getenv('PATH') |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1000 | |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1001 | # environment variable not defined |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1002 | if path is not None: |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1003 | dirs = path.split(os.pathsep) |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1004 | for directory in dirs: |
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1005 | exe = os.path.join(directory, file) |
2553
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1006 | if os.access(exe, os.X_OK) and exe not in paths: |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1007 | paths.append(exe) |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1008 | |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1009 | return paths |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1010 | |
2ef00ee163a8
Added a function to Utilities to determine all possible full executable paths using the PATH environment variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2319
diff
changeset
|
1011 | |
5331
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1012 | def getWindowsExecutablePath(file): |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1013 | """ |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1014 | Function to build the full path of an executable file from the environment |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1015 | on Windows platforms. |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1016 | |
6495
6e73d31af3af
Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6477
diff
changeset
|
1017 | First an executable with the extension .exe is searched for, thereafter |
6e73d31af3af
Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6477
diff
changeset
|
1018 | such with the extensions .cmd or .bat and finally the given file name as |
6e73d31af3af
Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6477
diff
changeset
|
1019 | is. The first match is returned. |
5331
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1020 | |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1021 | @param file filename of the executable to check (string) |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1022 | @return full executable name, if the executable file is accessible |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1023 | via the searchpath defined by the PATH environment variable, or an |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1024 | empty string otherwise. |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1025 | """ |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1026 | if os.path.isabs(file): |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1027 | if os.access(file, os.X_OK): |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1028 | return file |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1029 | else: |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1030 | return "" |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1031 | |
6495
6e73d31af3af
Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6477
diff
changeset
|
1032 | filenames = [file + ".exe", file + ".cmd", file + ".bat", file] |
5331
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1033 | |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1034 | for filename in filenames: |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1035 | cur_path = os.path.join(os.curdir, filename) |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1036 | if os.path.exists(cur_path): |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1037 | if os.access(cur_path, os.X_OK): |
5421
ce62341e81b6
Little fix determining the PyQt tools path on Windows, if the tools are installed in parallel to eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
1038 | return os.path.abspath(cur_path) |
5331
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1039 | |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1040 | path = os.getenv('PATH') |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1041 | |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1042 | # environment variable not defined |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1043 | if path is None: |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1044 | return "" |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1045 | |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1046 | dirs = path.split(os.pathsep) |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1047 | for directory in dirs: |
5331
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1048 | for filename in filenames: |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1049 | exe = os.path.join(directory, filename) |
5331
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1050 | if os.access(exe, os.X_OK): |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1051 | return exe |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1052 | |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1053 | return "" |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1054 | |
8d607cd52f26
Fixed an issue locating the right PyQt5 tools executables on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5020
diff
changeset
|
1055 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1056 | def isExecutable(exe): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1057 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1058 | Function to check, if a file is executable. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1059 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1060 | @param exe filename of the executable to check (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1061 | @return flag indicating executable status (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1062 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1063 | return os.access(exe, os.X_OK) |
5708
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1064 | |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1065 | |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1066 | def isDrive(path): |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1067 | """ |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1068 | Function to check, if a path is a Windows drive. |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1069 | |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1070 | @param path path name to be checked |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1071 | @type str |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1072 | @return flag indicating a Windows drive |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1073 | @rtype bool |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1074 | """ |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1075 | isDrive = False |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1076 | drive, directory = os.path.splitdrive(path) |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1077 | if drive and len(drive) == 2 and drive.endswith(":") and \ |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1078 | directory in ["", "\\", "/"]: |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1079 | isDrive = True |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1080 | |
9b01b4004314
Fixed an issue in the file browser model caused some error message being shown upon startup in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5696
diff
changeset
|
1081 | return isDrive |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1082 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1083 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1084 | def samepath(f1, f2): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1085 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1086 | Function to compare two paths. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1087 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1088 | @param f1 first path for the compare (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1089 | @param f2 second path for the compare (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1090 | @return flag indicating whether the two paths represent the |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1091 | same path on disk. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1092 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1093 | if f1 is None or f2 is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1094 | return False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1095 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1096 | if normcaseabspath(os.path.realpath(f1)) == \ |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1097 | normcaseabspath(os.path.realpath(f2)): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1098 | return True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1099 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1100 | return False |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1101 | |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1102 | |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1103 | def samefilepath(f1, f2): |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1104 | """ |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1105 | Function to compare two paths. Strips the filename. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1106 | |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1107 | @param f1 first filepath for the compare (string) |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1108 | @param f2 second filepath for the compare (string) |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1109 | @return flag indicating whether the two paths represent the |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1110 | same path on disk. |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1111 | """ |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1112 | if f1 is None or f2 is None: |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1113 | return False |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1114 | |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1115 | if (normcaseabspath(os.path.dirname(os.path.realpath(f1))) == |
3065
070b35dde35e
Fixed a bunch of indentation issues.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3060
diff
changeset
|
1116 | normcaseabspath(os.path.dirname(os.path.realpath(f2)))): |
070b35dde35e
Fixed a bunch of indentation issues.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3060
diff
changeset
|
1117 | return True |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1118 | |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1119 | return False |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
1120 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1121 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1122 | EXTSEP = os.extsep |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1123 | except AttributeError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1124 | EXTSEP = "." |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1125 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1126 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1127 | def splitPath(name): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1128 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1129 | Function to split a pathname into a directory part and a file part. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1130 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1131 | @param name path name (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1132 | @return a tuple of 2 strings (dirname, filename). |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1133 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1134 | if os.path.isdir(name): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1135 | dn = os.path.abspath(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1136 | fn = "." |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1137 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1138 | dn, fn = os.path.split(name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1139 | return (dn, fn) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1140 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1141 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1142 | def joinext(prefix, ext): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1143 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1144 | Function to join a file extension to a path. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1145 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1146 | The leading "." of ext is replaced by a platform specific extension |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1147 | separator if necessary. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1148 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1149 | @param prefix the basepart of the filename (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1150 | @param ext the extension part (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1151 | @return the complete filename (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1152 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1153 | if ext[0] != ".": |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
1154 | ext = ".{0}".format(ext) |
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
1155 | # require leading separator to match os.path.splitext |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1156 | return prefix + EXTSEP + ext[1:] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1157 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1158 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1159 | def compactPath(path, width, measure=len): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1160 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1161 | Function to return a compacted path fitting inside the given width. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1162 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1163 | @param path path to be compacted (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1164 | @param width width for the compacted path (integer) |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1165 | @param measure reference to a function used to measure the length of the |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1166 | string |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1167 | @return compacted path (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1168 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1169 | if measure(path) <= width: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1170 | return path |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1171 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1172 | ellipsis = '...' |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1173 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1174 | head, tail = os.path.split(path) |
343
f23d1272de6b
Changed algorithm for compactPath() slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
1175 | mid = len(head) // 2 |
f23d1272de6b
Changed algorithm for compactPath() slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
1176 | head1 = head[:mid] |
f23d1272de6b
Changed algorithm for compactPath() slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
1177 | head2 = head[mid:] |
f23d1272de6b
Changed algorithm for compactPath() slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
1178 | while head1: |
f23d1272de6b
Changed algorithm for compactPath() slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
1179 | # head1 is same size as head2 or one shorter |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1180 | path = os.path.join("{0}{1}{2}".format(head1, ellipsis, head2), tail) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1181 | if measure(path) <= width: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1182 | return path |
343
f23d1272de6b
Changed algorithm for compactPath() slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
1183 | head1 = head1[:-1] |
f23d1272de6b
Changed algorithm for compactPath() slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
1184 | head2 = head2[1:] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1185 | path = os.path.join(ellipsis, tail) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1186 | if measure(path) <= width: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1187 | return path |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1188 | while tail: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1189 | path = "{0}{1}".format(ellipsis, tail) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1190 | if measure(path) <= width: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1191 | return path |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1192 | tail = tail[1:] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1193 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1194 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1195 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1196 | def direntries(path, filesonly=False, pattern=None, followsymlinks=True, |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1197 | checkStop=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1198 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1199 | Function returning a list of all files and directories. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1200 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1201 | @param path root of the tree to check |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1202 | @param filesonly flag indicating that only files are wanted |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1203 | @param pattern a filename pattern to check against |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1204 | @param followsymlinks flag indicating whether symbolic links |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1205 | should be followed |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1206 | @param checkStop function to be called to check for a stop |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1207 | @return list of all files and directories in the tree rooted |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1208 | at path. The names are expanded to start with path. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1209 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1210 | if filesonly: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1211 | files = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1212 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1213 | files = [path] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1214 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1215 | entries = os.listdir(path) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1216 | for entry in entries: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1217 | if checkStop and checkStop(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1218 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1219 | |
6303
ec9ebaf206fb
Got rid of the Windows "DotNet"-Hack (i.e. using _ instead of . as first character of special directories).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6292
diff
changeset
|
1220 | if entry in ['.svn', |
ec9ebaf206fb
Got rid of the Windows "DotNet"-Hack (i.e. using _ instead of . as first character of special directories).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6292
diff
changeset
|
1221 | '.hg', |
ec9ebaf206fb
Got rid of the Windows "DotNet"-Hack (i.e. using _ instead of . as first character of special directories).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6292
diff
changeset
|
1222 | '.git', |
ec9ebaf206fb
Got rid of the Windows "DotNet"-Hack (i.e. using _ instead of . as first character of special directories).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6292
diff
changeset
|
1223 | '.ropeproject', |
ec9ebaf206fb
Got rid of the Windows "DotNet"-Hack (i.e. using _ instead of . as first character of special directories).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6292
diff
changeset
|
1224 | '.eric6project']: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1225 | continue |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1226 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1227 | fentry = os.path.join(path, entry) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1228 | if pattern and \ |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
1229 | not os.path.isdir(fentry) and \ |
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
1230 | not fnmatch.fnmatch(entry, pattern): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1231 | # entry doesn't fit the given pattern |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1232 | continue |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1233 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1234 | if os.path.isdir(fentry): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1235 | if os.path.islink(fentry) and not followsymlinks: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1236 | continue |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1237 | files += direntries( |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1238 | fentry, filesonly, pattern, followsymlinks, checkStop) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1239 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1240 | files.append(fentry) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1241 | except OSError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1242 | pass |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1243 | except UnicodeDecodeError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1244 | pass |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1245 | return files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1246 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1247 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1248 | def getDirs(path, excludeDirs): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1249 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1250 | Function returning a list of all directories below path. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1251 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1252 | @param path root of the tree to check |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1253 | @param excludeDirs basename of directories to ignore |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1254 | @return list of all directories found |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1255 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1256 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1257 | names = os.listdir(path) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1258 | except EnvironmentError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1259 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1260 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1261 | dirs = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1262 | for name in names: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1263 | if os.path.isdir(os.path.join(path, name)) and \ |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
1264 | not os.path.islink(os.path.join(path, name)): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1265 | exclude = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1266 | for e in excludeDirs: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1267 | if name.split(os.sep, 1)[0] == e: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1268 | exclude = 1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1269 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1270 | if not exclude: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1271 | dirs.append(os.path.join(path, name)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1272 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1273 | for name in dirs[:]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1274 | if not os.path.islink(name): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1275 | dirs = dirs + getDirs(name, excludeDirs) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1276 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1277 | return dirs |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1278 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1279 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1280 | def getTestFileName(fn): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1281 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1282 | Function to build the filename of a unittest file. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1283 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1284 | The filename for the unittest file is built by prepending |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1285 | the string "test" to the filename passed into this function. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1286 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1287 | @param fn filename basis to be used for the unittest filename (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1288 | @return filename of the corresponding unittest file (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1289 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1290 | dn, fn = os.path.split(fn) |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1291 | return os.path.join(dn, "test{0}".format(fn)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1292 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1293 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1294 | def parseOptionString(s): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1295 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1296 | Function used to convert an option string into a list of options. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1297 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1298 | @param s option string (string or string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1299 | @return list of options (list of strings) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1300 | """ |
768
df2dbf3072be
Fixed an issue with blanks in pathname of eric plug-ins when developing them.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
753
diff
changeset
|
1301 | rx = QRegExp(r"""\s([\w=/-]*"[^"]+"|[\w=/-]*'[^']+'|[^\s]+)""") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1302 | s = re.sub(r"%[A-Z%]", _percentReplacementFunc, s) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1303 | return parseString(s, rx) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1304 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1305 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1306 | def parseEnvironmentString(s): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1307 | """ |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1308 | Function used to convert an environment string into a list of environment |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1309 | settings. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1310 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1311 | @param s environment string (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1312 | @return list of environment settings (list of strings) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1313 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1314 | rx = QRegExp(r"""\s(\w+\+?=[^\s]+|\w+="[^"]+"|\w+='[^']+')""") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1315 | return parseString(s, rx) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1316 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1317 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1318 | def parseString(s, rx): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1319 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1320 | Function used to convert a string into a list. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1321 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1322 | @param s string to be parsed (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1323 | @param rx regex defining the parse pattern (QRegExp) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1324 | @return list of parsed data (list of strings) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1325 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1326 | olist = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1327 | if not s.startswith(' '): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1328 | # prepare the string to fit our pattern |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1329 | s = ' ' + s |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1330 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1331 | pos = rx.indexIn(s) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1332 | while pos != -1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1333 | cs = rx.cap(1) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1334 | if cs.startswith('"') or cs.startswith("'"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1335 | cs = cs[1:-1] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1336 | olist.append(cs) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1337 | pos += rx.matchedLength() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1338 | pos = rx.indexIn(s, pos) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1339 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1340 | return olist |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1341 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1342 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1343 | def _percentReplacementFunc(matchobj): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1344 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1345 | Protected function called for replacing % codes. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1346 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1347 | @param matchobj matchobject for the code |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1348 | @return replacement string |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1349 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1350 | return getPercentReplacement(matchobj.group(0)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1351 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1352 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1353 | def getPercentReplacement(code): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1354 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1355 | Function to get the replacement for code. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1356 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1357 | @param code code indicator (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1358 | @return replacement string (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1359 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1360 | if code in ["C", "%C"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1361 | # column of the cursor of the current editor |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
1362 | aw = e5App().getObject("ViewManager").activeWindow() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1363 | if aw is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1364 | column = -1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1365 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1366 | column = aw.getCursorPosition()[1] |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1367 | return "{0:d}".format(column) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1368 | elif code in ["D", "%D"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1369 | # directory of active editor |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
1370 | aw = e5App().getObject("ViewManager").activeWindow() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1371 | if aw is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1372 | dn = "not_available" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1373 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1374 | fn = aw.getFileName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1375 | if fn is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1376 | dn = "not_available" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1377 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1378 | dn = os.path.dirname(fn) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1379 | return dn |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1380 | elif code in ["F", "%F"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1381 | # filename (complete) of active editor |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
1382 | aw = e5App().getObject("ViewManager").activeWindow() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1383 | if aw is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1384 | fn = "not_available" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1385 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1386 | fn = aw.getFileName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1387 | if fn is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1388 | fn = "not_available" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1389 | return fn |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1390 | elif code in ["H", "%H"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1391 | # home directory |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1392 | return getHomeDir() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1393 | elif code in ["L", "%L"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1394 | # line of the cursor of the current editor |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
1395 | aw = e5App().getObject("ViewManager").activeWindow() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1396 | if aw is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1397 | line = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1398 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1399 | line = aw.getCursorPosition()[0] + 1 |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1400 | return "{0:d}".format(line) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1401 | elif code in ["P", "%P"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1402 | # project path |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
1403 | projectPath = e5App().getObject("Project").getProjectPath() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1404 | if not projectPath: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1405 | projectPath = "not_available" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1406 | return projectPath |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1407 | elif code in ["S", "%S"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1408 | # selected text of the current editor |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
1409 | aw = e5App().getObject("ViewManager").activeWindow() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1410 | if aw is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1411 | text = "not_available" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1412 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1413 | text = aw.selectedText() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1414 | return text |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1415 | elif code in ["U", "%U"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1416 | # username |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1417 | un = getUserName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1418 | if un is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1419 | return code |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1420 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1421 | return un |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1422 | elif code in ["%", "%%"]: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1423 | # the percent sign |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1424 | return "%" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1425 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1426 | # unknown code, just return it |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1427 | return code |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1428 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1429 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1430 | def getPercentReplacementHelp(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1431 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1432 | Function to get the help text for the supported %-codes. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1433 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1434 | @returns help text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1435 | """ |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
1436 | return QCoreApplication.translate( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2997
diff
changeset
|
1437 | "Utilities", |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1438 | """<p>You may use %-codes as placeholders in the string.""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1439 | """ Supported codes are:""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1440 | """<table>""" |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1441 | """<tr><td>%C</td><td>column of the cursor of the current editor""" |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1442 | """</td></tr>""" |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1443 | """<tr><td>%D</td><td>directory of the current editor</td></tr>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1444 | """<tr><td>%F</td><td>filename of the current editor</td></tr>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1445 | """<tr><td>%H</td><td>home directory of the current user</td></tr>""" |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1446 | """<tr><td>%L</td><td>line of the cursor of the current editor""" |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1447 | """</td></tr>""" |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1448 | """<tr><td>%P</td><td>path of the current project</td></tr>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1449 | """<tr><td>%S</td><td>selected text of the current editor</td></tr>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1450 | """<tr><td>%U</td><td>username of the current user</td></tr>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1451 | """<tr><td>%%</td><td>the percent sign</td></tr>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1452 | """</table>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1453 | """</p>""") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1454 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1455 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1456 | def getUserName(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1457 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1458 | Function to get the user name. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1459 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1460 | @return user name (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1461 | """ |
114
f6e7cec11168
Changed the getUserName() function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
1462 | user = getpass.getuser() |
f6e7cec11168
Changed the getUserName() function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
1463 | |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1464 | if isWindowsPlatform(): |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1465 | if not user: |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1466 | return win32_GetUserName() |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1467 | else: |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1468 | if sys.version_info[0] == 2: |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1469 | user = user.decode(locale.getpreferredencoding()) |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2194
diff
changeset
|
1470 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2194
diff
changeset
|
1471 | return user |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1472 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1473 | |
2239
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1474 | def getRealName(): |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1475 | """ |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1476 | Function to get the real name of the user. |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1477 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1478 | @return real name of the user (string) |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1479 | """ |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1480 | if isWindowsPlatform(): |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1481 | return win32_getRealName() |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1482 | else: |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1483 | import pwd |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1484 | user = getpass.getuser() |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1485 | return pwd.getpwnam(user).pw_gecos |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1486 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
1487 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1488 | def getHomeDir(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1489 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
1490 | Function to get a users home directory. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1491 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1492 | @return home directory (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1493 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1494 | return QDir.homePath() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1495 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1496 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1497 | def getPythonLibPath(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1498 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1499 | Function to determine the path to Python's library. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1500 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1501 | @return path to the Python library (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1502 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1503 | pyFullVers = sys.version.split()[0] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1504 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1505 | vl = re.findall("[0-9.]*", pyFullVers)[0].split(".") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1506 | major = vl[0] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1507 | minor = vl[1] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1508 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1509 | pyVers = major + "." + minor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1510 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1511 | if isWindowsPlatform(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1512 | libDir = sys.prefix + "\\Lib" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1513 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1514 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1515 | syslib = sys.lib |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1516 | except AttributeError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1517 | syslib = "lib" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1518 | libDir = sys.prefix + "/" + syslib + "/python" + pyVers |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1519 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1520 | return libDir |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1521 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1522 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1523 | def getPythonVersion(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1524 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1525 | Function to get the Python version (major, minor) as an integer value. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1526 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1527 | @return An integer representing major and minor version number (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1528 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1529 | return sys.hexversion >> 16 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1530 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1531 | |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1532 | def determinePythonVersion(filename, source, editor=None): |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1533 | """ |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1534 | Function to determine the python version of a given file. |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1535 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1536 | @param filename name of the file with extension (str) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1537 | @param source of the file (str) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1538 | @keyparam editor reference to the editor, if the file is opened |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1539 | already (Editor object) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1540 | @return Python version if file is Python2 or Python3 (int) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1541 | """ |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1542 | pyAssignment = {"Python": 2, "Python2": 2, "Python3": 3} |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1543 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1544 | if not editor: |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1545 | viewManager = e5App().getObject('ViewManager') |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1546 | editor = viewManager.getOpenEditor(filename) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1547 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1548 | # Maybe the user has changed the language |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1549 | if editor and editor.getFileType() in pyAssignment: |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1550 | return pyAssignment[editor.getFileType()] |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1551 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1552 | pyVer = 0 |
3457
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1553 | if filename: |
4217
38e8903f9c2f
Fixed two little issue that could lead to a traceback in the code style checker dialog and Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
1554 | if not source: |
38e8903f9c2f
Fixed two little issue that could lead to a traceback in the code style checker dialog and Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
1555 | source = readEncodedFile(filename)[0] |
3457
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1556 | flags = extractFlags(source) |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1557 | ext = os.path.splitext(filename)[1] |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1558 | py2Ext = Preferences.getPython("PythonExtensions") |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1559 | py3Ext = Preferences.getPython("Python3Extensions") |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1560 | project = e5App().getObject('Project') |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1561 | basename = os.path.basename(filename) |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1562 | |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1563 | if "FileType" in flags: |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1564 | pyVer = pyAssignment.get(flags["FileType"], 0) |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1565 | elif project.isOpen() and project.isProjectFile(filename): |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1566 | language = project.getEditorLexerAssoc(basename) |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1567 | if not language: |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1568 | language = Preferences.getEditorLexerAssoc(basename) |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1569 | if language in ['Python2', 'Python3']: |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1570 | pyVer = pyAssignment[language] |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1571 | |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1572 | if pyVer: |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1573 | # Skip the next tests |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1574 | pass |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1575 | elif (Preferences.getProject("DeterminePyFromProject") and |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1576 | project.isOpen() and |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1577 | project.isProjectFile(filename) and |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1578 | ext in py2Ext + py3Ext): |
6735
31e263d49c04
Fixed some code style issues detected by the updated style checker (over-indented lines).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
1579 | pyVer = pyAssignment.get(project.getProjectLanguage(), 0) |
3457
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1580 | elif ext in py2Ext and ext not in py3Ext: |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1581 | pyVer = 2 |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1582 | elif ext in py3Ext and ext not in py2Ext: |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1583 | pyVer = 3 |
4000
e91713926d1a
Fixed an issue in Utilities determining the Python version of a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3968
diff
changeset
|
1584 | elif source: |
3968
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1585 | if isinstance(source, basestring): |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1586 | line0 = source.splitlines()[0] |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1587 | else: |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1588 | line0 = source[0] |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1589 | if line0.startswith("#!"): |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1590 | if "python3" in line0: |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1591 | pyVer = 3 |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1592 | elif "python" in line0: |
19d287451e44
Fixed an issue in Utilities.determinePythonVersion() when handling a spource that had been split into lines already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3833
diff
changeset
|
1593 | pyVer = 2 |
3457
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1594 | |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1595 | if pyVer == 0 and ext in py2Ext + py3Ext: |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1596 | pyVer = sys.version_info[0] |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1597 | |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1598 | if editor and pyVer: |
bfc38662e6fc
Fixed another issue determining the Python variant of a file causing a traceback when a new, empty editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3451
diff
changeset
|
1599 | editor.filetype = "Python{0}".format(pyVer) |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1600 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1601 | return pyVer |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1602 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
1603 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1604 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1605 | # functions for environment handling |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1606 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1607 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1608 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1609 | def getEnvironmentEntry(key, default=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1610 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1611 | Module function to get an environment entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1612 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1613 | @param key key of the requested environment entry (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1614 | @param default value to be returned, if the environment doesn't contain |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1615 | the requested entry (string) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1616 | @return the requested entry or the default value, if the entry wasn't |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1617 | found (string or None) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1618 | """ |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1619 | filterRe = QRegExp("^{0}[ \t]*=".format(key)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1620 | if isWindowsPlatform(): |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1621 | filterRe.setCaseSensitivity(Qt.CaseInsensitive) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1622 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1623 | entries = [e for e in QProcess.systemEnvironment() |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1624 | if filterRe.indexIn(e) != -1] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1625 | if not entries: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1626 | return default |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1627 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1628 | # if there are multiple entries, just consider the first one |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1629 | ename, val = entries[0].split("=", 1) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1630 | return val.strip() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1631 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1632 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1633 | def hasEnvironmentEntry(key): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1634 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1635 | Module function to check, if the environment contains an entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1636 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1637 | @param key key of the requested environment entry (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1638 | @return flag indicating the presence of the requested entry (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1639 | """ |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1640 | filterRe = QRegExp("^{0}[ \t]*=".format(key)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1641 | if isWindowsPlatform(): |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1642 | filterRe.setCaseSensitivity(Qt.CaseInsensitive) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1643 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1644 | entries = [e for e in QProcess.systemEnvironment() |
5604
b047181a4a33
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
1645 | if filterRe.indexIn(e) != -1] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1646 | return len(entries) > 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1647 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1648 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1649 | # Qt utility functions below |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1650 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1651 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1652 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1653 | def generateQtToolName(toolname): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1654 | """ |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1655 | Module function to generate the executable name for a Qt tool like |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1656 | designer. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1657 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1658 | @param toolname base name of the tool (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1659 | @return the Qt tool name without extension (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1660 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1661 | return "{0}{1}{2}".format(Preferences.getQt("QtToolsPrefix4"), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1662 | toolname, |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1663 | Preferences.getQt("QtToolsPostfix4") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
1664 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1665 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1666 | |
1368
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1667 | def getQtMacBundle(toolname): |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1668 | """ |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1669 | Module function to determine the correct Mac OS X bundle name for Qt tools. |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1670 | |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1671 | @param toolname plain name of the tool (e.g. "designer") (string) |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1672 | @return bundle name of the Qt tool (string) |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1673 | """ |
2619
55f6484ad1c3
Tested and completed the Qt binaries path stuff on Mac OS X.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2615
diff
changeset
|
1674 | qtDir = getQtBinariesPath() |
1368
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1675 | bundles = [ |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1676 | os.path.join( |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1677 | qtDir, 'bin', generateQtToolName(toolname.capitalize())) + ".app", |
1368
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1678 | os.path.join(qtDir, 'bin', generateQtToolName(toolname)) + ".app", |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1679 | os.path.join( |
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1680 | qtDir, generateQtToolName(toolname.capitalize())) + ".app", |
1368
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1681 | os.path.join(qtDir, generateQtToolName(toolname)) + ".app", |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1682 | ] |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1683 | for bundle in bundles: |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1684 | if os.path.exists(bundle): |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1685 | return bundle |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1686 | return "" |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1687 | |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1688 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1689 | def prepareQtMacBundle(toolname, version, args): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1690 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1691 | Module function for starting Qt tools that are Mac OS X bundles. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1692 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1693 | @param toolname plain name of the tool (e.g. "designer") (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1694 | @param version indication for the requested version (Qt 4) (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1695 | @param args name of input file for tool, if any (list of strings) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1696 | @return command-name and args for QProcess (tuple) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1697 | """ |
1368
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1698 | if version != 4: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1699 | return ("", []) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1700 | |
1368
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1701 | fullBundle = getQtMacBundle(toolname) |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1702 | if fullBundle == "": |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1703 | return ("", []) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1704 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1705 | newArgs = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1706 | newArgs.append("-a") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1707 | newArgs.append(fullBundle) |
1368
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1708 | if args: |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1709 | newArgs.append("--args") |
4489ee4feb59
Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1348
diff
changeset
|
1710 | newArgs += args |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1711 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1712 | return ("open", newArgs) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1713 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1714 | ############################################################################### |
5696
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1715 | # PyQt utility functions below |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1716 | ############################################################################### |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1717 | |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1718 | |
5878
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1719 | def generatePyQtToolPath(toolname, alternatives=None): |
5696
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1720 | """ |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1721 | Module function to generate the executable path for a PyQt tool. |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1722 | |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1723 | @param toolname base name of the tool |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1724 | @type str |
5878
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1725 | @param alternatives list of alternative tool names to try |
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1726 | @type list of str |
5696
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1727 | @return executable path name of the tool |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1728 | @rtype str |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1729 | """ |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1730 | pyqtVariant = int(toolname[-1]) |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1731 | pyqtToolsPath = getPyQtToolsPath(pyqtVariant) |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1732 | if pyqtToolsPath: |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1733 | exe = os.path.join(pyqtToolsPath, toolname) |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1734 | if isWindowsPlatform(): |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1735 | exe += ".exe" |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1736 | else: |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1737 | if isWindowsPlatform(): |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1738 | exe = getWindowsExecutablePath(toolname) |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1739 | else: |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1740 | exe = toolname |
5878
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1741 | |
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1742 | if not isinpath(exe) and alternatives: |
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1743 | ex_ = generatePyQtToolPath(alternatives[0], alternatives[1:]) |
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1744 | if isinpath(ex_): |
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1745 | exe = ex_ |
74d02cd37185
Extended the search for pyuic[45] to cope with the way openSUSE does it. They name it py[23]uic[45].
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
1746 | |
5696
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1747 | return exe |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1748 | |
68af0e9c57ad
Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
1749 | ############################################################################### |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1750 | # PySide/PySide2 utility functions below |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1751 | ############################################################################### |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1752 | |
2770
fd5ee85f0450
Fixed a few PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
1753 | |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1754 | def generatePySideToolPath(toolname, variant="2"): |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1755 | """ |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1756 | Module function to generate the executable path for a PySide/PySide2 tool. |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1757 | |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1758 | @param toolname base name of the tool |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1759 | @type str |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1760 | @param variant indicator for the PySide variant |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1761 | @type str |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1762 | @return the PySide/PySide2 tool path with extension |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1763 | @rtype str |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1764 | """ |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1765 | assert variant in ("1", "2") |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1766 | |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1767 | if isWindowsPlatform(): |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1768 | pysideInterpreters = checkPyside(variant) |
6348
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1769 | interpreterIndex = sys.version_info[0] - 2 |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1770 | hasPyside = pysideInterpreters[interpreterIndex] |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1771 | # if it isn't the internal interpreter, it has to be the external one |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1772 | if not hasPyside: |
6348
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1773 | interpreterIndex = not interpreterIndex |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1774 | if interpreterIndex: |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1775 | venvName = Preferences.getDebugger("Python3VirtualEnv") |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1776 | else: |
6348
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1777 | venvName = Preferences.getDebugger("Python2VirtualEnv") |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1778 | interpreter = e5App().getObject("VirtualEnvManager")\ |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1779 | .getVirtualenvInterpreter(venvName) |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1780 | prefix = os.path.dirname(interpreter) |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1781 | if toolname in ["pyside-uic", "pyside2-uic"]: |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1782 | return os.path.join(prefix, "Scripts", toolname + '.exe') |
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1783 | else: |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1784 | return os.path.join( |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1785 | prefix, "Lib", "site-packages", |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1786 | "PySide{0}".format("" if variant == "1" else variant), |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1787 | toolname + ".exe") |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1788 | else: |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1789 | if variant == "1": |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1790 | return toolname |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1791 | |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1792 | elif toolname == "pyside2-uic": |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1793 | return toolname |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1794 | else: |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1795 | import distutils.sysconfig |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1796 | return os.path.join(distutils.sysconfig.get_python_lib(True), |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1797 | "PySide2", toolname) |
1173
c826cd21e273
Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1167
diff
changeset
|
1798 | |
1841
2f9e28e56c1b
Change algo for determining the path of PySide tools on Windows to check for the Python3 variant first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1839
diff
changeset
|
1799 | |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1800 | def checkPyside(variant="2"): |
1841
2f9e28e56c1b
Change algo for determining the path of PySide tools on Windows to check for the Python3 variant first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1839
diff
changeset
|
1801 | """ |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1802 | Module function to check the presence of PySide/PySide2. |
1841
2f9e28e56c1b
Change algo for determining the path of PySide tools on Windows to check for the Python3 variant first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1839
diff
changeset
|
1803 | |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1804 | @param variant indicator for the PySide variant |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1805 | @type str |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1806 | @return list of two flags indicating the presence of PySide/PySide2 for |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1807 | Python2 and PySide/PySide2 for Python3 |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1808 | @rtype tuple of (bool, bool) |
1841
2f9e28e56c1b
Change algo for determining the path of PySide tools on Windows to check for the Python3 variant first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1839
diff
changeset
|
1809 | """ |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1810 | assert variant in ("1", "2") |
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1811 | |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1812 | pysideInformation = [] |
6348
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1813 | for venvNameKey in ["Python2VirtualEnv", "Python3VirtualEnv"]: |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1814 | venvName = Preferences.getDebugger(venvNameKey) |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1815 | interpreter = e5App().getObject("VirtualEnvManager")\ |
d6c0b8ab1fc6
Continued to remove all explicit references to Python interpreters and replace them by references to virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6303
diff
changeset
|
1816 | .getVirtualenvInterpreter(venvName) |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1817 | if interpreter == "" or not isinpath(interpreter): |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1818 | hasPyside = False |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1819 | else: |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1820 | hasPyside = False |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1821 | checker = os.path.join(getConfig('ericDir'), |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1822 | "Utilities", "PySideImporter.py") |
6291
94e0e688dcad
PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6289
diff
changeset
|
1823 | args = [checker, "-" + variant] |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1824 | proc = QProcess() |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1825 | proc.setProcessChannelMode(QProcess.MergedChannels) |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1826 | proc.start(interpreter, args) |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1827 | finished = proc.waitForFinished(30000) |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1828 | if finished: |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1829 | if proc.exitCode() == 0: |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1830 | hasPyside = True |
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1831 | pysideInformation.append(hasPyside) |
2319
116c547dedce
Made the PySide support differentiate between Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
1832 | |
4384
04896c4a5a8e
Handling of unicode chars in user name now handled correctly, + importing of PySide doesn't waste memory any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4225
diff
changeset
|
1833 | return pysideInformation |
1841
2f9e28e56c1b
Change algo for determining the path of PySide tools on Windows to check for the Python3 variant first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1839
diff
changeset
|
1834 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1835 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1836 | # Other utility functions below |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1837 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1838 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1839 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1840 | def generateVersionInfo(linesep='\n'): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1841 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1842 | Module function to generate a string with various version infos. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1843 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1844 | @param linesep string to be used to separate lines (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1845 | @return string with version infos (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1846 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1847 | try: |
6364
6a496f0886ad
Prepared the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6348
diff
changeset
|
1848 | try: |
6365
85f8745427a6
Redid the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6364
diff
changeset
|
1849 | from PyQt5 import sip |
6364
6a496f0886ad
Prepared the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6348
diff
changeset
|
1850 | except ImportError: |
6365
85f8745427a6
Redid the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6364
diff
changeset
|
1851 | import sip |
3628
deb5973080a9
Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
1852 | sip_version_str = sip.SIP_VERSION_STR |
deb5973080a9
Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
1853 | except (ImportError, AttributeError): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1854 | sip_version_str = "sip version not available" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1855 | |
6477
096fefd24a26
UserInterface, Utilities: amended the version information of Python to include the bitness of the interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6365
diff
changeset
|
1856 | if sys.maxsize > 2**32: |
096fefd24a26
UserInterface, Utilities: amended the version information of Python to include the bitness of the interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6365
diff
changeset
|
1857 | sizeStr = "64-Bit" |
096fefd24a26
UserInterface, Utilities: amended the version information of Python to include the bitness of the interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6365
diff
changeset
|
1858 | else: |
096fefd24a26
UserInterface, Utilities: amended the version information of Python to include the bitness of the interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6365
diff
changeset
|
1859 | sizeStr = "32-Bit" |
096fefd24a26
UserInterface, Utilities: amended the version information of Python to include the bitness of the interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6365
diff
changeset
|
1860 | |
096fefd24a26
UserInterface, Utilities: amended the version information of Python to include the bitness of the interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6365
diff
changeset
|
1861 | info = "Version Numbers:{0} Python {1}, {2}{3}".format( |
096fefd24a26
UserInterface, Utilities: amended the version information of Python to include the bitness of the interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6365
diff
changeset
|
1862 | linesep, sys.version.split()[0], sizeStr, linesep) |
4225
fbb20e09ce9d
Fixed a visual issue in the error report version infos section.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4217
diff
changeset
|
1863 | info += " Qt {0}{1} PyQt {2}{3}".format( |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1864 | qVersion(), linesep, PYQT_VERSION_STR, linesep) |
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1865 | info += " sip {0}{1} QScintilla {2}{3}".format( |
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1866 | sip_version_str, linesep, QSCINTILLA_VERSION_STR, linesep) |
5736
000ea446ff4b
Prepared the code for Qt > 5.9.99.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5726
diff
changeset
|
1867 | if qVersionTuple() >= (5, 6, 0): |
4813
b91c80b5a815
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1868 | try: |
b91c80b5a815
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1869 | from PyQt5 import QtWebEngineWidgets # __IGNORE_WARNING__ |
b91c80b5a815
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1870 | from WebBrowser.Tools import WebBrowserTools |
b91c80b5a815
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1871 | chromeVersion = WebBrowserTools.getWebEngineVersions()[0] |
b91c80b5a815
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1872 | info += " WebEngine {0}{1}".format(chromeVersion, linesep) |
b91c80b5a815
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1873 | except ImportError: |
b91c80b5a815
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1874 | pass |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
343
diff
changeset
|
1875 | try: |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3628
diff
changeset
|
1876 | from PyQt5.QtWebKit import qWebKitVersion |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1877 | info += " WebKit {0}{1}".format(qWebKitVersion(), linesep) |
381
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
343
diff
changeset
|
1878 | except ImportError: |
64ae9e09d8bc
Extended the Ad-Blocker of the web browser and added capability to configure the text encoding of the web browser (needs Qt >= 4.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
343
diff
changeset
|
1879 | pass |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1880 | info += " {0} {1}{2}".format( |
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1881 | Program, Version, linesep * 2) |
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1882 | info += "Platform: {0}{1}{2}{3}".format( |
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1883 | sys.platform, linesep, sys.version, linesep) |
6289
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
1884 | desktop = desktopName() |
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
1885 | if desktop: |
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
1886 | info += linesep |
f481df37413c
Extended the error report to send the desktop environment in use (Linux only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
1887 | info += "Desktop: {0}{1}".format(desktop, linesep) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1888 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1889 | return info |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1890 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1891 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1892 | def generatePluginsVersionInfo(linesep='\n'): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1893 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1894 | Module function to generate a string with plugins version infos. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1895 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1896 | @param linesep string to be used to separate lines (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1897 | @return string with plugins version infos (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1898 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1899 | infoStr = "" |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
1900 | app = e5App() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1901 | if app is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1902 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1903 | pm = app.getObject("PluginManager") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1904 | versions = {} |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1905 | for info in pm.getPluginInfos(): |
6080
436ac20f7639
Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6075
diff
changeset
|
1906 | versions[info["module_name"]] = info["version"] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1907 | |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1908 | infoStr = "Plugins Version Numbers:{0}".format(linesep) |
6080
436ac20f7639
Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6075
diff
changeset
|
1909 | for pluginModuleName in sorted(versions.keys()): |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1910 | infoStr += " {0} {1}{2}".format( |
6080
436ac20f7639
Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6075
diff
changeset
|
1911 | pluginModuleName, versions[pluginModuleName], linesep) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1912 | except KeyError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1913 | pass |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1914 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1915 | return infoStr |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1916 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1917 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1918 | def generateDistroInfo(linesep='\n'): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1919 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1920 | Module function to generate a string with distribution infos. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1921 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1922 | @param linesep string to be used to separate lines (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1923 | @return string with plugins version infos (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1924 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1925 | infoStr = "" |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
832
diff
changeset
|
1926 | if isLinuxPlatform(): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1927 | releaseList = glob.glob("/etc/*-release") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1928 | if releaseList: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
381
diff
changeset
|
1929 | infoStr = "Distribution Info:{0}".format(linesep) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1930 | infoParas = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1931 | for rfile in releaseList: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1932 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1933 | f = open(rfile, "r") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1934 | lines = f.read().splitlines() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1935 | f.close |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1936 | except IOError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1937 | continue |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1938 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1939 | lines.insert(0, rfile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1940 | infoParas.append(' ' + (linesep + ' ').join(lines)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1941 | infoStr += (linesep + linesep).join(infoParas) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1942 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1943 | return infoStr |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1944 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
1945 | |
2030
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1946 | def toBool(dataStr): |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1947 | """ |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1948 | Module function to convert a string to a boolean value. |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1949 | |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1950 | @param dataStr string to be converted (string) |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1951 | @return converted boolean value (boolean) |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1952 | """ |
2194
0fce40af66b8
Fixed a few PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2087
diff
changeset
|
1953 | if dataStr in ["True", "true", "1", "Yes", "yes"]: |
2030
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1954 | return True |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1955 | elif dataStr in ["False", "false", "0", "No", "no"]: |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1956 | return False |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1957 | else: |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1958 | return bool(dataStr) |
db11a2fe9bbc
Implemented functions to save the UML graphics to disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1914
diff
changeset
|
1959 | |
6545
f669c4c0d39b
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
1960 | |
6544
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1961 | def getSysPath(interpreter): |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1962 | """ |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1963 | Module function to get the Python path (sys.path) of a specific |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1964 | interpreter. |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1965 | |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1966 | @param interpreter Python interpreter executable to get sys.path for |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1967 | @type str |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1968 | @return list containing sys.path of the interpreter; an empty list |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1969 | is returned, if the interpreter is the one used to run eric itself |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1970 | @rtype list of str |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1971 | """ |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1972 | import json |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1973 | |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1974 | sysPath = [] |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1975 | |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1976 | getSysPath = os.path.join( |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1977 | getConfig('ericDir'), "Utilities", "GetSysPath.py") |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1978 | args = [getSysPath] |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1979 | proc = QProcess() |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1980 | proc.setProcessChannelMode(QProcess.MergedChannels) |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1981 | proc.start(interpreter, args) |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1982 | finished = proc.waitForFinished(30000) |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1983 | if finished: |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1984 | if proc.exitCode() == 0: |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1985 | text = proc.readAllStandardOutput() |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1986 | sysPathResult = str(text, "utf-8", "replace").strip() |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1987 | try: |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1988 | sysPath = json.loads(sysPathResult) |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1989 | if "" in sysPath: |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1990 | sysPath.remove("") |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1991 | except (TypeError, ValueError): |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1992 | # ignore faulty results and return empty list |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1993 | pass |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1994 | |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1995 | return sysPath |
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6495
diff
changeset
|
1996 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1997 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1998 | # posix compatibility functions below |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
1999 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2000 | |
114
f6e7cec11168
Changed the getUserName() function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
2001 | # None right now |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2002 | |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
2003 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2004 | # win32 compatibility functions below |
2997
7f0ef975da9e
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
2005 | ############################################################################### |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2006 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
2007 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2008 | def win32_Kill(pid): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2009 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2010 | Function to provide an os.kill equivalent for Win32. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2011 | |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
2012 | @param pid process id (integer) |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
2013 | @return result of the kill (boolean) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2014 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2015 | import win32api |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2016 | handle = win32api.OpenProcess(1, 0, pid) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2017 | return (0 != win32api.TerminateProcess(handle, 0)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2018 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
2019 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2020 | def win32_GetUserName(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2021 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2022 | Function to get the user name under Win32. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2023 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2024 | @return user name (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2025 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2026 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2027 | import win32api |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2028 | return win32api.GetUserName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2029 | except ImportError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2030 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2031 | u = getEnvironmentEntry('USERNAME') |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2032 | except KeyError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2033 | u = getEnvironmentEntry('username', None) |
69
2e78b0aab87e
Fixed a problem in Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
56
diff
changeset
|
2034 | return u |
2239
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2035 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2036 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2037 | def win32_getRealName(): |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2038 | """ |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2039 | Function to get the user's real name (aka. display name) under Win32. |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2040 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2041 | @return real name of the current user (string) |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2042 | """ |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2043 | import ctypes |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2044 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2045 | GetUserNameEx = ctypes.windll.secur32.GetUserNameExW |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2046 | NameDisplay = 3 |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2047 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2048 | size = ctypes.pointer(ctypes.c_ulong(0)) |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2049 | GetUserNameEx(NameDisplay, None, size) |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2050 | |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2051 | nameBuffer = ctypes.create_unicode_buffer(size.contents.value) |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2052 | GetUserNameEx(NameDisplay, nameBuffer, size) |
a47b50e80a20
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
2053 | return nameBuffer.value |