supaero-aircraft-design / FAST-GA

FAST-(OAD)-GA is a framework for performing rapid Overall Aircraft Design for General Aviation Aircraft
GNU General Public License v3.0
30 stars 22 forks source link

Incompatibilities with Python 3.10 #223

Open christophe-david opened 2 days ago

christophe-david commented 2 days ago

After a fresh install of FAST-OAD-CS23 1.3.0 in a Python 3.10 environment, some modules are not registered. It is apparently due to a problem at Python level, which does not occur with Python 3.9.

Steps:

Result:

Failed to import module fastga.models.load_analysis.wing
Failed to import module fastga.models.geometry.geom_components
Failed to import module fastga.models.loops.wing_area_component
Failed to import module fastga.models.geometry
Failed to import module fastga.models.weight.mass_breakdown.a_airframe
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| AVAILABLE MODULE IDENTIFIERS                     | MODULE PATH                                                                                                                                                    |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.cl_cd_polar                  | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\compute_polar.py                                                |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.highspeed.legacy             | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\aerodynamics_high_speed.py                                      |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.legacy                       | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\aerodynamics.py                                                 |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.load_factor                  | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\load_factor.py                                                  |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.lowspeed.legacy              | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\aerodynamics_low_speed.py                                       |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.propeller                    | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\external\propeller_code\compute_propeller_aero.py               |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.propeller.coeff_map          | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\external\propeller_code\compute_propeller_coefficient_map.py    |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.aerodynamics.stability_derivatives.legacy | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\aerodynamics\aerodynamics_stability_derivatives.py                           |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.handling_qualities.all_handling_qualities | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\handling_qualities\handling_qualities.py                                     |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.handling_qualities.static_margin          | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\handling_qualities\compute_static_margin.py                                  |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.handling_qualities.tail_sizing            | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\handling_qualities\tail_sizing\update_tail_areas.py                          |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.loads.wing                                | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\load_analysis\wing\loads.py                                                  |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.loop.mtow                                 | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\weight\mass_breakdown\update_mtow.py                                         |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.loop.wing_area                            | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\loops\update_wing_area_group.py                                              |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.loop.wing_position                        | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\loops\update_wing_position.py                                                |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.performances.mission                      | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\performances\mission\mission.py                                              |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.performances.mission_builder_prep         | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\performances\mission\mission_builder_prep.py                                 |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.performances.mission_vector               | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\performances\mission_vector\full_mission.py                                  |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.performances.payload_range                | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\performances\payload_range\payload_range.py                                  |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.propulsion.turboprop_construction         | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\propulsion\fuel_propulsion\basicTurbo_prop_map\basicTP_engine_constructor.py |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.weight.legacy                             | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\weight\weight.py                                                             |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastoad.mass_performances.compute_MTOW           | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastoad\models\performances\mission\openmdao\link_mtow.py                                  |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastoad.performances.mission                     | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastoad\models\performances\mission\openmdao\mission.py                                    |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastoad.performances.payload_range               | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastoad\models\performances\mission\openmdao\payload_range.py                              |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| AVAILABLE PROPULSION WRAPPER IDENTIFIERS         | MODULE PATH                                                                                                                                                    |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.wrapper.propulsion.basicIC_engine         | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\propulsion\fuel_propulsion\basicIC_engine\openmdao.py                        |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.wrapper.propulsion.basicTurboprop         | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\propulsion\fuel_propulsion\basicTurbo_prop\openmdao.py                       |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| fastga.wrapper.propulsion.basicTurbopropMapped   | D:\cdavid\PyCharmProjects\FAST-OAD_tests\venv3.10\lib\site-packages\fastga\models\propulsion\fuel_propulsion\basicTurbo_prop_map\openmdao.py                   |
+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+

Python environment (pip list)

