diff --git a/DSPythonNet3/DSPythonNet3Evaluator.cs b/DSPythonNet3/DSPythonNet3Evaluator.cs
index e57f073..b35736d 100644
--- a/DSPythonNet3/DSPythonNet3Evaluator.cs
+++ b/DSPythonNet3/DSPythonNet3Evaluator.cs
@@ -426,6 +426,11 @@ internal static bool InitializePython()
Runtime.PythonDLL = Path.Join(Python.Included.Installer.EmbeddedPythonHome, Python.Included.Installer.PYTHON_VERSION + ".dll");
}
+ // Detect current .NET thread apartment and make comtypes match it
+ var apt = System.Threading.Thread.CurrentThread.GetApartmentState();
+ var comApt = (apt == System.Threading.ApartmentState.STA) ? "STA" : "MTA";
+ Environment.SetEnvironmentVariable("COMTYPES_APARTMENT", comApt, EnvironmentVariableTarget.Process);
+
PythonEngine.Initialize();
PythonEngine.BeginAllowThreads();
diff --git a/DSPythonNet3/THIRD_PARTY_NOTICES.txt b/DSPythonNet3/THIRD_PARTY_NOTICES.txt
index 38161ef..26f5145 100644
--- a/DSPythonNet3/THIRD_PARTY_NOTICES.txt
+++ b/DSPythonNet3/THIRD_PARTY_NOTICES.txt
@@ -93,6 +93,172 @@ DEALINGS IN THE SOFTWARE.
========================================
+Package: alphashape
+Version: 1.3.1
+License: MIT
+Source: https://pypi.org/project/alphashape/
+Copyright: Copyright (c) 2019, Kenneth E. Bellock
+----------------------------------------
+MIT License
+
+Copyright (c) 2019, Kenneth E. Bellock
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+========================================
+
+Package: click-log
+Version: 0.4.0
+License: MIT
+Source: https://pypi.org/project/click-log/
+Copyright: Copyright (c) 2014-2015 Markus Unterwaditzer & contributors
+----------------------------------------
+MIT License
+
+Copyright (c) 2014-2015 Markus Unterwaditzer & contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+========================================
+
+Package: click
+Version: 8.3.0
+License: BSD License
+Source: https://pypi.org/project/click/
+Copyright: Copyright 2014 Pallets
+----------------------------------------
+Copyright 2014 Pallets
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
+Package: colorama
+Version: 0.4.6
+License: BSD License
+Source: https://pypi.org/project/colorama/
+Copyright: Copyright (c) 2010 Jonathan Hartley
+----------------------------------------
+Copyright (c) 2010 Jonathan Hartley
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holders, nor those of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
+Package: comtypes
+Version: 1.4.13
+License: MIT
+Source: https://pypi.org/project/comtypes/
+Copyright: Copyright (c) 2006-2013, Thomas Heller, Copyright (c) 2014, Comtypes Developers.
+----------------------------------------
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+Copyright (c) 2006-2013, Thomas Heller.
+Copyright (c) 2014, Comtypes Developers.
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+========================================
+
Package: contourpy
Version: 1.3.0
License: BSD-3-Clause
@@ -224,6 +390,216 @@ SOFTWARE.
========================================
+Package: ifcopenshell
+Version: 0.8.3.post2
+License: GNU Lesser General Public License v3
+Source: https://pypi.org/project/ifcopenshell/
+Copyright: Copyright (C) 2007 Free Software Foundation, Inc
+----------------------------------------
+GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+========================================
+
+Package: isodate
+Version: 0.7.2
+License: BSD License
+Source: https://pypi.org/project/isodate/
+Copyright: Copyright (c) 2021, Hugo van Kemenade and contributors
+Copyright (c) 2009-2018, Gerhard Weis and contributors
+Copyright (c) 2009, Gerhard Weis
+----------------------------------------
+Copyright (c) 2021, Hugo van Kemenade and contributors
+Copyright (c) 2009-2018, Gerhard Weis and contributors
+Copyright (c) 2009, Gerhard Weis
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
Package: jedi
Version: 0.19.2
License: MIT
@@ -252,6 +628,45 @@ THE SOFTWARE.
========================================
+Package: joblib
+Version: 1.5.2
+License: BSD License
+Source: https://pypi.org/project/joblib/
+Copyright: Copyright (c) 2008-2021, The joblib developers.
+----------------------------------------
+BSD 3-Clause License
+
+Copyright (c) 2008-2021, The joblib developers.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
+
Package: kiwisolver
Version: 1.4.7
License: BSD-3-Clause (Modified BSD License)
@@ -325,6 +740,33 @@ to indicate the copyright and license terms:
========================================
+Package: lark
+Version: 1.3.0
+License: MIT License
+Source: https://pypi.org/project/lark/
+Copyright: Copyright © 2017 Erez Shinan
+----------------------------------------
+Copyright © 2017 Erez Shinan
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+========================================
+
Package: matplotlib
Version: 3.9.2
License: Matplotlib License (custom, BSD-like)
@@ -433,8 +875,57 @@ Agreement.
========================================
+Package: networkx
+Version: 3.5
+License: BSD License
+Source: https://pypi.org/project/networkx/
+Copyright: Copyright (c) 2004-2025, NetworkX Developers
+ Aric Hagberg
+ Dan Schult
+ Pieter Swart
+----------------------------------------
+NetworkX is distributed with the 3-clause BSD license.
+
+::
+
+ Copyright (c) 2004-2025, NetworkX Developers
+ Aric Hagberg
+ Dan Schult
+ Pieter Swart
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of the NetworkX Developers nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
Package: numpy
-Version: 2.1.2
+Version: 2.3.4
License: BSD-3-Clause (plus custom components)
Source: https://numpy.org/ or https://pypi.org/project/numpy/
Copyright: Copyright (c) 2005-2024, NumPy Developers
@@ -3191,8 +3682,38 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
========================================
+Package: rtree
+Version: 1.4.1
+License: MIT
+Source: https://pypi.org/project/rtree/
+Copyright: Copyright (c) 2018: Sean C. Gillies, Howard Butler and contributors
+----------------------------------------
+The MIT License (MIT)
+
+Copyright (c) 2018: Sean C. Gillies, Howard Butler and contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+OR OTHER DEALINGS IN THE SOFTWARE.
+
+========================================
+
Package: scipy
-Version: 1.14.1
+Version: 1.16.2
License: BSD-3-Clause
Source: https://pypi.org/project/scipy/
Copyright: Copyright (c) 2001-2002 Enthought, Inc. 2003-2024, SciPy Developers
@@ -4121,8 +4642,84 @@ License: LGPL-2.1-or-later
========================================
+Package: scikit-learn
+Version: 1.7.2
+License: BSD
+Source: https://pypi.org/project/scikit-learn/
+Copyright: Copyright (c) 2007-2024 The scikit-learn developers
+----------------------------------------
+BSD 3-Clause License
+
+Copyright (c) 2007-2024 The scikit-learn developers.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
+Package: shapely
+Version: 2.1.2
+License: BSD
+Source: https://pypi.org/project/shapely/
+Copyright: Copyright (c) 2007, Sean C. Gillies. 2019, Casper van der Wel. 2007-2022, Shapely Contributors.
+----------------------------------------
+BSD 3-Clause License
+
+Copyright (c) 2007, Sean C. Gillies. 2019, Casper van der Wel. 2007-2022, Shapely Contributors.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
Package: six
-Version: 1.16.0
+Version: 1.17.0
License: MIT
Source: https://pypi.org/project/six/
Copyright: Copyright (c) 2010-2020 Benjamin Peterson
@@ -4148,6 +4745,324 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
========================================
+Package: tabulate
+Version: 0.9.0
+License: MIT
+Source: https://pypi.org/project/tabulate/
+Copyright: Copyright (c) 2011-2020 Sergey Astanin and contributors
+----------------------------------------
+Copyright (c) 2011-2020 Sergey Astanin and contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+========================================
+
+Package: threadpoolctl
+Version: 3.6.0
+License: BSD
+Source: https://pypi.org/project/threadpoolctl/
+Copyright: Copyright (c) 2019, threadpoolctl contributors
+----------------------------------------
+Copyright (c) 2019, threadpoolctl contributors
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========================================
+
+Package: trimesh
+Version: 4.8.3
+License: MIT
+Source: https://pypi.org/project/trimesh/
+Copyright: Copyright (c) 2023 Michael Dawson-Haggerty
+----------------------------------------
+Copyright (c) 2023 Michael Dawson-Haggerty
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+========================================
+
+Package: typing-extensions
+Version: 4.15.0
+License: PSF-2.0
+Source: https://pypi.org/project/typing-extensions/
+Copyright: Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam
+----------------------------------------
+Python software and documentation are licensed under the
+Python Software Foundation License Version 2.
+
+Starting with Python 3.8.6, examples, recipes, and other code in
+the documentation are dual licensed under the PSF License Version 2
+and the Zero-Clause BSD license.
+
+Some software incorporated into Python is under different licenses.
+The licenses are listed with code falling under that license.
+
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation;
+All Rights Reserved" are retained in Python alone or in any derivative version
+prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee. This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions. Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee. This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party. As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee. Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement. This Agreement together with
+Python 1.6.1 may be located on the internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013. This
+Agreement may also be obtained from a proxy server on the internet
+using the following URL: http://hdl.handle.net/1895.22/1013".
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee. This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+ ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands. All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
+----------------------------------------------------------------------
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+========================================
+
Package: tzdata
Version: 2024.2
License: Apache-2.0
diff --git a/DSPythonNet3Wheels/Resources/alphashape-1.3.1-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/alphashape-1.3.1-py2.py3-none-any.whl
new file mode 100644
index 0000000..3abde31
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/alphashape-1.3.1-py2.py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/click-8.3.0-py3-none-any.whl b/DSPythonNet3Wheels/Resources/click-8.3.0-py3-none-any.whl
new file mode 100644
index 0000000..958b5e4
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/click-8.3.0-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/click_log-0.4.0-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/click_log-0.4.0-py2.py3-none-any.whl
new file mode 100644
index 0000000..063df2a
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/click_log-0.4.0-py2.py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/colorama-0.4.6-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/colorama-0.4.6-py2.py3-none-any.whl
new file mode 100644
index 0000000..f666ce9
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/colorama-0.4.6-py2.py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/comtypes-1.4.13-py3-none-any.whl b/DSPythonNet3Wheels/Resources/comtypes-1.4.13-py3-none-any.whl
new file mode 100644
index 0000000..ef4e7d3
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/comtypes-1.4.13-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/contourpy-1.3.0-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/contourpy-1.3.0-cp311-cp311-win_amd64.whl
deleted file mode 100644
index 34f653a..0000000
Binary files a/DSPythonNet3Wheels/Resources/contourpy-1.3.0-cp311-cp311-win_amd64.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/contourpy-1.3.3-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/contourpy-1.3.3-cp311-cp311-win_amd64.whl
new file mode 100644
index 0000000..44b316a
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/contourpy-1.3.3-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/fonttools-4.54.1-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/fonttools-4.54.1-cp311-cp311-win_amd64.whl
deleted file mode 100644
index 8d5096e..0000000
Binary files a/DSPythonNet3Wheels/Resources/fonttools-4.54.1-cp311-cp311-win_amd64.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/fonttools-4.60.1-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/fonttools-4.60.1-cp311-cp311-win_amd64.whl
new file mode 100644
index 0000000..8fdf630
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/fonttools-4.60.1-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/ifcopenshell-0.8.3.post2-py311-none-win_amd64.whl b/DSPythonNet3Wheels/Resources/ifcopenshell-0.8.3.post2-py311-none-win_amd64.whl
new file mode 100644
index 0000000..01a2ef4
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/ifcopenshell-0.8.3.post2-py311-none-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/isodate-0.7.2-py3-none-any.whl b/DSPythonNet3Wheels/Resources/isodate-0.7.2-py3-none-any.whl
new file mode 100644
index 0000000..13c70f0
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/isodate-0.7.2-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/jedi-0.19.2-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/jedi-0.19.2-py2.py3-none-any.whl
deleted file mode 100644
index 77ef19d..0000000
Binary files a/DSPythonNet3Wheels/Resources/jedi-0.19.2-py2.py3-none-any.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/joblib-1.5.2-py3-none-any.whl b/DSPythonNet3Wheels/Resources/joblib-1.5.2-py3-none-any.whl
new file mode 100644
index 0000000..6f28b89
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/joblib-1.5.2-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/kiwisolver-1.4.7-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/kiwisolver-1.4.7-cp311-cp311-win_amd64.whl
deleted file mode 100644
index 4df26ef..0000000
Binary files a/DSPythonNet3Wheels/Resources/kiwisolver-1.4.7-cp311-cp311-win_amd64.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/kiwisolver-1.4.9-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/kiwisolver-1.4.9-cp311-cp311-win_amd64.whl
new file mode 100644
index 0000000..36d35dd
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/kiwisolver-1.4.9-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/lark-1.3.0-py3-none-any.whl b/DSPythonNet3Wheels/Resources/lark-1.3.0-py3-none-any.whl
new file mode 100644
index 0000000..474b157
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/lark-1.3.0-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/matplotlib-3.9.2-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/matplotlib-3.10.7-cp311-cp311-win_amd64.whl
similarity index 71%
rename from DSPythonNet3Wheels/Resources/matplotlib-3.9.2-cp311-cp311-win_amd64.whl
rename to DSPythonNet3Wheels/Resources/matplotlib-3.10.7-cp311-cp311-win_amd64.whl
index dad4f82..dd3f8db 100644
Binary files a/DSPythonNet3Wheels/Resources/matplotlib-3.9.2-cp311-cp311-win_amd64.whl and b/DSPythonNet3Wheels/Resources/matplotlib-3.10.7-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/networkx-3.5-py3-none-any.whl b/DSPythonNet3Wheels/Resources/networkx-3.5-py3-none-any.whl
new file mode 100644
index 0000000..24377a4
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/networkx-3.5-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/numpy-2.1.2-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/numpy-2.3.4-cp311-cp311-win_amd64.whl
similarity index 61%
rename from DSPythonNet3Wheels/Resources/numpy-2.1.2-cp311-cp311-win_amd64.whl
rename to DSPythonNet3Wheels/Resources/numpy-2.3.4-cp311-cp311-win_amd64.whl
index c46fee2..6971824 100644
Binary files a/DSPythonNet3Wheels/Resources/numpy-2.1.2-cp311-cp311-win_amd64.whl and b/DSPythonNet3Wheels/Resources/numpy-2.3.4-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/packaging-24.1-py3-none-any.whl b/DSPythonNet3Wheels/Resources/packaging-24.1-py3-none-any.whl
deleted file mode 100644
index 7db6e56..0000000
Binary files a/DSPythonNet3Wheels/Resources/packaging-24.1-py3-none-any.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/packaging-25.0-py3-none-any.whl b/DSPythonNet3Wheels/Resources/packaging-25.0-py3-none-any.whl
new file mode 100644
index 0000000..1809cdb
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/packaging-25.0-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/pandas-2.2.3-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/pandas-2.3.3-cp311-cp311-win_amd64.whl
similarity index 61%
rename from DSPythonNet3Wheels/Resources/pandas-2.2.3-cp311-cp311-win_amd64.whl
rename to DSPythonNet3Wheels/Resources/pandas-2.3.3-cp311-cp311-win_amd64.whl
index 7080f49..a641621 100644
Binary files a/DSPythonNet3Wheels/Resources/pandas-2.2.3-cp311-cp311-win_amd64.whl and b/DSPythonNet3Wheels/Resources/pandas-2.3.3-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/parso-0.8.4-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/parso-0.8.4-py2.py3-none-any.whl
deleted file mode 100644
index 19ce715..0000000
Binary files a/DSPythonNet3Wheels/Resources/parso-0.8.4-py2.py3-none-any.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/pillow-11.0.0-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/pillow-11.0.0-cp311-cp311-win_amd64.whl
deleted file mode 100644
index b18abb9..0000000
Binary files a/DSPythonNet3Wheels/Resources/pillow-11.0.0-cp311-cp311-win_amd64.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/pillow-11.3.0-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/pillow-11.3.0-cp311-cp311-win_amd64.whl
new file mode 100644
index 0000000..ff153fd
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/pillow-11.3.0-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/pip-24.3.1-py3-none-any.whl b/DSPythonNet3Wheels/Resources/pip-24.3.1-py3-none-any.whl
deleted file mode 100644
index 5f1d35b..0000000
Binary files a/DSPythonNet3Wheels/Resources/pip-24.3.1-py3-none-any.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/pyparsing-3.2.0-py3-none-any.whl b/DSPythonNet3Wheels/Resources/pyparsing-3.2.0-py3-none-any.whl
deleted file mode 100644
index a01e363..0000000
Binary files a/DSPythonNet3Wheels/Resources/pyparsing-3.2.0-py3-none-any.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/pyparsing-3.2.5-py3-none-any.whl b/DSPythonNet3Wheels/Resources/pyparsing-3.2.5-py3-none-any.whl
new file mode 100644
index 0000000..606f352
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/pyparsing-3.2.5-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/pytz-2024.2-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/pytz-2025.2-py2.py3-none-any.whl
similarity index 67%
rename from DSPythonNet3Wheels/Resources/pytz-2024.2-py2.py3-none-any.whl
rename to DSPythonNet3Wheels/Resources/pytz-2025.2-py2.py3-none-any.whl
index b464456..2363fab 100644
Binary files a/DSPythonNet3Wheels/Resources/pytz-2024.2-py2.py3-none-any.whl and b/DSPythonNet3Wheels/Resources/pytz-2025.2-py2.py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/pywin32-308-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/pywin32-308-cp311-cp311-win_amd64.whl
deleted file mode 100644
index bf29f2d..0000000
Binary files a/DSPythonNet3Wheels/Resources/pywin32-308-cp311-cp311-win_amd64.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/rtree-1.4.1-py3-none-win_amd64.whl b/DSPythonNet3Wheels/Resources/rtree-1.4.1-py3-none-win_amd64.whl
new file mode 100644
index 0000000..5ed1fd5
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/rtree-1.4.1-py3-none-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/scikit_learn-1.7.2-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/scikit_learn-1.7.2-cp311-cp311-win_amd64.whl
new file mode 100644
index 0000000..c31f941
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/scikit_learn-1.7.2-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/scipy-1.14.1-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/scipy-1.16.2-cp311-cp311-win_amd64.whl
similarity index 72%
rename from DSPythonNet3Wheels/Resources/scipy-1.14.1-cp311-cp311-win_amd64.whl
rename to DSPythonNet3Wheels/Resources/scipy-1.16.2-cp311-cp311-win_amd64.whl
index 4169f15..73baca8 100644
Binary files a/DSPythonNet3Wheels/Resources/scipy-1.14.1-cp311-cp311-win_amd64.whl and b/DSPythonNet3Wheels/Resources/scipy-1.16.2-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/shapely-2.1.2-cp311-cp311-win_amd64.whl b/DSPythonNet3Wheels/Resources/shapely-2.1.2-cp311-cp311-win_amd64.whl
new file mode 100644
index 0000000..ee3d19a
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/shapely-2.1.2-cp311-cp311-win_amd64.whl differ
diff --git a/DSPythonNet3Wheels/Resources/six-1.16.0-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/six-1.16.0-py2.py3-none-any.whl
deleted file mode 100644
index fd94265..0000000
Binary files a/DSPythonNet3Wheels/Resources/six-1.16.0-py2.py3-none-any.whl and /dev/null differ
diff --git a/DSPythonNet3Wheels/Resources/six-1.17.0-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/six-1.17.0-py2.py3-none-any.whl
new file mode 100644
index 0000000..c506fd0
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/six-1.17.0-py2.py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/tabulate-0.9.0-py3-none-any.whl b/DSPythonNet3Wheels/Resources/tabulate-0.9.0-py3-none-any.whl
new file mode 100644
index 0000000..41ff7b6
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/tabulate-0.9.0-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/threadpoolctl-3.6.0-py3-none-any.whl b/DSPythonNet3Wheels/Resources/threadpoolctl-3.6.0-py3-none-any.whl
new file mode 100644
index 0000000..c2b5299
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/threadpoolctl-3.6.0-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/trimesh-4.8.3-py3-none-any.whl b/DSPythonNet3Wheels/Resources/trimesh-4.8.3-py3-none-any.whl
new file mode 100644
index 0000000..b6f401a
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/trimesh-4.8.3-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/typing_extensions-4.15.0-py3-none-any.whl b/DSPythonNet3Wheels/Resources/typing_extensions-4.15.0-py3-none-any.whl
new file mode 100644
index 0000000..5fec9ca
Binary files /dev/null and b/DSPythonNet3Wheels/Resources/typing_extensions-4.15.0-py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/Resources/tzdata-2024.2-py2.py3-none-any.whl b/DSPythonNet3Wheels/Resources/tzdata-2025.2-py2.py3-none-any.whl
similarity index 53%
rename from DSPythonNet3Wheels/Resources/tzdata-2024.2-py2.py3-none-any.whl
rename to DSPythonNet3Wheels/Resources/tzdata-2025.2-py2.py3-none-any.whl
index 36f6c7b..e17449c 100644
Binary files a/DSPythonNet3Wheels/Resources/tzdata-2024.2-py2.py3-none-any.whl and b/DSPythonNet3Wheels/Resources/tzdata-2025.2-py2.py3-none-any.whl differ
diff --git a/DSPythonNet3Wheels/requirements.txt b/DSPythonNet3Wheels/requirements.txt
index ba6cf0d..36b391c 100644
--- a/DSPythonNet3Wheels/requirements.txt
+++ b/DSPythonNet3Wheels/requirements.txt
@@ -11,3 +11,9 @@ python-dateutil == 2.*
pandas == 2.*
openpyxl == 3.*
scipy == 1.*
+shapely == 2.*
+alphashape == 1.*
+comtypes == 1.*
+scikit-learn == 1.*
+ifcopenshell == 0.*
+tabulate == 0.*
\ No newline at end of file
diff --git a/DSpythonNet3Tests/PythonLibraryTests.cs b/DSpythonNet3Tests/PythonLibraryTests.cs
index 4c9ac7c..005bd8e 100644
--- a/DSpythonNet3Tests/PythonLibraryTests.cs
+++ b/DSpythonNet3Tests/PythonLibraryTests.cs
@@ -194,5 +194,77 @@ from openpyxl import Workbook
var result = DSPythonNet3Evaluator.EvaluatePythonScript(code, empty, empty);
Assert.That(result, Is.EqualTo(3));
}
+
+ [Test]
+ public void TestShapelyAvailable()
+ {
+ string code = @"
+from shapely.geometry import Point
+# Circle-like buffer (radius=1) -> area ~= pi; round to 2dp for stability
+area = Point(0,0).buffer(1.0).area
+OUT = round(area, 2)
+";
+ var empty = new ArrayList();
+ var result = DSPythonNet3Evaluator.EvaluatePythonScript(code, empty, empty);
+ Assert.That(result, Is.EqualTo(3.14));
+ }
+
+ [Test]
+ public void TestAlphaShapeAvailable()
+ {
+ string code = @"
+import alphashape
+from shapely.geometry import Point
+pts = [(0,0), (1,0), (1,1), (0,1), (0.5,0.5)]
+alpha = 1.5
+poly = alphashape.alphashape(pts, alpha)
+OUT = poly.is_valid and poly.area > 0
+";
+ var empty = new ArrayList();
+ var result = DSPythonNet3Evaluator.EvaluatePythonScript(code, empty, empty);
+ Assert.That(result, Is.EqualTo(true));
+ }
+
+ [Test]
+ public void TestScikitLearnAvailable()
+ {
+ string code = @"
+from sklearn.cluster import KMeans
+import numpy as np
+X = np.array([[0,0],[0,1],[9,9],[9,8]], dtype=float)
+km = KMeans(n_clusters=2, n_init=5, random_state=0).fit(X)
+OUT = len(set(km.labels_))
+";
+ var empty = new ArrayList();
+ var result = DSPythonNet3Evaluator.EvaluatePythonScript(code, empty, empty);
+ Assert.That(result, Is.EqualTo(2));
+ }
+
+ [Test]
+ public void TestIfcopenshellAvailable()
+ {
+ string code = @"
+import ifcopenshell
+# Simple smoke: module import + version attribute exists
+OUT = hasattr(ifcopenshell, '__version__')
+";
+ var empty = new ArrayList();
+ var result = DSPythonNet3Evaluator.EvaluatePythonScript(code, empty, empty);
+ Assert.That(result, Is.EqualTo(true));
+ }
+
+ [Test]
+ public void TestTabulateAvailable()
+ {
+ string code = @"
+from tabulate import tabulate
+tbl = tabulate([[1,'a'],[2,'b']], headers=['n','c'], tablefmt='plain')
+# Expect two data rows -> 2 newline characters (plain format produces 2 lines)
+OUT = ('1' in tbl) and ('2' in tbl) and ('a' in tbl) and ('b' in tbl)
+";
+ var empty = new ArrayList();
+ var result = DSPythonNet3Evaluator.EvaluatePythonScript(code, empty, empty);
+ Assert.That(result, Is.EqualTo(true));
+ }
}
}