ara-cli 0.1.9.59__tar.gz → 0.1.9.61__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.
Potentially problematic release.
This version of ara-cli might be problematic. Click here for more details.
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/PKG-INFO +1 -1
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_creator.py +5 -9
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/businessgoal_artefact_model.py +3 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/epic_artefact_model.py +3 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/feature_artefact_model.py +4 -1
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/keyfeature_artefact_model.py +3 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/userstory_artefact_model.py +3 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_scan.py +5 -1
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/file_classifier.py +2 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_ara_command_action.py +1 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_artefact_scan.py +3 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_file_classifier.py +22 -1
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/version.py +1 -1
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli.egg-info/PKG-INFO +1 -1
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/MANIFEST.in +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/README.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/__init__.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/__main__.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/analyse_artefacts.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/ara_command_action.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/ara_command_parser.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/ara_config.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_deleter.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_fuzzy_search.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_link_updater.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_lister.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/artefact_load.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/artefact_mapping.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/artefact_model.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/artefact_templates.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/capability_artefact_model.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/example_artefact_model.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/issue_artefact_model.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/task_artefact_model.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/vision_artefact_model.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_reader.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_renamer.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/chat.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/classifier.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/codefusionretriever.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/codehierachieretriever.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/commandline_completer.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/directory_navigator.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/file_lister.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/filename_validator.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/list_filter.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/output_suppressor.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/prompt_chat.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/prompt_extractor.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/prompt_handler.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/prompt_rag.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/run_file_lister.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tag_extractor.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/template_manager.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/agile.artefacts +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/blueprints/complete_pytest_unittest.blueprint.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/blueprints/empty.blueprint.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/blueprints/task_todo_list_C4_architecture_analysis.blueprint.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/blueprints/task_todo_list_implement_feature_BDD_way.blueprint.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/architecture_C4_analysis.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/architecture_radon_cc_score.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/architecture_radon_halstead_v.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/architecture_radon_maintainability_score.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/artefact_classification.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/artefact_extension.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/artefact_formulation.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/behave_step_generation.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/code_generation_complex.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/code_generation_simple.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/empty.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/error_fixing.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/feature_file_update.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/feature_formulation.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/js_code_generation_simple.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/refactoring.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/refactoring_analysis.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/reverse_engineer_feature_file.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/reverse_engineer_program_flow.commands.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/classify_task.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/empty.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/error_fixing.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/feature_fix_steps_for_scenario.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/feature_formulation.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/feature_reverse_formulation_from_code.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/feature_scenario_implementation.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/feature_scenario_implementation_update.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/feature_scenario_outline_extension.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/feature_update_formulation.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/fibonacci_example_implementation.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/js_implementation_from_task_description.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/js_steps_implementation.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/python_cli_implementation_with_test.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/python_code_understanding.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/task_implementation.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/task_prompt_control_by_status.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/task_stepwise_implementation_by_number.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/task_stepwise_implementation_by_status.intention.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/architecture_analyst.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/code_analyst.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/empty.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/error_analyst.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/gherkin_expert.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/js_expert_developer.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/product_owner.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/python_behave.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/python_developer.rules.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.concept.exploration.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.concept.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.customer.exploration.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.customer.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.persona.exploration.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.persona.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.step.exploration.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.step.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.technology.exploration.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/specification_breakdown_files/template.technology.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.businessgoal +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.businessgoal.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.capability +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.capability.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.epic +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.epic.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.example +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.example.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.feature +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.feature.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.issue +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.issue.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.keyfeature +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.keyfeature.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.steps.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.task +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.task.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.userstory +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.userstory.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.vision +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/template.vision.prompt_log.md +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/__init__.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_ara_config.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_artefact_fuzzy_search.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_artefact_link_updater.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_artefact_lister.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_artefact_reader.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_artefact_renamer.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_chat.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_classifier.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_directory_navigator.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_file_creator.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_file_lister.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_list_filter.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_tag_extractor.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_template_manager.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/tests/test_update_config_prompt.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/update_config_prompt.py +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli.egg-info/SOURCES.txt +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli.egg-info/dependency_links.txt +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli.egg-info/entry_points.txt +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli.egg-info/requires.txt +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli.egg-info/top_level.txt +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/setup.cfg +0 -0
- {ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/setup.py +0 -0
|
@@ -59,9 +59,9 @@ class ArtefactCreator:
|
|
|
59
59
|
|
|
60
60
|
return True
|
|
61
61
|
|
|
62
|
-
def handle_existing_files(self, file_exists
|
|
63
|
-
if file_exists
|
|
64
|
-
user_choice = input("File
|
|
62
|
+
def handle_existing_files(self, file_exists):
|
|
63
|
+
if file_exists:
|
|
64
|
+
user_choice = input("File already exists. Do you want to overwrite the existing file and directory? (y/N): ")
|
|
65
65
|
if user_choice.lower() != "y":
|
|
66
66
|
print("No changes were made to the existing file and directory.")
|
|
67
67
|
return False
|
|
@@ -102,12 +102,8 @@ class ArtefactCreator:
|
|
|
102
102
|
dir_path = self.file_system.path.join(sub_directory, f"{filename}.data")
|
|
103
103
|
|
|
104
104
|
file_exists = self.file_system.path.exists(file_path)
|
|
105
|
-
dir_exists = self.file_system.path.exists(dir_path)
|
|
106
105
|
|
|
107
|
-
if
|
|
108
|
-
dir_exists = False
|
|
109
|
-
|
|
110
|
-
if not self.handle_existing_files(file_exists, dir_exists):
|
|
106
|
+
if not self.handle_existing_files(file_exists):
|
|
111
107
|
return
|
|
112
108
|
|
|
113
109
|
artefact = template_artefact_of_type(classifier, filename)
|
|
@@ -119,7 +115,7 @@ class ArtefactCreator:
|
|
|
119
115
|
)
|
|
120
116
|
|
|
121
117
|
artefact_content = artefact.serialize()
|
|
122
|
-
rmtree(dir_path)
|
|
118
|
+
rmtree(dir_path, ignore_errors=True)
|
|
123
119
|
os.makedirs(dir_path, exist_ok=True)
|
|
124
120
|
with open(file_path, 'w') as artefact_file:
|
|
125
121
|
artefact_file.write(artefact_content)
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/artefact_models/businessgoal_artefact_model.py
RENAMED
|
@@ -48,6 +48,7 @@ class BusinessgoalIntent(Intent):
|
|
|
48
48
|
|
|
49
49
|
in_order_to_prefix = "In order to "
|
|
50
50
|
as_a_prefix = "As a "
|
|
51
|
+
as_a_prefix_alt = "As an "
|
|
51
52
|
i_want_prefix = "I want "
|
|
52
53
|
|
|
53
54
|
index = start_index
|
|
@@ -57,6 +58,8 @@ class BusinessgoalIntent(Intent):
|
|
|
57
58
|
in_order_to = line[len(in_order_to_prefix):].strip()
|
|
58
59
|
elif line.startswith(as_a_prefix) and not as_a:
|
|
59
60
|
as_a = line[len(as_a_prefix):].strip()
|
|
61
|
+
elif line.startswith(as_a_prefix_alt) and not as_a:
|
|
62
|
+
as_a = line[len(as_a_prefix_alt):].strip()
|
|
60
63
|
elif line.startswith(i_want_prefix) and not i_want:
|
|
61
64
|
i_want = line[len(i_want_prefix):].strip()
|
|
62
65
|
index += 1
|
|
@@ -49,6 +49,7 @@ class EpicIntent(Intent):
|
|
|
49
49
|
|
|
50
50
|
in_order_to_prefix = "In order to "
|
|
51
51
|
as_a_prefix = "As a "
|
|
52
|
+
as_a_prefix_alt = "As an "
|
|
52
53
|
i_want_prefix = "I want "
|
|
53
54
|
|
|
54
55
|
index = start_index
|
|
@@ -58,6 +59,8 @@ class EpicIntent(Intent):
|
|
|
58
59
|
in_order_to = line[len(in_order_to_prefix):].strip()
|
|
59
60
|
elif line.startswith(as_a_prefix) and not as_a:
|
|
60
61
|
as_a = line[len(as_a_prefix):].strip()
|
|
62
|
+
elif line.startswith(as_a_prefix_alt) and not as_a:
|
|
63
|
+
as_a = line[len(as_a_prefix_alt):].strip()
|
|
61
64
|
elif line.startswith(i_want_prefix) and not i_want:
|
|
62
65
|
i_want = line[len(i_want_prefix):].strip()
|
|
63
66
|
index += 1
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from pydantic import BaseModel, field_validator, model_validator, Field
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import List, Dict, Tuple, Union
|
|
3
3
|
from ara_cli.artefact_models.artefact_model import Artefact, ArtefactType, Intent
|
|
4
4
|
import re
|
|
5
5
|
|
|
@@ -48,6 +48,7 @@ class FeatureIntent(Intent):
|
|
|
48
48
|
so_that = None
|
|
49
49
|
|
|
50
50
|
as_a_prefix = "As a "
|
|
51
|
+
as_a_prefix_alt = "As an "
|
|
51
52
|
i_want_to_prefix = "I want to "
|
|
52
53
|
so_that_prefix = "So that "
|
|
53
54
|
|
|
@@ -56,6 +57,8 @@ class FeatureIntent(Intent):
|
|
|
56
57
|
line = lines[index]
|
|
57
58
|
if line.startswith(as_a_prefix) and not as_a:
|
|
58
59
|
as_a = line[len(as_a_prefix):].strip()
|
|
60
|
+
if line.startswith(as_a_prefix_alt) and not as_a:
|
|
61
|
+
as_a = line[len(as_a_prefix_alt):].strip()
|
|
59
62
|
elif line.startswith(i_want_to_prefix) and not i_want_to:
|
|
60
63
|
i_want_to = line[len(i_want_to_prefix):].strip()
|
|
61
64
|
elif line.startswith(so_that_prefix) and not so_that:
|
|
@@ -48,6 +48,7 @@ class KeyfeatureIntent(Intent):
|
|
|
48
48
|
|
|
49
49
|
in_order_to_prefix = "In order to "
|
|
50
50
|
as_a_prefix = "As a "
|
|
51
|
+
as_a_prefix_alt = "As an "
|
|
51
52
|
i_want_prefix = "I want "
|
|
52
53
|
|
|
53
54
|
index = start_index
|
|
@@ -57,6 +58,8 @@ class KeyfeatureIntent(Intent):
|
|
|
57
58
|
in_order_to = line[len(in_order_to_prefix):].strip()
|
|
58
59
|
elif line.startswith(as_a_prefix) and not as_a:
|
|
59
60
|
as_a = line[len(as_a_prefix):].strip()
|
|
61
|
+
elif line.startswith(as_a_prefix_alt) and not as_a:
|
|
62
|
+
as_a = line[len(as_a_prefix_alt):].strip()
|
|
60
63
|
elif line.startswith(i_want_prefix) and not i_want:
|
|
61
64
|
i_want = line[len(i_want_prefix):].strip()
|
|
62
65
|
index += 1
|
|
@@ -48,6 +48,7 @@ class UserstoryIntent(Intent):
|
|
|
48
48
|
|
|
49
49
|
in_order_to_prefix = "In order to "
|
|
50
50
|
as_a_prefix = "As a "
|
|
51
|
+
as_a_prefix_alt = "As an "
|
|
51
52
|
i_want_prefix = "I want "
|
|
52
53
|
|
|
53
54
|
index = start_index
|
|
@@ -57,6 +58,8 @@ class UserstoryIntent(Intent):
|
|
|
57
58
|
in_order_to = line[len(in_order_to_prefix):].strip()
|
|
58
59
|
elif line.startswith(as_a_prefix) and not as_a:
|
|
59
60
|
as_a = line[len(as_a_prefix):].strip()
|
|
61
|
+
elif line.startswith(as_a_prefix_alt) and not as_a:
|
|
62
|
+
as_a = line[len(as_a_prefix_alt):].strip()
|
|
60
63
|
elif line.startswith(i_want_prefix) and not i_want:
|
|
61
64
|
i_want = line[len(i_want_prefix):].strip()
|
|
62
65
|
index += 1
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
from textwrap import indent
|
|
2
|
+
|
|
3
|
+
|
|
1
4
|
def check_file(file_path, artefact_class):
|
|
2
5
|
from pydantic import ValidationError
|
|
3
6
|
try:
|
|
@@ -38,7 +41,8 @@ def show_results(invalid_artefacts):
|
|
|
38
41
|
print(f"\nIncompatible {classifier} Files:")
|
|
39
42
|
report.write(f"## {classifier}\n")
|
|
40
43
|
for file, reason in files:
|
|
41
|
-
|
|
44
|
+
indented_reason = indent(reason, prefix="\t\t")
|
|
45
|
+
print(f"\t- {file}\n{indented_reason}")
|
|
42
46
|
report.write(f"- `{file}`: {reason}\n")
|
|
43
47
|
report.write("\n")
|
|
44
48
|
if not has_issues:
|
|
@@ -68,6 +68,8 @@ class FileClassifier:
|
|
|
68
68
|
files_by_classifier = {classifier: [] for classifier in Classifier.ordered_classifiers()}
|
|
69
69
|
|
|
70
70
|
for root, _, files in self.file_system.walk("."):
|
|
71
|
+
if root.endswith(".data"):
|
|
72
|
+
continue
|
|
71
73
|
for file in files:
|
|
72
74
|
file_path = self.file_system.path.join(root, file)
|
|
73
75
|
classifier = self.classify_file(file_path, tags)
|
|
@@ -647,6 +647,7 @@ def test_scan_action_with_issues(capsys):
|
|
|
647
647
|
expected_output = (
|
|
648
648
|
"\nIncompatible classifier1 Files:\n"
|
|
649
649
|
"\t- file1.txt\n"
|
|
650
|
+
"\t\treason1\n"
|
|
650
651
|
)
|
|
651
652
|
assert captured.out == expected_output
|
|
652
653
|
m.assert_called_once_with("incompatible_artefacts_report.md", "w")
|
|
@@ -106,9 +106,12 @@ def test_show_results_with_issues(capsys):
|
|
|
106
106
|
expected_output = (
|
|
107
107
|
"\nIncompatible classifier1 Files:\n"
|
|
108
108
|
"\t- file1.txt\n"
|
|
109
|
+
"\t\treason1\n"
|
|
109
110
|
"\t- file2.txt\n"
|
|
111
|
+
"\t\treason2\n"
|
|
110
112
|
"\nIncompatible classifier2 Files:\n"
|
|
111
113
|
"\t- file3.txt\n"
|
|
114
|
+
"\t\treason3\n"
|
|
112
115
|
)
|
|
113
116
|
assert captured.out == expected_output
|
|
114
117
|
m.assert_called_once_with("incompatible_artefacts_report.md", "w")
|
|
@@ -247,4 +247,25 @@ def test_find_closest_artefact_name_match(mock_file_system):
|
|
|
247
247
|
mock_fuzzy.assert_called_once_with('file3', ['file1', 'file2'])
|
|
248
248
|
|
|
249
249
|
# No match for classifier
|
|
250
|
-
assert classifier.find_closest_artefact_name_match('file1', 'txt') is None
|
|
250
|
+
assert classifier.find_closest_artefact_name_match('file1', 'txt') is None
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
@pytest.mark.parametrize("walk_return_value, expected_result", [
|
|
254
|
+
(
|
|
255
|
+
[('.', ['subdir'], ['file1.py']), ('subdir.data', [], ['file_in_data.txt'])],
|
|
256
|
+
{'py': [{'file_path': './file1.py', 'title': 'file1'}], 'txt': [], 'bin': []}
|
|
257
|
+
),
|
|
258
|
+
(
|
|
259
|
+
[('.', ['subdir'], ['file1.py']), ('subdir', [], ['file2.txt'])],
|
|
260
|
+
{'py': [{'file_path': './file1.py', 'title': 'file1'}], 'txt': [{'file_path': 'subdir/file2.txt', 'title': 'file2'}], 'bin': []}
|
|
261
|
+
)
|
|
262
|
+
])
|
|
263
|
+
def test_classify_files_skips_data_directories(mock_file_system, mock_classifier, walk_return_value, expected_result):
|
|
264
|
+
mock_file_system.walk.return_value = walk_return_value
|
|
265
|
+
mock_file_system.path.join.side_effect = lambda root, file: f"{root}/{file}"
|
|
266
|
+
|
|
267
|
+
classifier = FileClassifier(mock_file_system)
|
|
268
|
+
|
|
269
|
+
result = classifier.classify_files()
|
|
270
|
+
|
|
271
|
+
assert result == expected_result
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# version.py
|
|
2
|
-
__version__ = "0.1.9.
|
|
2
|
+
__version__ = "0.1.9.61" # fith parameter like .0 for local install test purposes only. official numbers should be 4 digit numbers
|
|
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
|
|
File without changes
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/blueprints/empty.blueprint.md
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
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/commands/empty.commands.md
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
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/intentions/empty.intention.md
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
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/code_analyst.rules.md
RENAMED
|
File without changes
|
|
File without changes
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/error_analyst.rules.md
RENAMED
|
File without changes
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/gherkin_expert.rules.md
RENAMED
|
File without changes
|
|
File without changes
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/product_owner.rules.md
RENAMED
|
File without changes
|
{ara_cli-0.1.9.59 → ara_cli-0.1.9.61}/ara_cli/templates/prompt-modules/rules/python_behave.rules.md
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
|
|
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
|