Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .vsts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ phases:
name: Windows
buildScript: build.cmd
buildMatrix:
Py37:
_configuration: RlsWinPy3.7
Py36:
_configuration: RlsWinPy3.6
Py35:
Expand All @@ -21,8 +23,8 @@ phases:
name: Mac
buildScript: ./build.sh
buildMatrix:
Py36:
_configuration: RlsMacPy3.6
Py37:
_configuration: RlsMacPy3.7
buildQueue:
name: Hosted macOS

Expand All @@ -34,8 +36,10 @@ phases:
buildScript: ./build.sh
testDistro: ubuntu16
buildMatrix:
Py35:
_configuration: RlsLinPy3.5
Py37:
_configuration: RlsLinPy3.7
Py36:
_configuration: RlsLinPy3.6
buildQueue:
name: Hosted Ubuntu 1604
# Run tests on CentOS7
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Documentation can be found [here](https://docs.microsoft.com/en-us/NimbusML/over

`nimbusml` runs on Windows, Linux, and macOS.

`nimbusml` requires Python **2.7**, **3.5**, or **3.6**, 64 bit version only. Python 3.7 is not yet supported.
`nimbusml` requires Python **2.7**, **3.5**, **3.6**, or **3.7**, 64 bit version only.

Install `nimbusml` using `pip` with:

Expand Down
40 changes: 31 additions & 9 deletions build.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ set __currentScriptDir=%~dp0
set DependenciesDir=%__currentScriptDir%dependencies\
if not exist "%DependenciesDir%" (md "%DependenciesDir%")

:: Default configuration if no arguents passed to build.cmd (DbgWinPy3.6)
:: Default configuration if no arguents passed to build.cmd (DbgWinPy3.7)
set __BuildArch=x64
set __VCBuildArch=x86_amd64
set Configuration=DbgWinPy3.6
set Configuration=DbgWinPy3.7
set DebugBuild=True
set BuildOutputDir=%__currentScriptDir%x64\
set PythonUrl=https://pythonpkgdeps.blob.core.windows.net/python/python-3.6.5-mohoov-amd64.zip
set PythonRoot=%DependenciesDir%Python3.6
set BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/debug/windows/Boost-3.6-1.64.0.0.zip
set BoostRoot=%DependenciesDir%BoostDbg3.6
set PythonVersion=3.6
set PythonTag=cp36
set PythonUrl=https://pythonpkgdeps.blob.core.windows.net/python/python-3.7.3-amd64.zip
set PythonRoot=%DependenciesDir%Python3.7
set BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/debug/windows/Boost-3.7-1.69.0.0.zip
set BoostRoot=%DependenciesDir%BoostDbg3.7
set PythonVersion=3.7
set PythonTag=cp37
set RunTests=False
set BuildDotNetBridgeOnly=False
set SkipDotNetBridge=False
Expand Down Expand Up @@ -53,6 +53,17 @@ echo " --skipDotNetBridge Build everything except DotNetBridge"
goto :Exit_Success

:Configuration
if /i [%1] == [RlsWinPy3.7] (
set DebugBuild=False
set Configuration=RlsWinPy3.7
set PythonUrl=https://pythonpkgdeps.blob.core.windows.net/python/python-3.7.3-amd64.zip
set PythonRoot=%DependenciesDir%Python3.7
set BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/release/windows/Boost-3.7-1.69.0.0.zip
set BoostRoot=%DependenciesDir%BoostRls3.7
set PythonVersion=3.7
set PythonTag=cp37
shift && goto :Arg_Loop
)
if /i [%1] == [RlsWinPy3.6] (
set DebugBuild=False
set Configuration=RlsWinPy3.6
Expand Down Expand Up @@ -86,6 +97,17 @@ if /i [%1] == [RlsWinPy2.7] (
set PythonTag=cp27
shift && goto :Arg_Loop
)
if /i [%1] == [DbgWinPy3.7] (
set DebugBuild=True
set Configuration=DbgWinPy3.7
set PythonUrl=https://pythonpkgdeps.blob.core.windows.net/python/python-3.7.3-amd64.zip
set PythonRoot=%DependenciesDir%Python3.7
set BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/debug/windows/Boost-3.7-1.69.0.0.zip
set BoostRoot=%DependenciesDir%BoostDbg3.7
set PythonVersion=3.7
set PythonTag=cp37
shift && goto :Arg_Loop
)
if /i [%1] == [DbgWinPy3.6] (
set DebugBuild=True
set Configuration=DbgWinPy3.6
Expand Down Expand Up @@ -240,7 +262,7 @@ if exist %libs% rd %libs% /S /Q
md %libs%
echo.>"%__currentScriptDir%src\python\nimbusml\internal\libs\__init__.py"

if %PythonVersion% == 3.6 (
if %PythonVersion% == 3.7 (
:: Running the check in one python is enough. Entrypoint compiler doesn't run in py2.7.
echo Generating low-level Python API from mainifest.json ...
call "%PythonExe%" -m pip install --upgrade autopep8 autoflake isort jinja2
Expand Down
22 changes: 17 additions & 5 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,20 @@ usage()
echo "Usage: $0 --configuration <Configuration> [--runTests]"
echo ""
echo "Options:"
echo " --configuration <Configuration> Build Configuration (DbgLinPy3.6,DbgLinPy3.5,DbgLinPy2.7,RlsLinPy3.6,RlsLinPy3.5,RlsLinPy2.7,DbgMacPy3.6,DbgMacPy3.5,DbgMacPy2.7,RlsMacPy3.6,RlsMacPy3.5,RlsMacPy2.7)"
echo " --configuration <Configuration> Build Configuration (DbgLinPy3.7,DbgLinPy3.6,DbgLinPy3.5,DbgLinPy2.7,RlsLinPy3.7,RlsLinPy3.6,RlsLinPy3.5,RlsLinPy2.7,DbgMacPy3.7,DbgMacPy3.6,DbgMacPy3.5,DbgMacPy2.7,RlsMacPy3.7,RlsMacPy3.6,RlsMacPy3.5,RlsMacPy2.7)"
echo " --runTests Run tests after build"
echo " --runTestsOnly Run tests on a wheel file in default build location (<repo>/target/)"
echo " --buildNativeBridgeOnly Build only the native bridge code"
echo " --skipNativeBridge Build the DotNet bridge and python wheel but use existing native bridge binaries (e.g. <repo>/x64/DbgLinPy3.6/pybridge.so)"
echo " --skipNativeBridge Build the DotNet bridge and python wheel but use existing native bridge binaries (e.g. <repo>/x64/DbgLinPy3.7/pybridge.so)"
exit 1
}

# Parameter defaults
if [ "$(uname -s)" = "Darwin" ]
then
__configuration=DbgMacPy3.6
__configuration=DbgMacPy3.7
else
__configuration=DbgLinPy3.6
__configuration=DbgLinPy3.7
fi
__runTests=false
__buildNativeBridge=true
Expand Down Expand Up @@ -65,6 +65,12 @@ while [ "$1" != "" ]; do
done

case $__configuration in
*LinPy3.7)
PythonUrl=https://pythonpkgdeps.blob.core.windows.net/anaconda-full/Anaconda3-Linux-2019.03.v2.tar.gz
BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/release/linux/Boost-3.7-1.69.0.0.tar.gz
PythonVersion=3.7
PythonTag=cp37
;;
*LinPy3.6)
PythonUrl=https://pythonpkgdeps.blob.core.windows.net/anaconda-full/Anaconda3-Linux-5.0.1.v2.tar.gz
BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/release/linux/Boost-3.6-1.64.0.0.tar.gz
Expand All @@ -83,6 +89,12 @@ case $__configuration in
PythonVersion=2.7
PythonTag=cp27
;;
*MacPy3.7)
PythonUrl=https://pythonpkgdeps.blob.core.windows.net/anaconda-full/Anaconda3-Mac-2019.03.v2.tar.gz
BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/release/mac/Boost-3.7-1.69.0.0.tar.gz
PythonVersion=3.7
PythonTag=cp37
;;
*MacPy3.6)
PythonUrl=https://pythonpkgdeps.blob.core.windows.net/anaconda-full/Anaconda3-Mac-5.0.1.tar.gz
BoostUrl=https://pythonpkgdeps.blob.core.windows.net/boost/release/mac/Boost-3.6-1.64.0.0.tar.gz
Expand Down Expand Up @@ -242,7 +254,7 @@ then
exit 1
fi
# Review: Adding "--upgrade" to pip install will cause problems when using Anaconda as the python distro because of Anaconda's quirks with pytest.
"${PythonExe}" -m pip install nose pytest graphviz pytest-cov==2.6.0 "jupyter_client>=4.4.0" "nbconvert>=4.2.0"
"${PythonExe}" -m pip install nose "pytest>=4.4.0" graphviz "pytest-cov>=2.6.1" "jupyter_client>=4.4.0" "nbconvert>=4.2.0"
if [ ${PythonVersion} = 2.7 ]
then
"${PythonExe}" -m pip install --upgrade pyzmq
Expand Down
2 changes: 1 addition & 1 deletion build/signed_build_phase.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
parameters:
name: 'default_placeholder_for_name'
config: 'RlsWinPy3.6'
config: 'RlsWinPy3.7'

