pypddl 1.0.1__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.
- pypddl-1.0.1/.clang-format +60 -0
- pypddl-1.0.1/.github/workflows/apptainer.yml +40 -0
- pypddl-1.0.1/.github/workflows/benchmarks.yml +56 -0
- pypddl-1.0.1/.github/workflows/ci_release.yml +92 -0
- pypddl-1.0.1/.github/workflows/integrationtests.yml +41 -0
- pypddl-1.0.1/.github/workflows/release.yml +150 -0
- pypddl-1.0.1/.github/workflows/unittests.yml +83 -0
- pypddl-1.0.1/.gitignore +47 -0
- pypddl-1.0.1/Apptainer +89 -0
- pypddl-1.0.1/CMakeLists.txt +220 -0
- pypddl-1.0.1/Config.cmake.in +83 -0
- pypddl-1.0.1/LICENSE +674 -0
- pypddl-1.0.1/PKG-INFO +132 -0
- pypddl-1.0.1/README.md +120 -0
- pypddl-1.0.1/benchmarks/CMakeLists.txt +11 -0
- pypddl-1.0.1/benchmarks/combine_results.py +30 -0
- pypddl-1.0.1/benchmarks/construct_atoms.cpp +47 -0
- pypddl-1.0.1/benchmarks/iterate_atoms.cpp +119 -0
- pypddl-1.0.1/benchmarks/utils.cpp +42 -0
- pypddl-1.0.1/benchmarks/utils.hpp +29 -0
- pypddl-1.0.1/cmake/configure_yggdrasil.cmake +25 -0
- pypddl-1.0.1/cmake/install/fix_macos_runtime_paths.cmake +38 -0
- pypddl-1.0.1/cmake/install/fix_unix_runtime_paths.cmake +24 -0
- pypddl-1.0.1/data/blocks-non-deterministic/domain-missing-requirement.pddl +73 -0
- pypddl-1.0.1/data/blocks-non-deterministic/domain.pddl +73 -0
- pypddl-1.0.1/data/blocks-non-deterministic/p20.pddl +6 -0
- pypddl-1.0.1/data/delivery/numeric/domain.pddl +80 -0
- pypddl-1.0.1/data/delivery/numeric/pfile1.pddl +43 -0
- pypddl-1.0.1/data/delivery/propositional/domain.pddl +51 -0
- pypddl-1.0.1/data/delivery/propositional/test_problem.pddl +38 -0
- pypddl-1.0.1/data/gripper/domain.pddl +36 -0
- pypddl-1.0.1/data/gripper/p-2-0.pddl +28 -0
- pypddl-1.0.1/data/gripper/p-2-1.pddl +28 -0
- pypddl-1.0.1/data/miconic/domain.pddl +62 -0
- pypddl-1.0.1/data/miconic/p02.pddl +228 -0
- pypddl-1.0.1/data/miconic-fulladl/domain.pddl +132 -0
- pypddl-1.0.1/data/miconic-fulladl/test_problem.pddl +23 -0
- pypddl-1.0.1/data/schedule/domain.pddl +207 -0
- pypddl-1.0.1/data/schedule/probschedule-51-2.pddl +400 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/domain.pddl +283 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/domain_fixed.pddl +282 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p01.pddl +91 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p02.pddl +132 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p03.pddl +168 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p04.pddl +205 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p05.pddl +243 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p06.pddl +276 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p07.pddl +311 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p08.pddl +349 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p09.pddl +381 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p10.pddl +426 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p11.pddl +85 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p12.pddl +126 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p13.pddl +161 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p14.pddl +205 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p15.pddl +234 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p16.pddl +281 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p17.pddl +324 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p18.pddl +354 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p19.pddl +400 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p20.pddl +421 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p21.pddl +91 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p22.pddl +129 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p23.pddl +169 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p24.pddl +209 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p25.pddl +249 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p26.pddl +280 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p27.pddl +320 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p28.pddl +352 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p29.pddl +393 -0
- pypddl-1.0.1/data/woodworking-sat08-strips/p30.pddl +415 -0
- pypddl-1.0.1/docs/kovacs-draft-2011.pdf +0 -0
- pypddl-1.0.1/docs/kovacs-pddl-3.1-2011.pdf +0 -0
- pypddl-1.0.1/docs/main.tex +248 -0
- pypddl-1.0.1/docs/pddl-bnf.pdf +0 -0
- pypddl-1.0.1/docs/refs.bib +6 -0
- pypddl-1.0.1/exe/CMakeLists.txt +3 -0
- pypddl-1.0.1/exe/loki.cpp +108 -0
- pypddl-1.0.1/include/loki/ast/ast.hpp +1249 -0
- pypddl-1.0.1/include/loki/ast/config.hpp +53 -0
- pypddl-1.0.1/include/loki/ast/error_handler.hpp +65 -0
- pypddl-1.0.1/include/loki/ast/parser.hpp +49 -0
- pypddl-1.0.1/include/loki/ast/parser_wrapper.hpp +65 -0
- pypddl-1.0.1/include/loki/ast/printer.hpp +424 -0
- pypddl-1.0.1/include/loki/exceptions.hpp +51 -0
- pypddl-1.0.1/include/loki/loki.hpp +70 -0
- pypddl-1.0.1/include/loki/pddl/action.hpp +85 -0
- pypddl-1.0.1/include/loki/pddl/atom.hpp +62 -0
- pypddl-1.0.1/include/loki/pddl/axiom.hpp +67 -0
- pypddl-1.0.1/include/loki/pddl/concepts.hpp +47 -0
- pypddl-1.0.1/include/loki/pddl/conditions.hpp +322 -0
- pypddl-1.0.1/include/loki/pddl/declarations.hpp +208 -0
- pypddl-1.0.1/include/loki/pddl/domain.hpp +97 -0
- pypddl-1.0.1/include/loki/pddl/domain_builder.hpp +79 -0
- pypddl-1.0.1/include/loki/pddl/domain_parsing_context.hpp +60 -0
- pypddl-1.0.1/include/loki/pddl/effects.hpp +295 -0
- pypddl-1.0.1/include/loki/pddl/error_reporting.hpp +205 -0
- pypddl-1.0.1/include/loki/pddl/exceptions.hpp +215 -0
- pypddl-1.0.1/include/loki/pddl/function.hpp +61 -0
- pypddl-1.0.1/include/loki/pddl/function_expressions.hpp +284 -0
- pypddl-1.0.1/include/loki/pddl/function_skeleton.hpp +66 -0
- pypddl-1.0.1/include/loki/pddl/function_value.hpp +61 -0
- pypddl-1.0.1/include/loki/pddl/literal.hpp +61 -0
- pypddl-1.0.1/include/loki/pddl/metric.hpp +73 -0
- pypddl-1.0.1/include/loki/pddl/object.hpp +61 -0
- pypddl-1.0.1/include/loki/pddl/parameter.hpp +66 -0
- pypddl-1.0.1/include/loki/pddl/parser.hpp +60 -0
- pypddl-1.0.1/include/loki/pddl/parser_options.hpp +32 -0
- pypddl-1.0.1/include/loki/pddl/position_cache.hpp +102 -0
- pypddl-1.0.1/include/loki/pddl/predicate.hpp +67 -0
- pypddl-1.0.1/include/loki/pddl/problem.hpp +113 -0
- pypddl-1.0.1/include/loki/pddl/problem_builder.hpp +83 -0
- pypddl-1.0.1/include/loki/pddl/problem_parsing_context.hpp +61 -0
- pypddl-1.0.1/include/loki/pddl/reference_tracker.hpp +79 -0
- pypddl-1.0.1/include/loki/pddl/repositories.hpp +225 -0
- pypddl-1.0.1/include/loki/pddl/requirements.hpp +62 -0
- pypddl-1.0.1/include/loki/pddl/requirements_enum.hpp +62 -0
- pypddl-1.0.1/include/loki/pddl/scope.hpp +143 -0
- pypddl-1.0.1/include/loki/pddl/term.hpp +62 -0
- pypddl-1.0.1/include/loki/pddl/translator.hpp +46 -0
- pypddl-1.0.1/include/loki/pddl/translator_options.hpp +31 -0
- pypddl-1.0.1/include/loki/pddl/type.hpp +67 -0
- pypddl-1.0.1/include/loki/pddl/variable.hpp +62 -0
- pypddl-1.0.1/include/loki/utils/collections.hpp +55 -0
- pypddl-1.0.1/include/loki/utils/concepts.hpp +46 -0
- pypddl-1.0.1/include/loki/utils/equal_to.hpp +261 -0
- pypddl-1.0.1/include/loki/utils/filesystem.hpp +45 -0
- pypddl-1.0.1/include/loki/utils/hash.hpp +282 -0
- pypddl-1.0.1/include/loki/utils/indexed_hash_set.hpp +257 -0
- pypddl-1.0.1/include/loki/utils/memory.hpp +38 -0
- pypddl-1.0.1/include/loki/utils/murmurhash3.h +42 -0
- pypddl-1.0.1/include/loki/utils/observer_ptr.hpp +80 -0
- pypddl-1.0.1/include/loki/utils/ostream.hpp +34 -0
- pypddl-1.0.1/pyproject.toml +68 -0
- pypddl-1.0.1/python/CMakeLists.txt +15 -0
- pypddl-1.0.1/python/__pycache__/pypddl_build_backend.cpython-313.pyc +0 -0
- pypddl-1.0.1/python/pypddl_build_backend.py +152 -0
- pypddl-1.0.1/python/src/pypddl/__init__.py +12 -0
- pypddl-1.0.1/python/tests/test_import.py +10 -0
- pypddl-1.0.1/src/CMakeLists.txt +75 -0
- pypddl-1.0.1/src/ast/ast_adapted.hpp +168 -0
- pypddl-1.0.1/src/ast/parser.hpp +821 -0
- pypddl-1.0.1/src/ast/parser_def.hpp +1432 -0
- pypddl-1.0.1/src/ast/parser_instantiations.cpp +225 -0
- pypddl-1.0.1/src/ast/printer.cpp +1528 -0
- pypddl-1.0.1/src/exceptions.cpp +40 -0
- pypddl-1.0.1/src/pddl/action.cpp +66 -0
- pypddl-1.0.1/src/pddl/atom.cpp +46 -0
- pypddl-1.0.1/src/pddl/axiom.cpp +57 -0
- pypddl-1.0.1/src/pddl/conditions.cpp +233 -0
- pypddl-1.0.1/src/pddl/domain.cpp +94 -0
- pypddl-1.0.1/src/pddl/domain_builder.cpp +129 -0
- pypddl-1.0.1/src/pddl/effects.cpp +224 -0
- pypddl-1.0.1/src/pddl/exceptions.cpp +241 -0
- pypddl-1.0.1/src/pddl/formatter.cpp +717 -0
- pypddl-1.0.1/src/pddl/formatter.hpp +149 -0
- pypddl-1.0.1/src/pddl/function.cpp +51 -0
- pypddl-1.0.1/src/pddl/function_expressions.cpp +244 -0
- pypddl-1.0.1/src/pddl/function_skeleton.cpp +53 -0
- pypddl-1.0.1/src/pddl/function_value.cpp +45 -0
- pypddl-1.0.1/src/pddl/literal.cpp +45 -0
- pypddl-1.0.1/src/pddl/metric.cpp +66 -0
- pypddl-1.0.1/src/pddl/object.cpp +46 -0
- pypddl-1.0.1/src/pddl/parameter.cpp +61 -0
- pypddl-1.0.1/src/pddl/parser/common.cpp +117 -0
- pypddl-1.0.1/src/pddl/parser/common.hpp +62 -0
- pypddl-1.0.1/src/pddl/parser/conditions.cpp +348 -0
- pypddl-1.0.1/src/pddl/parser/conditions.hpp +81 -0
- pypddl-1.0.1/src/pddl/parser/constants.cpp +89 -0
- pypddl-1.0.1/src/pddl/parser/constants.hpp +44 -0
- pypddl-1.0.1/src/pddl/parser/domain.cpp +127 -0
- pypddl-1.0.1/src/pddl/parser/domain.hpp +29 -0
- pypddl-1.0.1/src/pddl/parser/effects.cpp +188 -0
- pypddl-1.0.1/src/pddl/parser/effects.hpp +56 -0
- pypddl-1.0.1/src/pddl/parser/enums.cpp +84 -0
- pypddl-1.0.1/src/pddl/parser/enums.hpp +93 -0
- pypddl-1.0.1/src/pddl/parser/error_handling.cpp +424 -0
- pypddl-1.0.1/src/pddl/parser/error_handling.hpp +120 -0
- pypddl-1.0.1/src/pddl/parser/functions.cpp +330 -0
- pypddl-1.0.1/src/pddl/parser/functions.hpp +108 -0
- pypddl-1.0.1/src/pddl/parser/goal.cpp +29 -0
- pypddl-1.0.1/src/pddl/parser/goal.hpp +31 -0
- pypddl-1.0.1/src/pddl/parser/ground_literal.cpp +91 -0
- pypddl-1.0.1/src/pddl/parser/ground_literal.hpp +70 -0
- pypddl-1.0.1/src/pddl/parser/initial.cpp +69 -0
- pypddl-1.0.1/src/pddl/parser/initial.hpp +54 -0
- pypddl-1.0.1/src/pddl/parser/literal.cpp +133 -0
- pypddl-1.0.1/src/pddl/parser/literal.hpp +80 -0
- pypddl-1.0.1/src/pddl/parser/metric.cpp +59 -0
- pypddl-1.0.1/src/pddl/parser/metric.hpp +43 -0
- pypddl-1.0.1/src/pddl/parser/objects.cpp +102 -0
- pypddl-1.0.1/src/pddl/parser/objects.hpp +49 -0
- pypddl-1.0.1/src/pddl/parser/parameters.cpp +90 -0
- pypddl-1.0.1/src/pddl/parser/parameters.hpp +42 -0
- pypddl-1.0.1/src/pddl/parser/predicates.cpp +72 -0
- pypddl-1.0.1/src/pddl/parser/predicates.hpp +33 -0
- pypddl-1.0.1/src/pddl/parser/problem.cpp +124 -0
- pypddl-1.0.1/src/pddl/parser/problem.hpp +29 -0
- pypddl-1.0.1/src/pddl/parser/reference_utils.cpp +77 -0
- pypddl-1.0.1/src/pddl/parser/reference_utils.hpp +44 -0
- pypddl-1.0.1/src/pddl/parser/requirements.cpp +238 -0
- pypddl-1.0.1/src/pddl/parser/requirements.hpp +64 -0
- pypddl-1.0.1/src/pddl/parser/structure.cpp +151 -0
- pypddl-1.0.1/src/pddl/parser/structure.hpp +47 -0
- pypddl-1.0.1/src/pddl/parser/types.cpp +286 -0
- pypddl-1.0.1/src/pddl/parser/types.hpp +80 -0
- pypddl-1.0.1/src/pddl/parser/unpacking_visitor.hpp +54 -0
- pypddl-1.0.1/src/pddl/parser.cpp +126 -0
- pypddl-1.0.1/src/pddl/predicate.cpp +55 -0
- pypddl-1.0.1/src/pddl/problem.cpp +117 -0
- pypddl-1.0.1/src/pddl/problem_builder.cpp +158 -0
- pypddl-1.0.1/src/pddl/repositories.cpp +329 -0
- pypddl-1.0.1/src/pddl/requirements.cpp +45 -0
- pypddl-1.0.1/src/pddl/requirements_enum.cpp +58 -0
- pypddl-1.0.1/src/pddl/scope.cpp +145 -0
- pypddl-1.0.1/src/pddl/term.cpp +46 -0
- pypddl-1.0.1/src/pddl/translator/add_type_predicates.cpp +306 -0
- pypddl-1.0.1/src/pddl/translator/add_type_predicates.hpp +59 -0
- pypddl-1.0.1/src/pddl/translator/initialize_equality.cpp +86 -0
- pypddl-1.0.1/src/pddl/translator/initialize_equality.hpp +46 -0
- pypddl-1.0.1/src/pddl/translator/interface.hpp +77 -0
- pypddl-1.0.1/src/pddl/translator/move_existential_quantifiers.cpp +135 -0
- pypddl-1.0.1/src/pddl/translator/move_existential_quantifiers.hpp +66 -0
- pypddl-1.0.1/src/pddl/translator/recursive_base.hpp +455 -0
- pypddl-1.0.1/src/pddl/translator/recursive_cached_base.hpp +412 -0
- pypddl-1.0.1/src/pddl/translator/remove_universal_quantifiers.cpp +237 -0
- pypddl-1.0.1/src/pddl/translator/remove_universal_quantifiers.hpp +88 -0
- pypddl-1.0.1/src/pddl/translator/rename_quantified_variables.cpp +152 -0
- pypddl-1.0.1/src/pddl/translator/rename_quantified_variables.hpp +69 -0
- pypddl-1.0.1/src/pddl/translator/simplify_goal.cpp +123 -0
- pypddl-1.0.1/src/pddl/translator/simplify_goal.hpp +50 -0
- pypddl-1.0.1/src/pddl/translator/split_disjunctive_conditions.cpp +144 -0
- pypddl-1.0.1/src/pddl/translator/split_disjunctive_conditions.hpp +62 -0
- pypddl-1.0.1/src/pddl/translator/to_disjunctive_normal_form.cpp +191 -0
- pypddl-1.0.1/src/pddl/translator/to_disjunctive_normal_form.hpp +74 -0
- pypddl-1.0.1/src/pddl/translator/to_effect_normal_form.cpp +176 -0
- pypddl-1.0.1/src/pddl/translator/to_effect_normal_form.hpp +164 -0
- pypddl-1.0.1/src/pddl/translator/to_negation_normal_form.cpp +147 -0
- pypddl-1.0.1/src/pddl/translator/to_negation_normal_form.hpp +95 -0
- pypddl-1.0.1/src/pddl/translator/utils.cpp +295 -0
- pypddl-1.0.1/src/pddl/translator/utils.hpp +101 -0
- pypddl-1.0.1/src/pddl/translator.cpp +188 -0
- pypddl-1.0.1/src/pddl/type.cpp +73 -0
- pypddl-1.0.1/src/pddl/unpacking_visitor.hpp +54 -0
- pypddl-1.0.1/src/pddl/variable.cpp +250 -0
- pypddl-1.0.1/src/utils/filesystem.cpp +66 -0
- pypddl-1.0.1/src/utils/memory.cpp +97 -0
- pypddl-1.0.1/src/utils/mumurhash3.cpp +450 -0
- pypddl-1.0.1/tests/CMakeLists.txt +1 -0
- pypddl-1.0.1/tests/integration/CMakeLists.txt +36 -0
- pypddl-1.0.1/tests/integration/main.cpp +24 -0
- pypddl-1.0.1/tests/unit/CMakeLists.txt +29 -0
- pypddl-1.0.1/tests/unit/main.cpp +24 -0
- pypddl-1.0.1/tests/unit/pddl/ast/atomic_formula_skeleton.cpp +44 -0
- pypddl-1.0.1/tests/unit/pddl/ast/atomic_function_skeleton_general.cpp +44 -0
- pypddl-1.0.1/tests/unit/pddl/ast/atomic_function_skeleton_total_cost.cpp +38 -0
- pypddl-1.0.1/tests/unit/pddl/ast/function_symbol.cpp +48 -0
- pypddl-1.0.1/tests/unit/pddl/ast/function_symbol_total_cost.cpp +39 -0
- pypddl-1.0.1/tests/unit/pddl/ast/function_typed_list_of_atom_function_skeletons.cpp +44 -0
- pypddl-1.0.1/tests/unit/pddl/ast/function_typed_list_of_atom_function_skeletons_recursively.cpp +43 -0
- pypddl-1.0.1/tests/unit/pddl/ast/name.cpp +47 -0
- pypddl-1.0.1/tests/unit/pddl/ast/number.cpp +46 -0
- pypddl-1.0.1/tests/unit/pddl/ast/predicate.cpp +48 -0
- pypddl-1.0.1/tests/unit/pddl/ast/term.cpp +48 -0
- pypddl-1.0.1/tests/unit/pddl/ast/type.cpp +40 -0
- pypddl-1.0.1/tests/unit/pddl/ast/type_either.cpp +40 -0
- pypddl-1.0.1/tests/unit/pddl/ast/typed_list_of_names.cpp +47 -0
- pypddl-1.0.1/tests/unit/pddl/ast/typed_list_of_names_recursively.cpp +41 -0
- pypddl-1.0.1/tests/unit/pddl/ast/typed_list_of_variables.cpp +47 -0
- pypddl-1.0.1/tests/unit/pddl/ast/typed_list_of_variables_recursively.cpp +41 -0
- pypddl-1.0.1/tests/unit/pddl/ast/variable.cpp +47 -0
- pypddl-1.0.1/tests/unit/pddl/parser.cpp +86 -0
- pypddl-1.0.1/tests/unit/pddl/reference.cpp +43 -0
- pypddl-1.0.1/tests/unit/pddl/translator.cpp +175 -0
- pypddl-1.0.1/tests/unit/utils/hash.cpp +50 -0
- pypddl-1.0.1/tests/unit/utils/indexed_hash_set.cpp +104 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
AccessModifierOffset: -4
|
|
3
|
+
AlignAfterOpenBracket: Align
|
|
4
|
+
AlignEscapedNewlines: Left
|
|
5
|
+
AlignOperands: 'true'
|
|
6
|
+
AlignTrailingComments: 'true'
|
|
7
|
+
AllowAllArgumentsOnNextLine: 'false'
|
|
8
|
+
AllowAllConstructorInitializersOnNextLine: 'false'
|
|
9
|
+
AllowAllParametersOfDeclarationOnNextLine: 'false'
|
|
10
|
+
AllowShortBlocksOnASingleLine: 'true'
|
|
11
|
+
AllowShortCaseLabelsOnASingleLine: 'false'
|
|
12
|
+
AllowShortFunctionsOnASingleLine: All
|
|
13
|
+
AllowShortIfStatementsOnASingleLine: Never
|
|
14
|
+
AllowShortLambdasOnASingleLine: All
|
|
15
|
+
AllowShortLoopsOnASingleLine: 'false'
|
|
16
|
+
AlwaysBreakTemplateDeclarations: 'Yes'
|
|
17
|
+
BinPackArguments: 'false'
|
|
18
|
+
BinPackParameters: 'false'
|
|
19
|
+
BreakBeforeBinaryOperators: NonAssignment
|
|
20
|
+
BreakBeforeBraces: Allman
|
|
21
|
+
BreakBeforeTernaryOperators: 'false'
|
|
22
|
+
BreakConstructorInitializers: AfterColon
|
|
23
|
+
BreakInheritanceList: AfterColon
|
|
24
|
+
ColumnLimit: '160'
|
|
25
|
+
CompactNamespaces: 'false'
|
|
26
|
+
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
|
|
27
|
+
Cpp11BracedListStyle: 'false'
|
|
28
|
+
FixNamespaceComments: 'false'
|
|
29
|
+
IncludeBlocks: Regroup
|
|
30
|
+
IndentAccessModifiers: 'false'
|
|
31
|
+
IndentCaseLabels: 'true'
|
|
32
|
+
IndentPPDirectives: None
|
|
33
|
+
IndentWidth: '4'
|
|
34
|
+
IndentWrappedFunctionNames: 'false'
|
|
35
|
+
KeepEmptyLinesAtTheStartOfBlocks: 'false'
|
|
36
|
+
Language: Cpp
|
|
37
|
+
MaxEmptyLinesToKeep: '1'
|
|
38
|
+
NamespaceIndentation: None
|
|
39
|
+
PointerAlignment: Left
|
|
40
|
+
SortIncludes: 'true'
|
|
41
|
+
SortUsingDeclarations: 'true'
|
|
42
|
+
SpaceAfterCStyleCast: 'true'
|
|
43
|
+
SpaceAfterLogicalNot: 'false'
|
|
44
|
+
SpaceAfterTemplateKeyword: 'false'
|
|
45
|
+
SpaceBeforeAssignmentOperators: 'true'
|
|
46
|
+
SpaceBeforeCpp11BracedList: 'true'
|
|
47
|
+
SpaceBeforeCtorInitializerColon: 'true'
|
|
48
|
+
SpaceBeforeInheritanceColon: 'true'
|
|
49
|
+
SpaceBeforeParens: ControlStatements
|
|
50
|
+
SpaceBeforeRangeBasedForLoopColon: 'true'
|
|
51
|
+
SpaceInEmptyParentheses: 'false'
|
|
52
|
+
SpacesBeforeTrailingComments: '2'
|
|
53
|
+
SpacesInAngles: 'false'
|
|
54
|
+
SpacesInCStyleCastParentheses: 'false'
|
|
55
|
+
SpacesInParentheses: 'false'
|
|
56
|
+
SpacesInSquareBrackets: 'false'
|
|
57
|
+
Standard: Cpp11
|
|
58
|
+
TabWidth: '4'
|
|
59
|
+
UseTab: Never
|
|
60
|
+
...
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Apptainer
|
|
2
|
+
# Run for all pushes to the main branch and for all pull requests targeting the main branch.
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
packages: write
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build-image:
|
|
17
|
+
name: Build Apptainer image
|
|
18
|
+
if: github.repository == 'drexlerd/Loki'
|
|
19
|
+
runs-on: ubuntu-24.04
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Check out code
|
|
23
|
+
uses: actions/checkout@v6
|
|
24
|
+
|
|
25
|
+
- name: Set up Apptainer
|
|
26
|
+
uses: eWaterCycle/setup-apptainer@v2
|
|
27
|
+
with:
|
|
28
|
+
apptainer-version: 1.4.3
|
|
29
|
+
|
|
30
|
+
- name: Build image
|
|
31
|
+
run: |
|
|
32
|
+
apptainer build image.sif Apptainer
|
|
33
|
+
|
|
34
|
+
- name: Login and deploy image
|
|
35
|
+
if: (github.event_name != 'pull_request')
|
|
36
|
+
run: |
|
|
37
|
+
echo ${{ secrets.GITHUB_TOKEN }} | apptainer remote login -u ${GITHUB_ACTOR} --password-stdin oras://ghcr.io
|
|
38
|
+
REPO_LC="$(echo "${GITHUB_REPOSITORY}" | tr '[:upper:]' '[:lower:]')"
|
|
39
|
+
apptainer push image.sif oras://ghcr.io/${REPO_LC}:latest
|
|
40
|
+
# Image can now be pulled with "apptainer pull oras://ghcr.io/${REPO_LC}:latest"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Googlebenchmark
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- main
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
# deployments permission to deploy GitHub pages website
|
|
10
|
+
deployments: write
|
|
11
|
+
# contents permission to update benchmark contents in gh-pages branch
|
|
12
|
+
contents: write
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
benchmark:
|
|
17
|
+
name: Performance regression check
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout Loki
|
|
21
|
+
uses: actions/checkout@v2
|
|
22
|
+
|
|
23
|
+
- name: Install native dependencies
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
python -m pip install pyyggdrasil==0.0.2
|
|
27
|
+
|
|
28
|
+
- name: Configure, and Build Loki
|
|
29
|
+
run: |
|
|
30
|
+
cmake -DCMAKE_BUILD_TYPE=Release -DLOKI_BUILD_BENCHMARKS=ON -S . -B build \
|
|
31
|
+
-DPython3_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
|
|
32
|
+
-DCMAKE_PREFIX_PATH="$(python -c 'import pyyggdrasil; print(pyyggdrasil.native_prefix())')"
|
|
33
|
+
cmake --build build -j$(nproc)
|
|
34
|
+
|
|
35
|
+
# Run benchmarks and store the output to a file
|
|
36
|
+
- name: Run benchmark construct_atoms
|
|
37
|
+
run: build/benchmarks/construct_atoms --benchmark_format=json | tee benchmark_result_construct_atoms.json
|
|
38
|
+
- name: Run benchmark iterate_atoms
|
|
39
|
+
run: build/benchmarks/iterate_atoms --benchmark_format=json | tee benchmark_result_iterate_atoms.json
|
|
40
|
+
|
|
41
|
+
# Combine outputs to a single file
|
|
42
|
+
- name: Combine JSON files
|
|
43
|
+
run: python3 benchmarks/combine_results.py benchmark_result_construct_atoms.json benchmark_result_iterate_atoms.json > benchmark_result.json
|
|
44
|
+
|
|
45
|
+
# Run `github-action-benchmark` action
|
|
46
|
+
- name: Store benchmark result
|
|
47
|
+
uses: benchmark-action/github-action-benchmark@v1
|
|
48
|
+
with:
|
|
49
|
+
# What benchmark tool the output.txt came from
|
|
50
|
+
tool: 'googlecpp'
|
|
51
|
+
# Where the output from the benchmark tool is stored
|
|
52
|
+
output-file-path: benchmark_result.json
|
|
53
|
+
# Access token to deploy GitHub Pages branch
|
|
54
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
55
|
+
# Push and deploy GitHub pages branch automatically
|
|
56
|
+
auto-push: true
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
name: CI Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- dev
|
|
8
|
+
pull_request:
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build_sdist:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- name: Checkout repository
|
|
17
|
+
uses: actions/checkout@v6
|
|
18
|
+
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v6
|
|
21
|
+
with:
|
|
22
|
+
python-version: "3.13"
|
|
23
|
+
|
|
24
|
+
- name: Install build frontend
|
|
25
|
+
run: |
|
|
26
|
+
python -m pip install --upgrade pip
|
|
27
|
+
python -m pip install build
|
|
28
|
+
|
|
29
|
+
- name: Build source distribution
|
|
30
|
+
run: python -m build --sdist
|
|
31
|
+
|
|
32
|
+
build_wheels_linux:
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
strategy:
|
|
35
|
+
fail-fast: false
|
|
36
|
+
matrix:
|
|
37
|
+
architecture: ["x86_64"]
|
|
38
|
+
python-version: ["cp39", "cp310", "cp311", "cp312", "cp313"]
|
|
39
|
+
|
|
40
|
+
steps:
|
|
41
|
+
- name: Checkout repository
|
|
42
|
+
uses: actions/checkout@v6
|
|
43
|
+
|
|
44
|
+
- name: Set up Python
|
|
45
|
+
uses: actions/setup-python@v6
|
|
46
|
+
with:
|
|
47
|
+
python-version: "3.13"
|
|
48
|
+
|
|
49
|
+
- name: Install cibuildwheel
|
|
50
|
+
run: |
|
|
51
|
+
python -m pip install --upgrade pip
|
|
52
|
+
python -m pip install cibuildwheel
|
|
53
|
+
|
|
54
|
+
- name: Build Linux wheels
|
|
55
|
+
run: cibuildwheel --output-dir wheelhouse
|
|
56
|
+
env:
|
|
57
|
+
CIBW_PLATFORM: linux
|
|
58
|
+
CIBW_BUILD: "${{ matrix.python-version }}-*"
|
|
59
|
+
CIBW_SKIP: "*-musllinux_*"
|
|
60
|
+
CIBW_ARCHS: "${{ matrix.architecture }}"
|
|
61
|
+
CIBW_BUILD_VERBOSITY: "1"
|
|
62
|
+
CIBW_ENVIRONMENT: "PYPDDL_JOBS=2"
|
|
63
|
+
|
|
64
|
+
build_wheels_macos:
|
|
65
|
+
runs-on: macos-latest
|
|
66
|
+
strategy:
|
|
67
|
+
fail-fast: false
|
|
68
|
+
matrix:
|
|
69
|
+
python-version: ["cp39", "cp310", "cp311", "cp312", "cp313"]
|
|
70
|
+
|
|
71
|
+
steps:
|
|
72
|
+
- name: Checkout repository
|
|
73
|
+
uses: actions/checkout@v6
|
|
74
|
+
|
|
75
|
+
- name: Set up Python
|
|
76
|
+
uses: actions/setup-python@v6
|
|
77
|
+
with:
|
|
78
|
+
python-version: "3.13"
|
|
79
|
+
|
|
80
|
+
- name: Install cibuildwheel
|
|
81
|
+
run: |
|
|
82
|
+
python -m pip install --upgrade pip
|
|
83
|
+
python -m pip install cibuildwheel
|
|
84
|
+
|
|
85
|
+
- name: Build macOS wheels
|
|
86
|
+
run: cibuildwheel --output-dir wheelhouse
|
|
87
|
+
env:
|
|
88
|
+
CIBW_PLATFORM: macos
|
|
89
|
+
CIBW_BUILD: "${{ matrix.python-version }}-*"
|
|
90
|
+
CIBW_ARCHS: arm64
|
|
91
|
+
CIBW_BUILD_VERBOSITY: "1"
|
|
92
|
+
CIBW_ENVIRONMENT: "PYPDDL_JOBS=2"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Integration Tests
|
|
2
|
+
on: [push, pull_request]
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
strategy:
|
|
8
|
+
matrix:
|
|
9
|
+
os: [ubuntu-latest, macos-latest]
|
|
10
|
+
runs-on: ${{ matrix.os }}
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout Loki
|
|
14
|
+
uses: actions/checkout@v2
|
|
15
|
+
|
|
16
|
+
- name: Install native dependencies
|
|
17
|
+
run: |
|
|
18
|
+
python -m pip install --upgrade pip
|
|
19
|
+
python -m pip install pyyggdrasil==0.0.2
|
|
20
|
+
|
|
21
|
+
- name: Build and Install Loki
|
|
22
|
+
run: |
|
|
23
|
+
cmake -S . -B build_loki \
|
|
24
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
25
|
+
-DBUILD_SHARED_LIBS=ON \
|
|
26
|
+
-DLOKI_BUILD_TESTS=OFF \
|
|
27
|
+
-DLOKI_BUILD_BENCHMARKS=OFF \
|
|
28
|
+
-DLOKI_BUILD_EXECUTABLES=OFF \
|
|
29
|
+
-DLOKI_LINK_STATIC_DEPENDENCIES=OFF \
|
|
30
|
+
-DPython3_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
|
|
31
|
+
-DCMAKE_PREFIX_PATH="$(python -c 'import pyyggdrasil; print(pyyggdrasil.native_prefix())')"
|
|
32
|
+
cmake --build build_loki
|
|
33
|
+
cmake --install build_loki --prefix "$GITHUB_WORKSPACE/tests/integration/loki-install"
|
|
34
|
+
|
|
35
|
+
- name: Build and Test Project
|
|
36
|
+
run: |
|
|
37
|
+
cd tests/integration
|
|
38
|
+
cmake -S . -B build \
|
|
39
|
+
-DPython3_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
|
|
40
|
+
-DCMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/tests/integration/loki-install"
|
|
41
|
+
cmake --build build
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build_sdist:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout repository
|
|
14
|
+
uses: actions/checkout@v6
|
|
15
|
+
|
|
16
|
+
- name: Set up Python
|
|
17
|
+
uses: actions/setup-python@v6
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.13"
|
|
20
|
+
|
|
21
|
+
- name: Install build frontend
|
|
22
|
+
run: |
|
|
23
|
+
python -m pip install --upgrade pip
|
|
24
|
+
python -m pip install build
|
|
25
|
+
|
|
26
|
+
- name: Build source distribution
|
|
27
|
+
run: python -m build --sdist
|
|
28
|
+
|
|
29
|
+
- name: Upload sdist artifact
|
|
30
|
+
uses: actions/upload-artifact@v5
|
|
31
|
+
with:
|
|
32
|
+
name: sdist
|
|
33
|
+
path: dist/*.tar.gz
|
|
34
|
+
|
|
35
|
+
build_wheels_linux:
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
strategy:
|
|
38
|
+
fail-fast: false
|
|
39
|
+
matrix:
|
|
40
|
+
architecture: ["x86_64"]
|
|
41
|
+
python-version: ["cp39", "cp310", "cp311", "cp312", "cp313"]
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- name: Checkout repository
|
|
45
|
+
uses: actions/checkout@v6
|
|
46
|
+
|
|
47
|
+
- name: Set up Python
|
|
48
|
+
uses: actions/setup-python@v6
|
|
49
|
+
with:
|
|
50
|
+
python-version: "3.13"
|
|
51
|
+
|
|
52
|
+
- name: Install cibuildwheel
|
|
53
|
+
run: |
|
|
54
|
+
python -m pip install --upgrade pip
|
|
55
|
+
python -m pip install cibuildwheel
|
|
56
|
+
|
|
57
|
+
- name: Build Linux wheels
|
|
58
|
+
run: cibuildwheel --output-dir wheelhouse
|
|
59
|
+
env:
|
|
60
|
+
CIBW_PLATFORM: linux
|
|
61
|
+
CIBW_BUILD: "${{ matrix.python-version }}-*"
|
|
62
|
+
CIBW_SKIP: "*-musllinux_*"
|
|
63
|
+
CIBW_ARCHS: "${{ matrix.architecture }}"
|
|
64
|
+
CIBW_BUILD_VERBOSITY: "1"
|
|
65
|
+
CIBW_ENVIRONMENT: "PYPDDL_JOBS=2"
|
|
66
|
+
|
|
67
|
+
- name: Upload Linux wheels artifact
|
|
68
|
+
uses: actions/upload-artifact@v5
|
|
69
|
+
with:
|
|
70
|
+
name: wheels-linux-${{ matrix.python-version }}-${{ matrix.architecture }}
|
|
71
|
+
path: wheelhouse/*.whl
|
|
72
|
+
|
|
73
|
+
build_wheels_macos:
|
|
74
|
+
runs-on: macos-latest
|
|
75
|
+
strategy:
|
|
76
|
+
fail-fast: false
|
|
77
|
+
matrix:
|
|
78
|
+
python-version: ["cp39", "cp310", "cp311", "cp312", "cp313"]
|
|
79
|
+
|
|
80
|
+
steps:
|
|
81
|
+
- name: Checkout repository
|
|
82
|
+
uses: actions/checkout@v6
|
|
83
|
+
|
|
84
|
+
- name: Set up Python
|
|
85
|
+
uses: actions/setup-python@v6
|
|
86
|
+
with:
|
|
87
|
+
python-version: "3.13"
|
|
88
|
+
|
|
89
|
+
- name: Install cibuildwheel
|
|
90
|
+
run: |
|
|
91
|
+
python -m pip install --upgrade pip
|
|
92
|
+
python -m pip install cibuildwheel
|
|
93
|
+
|
|
94
|
+
- name: Build macOS wheels
|
|
95
|
+
run: cibuildwheel --output-dir wheelhouse
|
|
96
|
+
env:
|
|
97
|
+
CIBW_PLATFORM: macos
|
|
98
|
+
CIBW_BUILD: "${{ matrix.python-version }}-*"
|
|
99
|
+
CIBW_ARCHS: arm64
|
|
100
|
+
CIBW_BUILD_VERBOSITY: "1"
|
|
101
|
+
CIBW_ENVIRONMENT: "PYPDDL_JOBS=2"
|
|
102
|
+
|
|
103
|
+
- name: Upload macOS wheels artifact
|
|
104
|
+
uses: actions/upload-artifact@v5
|
|
105
|
+
with:
|
|
106
|
+
name: wheels-macos-${{ matrix.python-version }}-arm64
|
|
107
|
+
path: wheelhouse/*.whl
|
|
108
|
+
|
|
109
|
+
publish:
|
|
110
|
+
needs:
|
|
111
|
+
- build_sdist
|
|
112
|
+
- build_wheels_linux
|
|
113
|
+
- build_wheels_macos
|
|
114
|
+
runs-on: ubuntu-latest
|
|
115
|
+
|
|
116
|
+
if: github.repository_owner == 'drexlerd'
|
|
117
|
+
|
|
118
|
+
permissions:
|
|
119
|
+
id-token: write
|
|
120
|
+
|
|
121
|
+
steps:
|
|
122
|
+
- name: Checkout repository
|
|
123
|
+
uses: actions/checkout@v6
|
|
124
|
+
|
|
125
|
+
- name: Check version matches tag
|
|
126
|
+
run: |
|
|
127
|
+
VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])")
|
|
128
|
+
TAG=${GITHUB_REF#refs/tags/v}
|
|
129
|
+
|
|
130
|
+
echo "Package version: $VERSION"
|
|
131
|
+
echo "Git tag: $TAG"
|
|
132
|
+
|
|
133
|
+
if [ "$VERSION" != "$TAG" ]; then
|
|
134
|
+
echo "Version mismatch: pyproject.toml=$VERSION tag=$TAG"
|
|
135
|
+
exit 1
|
|
136
|
+
fi
|
|
137
|
+
|
|
138
|
+
- name: Download all artifacts
|
|
139
|
+
uses: actions/download-artifact@v5
|
|
140
|
+
with:
|
|
141
|
+
path: dist
|
|
142
|
+
merge-multiple: true
|
|
143
|
+
|
|
144
|
+
- name: Inspect distributions
|
|
145
|
+
run: find dist -maxdepth 1 -type f
|
|
146
|
+
|
|
147
|
+
- name: Publish to PyPI
|
|
148
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
149
|
+
with:
|
|
150
|
+
packages-dir: dist
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: Googletest Unit Tests
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
strategy:
|
|
8
|
+
matrix:
|
|
9
|
+
os: [ubuntu-latest, macos-latest]
|
|
10
|
+
runs-on: ${{ matrix.os }}
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout Loki
|
|
14
|
+
uses: actions/checkout@v2
|
|
15
|
+
|
|
16
|
+
- name: Install native dependencies
|
|
17
|
+
run: |
|
|
18
|
+
python -m pip install --upgrade pip
|
|
19
|
+
python -m pip install pyyggdrasil==0.0.2
|
|
20
|
+
|
|
21
|
+
# Debug
|
|
22
|
+
- name: Debug, Configure, and Build Loki
|
|
23
|
+
run: |
|
|
24
|
+
cmake -DCMAKE_BUILD_TYPE=Debug -DLOKI_BUILD_TESTS=ON -S . -B build_debug \
|
|
25
|
+
-DPython3_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
|
|
26
|
+
-DCMAKE_PREFIX_PATH="$(python -c 'import pyyggdrasil; print(pyyggdrasil.native_prefix())')"
|
|
27
|
+
cmake --build build_debug
|
|
28
|
+
|
|
29
|
+
- name: Debug Test
|
|
30
|
+
working-directory: build_debug/tests/unit
|
|
31
|
+
run: |
|
|
32
|
+
NATIVE_LIB_DIR="$(python -c 'import pyyggdrasil; print(pyyggdrasil.native_prefix() / "lib")')"
|
|
33
|
+
export DYLD_LIBRARY_PATH="${NATIVE_LIB_DIR}:$PWD/../../src:${DYLD_LIBRARY_PATH:-}"
|
|
34
|
+
export LD_LIBRARY_PATH="${NATIVE_LIB_DIR}:$PWD/../../src:${LD_LIBRARY_PATH:-}"
|
|
35
|
+
if ! GTEST_OUTPUT=xml:test-results/ GTEST_COLOR=1 ctest -V --output-on-failure; then
|
|
36
|
+
if [ "$(uname)" = "Darwin" ]; then
|
|
37
|
+
echo "==== loki_tests dylibs ===="
|
|
38
|
+
otool -L ./loki_tests || true
|
|
39
|
+
echo "==== loki_tests rpaths ===="
|
|
40
|
+
otool -l ./loki_tests | grep -A3 LC_RPATH || true
|
|
41
|
+
echo "==== libloki_parsers dylibs ===="
|
|
42
|
+
otool -L ../../src/libloki_parsers.dylib || true
|
|
43
|
+
echo "==== lldb backtrace ===="
|
|
44
|
+
lldb --batch \
|
|
45
|
+
-o "settings set target.disable-aslr false" \
|
|
46
|
+
-o "run" \
|
|
47
|
+
-o "thread backtrace all" \
|
|
48
|
+
-- ./loki_tests || true
|
|
49
|
+
fi
|
|
50
|
+
exit 1
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
# Release
|
|
54
|
+
- name: Release, Configure, and Build Loki
|
|
55
|
+
run: |
|
|
56
|
+
cmake -DCMAKE_BUILD_TYPE=Release -DLOKI_BUILD_TESTS=ON -S . -B build_release \
|
|
57
|
+
-DPython3_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
|
|
58
|
+
-DCMAKE_PREFIX_PATH="$(python -c 'import pyyggdrasil; print(pyyggdrasil.native_prefix())')"
|
|
59
|
+
cmake --build build_release
|
|
60
|
+
|
|
61
|
+
- name: Release Test
|
|
62
|
+
working-directory: build_release/tests/unit
|
|
63
|
+
run: |
|
|
64
|
+
NATIVE_LIB_DIR="$(python -c 'import pyyggdrasil; print(pyyggdrasil.native_prefix() / "lib")')"
|
|
65
|
+
export DYLD_LIBRARY_PATH="${NATIVE_LIB_DIR}:$PWD/../../src:${DYLD_LIBRARY_PATH:-}"
|
|
66
|
+
export LD_LIBRARY_PATH="${NATIVE_LIB_DIR}:$PWD/../../src:${LD_LIBRARY_PATH:-}"
|
|
67
|
+
if ! GTEST_OUTPUT=xml:test-results/ GTEST_COLOR=1 ctest -V --output-on-failure; then
|
|
68
|
+
if [ "$(uname)" = "Darwin" ]; then
|
|
69
|
+
echo "==== loki_tests dylibs ===="
|
|
70
|
+
otool -L ./loki_tests || true
|
|
71
|
+
echo "==== loki_tests rpaths ===="
|
|
72
|
+
otool -l ./loki_tests | grep -A3 LC_RPATH || true
|
|
73
|
+
echo "==== libloki_parsers dylibs ===="
|
|
74
|
+
otool -L ../../src/libloki_parsers.dylib || true
|
|
75
|
+
echo "==== lldb backtrace ===="
|
|
76
|
+
lldb --batch \
|
|
77
|
+
-o "settings set target.disable-aslr false" \
|
|
78
|
+
-o "run" \
|
|
79
|
+
-o "thread backtrace all" \
|
|
80
|
+
-- ./loki_tests || true
|
|
81
|
+
fi
|
|
82
|
+
exit 1
|
|
83
|
+
fi
|
pypddl-1.0.1/.gitignore
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Build artefacts
|
|
2
|
+
build
|
|
3
|
+
build-*
|
|
4
|
+
dependencies-build
|
|
5
|
+
dependencies-install
|
|
6
|
+
dist
|
|
7
|
+
*.egg-info
|
|
8
|
+
.venv
|
|
9
|
+
.pypddl-yggdrasil-lib-dir
|
|
10
|
+
__pycache__
|
|
11
|
+
*.pyc
|
|
12
|
+
|
|
13
|
+
# IDE files
|
|
14
|
+
.vscode
|
|
15
|
+
|
|
16
|
+
# Prerequisites
|
|
17
|
+
*.d
|
|
18
|
+
|
|
19
|
+
# Compiled Object files
|
|
20
|
+
*.slo
|
|
21
|
+
*.lo
|
|
22
|
+
*.o
|
|
23
|
+
*.obj
|
|
24
|
+
|
|
25
|
+
# Precompiled Headers
|
|
26
|
+
*.gch
|
|
27
|
+
*.pch
|
|
28
|
+
|
|
29
|
+
# Compiled Dynamic libraries
|
|
30
|
+
*.so
|
|
31
|
+
*.dylib
|
|
32
|
+
*.dll
|
|
33
|
+
|
|
34
|
+
# Fortran module files
|
|
35
|
+
*.mod
|
|
36
|
+
*.smod
|
|
37
|
+
|
|
38
|
+
# Compiled Static libraries
|
|
39
|
+
*.lai
|
|
40
|
+
*.la
|
|
41
|
+
*.a
|
|
42
|
+
*.lib
|
|
43
|
+
|
|
44
|
+
# Executables
|
|
45
|
+
*.exe
|
|
46
|
+
*.out
|
|
47
|
+
*.app
|
pypddl-1.0.1/Apptainer
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
Bootstrap: docker
|
|
2
|
+
From: ubuntu:24.04
|
|
3
|
+
Stage: build
|
|
4
|
+
|
|
5
|
+
%files
|
|
6
|
+
. /opt/loki
|
|
7
|
+
|
|
8
|
+
%post
|
|
9
|
+
# Set noninteractive mode for apt
|
|
10
|
+
export DEBIAN_FRONTEND=noninteractive
|
|
11
|
+
|
|
12
|
+
# Update and install dependencies
|
|
13
|
+
apt-get update
|
|
14
|
+
apt-get install -y \
|
|
15
|
+
build-essential \
|
|
16
|
+
cmake \
|
|
17
|
+
git \
|
|
18
|
+
python3 \
|
|
19
|
+
python3-pip \
|
|
20
|
+
wget \
|
|
21
|
+
ca-certificates \
|
|
22
|
+
ccache \
|
|
23
|
+
&& apt-get clean \
|
|
24
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
25
|
+
|
|
26
|
+
# Set working directory
|
|
27
|
+
cd /opt/loki
|
|
28
|
+
|
|
29
|
+
# Install native dependencies
|
|
30
|
+
python3 -m pip install --break-system-packages pyyggdrasil==0.0.2
|
|
31
|
+
|
|
32
|
+
# Build Loki
|
|
33
|
+
cmake -S . -B build \
|
|
34
|
+
-DCMAKE_PREFIX_PATH="$(python3 -c 'import pyyggdrasil; print(pyyggdrasil.native_prefix())')" \
|
|
35
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
36
|
+
-DLOKI_BUILD_TESTS=OFF \
|
|
37
|
+
-DLOKI_BUILD_BENCHMARKS=OFF \
|
|
38
|
+
-DLOKI_BUILD_EXECUTABLES=ON
|
|
39
|
+
cmake --build build -j$(nproc)
|
|
40
|
+
|
|
41
|
+
# Install Loki to a staging directory
|
|
42
|
+
cmake --install build --prefix=/opt/loki/install
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# Runtime stage
|
|
46
|
+
Bootstrap: docker
|
|
47
|
+
From: ubuntu:24.04
|
|
48
|
+
Stage: runtime
|
|
49
|
+
|
|
50
|
+
%files from build
|
|
51
|
+
/opt/loki/install /usr/local
|
|
52
|
+
/opt/loki/build/exe/loki /usr/local/bin/loki
|
|
53
|
+
|
|
54
|
+
%post
|
|
55
|
+
# Install only runtime dependencies
|
|
56
|
+
export DEBIAN_FRONTEND=noninteractive
|
|
57
|
+
apt-get update
|
|
58
|
+
apt-get install -y \
|
|
59
|
+
libstdc++6 \
|
|
60
|
+
libgomp1 \
|
|
61
|
+
&& apt-get clean \
|
|
62
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
63
|
+
|
|
64
|
+
# Update library cache
|
|
65
|
+
ldconfig
|
|
66
|
+
|
|
67
|
+
%environment
|
|
68
|
+
export LC_ALL=C
|
|
69
|
+
export PATH=/usr/local/bin:$PATH
|
|
70
|
+
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
|
|
71
|
+
|
|
72
|
+
%runscript
|
|
73
|
+
exec loki "$@"
|
|
74
|
+
|
|
75
|
+
%labels
|
|
76
|
+
Author Dominik Drexler
|
|
77
|
+
Description Loki PDDL parser and translator
|
|
78
|
+
|
|
79
|
+
%help
|
|
80
|
+
This is a container for Loki, a C++20 library for syntactic and semantic
|
|
81
|
+
parsing and translation of PDDL files.
|
|
82
|
+
|
|
83
|
+
Usage:
|
|
84
|
+
apptainer run loki.sif <domain.pddl> <problem.pddl>
|
|
85
|
+
|
|
86
|
+
Or start an interactive shell:
|
|
87
|
+
apptainer shell loki.sif
|
|
88
|
+
|
|
89
|
+
The loki executable is available at /usr/local/bin/loki
|