codeplain 0.2.19__tar.gz → 0.2.20__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.
- codeplain-0.2.20/.claude/settings.local.json +64 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/PKG-INFO +1 -1
- codeplain-0.2.20/_version.py +1 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/memory_management.py +13 -2
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/exit_with_error.py +7 -1
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/fix_conformance_test.py +3 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/code_renderer.py +0 -2
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/render_context.py +1 -1
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/render_types.py +1 -0
- codeplain-0.2.19/.claude/settings.local.json +0 -39
- codeplain-0.2.19/_version.py +0 -1
- {codeplain-0.2.19 → codeplain-0.2.20}/.flake8 +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/.github/workflows/lint-and-test.yml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/.github/workflows/nofity-slack-on-main-merge.yml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/.github/workflows/publish-install-script.yml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/.github/workflows/publish-to-pypi.yml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/.gitignore +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/.vscode/launch.json +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/.vscode/settings.json +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/LICENSE +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/README.md +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/codeplain_REST_api.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/concept_utils.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/config/__init__.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/config/system_config.yaml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/diff_utils.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/docs/generate_cli.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/docs/plain2code_cli.md +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/docs/starting_a_plain_project_from_scratch.md +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/event_bus.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_golang/config.yaml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_golang/harness_tests/hello_world_test.go +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_golang/hello_world_golang.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_golang/run.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_python/config.yaml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_python/harness_tests/hello_world_display/test_hello_world.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_python/hello_world_python.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_python/run.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/config.yaml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/harness_tests/hello_world_display/cypress/e2e/hello_world.cy.ts +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/harness_tests/hello_world_display/cypress/support/e2e.ts +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/harness_tests/hello_world_display/cypress.config.ts +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/harness_tests/hello_world_display/package.json +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/harness_tests/hello_world_display/tsconfig.json +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/hello_world_react.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/run.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/examples/run.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/file_utils.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/git_utils.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/hash_key.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/install/bash/examples.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/install/bash/install.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/install/bash/walkthrough.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/install/powershell/examples.ps1 +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/install/powershell/install.ps1 +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/install/powershell/walkthrough.ps1 +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/module_renderer.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_arguments.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_console.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_events.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_exceptions.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_logger.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_nodes.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_read_config.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_state.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain2code_utils.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain_file.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain_modules.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/plain_spec.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/pyproject.toml +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/pytest.ini +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/__init__.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/analyze_specification_ambiguity.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/base_action.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/commit_conformance_tests_changes.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/commit_implementation_code_changes.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/create_dist.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/finish_functional_requirement.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/fix_unit_tests.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/prepare_repositories.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/prepare_testing_environment.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/refactor_code.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/render_conformance_tests.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/render_functional_requirement.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/run_conformance_tests.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/run_unit_tests.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/summarize_conformance_tests.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/conformance_test_helpers.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/conformance_tests.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/implementation_code_helpers.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/render_utils.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/state_machine_config.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/states.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/render_machine/triggers.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/requirements.txt +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/resources/codeplain_overview.png +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/resources/plain_example.png +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/__init__.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/golang-console-app-template.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/python-console-app-template.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/typescript-react-app-boilerplate.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/typescript-react-app-template.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/system_config.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/test_scripts/run_conformance_tests_cypress.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/test_scripts/run_conformance_tests_golang.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/test_scripts/run_conformance_tests_python.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/test_scripts/run_unittests_golang.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/test_scripts/run_unittests_python.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/test_scripts/run_unittests_react.sh +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/__init__.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/conftest.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/circular_imports_1.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/circular_imports_2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/circular_imports_main.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/diamond_import_1.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/diamond_import_2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/diamond_import_common.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/diamond_imports_main.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/imports/non_existent_import.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/duplicate_specification_heading.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/invalid_specification_order.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/missing_non_functional_requirements.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/plain_source_with_absolute_link.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/plain_source_with_url_link.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/task_manager_with_reference_links.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/without_non_functional_requirement.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_acceptance_tests.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_acceptance_tests_nondefined.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_defined_nondefined.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_defined_nondefined_2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_definition.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_noconcepts.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_nonconcept.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_nondefined.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_redefinition.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_several_concepts.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_valid.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_base.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_example.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_missing.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_missing_example.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_nested.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_nested_example.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_transitive_example.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_transitive_l1.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_transitive_l2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/plain_file_parser_with_comments.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/plain_file_with_comments_indented.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/regular_plain_source.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_defs.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_example.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_l1.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_l2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_missing.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_module.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_partial.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_partial_duplicate.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/topological_sort.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/topological_sort_not_referenced.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/circular_requires_main.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/circular_requires_sub.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/diamond_requires_1.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/diamond_requires_2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/diamond_requires_common.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/diamond_requires_main.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/independent_requires_1.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/independent_requires_2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/independent_requires_main.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/non_existent_require.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/normal_requires_1.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/normal_requires_2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/normal_requires_common.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/requires/normal_requires_main.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/simple.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/templates/block_level_include.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/templates/code_variables.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/templates/header.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/templates/implement.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/templates/implement_2.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/templates/template_include.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/data/templates/test_hardest_problem.plain +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/test_git_utils.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/test_imports.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/test_plainfile.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/test_plainfileparser.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/test_plainspec.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/test_requires.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tests/test_resolve_config_file.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/__init__.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/components.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/models.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/plain2code_tui.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/spinner.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/state_handlers.py +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/styles.css +0 -0
- {codeplain-0.2.19 → codeplain-0.2.20}/tui/widget_helpers.py +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(gh pr:*)",
|
|
5
|
+
"Bash(git diff *)",
|
|
6
|
+
"Bash(mypy . --check-untyped-defs)",
|
|
7
|
+
"Bash(flake8 .)",
|
|
8
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_git_utils.py -v --no-header)",
|
|
9
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key python *)",
|
|
10
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/_sandbox_check.py -v -s)",
|
|
11
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_partial_rendering.py -v)",
|
|
12
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_plain_modules.py -v)",
|
|
13
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/ -v)",
|
|
14
|
+
"Bash(flake8 tests/)",
|
|
15
|
+
"Bash(git stash *)",
|
|
16
|
+
"Bash(flake8 tests/test_git_utils.py)",
|
|
17
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key coverage run -m pytest tests/ -v)",
|
|
18
|
+
"Bash(.venv/bin/coverage run *)",
|
|
19
|
+
"Bash(.venv/bin/coverage report *)",
|
|
20
|
+
"Bash(.venv/bin/python -m coverage run -m pytest tests/)",
|
|
21
|
+
"Bash(.venv/bin/python -m coverage report)",
|
|
22
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/)",
|
|
23
|
+
"Bash(flake8 tests/test_partial_rendering.py tests/test_plain_modules.py)",
|
|
24
|
+
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_partial_rendering.py tests/test_plain_modules.py tests/test_git_utils.py)",
|
|
25
|
+
"Bash(pytest tests *)",
|
|
26
|
+
"Bash(pytest tests/test_git_utils.py::test_diff_without_previous_frid_and_no_base_folder -x -v)",
|
|
27
|
+
"Bash(git checkout *)",
|
|
28
|
+
"Bash(python -c ' *)",
|
|
29
|
+
"Bash(python3 -c ' *)",
|
|
30
|
+
"Bash(/opt/homebrew/opt/python@3.11/bin/python3.11 -c ' *)",
|
|
31
|
+
"Bash(pytest tests/test_git_utils.py -x -v)",
|
|
32
|
+
"Bash(pytest tests/test_git_utils.py -v)",
|
|
33
|
+
"Bash(pytest -x -v)",
|
|
34
|
+
"Bash(pytest tests/test_partial_rendering.py -v)",
|
|
35
|
+
"Bash(pytest -v)",
|
|
36
|
+
"Bash(pytest)",
|
|
37
|
+
"Bash(python -m pytest tests/test_partial_rendering.py -x -v)",
|
|
38
|
+
"Bash(python -m pytest -x -v)",
|
|
39
|
+
"Bash(python -m pytest tests/test_partial_rendering.py -v)",
|
|
40
|
+
"Bash(python -m pytest)",
|
|
41
|
+
"Bash(python -m pytest tests/test_plain_modules.py -q)",
|
|
42
|
+
"Bash(python3 -m pytest tests/test_plain_modules.py -q)",
|
|
43
|
+
"Bash(.venv/bin/pytest tests/test_plain_modules.py -q)",
|
|
44
|
+
"Bash(git -C /Users/zanjonke/Work/codeplain/codeplain log --oneline -5)",
|
|
45
|
+
"Bash(git -C /Users/zanjonke/Work/codeplain/codeplain branch --show-current)",
|
|
46
|
+
"Bash(python -m pytest tests/test_git_utils.py::test_get_last_finished_frid_empty_repo -x)",
|
|
47
|
+
"Bash(python3 -m pytest tests/test_git_utils.py::test_get_last_finished_frid_empty_repo -x)",
|
|
48
|
+
"Bash(.venv/bin/python -m pytest tests/test_git_utils.py::test_get_last_finished_frid_empty_repo -x)",
|
|
49
|
+
"Bash(.venv/bin/python -m pytest tests/test_git_utils.py::test_get_last_finished_frid_without_module_name tests/test_git_utils.py::test_get_last_finished_frid_empty_repo -x)",
|
|
50
|
+
"Bash(.venv/bin/python -m pytest tests/test_git_utils.py)",
|
|
51
|
+
"Bash(python -m pytest tests/test_partial_rendering.py -x)",
|
|
52
|
+
"Bash(python3 -m pytest tests/test_partial_rendering.py)",
|
|
53
|
+
"Bash(/Users/zanjonke/Work/codeplain/codeplain/.venv/bin/python -m pytest tests/test_partial_rendering.py)",
|
|
54
|
+
"Bash(/Users/zanjonke/Work/codeplain/codeplain/.venv/bin/python -m pytest tests/test_plain_modules.py tests/test_partial_rendering.py)",
|
|
55
|
+
"Bash(git *)",
|
|
56
|
+
"Bash(python -m pytest tests/test_plain_modules.py -x --tb=short)",
|
|
57
|
+
"Bash(python3 -m pytest tests/test_plain_modules.py -x --tb=short)",
|
|
58
|
+
"Bash(/Users/zanjonke/Work/codeplain/codeplain/venv/bin/python -m pytest tests/test_plain_modules.py --tb=short)",
|
|
59
|
+
"Bash(/Users/zanjonke/Work/codeplain/codeplain/.venv/bin/python -m pytest tests/test_plain_modules.py --tb=short)",
|
|
60
|
+
"Bash(/Users/zanjonke/Work/codeplain/codeplain/.venv/bin/python -m pytest tests/test_partial_rendering.py tests/test_git_utils.py --tb=short)",
|
|
61
|
+
"Bash(.venv/bin/python *)"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.20"
|
|
@@ -33,18 +33,29 @@ class MemoryManager:
|
|
|
33
33
|
):
|
|
34
34
|
|
|
35
35
|
current_conformance_tests_issue_frid = render_context.conformance_tests_running_context.current_testing_frid
|
|
36
|
+
current_conformance_tests_issue_module = (
|
|
37
|
+
render_context.conformance_tests_running_context.current_testing_module_name
|
|
38
|
+
)
|
|
36
39
|
old_conformance_tests_issue_frid = (
|
|
37
40
|
render_context.conformance_tests_running_context.previous_conformance_tests_issue_frid
|
|
38
41
|
)
|
|
42
|
+
old_conformance_tests_issue_module = (
|
|
43
|
+
render_context.conformance_tests_running_context.previous_conformance_tests_issue_module
|
|
44
|
+
)
|
|
39
45
|
|
|
40
46
|
old_conformance_tests_issue = (
|
|
41
47
|
render_context.conformance_tests_running_context.previous_conformance_tests_issue_old
|
|
42
48
|
)
|
|
43
49
|
|
|
44
50
|
is_first_time_running_conformance_tests = (
|
|
45
|
-
old_conformance_tests_issue_frid is None
|
|
51
|
+
old_conformance_tests_issue_frid is None
|
|
52
|
+
or old_conformance_tests_issue_frid == ""
|
|
53
|
+
or old_conformance_tests_issue_module != current_conformance_tests_issue_module
|
|
54
|
+
)
|
|
55
|
+
is_same_frid_as_previous_failing_test = (
|
|
56
|
+
current_conformance_tests_issue_frid == old_conformance_tests_issue_frid
|
|
57
|
+
and current_conformance_tests_issue_module == old_conformance_tests_issue_module
|
|
46
58
|
)
|
|
47
|
-
is_same_frid_as_previous_failing_test = current_conformance_tests_issue_frid == old_conformance_tests_issue_frid
|
|
48
59
|
is_conformance_test_failed = exit_code != CONFORMANCE_TESTS_SUCCESS_EXIT_CODE
|
|
49
60
|
|
|
50
61
|
should_create_memory = not is_first_time_running_conformance_tests and (
|
|
@@ -3,6 +3,7 @@ from typing import Any
|
|
|
3
3
|
from plain2code_console import console
|
|
4
4
|
from render_machine.actions.base_action import BaseAction
|
|
5
5
|
from render_machine.render_context import RenderContext
|
|
6
|
+
from render_machine.render_types import RenderError
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class ExitWithError(BaseAction):
|
|
@@ -25,4 +26,9 @@ class ExitWithError(BaseAction):
|
|
|
25
26
|
if render_context.run_state.render_id is not None:
|
|
26
27
|
console.info(f"Render ID: {render_context.run_state.render_id}")
|
|
27
28
|
|
|
28
|
-
return
|
|
29
|
+
return (
|
|
30
|
+
self.SUCCESSFUL_OUTCOME,
|
|
31
|
+
RenderError.encode(
|
|
32
|
+
message=render_context.last_error_message or "Unknown error",
|
|
33
|
+
).to_payload(),
|
|
34
|
+
)
|
|
@@ -30,6 +30,9 @@ class FixConformanceTest(BaseAction):
|
|
|
30
30
|
render_context.conformance_tests_running_context.previous_conformance_tests_issue_frid = (
|
|
31
31
|
render_context.conformance_tests_running_context.current_testing_frid
|
|
32
32
|
)
|
|
33
|
+
render_context.conformance_tests_running_context.previous_conformance_tests_issue_module = (
|
|
34
|
+
render_context.conformance_tests_running_context.current_testing_module_name
|
|
35
|
+
)
|
|
33
36
|
|
|
34
37
|
if render_context.conformance_tests_running_context.current_testing_frid == render_context.frid_context.frid:
|
|
35
38
|
console_message = f"Fixing conformance test for functionality {render_context.conformance_tests_running_context.current_testing_frid} in module {render_context.conformance_tests_running_context.current_testing_module_name}."
|
|
@@ -58,8 +58,6 @@ class CodeRenderer:
|
|
|
58
58
|
)
|
|
59
59
|
previous_state = deepcopy(self.render_context.state)
|
|
60
60
|
self.render_context.script_execution_history.should_update_script_outputs = False
|
|
61
|
-
# Reset error message at start of each iteration to prevent stale data
|
|
62
|
-
self.render_context.last_error_message = None
|
|
63
61
|
|
|
64
62
|
outcome, previous_action_payload = self.action_map[self.render_context.state].execute(
|
|
65
63
|
self.render_context, previous_action_payload
|
|
@@ -436,7 +436,7 @@ class RenderContext:
|
|
|
436
436
|
self.conformance_tests_running_context.conformance_tests_render_attempts
|
|
437
437
|
>= MAX_CONFORMANCE_TEST_RERENDER_ATTEMPTS
|
|
438
438
|
):
|
|
439
|
-
error_msg = f"
|
|
439
|
+
error_msg = f"The renderer was unable to produce an implementation that passes conformance tests for functionality '{self.frid_context.frid}' after many attempts. Please review and rewrite the specification. (Render ID: {self.run_state.render_id})"
|
|
440
440
|
self.dispatch_error(error_msg)
|
|
441
441
|
else:
|
|
442
442
|
self.conformance_tests_running_context.regenerating_conformance_tests = True
|
|
@@ -49,6 +49,7 @@ class ConformanceTestsRunningContext:
|
|
|
49
49
|
self.current_testing_frid_high_level_implementation_plan: Optional[str] = None
|
|
50
50
|
self.previous_conformance_tests_issue_old: Optional[str] = None
|
|
51
51
|
self.previous_conformance_tests_issue_frid: Optional[str] = None
|
|
52
|
+
self.previous_conformance_tests_issue_module: Optional[str] = None
|
|
52
53
|
self.code_diff_files: Optional[dict[str, str]] = None
|
|
53
54
|
|
|
54
55
|
def get_conformance_tests_json(self, module_name: str) -> dict:
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(gh pr:*)",
|
|
5
|
-
"Bash(git diff *)",
|
|
6
|
-
"Bash(mypy . --check-untyped-defs)",
|
|
7
|
-
"Bash(flake8 .)",
|
|
8
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_git_utils.py -v --no-header)",
|
|
9
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key python *)",
|
|
10
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/_sandbox_check.py -v -s)",
|
|
11
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_partial_rendering.py -v)",
|
|
12
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_plain_modules.py -v)",
|
|
13
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/ -v)",
|
|
14
|
-
"Bash(flake8 tests/)",
|
|
15
|
-
"Bash(git stash *)",
|
|
16
|
-
"Bash(flake8 tests/test_git_utils.py)",
|
|
17
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key coverage run -m pytest tests/ -v)",
|
|
18
|
-
"Bash(.venv/bin/coverage run *)",
|
|
19
|
-
"Bash(.venv/bin/coverage report *)",
|
|
20
|
-
"Bash(.venv/bin/python -m coverage run -m pytest tests/)",
|
|
21
|
-
"Bash(.venv/bin/python -m coverage report)",
|
|
22
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/)",
|
|
23
|
-
"Bash(flake8 tests/test_partial_rendering.py tests/test_plain_modules.py)",
|
|
24
|
-
"Bash(MASTER_KEY=test-master-key GOOGLE_API_KEY=test-google-api-key pytest tests/test_partial_rendering.py tests/test_plain_modules.py tests/test_git_utils.py)",
|
|
25
|
-
"Bash(pytest tests *)",
|
|
26
|
-
"Bash(pytest tests/test_git_utils.py::test_diff_without_previous_frid_and_no_base_folder -x -v)",
|
|
27
|
-
"Bash(git checkout *)",
|
|
28
|
-
"Bash(python -c ' *)",
|
|
29
|
-
"Bash(python3 -c ' *)",
|
|
30
|
-
"Bash(/opt/homebrew/opt/python@3.11/bin/python3.11 -c ' *)",
|
|
31
|
-
"Bash(pytest tests/test_git_utils.py -x -v)",
|
|
32
|
-
"Bash(pytest tests/test_git_utils.py -v)",
|
|
33
|
-
"Bash(pytest -x -v)",
|
|
34
|
-
"Bash(pytest tests/test_partial_rendering.py -v)",
|
|
35
|
-
"Bash(pytest -v)",
|
|
36
|
-
"Bash(pytest)"
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
}
|
codeplain-0.2.19/_version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.2.19"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_golang/hello_world_golang.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_python/hello_world_python.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/examples/example_hello_world_react/hello_world_react.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/analyze_specification_ambiguity.py
RENAMED
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/commit_conformance_tests_changes.py
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/commit_implementation_code_changes.py
RENAMED
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/finish_functional_requirement.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/render_machine/actions/render_functional_requirement.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/golang-console-app-template.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/python-console-app-template.plain
RENAMED
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/standard_template_library/typescript-react-app-template.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/duplicate_specification_heading.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/invalid_specification_order.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/missing_non_functional_requirements.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/plain_source_with_absolute_link.plain
RENAMED
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/task_manager_with_reference_links.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfile/without_non_functional_requirement.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_definition.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_noconcepts.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_nonconcept.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_nondefined.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/concept_validation_valid.plain
RENAMED
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_base.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_example.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_missing.plain
RENAMED
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/exported_concepts_nested.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_defs.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_example.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_missing.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_module.plain
RENAMED
|
File without changes
|
{codeplain-0.2.19 → codeplain-0.2.20}/tests/data/plainfileparser/required_concepts_partial.plain
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|