phases:
######### Only Windows binaries need to be signed ##############################
Expand Down
10 changes: 10 additions & 0 deletions build/vsts-ci-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ phases:
name: Windows
buildScript: build.cmd
buildMatrix:
Py37:
_configuration: RlsWinPy3.7
Py36:
_configuration: RlsWinPy3.6
Py35:
Expand All @@ -21,6 +23,8 @@ phases:
name: Mac
buildScript: ./build.sh
buildMatrix:
Py37:
_configuration: RlsMacPy3.7
Py36:
_configuration: RlsMacPy3.6
Py35:
Expand All @@ -38,6 +42,8 @@ phases:
buildScript: ./build.sh
testDistro: ubuntu16
buildMatrix:
Py37:
_configuration: RlsLinPy3.7
Py36:
_configuration: RlsLinPy3.6
Py35:
Expand All @@ -53,6 +59,8 @@ phases:
buildScript: ./build.sh
testDistro: ubuntu14
buildMatrix:
Py37:
_configuration: RlsLinPy3.7
Py36:
_configuration: RlsLinPy3.6
Py35:
Expand All @@ -68,6 +76,8 @@ phases:
buildScript: ./build.sh
testDistro: centos7
buildMatrix:
Py37:
_configuration: RlsLinPy3.7
Py36:
_configuration: RlsLinPy3.6
Py35:
Expand Down
8 changes: 8 additions & 0 deletions build/vsts-ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
phases:
- template: signed_build_phase.yml
parameters:
name: Build_windows_RlsWinPy3_7
config: RlsWinPy3.7
- template: signed_build_phase.yml
parameters:
name: Build_windows_RlsWinPy3_6
Expand All @@ -20,6 +24,8 @@ phases:
buildScript: ./build.sh
testDistro: noTests
buildMatrix:
Py37:
_configuration: RlsMacPy3.7
Py36:
_configuration: RlsMacPy3.6
Py35:
Expand All @@ -34,6 +40,8 @@ phases:
buildScript: ./build.sh
testDistro: noTests
buildMatrix:
Py37:
_configuration: RlsLinPy3.7
Py36:
_configuration: RlsLinPy3.6
Py35:
Expand Down
2 changes: 1 addition & 1 deletion docs/developers/developer-guide.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Developer Guide
===============

NimbusML runs on Windows, Linux, and macOS and supports Python 3.6, 3.5, and 2.7, 64 bit versions only. It has been tested on Windows 10, MacOS 10.13, Ubuntu 14.04, Ubuntu 16.04, Ubuntu 18.04, CentOS 7, and RHEL 7.
NimbusML runs on Windows, Linux, and macOS and supports Python 3.7, 3.6, 3.5, and 2.7, 64 bit versions only. It has been tested on Windows 10, MacOS 10.13, Ubuntu 14.04, Ubuntu 16.04, Ubuntu 18.04, CentOS 7, and RHEL 7.

Building the repository
=======================
Expand Down
2 changes: 1 addition & 1 deletion docs/developers/linux-build.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Building NimbusML from source on Linux
## Build
Run `./build.sh`

This downloads dependencies (.NET SDK, specific versions of Python and Boost), builds native code and managed code, and packages NimbusML into a pip-installable wheel. This produces debug binaries by default, and release versions can be specified by `./build.sh --configuration RlsLinPy3.6` for examle.
This downloads dependencies (.NET SDK, specific versions of Python and Boost), builds native code and managed code, and packages NimbusML into a pip-installable wheel. This produces debug binaries by default, and release versions can be specified by `./build.sh --configuration RlsLinPy3.7` for examle.

