Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

DOIBuild Status

Cherab

Welcome to the Cherab project.

Please see our documentation for guidance on using the code.

Installation

Cherab is a large code framework consisting of a core package and feature packages. Users will generally install the core package and the specific feature packages they need for their work. For example, users working on the JET tokamak will require the cherab-core package, and the cherab-jet package.

Unless developing new code for a cherab package, most users should clone the master branch. When developing new features for cherab, the development branch should be used as the base.

All cherab packages are standard python packages and basic installation is achieved with:

pip install cherab

This will compile the Cherab cython extensions and install the package. If you don't have administrator access to install the package, add the --user flag to the above line to install the package under your own user account. Alternatively, consider creating a virtual environment and installing cherab in the environment.

When developing cherab it is usually preferred that the packages be installed in "editable" mode. Clone this repository and change directory to the root of the repository, then run:

pip install -e .

This will cause the original installation folder to be added to the site-package path. Modifications to the code will therefore be visible to python next time the code is imported. A virtual environment or the --user flag should be used if you do not have administrative permission for your python installation. If you make any changes to Cython files you will need to run ./dev/build.sh to rebuild the relevant files.

As all the Cherab packages are dependent on the cherab-core package, this package must be installed first. Note that other packages may have their own inter-dependencies, see the specific package documentation for more information.

Cherab is organised as a namespace package, where each of the submodules is installed in the same location as the core package. Any submodules using Cython with a build-time dependency on Cherab need to use a Cython version newer than 3.0a5, due to a bug in how earlier versions of Cython handle namespaces.

By default, pip will install from wheel archives on PyPI. If a binary wheel is not available for your version of Python, or if you are installing in editable mode for development, the package will be compiled locally on your machine. Compilation is done in parallel by default, using all available processors, but can be overridden by setting the environment variable CHERAB_NCPU to the number of processors to use.

Governance

The management of the project is divided into Scientific and Technical Project Management. The Scientific management happens through the normal community routes such as JET and MST1 task force meetings, ITPA meetings, etc.

The Technical Management Committee (TMC) is a smaller subset of the community, being responsible for ensuring the integrity and high code quality of Cherab is maintained. These TMC members would have in-depth knowledge of the code base through a demonstrated history of contributing to the project. The TMC would primarily be responsible for accepting / rejecting merge requests on the basis of code / physics algorithm quality standards.

TMC Members

  • Alys Brett (chairwoman, master account holder, responsible for delegation, UKAEA, UK)
  • Matt Carr (External consultant, diagnostic physics models)
  • Jack Lovell (Oak Ridge, USA)
  • Alex Meakins (External consultant, Architecture, software integrity)
  • Vlad Neverov (NRC Kurchatov Institute, Moscow)
  • Matej Tomes (Compass, IPP, Prague)

Citing The Code

  • Dr Carine Giroud, Dr Alex Meakins, Dr Matthew Carr, Dr Alfonso Baciero, & Mr Corentin Bertrand. (2018, March 23). Cherab Spectroscopy Modelling Framework (Version v0.1.0). Zenodo. http://doi.org/10.5281/zenodo.1206142

About

The core source repository for the Cherab project.

Topics

Resources

Stars

48 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages