CubitPy: Utility functions and 4C related functionality for the Cubit and Coreform python interface
Project description
CubitPy
Utility functions and 4C related functionality for the Cubit and Coreform python interface, Especially for the creation of input files for 4C.
Usage
A tutorial can be found in the /tutorial directory.
Contributing
If you are interested in contributing to CubitPy, we welcome your collaboration. For general questions, feature request and bug reports please open an issue.
If you contribute actual code, fork the repository and make the changes in a feature branch.
Depending on the topic and amount of changes you also might want to open an issue.
To merge your changes into the CubitPy repository, create a pull request to the main branch.
A few things to keep in mind:
- It is highly encouraged to add tests covering the functionality of your changes, see the test suite in
tests/. - CubitPy uses
blackto format python code. Make sure to applyblackto the changed source files. - Feel free to add yourself to the CONTRIBUTORS file.
Installation
CubitPy is developed with python3.13.
Other versions of Python might lead to issues.
It is recommended to use a python environment container such as conda or venv.
conda: A conda environment can be created and loaded withconda create -n cubitpy python=3.13 conda activate cubitpy
venv: Chose an appropriate directory for this, e.g.,/home/user/opt. A virtual environment can be setup with- On Debian systems the following packages have to be installed:
sudo apt-get install python3-venv python3-dev
- Create and load the environment
cd <path-to-env-folder> python -m venv cubitpy-env source cubitpy-env/bin/activate
- On Debian systems the following packages have to be installed:
To install cubitpy go to the repository root directory
cd path_to_cubitpy
And install cubitpy via pip
pip install .
If you intend to actively develop cubitpy, install it in editable mode
pip install -e ".[dev]"
To run CubitPy it is required to set an environment variable with the path to the Cubit directory. This should be the "root" directory for the installation.
export CUBIT_ROOT=path_to_cubit_root_directory
If you are using a Cubit version that still runs on python2, you need to specify a path to a valid python2.7 executable
export CUBITPY_PYTHON2=path_to_python2.7
Note: for IMCS workstations this path is "/imcs/public/compsim/opt/Python-2.7.18/python".
To check if everything worked as expected, run the test suite (from the root directory)
cd path_to_cubitpy/tests
pytest
If you intend to actively develop CubitPy, please make sure to install the pre-commit hook within the python environment to follow our style guides:
pre-commit install
Debugging in VS Code and PyCharm
When debugging, IDEs may try to attach to subprocesses, which can cause issues. The instructions below show how to disable this behavior in VS Code and PyCharm.
VS Code
To prevent the debugger from attaching to subprocesses, add the following to your .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Launch current file",
"type": "debugpy",
"request": "launch",
"program": "${file}", // Launches the currently open file
"console": "integratedTerminal", // or "externalTerminal" if needed
"subProcess":false, // Disables debugging for subprocesses and libraries
}
]
}
PyCharm
To disable subprocess debugging:
- Go to File > Settings
- Navigate to: Build, Execution, Deployment > Python Debugger
- Uncheck: Attach to subprocess automatically while debugging
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cubitpy-0.1.2.tar.gz.
File metadata
- Download URL: cubitpy-0.1.2.tar.gz
- Upload date:
- Size: 425.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ece3bbae2217ffd04d96fddfb8aada34c6bbb4ec536ca4e81df36ac43cca9ae9
|
|
| MD5 |
084e60c2979d0bba50eb078acd862dcc
|
|
| BLAKE2b-256 |
6fe74da2a1a27470bf66f23ccf5740b0037add163f8d4ac4ef8eee8690e05713
|
File details
Details for the file cubitpy-0.1.2-py3-none-any.whl.
File metadata
- Download URL: cubitpy-0.1.2-py3-none-any.whl
- Upload date:
- Size: 48.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0547a0ff7d9c63f11d6c7d3bf422f36c2ad83325c85d9c9c5bc9caa1bdc9236c
|
|
| MD5 |
ba2e68eceb7f0f8261c9c3e0068d3f95
|
|
| BLAKE2b-256 |
c0742f8d51eb187b4dd58b16799a8af5fd6fda9a9ebabfb2adeb355a080bfc36
|