For additional options including running tests and building components independently, see `./build.sh -h`.

Expand Down
2 changes: 1 addition & 1 deletion docs/developers/mac-build.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Building NimbusML from source on Mac
## Build
Run `./build.sh`

This downloads dependencies (.NET SDK, specific versions of Python and Boost), builds native code and managed code, and packages NimbusML into a pip-installable wheel. This produces debug binaries by default, and release versions can be specified by `./build.sh --configuration RlsMacPy3.6` for examle.
This downloads dependencies (.NET SDK, specific versions of Python and Boost), builds native code and managed code, and packages NimbusML into a pip-installable wheel. This produces debug binaries by default, and release versions can be specified by `./build.sh --configuration RlsMacPy3.7` for examle.

For additional options including running tests and building components independently, see `./build.sh -h`.

Expand Down
2 changes: 1 addition & 1 deletion docs/developers/windows-build.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ Building NimbusML from source on Windows
## Build
Run `build.cmd`

This downloads dependencies (.NET SDK, specific versions of Python and Boost), builds native code and managed code, and packages NimbusML into a pip-installable wheel. This produces debug binaries by default, and release versions can be specified by `build.cmd --configuration RlsWinPy3.6` for examle.
This downloads dependencies (.NET SDK, specific versions of Python and Boost), builds native code and managed code, and packages NimbusML into a pip-installable wheel. This produces debug binaries by default, and release versions can be specified by `build.cmd --configuration RlsWinPy3.7` for examle.

