-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #116 from Esri/develop
Release 1.4
- Loading branch information
Showing
50 changed files
with
642 additions
and
639 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
.venv* | ||
build | ||
dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,7 +10,9 @@ | |
/**/__pycache__ | ||
/test-reports/ | ||
|
||
/.venv*/ | ||
**/.conda-*/ | ||
**/.venv*/ | ||
|
||
/**/Pipfile.lock | ||
|
||
# development mode | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,13 +10,15 @@ PyPRT provides a Python binding for PRT (Procedural RunTime) of CityEngine. This | |
* [Minimal Example](#minimal-example) | ||
* [Documentation](#documentation) | ||
* [Development](#development) | ||
* [License](#license) | ||
* [Licensing Information](#licensing-information) | ||
|
||
## Installation | ||
|
||
Run `pip install pyprt` in your (virtual) Python environment or `conda install -c esri pyprt` in a Conda environment. Then use `import pyprt` in your scripts. | ||
|
||
We provide wheels for Python 3.6 and 3.8 on Linux, Windows and macOS. Additionally, we also provide wheels for Python 3.7 on Windows. Conda packages are available for Python 3.6, 3.7 and 3.8 on Linux, Windows and macOS. For other Python versions please [build](#development) PyPRT yourself. | ||
We provide wheels for Python 3.6, 3.8 and 3.9 on Linux and Windows. Additionally, we also provide wheels for Python 3.7 on Windows. Conda packages are available for Python 3.6, 3.7, 3.8 and 3.9(*) on Linux and Windows. For other Python versions please [build](#development) PyPRT yourself. | ||
|
||
(*) A note regarding Python 3.9 and Conda: The arcgis package for Python 3.9 is not yet available in Conda, therefore the arcgis submodule in PyPRT is not yet working with Python 3.9. | ||
|
||
## Minimal Example | ||
|
||
|
@@ -71,9 +73,8 @@ The project is composed of two parts: the C++ native directory (`src`) and Pytho | |
### Requirements | ||
|
||
* C++ Compiler (C++ 17) | ||
* Windows: MSVC 14.23 or later | ||
* Linux: GCC 8 or later (we build and test on RHEL7/CentOS7) | ||
* macOS (Catalina or later): Xcode 11 or later | ||
* Windows: MSVC 14.27 or later | ||
* Linux: GCC 9.3 or later (we build and test on RHEL7/CentOS7) | ||
* Python (version >= 3.6) | ||
* Packages (latest version if not specified): wheel, arcgis 1.8.2, twine, sphinx, pkginfo, xmlrunner | ||
* Optional: Conda (e.g. miniconda3) | ||
|
@@ -83,27 +84,26 @@ The project is composed of two parts: the C++ native directory (`src`) and Pytho | |
A note regarding the meaning of "open a shell" in the following sections: this implies that the shell also needs to have the correct C++ compiler activated: | ||
|
||
* On Windows, use the shortcuts provided by Visual Studio or run `vcvarsall.bat` of the desired MSVC toolchain. | ||
* On RHEL-based Linux, run e.g. `source /opt/rh/devtoolset-8/enable`. | ||
* On macOS, there is usually no action required (the current Xcode command line tools are activated by default). | ||
* On RHEL-based Linux, run e.g. `source /opt/rh/devtoolset-9/enable`. | ||
|
||
_Note: on Windows, replace `bin` with `Scripts` in the following commands. Some commands also differ in their file extension between Linux and Windows (`.sh` vs `.bat` and similar). Please refer to the `venv` documentation for details: <https://docs.python.org/3.6/library/venv.html>_ | ||
|
||
### Build Python Wheel | ||
|
||
1. Open a shell in the PyPRT git root. | ||
1. First time only: set up a virtual Python environment with build dependencies for PyPRT. Adapt `python3.6` and `centos7/py36` to your desired OS/Python combination. | ||
1. First time only: set up a virtual Python environment with build dependencies for PyPRT. Adapt `python3.6` and the `envs` file to your desired OS/Python combination. | ||
1. Create the virtual environment: `python3.6 -m venv .venv` | ||
1. Get latest pip: `.venv/bin/python -m pip install --upgrade pip` | ||
1. Get latest wheel: `.venv/bin/python -m pip install --upgrade wheel` | ||
1. Install build dependencies for PyPRT: `.venv/bin/python -m pip install -r envs/centos7/py36/requirements.txt` | ||
1. Install build dependencies for PyPRT: `.venv/bin/python -m pip install -r envs/centos7/wheel/requirements-py3.6.txt` | ||
1. Run `.venv/bin/python setup.py bdist_wheel`. This will build the CMake project and Python packages. | ||
1. The resulting wheel is written to the temporary `dist` folder. | ||
|
||
### Build Conda Package | ||
|
||
1. Install Miniconda or Anaconda. | ||
1. Open a shell in the PyPRT git root and activate Miniconda (or Anaconda). | ||
1. First time only: run `conda env create --prefix ./env --file envs/centos7/py36-conda/environment.yml` to create a conda environment with all the required Python packages (adapt `centos7/py36-conda` to your desired OS/Python combination). | ||
1. First time only: run `conda env create --prefix ./env --file envs/centos7/conda/environment-py3.6.yml` to create a conda environment with all the required Python packages (adapt `centos7` and `environment-py3.6.yml` to your desired OS/Python combination). | ||
1. Run `activate ./env`. | ||
1. Run `python setup.py bdist_conda`. This will build the CMake project and Python packages. | ||
1. The resulting package is written to the `./env/conda-bld/{platform}` folder. | ||
|
@@ -158,29 +158,33 @@ Note: We only support Docker on Linux and Windows. On Windows, Docker needs to b | |
#### Build Wheels | ||
|
||
1. Open a shell in the PyPRT git root | ||
1. Create the desired image for the build toolchain (adapt `py36` to your desired Python version): | ||
* Linux: `docker build --rm -f envs/centos7/py36/Dockerfile -t pyprt:centos7-py36 --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) .` | ||
* Windows: `docker build --rm -f envs\windows\py36\Dockerfile -t pyprt:windows-py36 .` | ||
1. Create the desired image for the build toolchain (adapt to your desired Python version): | ||
* Linux: `docker build --rm -f envs/centos7/wheel/Dockerfile -t pyprt:centos7-py3.6 --build-arg PY_VER=3.6 --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) .` | ||
* Windows: `docker build --rm -f envs\windows\wheel\Dockerfile -t pyprt:windows-py3.6 --build-arg PY_VER=3.6 .` | ||
1. Run the build | ||
* Linux: `docker run --rm -v $(pwd):/tmp/pyprt/root -w /tmp/pyprt/root pyprt:centos7-py36 bash -c 'python setup.py bdist_wheel'` | ||
* Windows: `docker run --rm -v %cd%:C:\temp\pyprt\root -w C:\temp\pyprt\root pyprt:windows-py36 cmd /c "python setup.py bdist_wheel"` | ||
* Linux: `docker run --rm -v $(pwd):/tmp/pyprt/root -w /tmp/pyprt/root pyprt:centos7-py3.6 bash -c 'python setup.py bdist_wheel'` | ||
* Windows: `docker run --rm -v %cd%:C:\temp\pyprt\root -w C:\temp\pyprt\root pyprt:windows-py3.6 cmd /c "python setup.py bdist_wheel"` | ||
1. The resulting wheel should appear in the `dist` directory. | ||
|
||
#### Build Conda Packages | ||
|
||
1. Open a shell in the PyPRT git root | ||
1. Create the desired image for the build toolchain (adapt `py36` to your desired Python version): | ||
* Linux: `docker build --rm -f envs/centos7/py36-conda/Dockerfile -t pyprt:centos7-py36-conda .` | ||
* Windows: `docker build --rm -f envs\windows\py36-conda\Dockerfile -t pyprt:windows-py36-conda .` | ||
1. Create the desired image for the build toolchain (adapt `py3.6` to your desired Python version): | ||
* Linux: `docker build --rm -f envs/centos7/conda/Dockerfile -t pyprt:centos7-py3.6-conda --build-arg PY_VER=3.6 --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) .` | ||
* Windows: `docker build --rm -f envs\windows\conda\Dockerfile -t pyprt:windows-py3.6-conda --build-arg PY_VER=3.6 .` | ||
1. Run the build | ||
* Linux: `docker run --rm -v $(pwd):/tmp/pyprt/root -w /tmp/pyprt/root pyprt:centos7-py36-conda bash -c 'python setup.py bdist_conda && cp -r /tmp/pyprt/pyprt-conda-env/conda-bld/linux-64/pyprt*.tar.bz2 /tmp/pyprt/root'` | ||
* Windows: `docker run --rm -v %cd%:C:\temp\pyprt\root -w C:\temp\pyprt\root pyprt:windows-py36-conda cmd /c "python setup.py bdist_conda && copy C:\temp\conda\envs\pyprt\conda-bld\win-64\pyprt-*.tar.bz2 C:\temp\pyprt\root"` | ||
1. The resulting conda package will be located in the current directy (PyPRT git repo root). | ||
* Linux: `docker run --rm -v $(pwd):/tmp/pyprt/root -w /tmp/pyprt/root pyprt:centos7-py3.6-conda bash -c 'python setup.py bdist_conda && cp -r /tmp/pyprt/pyprt-conda-env/conda-bld/linux-64/pyprt*.tar.bz2 /tmp/pyprt/root'` | ||
* Windows: `docker run --rm -v %cd%:C:\temp\pyprt\root -w C:\temp\pyprt\root pyprt:windows-py3.6-conda cmd /c "python setup.py bdist_conda && copy C:\temp\conda\envs\pyprt\conda-bld\win-64\pyprt-*.tar.bz2 C:\temp\pyprt\root"` | ||
1. The resulting conda package will be located in the current directly (PyPRT git repo root). | ||
|
||
## Licensing Information | ||
|
||
PyPRT is free for personal, educational, and non-commercial use. Commercial use requires at least one commercial license of the latest CityEngine version installed in the organization. Redistribution or web service offerings are not allowed unless expressly permitted. | ||
|
||
## License | ||
PyPRT is under the same license as the included [CityEngine SDK](https://github.com/esri/cityengine-sdk#licensing). An exception is the PyPRT source code (without CityEngine SDK, binaries, or object code), which is licensed under the Apache License, Version 2.0 (the “License”); you may not use this work except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
PyPRT is under the same license as the included [CityEngine SDK](https://github.com/Esri/cityengine-sdk#licensing). | ||
All content in the "Examples" directory/section is licensed under the APACHE 2.0 license as well. | ||
|
||
An exception is the PyPRT source code (without CityEngine SDK, binaries, or object code), which is licensed under the Apache License, Version 2.0 (the “License”); you may not use this work except in compliance with the License. You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>. | ||
For questions or enquiries, please contact the Esri CityEngine team ([email protected]). | ||
|
||
[Back to top](#table-of-contents) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
.idea |
Oops, something went wrong.