Skip to content

Commit 84eec1d

Browse files
author
ChrisMaunder
committed
v1.5.5: Converted server to self-contained .NET package
1 parent 0a0b75d commit 84eec1d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1387
-920
lines changed

.gitignore

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,15 @@ FodyWeavers.xsd
393393
/src/AnalysisLayer/BackgroundRemover/models
394394
/docs/mkdocs/senseAI/site
395395
/src/AnalysisLayer/Vision/assets
396-
/src/AnalysisLayer/CustomDetection/assets
396+
/src/AnalysisLayer/CustomDetection/assets/openlogo.pt
397+
/src/AnalysisLayer/CustomDetection/assets/actionnetv2.pt
398+
/src/AnalysisLayer/CustomDetection/assets/license-plate.pt
399+
/src/AnalysisLayer/CustomDetection/assets/yolov5m.pt
397400
/docs/mkdocs/CodeProject.AI/site
401+
/Installers/Windows/Thumbs.db
398402
/src/AnalysisLayer/CodeProject.AI.AnalysisLayer.Yolo/assets
403+
/src/AnalysisLayer/CustomDetection/assets/IPcam-general.pt
404+
/src/AnalysisLayer/CustomDetection/assets/IPcam-dark.pt
405+
/src/AnalysisLayer/CustomDetection/assets/IPcam-combined.pt
406+
/src/AnalysisLayer/CustomDetection/assets/IPcam-animal.pt
407+
/src/AnalysisLayer/Vision/datastore

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
},
2020