For additional options including running tests and building components independently, see `build.cmd -?`.
37 changes: 32 additions & 5 deletions nimbusml.sln
Original file line number Diff line number Diff line change
Expand Up @@ -25,76 +25,103 @@ Global
DbgLinPy2.7|x64 = DbgLinPy2.7|x64
DbgLinPy3.5|x64 = DbgLinPy3.5|x64
DbgLinPy3.6|x64 = DbgLinPy3.6|x64
DbgLinPy3.7|x64 = DbgLinPy3.7|x64
DbgWinPy2.7|x64 = DbgWinPy2.7|x64
DbgWinPy3.5|x64 = DbgWinPy3.5|x64
DbgWinPy3.6|x64 = DbgWinPy3.6|x64
DbgWinPy3.7|x64 = DbgWinPy3.7|x64
RlsLinPy2.7|x64 = RlsLinPy2.7|x64
RlsLinPy3.5|x64 = RlsLinPy3.5|x64
RlsLinPy3.6|x64 = RlsLinPy3.6|x64
RlsLinPy3.7|x64 = RlsLinPy3.7|x64
RlsMacPy3.6|x64 = RlsMacPy3.6|x64
RlsMacPy3.7|x64 = RlsMacPy3.7|x64
RlsWinPy2.7|x64 = RlsWinPy2.7|x64
RlsWinPy3.5|x64 = RlsWinPy3.5|x64
RlsWinPy3.6|x64 = RlsWinPy3.6|x64
RlsWinPy3.7|x64 = RlsWinPy3.7|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgLinPy2.7|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgLinPy3.5|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgLinPy3.6|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgLinPy3.7|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgWinPy2.7|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgWinPy3.5|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgWinPy3.6|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.DbgWinPy3.7|x64.ActiveCfg = Debug|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsLinPy2.7|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsLinPy3.5|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsLinPy3.6|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsLinPy3.7|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsMacPy3.6|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsMacPy3.7|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsWinPy2.7|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsWinPy3.5|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsWinPy3.6|x64.ActiveCfg = Release|Any CPU
{8DFF150B-E1C6-4EB4-90C7-9D69E9E7CCA1}.RlsWinPy3.7|x64.ActiveCfg = Release|Any CPU
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy2.7|x64.ActiveCfg = DbgLinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy2.7|x64.Build.0 = DbgLinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy3.5|x64.ActiveCfg = DbgLinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy3.5|x64.Build.0 = DbgLinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy3.6|x64.ActiveCfg = DbgLinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy3.7|x64.ActiveCfg = DbgLinPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy3.6|x64.Build.0 = DbgLinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgLinPy3.7|x64.Build.0 = DbgLinPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy2.7|x64.ActiveCfg = DbgWinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy2.7|x64.Build.0 = DbgWinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy3.5|x64.ActiveCfg = DbgWinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy3.5|x64.Build.0 = DbgWinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy3.6|x64.ActiveCfg = DbgWinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy3.7|x64.ActiveCfg = DbgWinPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy3.6|x64.Build.0 = DbgWinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.DbgWinPy3.7|x64.Build.0 = DbgWinPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy2.7|x64.ActiveCfg = RlsLinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy2.7|x64.Build.0 = RlsLinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy3.5|x64.ActiveCfg = RlsLinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy3.5|x64.Build.0 = RlsLinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy3.6|x64.ActiveCfg = RlsLinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy3.7|x64.ActiveCfg = RlsLinPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy3.6|x64.Build.0 = RlsLinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsLinPy3.7|x64.Build.0 = RlsLinPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsMacPy3.6|x64.ActiveCfg = RlsMacPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsMacPy3.7|x64.ActiveCfg = RlsMacPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsMacPy3.6|x64.Build.0 = RlsMacPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsMacPy3.7|x64.Build.0 = RlsMacPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy2.7|x64.ActiveCfg = RlsWinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy2.7|x64.Build.0 = RlsWinPy2.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy3.5|x64.ActiveCfg = RlsWinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy3.5|x64.Build.0 = RlsWinPy3.5|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy3.6|x64.ActiveCfg = RlsWinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy3.7|x64.ActiveCfg = RlsWinPy3.7|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy3.6|x64.Build.0 = RlsWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgLinPy2.7|x64.ActiveCfg = DbgWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgLinPy3.5|x64.ActiveCfg = DbgWinPy3.6|x64
{EC58F2CF-A1D5-4E28-97F9-69B1E46F6F63}.RlsWinPy3.7|x64.Build.0 = RlsWinPy3.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgLinPy2.7|x64.ActiveCfg = DbgWinPy2.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgLinPy3.5|x64.ActiveCfg = DbgWinPy3.5|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgLinPy3.6|x64.ActiveCfg = DbgWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgLinPy3.7|x64.ActiveCfg = DbgWinPy3.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy2.7|x64.ActiveCfg = DbgWinPy2.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy2.7|x64.Build.0 = DbgWinPy2.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy3.5|x64.ActiveCfg = DbgWinPy3.5|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy3.5|x64.Build.0 = DbgWinPy3.5|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy3.6|x64.ActiveCfg = DbgWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy3.7|x64.ActiveCfg = DbgWinPy3.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy3.6|x64.Build.0 = DbgWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsLinPy2.7|x64.ActiveCfg = RlsWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsLinPy3.5|x64.ActiveCfg = RlsWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.DbgWinPy3.7|x64.Build.0 = DbgWinPy3.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsLinPy2.7|x64.ActiveCfg = RlsWinPy2.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsLinPy3.5|x64.ActiveCfg = RlsWinPy3.5|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsLinPy3.6|x64.ActiveCfg = RlsWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsMacPy3.6|x64.ActiveCfg = DbgWinPy3.5|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsLinPy3.7|x64.ActiveCfg = RlsWinPy3.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsMacPy3.6|x64.ActiveCfg = DbgWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsMacPy3.7|x64.ActiveCfg = DbgWinPy3.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy2.7|x64.ActiveCfg = RlsWinPy2.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy2.7|x64.Build.0 = RlsWinPy2.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy3.5|x64.ActiveCfg = RlsWinPy3.5|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy3.5|x64.Build.0 = RlsWinPy3.5|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy3.6|x64.ActiveCfg = RlsWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy3.7|x64.ActiveCfg = RlsWinPy3.7|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy3.6|x64.Build.0 = RlsWinPy3.6|x64
{3DA0AF32-A05B-4ECF-8010-83B14612FBB3}.RlsWinPy3.7|x64.Build.0 = RlsWinPy3.7|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Loading