kash-shell 0.3.22__tar.gz → 0.3.23__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.
- {kash_shell-0.3.22 → kash_shell-0.3.23}/PKG-INFO +1 -1
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/fetch_url_items.py +17 -9
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/file_storage/file_store.py +3 -3
- kash_shell-0.3.23/src/kash/utils/api_utils/api_retries.py +631 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/api_utils/gather_limited.py +204 -488
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/web_extract.py +1 -1
- kash_shell-0.3.23/tests/kash/utils/api_utils/test_gather_limited.py +879 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/tests/kash/utils/rich_custom/test_multitask_status.py +9 -6
- {kash_shell-0.3.22 → kash_shell-0.3.23}/uv.lock +105 -91
- kash_shell-0.3.22/src/kash/utils/api_utils/api_retries.py +0 -305
- {kash_shell-0.3.22 → kash_shell-0.3.23}/.copier-answers.yml +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/.cursor/rules/general.mdc +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/.cursor/rules/python.mdc +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/.env.template +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/.github/workflows/ci.yml +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/.github/workflows/publish.yml +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/.gitignore +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/LICENSE +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/Makefile +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/README.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/development.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/devtools/generate_readme.xsh +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/devtools/lint.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/devtools/profile_main.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/installation.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/publishing.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/pyproject.toml +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/__main__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/assistant_chat.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/chat.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/format_markdown_template.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/markdownify_html.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/minify_html.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/readability.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/render_as_html.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/show_webpage.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/strip_html.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/summarize_as_bullets.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/tabbed_webpage_config.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/core/tabbed_webpage_generate.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/meta/write_instructions.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/actions/meta/write_new_action.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/basic_file_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/browser_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/debug_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/diff_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/files_command.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/general_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/logs_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/model_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/reformat_command.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/search_command.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/base/show_command.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/extras/parse_uv_lock.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/extras/utils_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/help/assistant_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/help/doc_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/help/help_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/help/logo.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/help/welcome.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/workspace/selection_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/commands/workspace/workspace_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/capture_output.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/colors.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/env_settings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/init.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/lazy_imports.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/logger.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/logger_basic.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/logo.txt +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/server_config.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/settings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/setup.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/suppress_warnings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/config/text_styles.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/all_docs.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/load_actions_info.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/load_api_docs.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/load_help_topics.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/load_source_code.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/api_docs_template.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/assistant_instructions_template.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/readme_template.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/a1_what_is_kash.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/a2_installation.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/a3_getting_started.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/a4_elements.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/a5_tips_for_use_with_other_tools.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/b0_philosophy_of_kash.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/b1_kash_overview.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/b2_workspace_and_file_formats.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/b3_modern_shell_tool_recommendations.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/topics/b4_faq.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/warning.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs/markdown/welcome.md +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs_base/docs_base.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs_base/load_custom_command_info.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs_base/load_faqs.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs_base/load_recipe_snippets.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs_base/recipes/general_system_commands.sh +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs_base/recipes/python_dev_commands.sh +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/docs_base/recipes/tldr_standard_commands.sh +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/embeddings/cosine.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/embeddings/embeddings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/embeddings/text_similarity.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/action_decorators.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/action_exec.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/action_registry.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/combiners.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/command_exec.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/command_registry.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/history.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/importing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/llm_transforms.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/precondition_checks.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/precondition_registry.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/preconditions.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/resolve_args.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/runtime_settings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec/shell_callable_action.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec_model/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec_model/args_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec_model/commands_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec_model/script_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/exec_model/shell_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/file_storage/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/file_storage/item_file_format.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/file_storage/metadata_dirs.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/file_storage/persisted_yaml.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/file_storage/store_cache_warmer.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/file_storage/store_filenames.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/assistant.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/assistant_instructions.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/assistant_output.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/function_param_info.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/help_embeddings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/help_lookups.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/help_pages.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/help_printing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/help_types.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/recommended_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/help/tldr_help.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/clean_headings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/custom_sliding_transforms.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/fuzzy_parsing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/init_litellm.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/llm_api_keys.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/llm_completion.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/llm_features.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/llm_messages.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/llm_names.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/llm_utils/llms.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/local_server/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/local_server/local_server.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/local_server/local_server_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/local_server/local_server_routes.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/local_server/local_url_formatters.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/local_server/port_tools.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/local_server/rich_html_template.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/mcp/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/mcp/mcp_cli.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/mcp/mcp_main.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/mcp/mcp_server_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/mcp/mcp_server_routes.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/mcp/mcp_server_sse.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/mcp/mcp_server_stdio.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/audio_processing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/media_cache.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/media_services.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/media_tools.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/services/local_file_media.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/timestamp_citations.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/transcription_deepgram.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/transcription_format.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/media_base/transcription_whisper.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/actions_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/assistant_response_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/compound_actions_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/concept_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/exec_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/graph_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/items_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/language_list.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/llm_actions_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/media_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/operations_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/params_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/paths_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/model/preconditions_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/completions/completion_scoring.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/completions/completion_types.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/completions/shell_completions.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/file_icons/color_for_format.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/file_icons/nerd_icons.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/input/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/input/input_prompts.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/input/inquirer_settings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/input/param_inputs.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/input/shell_confirm.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/output/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/output/kerm_code_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/output/kerm_codes.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/output/kmarkdown.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/output/shell_formatting.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/output/shell_output.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/shell_main.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/ui/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/ui/shell_results.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/ui/shell_syntax.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/utils/exception_printing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/utils/native_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/utils/shell_function_wrapper.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/shell/version.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/api_utils/cache_requests_limited.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/api_utils/progress_protocol.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/format_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/function_inspect.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/import_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/lazyobject.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/obj_replace.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/parse_docstring.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/parse_key_vals.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/parse_shell_args.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/stack_traces.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/task_stack.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/testing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/type_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/uniquifier.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/url.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/common/url_slice.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/errors.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_formats/chat_format.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/dir_info.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/file_ext.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/file_formats.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/file_formats_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/file_sort_filter.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/file_walk.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/filename_parsing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/ignore_files.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/mtime_cache.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/file_utils/path_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/lang_utils/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/lang_utils/capitalization.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/rich_custom/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/rich_custom/ansi_cell_len.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/rich_custom/multitask_status.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/rich_custom/rich_char_transform.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/rich_custom/rich_indent.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/rich_custom/rich_markdown_fork.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/text_handling/doc_normalization.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/text_handling/escape_html_tags.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/text_handling/markdown_render.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/text_handling/markdown_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/text_handling/markdownify_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/utils/text_handling/unified_diffs.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/canon_url.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/dir_store.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/file_cache_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/file_processing.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/local_file_cache.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/web_extract_justext.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/web_extract_readabilipy.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/web_fetch.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_content/web_page_model.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/simple_webpage.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/tabbed_webpage.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/template_render.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/base_styles.css.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/base_webpage.html.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/components/toc_scripts.js.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/components/toc_styles.css.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/components/tooltip_scripts.js.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/components/tooltip_styles.css.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/content_styles.css.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/explain_view.html.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/item_view.html.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/simple_webpage.html.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/web_gen/templates/tabbed_webpage.html.jinja +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/__init__.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/param_state.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/selections.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/source_items.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/workspace_dirs.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/workspace_output.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/workspace_registry.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/workspaces/workspaces.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/command_nl_utils.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/custom_shell.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/customize_prompt.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/load_into_xonsh.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/shell_load_commands.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/shell_which.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/xonsh_completers.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/xonsh_env.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/xonsh_keybindings.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/xonsh_modern_tools.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xonsh_custom/xonsh_ranking_completer.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xontrib/fnm.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/src/kash/xontrib/kash_extension.py +0 -0
- {kash_shell-0.3.22 → kash_shell-0.3.23}/tests/test_shell.py +0 -0
|
@@ -12,7 +12,11 @@ log = get_logger(__name__)
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def fetch_url_item(
|
|
15
|
-
locator: Url | StorePath,
|
|
15
|
+
locator: Url | StorePath,
|
|
16
|
+
*,
|
|
17
|
+
save_content: bool = True,
|
|
18
|
+
refetch: bool = False,
|
|
19
|
+
cache: bool = True,
|
|
16
20
|
) -> Item:
|
|
17
21
|
from kash.workspaces import current_ws
|
|
18
22
|
|
|
@@ -28,17 +32,21 @@ def fetch_url_item(
|
|
|
28
32
|
else:
|
|
29
33
|
raise InvalidInput(f"Not a URL or URL resource: {fmt_loc(locator)}")
|
|
30
34
|
|
|
31
|
-
return fetch_url_item_content(item, save_content=save_content, refetch=refetch)
|
|
35
|
+
return fetch_url_item_content(item, save_content=save_content, refetch=refetch, cache=cache)
|
|
32
36
|
|
|
33
37
|
|
|
34
|
-
def fetch_url_item_content(
|
|
38
|
+
def fetch_url_item_content(
|
|
39
|
+
item: Item, *, save_content: bool = True, refetch: bool = False, cache: bool = True
|
|
40
|
+
) -> Item:
|
|
35
41
|
"""
|
|
36
42
|
Fetch content and metadata for a URL using a media service if we
|
|
37
43
|
recognize the URL as a known media service. Otherwise, fetch and extract the
|
|
38
44
|
metadata and content from the web page and save it to the URL item.
|
|
39
45
|
|
|
40
|
-
If `save_content` is true, a copy of the content is also saved
|
|
41
|
-
a resource item.
|
|
46
|
+
If `save_content` is true, a copy of the content is also saved to the workspace
|
|
47
|
+
as a resource item.
|
|
48
|
+
|
|
49
|
+
If `cache` is true, the content is also cached in the local file cache.
|
|
42
50
|
|
|
43
51
|
The content item is returned if content was saved. Otherwise, the updated
|
|
44
52
|
URL item is returned.
|
|
@@ -49,7 +57,7 @@ def fetch_url_item_content(item: Item, *, save_content: bool = True, refetch: bo
|
|
|
49
57
|
|
|
50
58
|
ws = current_ws()
|
|
51
59
|
if not refetch and item.title and item.description and item.body:
|
|
52
|
-
log.
|
|
60
|
+
log.info(
|
|
53
61
|
"Already have title, description, and body, will not fetch: %s",
|
|
54
62
|
item.fmt_loc(),
|
|
55
63
|
)
|
|
@@ -59,7 +67,7 @@ def fetch_url_item_content(item: Item, *, save_content: bool = True, refetch: bo
|
|
|
59
67
|
raise InvalidInput(f"No URL for item: {item.fmt_loc()}")
|
|
60
68
|
|
|
61
69
|
url = canonicalize_url(item.url)
|
|
62
|
-
log.
|
|
70
|
+
log.info("No metadata for URL, will fetch: %s", url)
|
|
63
71
|
|
|
64
72
|
# Prefer fetching metadata from media using the media service if possible.
|
|
65
73
|
# Data is cleaner and YouTube for example often blocks regular scraping.
|
|
@@ -73,12 +81,12 @@ def fetch_url_item_content(item: Item, *, save_content: bool = True, refetch: bo
|
|
|
73
81
|
if slice:
|
|
74
82
|
new_url = add_slice_to_url(media_metadata.url, slice)
|
|
75
83
|
if new_url != item.url:
|
|
76
|
-
log.
|
|
84
|
+
log.info("Updated URL from metadata and added slice: %s", new_url)
|
|
77
85
|
url_item.url = new_url
|
|
78
86
|
|
|
79
87
|
url_item = item.merged_copy(url_item)
|
|
80
88
|
else:
|
|
81
|
-
page_data = fetch_page_content(url, refetch=refetch, cache=
|
|
89
|
+
page_data = fetch_page_content(url, refetch=refetch, cache=cache)
|
|
82
90
|
url_item = item.new_copy_with(
|
|
83
91
|
title=page_data.title or item.title,
|
|
84
92
|
description=page_data.description or item.description,
|
|
@@ -289,7 +289,7 @@ class FileStore(Workspace):
|
|
|
289
289
|
if self.exists(default_path):
|
|
290
290
|
old_item = self.load(default_path)
|
|
291
291
|
if old_item.item_id() == item_id:
|
|
292
|
-
log.
|
|
292
|
+
log.info(
|
|
293
293
|
"Item with the same id already saved (disk check):\n%s",
|
|
294
294
|
fmt_lines([fmt_loc(default_path), item_id]),
|
|
295
295
|
)
|
|
@@ -297,7 +297,7 @@ class FileStore(Workspace):
|
|
|
297
297
|
self.id_map[item_id] = default_path
|
|
298
298
|
return default_path
|
|
299
299
|
if store_path and self.exists(store_path):
|
|
300
|
-
log.
|
|
300
|
+
log.info(
|
|
301
301
|
"Item with the same id already saved (disk check):\n%s",
|
|
302
302
|
fmt_lines([fmt_loc(store_path), item_id]),
|
|
303
303
|
)
|
|
@@ -536,7 +536,7 @@ class FileStore(Workspace):
|
|
|
536
536
|
item = Item(item_type, url=url, format=Format.url)
|
|
537
537
|
previous_store_path = self.find_by_id(item)
|
|
538
538
|
if previous_store_path and not reimport:
|
|
539
|
-
log.
|
|
539
|
+
log.info(
|
|
540
540
|
"Workspace already has this URL:\n%s",
|
|
541
541
|
fmt_lines([fmt_loc(previous_store_path), url]),
|
|
542
542
|
)
|