Compare commits
17 Commits
a55a661b39
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a2ba7beef | |||
| 63caa78f15 | |||
| 47341c9845 | |||
| f8599ead01 | |||
| 80e62fe54e | |||
| c7d64feb3c | |||
| 243b51a966 | |||
| 6ff4c88aa7 | |||
| 979ec80dc4 | |||
| 2caf46c984 | |||
| d52795fa48 | |||
| 86be969729 | |||
| ac76b4ad3b | |||
| b9f88d75ce | |||
| ab2ae12281 | |||
| 6e489d15e5 | |||
| 250e03f00a |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -75,7 +75,11 @@ subprojects/liblogging/
|
||||
subprojects/eigen-*/
|
||||
!subprojects/pybind11.wrap
|
||||
subprojects/libplugin/
|
||||
subprojects/minizip-ng-*
|
||||
subprojects/.wraplock
|
||||
subprojects/openssl-*
|
||||
subprojects/glaze/
|
||||
subprojects/tomlplusplus-*/
|
||||
|
||||
*.csv
|
||||
*.dot
|
||||
@@ -83,6 +87,10 @@ subprojects/.wraplock
|
||||
qhull.wrap
|
||||
quill.wrap
|
||||
yaml-cpp.wrap
|
||||
minizip-ng.wrap
|
||||
openssl.wrap
|
||||
glaze.wrap
|
||||
tomlplusplus.wrap
|
||||
|
||||
.vscode/
|
||||
|
||||
|
||||
BIN
assets/logo/logo.png
Normal file
BIN
assets/logo/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
741
assets/logo/logo.svg
Normal file
741
assets/logo/logo.svg
Normal file
@@ -0,0 +1,741 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="180"
|
||||
height="180"
|
||||
viewBox="0 0 180 180"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:export-filename="logo.png"
|
||||
inkscape:export-xdpi="273.06668"
|
||||
inkscape:export-ydpi="273.06668"
|
||||
sodipodi:docname="logo.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px">
|
||||
<inkscape:page
|
||||
x="0"
|
||||
y="0"
|
||||
width="180"
|
||||
height="180"
|
||||
id="page2"
|
||||
margin="0"
|
||||
bleed="0" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1">
|
||||
<linearGradient
|
||||
id="linearGradient7"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0.47123286"
|
||||
id="stop8" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop9" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0.25479454"
|
||||
id="stop6" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="0.81643838"
|
||||
id="stop7" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-2"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(4.37549,17.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-3"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-15.62451,32.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-8"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(2.37549,48.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-0"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-12.62451,72.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-36"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(7.37549,85.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-1"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(25.28054,89.619022)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-6"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(50.37549,73.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-37"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(19.37549,65.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-4"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(66.37549,82.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-88"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(97.37549,55.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-7"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(95.37549,26.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-78"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(52.37549,10.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-74"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(81.37549,52.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-22"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(83.37549,72.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-84"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(21.37549,-3.709955)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-840"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(22.37549,23.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-97"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(40.37549,6.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-86"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(83.37549,14.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-75"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(62.37549,-6.709955)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-12"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(71.37549,18.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-390"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(95.37549,-1.709955)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-91"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(110.37549,-108.39958)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-49"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(103.37549,14.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-757"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(108.37549,23.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-00"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(94.37549,45.290041)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-99"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-21.62451,21.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-56"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-26.62451,8.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-568"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-24.62451,42.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-18"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-33.62451,53.290045)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-371"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(66.356312,113.7462)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-05"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(48.90074,92.618386)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-06"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(38.706064,82.855283)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="radialGradient7-87"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
fx="50.969318"
|
||||
fy="47.054764"
|
||||
r="2.3448088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(27.753062,86.761288)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient7"
|
||||
id="radialGradient9"
|
||||
cx="90"
|
||||
cy="90"
|
||||
fx="90"
|
||||
fy="90"
|
||||
r="18.667822"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<circle
|
||||
style="fill:#374c75;stroke:none;stroke-width:5.24053;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="path1"
|
||||
cx="90"
|
||||
cy="90"
|
||||
r="87.521362" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6"
|
||||
cx="50.969318"
|
||||
cy="47.054764"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-2);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-9"
|
||||
cx="55.344807"
|
||||
cy="64.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-3);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-0"
|
||||
cx="35.344807"
|
||||
cy="79.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-8);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-6"
|
||||
cx="53.344807"
|
||||
cy="95.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-0);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-91"
|
||||
cx="38.344807"
|
||||
cy="119.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-36);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-1"
|
||||
cx="58.344807"
|
||||
cy="132.3448"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-1);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-8"
|
||||
cx="76.249855"
|
||||
cy="136.67378"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-6);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-69"
|
||||
cx="101.34481"
|
||||
cy="120.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-37);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-81"
|
||||
cx="70.34481"
|
||||
cy="112.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-4);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-55"
|
||||
cx="117.34481"
|
||||
cy="129.3448"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-88);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-2"
|
||||
cx="148.3448"
|
||||
cy="102.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-7);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-7"
|
||||
cx="146.3448"
|
||||
cy="73.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-78);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-4"
|
||||
cx="103.34481"
|
||||
cy="57.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-74);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-3"
|
||||
cx="132.3448"
|
||||
cy="99.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-22);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-71"
|
||||
cx="134.3448"
|
||||
cy="119.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-84);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-46"
|
||||
cx="72.34481"
|
||||
cy="43.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-840);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-75"
|
||||
cx="73.34481"
|
||||
cy="70.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-97);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-30"
|
||||
cx="91.34481"
|
||||
cy="53.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-86);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-39"
|
||||
cx="134.3448"
|
||||
cy="61.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-75);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-87"
|
||||
cx="113.34481"
|
||||
cy="40.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-12);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-59"
|
||||
cx="122.34481"
|
||||
cy="65.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-390);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-32"
|
||||
cx="146.3448"
|
||||
cy="45.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-91);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-719"
|
||||
cx="161.3448"
|
||||
cy="-61.34481"
|
||||
r="2.3448088"
|
||||
transform="scale(1,-1)" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-49);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-93"
|
||||
cx="154.3448"
|
||||
cy="61.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-757);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-47"
|
||||
cx="159.3448"
|
||||
cy="70.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-00);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-74"
|
||||
cx="145.3448"
|
||||
cy="92.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-99);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-77"
|
||||
cx="29.344809"
|
||||
cy="68.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-56);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-60"
|
||||
cx="24.344809"
|
||||
cy="55.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-568);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-68"
|
||||
cx="26.344809"
|
||||
cy="89.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-18);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-31"
|
||||
cx="17.344809"
|
||||
cy="100.34481"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-371);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-748"
|
||||
cx="117.32563"
|
||||
cy="160.80096"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-05);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-56"
|
||||
cx="99.870064"
|
||||
cy="139.67314"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-06);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-43"
|
||||
cx="89.675385"
|
||||
cy="129.91005"
|
||||
r="2.3448088" />
|
||||
<circle
|
||||
style="fill:url(#radialGradient7-87);stroke:none;stroke-width:7.62063;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle6-327"
|
||||
cx="78.722382"
|
||||
cy="133.81606"
|
||||
r="2.3448088" />
|
||||
<path
|
||||
id="circle20"
|
||||
style="display:none;fill:#374c75;stroke-width:4.81664;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="M 90.272303,176.22323 A 88.020147,73.516473 0.86858237 0 1 3.3767108,101.38091 88.020147,73.516473 0.86858237 0 1 92.501182,29.207184 88.020147,73.516473 0.86858237 0 1 179.39677,104.04951 88.020147,73.516473 0.86858237 0 1 90.272303,176.22323 Z" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:26.6667px;font-family:'FiraCode Nerd Font Mono';-inkscape-font-specification:'FiraCode Nerd Font Mono';text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;fill:#ffffff;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="text7"><textPath
|
||||
xlink:href="#circle20"
|
||||
startOffset="50%"
|
||||
id="textPath20"><tspan
|
||||
id="tspan7"
|
||||
style="font-size:26.6667px">fourdst</tspan></textPath></text>
|
||||
<circle
|
||||
style="fill:url(#radialGradient9);stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="path7"
|
||||
cx="90"
|
||||
cy="90"
|
||||
r="18.667822" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 50.682124,46.734918 89.601575,89.838407"
|
||||
id="path9" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 132.35494,99.297466 89.423422,88.81921"
|
||||
id="path10"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 146.30623,73.316336 90.027634,89.020614"
|
||||
id="path11"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 103.41948,57.260221 89.222018,88.416401"
|
||||
id="path12"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 91.367968,53.106165 -1.340334,34.50462"
|
||||
id="path13"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 38.413281,119.31284 89.222018,89.423422"
|
||||
id="path14"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 116.61298,128.49582 89.423422,89.624826"
|
||||
id="path15" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 35.322086,79.276849 54.30274,10.146573"
|
||||
id="path16"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 146.2356,45.337388 90.631847,89.624826"
|
||||
id="path17"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 101.33758,120.39585 89.82623,89.624826"
|
||||
id="path18"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 58.341803,132.27333 88.214997,90.833251"
|
||||
id="path19"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 1.2;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 78.664621,133.86567 89.457043,91.171874"
|
||||
id="path20"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -1,4 +1,9 @@
|
||||
composition_p = subproject('libcomposition', default_options: ['pkg-config=' + pkg_config_bool_str])
|
||||
composition_p = subproject('libcomposition',
|
||||
default_options: [
|
||||
'pkg_config=' + get_option('pkg_config').to_string(),
|
||||
'build_tests=' + get_option('build_tests').to_string(),
|
||||
'build_examples=false'
|
||||
])
|
||||
comp_dep = composition_p.get_variable('composition_dep')
|
||||
libcomposition = composition_p.get_variable('libcomposition')
|
||||
spw_dep = composition_p.get_variable('species_weight_dep')
|
||||
@@ -7,4 +12,4 @@ composition_dep = [
|
||||
spw_dep,
|
||||
]
|
||||
|
||||
alias_target('build-libcomposition', libcomposition)
|
||||
alias_target('build-libcomposition', libcomposition)
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
config_p = subproject('libconfig', default_options:['pkg-config=false'])
|
||||
config_p = subproject('libconfig',
|
||||
default_options:[
|
||||
'pkg_config=' + get_option('pkg_config').to_string(),
|
||||
'build_tests=' + get_option('build_tests').to_string(),
|
||||
'build_examples=false'
|
||||
])
|
||||
config_dep = config_p.get_variable('config_dep')
|
||||
libconfig = config_p.get_variable('libconfig')
|
||||
|
||||
alias_target('build-libconfig', libconfig)
|
||||
@@ -1,4 +1,8 @@
|
||||
const_p = subproject('libconstants', default_options: ['pkg-config=' + pkg_config_bool_str])
|
||||
const_p = subproject('libconstants', default_options: [
|
||||
'pkg_config=' + get_option('pkg_config').to_string(),
|
||||
'build_tests=' + get_option('build_tests').to_string(),
|
||||
'build_examples=false'
|
||||
])
|
||||
const_dep = const_p.get_variable('const_dep')
|
||||
libconst = const_p.get_variable('libconst')
|
||||
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
logging_p = subproject('liblogging', default_options: ['pkg-config=' + pkg_config_bool_str])
|
||||
logging_p = subproject('liblogging', default_options: [
|
||||
'pkg_config=' + get_option('pkg_config').to_string(),
|
||||
'build_tests=' + get_option('build_tests').to_string(),
|
||||
'build_examples=false'
|
||||
])
|
||||
liblogging = logging_p.get_variable('liblogging')
|
||||
|
||||
logging_dep = logging_p.get_variable('logging_dep')
|
||||
@@ -6,4 +10,4 @@ quill_dep = logging_p.get_variable('quill_dep')
|
||||
|
||||
log_dep = [logging_dep, quill_dep]
|
||||
|
||||
alias_target('build-liblogging', liblogging)
|
||||
alias_target('build-liblogging', liblogging)
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
plugin_p = subproject('libplugin', default_options: ['pkg-config=' + pkg_config_bool_str, 'tests=' + get_option('tests').to_string()])
|
||||
plugin_p = subproject('libplugin', default_options: [
|
||||
'pkg-config=' + get_option('pkg_config').to_string(),
|
||||
'build-tests=' + get_option('build_tests').to_string(),
|
||||
'python-wheel=' + get_option('build_python').to_string(),
|
||||
])
|
||||
libplugin = plugin_p.get_variable('libplugin')
|
||||
|
||||
plugin_dep = plugin_p.get_variable('plugin_dep')
|
||||
|
||||
alias_target('build-libplugin', libplugin)
|
||||
alias_target('build-libplugin', libplugin)
|
||||
|
||||
@@ -1,6 +1,19 @@
|
||||
subdir('libcomposition')
|
||||
subdir('libconfig')
|
||||
subdir('libconstants')
|
||||
subdir('liblogging')
|
||||
subdir('libplugin')
|
||||
subdir('pybind')
|
||||
if get_option('build_lib_comp') or get_option('build_lib_all') or get_option('build_python')
|
||||
subdir('libcomposition')
|
||||
endif
|
||||
if get_option('build_lib_config') or get_option('build_lib_all') or get_option('build_python')
|
||||
subdir('libconfig')
|
||||
endif
|
||||
if get_option('build_lib_const') or get_option('build_lib_all') or get_option('build_python')
|
||||
subdir('libconstants')
|
||||
endif
|
||||
if get_option('build_lib_log') or get_option('build_lib_all')
|
||||
subdir('liblogging')
|
||||
endif
|
||||
if get_option('build_lib_plugin') or get_option('build_lib_all')
|
||||
subdir('libplugin')
|
||||
endif
|
||||
|
||||
if get_option('build_python')
|
||||
subdir('pybind')
|
||||
endif
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# --- Python Extension Setup ---
|
||||
py_installation = import('python').find_installation('python3', pure: false)
|
||||
|
||||
py_mod = py_installation.extension_module(
|
||||
'_phys', # Name of the generated .so/.pyd file (without extension)
|
||||
'_phys',
|
||||
sources: [
|
||||
meson.project_source_root() + '/src-pybind/bindings.cpp',
|
||||
meson.project_source_root() + '/src-pybind/composition/bindings.cpp',
|
||||
@@ -34,6 +33,7 @@ py_installation.install_sources(
|
||||
meson.project_source_root() + '/src-pybind/fourdst/_phys/atomic.pyi',
|
||||
meson.project_source_root() + '/src-pybind/fourdst/_phys/config.pyi',
|
||||
meson.project_source_root() + '/src-pybind/fourdst/_phys/constants.pyi',
|
||||
meson.project_source_root() + '/src-pybind/fourdst/_phys/exceptions.pyi',
|
||||
),
|
||||
subdir: 'fourdst/',
|
||||
)
|
||||
|
||||
14
meson.build
14
meson.build
@@ -1,19 +1,13 @@
|
||||
project('fourdst', 'cpp', version: 'v0.9.6', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
|
||||
project('fourdst', 'cpp', version: 'v0.9.19', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
|
||||
|
||||
add_project_arguments('-fvisibility=default', language: 'cpp')
|
||||
|
||||
pkg_config_bool_str = 'false'
|
||||
if get_option('pkg-config')
|
||||
pkg_config_bool_str = 'true'
|
||||
endif
|
||||
|
||||
|
||||
# Configure vendor libraries
|
||||
subdir('build-config')
|
||||
|
||||
# Configure python bindings
|
||||
subdir('build-python')
|
||||
|
||||
# Build python bindings
|
||||
subdir('src-pybind')
|
||||
if get_option('build_python')
|
||||
subdir('build-python')
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
option('pkg-config', type: 'boolean', value: false, description: 'generate pkg-config file for all libraries and fourdst (defaults to false to allow easy pip building)')
|
||||
option('electron-build-py-backend', type: 'boolean', value: false, description: 'use pyinstaller to build the python backend for the electron app')
|
||||
option('tests', type: 'boolean', value: false, description: 'compile subproject tests')
|
||||
option('pkg_config', type: 'boolean', value: false, description: 'generate pkg-config file for all libraries and fourdst (defaults to false to allow easy pip building)')
|
||||
option('electron_build_py_backend', type: 'boolean', value: false, description: 'use pyinstaller to build the python backend for the electron app')
|
||||
option('build_tests', type: 'boolean', value: false, description: 'compile subproject tests')
|
||||
option('build_lib_all', type: 'boolean', value: true, description: 'build the full fourdst library with all features enabled')
|
||||
option('build_lib_comp', type: 'boolean', value: false, description: 'build the fourdst libcomposition library')
|
||||
option('build_lib_config', type: 'boolean', value: false, description: 'build the fourdst library configuration tool only')
|
||||
option('build_lib_const', type: 'boolean', value: false, description: 'build the fourdst library constants only')
|
||||
option('build_python', type: 'boolean', value: true, description: 'build the python bindings so you can use fourdst from python. This will also build libcomposition, libconfig, and libconstants')
|
||||
option('build_lib_log', type: 'boolean', value: false, description: 'build the fourdst library logging features only')
|
||||
option('build_lib_plugin', type: 'boolean', value: false, description: 'build the fourdst plugin module only')
|
||||
|
||||
@@ -8,7 +8,7 @@ build-backend = "mesonpy"
|
||||
|
||||
[project]
|
||||
name = "fourdst" # Choose your Python package name
|
||||
version = "0.8.5" # Your project's version
|
||||
version = "v0.9.11" # Your project's version
|
||||
description = "Python interface to the utility fourdst modules from the 4D-STAR project"
|
||||
readme = "readme.md"
|
||||
license = { file = "LICENSE.txt" } # Reference your license file [cite: 2]
|
||||
@@ -34,3 +34,18 @@ dependencies = [
|
||||
[project.scripts]
|
||||
fourdst-cli = "fourdst.cli.main:app"
|
||||
|
||||
[tool.meson-python.args]
|
||||
setup = [
|
||||
'-Dpkg_config=false',
|
||||
'-Dbuild_python=true',
|
||||
'-Delectron_build_py_backend=false',
|
||||
'-Dbuild_tests=false',
|
||||
'-Dbuild_lib_all=false',
|
||||
'-Dbuild_lib_comp=true',
|
||||
'-Dbuild_lib_config=true',
|
||||
'-Dbuild_lib_const=true',
|
||||
'-Dbuild_lib_log=true',
|
||||
'-Dbuild_lib_plugin=false'
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||

|
||||
# fourdst
|
||||
A hub repository for 4D-STAR utility projects (such as libcomposition, libconfig, and liblogging)
|
||||
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
PYBIND11_MODULE(_phys, m) {
|
||||
m.doc() = "Python bindings for the fourdst utility modules which are a part of the 4D-STAR project.";
|
||||
|
||||
auto exceptionMod = m.def_submodule("exceptions", "Exception bindings");
|
||||
register_comp_exceptions(exceptionMod);
|
||||
|
||||
auto atomicMod = m.def_submodule("atomic", "Species bindings");
|
||||
register_species_bindings(atomicMod);
|
||||
|
||||
@@ -18,6 +21,6 @@ PYBIND11_MODULE(_phys, m) {
|
||||
auto constMod = m.def_submodule("constants", "Constants-module bindings");
|
||||
register_const_bindings(constMod);
|
||||
|
||||
auto configMod = m.def_submodule("config", "Configuration-module bindings");
|
||||
register_config_bindings(configMod);
|
||||
}
|
||||
const auto configMod = m.def_submodule("config", "Configuration-module bindings");
|
||||
register_config_enums(configMod);
|
||||
}
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "fourdst/atomic/species.h"
|
||||
#include "fourdst/composition/utils.h"
|
||||
#include "fourdst/composition/utils/composition_hash.h"
|
||||
#include "fourdst/composition/exceptions/exceptions_composition.h"
|
||||
|
||||
namespace py = pybind11;
|
||||
|
||||
@@ -276,13 +277,6 @@ void register_comp_bindings(pybind11::module &m) {
|
||||
&fourdst::composition::utils::CompositionHash::hash_exact<fourdst::composition::Composition>,
|
||||
py::arg("composition"),
|
||||
"Compute a hash for a given Composition object."
|
||||
)
|
||||
.def_static(
|
||||
"hash_quantized",
|
||||
&fourdst::composition::utils::CompositionHash::hash_quantized<fourdst::composition::Composition>,
|
||||
py::arg("composition"),
|
||||
py::arg("eps"),
|
||||
"Compute a quantized hash for a given Composition object with specified precision."
|
||||
);
|
||||
|
||||
utils.def(
|
||||
@@ -335,7 +329,7 @@ void register_comp_bindings(pybind11::module &m) {
|
||||
|
||||
}
|
||||
|
||||
void register_species_bindings(const pybind11::module &chem_submodule) {
|
||||
void register_species_bindings(pybind11::module &chem_submodule) {
|
||||
// --- Bindings for species module ---
|
||||
py::class_<fourdst::atomic::Species>(chem_submodule, "Species")
|
||||
.def("mass", &fourdst::atomic::Species::mass, "Get atomic mass (amu)")
|
||||
@@ -372,4 +366,35 @@ void register_species_bindings(const pybind11::module &chem_submodule) {
|
||||
|
||||
|
||||
chem_submodule.attr("species") = py::cast(fourdst::atomic::species); // Expose the species map
|
||||
|
||||
auto replace_dash_with_underscore = [](const std::string& str) {
|
||||
std::string result = str;
|
||||
std::ranges::replace(result, '-', '_');
|
||||
return result;
|
||||
};
|
||||
|
||||
for (const auto& [name, species] : fourdst::atomic::species) {
|
||||
chem_submodule.attr(replace_dash_with_underscore(name).c_str()) = py::cast(species);
|
||||
}
|
||||
|
||||
chem_submodule.def("az_to_species",
|
||||
[](const int a, const int z) {
|
||||
const auto result = fourdst::atomic::az_to_species(a, z);
|
||||
if (!result) {
|
||||
throw fourdst::composition::exceptions::SpeciesError(std::format("Species with A={} and Z={} not found.", a, z));
|
||||
}
|
||||
return result.value();
|
||||
},
|
||||
py::arg("a"),
|
||||
py::arg("z"),
|
||||
"Get Species object from proton number (Z) and mass number (A)."
|
||||
);
|
||||
}
|
||||
|
||||
void register_comp_exceptions(pybind11::module &m) {
|
||||
py::register_exception<fourdst::composition::exceptions::CompositionError>(m, "CompositionError");
|
||||
py::register_exception<fourdst::composition::exceptions::InvalidCompositionError>(m, "InvalidCompositionError", m.attr("CompositionError"));
|
||||
py::register_exception<fourdst::composition::exceptions::SpeciesError>(m, "SpeciesError");
|
||||
py::register_exception<fourdst::composition::exceptions::UnknownSymbolError>(m, "UnknownSymbolError", m.attr("SpeciesError"));
|
||||
py::register_exception<fourdst::composition::exceptions::UnregisteredSymbolError>(m, "UnregisteredSymbolError", m.attr("SpeciesError"));
|
||||
}
|
||||
|
||||
@@ -2,5 +2,7 @@
|
||||
|
||||
#include <pybind11/pybind11.h>
|
||||
|
||||
void register_comp_exceptions(pybind11::module &m);
|
||||
void register_species_bindings(pybind11::module &m);
|
||||
void register_comp_bindings(pybind11::module &m);
|
||||
void register_species_bindings(const pybind11::module &m);
|
||||
|
||||
|
||||
@@ -1,55 +1,17 @@
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <pybind11/stl.h> // Needed for vectors, maps, sets, strings
|
||||
#include <pybind11/stl_bind.h> // Needed for binding std::vector, std::map etc if needed directly
|
||||
|
||||
#include <string>
|
||||
#include "bindings.h"
|
||||
|
||||
#include <pybind11/pybind11.h>
|
||||
#include "fourdst/config/config.h"
|
||||
|
||||
namespace py = pybind11;
|
||||
void register_config_enums(const pybind11::module_& m) {
|
||||
using namespace fourdst::config;
|
||||
pybind11::enum_<ConfigState>(m, "ConfigState")
|
||||
.value("DEFAULT", ConfigState::DEFAULT)
|
||||
.value("LOADED_FROM_FILE", ConfigState::LOADED_FROM_FILE)
|
||||
.export_values();
|
||||
|
||||
// Helper function template for binding Config::get
|
||||
template <typename T>
|
||||
void def_config_get(py::module &m) {
|
||||
m.def("get",
|
||||
[](const std::string &key, T defaultValue) {
|
||||
return fourdst::config::Config::getInstance().get<T>(key, defaultValue);
|
||||
},
|
||||
py::arg("key"), py::arg("defaultValue"),
|
||||
"Get configuration value (type inferred from default)");
|
||||
}
|
||||
|
||||
void register_config_bindings(pybind11::module &config_submodule) {
|
||||
def_config_get<int>(config_submodule);
|
||||
def_config_get<double>(config_submodule);
|
||||
def_config_get<std::string>(config_submodule);
|
||||
def_config_get<bool>(config_submodule);
|
||||
|
||||
config_submodule.def("loadConfig",
|
||||
[](const std::string& configFilePath) {
|
||||
return fourdst::config::Config::getInstance().loadConfig(configFilePath);
|
||||
},
|
||||
py::arg("configFilePath"),
|
||||
"Load configuration from a YAML file.");
|
||||
|
||||
config_submodule.def("has",
|
||||
[](const std::string &key) {
|
||||
return fourdst::config::Config::getInstance().has(key);
|
||||
},
|
||||
py::arg("key"),
|
||||
"Check if a key exists in the configuration.");
|
||||
|
||||
config_submodule.def("keys",
|
||||
[]() {
|
||||
return py::cast(fourdst::config::Config::getInstance().keys());
|
||||
},
|
||||
"Get a list of all configuration keys.");
|
||||
|
||||
config_submodule.def("__repr__",
|
||||
[]() {
|
||||
std::ostringstream oss;
|
||||
oss << fourdst::config::Config::getInstance(); // Use the existing operator<<
|
||||
return std::string("<fourdsse_bindings.config module accessing C++ Singleton>\n") + oss.str();
|
||||
});
|
||||
pybind11::enum_<RootNameLoadPolicy>(m, "RootNameLoadPolicy")
|
||||
.value("FROM_FILE", RootNameLoadPolicy::FROM_FILE)
|
||||
.value("KEEP_CURRENT", RootNameLoadPolicy::KEEP_CURRENT)
|
||||
.export_values();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <pybind11/pybind11.h>
|
||||
#include "fourdst/config/config.h"
|
||||
|
||||
void register_config_bindings(pybind11::module &config_submodule);
|
||||
#include <string>
|
||||
#include <format>
|
||||
|
||||
void register_config_enums(const pybind11::module_& m);
|
||||
|
||||
template <typename ConfigType>
|
||||
pybind11::class_<ConfigType> bind_config_specialization(pybind11::module_& m , const std::string& name) {
|
||||
return pybind11::class_<ConfigType>(m, name.c_str())
|
||||
.def(pybind11::init<>())
|
||||
.def("load", &ConfigType::load, pybind11::arg("file_path"), "Load configuration from a file.")
|
||||
.def("save", &ConfigType::save, pybind11::arg("file_path") = "config_output.toml", "Save configuration to a file.")
|
||||
.def("save_schema", &ConfigType::save_schema, pybind11::arg("directory") = ".", "Save the configuration schema to a directory.")
|
||||
.def("get_state", &ConfigType::get_state, "Get the current state of the configuration.")
|
||||
.def("describe_state", &ConfigType::describe_state, "Get the current state of the configuration.")
|
||||
.def("__repr__",
|
||||
[](const ConfigType &cfg) -> std::string {
|
||||
return std::format("{}", cfg);
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
@@ -11,4 +11,4 @@ sys.modules['fourdst.config'] = config
|
||||
|
||||
__all__ = ['atomic', 'composition', 'constants', 'config', 'core', 'cli']
|
||||
|
||||
__version__ = 'v0.9.6'
|
||||
__version__ = 'v0.9.11'
|
||||
@@ -6,4 +6,5 @@ from . import atomic
|
||||
from . import composition
|
||||
from . import config
|
||||
from . import constants
|
||||
__all__: list[str] = ['atomic', 'composition', 'config', 'constants']
|
||||
from . import exceptions
|
||||
__all__: list[str] = ['atomic', 'composition', 'config', 'constants', 'exceptions']
|
||||
|
||||
File diff suppressed because one or more lines are too long
15
src-pybind/fourdst/_phys/exceptions.pyi
Normal file
15
src-pybind/fourdst/_phys/exceptions.pyi
Normal file
@@ -0,0 +1,15 @@
|
||||
"""
|
||||
Exception bindings
|
||||
"""
|
||||
from __future__ import annotations
|
||||
__all__: list[str] = ['CompositionError', 'InvalidCompositionError', 'SpeciesError', 'UnknownSymbolError', 'UnregisteredSymbolError']
|
||||
class CompositionError(Exception):
|
||||
pass
|
||||
class InvalidCompositionError(CompositionError):
|
||||
pass
|
||||
class SpeciesError(Exception):
|
||||
pass
|
||||
class UnknownSymbolError(SpeciesError):
|
||||
pass
|
||||
class UnregisteredSymbolError(SpeciesError):
|
||||
pass
|
||||
@@ -1,4 +0,0 @@
|
||||
subdir('composition')
|
||||
subdir('constants')
|
||||
subdir('config')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[wrap-git]
|
||||
url = https://github.com/4D-STAR/libcomposition.git
|
||||
revision = v2.2.0
|
||||
revision = v2.3.1
|
||||
depth = 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[wrap-git]
|
||||
url = https://github.com/4D-STAR/libconfig.git
|
||||
revision = v1.1.3
|
||||
revision = v2.0.3
|
||||
depth = 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[wrap-git]
|
||||
url = https://github.com/4D-STAR/libconstants.git
|
||||
revision = v1.1.0
|
||||
revision = v1.1.1
|
||||
depth = 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[wrap-git]
|
||||
url = https://github.com/4D-STAR/liblogging.git
|
||||
revision = v1.1.0
|
||||
revision = v1.1.1
|
||||
depth = 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[wrap-git]
|
||||
url = https://github.com/4D-STAR/libplugin.git
|
||||
revision = v0.3.4
|
||||
revision = v0.3.7
|
||||
depth = 1
|
||||
|
||||
Reference in New Issue
Block a user