And we could do the same with others:
airflow-core
task-sdk
tests-common
That would guarantee that those will be pure folders and not accidentally
turn into python packages.
For example now we have this:
task_sdk
\__init_.py
src
\ - airflow
\ sdk
And with implicit namespaces, someone could easily do :
`from task_sdk.src.airflow.sdk`
In fact we are already doing it for task_sdk tests:
from task_sdk.tests.api.test_client import make_client
One reason was conftest.py confusion when we had providers but we should be
able to remove it when we move tests_common.
By having the "root" of each of the sub-project the same as
"pyproject.toml` we got it way easier to import and work on
independently from the whole "airflow" repo.
J.
On Tue, Feb 25, 2025 at 4:53 PM Jarek Potiuk <[email protected]> wrote:
> Actually - after experiencing unrelated error in my PR for "legacy"
> namespace packages -
> https://github.com/apache/airflow/actions/runs/13524796336/job/37793501020?pr=47064#step:6:36
> I have a way better idea:
>
> ```
> tests-common <- folder
> \pyproject.toml
> \src
> \tests_common <- Python package
> ```
>
> tests-common (note `-` not `_`) - is not a valid python package name, but
> it's a perfectly valid folder name. And `from tests_common` will never be
> misinterpreted this way,
>
> On Tue, Feb 25, 2025 at 4:52 PM Ash Berlin-Taylor <[email protected]> wrote:
>
>> Yeah, but why would we confuse things more by putting it in the already
>> messy airflow namespace? That feels like a step backwards to me.
>>
>> > On 25 Feb 2025, at 15:23, Jarek Potiuk <[email protected]> wrote:
>> >
>> >> This is the only bit I’m confused about — what the `airflow.` prefix?
>> >
>> > Precisely to avoid that `from tests_common" will be used from the root
>> of
>> > the project (commonly added to PYTHONPATH).
>> >
>> > The whole discussion is about how to avoid this.
>> >
>> > J.
>> >
>> >
>> >
>> >
>> > On Tue, Feb 25, 2025 at 3:22 PM Ash Berlin-Taylor <[email protected]>
>> wrote:
>> >
>> >> This is the only bit I’m confused about — what the `airflow.` prefix?
>> >>
>> >>> On 25 Feb 2025, at 13:40, Jarek Potiuk <[email protected]> wrote:
>> >>>
>> >>> from airflow.tests_common
>> >>
>> >>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>