mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-05-06 01:32:36 +00:00
refactor(core): extract crewai-core for shared utilities and standalone CLI
- New lib/crewai-core/ package: version, paths, constants, lock_store, user_data,
printer, telemetry. Pure leaf — depends only on appdirs/portalocker/rich/otel.
- crewai now depends on crewai-core; old crewai.utilities.{version,paths,printer,
lock_store} and the user-data block of events/listeners/tracing/utils.py become
one-shot DeprecationWarning shims that re-export from crewai_core.
- crewai-cli drops its hard dep on crewai and depends only on crewai-core. CLI
imports for telemetry/version/printer/constants now point at crewai_core.
- tools/main.py lazy-imports project_utils + get_user_id; the publish/login
subcommands print a friendly "requires crewai" error if it's missing.
- crewai-cli is now genuinely standalone: 'crewai --help', 'version', 'login',
'config', 'traces', 'create', 'template' all work without crewai installed.
- 351 CLI tests + 9 crewai-core smoke tests + crewai's full mypy (471 files) clean.
This commit is contained in:
@@ -184,11 +184,11 @@ def test_publish_when_not_in_sync(mock_is_synced, mock_fetch, capsys, tool_comma
|
||||
@patch("crewai_cli.plus_api.PlusAPI.publish_tool")
|
||||
@patch("crewai_cli.tools.main.git.Repository.is_synced", return_value=False)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_available_exports",
|
||||
"crewai.utilities.project_utils.extract_available_exports",
|
||||
return_value=[{"name": "SampleTool"}],
|
||||
)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_tools_metadata",
|
||||
"crewai.utilities.project_utils.extract_tools_metadata",
|
||||
return_value=[{"name": "SampleTool", "humanized_name": "sample_tool", "description": "A sample tool", "run_params_schema": {}, "init_params_schema": {}, "env_vars": []}],
|
||||
)
|
||||
@patch("crewai_cli.tools.main.ToolCommand._print_current_organization")
|
||||
@@ -250,11 +250,11 @@ def test_publish_when_not_in_sync_and_force(
|
||||
@patch("crewai_cli.plus_api.PlusAPI.publish_tool")
|
||||
@patch("crewai_cli.tools.main.git.Repository.is_synced", return_value=True)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_available_exports",
|
||||
"crewai.utilities.project_utils.extract_available_exports",
|
||||
return_value=[{"name": "SampleTool"}],
|
||||
)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_tools_metadata",
|
||||
"crewai.utilities.project_utils.extract_tools_metadata",
|
||||
return_value=[{"name": "SampleTool", "humanized_name": "sample_tool", "description": "A sample tool", "run_params_schema": {}, "init_params_schema": {}, "env_vars": []}],
|
||||
)
|
||||
def test_publish_success(
|
||||
@@ -311,11 +311,11 @@ def test_publish_success(
|
||||
)
|
||||
@patch("crewai_cli.plus_api.PlusAPI.publish_tool")
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_available_exports",
|
||||
"crewai.utilities.project_utils.extract_available_exports",
|
||||
return_value=[{"name": "SampleTool"}],
|
||||
)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_tools_metadata",
|
||||
"crewai.utilities.project_utils.extract_tools_metadata",
|
||||
return_value=[{"name": "SampleTool", "humanized_name": "sample_tool", "description": "A sample tool", "run_params_schema": {}, "init_params_schema": {}, "env_vars": []}],
|
||||
)
|
||||
def test_publish_failure(
|
||||
@@ -357,11 +357,11 @@ def test_publish_failure(
|
||||
)
|
||||
@patch("crewai_cli.plus_api.PlusAPI.publish_tool")
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_available_exports",
|
||||
"crewai.utilities.project_utils.extract_available_exports",
|
||||
return_value=[{"name": "SampleTool"}],
|
||||
)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_tools_metadata",
|
||||
"crewai.utilities.project_utils.extract_tools_metadata",
|
||||
return_value=[{"name": "SampleTool", "humanized_name": "sample_tool", "description": "A sample tool", "run_params_schema": {}, "init_params_schema": {}, "env_vars": []}],
|
||||
)
|
||||
def test_publish_api_error(
|
||||
@@ -404,11 +404,11 @@ def test_publish_api_error(
|
||||
@patch("crewai_cli.plus_api.PlusAPI.publish_tool")
|
||||
@patch("crewai_cli.tools.main.git.Repository.is_synced", return_value=True)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_available_exports",
|
||||
"crewai.utilities.project_utils.extract_available_exports",
|
||||
return_value=[{"name": "SampleTool"}],
|
||||
)
|
||||
@patch(
|
||||
"crewai_cli.tools.main.extract_tools_metadata",
|
||||
"crewai.utilities.project_utils.extract_tools_metadata",
|
||||
side_effect=Exception("Failed to extract metadata"),
|
||||
)
|
||||
def test_publish_metadata_extraction_failure_continues_with_warning(
|
||||
|
||||
Reference in New Issue
Block a user