diff --git a/packages/python-packages/api-stub-generator/CHANGELOG.md b/packages/python-packages/api-stub-generator/CHANGELOG.md index 1ae116bb8fb..8a3d27d2caa 100644 --- a/packages/python-packages/api-stub-generator/CHANGELOG.md +++ b/packages/python-packages/api-stub-generator/CHANGELOG.md @@ -1,5 +1,8 @@ # Release History +## Version 0.2.11 (2022-04-06) +Added __main__ to execute as module + ## Version 0.2.10 (2022-03-09) Added support for TypedDict classes. Added support to parse defaults from docstrings. Example diff --git a/packages/python-packages/api-stub-generator/apistub/__init__.py b/packages/python-packages/api-stub-generator/apistub/__init__.py index 51a494ea2f5..766d9ccbc2f 100644 --- a/packages/python-packages/api-stub-generator/apistub/__init__.py +++ b/packages/python-packages/api-stub-generator/apistub/__init__.py @@ -21,6 +21,7 @@ def console_entry_point(): + print("Running api-stub-generator version {}".format(__version__)) stub_generator = StubGenerator() apiview = stub_generator.generate_tokens() json_tokens = stub_generator.serialize(apiview) diff --git a/packages/python-packages/api-stub-generator/apistub/__main__.py b/packages/python-packages/api-stub-generator/apistub/__main__.py new file mode 100644 index 00000000000..f0208e89b33 --- /dev/null +++ b/packages/python-packages/api-stub-generator/apistub/__main__.py @@ -0,0 +1,5 @@ +from apistub import console_entry_point + +if __name__ == "__main__": + console_entry_point() + exit(0) \ No newline at end of file diff --git a/packages/python-packages/api-stub-generator/apistub/_version.py b/packages/python-packages/api-stub-generator/apistub/_version.py index a41953eba64..fd0439d63c7 100644 --- a/packages/python-packages/api-stub-generator/apistub/_version.py +++ b/packages/python-packages/api-stub-generator/apistub/_version.py @@ -1,4 +1,4 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. -VERSION = "0.2.10" +VERSION = "0.2.11" diff --git a/src/dotnet/APIView/APIViewWeb/Languages/PythonLanguageService.cs b/src/dotnet/APIView/APIViewWeb/Languages/PythonLanguageService.cs index 6ea72b74459..7e1cf570666 100644 --- a/src/dotnet/APIView/APIViewWeb/Languages/PythonLanguageService.cs +++ b/src/dotnet/APIView/APIViewWeb/Languages/PythonLanguageService.cs @@ -17,29 +17,27 @@ public class PythonLanguageService : LanguageProcessor { public override string Name { get; } = "Python"; public override string Extension { get; } = ".whl"; - public override string VersionString { get; } = "0.2.8"; + public override string VersionString { get; } = "0.2.11"; private readonly string _pythonExecutablePath; - public override string ProcessName => _pythonExecutablePath; - private readonly string _apiScriptPath; + public override string ProcessName => _pythonExecutablePath; static TelemetryClient _telemetryClient = new TelemetryClient(TelemetryConfiguration.CreateDefault()); public PythonLanguageService(IConfiguration configuration) { _pythonExecutablePath = configuration["PYTHONEXECUTABLEPATH"] ?? "python"; - _apiScriptPath = Path.Combine(Path.GetDirectoryName(typeof(PythonLanguageService).Assembly.Location), "api-stub-generator", "apistubgen.py"); } public override string GetProcessorArguments(string originalName, string tempDirectory, string jsonPath) { - return $"{_apiScriptPath} --pkg-path {originalName} --temp-path {tempDirectory}" + + return $" -m apistub --pkg-path {originalName} --temp-path {tempDirectory}" + $" --out-path {jsonPath} --hide-report"; } private string GetPythonVirtualEnv(string tempDirectory) { // Create virtual instance - RunProcess(tempDirectory, ProcessName, $" -m virtualenv {tempDirectory} --system-site-packages"); + RunProcess(tempDirectory, ProcessName, $" -m virtualenv {tempDirectory} --system-site-packages --seeder app-data --symlink-app-data"); return Path.Combine(tempDirectory, "Scripts", "python.exe"); } @@ -59,9 +57,9 @@ public override async Task GetCodeFileAsync(string originalName, Strea } try { - var apiStubGenPath = GetPythonVirtualEnv(tempDirectory); + var pythonVenvPath = GetPythonVirtualEnv(tempDirectory); var arguments = GetProcessorArguments(originalName, tempDirectory, jsonFilePath); - RunProcess(tempDirectory, apiStubGenPath, arguments); + RunProcess(tempDirectory, pythonVenvPath, arguments); _telemetryClient.TrackEvent("Completed Python process run to parse " + originalName); using (var codeFileStream = File.OpenRead(jsonFilePath)) {