aimmspy 1.0.1.post33__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. aimmspy-1.0.1.post33/.clang-format +42 -0
  2. aimmspy-1.0.1.post33/.clangd +70 -0
  3. aimmspy-1.0.1.post33/.gitignore +42 -0
  4. aimmspy-1.0.1.post33/.gitlab-ci.yml +67 -0
  5. aimmspy-1.0.1.post33/.gitmodules +3 -0
  6. aimmspy-1.0.1.post33/CMakeLists.txt +56 -0
  7. aimmspy-1.0.1.post33/CMakePresets.json +7 -0
  8. aimmspy-1.0.1.post33/PKG-INFO +185 -0
  9. aimmspy-1.0.1.post33/README.md +163 -0
  10. aimmspy-1.0.1.post33/aimms-api-wrapper/CMakeLists.txt +46 -0
  11. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/AimmsDomain.h +241 -0
  12. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/AimmsFactory.h +70 -0
  13. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/AimmsHandle.h +256 -0
  14. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/AimmsIOHandler.h +925 -0
  15. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/AimmsVariant.h +740 -0
  16. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/tsl/robin_growth_policy.h +415 -0
  17. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/tsl/robin_hash.h +1586 -0
  18. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/tsl/robin_map.h +815 -0
  19. aimmspy-1.0.1.post33/aimms-api-wrapper/include/aimms-api-wrapper/tsl/robin_set.h +668 -0
  20. aimmspy-1.0.1.post33/aimms_api_py/CMakeLists.txt +140 -0
  21. aimmspy-1.0.1.post33/aimms_api_py/gtest/gtest.cpp +20 -0
  22. aimmspy-1.0.1.post33/aimms_api_py/include/aimms_api_py/ColumnMapping.hpp +216 -0
  23. aimmspy-1.0.1.post33/aimms_api_py/include/aimms_api_py/aimms_api.hpp +467 -0
  24. aimmspy-1.0.1.post33/aimms_api_py/include/aimms_api_py/aimms_exception.hpp +39 -0
  25. aimmspy-1.0.1.post33/aimms_api_py/include/aimms_api_py/identifier_info.hpp +21 -0
  26. aimmspy-1.0.1.post33/aimms_api_py/include/aimms_api_py/set_mappings.hpp +94 -0
  27. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/__init__.py +0 -0
  28. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/__init__.py +0 -0
  29. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/declaration_section.py +12 -0
  30. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/__init__.py +0 -0
  31. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/args_enum.py +10 -0
  32. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/attribute_values.py +19 -0
  33. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/data_return_types.py +14 -0
  34. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/identifier_flags.py +19 -0
  35. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/me_attribute_types.py +116 -0
  36. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/me_identifier_types.py +43 -0
  37. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/enums/storage_types.py +9 -0
  38. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/__init__.py +0 -0
  39. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/constraint.py +16 -0
  40. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/data_identifiers.py +191 -0
  41. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/identifier.py +24 -0
  42. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/index.py +35 -0
  43. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/mathematical_program.py +18 -0
  44. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/parameter.py +48 -0
  45. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/set.py +92 -0
  46. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/utils.py +11 -0
  47. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/identifiers/variable.py +22 -0
  48. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/library.py +15 -0
  49. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/module.py +11 -0
  50. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/model/procedure.py +18 -0
  51. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/project/__init__.py +0 -0
  52. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/project/project.py +338 -0
  53. aimmspy-1.0.1.post33/aimms_api_py/python/aimms/utils.py +3 -0
  54. aimmspy-1.0.1.post33/aimms_api_py/python/benchmark_existing_project_with_reflection.py +89 -0
  55. aimmspy-1.0.1.post33/aimms_api_py/python/benchmark_existing_project_with_reflection_pandas.py +95 -0
  56. aimmspy-1.0.1.post33/aimms_api_py/python/benchmark_existing_project_with_reflection_polars.py +118 -0
  57. aimmspy-1.0.1.post33/aimms_api_py/python/bezier.py +29 -0
  58. aimmspy-1.0.1.post33/aimms_api_py/python/dataframe_test_pandas.py +85 -0
  59. aimmspy-1.0.1.post33/aimms_api_py/python/dataframe_test_pandas_multi.py +94 -0
  60. aimmspy-1.0.1.post33/aimms_api_py/python/dataframe_test_polars.py +66 -0
  61. aimmspy-1.0.1.post33/aimms_api_py/python/dataframe_test_polars_multi.py +99 -0
  62. aimmspy-1.0.1.post33/aimms_api_py/python/integration_tests.py +130 -0
  63. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_different_datatypes.py +86 -0
  64. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection.py +102 -0
  65. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_change_set.py +99 -0
  66. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_constraint_domain_restriction.py +112 -0
  67. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_parameter_domain_restriction_definition.py +107 -0
  68. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_parameter_domain_restriction_indexed.py +103 -0
  69. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_parameter_domain_restriction_indexed_update.py_DISABLED +131 -0
  70. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_parameter_domain_restriction_scalar.py +101 -0
  71. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_parameter_string_and_element.py +126 -0
  72. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_prefixes.py +132 -0
  73. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_procedure_arguments.py +115 -0
  74. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_recursion.py +116 -0
  75. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_spaces_in_index.py +107 -0
  76. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_with_stubs.py +107 -0
  77. aimmspy-1.0.1.post33/aimms_api_py/python/test_existing_project_with_reflection_wrong_tuple_string.py +104 -0
  78. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/MainProject/Project.xml +7 -0
  79. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/MainProject/Settings/Options.txt +4 -0
  80. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/MainProject/User Files/bitmaps/next.png +0 -0
  81. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/MainProject/User Files/bitmaps/previous.png +0 -0
  82. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/MainProject/User Files/bitmaps/totree.png +0 -0
  83. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/MainProject/WebUI/resources/javascript/webui-options.js +2 -0
  84. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/MainProject/datatypes.ams +86 -0
  85. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/datatypes/datatypes.aimms +4 -0
  86. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/LoggerConfig.xml +24 -0
  87. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/MainProject/Project.xml +7 -0
  88. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/MainProject/Settings/Options.txt +3 -0
  89. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/MainProject/transport_optimization.ams +160 -0
  90. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/test_with_jupyter_larger.pyi +105 -0
  91. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/test_with_jupyter_notebook.pyi +105 -0
  92. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/transport_optimisation.pyi +105 -0
  93. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection/transport_optimization.aimms +4 -0
  94. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_constraint_domain_restriction/LoggerConfig.xml +24 -0
  95. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_constraint_domain_restriction/MainProject/Project.xml +7 -0
  96. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_constraint_domain_restriction/MainProject/Settings/Options.txt +3 -0
  97. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_constraint_domain_restriction/MainProject/transport_optimization.ams +84 -0
  98. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_constraint_domain_restriction/transport_optimization.aimms +4 -0
  99. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_extra_transport_cost/LoggerConfig.xml +24 -0
  100. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_extra_transport_cost/MainProject/Project.xml +7 -0
  101. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_extra_transport_cost/MainProject/Settings/Options.txt +3 -0
  102. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_extra_transport_cost/MainProject/transport_optimization.ams +91 -0
  103. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_extra_transport_cost/transport_optimization.aimms +4 -0
  104. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/LoggerConfig.xml +24 -0
  105. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/MainProject/Project.xml +7 -0
  106. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/MainProject/Settings/Options.txt +3 -0
  107. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/MainProject/User Files/bitmaps/construct.png +0 -0
  108. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/MainProject/User Files/bitmaps/next.png +0 -0
  109. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/MainProject/User Files/bitmaps/previous.png +0 -0
  110. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/MainProject/User Files/bitmaps/totree.png +0 -0
  111. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/MainProject/transport_optimization.ams +85 -0
  112. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_definition/transport_optimization.aimms +4 -0
  113. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/LoggerConfig.xml +24 -0
  114. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/MainProject/Project.xml +7 -0
  115. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/MainProject/Settings/Options.txt +3 -0
  116. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/MainProject/User Files/bitmaps/construct.png +0 -0
  117. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/MainProject/User Files/bitmaps/next.png +0 -0
  118. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/MainProject/User Files/bitmaps/previous.png +0 -0
  119. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/MainProject/User Files/bitmaps/totree.png +0 -0
  120. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/MainProject/transport_optimization.ams +88 -0
  121. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_indexed/transport_optimization.aimms +4 -0
  122. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/LoggerConfig.xml +24 -0
  123. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/MainProject/Project.xml +7 -0
  124. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/MainProject/Settings/Options.txt +3 -0
  125. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/MainProject/User Files/bitmaps/construct.png +0 -0
  126. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/MainProject/User Files/bitmaps/next.png +0 -0
  127. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/MainProject/User Files/bitmaps/previous.png +0 -0
  128. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/MainProject/User Files/bitmaps/totree.png +0 -0
  129. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/MainProject/transport_optimization.ams +87 -0
  130. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_parameter_domain_restriction_scalar/transport_optimization.aimms +4 -0
  131. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_prefixes/LoggerConfig.xml +24 -0
  132. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_prefixes/MainProject/Project.xml +7 -0
  133. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_prefixes/MainProject/Settings/Options.txt +20 -0
  134. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_prefixes/MainProject/transport_optimization.ams +84 -0
  135. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_prefixes/other_lib/Project.xml +6 -0
  136. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_prefixes/other_lib/other_lib.ams +42 -0
  137. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_prefixes/transport_optimization.aimms +5 -0
  138. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_recursion/LoggerConfig.xml +24 -0
  139. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_recursion/MainProject/Project.xml +7 -0
  140. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_recursion/MainProject/Settings/Options.txt +33 -0
  141. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_recursion/MainProject/transport_optimization.ams +115 -0
  142. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_recursion/my_amazing_lib/Project.xml +6 -0
  143. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_recursion/my_amazing_lib/my_amazing_lib.ams +49 -0
  144. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_recursion/transport_optimization.aimms +5 -0
  145. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/LoggerConfig.xml +24 -0
  146. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/MainProject/Project.xml +7 -0
  147. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/MainProject/Settings/Options.txt +3 -0
  148. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/MainProject/User Files/bitmaps/construct.png +0 -0
  149. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/MainProject/User Files/bitmaps/next.png +0 -0
  150. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/MainProject/User Files/bitmaps/previous.png +0 -0
  151. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/MainProject/User Files/bitmaps/totree.png +0 -0
  152. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/MainProject/transport_optimization.ams +98 -0
  153. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/test.py +28 -0
  154. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/test2.py +36 -0
  155. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider/transport_optimization.aimms +5 -0
  156. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/Deleted runtime lib CreateDataChangeMonitor no 1.ams +8 -0
  157. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/Deleted runtime lib CreateDataChangeMonitor no 2.ams +8 -0
  158. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/LoggerConfig.xml +24 -0
  159. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/Project.xml +7 -0
  160. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/Settings/Options.txt +34 -0
  161. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/User Files/bitmaps/construct.png +0 -0
  162. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/User Files/bitmaps/next.png +0 -0
  163. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/User Files/bitmaps/previous.png +0 -0
  164. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/User Files/bitmaps/totree.png +0 -0
  165. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/WebUI/resources/javascript/webui-options.js +2 -0
  166. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/WebUI/webui.json +357 -0
  167. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/MainProject/transport_optimization.ams +140 -0
  168. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/biem_script.py +68 -0
  169. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/global_assign.py +38 -0
  170. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/model_stub.pyi +2057 -0
  171. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/script_with_func.py +58 -0
  172. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui/transport_optimization.aimms +7 -0
  173. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/Deleted runtime lib CreateDataChangeMonitor no 1.ams +8 -0
  174. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/Deleted runtime lib CreateDataChangeMonitor no 2.ams +8 -0
  175. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/LoggerConfig.xml +24 -0
  176. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/Project.xml +7 -0
  177. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/Settings/Options.txt +34 -0
  178. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/User Files/bitmaps/construct.png +0 -0
  179. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/User Files/bitmaps/next.png +0 -0
  180. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/User Files/bitmaps/previous.png +0 -0
  181. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/User Files/bitmaps/totree.png +0 -0
  182. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/WebUI/resources/javascript/webui-options.js +2 -0
  183. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/WebUI/webui.json +357 -0
  184. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/MainProject/transport_optimization.ams +145 -0
  185. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/biem_script.py +68 -0
  186. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/foo.py +9 -0
  187. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/global_assign.py +38 -0
  188. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/model_stub.pyi +2057 -0
  189. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/script_with_func.py +58 -0
  190. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_reflection_with_python_provider_webui_aws/transport_optimization.aimms +7 -0
  191. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_spaces_in_index/LoggerConfig.xml +24 -0
  192. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_spaces_in_index/MainProject/Project.xml +7 -0
  193. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_spaces_in_index/MainProject/Settings/Options.txt +3 -0
  194. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_spaces_in_index/MainProject/transport_optimization.ams +84 -0
  195. aimmspy-1.0.1.post33/aimms_api_py/python/test_models/transport_optimization_spaces_in_index/transport_optimization.aimms +4 -0
  196. aimmspy-1.0.1.post33/aimms_api_py/python/test_with_jupyter_larger.ipynb +5673 -0
  197. aimmspy-1.0.1.post33/aimms_api_py/python/test_with_jupyter_notebook.ipynb +1122 -0
  198. aimmspy-1.0.1.post33/aimms_api_py/python/transport_optimisation.py +198 -0
  199. aimmspy-1.0.1.post33/aimms_api_py/python/utils/custom.css +55 -0
  200. aimmspy-1.0.1.post33/aimms_api_py/python/utils/geolocation.py +31 -0
  201. aimmspy-1.0.1.post33/aimms_api_py/python/utils/rendering.py +287 -0
  202. aimmspy-1.0.1.post33/aimms_api_py/python/utils/testing.py +78 -0
  203. aimmspy-1.0.1.post33/aimms_api_py/src/aimms_api.cpp +1263 -0
  204. aimmspy-1.0.1.post33/aimms_api_py/src/aimms_exception.cpp +13 -0
  205. aimmspy-1.0.1.post33/aimms_api_py/src/python_module.cpp +77 -0
  206. aimmspy-1.0.1.post33/aimms_api_py/src/set_mappings.cpp +22 -0
  207. aimmspy-1.0.1.post33/arrow4cxx/CMakeLists.txt +56 -0
  208. aimmspy-1.0.1.post33/arrow4cxx/include/arrow4cxx/ArrowReadColumns.h +606 -0
  209. aimmspy-1.0.1.post33/arrow4cxx/include/arrow4cxx/ArrowTable.h +61 -0
  210. aimmspy-1.0.1.post33/arrow4cxx/include/arrow4cxx/ArrowWriteColumns.h +601 -0
  211. aimmspy-1.0.1.post33/arrow4cxx/include/arrow4cxx/Exception.h +57 -0
  212. aimmspy-1.0.1.post33/arrow4cxx/include/arrow4cxx/IArrowTable.h +252 -0
  213. aimmspy-1.0.1.post33/arrow4cxx/src/ArrowTable.cpp +466 -0
  214. aimmspy-1.0.1.post33/arrow4cxx/src/Exception.cpp +99 -0
  215. aimmspy-1.0.1.post33/buildhelpers/.gitattributes +23 -0
  216. aimmspy-1.0.1.post33/buildhelpers/.gitignore +10 -0
  217. aimmspy-1.0.1.post33/buildhelpers/AimmsFromConan.py +262 -0
  218. aimmspy-1.0.1.post33/buildhelpers/ConanBuilder.py +209 -0
  219. aimmspy-1.0.1.post33/buildhelpers/EmailSender.py +59 -0
  220. aimmspy-1.0.1.post33/buildhelpers/EmailSenderApp.py +221 -0
  221. aimmspy-1.0.1.post33/buildhelpers/ProductVersionEnvVars.py +59 -0
  222. aimmspy-1.0.1.post33/buildhelpers/README.md +21 -0
  223. aimmspy-1.0.1.post33/buildhelpers/Version.template +51 -0
  224. aimmspy-1.0.1.post33/buildhelpers/__init__.py +0 -0
  225. aimmspy-1.0.1.post33/buildhelpers/_default_values.json +35 -0
  226. aimmspy-1.0.1.post33/buildhelpers/aimms_deploy.py +112 -0
  227. aimmspy-1.0.1.post33/buildhelpers/autolibs/.aimms_release.yml +225 -0
  228. aimmspy-1.0.1.post33/buildhelpers/autolibs/.autolib_collector.yml +97 -0
  229. aimmspy-1.0.1.post33/buildhelpers/autolibs/AimmsLogConfig.xml +74 -0
  230. aimmspy-1.0.1.post33/buildhelpers/autolibs/CDMService_deploy.py +75 -0
  231. aimmspy-1.0.1.post33/buildhelpers/autolibs/WebUI_deploy.py +101 -0
  232. aimmspy-1.0.1.post33/buildhelpers/autolibs/__init__.py +0 -0
  233. aimmspy-1.0.1.post33/buildhelpers/autolibs/aimms_unit_tests2.py +173 -0
  234. aimmspy-1.0.1.post33/buildhelpers/autolibs/aimmsroot/Config/do-not-delete +0 -0
  235. aimmspy-1.0.1.post33/buildhelpers/autolibs/aimmsroot/Config/licenses.cfg +2 -0
  236. aimmspy-1.0.1.post33/buildhelpers/autolibs/aimmsroot/Licenses/do-not-delete +0 -0
  237. aimmspy-1.0.1.post33/buildhelpers/autolibs/aimmsroot/Nodelocks/do-not-delete +0 -0
  238. aimmspy-1.0.1.post33/buildhelpers/autolibs/alib_deploy.py +52 -0
  239. aimmspy-1.0.1.post33/buildhelpers/autolibs/autolib_collector.py +257 -0
  240. aimmspy-1.0.1.post33/buildhelpers/autolibs/autolib_common.py +54 -0
  241. aimmspy-1.0.1.post33/buildhelpers/autolibs/autolib_deploy.py +70 -0
  242. aimmspy-1.0.1.post33/buildhelpers/autolibs/autolib_unit_test.py +139 -0
  243. aimmspy-1.0.1.post33/buildhelpers/autolibs/get_aimms.py +24 -0
  244. aimmspy-1.0.1.post33/buildhelpers/autolibs/pre_document_deploy.py +181 -0
  245. aimmspy-1.0.1.post33/buildhelpers/autolibs/release_and_publisher.py +418 -0
  246. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_auto_lib.yml +115 -0
  247. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_build_matrix.yml +195 -0
  248. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_package.yml +300 -0
  249. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_package_3th_party.yml +11 -0
  250. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_package_3th_party_linux.yml +11 -0
  251. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_package_3th_party_windows.yml +11 -0
  252. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_package_dotnet.yml +25 -0
  253. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_package_windows.yml +36 -0
  254. aimmspy-1.0.1.post33/buildhelpers/cmake/.aimms_upload.yml +32 -0
  255. aimmspy-1.0.1.post33/buildhelpers/cmake/__init__.py +0 -0
  256. aimmspy-1.0.1.post33/buildhelpers/cmake/aimms_artifactory.py +143 -0
  257. aimmspy-1.0.1.post33/buildhelpers/cmake/aimms_common.cmake +40 -0
  258. aimmspy-1.0.1.post33/buildhelpers/cmake/aimms_common.py +213 -0
  259. aimmspy-1.0.1.post33/buildhelpers/cmake/aimms_conan.cmake +183 -0
  260. aimmspy-1.0.1.post33/buildhelpers/cmake/aimms_presets.json +201 -0
  261. aimmspy-1.0.1.post33/buildhelpers/cmake/armi.cmake +83 -0
  262. aimmspy-1.0.1.post33/buildhelpers/cmake/base64_encode.py +23 -0
  263. aimmspy-1.0.1.post33/buildhelpers/cmake/buildCmake.py +195 -0
  264. aimmspy-1.0.1.post33/buildhelpers/cmake/build_date.py +12 -0
  265. aimmspy-1.0.1.post33/buildhelpers/cmake/cmake_aimms_install.cmake +449 -0
  266. aimmspy-1.0.1.post33/buildhelpers/cmake/cmake_conan2_install.cmake +228 -0
  267. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_build_and_upload.py +156 -0
  268. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_cmake_connector.py +126 -0
  269. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_export_cmake.py +141 -0
  270. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_export_package.py +93 -0
  271. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_login.py +21 -0
  272. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_settings.py +15 -0
  273. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_signtool.py +216 -0
  274. aimmspy-1.0.1.post33/buildhelpers/cmake/conan_upload.cmake +114 -0
  275. aimmspy-1.0.1.post33/buildhelpers/cmake/download_file.cmake +34 -0
  276. aimmspy-1.0.1.post33/buildhelpers/cmake/download_file_artifactory.cmake +60 -0
  277. aimmspy-1.0.1.post33/buildhelpers/cmake/globalsettingsAIMMS.cmake +41 -0
  278. aimmspy-1.0.1.post33/buildhelpers/cmake/globalsettingsLibraries.cmake +32 -0
  279. aimmspy-1.0.1.post33/buildhelpers/cmake/linux_debug_info_d.py +63 -0
  280. aimmspy-1.0.1.post33/buildhelpers/cmake/linux_stl.natvis +890 -0
  281. aimmspy-1.0.1.post33/buildhelpers/cmake/natvis.natvis +93 -0
  282. aimmspy-1.0.1.post33/buildhelpers/cmake/notebook.py +334 -0
  283. aimmspy-1.0.1.post33/buildhelpers/cmake/prodver/CMakeLists.txt +34 -0
  284. aimmspy-1.0.1.post33/buildhelpers/cmake/prodver/include/ProductVersion/Description.h +28 -0
  285. aimmspy-1.0.1.post33/buildhelpers/cmake/prodver/include/ProductVersion/Info.h +30 -0
  286. aimmspy-1.0.1.post33/buildhelpers/cmake/prodver/src/Description.cpp +54 -0
  287. aimmspy-1.0.1.post33/buildhelpers/cmake/prodver/src/Info.cpp +125 -0
  288. aimmspy-1.0.1.post33/buildhelpers/cmake/register_benchmarks.cmake +60 -0
  289. aimmspy-1.0.1.post33/buildhelpers/cmake/register_tests.cmake +410 -0
  290. aimmspy-1.0.1.post33/buildhelpers/cmake/set_rpath.py +16 -0
  291. aimmspy-1.0.1.post33/buildhelpers/cmake/static_analysis.cmake +20 -0
  292. aimmspy-1.0.1.post33/buildhelpers/cmake/strip_linux_debug_symbols.py +69 -0
  293. aimmspy-1.0.1.post33/buildhelpers/cmake/testmate_path.py +124 -0
  294. aimmspy-1.0.1.post33/buildhelpers/cmake/update_launch_js.py +102 -0
  295. aimmspy-1.0.1.post33/buildhelpers/cmake/valgrind-suppressions.supp +629 -0
  296. aimmspy-1.0.1.post33/buildhelpers/conan/__init__.py +0 -0
  297. aimmspy-1.0.1.post33/buildhelpers/conan/common.py +67 -0
  298. aimmspy-1.0.1.post33/buildhelpers/conan/deploy_aimms.py +98 -0
  299. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/arch/armv8 +2 -0
  300. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/arch/x86_64 +2 -0
  301. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/compiler/gcc11 +5 -0
  302. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/compiler/gcc13 +5 -0
  303. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/compiler/gcc14 +5 -0
  304. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/compiler/gcc15 +5 -0
  305. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/compiler/gcc61 +14 -0
  306. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/compiler/vc141 +4 -0
  307. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/compiler/vc143 +5 -0
  308. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/default_options +9 -0
  309. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/arch +2 -0
  310. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc11/Debug +4 -0
  311. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc11/RelWithDebInfo +4 -0
  312. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc11/base +2 -0
  313. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc11/build +5 -0
  314. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc13/Debug +4 -0
  315. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc13/RelWithDebInfo +4 -0
  316. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc13/base +2 -0
  317. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc13/build +5 -0
  318. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc14/Debug +4 -0
  319. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc14/RelWithDebInfo +4 -0
  320. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc14/base +2 -0
  321. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc14/build +5 -0
  322. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc15/Debug +4 -0
  323. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc15/RelWithDebInfo +4 -0
  324. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc15/base +2 -0
  325. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/armv8/gcc15/build +5 -0
  326. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/os +8 -0
  327. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/arch +2 -0
  328. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc11/Debug +4 -0
  329. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc11/RelWithDebInfo +4 -0
  330. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc11/base +2 -0
  331. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc11/build +5 -0
  332. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc13/Debug +4 -0
  333. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc13/RelWithDebInfo +4 -0
  334. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc13/Release +4 -0
  335. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc13/base +2 -0
  336. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc13/build +5 -0
  337. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc14/Debug +4 -0
  338. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc14/RelWithDebInfo +4 -0
  339. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc14/Release +4 -0
  340. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc14/base +2 -0
  341. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc14/build +5 -0
  342. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc15/Debug +4 -0
  343. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc15/RelWithDebInfo +4 -0
  344. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc15/Release +4 -0
  345. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc15/base +2 -0
  346. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/linux/x86_64/gcc15/build +5 -0
  347. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/arm/arch +2 -0
  348. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/arm/msvc193/Debug +4 -0
  349. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/arm/msvc193/RelWithDebInfo +5 -0
  350. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/arm/msvc193/base +2 -0
  351. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/arm/msvc193/build +5 -0
  352. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/os +7 -0
  353. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/x86_64/arch +2 -0
  354. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/x86_64/msvc193/Debug +4 -0
  355. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/x86_64/msvc193/RelWithDebInfo +5 -0
  356. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/x86_64/msvc193/base +2 -0
  357. aimmspy-1.0.1.post33/buildhelpers/conan-profiles/windows/x86_64/msvc193/build +5 -0
  358. aimmspy-1.0.1.post33/buildhelpers/email_body.jinja +9 -0
  359. aimmspy-1.0.1.post33/buildhelpers/generateProductVersion.py +75 -0
  360. aimmspy-1.0.1.post33/buildhelpers/gitinfo-cli.py +34 -0
  361. aimmspy-1.0.1.post33/buildhelpers/gitinfo.py +1 -0
  362. aimmspy-1.0.1.post33/buildhelpers/internal/__init__.py +0 -0
  363. aimmspy-1.0.1.post33/buildhelpers/internal/bash.py +12 -0
  364. aimmspy-1.0.1.post33/buildhelpers/internal/eprint.py +10 -0
  365. aimmspy-1.0.1.post33/buildhelpers/internal/git_branch_point.py +112 -0
  366. aimmspy-1.0.1.post33/buildhelpers/internal/git_branch_point.sh +14 -0
  367. aimmspy-1.0.1.post33/buildhelpers/internal/git_dir_head.py +41 -0
  368. aimmspy-1.0.1.post33/buildhelpers/internal/git_dir_head.sh +67 -0
  369. aimmspy-1.0.1.post33/buildhelpers/internal/gitinfo.py +468 -0
  370. aimmspy-1.0.1.post33/buildhelpers/internal/osslsigncode +0 -0
  371. aimmspy-1.0.1.post33/buildhelpers/internal/util.py +178 -0
  372. aimmspy-1.0.1.post33/buildhelpers/openapi-generator-cli.jar +0 -0
  373. aimmspy-1.0.1.post33/buildhelpers/requirements.txt +2 -0
  374. aimmspy-1.0.1.post33/buildhelpers/security_files/dependency-check.sh +35 -0
  375. aimmspy-1.0.1.post33/buildhelpers/switch_python.ps1 +45 -0
  376. aimmspy-1.0.1.post33/buildhelpers/switch_python.sh +20 -0
  377. aimmspy-1.0.1.post33/conanfile.py +42 -0
  378. aimmspy-1.0.1.post33/doxyfile.in +42 -0
  379. aimmspy-1.0.1.post33/generate_toml.py +77 -0
  380. aimmspy-1.0.1.post33/get_pyarrow_paths.py +79 -0
  381. aimmspy-1.0.1.post33/pyproject.jinja +41 -0
  382. aimmspy-1.0.1.post33/pyproject.toml +41 -0
  383. aimmspy-1.0.1.post33/repair_wheels.py +68 -0
  384. aimmspy-1.0.1.post33/twine_uploader.py +46 -0
