src/eric7/eric7_api.py

Wed, 08 Nov 2023 10:03:23 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 08 Nov 2023 10:03:23 +0100
branch
eric7
changeset 10294
a055e1b82af8
parent 10065
de4ae767b0e3
child 10295
e0e7f81cc164
permissions
-rw-r--r--

eric7_api.py
- Replaced the deprecated 'optparse' by 'argparse'.

15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 #!/usr/bin/env python3
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
4 # Copyright (c) 2003 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5 #
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 """
7960
e8fc383322f7 Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
8 eric API Generator.
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 This is the main Python script of the API generator. It is
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 this script that gets called via the API generation interface.
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 This script can be used via the commandline as well.
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 """
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
15 import argparse
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
16 import fnmatch
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
17 import glob
6949
a5255f1ba3f0 setup.py: continued implementing support for setup.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
18 import os
a5255f1ba3f0 setup.py: continued implementing support for setup.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
19 import sys
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
21 from eric7 import DocumentationTools
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9364
diff changeset
22 from eric7.DocumentationTools.APIGenerator import APIGenerator
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
23 from eric7.SystemUtilities import FileSystemUtilities, OSUtilities
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9364
diff changeset
24 from eric7.UI.Info import Version
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
25 from eric7.Utilities import ModuleParser
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
27
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
28 def createArgumentParser():
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
30 Function to create an argument parser.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
32 @return created argument parser object
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
33 @rtype argparse.ArgumentParser
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
35 parser = argparse.ArgumentParser(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
36 description=(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
37 "Create API files to be used by 'QScintilla' or the 'eric Assistant'"
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
38 " plugin."
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
39 ),
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
40 epilog="Copyright (c) 2004 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
41 add_help=False,
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
42 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
43
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
44 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
45 "file",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
46 nargs="*",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
47 help="'file' can be either python modules, package directories or ordinary"
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
48 " directories.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
49 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
50 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
51 "-b",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
52 "--base",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
53 default="",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
54 help="Use the given name as the name of the base package.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
55 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
56 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
57 "-e",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
58 "--eol",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
59 choices=["cr", "lf", "crlf"],
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
60 help="Use the given eol type to terminate lines.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
61 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
62 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
63 "--exclude-file",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
64 action="append",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
65 default=[],
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
66 help="Specify a filename pattern of files to be excluded. This option may be"
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
67 " repeated multiple times.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
68 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
69 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
70 "-h", "--help", action="store_true", help="Show this help and exit."
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
71 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
72 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
73 "-i",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
74 "--ignore",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
75 action="store_true",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
76 help="Ignore the set of builtin modules.",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
77 )
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
78 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
79 "-l",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
80 "--language",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
81 action="append",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
82 default=[],
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
83 choices=DocumentationTools.supportedExtensionsDictForApis.keys(),
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
84 help="Generate an API file for the given programming language. The default"
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
85 " is 'Python3'. This option may be repeated multiple times.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
86 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
87 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
88 "-o",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
89 "--output",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
90 default="",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
91 help="Write the API information to the named file. A '%%L'" # noqa: M601
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
92 " placeholder is replaced by the language of the API file (see --language).",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
93 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
94 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
95 "-p",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
96 "--private",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
97 action="store_true",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
98 help="Include private methods and functions.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
99 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
100 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
101 "-R",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
102 "-r",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
103 "--recursive",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
104 action="store_true",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
105 help="Perform a recursive search for source files.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
106 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
107 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
108 "-t",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
109 "--extension",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
110 action="append",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
111 default=[],
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
112 help="Add the given extension to the list of file extensions. This option may"
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
113 " be given multiple times.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
114 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
115 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
116 "-V",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
117 "--version",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
118 action="store_true",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
119 help="Show version information and exit.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
120 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
121 parser.add_argument(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
122 "-x",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
123 "--exclude",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
124 action="append",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
125 default=[],
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
126 help="Specify a directory basename to be excluded. This option may be repeated"
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
127 " multiple times.",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
128 )
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
129
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
130 return parser
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
132
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 def version():
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 Function to show the version information.
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 """
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
137 print(
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
138 """eric7_api {0}\n"""
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
139 """\n"""
7960
e8fc383322f7 Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
140 """eric API generator.\n"""
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
141 """\n"""
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
142 """Copyright (c) 2004 - 2023 Detlev Offenbach"""
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
143 """ <detlev@die-offenbachs.de>\n"""
9674
43dd357b3bff Modified the pyproject.toml file to include a reference to the license file and changed its extension to be .txt.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
144 """This is free software; see LICENSE.txt for copying"""
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
145 """ conditions.\n"""
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
146 """There is NO warranty; not even for MERCHANTABILITY or FITNESS"""
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
147 """ FOR A\n"""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
148 """PARTICULAR PURPOSE.""".format(Version)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
149 )
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 def main():
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 Main entry point into the application.
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 global supportedExtensions
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
158 parser = createArgumentParser()
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
159 args = parser.parse_args()
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
160
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
161 if args.help:
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
162 parser.print_help()
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
163 sys.exit(1)
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
164 elif args.version:
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
165 version()
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
166 sys.exit(1)
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
167
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
168 if not args.file:
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
169 parser.error(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
170 "At least one file, Python module, Python package or directory must be"
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
171 " given."
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172 )
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
173
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
174 if not args.output:
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
175 parser.error("No output file given.")
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
177 excludeDirs = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
178 ".svn",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
179 ".hg",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
180 ".git",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
181 ".ropeproject",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
182 ".eric7project",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
183 "dist",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
184 "build",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
185 "doc",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186 "docs",
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
187 ] + args.exclude
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
188 excludePatterns = args.exclude_file
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
189 outputFileName = args.output
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
190 recursive = args.recursive
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
191 basePackage = args.base
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
192 includePrivate = args.private
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
193 progLanguages = args.language
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
194 extensions = [
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
195 ext if ext.startswith(".") else ".{0}".format(ext) for ext in args.extension
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
196 ]
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
197 ignoreBuiltinModules = args.ignore
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
198 newline = {
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
199 "cr": "\r",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
200 "lf": "\n",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
201 "crlf": "\r\n",
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
202 }[args.eol]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 if len(progLanguages) == 0:
40
c2e5472b112c Changed some code to adjust eric5 to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
205 progLanguages = ["Python3"]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
206
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 for progLanguage in sorted(progLanguages):
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 basename = ""
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 apis = []
1342
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
210 basesDict = {}
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
212 supportedExtensions = DocumentationTools.supportedExtensionsDictForApis[
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213 progLanguage
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
214 ]
9364
83dea9e54ff4 Modified ModuleParser to deal with Python stub files (*.pyi) as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
215 supportedExtensions.extend(
83dea9e54ff4 Modified ModuleParser to deal with Python stub files (*.pyi) as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
216 e for e in extensions if e not in supportedExtensions
83dea9e54ff4 Modified ModuleParser to deal with Python stub files (*.pyi) as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
217 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
218
8408
a8eb084b974e eric7_api: added code to append the '.api' file extension if not given by the user.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8314
diff changeset
219 if not outputFileName.endswith(".api"):
a8eb084b974e eric7_api: added code to append the '.api' file extension if not given by the user.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8314
diff changeset
220 # append the .api extension, if not given by the user
a8eb084b974e eric7_api: added code to append the '.api' file extension if not given by the user.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8314
diff changeset
221 outputFileName += ".api"
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 if "%L" in outputFileName:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 outputFile = outputFileName.replace("%L", progLanguage)
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 else:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 if len(progLanguages) == 1:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 outputFile = outputFileName
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 else:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 root, ext = os.path.splitext(outputFileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
229 outputFile = "{0}-{1}{2}".format(root, progLanguage.lower(), ext)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
230 basesFile = os.path.splitext(outputFile)[0] + ".bas"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
231
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
232 for argsfile in args.file:
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
233 if os.path.isdir(argsfile):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
234 if os.path.exists(
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
235 os.path.join(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
236 argsfile, FileSystemUtilities.joinext("__init__", ".py")
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
237 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238 ):
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
239 basename = os.path.dirname(argsfile)
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
240 if argsfile == ".":
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 sys.stderr.write("The directory '.' is a package.\n")
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
242 sys.stderr.write(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
243 "Please repeat the call giving its real name.\n"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
244 )
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 sys.stderr.write("Ignoring the directory.\n")
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 continue
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 else:
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
248 basename = argsfile
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 if basename:
433
988006cb898f Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
250 basename = "{0}{1}".format(basename, os.sep)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
251
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
252 if recursive and not os.path.islink(argsfile):
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
253 names = [argsfile] + FileSystemUtilities.getDirs(
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
254 argsfile, excludeDirs
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
255 )
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 else:
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
257 names = [argsfile]
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 else:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 basename = ""
10294
a055e1b82af8 eric7_api.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10065
diff changeset
260 names = [argsfile]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
261
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 for filename in sorted(names):
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 inpackage = False
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 if os.path.isdir(filename):
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 files = []
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 for ext in supportedExtensions:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
267 files.extend(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
268 glob.glob(
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
269 os.path.join(
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
270 filename, FileSystemUtilities.joinext("*", ext)
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
271 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
272 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
273 )
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
274 initFile = os.path.join(
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
275 filename, FileSystemUtilities.joinext("__init__", ext)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
276 )
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 if initFile in files:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 inpackage = True
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 files.remove(initFile)
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 files.insert(0, initFile)
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: 433
diff changeset
281 elif progLanguage != "Python3":
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 # assume package
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 inpackage = True
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 else:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
285 if OSUtilities.isWindowsPlatform() and glob.has_magic(filename):
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 files = glob.glob(filename)
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 else:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 files = [filename]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
289
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 for file in files:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 skipIt = False
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 for pattern in excludePatterns:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 if fnmatch.fnmatch(os.path.basename(file), pattern):
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 skipIt = True
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 break
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 if skipIt:
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
298
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 try:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9364
diff changeset
300 module = ModuleParser.readModule(
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2997
diff changeset
301 file,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
302 basename=basename,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
303 inpackage=inpackage,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
304 ignoreBuiltinModules=ignoreBuiltinModules,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
305 )
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 apiGenerator = APIGenerator(module)
10065
de4ae767b0e3 Corrected and checked some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9674
diff changeset
307 api = apiGenerator.genAPI(basePackage, includePrivate)
1342
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
308 bases = apiGenerator.genBases(includePrivate)
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
309 except OSError as v:
433
988006cb898f Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
310 sys.stderr.write("{0} error: {1}\n".format(file, v[1]))
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 continue
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 except ImportError as v:
433
988006cb898f Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
313 sys.stderr.write("{0} error: {1}\n".format(file, v))
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
315
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 for apiEntry in api:
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
317 if apiEntry not in apis:
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 apis.append(apiEntry)
1342
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
319 for basesEntry in bases:
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
320 if bases[basesEntry]:
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
321 basesDict[basesEntry] = bases[basesEntry][:]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
322 sys.stdout.write("-- {0} -- {1} ok\n".format(progLanguage, file))
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 outdir = os.path.dirname(outputFile)
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 if outdir and not os.path.exists(outdir):
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 os.makedirs(outdir)
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
328 with open(outputFile, "w", encoding="utf-8", newline=newline) as out:
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7781
diff changeset
329 out.write("\n".join(sorted(apis)) + "\n")
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
330 except OSError as v:
433
988006cb898f Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
331 sys.stderr.write("{0} error: {1}\n".format(outputFile, v[1]))
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 sys.exit(3)
1342
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
333 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
334 with open(basesFile, "w", encoding="utf-8", newline=newline) as out:
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7781
diff changeset
335 for baseEntry in sorted(basesDict.keys()):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
336 out.write(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
337 "{0} {1}\n".format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
338 baseEntry, " ".join(sorted(basesDict[baseEntry]))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
339 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
340 )
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
341 except OSError as v:
1342
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
342 sys.stderr.write("{0} error: {1}\n".format(basesFile, v[1]))
30226d5a7ffb Added code to write base class information to be used by the eric assistant plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
343 sys.exit(3)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
344
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
345 sys.stdout.write("\nDone.\n")
15
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 sys.exit(0)
f6ccc31d6e72 Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
348
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
349 if __name__ == "__main__":
18
3b1f5d872fd7 More renaming to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
350 main()
4566
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4543
diff changeset
351
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4543
diff changeset
352 #
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4543
diff changeset
353 # eflag: noqa = M801

eric ide

mercurial