2121
{
22-
"name": "Build All (Linux)",
22+
"name": "Build All (Linux/macOS)",
2323
"type": "coreclr",
2424
"request": "launch",
2525
"preLaunchTask": "build-all-linux",

CodeProject.AI.sln

Lines changed: 2 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ VisualStudioVersion = 17.2.32616.157
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A8B76501-496A-4011-9C37-8308A1EBDFA7}"
77
ProjectSection(SolutionItems) = preProject
8-
src\clean.bat = src\clean.bat
98
src\start.bat = src\start.bat
109
src\start.sh = src\start.sh
1110
EndProjectSection
@@ -18,13 +17,6 @@ Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "Python", "demos\Python\Pyth
1817
EndProject
1918
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "API", "API", "{2379A486-0D28-4CAD-BB13-E77FBA538E0D}"
2019
EndProject
21-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{3BF27572-9D3A-497C-8375-29110EBBD3D1}"
22-
ProjectSection(SolutionItems) = preProject
23-
LICENCE.md = LICENCE.md
24-
README.md = README.md
25-
THIRD-PARTY-NOTICES.md = THIRD-PARTY-NOTICES.md
26-
EndProjectSection
27-
EndProject
2820
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AnalysisLayer", "AnalysisLayer", "{156BFEDA-D477-43B2-92DA-FCC9BAF1F893}"
2921
ProjectSection(SolutionItems) = preProject
3022
src\AnalysisLayer\start-analysis.bat = src\AnalysisLayer\start-analysis.bat
@@ -96,24 +88,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Frontend", "src\API\Server\
9688
EndProject
9789
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Backend", "src\API\Server\Backend\Backend.csproj", "{C93C22D7-4EB2-4EC0-A7F0-FBCFB9F6F72D}"
9890
EndProject
99-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeProject.AI.API.Server.Backend.Tests", "tests\QueueServiceTests\CodeProject.AI.API.Server.Backend.Tests.csproj", "{F9430C77-589D-4C56-8458-2DF7E344C0FC}"
100-
EndProject
101-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Images", "Images", "{8C92DCAE-EDE7-4DEC-A5CB-BB2388905064}"
102-
ProjectSection(SolutionItems) = preProject
103-
docs\images\apple-silicon.svg = docs\images\apple-silicon.svg
104-
docs\images\Choose-launch.png = docs\images\Choose-launch.png
105-
docs\images\docker.svg = docs\images\docker.svg
106-
docs\images\example-detect.png = docs\images\example-detect.png
107-
docs\images\macos.svg = docs\images\macos.svg
108-
docs\images\Mulitple-Project-Toolbar.png = docs\images\Mulitple-Project-Toolbar.png
109-
docs\images\RaspberryPi.svg = docs\images\RaspberryPi.svg
110-
docs\images\Set-Startup_Projects.png = docs\images\Set-Startup_Projects.png
111-
docs\images\Ubuntu.svg = docs\images\Ubuntu.svg
112-
docs\images\VisualStudio.svg = docs\images\VisualStudio.svg
113-
docs\images\VisualStudioCode.svg = docs\images\VisualStudioCode.svg
114-
docs\images\windows.svg = docs\images\windows.svg
115-
EndProjectSection
116-
EndProject
11791
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{CB26AB5B-DB85-4A59-A3AE-FA55A35D05B0}"
11892
ProjectSection(SolutionItems) = preProject
11993
demos\Javascript\assets\favicon-16x16.png = demos\Javascript\assets\favicon-16x16.png
@@ -125,10 +99,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{CB26AB
12599
EndProject
126100
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{460DB5C8-46F3-4407-A2DF-D9063D14493A}"
127101
ProjectSection(SolutionItems) = preProject
128-
BuildDockerBase.bat = BuildDockerBase.bat
129-
commands.json = commands.json
102+
src\endtimer.bat = src\endtimer.bat
130103
kill_dotnet.bat = kill_dotnet.bat
131104
kill_dotnet.sh = kill_dotnet.sh
105+
src\starttimer.bat = src\starttimer.bat
132106
EndProjectSection
133107
EndProject
134108
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectDetector", "src\AnalysisLayer\CodeProject.AI.AnalysisLayer.Yolo\ObjectDetector.csproj", "{232710A8-9180-4139-8FF2-8F21F649D927}"
@@ -151,33 +125,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dev", "Dev", "{00BBF52C-217
151125
Installers\Dev\utils.sh = Installers\Dev\utils.sh
152126
EndProjectSection
153127
EndProject
154-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docker", "Docker", "{FB0561D3-4AF8-415A-85B4-E4E9ADDC3DB2}"
155-
ProjectSection(SolutionItems) = preProject
156-
Installers\Docker\BuildDockerBase.bat = Installers\Docker\BuildDockerBase.bat
157-
Installers\Docker\Dockerfile-Base = Installers\Docker\Dockerfile-Base
158-
Installers\Docker\README = Installers\Docker\README
159-
EndProjectSection
160-
EndProject
161128
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "TextSummary", "src\AnalysisLayer\TextSummary\TextSummary.pyproj", "{470D3417-36A4-49A4-B719-496466FA92FB}"
162129
EndProject
163-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Articles", "Articles", "{2E9D03C1-BF8F-4E3D-944A-0DDEDDE620C5}"
164-
ProjectSection(SolutionItems) = preProject
165-
docs\Articles\adding-a-net6-module.md = docs\Articles\adding-a-net6-module.md
166-
docs\Articles\Additional Information Dialog.png = docs\Articles\Additional Information Dialog.png
167-
docs\Articles\Dashboard.png = docs\Articles\Dashboard.png
168-
docs\Articles\ModuleStatus.png = docs\Articles\ModuleStatus.png
169-
docs\Articles\portrait-filter-example.png = docs\Articles\portrait-filter-example.png
170-
docs\Articles\Project Configuration Dialog.png = docs\Articles\Project Configuration Dialog.png
171-
docs\Articles\Project Structure.png = docs\Articles\Project Structure.png
172-
docs\Articles\Sentiment Analysis Text Page.png = docs\Articles\Sentiment Analysis Text Page.png
173-
docs\Articles\SentimentAnalysisProjectConfig.png = docs\Articles\SentimentAnalysisProjectConfig.png
174-
docs\Articles\SentimentAnalysysProjectStructure.png = docs\Articles\SentimentAnalysysProjectStructure.png
175-
docs\Articles\Simpler NET module creation using improved SDK.md = docs\Articles\Simpler NET module creation using improved SDK.md
176-
docs\Articles\test.html.jpg = docs\Articles\test.html.jpg
177-
docs\Articles\test.html.png = docs\Articles\test.html.png
178-
docs\Articles\test_html.png = docs\Articles\test_html.png
179-
EndProjectSection
180-
EndProject
181130
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Python", "Python", "{D2B223B6-983B-4782-B231-5F481504A86F}"
182131
ProjectSection(SolutionItems) = preProject
183132
src\AnalysisLayer\SDK\Python\CodeProjectAI.py = src\AnalysisLayer\SDK\Python\CodeProjectAI.py
@@ -194,8 +143,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeProject.AI.AnalysisLaye
194143
EndProject
195144
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "Vision", "src\AnalysisLayer\Vision\intelligencelayer\Vision.pyproj", "{E5D27495-EE4F-4AAF-8749-A6BA848111E2}"
196145
EndProject
197-
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "mkdocs", "docs\mkdocs\mkdocs.shproj", "{343EE377-FB9C-4D81-8A17-68509C9F6659}"
198-
EndProject
199146
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SentimentAnalysis", "src\AnalysisLayer\SentimentAnalysis\SentimentAnalysis.csproj", "{6814F27C-7026-4D22-8E38-2047747495E3}"
200147
EndProject
201148
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "CustomDetection", "src\AnalysisLayer\CustomDetection\CustomDetection.pyproj", "{FE2DAAFA-29D6-4842-8999-1776F320DEE4}"
@@ -244,14 +191,6 @@ Global
244191
{C93C22D7-4EB2-4EC0-A7F0-FBCFB9F6F72D}.Release|Any CPU.Build.0 = Release|Any CPU
245192
{C93C22D7-4EB2-4EC0-A7F0-FBCFB9F6F72D}.Release|x86.ActiveCfg = Release|Any CPU
246193
{C93C22D7-4EB2-4EC0-A7F0-FBCFB9F6F72D}.Release|x86.Build.0 = Release|Any CPU
247-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
248-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
249-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Debug|x86.ActiveCfg = Debug|Any CPU
250-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Debug|x86.Build.0 = Debug|Any CPU
251-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
252-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Release|Any CPU.Build.0 = Release|Any CPU
253-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Release|x86.ActiveCfg = Release|Any CPU
254-
{F9430C77-589D-4C56-8458-2DF7E344C0FC}.Release|x86.Build.0 = Release|Any CPU
255194
{232710A8-9180-4139-8FF2-8F21F649D927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
256195
{232710A8-9180-4139-8FF2-8F21F649D927}.Debug|Any CPU.Build.0 = Debug|Any CPU
257196
{232710A8-9180-4139-8FF2-8F21F649D927}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -324,32 +263,24 @@ Global
324263
{93A23681-E9E8-4381-9EB5-8D178A0EE785} = {2379A486-0D28-4CAD-BB13-E77FBA538E0D}
325264
{A0CF3BEE-8EE3-4B23-BEB8-9D258C0510A3} = {93A23681-E9E8-4381-9EB5-8D178A0EE785}
326265
{C93C22D7-4EB2-4EC0-A7F0-FBCFB9F6F72D} = {93A23681-E9E8-4381-9EB5-8D178A0EE785}
327-
{F9430C77-589D-4C56-8458-2DF7E344C0FC} = {D982BD8C-2257-413B-8513-8043AB3035F3}
328-
{8C92DCAE-EDE7-4DEC-A5CB-BB2388905064} = {3BF27572-9D3A-497C-8375-29110EBBD3D1}
329266
{CB26AB5B-DB85-4A59-A3AE-FA55A35D05B0} = {3A860CDD-94B9-4002-BA08-87E8822DDE50}
330267
{232710A8-9180-4139-8FF2-8F21F649D927} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
331268
{FF0C329F-41E8-4540-BCDB-97690911077D} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
332269
{55C41D48-17AC-4ED5-9440-B42AF65CCE4E} = {FF0C329F-41E8-4540-BCDB-97690911077D}
333270
{7E981C51-DADD-4047-AF5B-21B0E3442B99} = {55C41D48-17AC-4ED5-9440-B42AF65CCE4E}
334271
{7DC0A312-39AD-41B0-BB53-72ACACC76959} = {7E981C51-DADD-4047-AF5B-21B0E3442B99}
335272
{00BBF52C-217D-421F-BEAF-918C167D4C20} = {D885EE64-C1BD-44D6-84D8-1E46806298D9}
336-
{FB0561D3-4AF8-415A-85B4-E4E9ADDC3DB2} = {D885EE64-C1BD-44D6-84D8-1E46806298D9}
337273
{470D3417-36A4-49A4-B719-496466FA92FB} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
338-
{2E9D03C1-BF8F-4E3D-944A-0DDEDDE620C5} = {3BF27572-9D3A-497C-8375-29110EBBD3D1}
339274
{D2B223B6-983B-4782-B231-5F481504A86F} = {FF0C329F-41E8-4540-BCDB-97690911077D}
340275
{11F66210-D711-4A0A-AE3A-8AC11432CDC3} = {FF0C329F-41E8-4540-BCDB-97690911077D}
341276
{AB47CC99-15ED-4928-A2F2-DC8F83DA9482} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
342277
{470D3417-36A4-49A4-B719-496466FA92FC} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
343278
{56DFAAD2-2E14-45D8-8BC9-D171785235E9} = {11F66210-D711-4A0A-AE3A-8AC11432CDC3}
344279
{E5D27495-EE4F-4AAF-8749-A6BA848111E2} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
345-
{343EE377-FB9C-4D81-8A17-68509C9F6659} = {3BF27572-9D3A-497C-8375-29110EBBD3D1}
346280
{6814F27C-7026-4D22-8E38-2047747495E3} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
347281
{FE2DAAFA-29D6-4842-8999-1776F320DEE4} = {156BFEDA-D477-43B2-92DA-FCC9BAF1F893}
348282
EndGlobalSection
349283
GlobalSection(ExtensibilityGlobals) = postSolution
350284
SolutionGuid = {83740BD9-AEEF-49C7-A722-D7703D3A38CB}
351285
EndGlobalSection
352-
GlobalSection(SharedMSBuildProjectFiles) = preSolution
353-
docs\mkdocs\mkdocs.projitems*{343ee377-fb9c-4d81-8a17-68509c9f6659}*SharedItemsImports = 13
354-
EndGlobalSection
355286
EndGlobal

Installers/Dev/setup_dev_env_linux.sh

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ fi
119119
# 1. Ensure directories are created and download required assets
120120

121121
writeLine
122-
writeLine 'CodeProject.AI setup ' "White" "Blue"
122+
writeLine 'CodeProject.AI setup ' "White" "Blue"
123123

124124
# Create some directories
125125

@@ -138,18 +138,6 @@ else
138138
fi
139139
writeLine "Done" $color_success
140140

141-
142-
# The Docs :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
143-
144-
# Currently 3.9 is the latest python version our modules are using, so we'll just use this to
145-
# save installing a one-off (but potentially better) version. It's just docs. Nothing crazy.
146-
setupPython 3.9
147-
148-
write "Installing MKDocs..."
149-
installPythonPackages 3.9 "${absoluteRootDir}/docs/mkdocs" "mkdocs"
150-
writeLine "Done" "DarkGreen"
151-
152-
153141
# TextSummary specific :::::::::::::::::::::::::::::::::::::::::::::::::::::::
154142

155143
writeLine

Installers/Dev/setup_dev_env_win.bat

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ cls
1010
setlocal enabledelayedexpansion
1111

1212
:: verbosity can be: quiet | info | loud
13-
set verbosity=info
13+
set verbosity=quiet
1414

1515
:: If files are already present, then don't overwrite if this is false
1616
set forceOverwrite=false
@@ -69,18 +69,15 @@ if /i "%useColor%" == "true" call utils.bat setESC
6969

7070
:: Set Flags
7171

72-
set pipFlags=-q -q
7372
set rmdirFlags=/q
7473
set roboCopyFlags=/NFL /NDL /NJH /NJS /nc /ns >nul 2>nul
7574

7675
if /i "%verbosity%"=="info" (
77-
set pipFlags=-q
7876
set rmdirFlags=/q
7977
set roboCopyFlags=/NFL /NDL /NJH
8078
)
8179

8280
if /i "%verbosity%"=="loud" (
83-
set pipFlags=
8481
set rmdirFlags=
8582
set roboCopyFlags=
8683
)
@@ -108,23 +105,6 @@ if not exist "%downloadPath%\" mkdir "%downloadPath%"
108105
call utils.bat WriteLine "Done" "Green"
109106

110107

111-
:: The Docs :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
112-
113-
call utils.bat WriteLine
114-
call utils.bat WriteLine "Installing MKDocs" "DarkGreen"
115-
call utils.bat WriteLine
116-
117-
:: Currently 3.9 is the latest python version our modules are using, so we'll just use this to
118-
:: save installing a one-off (but potentially better) version. It's just docs. Nothing crazy.
119-
call utils.bat SetupPython 3.9
120-
121-
:: pythonInterpreterPath will contain the path to the latest installed Python VENV interpreter
122-
:: !pythonInterpreterPath! -m pip install mkdocs
123-
:: !pythonInterpreterPath! -m mkdocs
124-
call utils.bat InstallPythonPackages 3.9 "..\..\docs\mkdocs" "mkdocs"
125-
call utils.bat WriteLine "Done" "DarkGreen"
126-
127-
128108
:: TextSummary specific :::::::::::::::::::::::::::::::::::::::::::::::::::::::
129109

130110
call utils.bat WriteLine

Installers/Dev/utils.bat

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
:: to the left, meaning the called subroutine will get the arguments it expects in order
1212
shift & goto :%~1
1313

14+
set pipFlags=-q -q
15+
if /i "%verbosity%"=="info" set pipFlags=-q
16+
if /i "%verbosity%"=="loud" set pipFlags=
17+
18+
1419
:: sub-routines
1520

1621
:: Sets up the ESC string for use later in this script
@@ -372,24 +377,49 @@ shift & goto :%~1
372377
rem ============================================================================
373378
rem 3a. Install PIP packages for Python analysis services
374379

375-
call :Write "Installing Python package manager..."
376-
!pythonPath! -m pip install --trusted-host pypi.python.org ^
377-
--trusted-host files.pythonhosted.org ^
378-
--trusted-host pypi.org --upgrade pip !pipFlags!
380+
rem Ensure we have pip (no internet access - ensures we have the current python compatible version.
381+
call :Write "Ensuring Python package manager (pip) is installed..."
382+
if /i "%verbosity%" == "quiet" (
383+
!pythonPath! -m ensurepip !pipFlags! >nul 2>nul
384+
) else (
385+
!pythonPath! -m ensurepip !pipFlags!
386+
)
387+
call :WriteLine "Done" "Green"
388+
389+
call :Write "Ensuring Python package manager (pip) is up to date..."
390+
391+
rem Upgrade to the latest pip
392+
if /i "%verbosity%" == "quiet" (
393+
!pythonPath! -m pip install --trusted-host pypi.python.org ^
394+
--trusted-host files.pythonhosted.org ^
395+
--trusted-host pypi.org --upgrade pip !pipFlags! >nul 2>nul
396+
) else (
397+
!pythonPath! -m pip install --trusted-host pypi.python.org ^
398+
--trusted-host files.pythonhosted.org ^
399+
--trusted-host pypi.org --upgrade pip !pipFlags!
400+
)
401+
379402
call :WriteLine "Done" "Green"
380403

381404
call :Write "Checking for required packages..."
382405

383406
rem ASSUMPTION: If venv\Lib\site-packages\<test name> exists then no need to check further
384-
if not exist "!virtualEnv!\Lib\site-packages\!testForPipExistanceName!" (
407+
408+
set packagesPath="!virtualEnv!\Lib\site-packages"
409+
410+
if not exist "!packagesPath!\testForPipExistanceName!" (
385411

386412
call :WriteLine "Packages missing. Installing from !requirementsFilename!..." "Yellow"
387413

388414
if "!oneStepPIP!" == "true" (
389415

390416
call :Write "Installing Packages into Virtual Environment..."
391417
REM pip install -r !requirementsPath! !pipFlags!
392-
!pythonPath! -m pip install -r !requirementsPath! !pipFlags!
418+
if /i "%verbosity%" == "quiet" (
419+
!pythonPath! -m pip install -r !requirementsPath! --target "!packagesPath!" !pipFlags! >nul 2>nul
420+
) else (
421+
!pythonPath! -m pip install -r !requirementsPath! --target "!packagesPath!" !pipFlags!
422+
)
393423
call :WriteLine "Success" "Green"
394424

395425
) else (
@@ -423,9 +453,9 @@ shift & goto :%~1
423453
call :Write " -!description!..."
424454

425455
if /i "%verbosity%" == "quiet" (
426-
!pythonPath! -m pip install !module! !currentOption! !pipFlags! >nul 2>nul
456+
!pythonPath! -m pip install !module! !currentOption! --target "!packagesPath!" !pipFlags! >nul 2>nul
427457
) else (
428-
!pythonPath! -m pip install !module! !currentOption! !pipFlags!
458+
!pythonPath! -m pip install !module! !currentOption! --target "!packagesPath!" !pipFlags!
429459
)
430460

431461
call :WriteLine "Done" "Green"

Installers/Dev/utils.sh

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -532,15 +532,23 @@ function installPythonPackages () {
532532

533533
virtualEnv="${analysisLayerPath}/bin/${platform}/${pythonName}/venv"
534534

535-
# Quick check to ensure PIP is upo to date
536535
pushd "${virtualEnv}/bin" >/dev/null
536+
537+
# Quick check to ensure PIP is installed and up to date
537538
if [ "${verbosity}" == "quiet" ]; then
538-
write "Updating Python PIP..."
539+
540+
# Ensure we have pip (no internet access - ensures we have the current python compatible version.
541+
write "Ensuring PIP is installed..."
542+
./python3 -m ensurepip >/dev/null 2>/dev/null &
543+
spin $!
544+
writeLine "Done" $color_success
545+
546+
write "Updating PIP..."
539547
./pip install --upgrade pip >/dev/null 2>/dev/null &
540548
spin $!
541549
writeLine "Done" $color_success
542550
else
543-
writeLine "Updating Python PIP..."
551+
writeLine "Ensuring PIP is installed and up to date..."
544552

545553
if [ "$platform" == "macos" ] || [ "$platform" == "macos-arm" ]; then
546554
# regarding the warning: See https://github.com/Homebrew/homebrew-core/issues/76621
@@ -549,6 +557,7 @@ function installPythonPackages () {
549557
fi
550558
fi
551559

560+
./python3 -m ensurepip
552561
./pip install --upgrade pip
553562
fi
554563
popd >/dev/null

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ transfer, and is easy to use.
1212

1313
# Supported Platforms
1414

15+
<div style="width:75%;min-width:700px;margin:30px auto">
1516

1617
| <img src="docs/images/windows.svg" title="Windows" style="width:64px"> | <img src="docs/images/macos.svg" title="macOS" style="width:72px"> | <img src="docs/images/apple-silicon.svg" title="Apple Silicon" style="width:64px"> | <img src="docs/images/Ubuntu.svg" title="Ubuntu" style="width:64px"> | <img src="docs/images/docker.svg" title="Docker" style="width:64px"> | <img src="docs/images/VisualStudio.svg" title="Visual Studio" style="width:64px"> | <img src="docs/images/VisualStudioCode.svg" title="Visual Studio Code" style="width:64px"> |
1718
| :------: | :---: | :---------: | :-----: | :----: | :--------------------: | :-------------------: |
1819
| Windows | macOS | macOS-arm64 | Ubuntu | Docker | Visual Studio<br>2019+ | Visual Studio<br>Code |
1920

21+
</div>
2022

2123
# Why
2224

commands.json

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)