@@ -0,0 +1,42 @@
1
+ ---
2
+ BasedOnStyle: LLVM
3
+ Language: Cpp
4
+ AlignTrailingComments: true
5
+ AllowAllArgumentsOnNextLine: true
6
+ AllowAllConstructorInitializersOnNextLine: true
7
+ AllowAllParametersOfDeclarationOnNextLine: true
8
+ AllowShortBlocksOnASingleLine: Empty
9
+ AllowShortCaseLabelsOnASingleLine: true
10
+ AllowShortIfStatementsOnASingleLine: WithoutElse
11
+ AllowShortLoopsOnASingleLine: true
12
+ ColumnLimit: 170
13
+ IndentWidth: 4
14
+ SortIncludes: true
15
+ Standard: Cpp11
16
+ TabWidth: 4
17
+ UseTab: Always
18
+ NamespaceIndentation: All
19
+ AlignAfterOpenBracket: BlockIndent
20
+ BreakConstructorInitializers: BeforeComma
21
+ AllowShortFunctionsOnASingleLine: Empty
22
+ AllowShortLambdasOnASingleLine: None
23
+ AlignConsecutiveAssignments: Consecutive
24
+ AlignConsecutiveMacros: Consecutive
25
+ AllowShortEnumsOnASingleLine: true
26
+ SeparateDefinitionBlocks: Always
27
+ LambdaBodyIndentation: Signature
28
+ BreakBeforeTernaryOperators: true
29
+ ReferenceAlignment: Left
30
+ AlignArrayOfStructures: Left
31
+ AlignEscapedNewlines: Right
32
+ AlignOperands: AlignAfterOperator
33
+ AlwaysBreakBeforeMultilineStrings: false
34
+ AlwaysBreakTemplateDeclarations: Yes
35
+ IndentPPDirectives: AfterHash
36
+ PackConstructorInitializers: Never
37
+ BinPackArguments: false
38
+ EmptyLineAfterAccessModifier: Always
39
+ EmptyLineBeforeAccessModifier: Always
40
+ AccessModifierOffset: -4
41
+ PointerAlignment: Left
42
+ ...
@@ -0,0 +1,70 @@
1
+ CompileFlags:
2
+ Add:
3
+ # - -Wall
4
+ # - -xc++
5
+ - -Wno-c++98-compat
6
+ - -Wno-c++98-compat-pedantic
7
+ - -Wno-zero-as-null-pointer-constant
8
+ - -Wno-deprecated-builtins
9
+ - -Wno-typecheck_nonviable_condition
10
+
11
+ Diagnostics:
12
+ ClangTidy:
13
+ Add:
14
+ - modernize*
15
+ - portability*
16
+ - readability*
17
+ - misc*
18
+ - performance*
19
+ - boost*
20
+ - bugprone*
21
+ - concurrency*
22
+ - clang*
23
+ - cppcoreguidelines*
24
+ - zircon*
25
+ - google*
26
+ - openmp*
27
+ - objc*
28
+ - mpi*
29
+ - llvmlibc*
30
+ - llvm*
31
+ - hicpp*
32
+ - linuxkernel*
33
+ - fuchsia*
34
+ - darwin*
35
+ - cert*
36
+ - android*
37
+ - altera*
38
+ - abseil*
39
+ - clang-diagnostic*
40
+
41
+ Remove:
42
+ - cppcoreguidelines-avoid-magic-numbers
43
+ - readability-magic-numbers
44
+ - readability-identifier-length
45
+ - misc-non-private-member-variables-in-classes
46
+ - llvmlibc-restrict-system-libc-headers
47
+ - llvmlibc-implementation-in-namespace
48
+ - llvmlibc-callee-namespace
49
+ - altera-unroll-loops
50
+ - fuchsia-overloaded-operator
51
+ - fuchsia-trailing-return
52
+ - fuchsia-default-arguments-calls
53
+ - fuchsia-default-arguments-declarations
54
+ - hicpp-avoid-c-arrays
55
+ - modernize-avoid-c-arrays
56
+ - altera-struct-pack-align
57
+ - hicpp-vararg
58
+ - hicpp-no-array-decay
59
+ - hicpp-explicit-conversions
60
+ - modernize-use-trailing-return-type
61
+ - llvmlibc-inline-function-decl
62
+ - hicpp-signed-bitwise
63
+
64
+ InlayHints:
65
+ Enabled: Yes
66
+ ParameterNames: No
67
+ DeducedTypes: No
68
+
69
+ Hover:
70
+ ShowAKA: Yes
@@ -0,0 +1,42 @@
1
+ .vscode/
2
+ .vs/
3
+ out/
4
+ compile_commands.json
5
+ .cache/clangd/
6
+ aimms.xlg
7
+ debug.log
8
+ memory.log
9
+ dist/
10
+ log4aimms.txt
11
+ _iofile_.log
12
+ aimms_api_py/python/*.pyd
13
+ aimms_api_py/python/**/__pycache__/**
14
+ transport_optimization/
15
+ aimms_api_py/python/*.pdb
16
+ aimms_api_py/python/*.pyi
17
+ aimms/latest
18
+ **/messages.log
19
+ **/*.usageLog
20
+ **/*.aimmslockfile
21
+ aimms_api_py/python/*.so
22
+ **/*.bak
23
+ **/*.log
24
+ **/*.tmp
25
+ aimms_api_py/python/test_models/**/*.nch
26
+ aimms_api_py/python/test_models/**/log/log.txt
27
+ **/log.txt
28
+ **/*.nch
29
+ **/*.lis
30
+ **/*.pyd
31
+ **/*.pdb
32
+ **/aimms.err
33
+ aimms-log.txt
34
+ aimms_api_py/python/*.lib
35
+ aimms_api_py/python/*.dll
36
+ aimms_api_py/python/*.so
37
+ aimms_api_py/python/*.exe
38
+ aimms_api_py/python/*.a
39
+ **/*.csv
40
+ venv/
41
+ wheelhouse/
42
+ **/python_version.txt
@@ -0,0 +1,67 @@
1
+ variables:
2
+ GIT_SUBMODULE_STRATEGY: recursive
3
+
4
+ # This should be picked up at pipeline creation time.
5
+ include:
6
+ - project: "aimms/submodules/buildhelpers"
7
+ ref: "feature/multi-python"
8
+ file: "cmake/.aimms_build_matrix.yml"
9
+
10
+ stages:
11
+ - pipeline
12
+
13
+ all_wheels:
14
+ stage: pipeline
15
+ extends: [.matrix_python_wheels]
16
+ script:
17
+ - git config --global --add safe.directory $CI_PROJECT_DIR
18
+ - python3 buildhelpers/gitinfo-cli.py fullbranchname
19
+ - python3 buildhelpers/cmake/buildCmake.py --login
20
+ - python3 buildhelpers/cmake/buildCmake.py --check
21
+ - python3 generate_toml.py
22
+ - . ${switch_python} ${python_version}
23
+ - python --version
24
+ - python -m pip install build
25
+ - python -m pip install auditwheel
26
+ - python -m build
27
+ - python repair_wheels.py
28
+ artifacts:
29
+ when: always
30
+ paths:
31
+ - dist/**/*.whl
32
+ - dist/**/*.tar.gz
33
+
34
+ integration_tests:
35
+ stage: pipeline
36
+ needs:
37
+ - job: all_wheels
38
+ artifacts: true
39
+ extends: [.matrix_python_wheels]
40
+ script:
41
+ - git config --global --add safe.directory $CI_PROJECT_DIR
42
+ - python3 buildhelpers/gitinfo-cli.py fullbranchname
43
+ - python3 buildhelpers/cmake/buildCmake.py --login
44
+ - python3 buildhelpers/cmake/buildCmake.py --check
45
+ - . ${switch_python} ${python_version}
46
+ - python --version
47
+ - python ./aimms_api_py/python/integration_tests.py
48
+
49
+ upload_wheels:
50
+ stage: pipeline
51
+ extends: [.matrix_linux_only_release]
52
+ needs:
53
+ - job: integration_tests
54
+ artifacts: true
55
+ - job: all_wheels
56
+ artifacts: true
57
+ rules:
58
+ - if: '$CI_COMMIT_BRANCH == "main"'
59
+ - if: '$CI_COMMIT_BRANCH != "main"'
60
+ when: never
61
+ script:
62
+ - git config --global --add safe.directory $CI_PROJECT_DIR
63
+ - python3 buildhelpers/gitinfo-cli.py fullbranchname
64
+ - python3 buildhelpers/cmake/buildCmake.py --login
65
+ - python3 buildhelpers/cmake/buildCmake.py --check
66
+ - pip install twine
67
+ - python3 twine_uploader.py
@@ -0,0 +1,3 @@
1
+ [submodule "buildhelpers"]
2
+ path = buildhelpers
3
+ url = ../../other/buildhelpers.git
@@ -0,0 +1,56 @@
1
+ cmake_minimum_required(VERSION ${MINIMUM_CMAKE_VERSION})
2
+
3
+ project (toplevel)
4
+
5
+ if (WIN32)
6
+ string (REPLACE "/Ob1" "/Ob2 " CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
7
+ endif()
8
+
9
+ find_package(Python REQUIRED COMPONENTS Interpreter Development)
10
+
11
+ include(buildhelpers/cmake/aimms_conan.cmake)
12
+
13
+ git_and_cmake_info()
14
+
15
+ if( DEFINED CONAN_UPLOAD)
16
+ upload_conan_package("aimms_api_py" ${CMAKE_SOURCE_DIR}/conanfile.py)
17
+ else()
18
+
19
+ conan2_install(
20
+ CONANFILE
21
+ ${CMAKE_SOURCE_DIR}/conanfile.py
22
+ AUTO_FIND_PACKAGES
23
+ )
24
+
25
+ enable_testing()
26
+ add_subdirectory(buildhelpers/cmake/prodver)
27
+ add_subdirectory(aimms_api_py)
28
+ add_subdirectory(aimms-api-wrapper)
29
+ add_subdirectory(arrow4cxx)
30
+
31
+ # if(NOT DEFINED ENV{CI})
32
+ # find_package(Doxygen)
33
+ # if(DOXYGEN_FOUND)
34
+ # include(FetchContent)
35
+ # FetchContent_Declare(
36
+ # doxygen-awesome-css
37
+ # URL https://github.com/jothepro/doxygen-awesome-css/archive/refs/heads/main.zip
38
+ # )
39
+ # FetchContent_MakeAvailable(doxygen-awesome-css)
40
+ # FetchContent_GetProperties(doxygen-awesome-css SOURCE_DIR AWESOME_CSS_DIR)
41
+
42
+ # set(DOXYFILE_IN ${CMAKE_SOURCE_DIR}/doxyfile.in)
43
+ # set(DOXYFILE_OUT ${CMAKE_BINARY_DIR}/doxyfile)
44
+ # configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)
45
+
46
+ # # Add a custom target to run Doxygen when ever the project is built
47
+ # add_custom_target( doc_doxygen ALL
48
+ # COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT}
49
+ # WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
50
+ # COMMENT "Generating API documentation with Doxygen"
51
+ # )
52
+
53
+ # endif()
54
+ # endif()
55
+
56
+ endif()
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 4,
3
+ "include": [
4
+ "buildhelpers/cmake/aimms_presets.json"
5
+ ]
6
+ }
7
+
@@ -0,0 +1,185 @@
1
+ Metadata-Version: 2.2
2
+ Name: aimmspy
3
+ Version: 1.0.1.post33
4
+ Summary: Python bindings for the AIMMS optimization platform, built with pybind11 for seamless C++ integration. Enables efficient data exchange and interaction with AIMMS projects using pandas, polars, and pyarrow. Ideal for advanced optimization workflows requiring high-performance native code.
5
+ Keywords: AIMMS,API,Python,Optimization,Operations Research,pybind11,C++,bindings
6
+ Author: AIMMS B.V.
7
+ Maintainer: AIMMS B.V.
8
+ License: MIT
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: C++
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
15
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
16
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
17
+ Requires-Python: >=3.9
18
+ Requires-Dist: pyarrow
19
+ Requires-Dist: pandas
20
+ Requires-Dist: polars
21
+ Description-Content-Type: text/markdown
22
+
23
+ # AIMMS Python library
24
+
25
+ This is a **BETA** version of the AIMMS Python library. Any feedback, bug reports, or feature requests are welcome.
26
+
27
+ With this library its possible to interact with AIMMS models from Python.
28
+
29
+ ## Features
30
+
31
+ - Seamless integration with AIMMS models from Python
32
+ - Assign and retrieve data using Python dicts, Pandas, Polars, or Arrow tables
33
+ - Execute AIMMS procedures and retrieve results programmatically
34
+ - Built with pybind11 for high-performance C++ integration
35
+ - Flexible data return types for different workflows
36
+
37
+ > **Note:** The AIMMS Python library is tested with Python 3.10 or higher. Currently only the windows platform is supported.
38
+
39
+ ## Getting Started
40
+
41
+ To use the AIMMS Python library, you need to have an AIMMS installed and a correct organization license and an aimms project. Below is a step-by-step example of how to use the library to solve a simple transportation optimization problem.
42
+
43
+ ### Step 1: Initialize the AIMMS Project
44
+
45
+ First, initialize the AIMMS project by specifying the AIMMS executable path, project path, and other configurations.
46
+
47
+ > **Note:** Ensure that the `aimms_path` points to a valid AIMMS bin folder of an installed AIMMS version. Additionally, you must have the appropriate AIMMS license configured. Failure to provide a valid path or license will result in errors.
48
+
49
+ The `exposed_identifier_set_name` parameter controls which AIMMS identifiers are accessible in Python. For example, setting it to `"AllIdentifiers"` exposes all identifiers in your AIMMS project which is an easy way to get started.
50
+
51
+ The data type preference can be set to `DataReturnTypes.DICT`, `DataReturnTypes.ARROW` `DataReturnTypes.PANDAS` or `DataReturnTypes.POLARS`. The default is `DataReturnTypes.DICT`.
52
+
53
+ ```python
54
+ import os
55
+ from aimms.project.project import Project
56
+
57
+ # Initialize the AIMMS project
58
+ my_aimms = Project(
59
+ # path to the AIMMS Bin folder
60
+ aimms_path=os.getenv("AIMMSPATH"),
61
+
62
+ # path to the AIMMS project folder
63
+ aimms_project_path=os.getenv("AIMMSPROJECTPATH"),
64
+
65
+ # the name of an aimms set containing identifiers.
66
+ exposed_identifier_set_name="AllIdentifiers", # Limit access to specific identifiers,
67
+ data_type_preference=DataReturnTypes.DICT,
68
+ )
69
+ ```
70
+
71
+ ### Step 2: Assign Data to Parameters
72
+
73
+ This is an example of assigning data to parameters with Pandas DataFrames.
74
+
75
+ ```python
76
+ demand_df = pd.DataFrame({
77
+ "c": ["Houston", "Phoenix", "Philadelphia"],
78
+ "demand": [50.0, 60.0, 40.0]
79
+ })
80
+
81
+ supply_df = pd.DataFrame(data={
82
+ "w": ["NewYork", "LosAngeles", "Chicago"],
83
+ "supply": [70.0, 80.0, 60.0]
84
+ })
85
+
86
+ unit_transport_cost_df = pd.DataFrame({
87
+ "w": ["NewYork", "NewYork", "NewYork", "LosAngeles", "LosAngeles", "LosAngeles", "Chicago", "Chicago", "Chicago"],
88
+ "c": ["Houston", "Phoenix", "Philadelphia", "Houston", "Phoenix", "Philadelphia", "Houston", "Phoenix", "Philadelphia"],
89
+ "unit_transport_cost": [5.0, 6.0, 4.0, 3.0, 2.0, 7.0, 4.0, 5.0, 3.0]
90
+ })
91
+
92
+ my_aimms.demand.assign( demand_df)
93
+ my_aimms.supply.assign( supply_df)
94
+ my_aimms.unit_transport_cost.assign( unit_transport_cost_df)
95
+ ```
96
+
97
+ You can assign doubles, integers, strings to AIMMS parameters. The library will automatically convert the data types to the appropriate AIMMS types. The sets will be filled automatically based on the data you assign to the parameters.
98
+
99
+ ### Step 3: Execute the Optimization Procedure
100
+
101
+ It is possible in AIMMS to define procedures that encapsulate the logic of your optimization model. These procedures can be executed from Python using the AIMMS Python library.
102
+ In this example we run the main procedure in the AIMMS project to solve the optimization problem.
103
+
104
+ ```python
105
+ my_aimms.MainExecution()
106
+ ```
107
+
108
+ It is also possible to run procedures with arguments for example:
109
+
110
+ ```python
111
+ my_aimms.run_procedure(test1=5.0, test2=10.0, test3="hallo")
112
+ ```
113
+
114
+ Make sure the order of the arguments is correct as well as the types.
115
+
116
+ ### Step 4: Retrieve and Display Results
117
+
118
+ Retrieve the results of the optimization, such as the total transport cost and the transport plan.
119
+
120
+ ```python
121
+ # Retrieve results
122
+ print(f"Total Transport Cost: {my_aimms.total_transport_cost.data()}")
123
+ print(f"Transport Plan: {my_aimms.transport.data()}")
124
+ ```
125
+
126
+ The `.data()` function is used to fetch the current value of an AIMMS identifier (e.g., a parameter, variable, or set) into Python. This function is efficient and only fetches data if it has changed since the last fetch.
127
+
128
+ #### Data Types Returned by `.data()`
129
+
130
+ depending on the data_type_preference you set in the `Project` constructor, the `.data()` function will return different types of Python objects:
131
+
132
+ **Sets** always return a list of strings.
133
+
134
+ For **parameters** and **variables**, `.data()` can return:
135
+
136
+ - A **scalar value** (e.g., `float` or `int` or `string`) if the parameter or variable is scalar.
137
+ - A **dictionary** where the keys are tuples of strings (representing indices) and the values are `float`, `int`, `string`.
138
+ - A **Arrow Table** or **Pandas or Polars DataFrame** depending on the data_type_preference set in the `Project` constructor.
139
+
140
+ ### Example Output
141
+
142
+ Depending on you return type preference the python object returned from the `.data()` function will be different, the output for dictionaries can look like this:
143
+
144
+ ```plaintext
145
+ Total Transport Cost: 150.0
146
+ Transport: {("NewYork", "Houston"): 30, ("LosAngeles", "Phoenix"): 50, ...}
147
+ ```
148
+
149
+ for Pandas DataFrames can look like this:
150
+
151
+ ```plaintext
152
+ Total Transport Cost: 150.0
153
+ Transport:
154
+ w c transport
155
+ 0 NewYork Houston 30
156
+ 1 LosAngeles Phoenix 50
157
+ 2 Chicago Philadelphia 40
158
+ 3 NewYork Philadelphia 20
159
+ ```
160
+
161
+ ---
162
+
163
+ ## extra
164
+
165
+ it is possible to generate a stub file for your project which can greatly help with autocompletion in your IDE. This stub file contains all the identifiers in your AIMMS project and their types. You can generate this stub file by running the following command:
166
+
167
+ ```python
168
+ my_aimms.generate_stub_file( "my_project_stub.py" )
169
+ ```
170
+
171
+ To use this stub file you can the following to the top of your python script:
172
+
173
+ ```python
174
+ from typing import TYPE_CHECKING
175
+ if TYPE_CHECKING:
176
+ from my_project_stub import Project
177
+ ```
178
+
179
+ ## License
180
+
181
+ This project is licensed under the MIT License.
182
+
183
+ ## Support
184
+
185
+ For questions, bug reports, or feature requests, please contact AIMMS B.V. via [support](https://community.aimms.com/p/developer-support). Or post an question on the [AIMMS Community](https://community.aimms.com/). We are happy to help you with any issues or questions you may have.
@@ -0,0 +1,163 @@
1
+ # AIMMS Python library
2
+
3
+ This is a **BETA** version of the AIMMS Python library. Any feedback, bug reports, or feature requests are welcome.
4
+
5
+ With this library its possible to interact with AIMMS models from Python.
6
+
7
+ ## Features
8
+
9
+ - Seamless integration with AIMMS models from Python
10
+ - Assign and retrieve data using Python dicts, Pandas, Polars, or Arrow tables
11
+ - Execute AIMMS procedures and retrieve results programmatically
12
+ - Built with pybind11 for high-performance C++ integration
13
+ - Flexible data return types for different workflows
14
+
15
+ > **Note:** The AIMMS Python library is tested with Python 3.10 or higher. Currently only the windows platform is supported.
16
+
17
+ ## Getting Started
18
+
19
+ To use the AIMMS Python library, you need to have an AIMMS installed and a correct organization license and an aimms project. Below is a step-by-step example of how to use the library to solve a simple transportation optimization problem.
20
+
21
+ ### Step 1: Initialize the AIMMS Project
22
+
23
+ First, initialize the AIMMS project by specifying the AIMMS executable path, project path, and other configurations.
24
+
25
+ > **Note:** Ensure that the `aimms_path` points to a valid AIMMS bin folder of an installed AIMMS version. Additionally, you must have the appropriate AIMMS license configured. Failure to provide a valid path or license will result in errors.
26
+
27
+ The `exposed_identifier_set_name` parameter controls which AIMMS identifiers are accessible in Python. For example, setting it to `"AllIdentifiers"` exposes all identifiers in your AIMMS project which is an easy way to get started.
28
+
29
+ The data type preference can be set to `DataReturnTypes.DICT`, `DataReturnTypes.ARROW` `DataReturnTypes.PANDAS` or `DataReturnTypes.POLARS`. The default is `DataReturnTypes.DICT`.
30
+
31
+ ```python
32
+ import os
33
+ from aimms.project.project import Project
34
+
35
+ # Initialize the AIMMS project
36
+ my_aimms = Project(
37
+ # path to the AIMMS Bin folder
38
+ aimms_path=os.getenv("AIMMSPATH"),
39
+
40
+ # path to the AIMMS project folder
41
+ aimms_project_path=os.getenv("AIMMSPROJECTPATH"),
42
+
43
+ # the name of an aimms set containing identifiers.
44
+ exposed_identifier_set_name="AllIdentifiers", # Limit access to specific identifiers,
45
+ data_type_preference=DataReturnTypes.DICT,
46
+ )
47
+ ```
48
+
49
+ ### Step 2: Assign Data to Parameters
50
+
51
+ This is an example of assigning data to parameters with Pandas DataFrames.
52
+
53
+ ```python
54
+ demand_df = pd.DataFrame({
55
+ "c": ["Houston", "Phoenix", "Philadelphia"],
56
+ "demand": [50.0, 60.0, 40.0]
57
+ })
58
+
59
+ supply_df = pd.DataFrame(data={
60
+ "w": ["NewYork", "LosAngeles", "Chicago"],
61
+ "supply": [70.0, 80.0, 60.0]
62
+ })
63
+
64
+ unit_transport_cost_df = pd.DataFrame({
65
+ "w": ["NewYork", "NewYork", "NewYork", "LosAngeles", "LosAngeles", "LosAngeles", "Chicago", "Chicago", "Chicago"],
66
+ "c": ["Houston", "Phoenix", "Philadelphia", "Houston", "Phoenix", "Philadelphia", "Houston", "Phoenix", "Philadelphia"],
67
+ "unit_transport_cost": [5.0, 6.0, 4.0, 3.0, 2.0, 7.0, 4.0, 5.0, 3.0]
68
+ })
69
+
70
+ my_aimms.demand.assign( demand_df)
71
+ my_aimms.supply.assign( supply_df)
72
+ my_aimms.unit_transport_cost.assign( unit_transport_cost_df)
73
+ ```
74
+
75
+ You can assign doubles, integers, strings to AIMMS parameters. The library will automatically convert the data types to the appropriate AIMMS types. The sets will be filled automatically based on the data you assign to the parameters.
76
+
77
+ ### Step 3: Execute the Optimization Procedure
78
+
79
+ It is possible in AIMMS to define procedures that encapsulate the logic of your optimization model. These procedures can be executed from Python using the AIMMS Python library.
80
+ In this example we run the main procedure in the AIMMS project to solve the optimization problem.
81
+
82
+ ```python
83
+ my_aimms.MainExecution()
84
+ ```
85
+
86
+ It is also possible to run procedures with arguments for example:
87
+
88
+ ```python
89
+ my_aimms.run_procedure(test1=5.0, test2=10.0, test3="hallo")
90
+ ```
91
+
92
+ Make sure the order of the arguments is correct as well as the types.
93
+
94
+ ### Step 4: Retrieve and Display Results
95
+
96
+ Retrieve the results of the optimization, such as the total transport cost and the transport plan.
97
+
98
+ ```python
99
+ # Retrieve results
100
+ print(f"Total Transport Cost: {my_aimms.total_transport_cost.data()}")
101
+ print(f"Transport Plan: {my_aimms.transport.data()}")
102
+ ```
103
+
104
+ The `.data()` function is used to fetch the current value of an AIMMS identifier (e.g., a parameter, variable, or set) into Python. This function is efficient and only fetches data if it has changed since the last fetch.
105
+
106
+ #### Data Types Returned by `.data()`
107
+
108
+ depending on the data_type_preference you set in the `Project` constructor, the `.data()` function will return different types of Python objects:
109
+
110
+ **Sets** always return a list of strings.
111
+
112
+ For **parameters** and **variables**, `.data()` can return:
113
+
114
+ - A **scalar value** (e.g., `float` or `int` or `string`) if the parameter or variable is scalar.
115
+ - A **dictionary** where the keys are tuples of strings (representing indices) and the values are `float`, `int`, `string`.
116
+ - A **Arrow Table** or **Pandas or Polars DataFrame** depending on the data_type_preference set in the `Project` constructor.
117
+
118
+ ### Example Output
119
+
120
+ Depending on you return type preference the python object returned from the `.data()` function will be different, the output for dictionaries can look like this:
121
+
122
+ ```plaintext
123
+ Total Transport Cost: 150.0
124
+ Transport: {("NewYork", "Houston"): 30, ("LosAngeles", "Phoenix"): 50, ...}
125
+ ```
126
+
127
+ for Pandas DataFrames can look like this:
128
+
129
+ ```plaintext
130
+ Total Transport Cost: 150.0
131
+ Transport:
132
+ w c transport
133
+ 0 NewYork Houston 30
134
+ 1 LosAngeles Phoenix 50
135
+ 2 Chicago Philadelphia 40
136
+ 3 NewYork Philadelphia 20
137
+ ```
138
+
139
+ ---
140
+
141
+ ## extra
142
+
143
+ it is possible to generate a stub file for your project which can greatly help with autocompletion in your IDE. This stub file contains all the identifiers in your AIMMS project and their types. You can generate this stub file by running the following command:
144
+
145
+ ```python
146
+ my_aimms.generate_stub_file( "my_project_stub.py" )
147
+ ```
148
+
149
+ To use this stub file you can the following to the top of your python script:
150
+
151
+ ```python
152
+ from typing import TYPE_CHECKING
153
+ if TYPE_CHECKING:
154
+ from my_project_stub import Project
155
+ ```
156
+
157
+ ## License
158
+
159
+ This project is licensed under the MIT License.
160
+
161
+ ## Support
162
+
163
+ For questions, bug reports, or feature requests, please contact AIMMS B.V. via [support](https://community.aimms.com/p/developer-support). Or post an question on the [AIMMS Community](https://community.aimms.com/). We are happy to help you with any issues or questions you may have.
@@ -0,0 +1,46 @@
1
+ project(aimms-api-wrapper)
2
+
3
+ # Create a library from the source files
4
+ add_library(${PROJECT_NAME} INTERFACE)
5
+
6
+ target_compile_definitions( ${PROJECT_NAME}
7
+ INTERFACE
8
+ UNICODE
9
+ _UNICODE
10
+ SA_UNICODE
11
+ RAPIDJSON_HAS_STDSTRING=1
12
+ RAPIDJSON_HAS_CXX11_RVALUE_REFS=1
13
+ BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE
14
+ _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
15
+ SHA2_USE_INTTYPES_H
16
+ _CRT_SECURE_NO_WARNINGS
17
+ CMAKE_CONAN_BUILD=1
18
+ INCLUDE_STRING_CONVERT
19
+ PUGIXML_WCHAR_MODE
20
+ $<$<CONFIG:Release>:
21
+ NDEBUG
22
+ >
23
+ $<$<CONFIG:Debug>:
24
+ DEBUG
25
+ _DEBUG
26
+ >
27
+ $<$<PLATFORM_ID:Windows>:WIN32
28
+ _WINDOWS
29
+ _USRDLL
30
+ WIN32_LEAN_AND_MEAN
31
+ NOMINMAX
32
+ _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR
33
+ >
34
+ $<$<PLATFORM_ID:Linux>:
35
+ GCC_HASCLASSVISIBILITY
36
+ >
37
+ )
38
+
39
+ target_include_directories(${PROJECT_NAME} INTERFACE
40
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
41
+ )
42
+
43
+ target_compile_features(${PROJECT_NAME}
44
+ INTERFACE
45
+ cxx_std_20
46
+ )