robotcode 1.3.0.dev6__tar.gz → 1.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/CHANGELOG.md +58 -1
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/PKG-INFO +51 -20
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/README.md +35 -4
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/hatch.toml +3 -3
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/pyproject.toml +17 -17
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/src/robotcode/cli/__init__.py +39 -6
- robotcode-1.5.0/src/robotcode/cli/__version__.py +1 -0
- robotcode-1.3.0.dev6/src/robotcode/cli/__version__.py +0 -1
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/.gitignore +0 -0
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/LICENSE.txt +0 -0
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/src/robotcode/cli/__main__.py +0 -0
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/src/robotcode/cli/commands/__init__.py +0 -0
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/src/robotcode/cli/commands/config.py +0 -0
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/src/robotcode/cli/commands/profiles.py +0 -0
- {robotcode-1.3.0.dev6 → robotcode-1.5.0}/src/robotcode/cli/py.typed +0 -0
@@ -2,7 +2,57 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
|
4
4
|
|
5
|
-
## [
|
5
|
+
## [1.5.0](https://github.com/robotcodedev/robotcode/compare/v1.4.0..v1.5.0) - 2025-07-07
|
6
|
+
|
7
|
+
### Features
|
8
|
+
|
9
|
+
- **cli:** Add new command line switch `--log-config` to specify a python json log configuration ([31a11f2](https://github.com/robotcodedev/robotcode/commit/31a11f27b96fba6c879218c9b13cdea5f8bb89c3))
|
10
|
+
- **jsonrpcl:** Simplify error message formatting in JsonRPCProtocol for better readability in clients ([75614b0](https://github.com/robotcodedev/robotcode/commit/75614b05820f57c98c416949abced03970e0b429))
|
11
|
+
|
12
|
+
|
13
|
+
### Refactor
|
14
|
+
|
15
|
+
- **langserver:** Remove some unused code ([fa429a5](https://github.com/robotcodedev/robotcode/commit/fa429a502e1901cfc0d4126c4047994a5fd5ee39))
|
16
|
+
- **langserver:** Simplify keyword renaming ([3836362](https://github.com/robotcodedev/robotcode/commit/3836362073599bcc32d9cb38425645d34d681f91))
|
17
|
+
- **langserver:** Simplify variable renaming ([779fd70](https://github.com/robotcodedev/robotcode/commit/779fd703339ce81124f03f08b73e2639d0729212))
|
18
|
+
|
19
|
+
|
20
|
+
### Testing
|
21
|
+
|
22
|
+
- Update regression tests for RF 7.3.2 ([fd1b89a](https://github.com/robotcodedev/robotcode/commit/fd1b89ac17b1f378bc66c6d944afc92252f13ecf))
|
23
|
+
|
24
|
+
|
25
|
+
## [1.4.0](https://github.com/robotcodedev/robotcode/compare/v1.3.0..v1.4.0) - 2025-06-30
|
26
|
+
|
27
|
+
### Bug Fixes
|
28
|
+
|
29
|
+
- **langserver:** Remove timing messages from diagnostics in log ([c908485](https://github.com/robotcodedev/robotcode/commit/c90848514f713805fa330ccfc4344cc8775d0118))
|
30
|
+
|
31
|
+
- if you want to see it again, then you have to enable the log output for the language server
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
### Documentation
|
36
|
+
|
37
|
+
- Update Python and Robot Framework version requirements and deprecation notice ([6396b7e](https://github.com/robotcodedev/robotcode/commit/6396b7ef76fd8d41c3d79afc0bab871342eb8622))
|
38
|
+
|
39
|
+
|
40
|
+
### Features
|
41
|
+
|
42
|
+
- **langserver:** Improve and unify Robocop 6 configuration loading ([b3c5dd3](https://github.com/robotcodedev/robotcode/commit/b3c5dd3c50308116fc1e1de7adc156a6086cd8fd))
|
43
|
+
|
44
|
+
- Enhance configuration loading process
|
45
|
+
- Add notifications for faulty configurations
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
### Refactor
|
50
|
+
|
51
|
+
- Simpify some logging code ([5ea1ca1](https://github.com/robotcodedev/robotcode/commit/5ea1ca1c77269df8ebcc70e9a86e77a89d9249a6))
|
52
|
+
- Switch lint environment to python 3.10 and corrected all linting errors and warnings ([19a2632](https://github.com/robotcodedev/robotcode/commit/19a26325454ba1b5e53b8548a16c0a3fbe8d5422))
|
53
|
+
|
54
|
+
|
55
|
+
## [1.3.0](https://github.com/robotcodedev/robotcode/compare/v1.2.0..v1.3.0) - 2025-06-16
|
6
56
|
|
7
57
|
### Bug Fixes
|
8
58
|
|
@@ -10,8 +60,10 @@ All notable changes to this project will be documented in this file. See [conven
|
|
10
60
|
- **cli:** Corrected monkey patching for click>=8.2.0 ([425e64d](https://github.com/robotcodedev/robotcode/commit/425e64ddf8c6a9a54ec6fe3d801253c2e3a2156a))
|
11
61
|
- **debugger:** Improve termination handling ([a890264](https://github.com/robotcodedev/robotcode/commit/a890264547341c190eaef5e0240f0cc81deb3c70))
|
12
62
|
- **formatting:** Improve message clarity for robocop formatting ([f71d15d](https://github.com/robotcodedev/robotcode/commit/f71d15df40f8bfd1f9f325d35e1ba73bcf16c9aa))
|
63
|
+
- **imports:** Corrected caching of already loaded resources ([4606c4f](https://github.com/robotcodedev/robotcode/commit/4606c4ff12906b54edfeb1e29927f61b2130332c))
|
13
64
|
- **langserver:** Implemented support for robocop >= 6 checks ([8dc2f3c](https://github.com/robotcodedev/robotcode/commit/8dc2f3ce94bf6c6a771b6ffcc6a969ae617397e6))
|
14
65
|
- **langserver:** Disable on-demand startup for the documentation server to ensure it launches on initialization ([81d63fa](https://github.com/robotcodedev/robotcode/commit/81d63faa5f0cfbcf95e293c53daeb80840117438))
|
66
|
+
- **listener:** Add 'robocop.toml' to monitored project files to allow detection of changes in robocop configuration ([987ea42](https://github.com/robotcodedev/robotcode/commit/987ea421f22b133851a462b921b7c3e1e5802a4a))
|
15
67
|
- **net:** Move SO_REUSEADDR socket option setting to the correct location to speeding up port discovery and preventing bind failures. ([b54cc93](https://github.com/robotcodedev/robotcode/commit/b54cc9300abb4c7060bfa94cb2e1bfa272936eda))
|
16
68
|
- **textmate:** Corrected highlightning of comments in variable section ([5204afb](https://github.com/robotcodedev/robotcode/commit/5204afbfdd7f745c3e00ebc8d59fa3ad992ec0a8))
|
17
69
|
- **textmate:** Enhance variable assignment handling ([7333eb9](https://github.com/robotcodedev/robotcode/commit/7333eb9b2f46e2af25583af2d5346b4b92dd1137))
|
@@ -59,6 +111,11 @@ All notable changes to this project will be documented in this file. See [conven
|
|
59
111
|
- **vscode:** Some refactorings and code cleanup ([d8eac38](https://github.com/robotcodedev/robotcode/commit/d8eac3808e23320fcb7efa92e85c574988d1a7ef))
|
60
112
|
|
61
113
|
|
114
|
+
### Testing
|
115
|
+
|
116
|
+
- Update regression tests for RF 7.3.1 ([93bef41](https://github.com/robotcodedev/robotcode/commit/93bef414711e069fe097251892e3cc63fccf6392))
|
117
|
+
|
118
|
+
|
62
119
|
## [1.2.0](https://github.com/robotcodedev/robotcode/compare/v1.1.0..v1.2.0) - 2025-05-07
|
63
120
|
|
64
121
|
### Bug Fixes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: robotcode
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.5.0
|
4
4
|
Summary: Command line interface for RobotCode
|
5
5
|
Project-URL: Homepage, https://robotcode.io
|
6
6
|
Project-URL: Donate, https://opencollective.com/robotcode
|
@@ -34,39 +34,39 @@ Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
|
|
34
34
|
Classifier: Topic :: Utilities
|
35
35
|
Classifier: Typing :: Typed
|
36
36
|
Requires-Python: >=3.8
|
37
|
-
Requires-Dist: robotcode-core==1.
|
38
|
-
Requires-Dist: robotcode-plugin==1.
|
39
|
-
Requires-Dist: robotcode-robot==1.
|
37
|
+
Requires-Dist: robotcode-core==1.5.0
|
38
|
+
Requires-Dist: robotcode-plugin==1.5.0
|
39
|
+
Requires-Dist: robotcode-robot==1.5.0
|
40
40
|
Provides-Extra: all
|
41
41
|
Requires-Dist: docutils; extra == 'all'
|
42
42
|
Requires-Dist: pyyaml>=5.4; extra == 'all'
|
43
43
|
Requires-Dist: rich; extra == 'all'
|
44
|
-
Requires-Dist: robotcode-analyze==1.
|
45
|
-
Requires-Dist: robotcode-debugger==1.
|
46
|
-
Requires-Dist: robotcode-language-server==1.
|
47
|
-
Requires-Dist: robotcode-repl-server==1.
|
48
|
-
Requires-Dist: robotcode-repl==1.
|
49
|
-
Requires-Dist: robotcode-runner==1.
|
44
|
+
Requires-Dist: robotcode-analyze==1.5.0; extra == 'all'
|
45
|
+
Requires-Dist: robotcode-debugger==1.5.0; extra == 'all'
|
46
|
+
Requires-Dist: robotcode-language-server==1.5.0; extra == 'all'
|
47
|
+
Requires-Dist: robotcode-repl-server==1.5.0; extra == 'all'
|
48
|
+
Requires-Dist: robotcode-repl==1.5.0; extra == 'all'
|
49
|
+
Requires-Dist: robotcode-runner==1.5.0; extra == 'all'
|
50
50
|
Requires-Dist: robotframework-robocop>=2.0.0; extra == 'all'
|
51
51
|
Requires-Dist: robotframework-tidy>=2.0.0; extra == 'all'
|
52
52
|
Provides-Extra: analyze
|
53
|
-
Requires-Dist: robotcode-analyze==1.
|
53
|
+
Requires-Dist: robotcode-analyze==1.5.0; extra == 'analyze'
|
54
54
|
Provides-Extra: colored
|
55
55
|
Requires-Dist: rich; extra == 'colored'
|
56
56
|
Provides-Extra: debugger
|
57
|
-
Requires-Dist: robotcode-debugger==1.
|
57
|
+
Requires-Dist: robotcode-debugger==1.5.0; extra == 'debugger'
|
58
58
|
Provides-Extra: languageserver
|
59
|
-
Requires-Dist: robotcode-language-server==1.
|
59
|
+
Requires-Dist: robotcode-language-server==1.5.0; extra == 'languageserver'
|
60
60
|
Provides-Extra: lint
|
61
61
|
Requires-Dist: robotframework-robocop>=2.0.0; extra == 'lint'
|
62
62
|
Provides-Extra: repl
|
63
|
-
Requires-Dist: robotcode-repl==1.
|
63
|
+
Requires-Dist: robotcode-repl==1.5.0; extra == 'repl'
|
64
64
|
Provides-Extra: replserver
|
65
|
-
Requires-Dist: robotcode-repl-server==1.
|
65
|
+
Requires-Dist: robotcode-repl-server==1.5.0; extra == 'replserver'
|
66
66
|
Provides-Extra: rest
|
67
67
|
Requires-Dist: docutils; extra == 'rest'
|
68
68
|
Provides-Extra: runner
|
69
|
-
Requires-Dist: robotcode-runner==1.
|
69
|
+
Requires-Dist: robotcode-runner==1.5.0; extra == 'runner'
|
70
70
|
Provides-Extra: tidy
|
71
71
|
Requires-Dist: robotframework-tidy>=2.0.0; extra == 'tidy'
|
72
72
|
Provides-Extra: yaml
|
@@ -130,13 +130,44 @@ With RobotCode, you can focus on building and testing your automation workflows
|
|
130
130
|
|
131
131
|
## Requirements
|
132
132
|
|
133
|
-
|
134
|
-
-
|
133
|
+
### Python and Robot Framework Versions
|
134
|
+
- Python 3.10 or newer
|
135
|
+
- Robot Framework 5.0 or newer
|
135
136
|
|
136
137
|
### IDE Support
|
137
138
|
|
138
|
-
- Visual Studio Code 1.
|
139
|
-
- PyCharm
|
139
|
+
- Visual Studio Code 1.99 or newer
|
140
|
+
- PyCharm 2025.1 or newer or IntelliJ IDEA 2025.1 or newer
|
141
|
+
|
142
|
+
### Deprecated Python and Robot Framework Versions
|
143
|
+
|
144
|
+
**⚠️ DEPRECATION WARNING:**
|
145
|
+
Support for Python 3.8, 3.9, and Robot Framework 4.1 is deprecated and will be removed in a future release. To ensure compatibility and benefit from ongoing improvements, please upgrade to Python 3.10 or later and Robot Framework 5.0 or later.
|
146
|
+
|
147
|
+
**Python Version Requirements:**
|
148
|
+
Although Robot Framework still supports Python 3.8 and 3.9, RobotCode requires Python 3.10 or newer due to its use of more modern libraries and features. Many key tools in the ecosystem—such as robocop and the Browser library—have already dropped support for Python 3.8, which is no longer maintained. Python 3.9 will reach end-of-life on October 5, 2025.
|
149
|
+
|
150
|
+
**Robot Framework Version Requirements:**
|
151
|
+
Robot Framework 4.1 is outdated. Given the regular release cadence of Robot Framework—typically two major versions per year—maintaining support for older versions introduces significant overhead. That effort is better spent on supporting current and upcoming features.
|
152
|
+
|
153
|
+
**Compatibility and Limitations:**
|
154
|
+
RobotCode currently remains compatible with Python 3.8+ and Robot Framework 4.1+, but with important limitations:
|
155
|
+
• New features may not be available for older versions.
|
156
|
+
• Development and testing efforts are focused on newer versions.
|
157
|
+
|
158
|
+
**Why Python 3.10:**
|
159
|
+
After Python 3.9 reaches end-of-life, RobotCode will start using Python 3.10+ features that are not backward-compatible. Python 3.10 introduces several important improvements, including:
|
160
|
+
• Structural pattern matching
|
161
|
+
• More informative error messages
|
162
|
+
• Simplified type hints using the | operator
|
163
|
+
• Performance enhancements
|
164
|
+
|
165
|
+
These capabilities enable cleaner, more efficient code and improved developer experience.
|
166
|
+
|
167
|
+
**Recommendation:**
|
168
|
+
To get the most out of RobotCode, we recommend using:
|
169
|
+
• Python 3.10 or newer
|
170
|
+
• Robot Framework 5.0 or newer
|
140
171
|
|
141
172
|
|
142
173
|
## Getting Started
|
@@ -55,13 +55,44 @@ With RobotCode, you can focus on building and testing your automation workflows
|
|
55
55
|
|
56
56
|
## Requirements
|
57
57
|
|
58
|
-
|
59
|
-
-
|
58
|
+
### Python and Robot Framework Versions
|
59
|
+
- Python 3.10 or newer
|
60
|
+
- Robot Framework 5.0 or newer
|
60
61
|
|
61
62
|
### IDE Support
|
62
63
|
|
63
|
-
- Visual Studio Code 1.
|
64
|
-
- PyCharm
|
64
|
+
- Visual Studio Code 1.99 or newer
|
65
|
+
- PyCharm 2025.1 or newer or IntelliJ IDEA 2025.1 or newer
|
66
|
+
|
67
|
+
### Deprecated Python and Robot Framework Versions
|
68
|
+
|
69
|
+
**⚠️ DEPRECATION WARNING:**
|
70
|
+
Support for Python 3.8, 3.9, and Robot Framework 4.1 is deprecated and will be removed in a future release. To ensure compatibility and benefit from ongoing improvements, please upgrade to Python 3.10 or later and Robot Framework 5.0 or later.
|
71
|
+
|
72
|
+
**Python Version Requirements:**
|
73
|
+
Although Robot Framework still supports Python 3.8 and 3.9, RobotCode requires Python 3.10 or newer due to its use of more modern libraries and features. Many key tools in the ecosystem—such as robocop and the Browser library—have already dropped support for Python 3.8, which is no longer maintained. Python 3.9 will reach end-of-life on October 5, 2025.
|
74
|
+
|
75
|
+
**Robot Framework Version Requirements:**
|
76
|
+
Robot Framework 4.1 is outdated. Given the regular release cadence of Robot Framework—typically two major versions per year—maintaining support for older versions introduces significant overhead. That effort is better spent on supporting current and upcoming features.
|
77
|
+
|
78
|
+
**Compatibility and Limitations:**
|
79
|
+
RobotCode currently remains compatible with Python 3.8+ and Robot Framework 4.1+, but with important limitations:
|
80
|
+
• New features may not be available for older versions.
|
81
|
+
• Development and testing efforts are focused on newer versions.
|
82
|
+
|
83
|
+
**Why Python 3.10:**
|
84
|
+
After Python 3.9 reaches end-of-life, RobotCode will start using Python 3.10+ features that are not backward-compatible. Python 3.10 introduces several important improvements, including:
|
85
|
+
• Structural pattern matching
|
86
|
+
• More informative error messages
|
87
|
+
• Simplified type hints using the | operator
|
88
|
+
• Performance enhancements
|
89
|
+
|
90
|
+
These capabilities enable cleaner, more efficient code and improved developer experience.
|
91
|
+
|
92
|
+
**Recommendation:**
|
93
|
+
To get the most out of RobotCode, we recommend using:
|
94
|
+
• Python 3.10 or newer
|
95
|
+
• Robot Framework 5.0 or newer
|
65
96
|
|
66
97
|
|
67
98
|
## Getting Started
|
@@ -61,7 +61,7 @@ python = "3.8"
|
|
61
61
|
post-install-commands = ["pip install -U -e {root:uri}/../robotframework"]
|
62
62
|
|
63
63
|
[envs.devel]
|
64
|
-
python = "3.
|
64
|
+
python = "3.10"
|
65
65
|
|
66
66
|
[[envs.devel.matrix]]
|
67
67
|
python = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
|
@@ -131,7 +131,7 @@ matrix.rf.dependencies = [
|
|
131
131
|
]
|
132
132
|
|
133
133
|
[envs.lint]
|
134
|
-
python = "3.
|
134
|
+
python = "3.10"
|
135
135
|
#skip-install = true
|
136
136
|
#extra-dependencies = ["tomli>=2.0.0"]
|
137
137
|
extra-dependencies = [
|
@@ -158,7 +158,7 @@ platform.windows.scripts = [
|
|
158
158
|
[envs.build]
|
159
159
|
skip-install = true
|
160
160
|
detached = true
|
161
|
-
python = "3.
|
161
|
+
python = "3.10"
|
162
162
|
dependencies = ["GitPython", "semantic-version", "commitizen", "git-cliff"]
|
163
163
|
|
164
164
|
[envs.build.scripts]
|
@@ -51,9 +51,9 @@ classifiers = [
|
|
51
51
|
]
|
52
52
|
requires-python = ">=3.8"
|
53
53
|
dependencies = [
|
54
|
-
"robotcode-core==1.
|
55
|
-
"robotcode-plugin==1.
|
56
|
-
"robotcode-robot==1.
|
54
|
+
"robotcode-core==1.5.0",
|
55
|
+
"robotcode-plugin==1.5.0",
|
56
|
+
"robotcode-robot==1.5.0",
|
57
57
|
]
|
58
58
|
dynamic = ["version"]
|
59
59
|
|
@@ -71,24 +71,24 @@ robotcode = "robotcode.cli.__main__:main"
|
|
71
71
|
|
72
72
|
|
73
73
|
[project.optional-dependencies]
|
74
|
-
debugger = ["robotcode-debugger==1.
|
75
|
-
languageserver = ["robotcode-language-server==1.
|
76
|
-
runner = ["robotcode-runner==1.
|
77
|
-
analyze = ["robotcode-analyze==1.
|
74
|
+
debugger = ["robotcode-debugger==1.5.0"]
|
75
|
+
languageserver = ["robotcode-language-server==1.5.0"]
|
76
|
+
runner = ["robotcode-runner==1.5.0"]
|
77
|
+
analyze = ["robotcode-analyze==1.5.0"]
|
78
78
|
yaml = ["PyYAML>=5.4"]
|
79
79
|
lint = ["robotframework-robocop>=2.0.0"]
|
80
80
|
tidy = ["robotframework-tidy>=2.0.0"]
|
81
81
|
rest = ["docutils"]
|
82
|
-
repl = ["robotcode-repl==1.
|
83
|
-
replserver = ["robotcode-repl-server==1.
|
82
|
+
repl = ["robotcode-repl==1.5.0"]
|
83
|
+
replserver = ["robotcode-repl-server==1.5.0"]
|
84
84
|
colored = ["rich"]
|
85
85
|
all = [
|
86
|
-
"robotcode-debugger==1.
|
87
|
-
"robotcode-language-server==1.
|
88
|
-
"robotcode-runner==1.
|
89
|
-
"robotcode-analyze==1.
|
90
|
-
"robotcode-repl==1.
|
91
|
-
"robotcode-repl-server==1.
|
86
|
+
"robotcode-debugger==1.5.0",
|
87
|
+
"robotcode-language-server==1.5.0",
|
88
|
+
"robotcode-runner==1.5.0",
|
89
|
+
"robotcode-analyze==1.5.0",
|
90
|
+
"robotcode-repl==1.5.0",
|
91
|
+
"robotcode-repl-server==1.5.0",
|
92
92
|
"PyYAML>=5.4",
|
93
93
|
"robotframework-robocop>=2.0.0",
|
94
94
|
"robotframework-tidy>=2.0.0",
|
@@ -159,7 +159,7 @@ fail_under = 40
|
|
159
159
|
|
160
160
|
[tool.ruff]
|
161
161
|
line-length = 120
|
162
|
-
target-version = "
|
162
|
+
target-version = "py310"
|
163
163
|
extend-exclude = ["bundled/libs", ".hatch"]
|
164
164
|
|
165
165
|
[tool.ruff.lint]
|
@@ -216,7 +216,7 @@ mark-parentheses = false
|
|
216
216
|
|
217
217
|
|
218
218
|
[tool.mypy]
|
219
|
-
python_version = "3.
|
219
|
+
python_version = "3.10"
|
220
220
|
strict = true
|
221
221
|
warn_redundant_casts = true
|
222
222
|
warn_unused_ignores = true
|
@@ -1,4 +1,6 @@
|
|
1
|
+
import json
|
1
2
|
import logging
|
3
|
+
import logging.config
|
2
4
|
from pathlib import Path
|
3
5
|
from typing import Any, List, Literal, Optional
|
4
6
|
|
@@ -35,8 +37,11 @@ click.Parameter.make_metavar = my_make_metavar # type: ignore[method-assign]
|
|
35
37
|
|
36
38
|
|
37
39
|
class RobotCodeFormatter(logging.Formatter):
|
38
|
-
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
39
|
-
|
40
|
+
def __init__(self, *args: Any, defaults: Any = None, **kwargs: Any) -> None:
|
41
|
+
defaults = defaults or {}
|
42
|
+
if defaults.get("indent") is None:
|
43
|
+
defaults["indent"] = ""
|
44
|
+
super().__init__(*args, defaults=defaults, **kwargs)
|
40
45
|
|
41
46
|
|
42
47
|
@click.group(
|
@@ -162,6 +167,21 @@ class RobotCodeFormatter(logging.Formatter):
|
|
162
167
|
help="Enables logging of method/function calls.",
|
163
168
|
show_envvar=True,
|
164
169
|
)
|
170
|
+
@click.option(
|
171
|
+
"--log-config",
|
172
|
+
type=click.Path(
|
173
|
+
file_okay=True,
|
174
|
+
dir_okay=False,
|
175
|
+
readable=True,
|
176
|
+
exists=True,
|
177
|
+
path_type=str,
|
178
|
+
),
|
179
|
+
help="Path to a logging configuration file. This must be a valid Python logging configuration file in JSON format."
|
180
|
+
" If this option is set, the other logging options are ignored.",
|
181
|
+
default=None,
|
182
|
+
show_default=True,
|
183
|
+
show_envvar=True,
|
184
|
+
)
|
165
185
|
@click.option(
|
166
186
|
"--default-path",
|
167
187
|
"-dp",
|
@@ -220,6 +240,7 @@ def robotcode(
|
|
220
240
|
log_style: Literal["%", "{", "$"],
|
221
241
|
log_filename: Optional[str],
|
222
242
|
log_calls: bool,
|
243
|
+
log_config: Optional[Path],
|
223
244
|
default_path: Optional[List[str]],
|
224
245
|
launcher_script: Optional[str] = None,
|
225
246
|
debugpy: bool = False,
|
@@ -257,7 +278,21 @@ def robotcode(
|
|
257
278
|
app.config.log_level = log_level
|
258
279
|
app.config.log_calls = log_calls
|
259
280
|
|
260
|
-
if
|
281
|
+
if log_config:
|
282
|
+
if log_calls:
|
283
|
+
LoggingDescriptor.set_call_tracing(True)
|
284
|
+
|
285
|
+
app.verbose(f"Loading logging configuration from '{log_config}'")
|
286
|
+
try:
|
287
|
+
with open(log_config, "r", encoding="utf-8") as f:
|
288
|
+
config = json.load(f)
|
289
|
+
|
290
|
+
logging.config.dictConfig(config)
|
291
|
+
|
292
|
+
except Exception as e:
|
293
|
+
app.error(f"Failed to load logging configuration from '{log_config}': {e}")
|
294
|
+
|
295
|
+
elif log:
|
261
296
|
if log_calls:
|
262
297
|
LoggingDescriptor.set_call_tracing(True)
|
263
298
|
|
@@ -269,9 +304,7 @@ def robotcode(
|
|
269
304
|
)
|
270
305
|
|
271
306
|
try:
|
272
|
-
logging.root.handlers[0].formatter = RobotCodeFormatter(
|
273
|
-
fmt=log_format, style=log_style, defaults={"indent": ""}
|
274
|
-
)
|
307
|
+
logging.root.handlers[0].formatter = RobotCodeFormatter(fmt=log_format, style=log_style)
|
275
308
|
except TypeError:
|
276
309
|
pass
|
277
310
|
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "1.5.0"
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "1.3.0-dev.6"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|