diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index c0f4a3a6..01341eb6 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -2,23 +2,31 @@ name: conda-build-linux on: workflow_dispatch: + inputs: + variant: + description: "Variant of the conda package to build" + required: true + type: string + default: "linux_64_python3.10_cpython" jobs: - build: - runs-on: ubuntu-latest steps: - - name: checkout - uses: actions/checkout@v4 + - name: checkout + uses: actions/checkout@v4 - - name: build conda package - run: ./build-py310.sh - working-directory: infra/conda/chaste - - - name: upload conda package artifacts - uses: actions/upload-artifact@v4 - with: - name: pychaste-conda - path: infra/conda/chaste/build_artifacts/linux-64 + - name: build conda package + run: | + docker run -e HOST_USER_ID="$(id -u)" -v $(pwd):/home/conda \ + quay.io/condaforge/linux-anvil-cos7-x86_64 ./build-package.sh \ + --variant=${{ github.event.inputs.variant }} \ + --parallel=$(nproc) + working-directory: infra/conda/chaste/2024.1 + + - name: upload conda package artifacts + uses: actions/upload-artifact@v4 + with: + name: pychaste-conda + path: infra/conda/chaste/build_artifacts/linux-64 diff --git a/.github/workflows/test-conda.yml b/.github/workflows/test-conda.yml index 2aaca494..7fe51fc2 100644 --- a/.github/workflows/test-conda.yml +++ b/.github/workflows/test-conda.yml @@ -9,6 +9,11 @@ jobs: test-conda: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11"] + steps: - name: install dependencies run: | @@ -22,9 +27,9 @@ jobs: use-mamba: true miniforge-variant: Mambaforge miniforge-version: latest - python-version: "3.10" + python-version: ${{ matrix.python-version }} activate-environment: pychaste_test - channels: pychaste,conda-forge,bioconda + channels: pychaste,conda-forge - name: install pychaste run: mamba install -n pychaste_test -y chaste diff --git a/.gitignore b/.gitignore index daf9c297..1feaab39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # No shared libraries and compiled Python *.so *.pyc +__pycache__/ # No eclipse settings *.project *.cproject diff --git a/README.md b/README.md index 39f3d720..b4305920 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,21 @@ # PyChaste -PyChaste is a Python wrapper for [Chaste](https://chaste.github.io/), a general purpose simulation package for computational biology. +PyChaste is a Python wrapper for [Chaste](https://chaste.github.io/), a general +purpose simulation package for computational biology. + +Currently a limited number of features are supported, mostly related to +cell-based Chaste. ## Installation -`mamba install -c pychaste -c conda-forge -c bioconda chaste` +`mamba install -c pychaste -c conda-forge chaste` -See the [website](https://chaste.github.io/pychaste/installation/) for a detailed guide on installing PyChaste. +See the [website](https://chaste.github.io/pychaste/installation/) for a +detailed guide on installing PyChaste. ## Tutorials -See the [website](https://chaste.github.io/pychaste/tutorials/) for tutorials demonstrating how to use PyChaste. +See the [website](https://chaste.github.io/pychaste/tutorials/) for tutorials +demonstrating how to use PyChaste. ## Extending See the [wiki](../../wiki/) for guidance on extending PyChaste. + diff --git a/dynamic/wrappers/cell_based/Edge2.cppwg.cpp b/dynamic/wrappers/cell_based/Edge2.cppwg.cpp deleted file mode 100644 index ae730c77..00000000 --- a/dynamic/wrappers/cell_based/Edge2.cppwg.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "SmartPointers.hpp" -#include "UblasIncludes.hpp" -#include "PythonUblasObjectConverters.hpp" -#include "Edge.hpp" - -#include "Edge2.cppwg.hpp" - -namespace py = pybind11; -typedef Edge<2 > Edge2; -PYBIND11_DECLARE_HOLDER_TYPE(T, boost::shared_ptr); - -void register_Edge2_class(py::module &m){ -py::class_ >(m, "Edge2") - .def(py::init(), py::arg("index")) - .def(py::init *, ::Node<2> * >(), py::arg("index"), py::arg("pNodeA"), py::arg("pNodeB")) - .def_static( - "GenerateMapIndex", - (::std::pair(*)(unsigned int, unsigned int)) &Edge2::GenerateMapIndex, - " " , py::arg("index1"), py::arg("index2") ) - .def( - "MarkAsDeleted", - (void(Edge2::*)()) &Edge2::MarkAsDeleted, - " " ) - .def( - "IsDeleted", - (bool(Edge2::*)()) &Edge2::IsDeleted, - " " ) - .def( - "SetIndex", - (void(Edge2::*)(unsigned int)) &Edge2::SetIndex, - " " , py::arg("index") ) - .def( - "GetIndex", - (unsigned int(Edge2::*)() const ) &Edge2::GetIndex, - " " ) - .def( - "GetMapIndex", - (::std::pair(Edge2::*)()) &Edge2::GetMapIndex, - " " ) - .def( - "RemoveNodes", - (void(Edge2::*)()) &Edge2::RemoveNodes, - " " ) - .def( - "SetNodes", - (void(Edge2::*)(::Node<2> *, ::Node<2> *)) &Edge2::SetNodes, - " " , py::arg("pNodeA"), py::arg("pNodeB") ) - .def( - "ReplaceNode", - (void(Edge2::*)(::Node<2> *, ::Node<2> *)) &Edge2::ReplaceNode, - " " , py::arg("pOldNode"), py::arg("pNewNode") ) - .def( - "GetNode", - (::Node<2> *(Edge2::*)(unsigned int) const ) &Edge2::GetNode, - " " , py::arg("index") , py::return_value_policy::reference) - .def( - "GetNumNodes", - (unsigned int(Edge2::*)()) &Edge2::GetNumNodes, - " " ) - .def( - "ContainsNode", - (bool(Edge2::*)(::Node<2> *) const ) &Edge2::ContainsNode, - " " , py::arg("pNode") ) - .def( - "rGetCentreLocation", - (::boost::numeric::ublas::c_vector(Edge2::*)()) &Edge2::rGetCentreLocation, - " " ) - .def( - "rGetLength", - (double(Edge2::*)()) &Edge2::rGetLength, - " " ) - .def( - "GetOtherElements", - (::std::set(Edge2::*)(unsigned int)) &Edge2::GetOtherElements, - " " , py::arg("elementIndex") ) - .def( - "AddElement", - (void(Edge2::*)(unsigned int)) &Edge2::AddElement, - " " , py::arg("elementIndex") ) - .def( - "RemoveElement", - (void(Edge2::*)(unsigned int)) &Edge2::RemoveElement, - " " , py::arg("elementIndex") ) - .def( - "GetNeighbouringElementIndices", - (::std::set(Edge2::*)()) &Edge2::GetNeighbouringElementIndices, - " " ) - .def( - "GetNumElements", - (unsigned int(Edge2::*)()) &Edge2::GetNumElements, - " " ) - .def( - "IsBoundaryEdge", - (bool(Edge2::*)() const ) &Edge2::IsBoundaryEdge, - " " ) - ; -} diff --git a/dynamic/wrappers/cell_based/Edge2.cppwg.hpp b/dynamic/wrappers/cell_based/Edge2.cppwg.hpp deleted file mode 100644 index be984b6b..00000000 --- a/dynamic/wrappers/cell_based/Edge2.cppwg.hpp +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef Edge2_hpp__pyplusplus_wrapper -#define Edge2_hpp__pyplusplus_wrapper - -namespace py = pybind11; -void register_Edge2_class(py::module &m); -#endif // Edge2_hpp__pyplusplus_wrapper diff --git a/dynamic/wrappers/cell_based/Edge3.cppwg.cpp b/dynamic/wrappers/cell_based/Edge3.cppwg.cpp deleted file mode 100644 index d338e934..00000000 --- a/dynamic/wrappers/cell_based/Edge3.cppwg.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "SmartPointers.hpp" -#include "UblasIncludes.hpp" -#include "PythonUblasObjectConverters.hpp" -#include "Edge.hpp" - -#include "Edge3.cppwg.hpp" - -namespace py = pybind11; -typedef Edge<3 > Edge3; -PYBIND11_DECLARE_HOLDER_TYPE(T, boost::shared_ptr); - -void register_Edge3_class(py::module &m){ -py::class_ >(m, "Edge3") - .def(py::init(), py::arg("index")) - .def(py::init *, ::Node<3> * >(), py::arg("index"), py::arg("pNodeA"), py::arg("pNodeB")) - .def_static( - "GenerateMapIndex", - (::std::pair(*)(unsigned int, unsigned int)) &Edge3::GenerateMapIndex, - " " , py::arg("index1"), py::arg("index2") ) - .def( - "MarkAsDeleted", - (void(Edge3::*)()) &Edge3::MarkAsDeleted, - " " ) - .def( - "IsDeleted", - (bool(Edge3::*)()) &Edge3::IsDeleted, - " " ) - .def( - "SetIndex", - (void(Edge3::*)(unsigned int)) &Edge3::SetIndex, - " " , py::arg("index") ) - .def( - "GetIndex", - (unsigned int(Edge3::*)() const ) &Edge3::GetIndex, - " " ) - .def( - "GetMapIndex", - (::std::pair(Edge3::*)()) &Edge3::GetMapIndex, - " " ) - .def( - "RemoveNodes", - (void(Edge3::*)()) &Edge3::RemoveNodes, - " " ) - .def( - "SetNodes", - (void(Edge3::*)(::Node<3> *, ::Node<3> *)) &Edge3::SetNodes, - " " , py::arg("pNodeA"), py::arg("pNodeB") ) - .def( - "ReplaceNode", - (void(Edge3::*)(::Node<3> *, ::Node<3> *)) &Edge3::ReplaceNode, - " " , py::arg("pOldNode"), py::arg("pNewNode") ) - .def( - "GetNode", - (::Node<3> *(Edge3::*)(unsigned int) const ) &Edge3::GetNode, - " " , py::arg("index") , py::return_value_policy::reference) - .def( - "GetNumNodes", - (unsigned int(Edge3::*)()) &Edge3::GetNumNodes, - " " ) - .def( - "ContainsNode", - (bool(Edge3::*)(::Node<3> *) const ) &Edge3::ContainsNode, - " " , py::arg("pNode") ) - .def( - "rGetCentreLocation", - (::boost::numeric::ublas::c_vector(Edge3::*)()) &Edge3::rGetCentreLocation, - " " ) - .def( - "rGetLength", - (double(Edge3::*)()) &Edge3::rGetLength, - " " ) - .def( - "GetOtherElements", - (::std::set(Edge3::*)(unsigned int)) &Edge3::GetOtherElements, - " " , py::arg("elementIndex") ) - .def( - "AddElement", - (void(Edge3::*)(unsigned int)) &Edge3::AddElement, - " " , py::arg("elementIndex") ) - .def( - "RemoveElement", - (void(Edge3::*)(unsigned int)) &Edge3::RemoveElement, - " " , py::arg("elementIndex") ) - .def( - "GetNeighbouringElementIndices", - (::std::set(Edge3::*)()) &Edge3::GetNeighbouringElementIndices, - " " ) - .def( - "GetNumElements", - (unsigned int(Edge3::*)()) &Edge3::GetNumElements, - " " ) - .def( - "IsBoundaryEdge", - (bool(Edge3::*)() const ) &Edge3::IsBoundaryEdge, - " " ) - ; -} diff --git a/dynamic/wrappers/cell_based/Edge3.cppwg.hpp b/dynamic/wrappers/cell_based/Edge3.cppwg.hpp deleted file mode 100644 index 0479d864..00000000 --- a/dynamic/wrappers/cell_based/Edge3.cppwg.hpp +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef Edge3_hpp__pyplusplus_wrapper -#define Edge3_hpp__pyplusplus_wrapper - -namespace py = pybind11; -void register_Edge3_class(py::module &m); -#endif // Edge3_hpp__pyplusplus_wrapper diff --git a/dynamic/wrappers/cell_based/EdgeOperation.cppwg.cpp b/dynamic/wrappers/cell_based/EdgeOperation.cppwg.cpp deleted file mode 100644 index 354032a8..00000000 --- a/dynamic/wrappers/cell_based/EdgeOperation.cppwg.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "SmartPointers.hpp" -#include "UblasIncludes.hpp" -#include "EdgeOperation.hpp" - -#include "EdgeOperation.cppwg.hpp" - -namespace py = pybind11; -typedef EdgeOperation EdgeOperation; -PYBIND11_DECLARE_HOLDER_TYPE(T, boost::shared_ptr); - -void register_EdgeOperation_class(py::module &m){ -py::class_ >(m, "EdgeOperation") - .def(py::init< >()) - .def(py::init<::EDGE_OPERATION, unsigned int, ::EdgeRemapInfo, bool const >(), py::arg("operation"), py::arg("elementIndex"), py::arg("remapInfo"), py::arg("isIndexRemapped") = false) - .def(py::init(), py::arg("elementIndex"), py::arg("elementIndex2"), py::arg("remapInfo"), py::arg("remapInfo2")) - .def( - "GetOperation", - (::EDGE_OPERATION(EdgeOperation::*)() const ) &EdgeOperation::GetOperation, - " " ) - .def( - "GetElementIndex", - (unsigned int(EdgeOperation::*)() const ) &EdgeOperation::GetElementIndex, - " " ) - .def( - "SetElementIndex", - (void(EdgeOperation::*)(unsigned int const)) &EdgeOperation::SetElementIndex, - " " , py::arg("index") ) - .def( - "GetElementIndex2", - (unsigned int(EdgeOperation::*)() const ) &EdgeOperation::GetElementIndex2, - " " ) - .def( - "SetElementIndex2", - (void(EdgeOperation::*)(unsigned int const)) &EdgeOperation::SetElementIndex2, - " " , py::arg("index") ) - .def( - "rGetRemapInfo", - (::EdgeRemapInfo const &(EdgeOperation::*)() const ) &EdgeOperation::rGetRemapInfo, - " " , py::return_value_policy::reference_internal) - .def( - "rGetRemapInfo2", - (::EdgeRemapInfo const &(EdgeOperation::*)() const ) &EdgeOperation::rGetRemapInfo2, - " " , py::return_value_policy::reference_internal) - .def( - "IsElementIndexRemapped", - (bool(EdgeOperation::*)() const ) &EdgeOperation::IsElementIndexRemapped, - " " ) - ; -} diff --git a/dynamic/wrappers/cell_based/EdgeOperation.cppwg.hpp b/dynamic/wrappers/cell_based/EdgeOperation.cppwg.hpp deleted file mode 100644 index 7f343101..00000000 --- a/dynamic/wrappers/cell_based/EdgeOperation.cppwg.hpp +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef EdgeOperation_hpp__pyplusplus_wrapper -#define EdgeOperation_hpp__pyplusplus_wrapper - -namespace py = pybind11; -void register_EdgeOperation_class(py::module &m); -#endif // EdgeOperation_hpp__pyplusplus_wrapper diff --git a/infra/conda/.gitignore b/infra/conda/.gitignore new file mode 100644 index 00000000..5bb2232a --- /dev/null +++ b/infra/conda/.gitignore @@ -0,0 +1,10 @@ +*.pyc +build_artifacts/ +.bash_history +.bash_logout +.bash_profile +.bashrc +.conda/ +.condarc +.cache +.python_history diff --git a/infra/conda/4suite-xml/build.sh b/infra/conda/4suite-xml/build.sh deleted file mode 100644 index f80d1571..00000000 --- a/infra/conda/4suite-xml/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install --prefix=$PREFIX - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/infra/conda/4suite-xml/meta.yaml b/infra/conda/4suite-xml/meta.yaml deleted file mode 100644 index 33ec2041..00000000 --- a/infra/conda/4suite-xml/meta.yaml +++ /dev/null @@ -1,56 +0,0 @@ -package: - name: 4suite-xml - version: "1.0.2" - -source: - fn: 4Suite-XML-1.0.2.tar.gz - url: https://pypi.python.org/packages/0e/ae/3c5b4fffb12be7c3a80c99475853349e1cf8477f99051921ea06fbf5e3b9/4Suite-XML-1.0.2.tar.gz - md5: 3ca3db95cb0263ad80beba034d1ff6ea -# patches: - # List any patch files here - # - fix.patch - -# build: - # noarch_python: True - # preserve_egg_dir: True - # entry_points: - # Put any entry points (scripts to be generated automatically) here. The - # syntax is module:function. For example - # - # - amara = amara:main - # - # Would create an entry point called amara that calls amara.main() - - - # If this is a new build for the same version, increment the build - # number. If you do not include this key, it defaults to 0. - # number: 1 - -requirements: - build: - - python - - run: - - python - - # commands: - # You can put test commands to be run here. Use this to test that the - # entry points work. - - - # You can also put a file called run_test.py in the recipe that will be run - # at test time. - - # requires: - # Put any additional test requirements here. For example - # - nose - -about: - home: http://wiki.xml3k.org/Amara2 - license: Apache Software License - summary: 'Library for XML processing in Python' - license_family: Apache - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/README.md b/infra/conda/README.md index cfb2b717..eaa753e1 100644 --- a/infra/conda/README.md +++ b/infra/conda/README.md @@ -1,56 +1,103 @@ -# How to build the conda package +# PyChaste conda packages -The `chaste` conda package is on the channel`jmsgrogan` on the anaconda cloud. -This directory contains build scripts for the package and all neccessary dependency packages. -Assuming conda has been suitably set up, each package can be re-built by doing: +The [pychaste](https://anaconda.org/pychaste) channel on the anaconda cloud +hosts the `chaste` conda package and required dependency packages for `vtk` and +`xsd`. Other dependencies such as `petsc` and `sundials` are installed from +[conda-forge](https://anaconda.org/conda-forge). + +## How to build the conda packages + +This directory contains build scripts for the conda packages on the +[pychaste](https://anaconda.org/pychaste) channel. Assuming +[mamba](https://mamba.readthedocs.io) and +[docker](https://docs.docker.com/get-docker/) have been installed, the conda +packages can be built with the instructions below. + +### Building the Linux conda packages + +The following lines launch a docker container to build the package. + +A list of `yaml` files containing settings for package variants can be found in +the `variants` folder of each package. The variant name is the name of the file +without the `.yaml` extenstion. For example, one of the variants for the `vtk` +package is `linux_64_python3.8_cpython`. + +The `parallel` argument optionally specifies the maximum number of processes to +use for the build. ```bash -cd -conda build . +cd /path/to/PyChaste/infra/conda// + +docker run -it --rm \ + -v $(pwd):/home/conda \ + -e HOST_USER_ID="$(id -u)" \ + quay.io/condaforge/linux-anvil-cos7-x86_64 \ + ./build-package.sh --variant= --parallel=4 ``` -If you are happy with the package it can be uploaded to the anaconda cloud channel by doing: +After the build is complete, you can verify that the package has been created: ```bash -anaconda upload +ls ./build_artifacts/linux-64 ``` -where `` will be shown in the console after a successful build. -Additional steps are needed for the `chaste` package, detailed below. - -## Preparing conda for the build +There should be a `--.tar.bz2` file in the +directory. -To set up conda for the build do: +To do a test installation of the freshly built package, you can install the +local package in a new conda environment. For example: ```bash -wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -chmod 777 Miniconda2-latest-Linux-x86_64.sh -./Miniconda2-latest-Linux-x86_64.sh -conda update conda -conda install conda-build -conda install anaconda-client -conda config --add channels conda-forge -conda config --add channels jmsgrogan +conda create -n py38-env python=3.8 +conda activate py38-env +conda install -c ./build_artifacts ``` -## Preparing Chaste for the build. - -* Set the path to source: while most packages are automatically grabbed from their version control systems the path to the Chaste source must be manually specified in `chaste/meta.yaml` relative to this directory. - -## Working with the package +You can start a python session to import and use the package. If you are happy +with the package, it can be uploaded to the anaconda cloud. This requires +creating an anaconda account and installing the anaconda client: ```bash -conda install chaste +conda install anaconda-client ``` -then in a python session: +To login to the anaconda cloud and upload the package: -```python -import chaste +```bash +anaconda login +anaconda upload -u '' /path/to/package.tar.bz2 ``` -## Troubleshooting +## Updating the conda package recipes + +For each of the packages, the directory containing the build scripts roughly +follows this structure: -* Missing librt.so: this is a problem with the version of VTK in conda-forge, make sure VTK is being pulled from the jmsgrogan channel. -* Missing liblapack.so when loading the package in Python after building: libatlas is needed on the system. Do `sudo apt-get install libatlas-base-dev` on Ubuntu, for example. +``` +├── build-package.sh +├── recipe +│   ├── build.sh +│   └── meta.yaml +└── variants + ├── .yaml + ├── .yaml + └── .yaml +``` +- `build-package.sh`: This script sets up the environment for the build and then + calls `conda mambabuild` to build the conda package. +- `recipe/build.sh`: This script is used by `conda mambabuild` to build the + source code. Typically, this performs the "configure" and "make" steps. See + the + [conda-build docs](https://docs.conda.io/projects/conda-build/en/latest/resources/build-scripts.html) + for more details on conda build scripts. +- `recipe/meta.yaml`: This contains metadata used by the `conda mambabuild` + process, including build dependencies. For more information, see the + [conda-build docs](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html). +- `variants`: This contains metadata for different variants of the build. For + example, a package might need to be built with different versions of Python, + which may require specifying slightly different versions of pre-build + dependencies from conda-forge. The metadata for the variant is merged with + `recipe/meta.yaml` during the package build. For further information on build + variants, see the [conda-build + docs](https://docs.conda.io/projects/conda-build/en/stable/resources/variants.html). diff --git a/infra/conda/amara/bld.bat b/infra/conda/amara/bld.bat deleted file mode 100644 index 9146a4bf..00000000 --- a/infra/conda/amara/bld.bat +++ /dev/null @@ -1,8 +0,0 @@ -"%PYTHON%" setup.py install -if errorlevel 1 exit 1 - -:: Add more build steps here, if they are necessary. - -:: See -:: http://docs.continuum.io/conda/build.html -:: for a list of environment variables that are set during the build process. diff --git a/infra/conda/amara/build.sh b/infra/conda/amara/build.sh deleted file mode 100644 index f80d1571..00000000 --- a/infra/conda/amara/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install --prefix=$PREFIX - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/infra/conda/amara/meta.yaml b/infra/conda/amara/meta.yaml deleted file mode 100644 index 0deadda3..00000000 --- a/infra/conda/amara/meta.yaml +++ /dev/null @@ -1,59 +0,0 @@ -package: - name: amara - version: "1.2.0.2" - -source: - fn: Amara-1.2.0.2.tar.gz - url: https://pypi.python.org/packages/af/0e/e81dfe4b4fb24023207d86e4d4ff418b0e83927f2155ed3552b0e3196846/Amara-1.2.0.2.tar.gz - md5: 79746b8f74b4a996e8e84fc029f9ce89 -# patches: - # List any patch files here - # - fix.patch - -# build: - # noarch_python: True - # preserve_egg_dir: True - # entry_points: - # Put any entry points (scripts to be generated automatically) here. The - # syntax is module:function. For example - # - # - amara = amara:main - # - # Would create an entry point called amara that calls amara.main() - - - # If this is a new build for the same version, increment the build - # number. If you do not include this key, it defaults to 0. - # number: 1 - -requirements: - build: - - python - - 4suite-xml - - run: - - python - - nose - - 4suite-xml - - # commands: - # You can put test commands to be run here. Use this to test that the - # entry points work. - - - # You can also put a file called run_test.py in the recipe that will be run - # at test time. - - # requires: - # Put any additional test requirements here. For example - # - nose - -about: - home: http://wiki.xml3k.org/Amara2 - license: Apache Software License - summary: 'Library for XML processing in Python' - license_family: Apache - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/boost/bld.bat b/infra/conda/boost/bld.bat deleted file mode 100755 index 49071a39..00000000 --- a/infra/conda/boost/bld.bat +++ /dev/null @@ -1,37 +0,0 @@ -:: Set the right msvc version according to Python version -if "%PY_VER%"=="2.7" ( - set MSVC_VER=9.0 - set LIB_VER=90 -) else if "%PY_VER%"=="3.4" ( - set MSVC_VER=10.0 - set LIB_VER=100 -) else ( - set MSVC_VER=14.0 - set LIB_VER=140 -) - -:: Start with bootstrap -call bootstrap.bat -if errorlevel 1 exit 1 - -:: Build step -.\b2 install ^ - --build-dir=buildboost ^ - --prefix=%LIBRARY_PREFIX% ^ - toolset=msvc-%MSVC_VER% ^ - address-model=%ARCH% ^ - variant=release ^ - threading=multi ^ - link=shared ^ - -j%CPU_COUNT% ^ - -s ZLIB_INCLUDE="%LIBRARY_INC%" ^ - -s ZLIB_LIBPATH="%LIBRARY_LIB%" -if errorlevel 1 exit 1 - -:: Install fix-up for a non version-specific boost include -move %LIBRARY_INC%\boost-1_60\boost %LIBRARY_INC% -if errorlevel 1 exit 1 - -:: Move dll's to LIBRARY_BIN -move %LIBRARY_LIB%\*vc%LIB_VER%-mt-1_60.dll "%LIBRARY_BIN%" -if errorlevel 1 exit 1 diff --git a/infra/conda/boost/build.sh b/infra/conda/boost/build.sh deleted file mode 100755 index f9c2c71a..00000000 --- a/infra/conda/boost/build.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -set -x -e - -INCLUDE_PATH="${PREFIX}/include" -LIBRARY_PATH="${PREFIX}/lib" - -if [ "$(uname)" == "Linux" ]; then - ./bootstrap.sh \ - --prefix="${PREFIX}" \ - --without-icu \ - --with-libraries=system,filesystem,serialization,program_options \ - | tee bootstrap.log 2>&1 - - ./b2 -q \ - variant=release \ - address-model="${ARCH}" \ - architecture=x86 \ - debug-symbols=off \ - threading=multi \ - runtime-link=shared \ - link=shared \ - toolset=gcc \ - cxxflags=-std=c++11 \ - include="${INCLUDE_PATH}" \ - linkflags="-L${LIBRARY_PATH}" \ - --layout=system \ - -j"${CPU_COUNT}" \ - -s NO_BZIP2=1 \ - install | tee b2.log 2>&1 -fi diff --git a/infra/conda/boost/meta.yaml b/infra/conda/boost/meta.yaml deleted file mode 100644 index fab5c248..00000000 --- a/infra/conda/boost/meta.yaml +++ /dev/null @@ -1,23 +0,0 @@ -package: - name: boost - version: 1.63.0 - -source: - fn: boost_1_63_0.tar.bz2 - url: http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.bz2 - -build: - features: - - vc9 [win and py27] - - vc10 [win and py34] - - vc14 [win and py35] - number: 0 - -requirements: - build: - - python - -about: - home: http://www.boost.org/ - license: Boost-1.0 - diff --git a/infra/conda/chaste/.ci_support/linux_64_python3.10.____cpython.yaml b/infra/conda/chaste/.ci_support/linux_64_python3.10.____cpython.yaml deleted file mode 100755 index 3ac9c2ca..00000000 --- a/infra/conda/chaste/.ci_support/linux_64_python3.10.____cpython.yaml +++ /dev/null @@ -1,31 +0,0 @@ -cdt_name: -- cos7 -channel_sources: -- pychaste -- conda-forge -- bioconda -channel_targets: -- pychaste main -chaste: -- 3.4.4 -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -fortran_compiler: -- gfortran -fortran_compiler_version: -- '11' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - fortran_compiler_version diff --git a/infra/conda/chaste/.gitignore b/infra/conda/chaste/.gitignore deleted file mode 100755 index c89ecb7d..00000000 --- a/infra/conda/chaste/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.pyc - -build_artifacts diff --git a/infra/conda/chaste/.scripts/build_steps.sh b/infra/conda/chaste/.scripts/build_steps.sh deleted file mode 100755 index 3da46528..00000000 --- a/infra/conda/chaste/.scripts/build_steps.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env bash - -set -xeuo pipefail -export PYTHONUNBUFFERED=1 - -export FEEDSTOCK_ROOT='/home/conda/feedstock_root' -export RECIPE_ROOT='/home/conda/recipe_root' - -export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" -export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" - -export CONDA_BLD_PATH="${FEEDSTOCK_ROOT}/build_artifacts" - -cat > ~/.condarc < ${CONDA_PREFIX}/etc/conda/activate.d/conda-forge-ci-setup-activate.sh </dev/null && pwd )" -RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" - -cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" - -ARTIFACTS="${FEEDSTOCK_ROOT}/build_artifacts" -mkdir -p "${ARTIFACTS}" - -DONE_CANARY="${ARTIFACTS}/conda-forge-build-done-${CONFIG}" -rm -f "${DONE_CANARY}" - -docker info - -DOCKER_IMAGE="${DOCKER_IMAGE:-quay.io/condaforge/linux-anvil-cos7-x86_64}" -docker pull "${DOCKER_IMAGE}" - -export HOST_USER_ID=$(id -u) -docker run \ - --mount type=bind,source="${RECIPE_ROOT}",target=/home/conda/recipe_root \ - --mount type=bind,source="${FEEDSTOCK_ROOT}",target=/home/conda/feedstock_root \ - -e CONFIG \ - -e CHASTE_GIT_BRANCH \ - -e PYCHASTE_GIT_BRANCH \ - -e BUILD_WITH_CONDA_DEBUG \ - -e CPU_COUNT \ - -e HOST_USER_ID \ - "${DOCKER_IMAGE}" \ - bash "/home/conda/feedstock_root/.scripts/build_steps.sh" - -test -f "${DONE_CANARY}" diff --git a/infra/conda/chaste/2024.1/build-package.sh b/infra/conda/chaste/2024.1/build-package.sh new file mode 100755 index 00000000..0aee6b56 --- /dev/null +++ b/infra/conda/chaste/2024.1/build-package.sh @@ -0,0 +1,96 @@ +#!/usr/bin/env bash +set -xeo pipefail + +# Show usage +usage() { + echo 'Usage: '"$(basename "$0")"' --variant=name [--parallel=num]' + echo 'Example:' + echo 'docker run --rm -it quay.io/condaforge/linux-anvil-cos7-x86_64 /bin/bash' + echo "$(basename "$0")"' --variant=linux_64_python3.8_cpython --parallel=4' + exit 1 +} + +# Parse args +variant= +parallel= + +for option; do + case $option in + --variant=*) + variant=$(expr "x$option" : "x--variant=\(.*\)") + ;; + --parallel=*) + parallel=$(expr "x$option" : "x--parallel=\(.*\)") + ;; + *) + echo "Unknown option: $option" 1>&2 + exit 1 + ;; + esac +done + +if [ -z "${variant}" ]; then usage; fi + +# Configure environment +export FEEDSTOCK_ROOT="$(pwd)" +export RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" +export CONFIG_FILE="${FEEDSTOCK_ROOT}/variants/${variant}.yaml" +export CONDA_BLD_PATH="${FEEDSTOCK_ROOT}/build_artifacts" + +export CPU_COUNT="${parallel:-$(nproc)}" + +export PYTHONUNBUFFERED=1 + +# Configure conda build path +mkdir -p "${CONDA_BLD_PATH}" + +cat >~/.condarc <"${CONDA_PREFIX}"/etc/conda/activate.d/conda-forge-ci-setup-activate.sh <=1.68,<1.76 - - hdf5 >=1.10,<1.11 + - boost-cpp + - hdf5 - hdf5 * mpi_mpich* - - metis >=4 - - mpich >=3 - - parmetis >=4 - - petsc >=3.12,<3.17 + - metis + - mpich + - parmetis + - petsc - petsc4py - - sundials >=3.0,<6.0 - - vtk 7.1.1 - - xerces-c >=3 + - sundials + - vtk + - xerces-c - xsd 4.* - xvfbwrapper run: - python - - boost-cpp >=1.68,<1.76 - - hdf5 >=1.10,<1.11 + - boost-cpp + - hdf5 - hdf5 * mpi_mpich* - - metis >=4 - - mpich >=3 - - parmetis >=4 - - petsc >=3.12,<3.17 + - metis + - mpich + - parmetis + - petsc - petsc4py - - sundials >=3.0,<6.0 - - vtk 7.1.1 - - xerces-c >=3 + - sundials + - vtk + - xerces-c - xsd 4.* - xvfbwrapper - matplotlib diff --git a/infra/conda/chaste/2024.1/variants/linux_64_python3.10_cpython.yaml b/infra/conda/chaste/2024.1/variants/linux_64_python3.10_cpython.yaml new file mode 100755 index 00000000..440596c0 --- /dev/null +++ b/infra/conda/chaste/2024.1/variants/linux_64_python3.10_cpython.yaml @@ -0,0 +1,58 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +hdf5: + - "1.12" +metis: + - ">=4" +mpich: + - "4" +parmetis: + - ">=4" +petsc: + - "3.18" +pin_run_as_build: + boostcpp: + min_pin: x.x + max_pin: x.x + petsc: + min_pin: x.x + max_pin: x.x + python: + min_pin: x.x + max_pin: x.x + sundials: + min_pin: x.x + max_pin: x.x + vtk: + min_pin: x.x + max_pin: x.x +python: + - 3.10.* *_cpython +sundials: + - ">=3.0,<6.0" +vtk: + - "7.1.1" +xercesc: + - "3" +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version diff --git a/infra/conda/chaste/2024.1/variants/linux_64_python3.11_cpython.yaml b/infra/conda/chaste/2024.1/variants/linux_64_python3.11_cpython.yaml new file mode 100755 index 00000000..cee71711 --- /dev/null +++ b/infra/conda/chaste/2024.1/variants/linux_64_python3.11_cpython.yaml @@ -0,0 +1,58 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +hdf5: + - "1.12" +metis: + - ">=4" +mpich: + - "4" +parmetis: + - ">=4" +petsc: + - "3.18" +pin_run_as_build: + boostcpp: + min_pin: x.x + max_pin: x.x + petsc: + min_pin: x.x + max_pin: x.x + python: + min_pin: x.x + max_pin: x.x + sundials: + min_pin: x.x + max_pin: x.x + vtk: + min_pin: x.x + max_pin: x.x +python: + - 3.11.* *_cpython +sundials: + - ">=3.0,<6.0" +vtk: + - "7.1.1" +xercesc: + - "3" +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version diff --git a/infra/conda/chaste/2024.1/variants/linux_64_python3.12_cpython.yaml b/infra/conda/chaste/2024.1/variants/linux_64_python3.12_cpython.yaml new file mode 100755 index 00000000..e1ea73b4 --- /dev/null +++ b/infra/conda/chaste/2024.1/variants/linux_64_python3.12_cpython.yaml @@ -0,0 +1,58 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +hdf5: + - "1.12" +metis: + - ">=4" +mpich: + - "4" +parmetis: + - ">=4" +petsc: + - "3.18" +pin_run_as_build: + boostcpp: + min_pin: x.x + max_pin: x.x + petsc: + min_pin: x.x + max_pin: x.x + python: + min_pin: x.x + max_pin: x.x + sundials: + min_pin: x.x + max_pin: x.x + vtk: + min_pin: x.x + max_pin: x.x +python: + - 3.12.* *_cpython +sundials: + - ">=3.0,<6.0" +vtk: + - "7.1.1" +xercesc: + - "3" +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version diff --git a/infra/conda/chaste/2024.1/variants/linux_64_python3.8_cpython.yaml b/infra/conda/chaste/2024.1/variants/linux_64_python3.8_cpython.yaml new file mode 100755 index 00000000..199187b0 --- /dev/null +++ b/infra/conda/chaste/2024.1/variants/linux_64_python3.8_cpython.yaml @@ -0,0 +1,58 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +hdf5: + - "1.12" +metis: + - ">=4" +mpich: + - "4" +parmetis: + - ">=4" +petsc: + - "3.18" +pin_run_as_build: + boostcpp: + min_pin: x.x + max_pin: x.x + petsc: + min_pin: x.x + max_pin: x.x + python: + min_pin: x.x + max_pin: x.x + sundials: + min_pin: x.x + max_pin: x.x + vtk: + min_pin: x.x + max_pin: x.x +python: + - 3.8.* *_cpython +sundials: + - ">=3.0,<6.0" +vtk: + - "7.1.1" +xercesc: + - "3" +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version diff --git a/infra/conda/chaste/2024.1/variants/linux_64_python3.9_cpython.yaml b/infra/conda/chaste/2024.1/variants/linux_64_python3.9_cpython.yaml new file mode 100755 index 00000000..a64f9045 --- /dev/null +++ b/infra/conda/chaste/2024.1/variants/linux_64_python3.9_cpython.yaml @@ -0,0 +1,58 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +hdf5: + - "1.12" +metis: + - ">=4" +mpich: + - "4" +parmetis: + - ">=4" +petsc: + - "3.18" +pin_run_as_build: + boostcpp: + min_pin: x.x + max_pin: x.x + petsc: + min_pin: x.x + max_pin: x.x + python: + min_pin: x.x + max_pin: x.x + sundials: + min_pin: x.x + max_pin: x.x + vtk: + min_pin: x.x + max_pin: x.x +python: + - 3.9.* *_cpython +sundials: + - ">=3.0,<6.0" +vtk: + - "7.1.1" +xercesc: + - "3" +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version diff --git a/infra/conda/chaste/build-py310.sh b/infra/conda/chaste/build-py310.sh deleted file mode 100755 index ba2fc21d..00000000 --- a/infra/conda/chaste/build-py310.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -xeo pipefail - -export CONFIG='linux_64_python3.10.____cpython' -export CHASTE_GIT_BRANCH='develop' -export PYCHASTE_GIT_BRANCH='develop' -export BUILD_WITH_CONDA_DEBUG='0' -export DOCKER_IMAGE='quay.io/condaforge/linux-anvil-cos7-x86_64' -export CPU_COUNT=2 - -.scripts/run_docker_build.sh diff --git a/infra/conda/chaste/recipe/patches/petsc.patch b/infra/conda/chaste/recipe/patches/petsc.patch deleted file mode 100644 index c00aca46..00000000 --- a/infra/conda/chaste/recipe/patches/petsc.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/petscsys.h -+++ b/petscsys.h -@@ -233,8 +233,8 @@ - #elif defined(PETSC_HAVE_MPICH_NUMVERSION) - # if !defined(MPICH_NUMVERSION) || defined(MVAPICH2_NUMVERSION) || defined(I_MPI_NUMVERSION) - # error "PETSc was configured with MPICH but now appears to be compiling using a non-MPICH mpi.h" --# elif (MPICH_NUMVERSION/100000 != PETSC_HAVE_MPICH_NUMVERSION/100000) || (MPICH_NUMVERSION%100000/1000 < PETSC_HAVE_MPICH_NUMVERSION%100000/1000) --# error "PETSc was configured with one MPICH mpi.h version but now appears to be compiling using a different MPICH mpi.h version" -+//# elif (MPICH_NUMVERSION/100000 != PETSC_HAVE_MPICH_NUMVERSION/100000) || (MPICH_NUMVERSION%100000/1000 < PETSC_HAVE_MPICH_NUMVERSION%100000/1000) -+//# error "PETSc was configured with one MPICH mpi.h version but now appears to be compiling using a different MPICH mpi.h version" - # endif - #elif defined(PETSC_HAVE_OMPI_MAJOR_VERSION) - # if !defined(OMPI_MAJOR_VERSION) diff --git a/infra/conda/chaste/recipe/patches/vtk.patch b/infra/conda/chaste/recipe/patches/vtk.patch deleted file mode 100644 index a61d7b14..00000000 --- a/infra/conda/chaste/recipe/patches/vtk.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/VTKConfig.cmake -+++ b/VTKConfig.cmake -@@ -25,8 +25,8 @@ - if (CMAKE_VERSION VERSION_LESS "3.1") - message(FATAL_ERROR "VTK was built with C++11 features using CMake's CXX_STANDARD_REQUIRED feature. Configuring projects this way requires a newer version of CMake. Please update to CMake 3.1 or newer") - endif() -- set(CMAKE_CXX_STANDARD 11) -- set(CMAKE_CXX_STANDARD_REQUIRED 11) -+ set(CMAKE_CXX_STANDARD 17) -+ set(CMAKE_CXX_STANDARD_REQUIRED 17) - endif() - - # The C and C++ flags added by VTK to the cmake-configured flags. diff --git a/infra/conda/chaste/recipe/recipe-scripts-license.txt b/infra/conda/chaste/recipe/recipe-scripts-license.txt deleted file mode 100644 index 2ec51d75..00000000 --- a/infra/conda/chaste/recipe/recipe-scripts-license.txt +++ /dev/null @@ -1,27 +0,0 @@ -BSD-3-Clause license -Copyright (c) 2015-2022, conda-forge contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/infra/conda/dolfin/build.sh b/infra/conda/dolfin/build.sh deleted file mode 100644 index 9459e251..00000000 --- a/infra/conda/dolfin/build.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -mkdir build -cd build - -#CC=$PREFIX/bin/cc -#CXX=$PREFIX/bin/c++ - -export LIBRARY_PATH=$PREFIX/lib -export INCLUDE_PATH=$PREFIX/include - -#export BLAS_DIR=$LIBRARY_PATH - -cmake .. \ - -DDOLFIN_ENABLE_VTK:BOOL=FALSE \ - -DDOLFIN_ENABLE_QT:BOOL=FALSE \ - -DDOLFIN_ENABLE_TRILINOS=FALSE \ - -DDOLFIN_ENABLE_HDF5=FALSE \ - -DDOLFIN_ENABLE_SLEPC=FALSE \ - -DDOLFIN_ENABLE_SPHINX=FALSE \ -\ - -DCMAKE_INSTALL_PREFIX=$PREFIX \ - -DCMAKE_INCLUDE_PATH=$INCLUDE_PATH \ - -DCMAKE_LIBRARY_PATH=$LIBRARY_PATH \ -\ - -DBoost_INCLUDE_DIR=$INCLUDE_PATH \ - -DBoost_LIBRARY_DIRS=$LIBRARY_PATH \ - -DBoost_FILESYSTEM_LIBRARY=$LIBRARY_PATH/libboost_filesystem.so \ -#\ -# -DMPI_C_LIBRARIES=$LIBRARY_PATH/libmpich.so \ -# -DMPI_C_INCLUDE_PATH=$INCLUDE_PATH \ -# -DMPI_CXX_LIBRARIES=$LIBRARY_PATH/libmpichcxx.so \ -# -DMPI_CXX_INCLUDE_PATH=$INCLUDE_PATH \ -# -DMPI_Fortran_LIBRARIES=$LIBRARY_PATH/libmpichf90.so \ -# -DMPI_Fortran_INCLUDE_PATH=$INCLUDE_PATH - -make -j${CPU_COUNT} -make install diff --git a/infra/conda/dolfin/meta.yaml b/infra/conda/dolfin/meta.yaml deleted file mode 100644 index 432c9ef7..00000000 --- a/infra/conda/dolfin/meta.yaml +++ /dev/null @@ -1,58 +0,0 @@ -package: - name: dolfin - version: "1.6.0" - -source: - fn: dolfin-1.6.0.tar.gz - url: https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-1.6.0.tar.gz - md5: 35cb4baf7ab4152a40fb7310b34d5800 - -build: - number: 6 - -requirements: - build: - - python -# - openblas - - cmake - - sphinx - - libxml2 - - swig ==3.0.7 - - numpy - #- vtk - - ffc ==1.6.0 - - ply - - boost -# - eigen3 - - petsc ==3.6.3 - - petsc4py ==3.6.0 -# - slepc <=3.6.2 - - run: - - python -# - openblas - - libxml2 - - swig ==3.0.7 - - numpy - #- vtk - - ffc ==1.6.0 - - ufl ==1.6.0 - - ply - - boost -# - eigen3 - - petsc ==3.6.3 - - petsc4py ==3.6.0 -# - slepc <=3.6.2 - -test: - imports: - - dolfin - -about: - home: http://www.fenicsproject.org - license: The GNU Lesser General Public License, version 3.0 - summary: 'C++/Python library for solving differential equations' - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/fenics/meta.yaml b/infra/conda/fenics/meta.yaml deleted file mode 100644 index 5b04d2a3..00000000 --- a/infra/conda/fenics/meta.yaml +++ /dev/null @@ -1,19 +0,0 @@ -package: - name: fenics - version: "1.6.0" - -requirements: - run: - - dolfin ==1.6.0 - - ffc ==1.6.0 - - fiat ==1.6.0 - - ufl ==1.6.0 - - instant ==1.6.0 - -about: - home: http://www.fenicsproject.org - summary: 'FEniCS is a collection of free software for automated, efficient solution of differential equations' - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/ffc/build.sh b/infra/conda/ffc/build.sh deleted file mode 100644 index 17a1099d..00000000 --- a/infra/conda/ffc/build.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -#export CC=$PREFIX/bin/gcc -#export CXX=$PREFIX/bin/g++ - -$PYTHON setup.py install --prefix=$PREFIX - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/infra/conda/ffc/dont_run_test.sh b/infra/conda/ffc/dont_run_test.sh deleted file mode 100644 index ec6ff277..00000000 --- a/infra/conda/ffc/dont_run_test.sh +++ /dev/null @@ -1,5 +0,0 @@ -export CC=$PREFIX/bin/gcc -export CXX=$PREFIX/bin/g++ - -cd $SRC_DIR/test/unit -python test.py diff --git a/infra/conda/ffc/meta.yaml b/infra/conda/ffc/meta.yaml deleted file mode 100644 index 7171c31e..00000000 --- a/infra/conda/ffc/meta.yaml +++ /dev/null @@ -1,53 +0,0 @@ -package: - name: ffc - version: "1.6.0" - -source: - fn: ffc-1.6.0.tar.gz - url: https://bitbucket.org/fenics-project/ffc/downloads/ffc-1.6.0.tar.gz - md5: 358faa3e9da62a1b1a717070217b793e - -build: - number: 4 - -requirements: - build: - - python - - numpy - - swig ==3.0.7 -# - gcc -# - libgfortran - - run: - - python - - numpy - - swig ==3.0.7 - - ufl ==1.6.0 - - fiat ==1.6.0 - - instant ==1.6.0 -# - libgcc -# - libgfortran - -test: - imports: - - ffc - - ffc.backends - - ffc.backends.dolfin - - ffc.backends.ufc - - ffc.errorcontrol - - ffc.quadrature - - ffc.tensor - #- ffc_time_ext.time_elements_ext # See #47 - - ufc - - commands: - - ffc --help - -about: - home: http://fenicsproject.org/ - license: The GNU Lesser General Public License, version 3.0 - summary: 'The FEniCS Form Compiler' - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/fiat/build.sh b/infra/conda/fiat/build.sh deleted file mode 100644 index 4d7fc032..00000000 --- a/infra/conda/fiat/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/infra/conda/fiat/meta.yaml b/infra/conda/fiat/meta.yaml deleted file mode 100644 index 0766a4f8..00000000 --- a/infra/conda/fiat/meta.yaml +++ /dev/null @@ -1,37 +0,0 @@ -package: - name: fiat - version: "1.6.0" - -source: - fn: fiat-1.6.0.tar.gz - url: https://bitbucket.org/fenics-project/fiat/downloads/fiat-1.6.0.tar.gz - md5: f4509d05c911fd93cea8d288a78a6c6f - -build: - number: 1 - -requirements: - build: - - python - - sympy - - run: - - python - - numpy - - sympy - -test: - imports: - - FIAT - - requires: - - nose - -about: - home: http://fenicsproject.org/ - license: The GNU Lesser General Public License, version 3.0 - summary: 'FInite element Automatic Tabulator' - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/fiat/run_test.sh b/infra/conda/fiat/run_test.sh deleted file mode 100644 index 18bf498b..00000000 --- a/infra/conda/fiat/run_test.sh +++ /dev/null @@ -1 +0,0 @@ -nosetests $SRC_DIR/test diff --git a/infra/conda/instant/build.sh b/infra/conda/instant/build.sh deleted file mode 100644 index 4d7fc032..00000000 --- a/infra/conda/instant/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/infra/conda/instant/meta.yaml b/infra/conda/instant/meta.yaml deleted file mode 100644 index a67dba1a..00000000 --- a/infra/conda/instant/meta.yaml +++ /dev/null @@ -1,45 +0,0 @@ -package: - name: instant - version: "1.6.0" - -source: - fn: instant-1.6.0.tar.gz - url: https://bitbucket.org/fenics-project/instant/downloads/instant-1.6.0.tar.gz - md5: 5f2522eb032a5bebbad6597b6fe0732a - -build: - number: 3 - -requirements: - build: - - python - - run: - - python - - numpy - #- make - - cmake - #- pkg-config - - swig -# - gcc -# - libgfortran - -test: - imports: - - instant - - commands: - - instant-clean - - instant-showcache - - requires: - - nose - -about: - home: http://www.fenicsproject.org - license: BSD License or The GNU Lesser General Public License, version 3.0 - summary: 'Instant Inlining of C/C++ in Python' - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/instant/run_test.sh b/infra/conda/instant/run_test.sh deleted file mode 100644 index 7c8aaf14..00000000 --- a/infra/conda/instant/run_test.sh +++ /dev/null @@ -1,2 +0,0 @@ -cd $SRC_DIR/test -python run_tests.py diff --git a/infra/conda/itk/build.sh b/infra/conda/itk/build.sh deleted file mode 100644 index a28db5cc..00000000 --- a/infra/conda/itk/build.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -mkdir build -cd build - -cmake .. \ - -DBUILD_SHARED_LIBS:BOOL=ON \ - -DBUILD_EXAMPLES:BOOL=off \ - -DITK_WRAP_PYTHON:BOOL=ON \ - -DCMAKE_BUILD_TYPE:STRING=Release \ - -DITK_USE_FLAT_DIRECTORY_INSTALL:BOOL=ON \ - -DITK_USE_REVIEW:BOOL=ON \ - -DModule_ITKReview:BOOL=ON \ - -DVTK_DIR:PATH=${PREFIX} \ - -DBUILD_TESTING:BOOL=OFF \ - -DModule_ITKVtkGlue:BOOL=ON \ - -DCMAKE_INSTALL_PREFIX:PATH="${PREFIX}" - -make -j${CPU_COUNT} -make install diff --git a/infra/conda/itk/meta.yaml b/infra/conda/itk/meta.yaml deleted file mode 100644 index 4f375446..00000000 --- a/infra/conda/itk/meta.yaml +++ /dev/null @@ -1,23 +0,0 @@ -package: - name: itk - version: 4.10.0 - -source: - url: https://sourceforge.net/projects/itk/files/itk/4.10/InsightToolkit-4.10.0.tar.gz - fn: InsightToolkit-4.10.0.tar.gz - -build: - number: 1 - -requirements: - build: - - cmake - - python - - vtk - run: - - python - - vtk - -about: - home: http://www.itk.org/ - license: BSD diff --git a/infra/conda/openmpi/build.sh b/infra/conda/openmpi/build.sh deleted file mode 100644 index 94a1d588..00000000 --- a/infra/conda/openmpi/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -./configure --prefix=$PREFIX -make -make install diff --git a/infra/conda/openmpi/meta.yaml b/infra/conda/openmpi/meta.yaml deleted file mode 100644 index 628dda5f..00000000 --- a/infra/conda/openmpi/meta.yaml +++ /dev/null @@ -1,35 +0,0 @@ -package: - name: openmpi - version: 1.8.8 - -source: - fn: openmpi-1.8.8.tar.bz2 - url: http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.8.tar.bz2 - -requirements: - conflicts: - - mpich - - mpich2 - -about: - home: http://www.open-mpi.org/ - license: new BSD (http://www.open-mpi.org/community/license.php) - -build: - number: 2 - -# From mpi4py recipe -test: - files: - - test/helloworld.c - - test/helloworld.cxx - commands: - - command -v ompi_info - - ompi_info - - command -v mpiexec - - mpiexec -n 4 hostname - - command -v mpicc - - mpicc -show - - mpicc helloworld.c -o helloworld_c - - export DYLD_LIBRARY_PATH=$PREFIX/lib # [osx] - - mpiexec -n 4 ./helloworld_c diff --git a/infra/conda/openmpi/post-link.sh b/infra/conda/openmpi/post-link.sh deleted file mode 100644 index 9f358723..00000000 --- a/infra/conda/openmpi/post-link.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -mkdir -p $PREFIX/etc/conda/deactivate.d -mkdir -p $PREFIX/etc/conda/activate.d -cat < $PREFIX/etc/conda/deactivate.d/openmpi.sh -echo unsetting OPAL_PREFIX -export OPAL_PREFIX=$OPAL_PREFIX_OLD -unset OPAL_PREFIX_OLD -EOF -cat < $PREFIX/etc/conda/activate.d/openmpi.sh -#!/bin/sh -echo setting OPAL_PREFIX to $PREFIX -export OPAL_PREFIX_OLD=$OPAL_PREFIX -export OPAL_PREFIX=$PREFIX -EOF - diff --git a/infra/conda/openmpi/pre-unlink.sh b/infra/conda/openmpi/pre-unlink.sh deleted file mode 100644 index a434634f..00000000 --- a/infra/conda/openmpi/pre-unlink.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -rm -f $PREFIX/etc/conda/deactivate.d/openmpi.sh -rm -f $PREFIX/etc/conda/activate.d/openmpi.sh diff --git a/infra/conda/openmpi/test/helloworld.c b/infra/conda/openmpi/test/helloworld.c deleted file mode 100644 index cd4cae4a..00000000 --- a/infra/conda/openmpi/test/helloworld.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -int main(int argc, char *argv[]) -{ - int provided, size, rank, len; - char name[MPI_MAX_PROCESSOR_NAME]; - - MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided); - - MPI_Comm_size(MPI_COMM_WORLD, &size); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Get_processor_name(name, &len); - - printf("Hello, World! I am process %d of %d on %s.\n", rank, size, name); - - MPI_Finalize(); - return 0; -} diff --git a/infra/conda/openmpi/test/helloworld.cxx b/infra/conda/openmpi/test/helloworld.cxx deleted file mode 100644 index 8d46772b..00000000 --- a/infra/conda/openmpi/test/helloworld.cxx +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -int main(int argc, char *argv[]) -{ - MPI::Init_thread(MPI_THREAD_MULTIPLE); - - int size = MPI::COMM_WORLD.Get_size(); - int rank = MPI::COMM_WORLD.Get_rank(); - int len; char name[MPI_MAX_PROCESSOR_NAME]; - MPI::Get_processor_name(name, len); - - std::cout << - "Hello, World! " << - "I am process " << rank << - " of " << size << - " on " << name << - "." << std::endl; - - MPI::Finalize(); - return 0; -} diff --git a/infra/conda/openmpi/test/helloworld.f08 b/infra/conda/openmpi/test/helloworld.f08 deleted file mode 100644 index 2a625422..00000000 --- a/infra/conda/openmpi/test/helloworld.f08 +++ /dev/null @@ -1,23 +0,0 @@ -program main - - use mpi_f08 - implicit none - - integer :: provided, size, rank, len - character (len=MPI_MAX_PROCESSOR_NAME) :: name - - call MPI_Init_thread(MPI_THREAD_MULTIPLE, provided) - - call MPI_Comm_rank(MPI_COMM_WORLD, rank) - call MPI_Comm_size(MPI_COMM_WORLD, size) - call MPI_Get_processor_name(name, len) - - write(*, '(2A,I2,A,I2,3A)') & - 'Hello, World! ', & - 'I am process ', rank, & - ' of ', size, & - ' on ', name(1:len), '.' - - call MPI_Finalize() - -end program main diff --git a/infra/conda/openmpi/test/helloworld.f90 b/infra/conda/openmpi/test/helloworld.f90 deleted file mode 100644 index 6c454bfe..00000000 --- a/infra/conda/openmpi/test/helloworld.f90 +++ /dev/null @@ -1,23 +0,0 @@ -program main - - use mpi - implicit none - - integer :: provided, ierr, size, rank, len - character (len=MPI_MAX_PROCESSOR_NAME) :: name - - call MPI_Init_thread(MPI_THREAD_MULTIPLE, provided, ierr) - - call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr) - call MPI_Comm_size(MPI_COMM_WORLD, size, ierr) - call MPI_Get_processor_name(name, len, ierr) - - write(*, '(2A,I2,A,I2,3A)') & - 'Hello, World! ', & - 'I am process ', rank, & - ' of ', size, & - ' on ', name(1:len), '.' - - call MPI_Finalize(ierr) - -end program main diff --git a/infra/conda/petsc/build.sh b/infra/conda/petsc/build.sh deleted file mode 100644 index def65eb6..00000000 --- a/infra/conda/petsc/build.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -export PETSC_DIR=$SRC_DIR -export PETSC_ARCH=arch-conda-c-opt - -if [[ $(uname) == Darwin ]]; then - SO=dylib -else - SO=so -fi - -export MPICH=https://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz -export HDF5=https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.16/src/hdf5-1.8.16.tar.bz2 - -$PYTHON ./configure \ - --with-debugging=0 \ - --download-mpich \ - --download-hdf5=$HDF5 \ - --COPTFLAGS=-O3 \ - --CXXOPTFLAGS=-O3 \ - --LIBS=-Wl,-rpath,$PREFIX/lib \ - --with-hwloc=0 \ - --with-ssl=0 \ - --with-x=0 \ - --download-hypre \ - --download-f2cblaslapack \ - --download-hdf5 \ - --download-parmetis \ - --download-metis \ - --download-sundials \ - --with-shared-libraries \ - --with-clanguage=cxx \ - --prefix=$PREFIX - -sedinplace() { [[ $(uname) == Darwin ]] && sed -i "" $@ || sed -i"" $@; } -for path in $PETSC_DIR $PREFIX; do - sedinplace s%$path%\${PETSC_DIR}%g $PETSC_ARCH/include/petsc*.h -done - -make -make install - - diff --git a/infra/conda/petsc/meta.yaml b/infra/conda/petsc/meta.yaml deleted file mode 100644 index 00035987..00000000 --- a/infra/conda/petsc/meta.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{% set build = 0 %} -{% set version = '3.7.5' %} -{% set md5 = 'bfc7a5535d5c18c6ec81ab90f3ce5074' %} - -package: - name: petsc - version: {{version}} - -source: - fn: petsc-lite-{{version}}.tar.gz - url: http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-{{version}}.tar.gz - md5: {{md5}} - -build: - number: 0 - binary_relocation: true - detect_binary_files_with_prefix: true - skip: true # [win or py3k] - -requirements: - build: - - python - - cmake - - readline - -about: - home: http://www.mcs.anl.gov/petsc/ - summary: 'PETSc: Portable, Extensible Toolkit for Scientific Computation' - license: BSD 2-Clause - license_file: LICENSE diff --git a/infra/conda/petsc/petsc.patch b/infra/conda/petsc/petsc.patch deleted file mode 100644 index 04211c8a..00000000 --- a/infra/conda/petsc/petsc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur petsc-3.6.3/config/BuildSystem/script.py petsc-3.6.3_mod/config/BuildSystem/script.py ---- petsc-3.6.3/config/BuildSystem/script.py 2015-07-22 16:22:46.000000000 +0100 -+++ petsc-3.6.3_mod/config/BuildSystem/script.py 2016-08-04 19:06:44.781881601 +0100 -@@ -192,7 +192,7 @@ - else: - outputClosed = 1 - lst.remove(output) -- if out.find('password:') >= 0 or err.find('password:') >= 0: -+ if msg and msg.find('password:') >= 0: - loginError = 1 - break - if outputClosed and errorClosed: diff --git a/infra/conda/petsc4py/build.sh b/infra/conda/petsc4py/build.sh deleted file mode 100644 index 7e044a4b..00000000 --- a/infra/conda/petsc4py/build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -export PETSC_DIR=$PREFIX -$PYTHON setup.py install diff --git a/infra/conda/petsc4py/meta.yaml b/infra/conda/petsc4py/meta.yaml deleted file mode 100644 index 4cca14d5..00000000 --- a/infra/conda/petsc4py/meta.yaml +++ /dev/null @@ -1,37 +0,0 @@ -package: - name: petsc4py - version: "3.7.0" - -source: - fn: petsc4py-3.7.0.tar.gz - url: https://bitbucket.org/petsc/petsc4py/downloads/petsc4py-3.7.0.tar.gz - md5: 816a20040a6a477bd637f397c9fb5b6d - -build: - number: 4 - -requirements: - build: - - python - - pip - - numpy - - petsc ==3.7.5 - - run: - - python - - numpy - - petsc ==3.7.5 - -test: - imports: - - petsc4py - - petsc4py.lib - -about: - home: https://bitbucket.org/petsc/petsc4py/ - license: BSD License - summary: 'PETSc for Python' - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/rdflib/bld.bat b/infra/conda/rdflib/bld.bat deleted file mode 100644 index 9146a4bf..00000000 --- a/infra/conda/rdflib/bld.bat +++ /dev/null @@ -1,8 +0,0 @@ -"%PYTHON%" setup.py install -if errorlevel 1 exit 1 - -:: Add more build steps here, if they are necessary. - -:: See -:: http://docs.continuum.io/conda/build.html -:: for a list of environment variables that are set during the build process. diff --git a/infra/conda/rdflib/build.sh b/infra/conda/rdflib/build.sh deleted file mode 100644 index 3f50b74e..00000000 --- a/infra/conda/rdflib/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/infra/conda/rdflib/meta.yaml b/infra/conda/rdflib/meta.yaml deleted file mode 100644 index c47852f9..00000000 --- a/infra/conda/rdflib/meta.yaml +++ /dev/null @@ -1,62 +0,0 @@ -package: - name: rdflib - version: "4.2.1" - -source: - fn: rdflib-4.2.1.tar.gz - url: https://pypi.python.org/packages/9d/fa/4198e8d8b444a4ace5c8fd86d128c2faa210a6e281973c8e5e16d978eaf4/rdflib-4.2.1.tar.gz - md5: 528adaa10536d14a608507d7831711f5 -# patches: - # List any patch files here - # - fix.patch - -build: - # noarch_python: True - # preserve_egg_dir: True - entry_points: - # Put any entry points (scripts to be generated automatically) here. The - # syntax is module:function. For example - # - # - rdflib = rdflib:main - # - # Would create an entry point called rdflib that calls rdflib.main() - - - rdfpipe = rdflib.tools.rdfpipe:main - - csv2rdf = rdflib.tools.csv2rdf:main - - rdf2dot = rdflib.tools.rdf2dot:main - - rdfs2dot = rdflib.tools.rdfs2dot:main - - rdfgraphisomorphism = rdflib.tools.graphisomorphism:main - - # If this is a new build for the same version, increment the build - # number. If you do not include this key, it defaults to 0. - # number: 1 - -requirements: - build: - - python - - run: - - python - - isodate - -test: - # Python imports - imports: - - rdflib - - # You can also put a file called run_test.py in the recipe that will be run - # at test time. - - # requires: - # Put any additional test requirements here. For example - # - nose - -about: - home: https://github.com/RDFLib/rdflib - license: BSD License - summary: 'RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.' - license_family: BSD - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/readline/build.sh b/infra/conda/readline/build.sh deleted file mode 100755 index 093e7055..00000000 --- a/infra/conda/readline/build.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -set -e - -./configure --prefix=$PREFIX -make -j$(getconf _NPROCESSORS_ONLN) SHLIB_LIBS="-ltinfo -L$LD_RUN_PATH" -make install diff --git a/infra/conda/readline/meta.yaml b/infra/conda/readline/meta.yaml deleted file mode 100644 index 33296d24..00000000 --- a/infra/conda/readline/meta.yaml +++ /dev/null @@ -1,21 +0,0 @@ -package: - name: readline - version: "6.2" - -source: - fn: readline-6.2.tar.gz - url: ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz - -build: - number: 6 - -about: - home: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html - license: GPL 3.0 - -#requirements: -# build: -# - ncurses >=5.9 -# run: -# - ncurses >=5.9 - diff --git a/infra/conda/swig/build.sh b/infra/conda/swig/build.sh deleted file mode 100644 index 63723bfd..00000000 --- a/infra/conda/swig/build.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -export CPPFLAGS=-I$PREFIX/include - -./configure --prefix=$PREFIX -make -j${CPU_COUNT} -#make check -make install diff --git a/infra/conda/swig/meta.yaml b/infra/conda/swig/meta.yaml deleted file mode 100644 index 94ec3559..00000000 --- a/infra/conda/swig/meta.yaml +++ /dev/null @@ -1,31 +0,0 @@ -package: - name: swig - version: 3.0.7 - -source: - fn: swig-3.0.7.tar.gz - url: http://prdownloads.sourceforge.net/swig/swig-3.0.7.tar.gz - md5: 7fff46c84b8c630ede5b0f0827e3d90a - -build: - detect_binary_files_with_prefix: True - -requirements: - build: -# - gcc - - zlib - - pcre - - python - - run: -# - libgcc - - zlib - - pcre - -test: - commands: - - swig -help - -about: - home: http://www.swig.org/ - license: GPLv3 diff --git a/infra/conda/ufl/build.sh b/infra/conda/ufl/build.sh deleted file mode 100644 index 4d7fc032..00000000 --- a/infra/conda/ufl/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/infra/conda/ufl/meta.yaml b/infra/conda/ufl/meta.yaml deleted file mode 100644 index 11e891b8..00000000 --- a/infra/conda/ufl/meta.yaml +++ /dev/null @@ -1,47 +0,0 @@ -package: - name: ufl - version: "1.6.0" - -source: - fn: ufl-1.6.0.tar.gz - url: https://bitbucket.org/fenics-project/ufl/downloads/ufl-1.6.0.tar.gz - md5: c40c5f04eaa847377ab2323122284016 - -build: - number: 1 - -requirements: - build: - - python - - run: - - python - - six - -test: - imports: - - ufl - - ufl.utils - - ufl.finiteelement - - ufl.core - - ufl.corealg - - ufl.algorithms - - commands: -# - ufl-convert --help # See #55 - - ufl-version - - ufl2py --help -# - form2ufl --help # See #56 - - requires: - - pytest - - -about: - home: http://www.fenicsproject.org - license: The GNU Lesser General Public License, version 3.0 - summary: 'Unified Form Language' - -# See -# http://docs.continuum.io/conda/build.html for -# more information about meta.yaml diff --git a/infra/conda/ufl/run_test.sh b/infra/conda/ufl/run_test.sh deleted file mode 100644 index 65fe760b..00000000 --- a/infra/conda/ufl/run_test.sh +++ /dev/null @@ -1,2 +0,0 @@ -cd $SRC_DIR/test -py.test diff --git a/infra/conda/vmtk/build.sh b/infra/conda/vmtk/build.sh deleted file mode 100644 index 9406ff8c..00000000 --- a/infra/conda/vmtk/build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -mkdir build -cd build - -cmake .. \ - -DBUILD_SHARED_LIBS:BOOL=ON \ - -DUSE_SYSTEM_ITK:BOOL=ON \ - -DUSE_SYSTEM_VTK:BOOL=ON \ - -DITK_DIR:PATH=${PREFIX} \ - -DVTK_DIR:PATH=${PREFIX} - -make -j${CPU_COUNT} -cd ../.. -cp -R vmtk-1.3/build/Install/* ${PREFIX} diff --git a/infra/conda/vmtk/meta.yaml b/infra/conda/vmtk/meta.yaml deleted file mode 100644 index b657503f..00000000 --- a/infra/conda/vmtk/meta.yaml +++ /dev/null @@ -1,24 +0,0 @@ -package: - name: vmtk - version: 1.3 - -source: - url: https://github.com/vmtk/vmtk/archive/v1.3.tar.gz - fn: v1.3.tar.gz - -build: - number: 6 - -requirements: - build: - - itk ==4.10.0 - - python - - vtk ==6.3.0 - run: - - itk ==4.10.0 - - python - - vtk ==6.3.0 - -about: - home: http://www.vmtk.org/ - license: BSD. http://www.vmtk.org/license.html diff --git a/infra/conda/vtk/.ci_support/linux_64_python3.10.____cpython.yaml b/infra/conda/vtk/.ci_support/linux_64_python3.10.____cpython.yaml deleted file mode 100644 index dd24e0ca..00000000 --- a/infra/conda/vtk/.ci_support/linux_64_python3.10.____cpython.yaml +++ /dev/null @@ -1,47 +0,0 @@ -cdt_name: -- cos7 -channel_sources: -- pychaste -- conda-forge -- bioconda -channel_targets: -- pychaste main -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -expat: -- '2' -fortran_compiler: -- gfortran -fortran_compiler_version: -- '11' -freetype: -- '2' -jsoncpp: -- '1.9' -jpeg: -- '9' -libpng: -- '1.6' -libtiff: -- '4' -libxml2: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- linux-64 -vtk: -- 7.1.1 -zip_keys: -- - cxx_compiler_version - - fortran_compiler_version -zlib: -- '1' diff --git a/infra/conda/vtk/.gitignore b/infra/conda/vtk/.gitignore deleted file mode 100644 index c89ecb7d..00000000 --- a/infra/conda/vtk/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.pyc - -build_artifacts diff --git a/infra/conda/vtk/.scripts/build_steps.sh b/infra/conda/vtk/.scripts/build_steps.sh deleted file mode 100755 index e288141d..00000000 --- a/infra/conda/vtk/.scripts/build_steps.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env bash - -set -xeuo pipefail -export PYTHONUNBUFFERED=1 - -export FEEDSTOCK_ROOT='/home/conda/feedstock_root' -export RECIPE_ROOT='/home/conda/recipe_root' - -export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" -export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" - -export CONDA_BLD_PATH="${FEEDSTOCK_ROOT}/build_artifacts" - -cat > ~/.condarc < ${CONDA_PREFIX}/etc/conda/activate.d/conda-forge-ci-setup-activate.sh </dev/null && pwd )" -PROVIDER_DIR="$(basename $THISDIR)" - -FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" -RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" - -docker info - -HOST_USER_ID=$(id -u) - -ARTIFACTS="${FEEDSTOCK_ROOT}/build_artifacts" -mkdir -p "${ARTIFACTS}" - -DONE_CANARY="${ARTIFACTS}/conda-forge-build-done-${CONFIG}" -rm -f "${DONE_CANARY}" - -UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-False}" - -docker pull "${DOCKER_IMAGE}" -docker run --rm -it \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ - -e CONFIG \ - -e UPLOAD_PACKAGES \ - -e BUILD_WITH_CONDA_DEBUG \ - -e CPU_COUNT \ - -e RECIPE_NAME \ - -e HOST_USER_ID \ - "${DOCKER_IMAGE}" \ - bash \ - "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" - -test -f "${DONE_CANARY}" diff --git a/infra/conda/chaste/LICENSE.txt b/infra/conda/vtk/7.1/LICENSE.txt similarity index 100% rename from infra/conda/chaste/LICENSE.txt rename to infra/conda/vtk/7.1/LICENSE.txt diff --git a/infra/conda/vtk/7.1/build-package.sh b/infra/conda/vtk/7.1/build-package.sh new file mode 100755 index 00000000..a7747cec --- /dev/null +++ b/infra/conda/vtk/7.1/build-package.sh @@ -0,0 +1,92 @@ +#!/usr/bin/env bash +set -xeo pipefail + +# Show usage +usage() { + echo 'Usage: '"$(basename "$0")"' --variant=name [--parallel=num]' + echo 'Example:' + echo 'docker run --rm -it quay.io/condaforge/linux-anvil-cos7-x86_64 /bin/bash' + echo "$(basename "$0")"' --variant=linux_64_python3.8_cpython --parallel=4' + exit 1 +} + +# Parse args +variant= +parallel= + +for option; do + case $option in + --variant=*) + variant=$(expr "x$option" : "x--variant=\(.*\)") + ;; + --parallel=*) + parallel=$(expr "x$option" : "x--parallel=\(.*\)") + ;; + *) + echo "Unknown option: $option" 1>&2 + exit 1 + ;; + esac +done + +if [ -z "${variant}" ]; then usage; fi + +# Configure environment +export FEEDSTOCK_ROOT="$(pwd)" +export RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" +export CONFIG_FILE="${FEEDSTOCK_ROOT}/variants/${variant}.yaml" +export CONDA_BLD_PATH="${FEEDSTOCK_ROOT}/build_artifacts" + +export CPU_COUNT="${parallel:-$(nproc)}" + +export PYTHONUNBUFFERED=1 + +# Configure conda build path +mkdir -p "${CONDA_BLD_PATH}" + +cat >~/.condarc <"${CONDA_PREFIX}"/etc/conda/activate.d/conda-forge-ci-setup-activate.sh <=1.68,<1.76 - - hdf5 >=1.10,<1.11 + - hdf5 - hdf5 * mpi_mpich* - - metis >=4 - - mpich >=3 + - jpeg + - jsoncpp + - libpng + - libtiff + - libxml2 - mpi4py - - parmetis >=4 - - petsc >=3.12,<3.17 - - petsc4py - - sundials >=3.0,<6.0 - - xerces-c >=3 - - xsd 4.* - - run: + - mpich + - petsc - python - - future - zlib - - freetype - - libxml2 - - libpng - - jpeg - - libtiff - - jsoncpp + + run: + - boost-cpp - expat + - freetype + - future - glew - - boost-cpp >=1.68,<1.76 - - hdf5 >=1.10,<1.11 + - hdf5 - hdf5 * mpi_mpich* - - metis >=4 - - mpich >=3 + - jpeg + - jsoncpp + - libpng + - libtiff + - libxml2 - mpi4py - - parmetis >=4 - - petsc >=3.12,<3.17 - - petsc4py - - sundials >=3.0,<6.0 - - xerces-c >=3 - - xsd 4.* + - mpich + - python + - zlib test: imports: diff --git a/infra/conda/vtk/7.1/recipe/patches/netcdf4-nc4file.patch b/infra/conda/vtk/7.1/recipe/patches/netcdf4-nc4file.patch new file mode 100644 index 00000000..b1a50faa --- /dev/null +++ b/infra/conda/vtk/7.1/recipe/patches/netcdf4-nc4file.patch @@ -0,0 +1,11 @@ +--- a/ThirdParty/netcdf/vtknetcdf/libsrc4/nc4file.c ++++ b/ThirdParty/netcdf/vtknetcdf/libsrc4/nc4file.c +@@ -8,6 +8,8 @@ + COPYRIGHT file for copying and redistribution conditions. + */ + ++#define H5_USE_110_API ++ + #include "nc4internal.h" + #include "nc.h" + #include diff --git a/infra/conda/vtk/7.1/recipe/patches/netcdf4-nc4hdf.patch b/infra/conda/vtk/7.1/recipe/patches/netcdf4-nc4hdf.patch new file mode 100644 index 00000000..197dc77a --- /dev/null +++ b/infra/conda/vtk/7.1/recipe/patches/netcdf4-nc4hdf.patch @@ -0,0 +1,11 @@ +--- a/ThirdParty/netcdf/vtknetcdf/libsrc4/nc4hdf.c ++++ b/ThirdParty/netcdf/vtknetcdf/libsrc4/nc4hdf.c +@@ -13,6 +13,8 @@ + $Id: nc4hdf.c,v 1.273 2010/05/27 21:34:14 dmh Exp $ + */ + ++#define H5_USE_110_API ++ + #include "config.h" + #include "nc4internal.h" + #include diff --git a/infra/conda/vtk/recipe/patches/netcdf4-nc_type.patch b/infra/conda/vtk/7.1/recipe/patches/netcdf4-nc_type.patch similarity index 100% rename from infra/conda/vtk/recipe/patches/netcdf4-nc_type.patch rename to infra/conda/vtk/7.1/recipe/patches/netcdf4-nc_type.patch diff --git a/infra/conda/vtk/recipe/patches/vtk7.1.1.patch b/infra/conda/vtk/7.1/recipe/patches/vtk7.1.1.patch similarity index 100% rename from infra/conda/vtk/recipe/patches/vtk7.1.1.patch rename to infra/conda/vtk/7.1/recipe/patches/vtk7.1.1.patch diff --git a/infra/conda/vtk/7.1/variants/linux_64_python3.10_cpython.yaml b/infra/conda/vtk/7.1/variants/linux_64_python3.10_cpython.yaml new file mode 100644 index 00000000..0b240c28 --- /dev/null +++ b/infra/conda/vtk/7.1/variants/linux_64_python3.10_cpython.yaml @@ -0,0 +1,52 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: + - "2.6" +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +freetype: + - "2.12" +hdf5: + - "1.12" +jpeg: + - "9" +jsoncpp: + - "1.9" +libpng: + - "1.6" +libtiff: + - "4.5" +libxml2: + - "2" +mpich: + - "4" +petsc: + - "3.18" +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: + - 3.10.* *_cpython +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version +zlib: + - "1" diff --git a/infra/conda/vtk/7.1/variants/linux_64_python3.11_cpython.yaml b/infra/conda/vtk/7.1/variants/linux_64_python3.11_cpython.yaml new file mode 100644 index 00000000..960496dc --- /dev/null +++ b/infra/conda/vtk/7.1/variants/linux_64_python3.11_cpython.yaml @@ -0,0 +1,52 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: + - "2.6" +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +freetype: + - "2.12" +hdf5: + - "1.12" +jpeg: + - "9" +jsoncpp: + - "1.9" +libpng: + - "1.6" +libtiff: + - "4.5" +libxml2: + - "2" +mpich: + - "4" +petsc: + - "3.18" +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: + - 3.11.* *_cpython +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version +zlib: + - "1" diff --git a/infra/conda/vtk/7.1/variants/linux_64_python3.12_cpython.yaml b/infra/conda/vtk/7.1/variants/linux_64_python3.12_cpython.yaml new file mode 100644 index 00000000..89e34a86 --- /dev/null +++ b/infra/conda/vtk/7.1/variants/linux_64_python3.12_cpython.yaml @@ -0,0 +1,52 @@ +boostcpp: + - "1.78" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: + - "2.6" +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +freetype: + - "2.12" +hdf5: + - "1.12" +jpeg: + - "9" +jsoncpp: + - "1.9" +libpng: + - "1.6" +libtiff: + - "4.5" +libxml2: + - "2" +mpich: + - "4" +petsc: + - "3.18" +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: + - 3.12.* *_cpython +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version +zlib: + - "1" diff --git a/infra/conda/vtk/7.1/variants/linux_64_python3.8_cpython.yaml b/infra/conda/vtk/7.1/variants/linux_64_python3.8_cpython.yaml new file mode 100644 index 00000000..a5f7bfd8 --- /dev/null +++ b/infra/conda/vtk/7.1/variants/linux_64_python3.8_cpython.yaml @@ -0,0 +1,52 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: + - "2.6" +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +freetype: + - "2.12" +hdf5: + - "1.12" +jpeg: + - "9" +jsoncpp: + - "1.9" +libpng: + - "1.6" +libtiff: + - "4.5" +libxml2: + - "2" +mpich: + - "4" +petsc: + - "3.18" +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: + - 3.8.* *_cpython +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version +zlib: + - "1" diff --git a/infra/conda/vtk/7.1/variants/linux_64_python3.9_cpython.yaml b/infra/conda/vtk/7.1/variants/linux_64_python3.9_cpython.yaml new file mode 100644 index 00000000..b79546bb --- /dev/null +++ b/infra/conda/vtk/7.1/variants/linux_64_python3.9_cpython.yaml @@ -0,0 +1,52 @@ +boostcpp: + - "1.74" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: + - "2.6" +fortran_compiler: + - gfortran +fortran_compiler_version: + - "11" +freetype: + - "2.12" +hdf5: + - "1.12" +jpeg: + - "9" +jsoncpp: + - "1.9" +libpng: + - "1.6" +libtiff: + - "4.5" +libxml2: + - "2" +mpich: + - "4" +petsc: + - "3.18" +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: + - 3.9.* *_cpython +target_platform: + - linux-64 +zip_keys: + - - cxx_compiler_version + - fortran_compiler_version +zlib: + - "1" diff --git a/infra/conda/vtk/LICENSE.txt b/infra/conda/vtk/LICENSE.txt deleted file mode 100644 index 2ec51d75..00000000 --- a/infra/conda/vtk/LICENSE.txt +++ /dev/null @@ -1,27 +0,0 @@ -BSD-3-Clause license -Copyright (c) 2015-2022, conda-forge contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/infra/conda/vtk/build-py310.sh b/infra/conda/vtk/build-py310.sh deleted file mode 100755 index 2fe1c271..00000000 --- a/infra/conda/vtk/build-py310.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -xeo pipefail - -export CONFIG='linux_64_python3.10.____cpython' -export UPLOAD_PACKAGES='False' -export BUILD_WITH_CONDA_DEBUG='0' -export DOCKER_IMAGE='quay.io/condaforge/linux-anvil-cos7-x86_64' -export CPU_COUNT=4 - -.scripts/run_docker_build.sh diff --git a/infra/conda/vtk/recipe/manual_vtk_test.py b/infra/conda/vtk/recipe/manual_vtk_test.py deleted file mode 100644 index 3cb5c5cd..00000000 --- a/infra/conda/vtk/recipe/manual_vtk_test.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env python - -# This simple example shows how to do basic rendering and pipeline -# creation. - -import vtk -# The colors module defines various useful colors. -from vtk.util.colors import tomato - -# This creates a polygonal cylinder model with eight circumferential -# facets. -cylinder = vtk.vtkCylinderSource() -cylinder.SetResolution(8) - -# The mapper is responsible for pushing the geometry into the graphics -# library. It may also do color mapping, if scalars or other -# attributes are defined. -cylinderMapper = vtk.vtkPolyDataMapper() -cylinderMapper.SetInputConnection(cylinder.GetOutputPort()) - -# The actor is a grouping mechanism: besides the geometry (mapper), it -# also has a property, transformation matrix, and/or texture map. -# Here we set its color and rotate it -22.5 degrees. -cylinderActor = vtk.vtkActor() -cylinderActor.SetMapper(cylinderMapper) -cylinderActor.GetProperty().SetColor(tomato) -cylinderActor.RotateX(30.0) -cylinderActor.RotateY(-45.0) - -# Create the graphics structure. The renderer renders into the render -# window. The render window interactor captures mouse events and will -# perform appropriate camera or actor manipulation depending on the -# nature of the events. -ren = vtk.vtkRenderer() -renWin = vtk.vtkRenderWindow() -renWin.AddRenderer(ren) -iren = vtk.vtkRenderWindowInteractor() -iren.SetRenderWindow(renWin) - -# Add the actors to the renderer, set the background and size -ren.AddActor(cylinderActor) -ren.SetBackground(0.1, 0.2, 0.4) -renWin.SetSize(200, 200) - -# This allows the interactor to initalize itself. It has to be -# called before an event loop. -iren.Initialize() - -# We'll zoom in a little by accessing the camera and invoking a "Zoom" -# method on it. -ren.ResetCamera() -ren.GetActiveCamera().Zoom(1.5) -renWin.Render() - -# Start the event loop. -iren.Start() diff --git a/infra/conda/xerces-c/build.sh b/infra/conda/xerces-c/build.sh deleted file mode 100755 index 06ed050c..00000000 --- a/infra/conda/xerces-c/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -./configure --prefix=$PREFIX --without-icu -make -j $CPU_COUNT -make install -j $CPU_COUNT diff --git a/infra/conda/xerces-c/meta.yaml b/infra/conda/xerces-c/meta.yaml deleted file mode 100644 index f6bc9daa..00000000 --- a/infra/conda/xerces-c/meta.yaml +++ /dev/null @@ -1,15 +0,0 @@ -package: - name: xerces-c - version: "3.1.3" - -source: - fn: xerces-c-3.1.3.tar.gz - url: http://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.3.tar.gz - -build: - number: 2 - -about: - home: http://xerces.apache.org/xerces-c/ - license: Apache 2.0 - diff --git a/infra/conda/xsd/4.0/build-package.sh b/infra/conda/xsd/4.0/build-package.sh new file mode 100755 index 00000000..c3d29d22 --- /dev/null +++ b/infra/conda/xsd/4.0/build-package.sh @@ -0,0 +1,94 @@ +#!/bin/bash +set -xeo pipefail + +# Show usage +usage() { + echo 'Usage: '"$(basename "$0")"' --variant=name [--parallel=num]' + echo 'Example:' + echo 'docker run --rm -it quay.io/condaforge/linux-anvil-cos7-x86_64 /bin/bash' + echo "$(basename "$0")"' --variant=linux_64 --parallel=4' + exit 1 +} + +# Parse args +variant= +parallel= + +for option; do + case $option in + --variant=*) + variant=$(expr "x$option" : "x--variant=\(.*\)") + ;; + --parallel=*) + parallel=$(expr "x$option" : "x--parallel=\(.*\)") + ;; + *) + echo "Unknown option: $option" 1>&2 + exit 1 + ;; + esac +done + +if [ -z "${variant}" ]; then usage; fi + +# Configure environment +export FEEDSTOCK_ROOT="$(pwd)" +export RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" +export CONFIG_FILE="${FEEDSTOCK_ROOT}/variants/${variant}.yaml" +export CONDA_BLD_PATH="${FEEDSTOCK_ROOT}/build_artifacts" + +export CPU_COUNT="${parallel:-$(nproc)}" + +export PYTHONUNBUFFERED=1 + +# Get patches +mkdir -p "${RECIPE_ROOT}/patches/" +curl https://raw.githubusercontent.com/Homebrew/formula-patches/85fa66a9/xsd/4.0.0.patch -o "${RECIPE_ROOT}/patches/xsd-4.0.0.patch" +echo "55a15b7a16404e659060cc2487f198a76d96da7ec74e2c0fac9e38f24b151fa7 ${RECIPE_ROOT}/patches/xsd-4.0.0.patch" | sha256sum -c + +# Configure conda build path +mkdir -p "${CONDA_BLD_PATH}" + +cat >~/.condarc <"${CONDA_PREFIX}"/etc/conda/activate.d/conda-forge-ci-setup-activate.sh <=3 + run: + - xerces-c >=3 + +test: + commands: + - xsd --version + +about: + home: http://www.codesynthesis.com/products/xsd/ + license: GPL 2.0 with FLOSS Exception diff --git a/infra/conda/xsd/4.0/variants/linux_64.yaml b/infra/conda/xsd/4.0/variants/linux_64.yaml new file mode 100755 index 00000000..6af9da15 --- /dev/null +++ b/infra/conda/xsd/4.0/variants/linux_64.yaml @@ -0,0 +1,22 @@ +c_compiler: + - gcc +c_compiler_version: + - "11" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - gxx +cxx_compiler_version: + - "11" +docker_image: + - quay.io/condaforge/linux-anvil-cos7-x86_64 +target_platform: + - linux-64 +zip_keys: + - - c_compiler_version + - cxx_compiler_version diff --git a/infra/conda/xsd/4.0/variants/osx_64.yaml b/infra/conda/xsd/4.0/variants/osx_64.yaml new file mode 100755 index 00000000..428295aa --- /dev/null +++ b/infra/conda/xsd/4.0/variants/osx_64.yaml @@ -0,0 +1,24 @@ +MACOSX_DEPLOYMENT_TARGET: + - "10.9" +c_compiler: + - clang +c_compiler_version: + - "15" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - clangxx +cxx_compiler_version: + - "15" +macos_machine: + - x86_64-apple-darwin13.4.0 +target_platform: + - osx-64 +zip_keys: + - - c_compiler_version + - cxx_compiler_version diff --git a/infra/conda/xsd/4.0/variants/osx_arm64.yaml b/infra/conda/xsd/4.0/variants/osx_arm64.yaml new file mode 100755 index 00000000..706a7215 --- /dev/null +++ b/infra/conda/xsd/4.0/variants/osx_arm64.yaml @@ -0,0 +1,24 @@ +MACOSX_DEPLOYMENT_TARGET: + - "11.0" +c_compiler: + - clang +c_compiler_version: + - "15" +cdt_name: + - cos7 +channel_sources: + - pychaste + - conda-forge +channel_targets: + - pychaste main +cxx_compiler: + - clangxx +cxx_compiler_version: + - "15" +macos_machine: + - arm64-apple-darwin20.0.0 +target_platform: + - osx-arm64 +zip_keys: + - - c_compiler_version + - cxx_compiler_version diff --git a/infra/conda/xsd/build.sh b/infra/conda/xsd/build.sh deleted file mode 100755 index dd106f66..00000000 --- a/infra/conda/xsd/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -cp $SRC_DIR/bin/xsd $PREFIX/bin/xsd -cp -R $SRC_DIR/libxsd/ $PREFIX/include/ diff --git a/infra/conda/xsd/meta.yaml b/infra/conda/xsd/meta.yaml deleted file mode 100644 index 7f6cc41e..00000000 --- a/infra/conda/xsd/meta.yaml +++ /dev/null @@ -1,15 +0,0 @@ -package: - name: xsd - version: "4.0.0" - -source: - fn: xsd-4.0.0-x86_64-linux-gnu.tar.bz2 - url: http://www.codesynthesis.com/download/xsd/4.0/linux-gnu/x86_64/xsd-4.0.0-x86_64-linux-gnu.tar.bz2 - -build: - number: 2 - -about: - home: http://www.codesynthesis.com/products/xsd/ - license: GPL 2.0 with FLOSS Exception - diff --git a/infra/docker/Dockerfile b/infra/docker/Dockerfile index dfb61051..253e393e 100644 --- a/infra/docker/Dockerfile +++ b/infra/docker/Dockerfile @@ -24,7 +24,7 @@ RUN apt-get update && \ rm -rf /tmp/* USER $MAMBA_USER -RUN micromamba install -y -n base -c pychaste -c conda-forge -c bioconda chaste boost-cpp=1.74 jupyterlab && \ +RUN micromamba install -y -n base -c pychaste -c conda-forge chaste jupyterlab && \ micromamba clean --all --yes && \ rm -rf $HOME/micromamba/pkgs/* && \ rm -rf /opt/conda/pkgs/* diff --git a/src/python/README.md b/src/python/README.md deleted file mode 100644 index 03d54277..00000000 --- a/src/python/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# PyChaste - -This is an unofficial collection of Python bindings for [Chaste](http://www.cs.ox.ac.uk/chaste/). Currently a limited number of -features are supported, mostly related to Cell Based Chaste. - -# Features - -* On- and off-lattice agent based cell modelling -* Visualization using VTK - -See the [project wiki](https://github.com/jmsgrogan/PyChaste/wiki) for some sample applications. Further examples based on the [Chaste User Tutorials](https://chaste.cs.ox.ac.uk/trac/wiki/UserTutorials) are under development. - -# To use - -``` -import chaste -chaste.init() -``` \ No newline at end of file diff --git a/src/python/setup.py b/src/python/setup.py index b6cb4726..f640364a 100644 --- a/src/python/setup.py +++ b/src/python/setup.py @@ -41,7 +41,7 @@ def has_ext_modules(self): setup( name = "chaste", - version = "2019.1", + version = "2024.1", packages = find_packages(), package_data={ @@ -67,19 +67,23 @@ def has_ext_modules(self): zip_safe = False, # Project Metadata - author = "Chaste Team, University of Oxford", - author_email = "grogan@maths.ox.ac.uk", + author = "Chaste Developers", + author_email = "chaste-users@maillist.ox.ac.uk", description = "Python bindings for Chaste, a general purpose simulation package for computational biology.", license = "BSD-3-Clause", keywords = "cancer developmental biology electrophysiology scientific", classifiers=[ - 'Development Status :: 1 - Planning', + "Development Status :: 4 - Beta", 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering', - 'Operating System :: Unix', + "Operating System :: POSIX", 'License :: OSI Approved :: BSD License', - 'Programming Language :: Python :: 3.10', + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: Implementation :: CPython", ], distclass=BinaryDistribution diff --git a/test/ContinuousTestPack.txt b/test/ContinuousTestPack.txt index 7e6e9680..ffc0820c 100644 --- a/test/ContinuousTestPack.txt +++ b/test/ContinuousTestPack.txt @@ -1,6 +1,7 @@ visualization/TestVtkSceneWithCaBased.hpp visualization/TestVtkSceneWithMeshBased.hpp visualization/TestVtkSceneWithPottsBased.hpp +python/TestImports.py python/core/TestOutputFileHandlerPython.py python/core/TestFileFinderPython.py python/core/TestTimerPython.py diff --git a/test/python/TestImports.py b/test/python/TestImports.py new file mode 100644 index 00000000..10862c0b --- /dev/null +++ b/test/python/TestImports.py @@ -0,0 +1,590 @@ +"""Copyright (c) 2005-2024, University of Oxford. +All rights reserved. + +University of Oxford means the Chancellor, Masters and Scholars of the +University of Oxford, having an administrative office at Wellington +Square, Oxford OX1 2JD, UK. + +This file is part of Chaste. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the University of Oxford nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +""" + +import unittest + + +class TestImports(unittest.TestCase): + + def test_cell_based_imports(self): + import chaste + + chaste.init() + + import chaste.cell_based + from chaste.cell_based import ( + AbstractBoxDomainPdeModifier2, + AbstractBoxDomainPdeModifier3, + AbstractCaBasedDivisionRule2, + AbstractCaBasedDivisionRule3, + AbstractCaSwitchingUpdateRule2, + AbstractCaSwitchingUpdateRule3, + AbstractCaUpdateRule2, + AbstractCaUpdateRule3, + AbstractCellBasedSimulation2_2, + AbstractCellBasedSimulation3_3, + AbstractCellBasedSimulationModifier2_2, + AbstractCellBasedSimulationModifier3_3, + AbstractCellBasedWriter2_2, + AbstractCellBasedWriter3_3, + AbstractCellCycleModel, + AbstractCellCycleModelOdeSolver, + AbstractCellKiller2, + AbstractCellKiller3, + AbstractCellMutationState, + AbstractCellPopulation2_2, + AbstractCellPopulation3_3, + AbstractCellPopulationBoundaryCondition2_2, + AbstractCellPopulationBoundaryCondition3_3, + AbstractCellPopulationCountWriter2_2, + AbstractCellPopulationCountWriter3_3, + AbstractCellPopulationEventWriter2_2, + AbstractCellPopulationEventWriter3_3, + AbstractCellPopulationWriter2_2, + AbstractCellPopulationWriter3_3, + AbstractCellProliferativeType, + AbstractCellProperty, + AbstractCellWriter2_2, + AbstractCellWriter3_3, + AbstractCentreBasedCellPopulation2_2, + AbstractCentreBasedCellPopulation3_3, + AbstractCentreBasedDivisionRule2_2, + AbstractCentreBasedDivisionRule3_3, + AbstractForce2_2, + AbstractForce3_3, + AbstractGrowingDomainPdeModifier2, + AbstractGrowingDomainPdeModifier3, + AbstractImmersedBoundaryDivisionRule2, + AbstractImmersedBoundaryDivisionRule3, + AbstractImmersedBoundaryForce2, + AbstractImmersedBoundaryForce3, + AbstractNumericalMethod2_2, + AbstractNumericalMethod3_3, + AbstractOdeBasedCellCycleModel, + AbstractOdeBasedPhaseBasedCellCycleModel, + AbstractOdeSrnModel, + AbstractOffLatticeCellPopulation2_2, + AbstractOffLatticeCellPopulation3_3, + AbstractOnLatticeCellPopulation2, + AbstractOnLatticeCellPopulation3, + AbstractPdeModifier2, + AbstractPdeModifier3, + AbstractPhaseBasedCellCycleModel, + AbstractPottsUpdateRule2, + AbstractPottsUpdateRule3, + AbstractSimpleCellCycleModel, + AbstractSimpleGenerationalCellCycleModel, + AbstractSimplePhaseBasedCellCycleModel, + AbstractSrnModel, + AbstractTargetAreaModifier2, + AbstractTargetAreaModifier3, + AbstractTwoBodyInteractionForce2_2, + AbstractTwoBodyInteractionForce3_3, + AbstractUpdateRule2, + AbstractUpdateRule3, + AbstractVertexBasedDivisionRule2, + AbstractVertexBasedDivisionRule3, + AdhesionPottsUpdateRule2, + AdhesionPottsUpdateRule3, + Alarcon2004OxygenBasedCellCycleModel, + AlwaysDivideCellCycleModel, + ApcOneHitCellMutationState, + ApcTwoHitCellMutationState, + ApoptoticCellKiller2, + ApoptoticCellKiller3, + ApoptoticCellProperty, + AttractingPlaneBoundaryCondition2_2, + AttractingPlaneBoundaryCondition3_3, + AveragedSourceEllipticPde2, + AveragedSourceEllipticPde3, + AveragedSourceParabolicPde2, + AveragedSourceParabolicPde3, + BernoulliTrialCellCycleModel, + BetaCateninOneHitCellMutationState, + BiasedBernoulliTrialCellCycleModel, + BoundaryNodeWriter2_2, + BoundaryNodeWriter3_3, + BuskeAdhesiveForce2, + BuskeAdhesiveForce3, + BuskeCompressionForce2, + BuskeCompressionForce3, + BuskeElasticForce2, + BuskeElasticForce3, + CaBasedCellPopulation2, + CaBasedCellPopulation3, + CellAgesWriter2_2, + CellAgesWriter3_3, + CellAncestor, + CellAncestorWriter2_2, + CellAncestorWriter3_3, + CellAppliedForceWriter2_2, + CellAppliedForceWriter3_3, + CellBasedEllipticPdeSolver2, + CellBasedEllipticPdeSolver3, + CellBasedParabolicPdeSolver2, + CellBasedParabolicPdeSolver3, + Cell, + CellCycleModelProteinConcentrationsWriter2_2, + CellCycleModelProteinConcentrationsWriter3_3, + CellData, + CellDataItemWriter2_2, + CellDataItemWriter3_3, + CellDeltaNotchWriter2_2, + CellDeltaNotchWriter3_3, + CellDivisionLocationsWriter2_2, + CellDivisionLocationsWriter3_3, + CellEdgeData, + CellId, + CellIdWriter2_2, + CellIdWriter3_3, + CellLabel, + CellLabelWriter2_2, + CellLabelWriter3_3, + CellLocationIndexWriter2_2, + CellLocationIndexWriter3_3, + CellMutationStatesCountWriter2_2, + CellMutationStatesCountWriter3_3, + CellMutationStatesWriter2_2, + CellMutationStatesWriter3_3, + CellPopulationAdjacencyMatrixWriter2_2, + CellPopulationAdjacencyMatrixWriter3_3, + CellPopulationAreaWriter2_2, + CellPopulationAreaWriter3_3, + CellPopulationElementWriter2_2, + CellPopulationElementWriter3_3, + CellProliferativePhasesCountWriter2_2, + CellProliferativePhasesCountWriter3_3, + CellProliferativePhasesWriter2_2, + CellProliferativePhasesWriter3_3, + CellProliferativeTypesCountWriter2_2, + CellProliferativeTypesCountWriter3_3, + CellProliferativeTypesWriter2_2, + CellProliferativeTypesWriter3_3, + CellPropertyCollection, + CellPropertyRegistry, + CellRadiusWriter2_2, + CellRadiusWriter3_3, + CellRemovalLocationsWriter2_2, + CellRemovalLocationsWriter3_3, + CellRosetteRankWriter2_2, + CellRosetteRankWriter3_3, + CellsGeneratorAlarcon2004OxygenBasedCellCycleModel_2, + CellsGeneratorAlarcon2004OxygenBasedCellCycleModel_3, + CellsGeneratorAlwaysDivideCellCycleModel_2, + CellsGeneratorAlwaysDivideCellCycleModel_3, + CellsGeneratorBernoulliTrialCellCycleModel_2, + CellsGeneratorBernoulliTrialCellCycleModel_3, + CellsGeneratorBiasedBernoulliTrialCellCycleModel_2, + CellsGeneratorBiasedBernoulliTrialCellCycleModel_3, + CellsGeneratorContactInhibitionCellCycleModel_2, + CellsGeneratorContactInhibitionCellCycleModel_3, + CellsGeneratorExponentialG1GenerationalCellCycleModel_2, + CellsGeneratorExponentialG1GenerationalCellCycleModel_3, + CellsGeneratorFixedG1GenerationalCellCycleModel_2, + CellsGeneratorFixedG1GenerationalCellCycleModel_3, + CellsGeneratorFixedSequenceCellCycleModel_2, + CellsGeneratorFixedSequenceCellCycleModel_3, + CellsGeneratorGammaG1CellCycleModel_2, + CellsGeneratorGammaG1CellCycleModel_3, + CellsGeneratorLabelDependentBernoulliTrialCellCycleModel_2, + CellsGeneratorLabelDependentBernoulliTrialCellCycleModel_3, + CellsGeneratorNoCellCycleModel_2, + CellsGeneratorNoCellCycleModel_3, + CellsGeneratorSimpleOxygenBasedCellCycleModel_2, + CellsGeneratorSimpleOxygenBasedCellCycleModel_3, + CellsGeneratorStochasticOxygenBasedCellCycleModel_2, + CellsGeneratorStochasticOxygenBasedCellCycleModel_3, + CellsGeneratorTysonNovakCellCycleModel_2, + CellsGeneratorTysonNovakCellCycleModel_3, + CellsGeneratorUniformCellCycleModel_2, + CellsGeneratorUniformCellCycleModel_3, + CellsGeneratorUniformG1GenerationalCellCycleModel_2, + CellsGeneratorUniformG1GenerationalCellCycleModel_3, + CellSrnModel, + CellVolumesWriter2_2, + CellVolumesWriter3_3, + CellwiseSourceEllipticPde2, + CellwiseSourceEllipticPde3, + CellwiseSourceParabolicPde2, + CellwiseSourceParabolicPde3, + ChemotacticForce2, + ChemotacticForce3, + ChemotaxisPottsUpdateRule2, + ChemotaxisPottsUpdateRule3, + ContactInhibitionCellCycleModel, + DefaultCellProliferativeType, + DeltaNotchEdgeInteriorTrackingModifier2, + DeltaNotchEdgeInteriorTrackingModifier3, + DeltaNotchEdgeSrnModel, + DeltaNotchInteriorSrnModel, + DeltaNotchSrnModel, + DeltaNotchTrackingModifier2, + DeltaNotchTrackingModifier3, + DifferentialAdhesionGeneralisedLinearSpringForce2_2, + DifferentialAdhesionGeneralisedLinearSpringForce3_3, + DifferentialAdhesionPottsUpdateRule2, + DifferentialAdhesionPottsUpdateRule3, + DifferentiatedCellProliferativeType, + DiffusionCaUpdateRule2, + DiffusionCaUpdateRule3, + DiffusionForce2, + DiffusionForce3, + DivisionBiasTrackingModifier2, + DivisionBiasTrackingModifier3, + EllipticBoxDomainPdeModifier2, + EllipticBoxDomainPdeModifier3, + EllipticGrowingDomainPdeModifier2, + EllipticGrowingDomainPdeModifier3, + ExclusionCaBasedDivisionRule2, + ExclusionCaBasedDivisionRule3, + ExponentialG1GenerationalCellCycleModel, + ExtrinsicPullModifier2, + ExtrinsicPullModifier3, + FarhadifarForce2, + FarhadifarForce3, + FixedCentreBasedDivisionRule2_2, + FixedCentreBasedDivisionRule3_3, + FixedG1GenerationalCellCycleModel, + FixedSequenceCellCycleModel, + FixedVertexBasedDivisionRule2, + FixedVertexBasedDivisionRule3, + ForwardEulerNumericalMethod2_2, + ForwardEulerNumericalMethod3_3, + GammaG1CellCycleModel, + GeneralisedLinearSpringForce2_2, + GeneralisedLinearSpringForce3_3, + Goldbeter1991SrnModel, + HeterotypicBoundaryLengthWriter2_2, + HeterotypicBoundaryLengthWriter3_3, + ImmersedBoundaryBoundaryCellWriter2_2, + ImmersedBoundaryBoundaryCellWriter3_3, + ImmersedBoundaryCellPopulation2, + ImmersedBoundaryCellPopulation3, + ImmersedBoundaryKinematicFeedbackForce2, + ImmersedBoundaryKinematicFeedbackForce3, + ImmersedBoundaryLinearDifferentialAdhesionForce2, + ImmersedBoundaryLinearDifferentialAdhesionForce3, + ImmersedBoundaryLinearInteractionForce2, + ImmersedBoundaryLinearInteractionForce3, + ImmersedBoundaryLinearMembraneForce2, + ImmersedBoundaryLinearMembraneForce3, + ImmersedBoundaryMorseInteractionForce2, + ImmersedBoundaryMorseInteractionForce3, + ImmersedBoundaryMorseMembraneForce2, + ImmersedBoundaryMorseMembraneForce3, + ImmersedBoundaryNeighbourNumberWriter2_2, + ImmersedBoundaryNeighbourNumberWriter3_3, + ImmersedBoundarySimulationModifier2, + ImmersedBoundarySimulationModifier3, + ImmersedBoundarySvgWriter2, + ImmersedBoundarySvgWriter3, + IsolatedLabelledCellKiller2, + IsolatedLabelledCellKiller3, + LabelDependentBernoulliTrialCellCycleModel, + LegacyCellProliferativeTypesWriter2_2, + LegacyCellProliferativeTypesWriter3_3, + MeshBasedCellPopulation2_2, + MeshBasedCellPopulation3_3, + MeshBasedCellPopulationWithGhostNodes2, + MeshBasedCellPopulationWithGhostNodes3, + NagaiHondaDifferentialAdhesionForce2, + NagaiHondaDifferentialAdhesionForce3, + NagaiHondaForce2, + NagaiHondaForce3, + NoCellCycleModel, + NodeBasedCellPopulation2, + NodeBasedCellPopulation3, + NodeBasedCellPopulationWithBuskeUpdate2, + NodeBasedCellPopulationWithBuskeUpdate3, + NodeBasedCellPopulationWithParticles2, + NodeBasedCellPopulationWithParticles3, + NodeLocationWriter2_2, + NodeLocationWriter3_3, + NodeVelocityWriter2_2, + NodeVelocityWriter3_3, + NormallyDistributedTargetAreaModifier2, + NormallyDistributedTargetAreaModifier3, + NullSrnModel, + OffLatticeSimulation2_2, + OffLatticeSimulation3_3, + OnLatticeSimulation2, + OnLatticeSimulation3, + ParabolicBoxDomainPdeModifier2, + ParabolicBoxDomainPdeModifier3, + ParabolicGrowingDomainPdeModifier2, + ParabolicGrowingDomainPdeModifier3, + PlanarPolarisedFarhadifarForce2, + PlanarPolarisedFarhadifarForce3, + PlaneBasedCellKiller2, + PlaneBasedCellKiller3, + PlaneBoundaryCondition2_2, + PlaneBoundaryCondition3_3, + PottsBasedCellPopulation2, + PottsBasedCellPopulation3, + PottsMeshWriter2, + PottsMeshWriter3, + PythonSimulationModifier2, + PythonSimulationModifier3, + RadialCellDataDistributionWriter2_2, + RadialCellDataDistributionWriter3_3, + RandomCaSwitchingUpdateRule2, + RandomCaSwitchingUpdateRule3, + RandomCellKiller2, + RandomCellKiller3, + RandomDirectionCentreBasedDivisionRule2_2, + RandomDirectionCentreBasedDivisionRule3_3, + RandomDirectionVertexBasedDivisionRule2, + RandomDirectionVertexBasedDivisionRule3, + RepulsionForce2, + RepulsionForce3, + ShortAxisImmersedBoundaryDivisionRule2, + ShortAxisImmersedBoundaryDivisionRule3, + ShortAxisVertexBasedDivisionRule2, + ShortAxisVertexBasedDivisionRule3, + ShovingCaBasedDivisionRule2, + ShovingCaBasedDivisionRule3, + SimpleOxygenBasedCellCycleModel, + SimpleTargetAreaModifier2, + SimpleTargetAreaModifier3, + SimulationTime, + SlidingBoundaryCondition2, + SlidingBoundaryCondition3, + SphereGeometryBoundaryCondition2, + SphereGeometryBoundaryCondition3, + StemCellProliferativeType, + StochasticOxygenBasedCellCycleModel, + SurfaceAreaConstraintPottsUpdateRule2, + SurfaceAreaConstraintPottsUpdateRule3, + T2SwapCellKiller2, + T2SwapCellKiller3, + TargetAreaLinearGrowthModifier2, + TargetAreaLinearGrowthModifier3, + TargetedCellKiller2, + TargetedCellKiller3, + TransitCellProliferativeType, + TysonNovakCellCycleModel, + UniformCellCycleModel, + UniformG1GenerationalCellCycleModel, + UniformSourceEllipticPde2, + UniformSourceEllipticPde3, + UniformSourceParabolicPde2, + UniformSourceParabolicPde3, + VertexBasedCellPopulation2, + VertexBasedCellPopulation3, + VertexBasedPopulationSrn2, + VertexBasedPopulationSrn3, + VertexIntersectionSwapLocationsWriter2_2, + VertexIntersectionSwapLocationsWriter3_3, + VertexT1SwapLocationsWriter2_2, + VertexT1SwapLocationsWriter3_3, + VertexT2SwapLocationsWriter2_2, + VertexT2SwapLocationsWriter3_3, + VertexT3SwapLocationsWriter2_2, + VertexT3SwapLocationsWriter3_3, + VolumeConstraintPottsUpdateRule2, + VolumeConstraintPottsUpdateRule3, + VolumeDependentAveragedSourceEllipticPde2, + VolumeDependentAveragedSourceEllipticPde3, + VolumeTrackingModifier2, + VolumeTrackingModifier3, + VonMisesVertexBasedDivisionRule2, + VonMisesVertexBasedDivisionRule3, + VoronoiDataWriter2_2, + VoronoiDataWriter3_3, + VtkSceneModifier2, + VtkSceneModifier3, + WelikyOsterForce2, + WelikyOsterForce3, + WildTypeCellMutationState, + ) + + def test_core_imports(self): + import chaste + + chaste.init() + + import chaste.core + from chaste.core import ( + ChasteBuildInfo, + FileFinder, + Identifiable, + OutputFileHandler, + PetscTools, + ProgressReporter, + RandomNumberGenerator, + RelativeTo, + ReplicatableVector, + Timer, + TimeStepper, + ) + + def test_mesh_imports(self): + import chaste + + chaste.init() + + import chaste.mesh + from chaste.mesh import ( + AbstractChasteRegion2, + AbstractChasteRegion3, + AbstractElement1_2, + AbstractElement2_2, + AbstractElement2_3, + AbstractElement3_3, + AbstractMesh2_2, + AbstractMesh3_3, + AbstractTetrahedralMesh2_2, + AbstractTetrahedralMesh3_3, + ChasteCuboid2, + ChasteCuboid3, + ChasteEllipsoid2, + ChasteEllipsoid3, + ChastePoint2, + ChastePoint3, + Cylindrical2dMesh, + Cylindrical2dNodesOnlyMesh, + Cylindrical2dVertexMesh, + CylindricalHoneycombMeshGenerator, + CylindricalHoneycombVertexMeshGenerator, + Edge2, + Edge3, + EdgeHelper2, + EdgeHelper3, + EdgeOperation, + Element2_2, + Element3_3, + FluidSource2, + FluidSource3, + HoneycombMeshGenerator, + HoneycombVertexMeshGenerator, + ImmersedBoundaryElement1_2, + ImmersedBoundaryElement2_2, + ImmersedBoundaryElement2_3, + ImmersedBoundaryElement3_3, + ImmersedBoundaryHoneycombMeshGenerator, + ImmersedBoundaryMesh2_2, + ImmersedBoundaryMesh3_3, + ImmersedBoundaryPalisadeMeshGenerator, + MutableElement1_2, + MutableElement2_2, + MutableElement2_3, + MutableElement3_3, + MutableMesh2_2, + MutableMesh3_3, + MutableVertexMesh2_2, + MutableVertexMesh3_3, + Node2, + Node3, + NodeAttributes2, + NodeAttributes3, + NodesOnlyMesh2, + NodesOnlyMesh3, + PeriodicNodesOnlyMesh2, + PeriodicNodesOnlyMesh3, + PottsElement2, + PottsElement3, + PottsMesh2, + PottsMesh3, + PottsMeshGenerator2, + PottsMeshGenerator3, + TetrahedralMesh2_2, + TetrahedralMesh3_3, + Toroidal2dMesh, + Toroidal2dVertexMesh, + ToroidalHoneycombMeshGenerator, + ToroidalHoneycombVertexMeshGenerator, + VertexMesh2_2, + VertexMesh3_3, + VoronoiVertexMeshGenerator, + ) + + def test_ode_imports(self): + import chaste + + chaste.init() + + import chaste.ode + from chaste.ode import ( + AbstractOdeSystem, + AbstractOdeSystemInformation, + AbstractPythonOdeSystemInformation, + Alarcon2004OxygenBasedCellCycleOdeSystem, + DeltaNotchEdgeOdeSystem, + DeltaNotchInteriorOdeSystem, + DeltaNotchOdeSystem, + Goldbeter1991OdeSystem, + TysonNovak2001OdeSystem, + ) + + def test_pde_imports(self): + import chaste + + chaste.init() + + import chaste.pde + from chaste.pde import ( + AbstractBoundaryCondition2, + AbstractBoundaryCondition3, + AbstractLinearEllipticPde2_2, + AbstractLinearEllipticPde3_3, + AbstractLinearParabolicPde2_2, + AbstractLinearParabolicPde3_3, + AbstractLinearParabolicPdeSystemForCoupledOdeSystem2_2_1, + AbstractLinearParabolicPdeSystemForCoupledOdeSystem3_3_1, + AbstractLinearPde2_2, + AbstractLinearPde3_3, + AbstractNonlinearEllipticPde2, + AbstractNonlinearEllipticPde3, + ConstBoundaryCondition2, + ConstBoundaryCondition3, + PdeSimulationTime, + ) + + def test_visualization_imports(self): + import chaste + + chaste.init() + + import chaste.visualization + from chaste.visualization import ( + AbstractPyChasteActorGenerator2, + AbstractPyChasteActorGenerator3, + CellPopulationPyChasteActorGenerator2, + CellPopulationPyChasteActorGenerator3, + JupyterNotebookManager, + VtkScene2, + VtkScene3, + ) + + +if __name__ == "__main__": + unittest.main()