Package                   Version
------------------------- --------------
aenum                     3.1.15
anyio                     4.6.0
argon2-cffi               23.1.0
argon2-cffi-bindings      21.2.0
arrow                     1.3.0
asttokens                 2.4.1
async-lru                 2.0.4
attrs                     24.2.0
babel                     2.16.0
beautifulsoup4            4.12.3
bleach                    6.1.0
build                     1.2.2.post1
certifi                   2024.8.30
cffi                      1.17.1
charset-normalizer        3.3.2
click                     8.1.7
colorama                  0.4.6
comm                      0.2.2
debugpy                   1.8.6
decorator                 5.1.1
defusedxml                0.7.1
Deprecated                1.2.14
ensure                    1.0.4
exceptiongroup            1.2.2
executing                 2.1.0
FAST-OAD-core             1.8.0
fast-oad-cs23             1.3.0
fastjsonschema            2.20.0
fqdn                      1.5.1
h11                       0.14.0
httpcore                  1.0.6
httpx                     0.27.2
idna                      3.10
iPOPO                     3.0.0
ipykernel                 6.29.5
ipysheet                  0.7.0
ipython                   8.28.0
ipywidgets                8.1.5
isoduration               20.11.0
jedi                      0.19.1
Jinja2                    3.1.4
json5                     0.9.25
jsonpointer               3.0.0
jsonrpclib-pelix          0.4.3.3
jsonschema                4.23.0
jsonschema-specifications 2023.12.1
jupyter_client            8.6.3
jupyter_core              5.7.2
jupyter-events            0.10.0
jupyter-lsp               2.2.5
jupyter_server            2.14.2
jupyter_server_terminals  0.5.3
jupyterlab                4.2.5
jupyterlab_pygments       0.3.0
jupyterlab_server         2.27.3
jupyterlab_widgets        3.0.13
lxml                      5.3.0
MarkupSafe                2.1.5
matplotlib-inline         0.1.7
mistune                   3.0.2
nbclient                  0.10.0
nbconvert                 7.16.4
nbformat                  5.10.4
nest-asyncio              1.6.0
networkx                  3.3
notebook_shim             0.2.4
numpy                     2.1.2
openmdao                  3.35.0
openmdao_extensions       1.3.1
overrides                 7.7.0
packaging                 24.1
pandas                    2.2.3
pandocfilters             1.5.1
parso                     0.8.4
pip                       24.1.2
pkginfo                   1.11.1
platformdirs              4.3.6
plotly                    5.24.1
prometheus_client         0.21.0
prompt_toolkit            3.0.48
psutil                    6.0.0
pure_eval                 0.2.3
pycparser                 2.22
pyDOE3                    1.0.4
Pygments                  2.18.0
pyparsing                 3.1.4
pyproject_hooks           1.2.0
python-dateutil           2.9.0.post0
python-json-logger        2.0.7
pytz                      2024.2
pywin32                   307
pywinpty                  2.0.13
PyYAML                    6.0.2
pyzmq                     26.2.0
referencing               0.35.1
requests                  2.32.3
rfc3339-validator         0.1.4
rfc3986-validator         0.1.1
rpds-py                   0.20.0
ruamel.yaml               0.17.40
ruamel.yaml.clib          0.2.8
scipy                     1.14.1
Send2Trash                1.8.3
setuptools                72.1.0
six                       1.16.0
sniffio                   1.3.1
soupsieve                 2.6
stack-data                0.6.3
stdatm                    0.4.3
tabulate                  0.9.0
tenacity                  9.0.0
terminado                 0.18.1
tinycss2                  1.3.0
tomli                     2.0.2
tomli_w                   1.0.0
tomlkit                   0.13.2
tornado                   6.4.1
traitlets                 5.14.3
types-python-dateutil     2.9.0.20241003
typing_extensions         4.12.2
tzdata                    2024.2
uri-template              1.3.0
urllib3                   2.2.3
wcwidth                   0.2.13
webcolors                 24.8.0
webencodings              0.5.1
websocket-client          1.8.0
wheel                     0.43.0
widgetsnbextension        4.0.13
wop                       2.5.5
wrapt                     1.16.0
xdsmjs                    2.0.0
florentLutz commented 1 day ago

Hello,

Thank you for raising the issue. It seems linked to a similar issue that has been fixed in f60d586fd0c53a5d7170d9e6ad0cc6237eebc84c. It is linked with the fact that scipy.integrate changed the name of a method we used from trapz to trapezoid. Downgrading to scipy 1.5.* or lower should do the trick. Given the current version of scipy it was long overdue but it hasn't been included in a commy just yet. Should come in a 1.3.1