# scikit-nrf-core
## Build Flow
Building and Deploying Python code with native shared libraries
a continuously involving ordeal, hence I have provided the equivalent
CMake/Makefile command in comments to be relatable to C++. Internally
Cmake and Make are invoked. The build-flow currently uses setuptools,
which is deprecated in Python 3.12.
### Install Dependencies
See requirements.txt
### Environment Variables
<table>
<tr>
<th> Variable </th>
<th> Default Value </th>
<th> Description </th>
</tr>
<tr>
<td> LLVM_INSTALL_DIR </td>
<td> ${HOME}/libclang </td>
<td> libclang directory </td>
</tr>
<tr>
<td> SKNRF_DIR </td>
<td> import site ; site.getsitepackages()[0] </td>
<td> Python sknrf-core Module Directory </td>
</tr>
<tr>
<td> CONDA_PREFIX </td>
<td> /usr/local </td>
<td> C++ Sysroot </td>
</tr>
<tr>
<td> VISA_LIB </td>
<td> @py </td>
<td> Visa Library Location </td>
</tr>
</table>
### Release Build
```bash
python3 setup.py clean # sudo make clean
python3 setup.py config ` # cmake ..
python3 setup.py build # make
python3 setup.py install # sudo make install
```
`python3 setup.py install` will take a while to execute because it builds the python documentation. As an alternative `python3 setup.py develop`
creates the same outcome by symbolicly linking the src directory `sknrf` to a file in the `site-packages` folder. NOTE: This is a PYTHON-SPECIFIC
symbolic link that works cross-platform for PYTHON ONLY. You still need to `install` all other files as follows!
```bash
python3 setup.py clean # sudo make clean
python3 setup.py config ` # cmake ..
python3 setup.py build # make
python3 setup.py install_clib # sudo make install
python3 setup.py install_data # sudo make install
python3 setup.py develop # All changes in the source directory are now installed instantly
python3 setup.py install_doc # sudo make install
```
### Example
```bash
python3 ${SKNRF_DIR}/sknrf/main.py
```
### Tests
```bash
cd ${SKNRF_DIR}/sknrf ; nosetests --config=nose.cfg
```
### Runtime Configuration
`${SKNRF_DIR}/sknrf/sknrf.yml` contains runtime configuration settings. Beware of Environment Variables set in this file.
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/scikit-nonlinear",
"name": "sknrf-core",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "'Nonlinear RF Device System Characterization Modeling Electronic Design Automation'",
"author": "Dylan T. Bespalko",
"author_email": "dylan.bespalko@me.com",
"download_url": "https://files.pythonhosted.org/packages/6c/31/a9133b7c27e9022920602fa5b75b40656f44ca04d2bb320a2d99f432a98d/sknrf-core-1.1.1.tar.gz",
"platform": null,
"description": "# scikit-nrf-core\n\n## Build Flow\n\nBuilding and Deploying Python code with native shared libraries\na continuously involving ordeal, hence I have provided the equivalent\nCMake/Makefile command in comments to be relatable to C++. Internally\nCmake and Make are invoked. The build-flow currently uses setuptools,\nwhich is deprecated in Python 3.12.\n\n### Install Dependencies\n\nSee requirements.txt\n\n### Environment Variables\n\n <table>\n <tr>\n <th> Variable </th>\n <th> Default Value </th>\n <th> Description </th>\n </tr>\n <tr>\n <td> LLVM_INSTALL_DIR </td>\n <td> ${HOME}/libclang </td>\n <td> libclang directory </td>\n </tr>\n <tr>\n <td> SKNRF_DIR </td>\n <td> import site ; site.getsitepackages()[0] </td>\n <td> Python sknrf-core Module Directory </td>\n </tr>\n <tr>\n <td> CONDA_PREFIX </td>\n <td> /usr/local </td>\n <td> C++ Sysroot </td>\n </tr>\n <tr>\n <td> VISA_LIB </td>\n <td> @py </td>\n <td> Visa Library Location </td>\n </tr>\n </table>\n\n### Release Build\n\n```bash\n python3 setup.py clean # sudo make clean\n python3 setup.py config ` # cmake ..\n python3 setup.py build # make\n python3 setup.py install # sudo make install\n ```\n\n`python3 setup.py install` will take a while to execute because it builds the python documentation. As an alternative `python3 setup.py develop`\ncreates the same outcome by symbolicly linking the src directory `sknrf` to a file in the `site-packages` folder. NOTE: This is a PYTHON-SPECIFIC\nsymbolic link that works cross-platform for PYTHON ONLY. You still need to `install` all other files as follows!\n\n```bash\n python3 setup.py clean # sudo make clean\n python3 setup.py config ` # cmake ..\n python3 setup.py build # make\n python3 setup.py install_clib # sudo make install\n python3 setup.py install_data # sudo make install\n python3 setup.py develop # All changes in the source directory are now installed instantly\n python3 setup.py install_doc # sudo make install\n ```\n\n### Example\n\n```bash\n python3 ${SKNRF_DIR}/sknrf/main.py\n```\n\n### Tests\n\n```bash\n cd ${SKNRF_DIR}/sknrf ; nosetests --config=nose.cfg\n```\n\n### Runtime Configuration\n\n`${SKNRF_DIR}/sknrf/sknrf.yml` contains runtime configuration settings. Beware of Environment Variables set in this file.\n",
"bugtrack_url": null,
"license": "",
"summary": "Object Oriented Nonlinear RF/Microwave Engineering",
"version": "1.1.1",
"project_urls": {
"Download": "https://gitlab.com/scikit-nonlinear/sknrf-core/-/releases/v1.1.1",
"Homepage": "https://gitlab.com/scikit-nonlinear"
},
"split_keywords": [
"'nonlinear",
"rf",
"device",
"system",
"characterization",
"modeling",
"electronic",
"design",
"automation'"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6c31a9133b7c27e9022920602fa5b75b40656f44ca04d2bb320a2d99f432a98d",
"md5": "a232b085154fc35f5166e0b8cd531d33",
"sha256": "4f7c24d9612c1cb9ddfb1bd9ca36098e75150731dc2febd437a2cb0cd2f30b39"
},
"downloads": -1,
"filename": "sknrf-core-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "a232b085154fc35f5166e0b8cd531d33",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 93933317,
"upload_time": "2023-05-21T04:47:11",
"upload_time_iso_8601": "2023-05-21T04:47:11.291778Z",
"url": "https://files.pythonhosted.org/packages/6c/31/a9133b7c27e9022920602fa5b75b40656f44ca04d2bb320a2d99f432a98d/sknrf-core-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-21 04:47:11",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "scikit-nonlinear",
"gitlab_project": "sknrf-core",
"lcname": "sknrf-core"
}