Kephas.Scripting.Python
11.0.0
Prefix Reserved
See the version list below for details.
dotnet add package Kephas.Scripting.Python --version 11.0.0
NuGet\Install-Package Kephas.Scripting.Python -Version 11.0.0
<PackageReference Include="Kephas.Scripting.Python" Version="11.0.0" />
paket add Kephas.Scripting.Python --version 11.0.0
#r "nuget: Kephas.Scripting.Python, 11.0.0"
// Install Kephas.Scripting.Python as a Cake Addin #addin nuget:?package=Kephas.Scripting.Python&version=11.0.0 // Install Kephas.Scripting.Python as a Cake Tool #tool nuget:?package=Kephas.Scripting.Python&version=11.0.0
Python Scripting
Introduction
The Python scripting area in Kephas handles Python dynamic code execution using IronPython.
Check the following packages for more information:
Usage
- String based script execution
// normally you would get the processor injected into the service constructor.
var processor = injector.Resolve<IScriptProcessor>();
var result = await processor.ExecuteAsync(new PythonStringScript("name[..4] + str(age)"), new Expando { ["name"] = "Johnny", ["age"] = 42 })).PreserveThreadContext();
Assert.Equals("John42", result);
- File based script execution
The file scripts assume that the language can be inferred from the file extension.
For Python, it means that the file needs to and with a *.py extension.
If this is not the case, make sure you specify the language explicitly when creating a FileScript
.
// normally you would get the processor injected into the service constructor.
var processor = injector.Resolve<IScriptProcessor>();
// Python scripts ending with *.py
var result = await processor.ExecuteAsync(new FileScript("myscript.py"), new { name = "Johnny", age = 42 })).PreserveThreadContext();
Assert.Equals("John42", result);
// Python scripts not ending with *.py
var result = await processor.ExecuteAsync(new FileScript("myscript.txt", PythonLanguageService.Language), new { name = "Johnny", age = 42 })).PreserveThreadContext();
Assert.Equals("John42", result);
The PythonLanguageService
This service is the ILanguageService
implementation for the Python language.
It uses the PythonSettings
to configure the way it controls the execution. These are the options:
- SearchPaths (string[]): enumerates the paths where the Python modules should be searched.
- PreloadGlobalModules (boolean): Indicates whether the modules found in the search paths should be preloaded for the executing scripts. This way, the scripts would be simpler to write, but the resource consumption could be greater.
Note: The search paths are locations handled by the
ILocationsManager
service. When adding tenant support, each tenant will get its own copy.
Configuration file example:
{
"searchPaths": [ "../config/.pylib" ],
"preloadGlobalModules": true
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- IronPython (>= 3.4.0-alpha1)
- Kephas.Configuration (>= 11.0.0)
- Kephas.Scripting (>= 11.0.0)
- Microsoft.CSharp (>= 4.7.0)
- System.CodeDom (>= 6.0.0)
-
net6.0
- IronPython (>= 3.4.0-alpha1)
- Kephas.Configuration (>= 11.0.0)
- Kephas.Scripting (>= 11.0.0)
- Microsoft.CSharp (>= 4.7.0)
- System.CodeDom (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
11.1.0 | 716 | 4/13/2022 |
11.1.0-dev.4 | 143 | 4/6/2022 |
11.1.0-dev.3 | 134 | 3/30/2022 |
11.1.0-dev.2 | 142 | 3/23/2022 |
11.1.0-dev.1 | 134 | 3/23/2022 |
11.0.0 | 488 | 3/11/2022 |
11.0.0-dev.7 | 142 | 3/7/2022 |
11.0.0-dev.6 | 132 | 2/28/2022 |
11.0.0-dev.5 | 129 | 2/26/2022 |
11.0.0-dev.4 | 136 | 2/24/2022 |
11.0.0-dev.3 | 134 | 2/23/2022 |
11.0.0-dev.2 | 140 | 2/18/2022 |
11.0.0-dev.1 | 136 | 2/7/2022 |
10.3.0 | 504 | 1/18/2022 |
10.2.0 | 873 | 12/3/2021 |
10.1.0 | 4,934 | 11/23/2021 |
10.1.0-dev.7 | 198 | 11/17/2021 |
10.1.0-dev.6 | 170 | 11/16/2021 |
10.1.0-dev.5 | 178 | 11/10/2021 |
10.1.0-dev.4 | 168 | 11/8/2021 |
10.1.0-dev.3 | 161 | 11/8/2021 |
10.1.0-dev.2 | 166 | 11/4/2021 |
10.1.0-dev.1 | 170 | 11/3/2021 |
10.0.1 | 435 | 10/16/2021 |
10.0.0 | 402 | 10/13/2021 |
10.0.0-dev.4 | 169 | 10/13/2021 |
10.0.0-dev.3 | 189 | 10/11/2021 |
10.0.0-dev.2 | 225 | 10/8/2021 |
9.3.4 | 451 | 8/25/2021 |
9.3.3 | 400 | 8/25/2021 |
9.3.2 | 391 | 8/24/2021 |
9.3.1 | 383 | 8/12/2021 |
9.3.0 | 405 | 8/12/2021 |
9.2.0 | 430 | 6/17/2021 |
9.1.0 | 412 | 6/17/2021 |
9.1.0-dev.8 | 198 | 5/26/2021 |
9.1.0-dev.7 | 198 | 5/17/2021 |
9.1.0-dev.6 | 201 | 4/28/2021 |
9.1.0-dev.5 | 211 | 4/23/2021 |
9.1.0-dev.4 | 198 | 4/21/2021 |
9.1.0-dev.3 | 206 | 4/17/2021 |
9.1.0-dev.2 | 184 | 4/12/2021 |
9.1.0-dev.1 | 201 | 4/9/2021 |
9.0.5 | 391 | 3/31/2021 |
9.0.4 | 427 | 3/23/2021 |
9.0.3 | 445 | 3/20/2021 |
9.0.1 | 395 | 3/18/2021 |
9.0.0 | 389 | 3/17/2021 |
9.0.0-dev.4 | 200 | 3/4/2021 |
9.0.0-dev.3 | 207 | 3/1/2021 |
9.0.0-dev.2 | 229 | 2/22/2021 |
8.4.0 | 487 | 11/11/2020 |
8.3.0 | 485 | 10/28/2020 |
8.2.0 | 537 | 10/16/2020 |
8.1.0 | 592 | 9/23/2020 |
8.0.0 | 507 | 7/1/2020 |
8.0.0-dev.44 | 318 | 6/25/2020 |
8.0.0-dev.43 | 291 | 6/23/2020 |
8.0.0-dev.42 | 328 | 6/22/2020 |
8.0.0-dev.41 | 320 | 6/18/2020 |
8.0.0-dev.40 | 288 | 6/18/2020 |
8.0.0-dev.39 | 301 | 6/15/2020 |
8.0.0-dev.38 | 411 | 6/14/2020 |
8.0.0-dev.37 | 275 | 6/13/2020 |
8.0.0-dev.36 | 325 | 6/13/2020 |
8.0.0-dev.35 | 256 | 6/12/2020 |
8.0.0-dev.34 | 301 | 6/12/2020 |
8.0.0-dev.33 | 349 | 6/10/2020 |
8.0.0-dev.32 | 272 | 6/1/2020 |
8.0.0-dev.31 | 309 | 6/1/2020 |
8.0.0-dev.30 | 365 | 5/30/2020 |
8.0.0-dev.28 | 318 | 5/28/2020 |
8.0.0-dev.27 | 276 | 5/15/2020 |
8.0.0-dev.26 | 265 | 5/14/2020 |
8.0.0-dev.25 | 294 | 5/14/2020 |
8.0.0-dev.24 | 275 | 5/13/2020 |
8.0.0-dev.23 | 277 | 5/13/2020 |
8.0.0-dev.22 | 274 | 5/13/2020 |
8.0.0-dev.21 | 277 | 5/12/2020 |
8.0.0-dev.20 | 288 | 5/12/2020 |
8.0.0-dev.19 | 287 | 5/7/2020 |
8.0.0-dev.18 | 281 | 5/7/2020 |
8.0.0-dev.17 | 279 | 5/6/2020 |
8.0.0-dev.16 | 275 | 5/6/2020 |
8.0.0-dev.15 | 290 | 5/5/2020 |
8.0.0-dev.14 | 265 | 5/5/2020 |
8.0.0-dev.13 | 295 | 5/4/2020 |
7.6.0-dev.13 | 305 | 5/1/2020 |
7.6.0-dev.12 | 319 | 4/30/2020 |
7.6.0-dev.11 | 279 | 4/28/2020 |
7.6.0-dev.10 | 277 | 4/27/2020 |
7.6.0-dev.9 | 285 | 4/24/2020 |
7.6.0-dev.8 | 284 | 4/22/2020 |
7.6.0-dev.7 | 269 | 4/15/2020 |
7.6.0-dev.6 | 268 | 4/15/2020 |
7.6.0-dev.5 | 266 | 4/15/2020 |
7.6.0-dev.4 | 394 | 4/11/2020 |
7.6.0-dev.3 | 258 | 4/10/2020 |
7.6.0-dev.2 | 266 | 4/10/2020 |
7.6.0-dev.1 | 359 | 4/8/2020 |
7.5.2 | 589 | 3/20/2020 |
7.5.1 | 540 | 3/12/2020 |
7.5.0 | 547 | 3/10/2020 |
7.5.0-dev.18 | 300 | 3/5/2020 |
7.5.0-dev.17 | 300 | 3/5/2020 |
7.5.0-dev.16 | 323 | 3/4/2020 |
7.5.0-dev.15 | 274 | 3/3/2020 |
7.5.0-dev.14 | 280 | 3/3/2020 |
7.5.0-dev.13 | 258 | 2/29/2020 |
7.5.0-dev.12 | 391 | 2/29/2020 |
7.5.0-dev.10 | 372 | 2/25/2020 |
7.5.0-dev.9 | 304 | 2/20/2020 |
7.5.0-dev.8 | 333 | 2/18/2020 |
7.5.0-dev.7 | 267 | 2/18/2020 |
7.5.0-dev.6 | 293 | 2/14/2020 |
7.5.0-dev.5 | 324 | 2/12/2020 |
7.5.0-dev.4 | 276 | 2/11/2020 |
7.5.0-dev.3 | 248 | 2/11/2020 |
7.5.0-dev.2 | 404 | 2/8/2020 |
7.5.0-dev.1 | 299 | 2/7/2020 |
7.4.2 | 502 | 2/5/2020 |
7.4.1 | 572 | 2/3/2020 |
7.4.0 | 602 | 1/31/2020 |
7.4.0-dev.4 | 346 | 1/31/2020 |
7.4.0-dev.3 | 321 | 1/29/2020 |
7.4.0-dev.2 | 282 | 1/28/2020 |
7.3.1 | 581 | 1/21/2020 |
7.3.1-preview.7 | 273 | 1/21/2020 |
7.3.1-preview.1 | 308 | 1/20/2020 |
7.3.0 | 515 | 1/19/2020 |
7.2.6 | 565 | 1/18/2020 |
7.2.5 | 565 | 12/19/2019 |
7.2.4 | 528 | 12/19/2019 |
7.2.3 | 559 | 12/16/2019 |
7.2.2 | 540 | 12/9/2019 |
7.2.1 | 563 | 12/4/2019 |
7.2.0 | 546 | 11/26/2019 |
7.2.0-preview.10 | 273 | 11/20/2019 |
7.2.0-preview.9 | 280 | 11/19/2019 |
7.2.0-preview.8 | 272 | 11/18/2019 |
7.2.0-preview.6 | 297 | 11/14/2019 |
7.2.0-preview.5 | 277 | 11/14/2019 |
7.2.0-preview.4 | 278 | 11/14/2019 |
7.2.0-preview.2 | 288 | 11/11/2019 |
7.2.0-preview.1 | 277 | 11/9/2019 |
7.1.0 | 559 | 11/6/2019 |
7.1.0-preview.8 | 299 | 11/5/2019 |
7.1.0-preview.7 | 276 | 11/4/2019 |
7.1.0-preview.6 | 293 | 11/1/2019 |
7.1.0-preview.5 | 300 | 10/31/2019 |
7.1.0-preview.4 | 309 | 10/30/2019 |
7.1.0-preview.3 | 279 | 10/26/2019 |
7.1.0-preview.2 | 291 | 10/25/2019 |
7.1.0-preview.1 | 278 | 10/24/2019 |
7.0.0 | 597 | 10/16/2019 |
7.0.0-rc.41 | 291 | 10/15/2019 |
7.0.0-rc.40 | 304 | 10/15/2019 |
7.0.0-rc.39 | 289 | 10/12/2019 |
7.0.0-rc.38 | 291 | 10/11/2019 |
Please check https://github.com/kephas-software/kephas/releases for the change log.
Also check the documentation and the samples from https://github.com/kephas-software/kephas/wiki and https://github.com/kephas-software/kephas/tree/master/Samples.