google / google/adk-python

Use an explicit re-export in __init__.py generated by adk create

未关闭
#6,648 1 条评论 0 个 reaction 已指派 1 人 已被 @sanketpatil06 认领 在 GitHub 查看
core needs review
主要语言
Python
星标
21.5k
派生
4k
平均合并
1 天 14 小时
30 天内合并 PR
37

描述

## 🔴 Required Information

### Is your feature request related to a specific problem?
Yes. For code-based agents, `adk create` currently generates the following `__init__.py`:

```python
from . import agent
```

Linters such as Ruff can report this as an unused import (`F401`) in downstream projects. The import is intentional because it exposes and loads the agent module, but the generated code does not express that intent explicitly.

### Describe the Solution You'd Like
Generate an explicit re-export by using a redundant alias:

```python
from . import agent as agent
```

This preserves the existing runtime behavior while making the public re-export explicit to linters.

### Impact on your work
Newly generated agents would pass common lint configurations without requiring users to modify generated code or add project-specific suppressions. It would also make the intent of the package initializer clearer.

There is no specific deadline.

### Willingness to contribute
Yes. I am interested in submitting a PR.

---

## 🟡 Recommended Information

### Describe Alternatives You've Considered

- Add `agent` to `__all__`.
- Add a `# noqa: F401` suppression.
- Configure linters to ignore `F401` in every `__init__.py`.

These alternatives work, but `from . import agent as agent` is a concise explicit re-export and is recommended by Ruff for intentional imports in package initializers.
https://docs.astral.sh/ruff/rules/unused-import/#why-is-this-bad

### Proposed API / Implementation
Update the code scaffold template from:

```python
from . import agent
```

to:

```python
from . import agent as agent
```

A unit test should assert the generated `__init__.py` content.

### Additional Context
The ADK repository currently ignores `F401` for its own `__init__.py` files, but generated agent projects do not necessarily inherit that configuration. The scaffold should be lint-friendly independently of the ADK repository's lint settings.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。