chore: Use attr.define instead of attr.s#3776
Merged
mobuchowski merged 1 commit intomainfrom Jun 18, 2025
Merged
Conversation
1962236 to
96761de
Compare
Member
|
@kacpermuda should we just move to |
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #3776 +/- ##
==========================================
+ Coverage 85.63% 85.66% +0.02%
==========================================
Files 57 57
Lines 3689 3689
==========================================
+ Hits 3159 3160 +1
+ Misses 530 529 -1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
Author
|
Yeah, I can probably make the switch in the entire codebase and then make a pre-commit that rejects the presence of |
96761de to
9080d56
Compare
integration/common/openlineage/common/provider/great_expectations/results.py
Show resolved
Hide resolved
348fe1c to
af4b292
Compare
af4b292 to
377604a
Compare
Signed-off-by: Kacper Muda <mudakacper@gmail.com>
377604a to
5fae7e7
Compare
mobuchowski
approved these changes
Jun 18, 2025
jakub-moravec
pushed a commit
to jakub-moravec/OpenLineage
that referenced
this pull request
Jun 19, 2025
Signed-off-by: Kacper Muda <mudakacper@gmail.com>
marccampa
pushed a commit
to marccampa/OpenLineage-Collibra
that referenced
this pull request
Jun 26, 2025
Signed-off-by: Kacper Muda <mudakacper@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com>
mobuchowski
added a commit
that referenced
this pull request
Jul 3, 2025
* Update consumers.tsx * Add files via upload * Update consumers.tsx * Add files via upload * Update consumers.tsx * Update consumers.tsx * Update consumers.tsx * Update consumers.tsx * Delete Collibra-Logo-RGB.png * Update consumers.tsx * [Flink] Do not hide OpenLineage config parsing errors (#3724) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Update consumers.tsx Signed-off-by: marccampa <marc.campabadal@collibra.com> * Add files via upload Signed-off-by: marccampa <marc.campabadal@collibra.com> * Update consumers.tsx Signed-off-by: marccampa <marc.campabadal@collibra.com> * Add files via upload Signed-off-by: marccampa <marc.campabadal@collibra.com> * Update consumers.tsx Signed-off-by: marccampa <marc.campabadal@collibra.com> * [DBT] Add processing_engine facet (#3725) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * java: prevent original events from being mutated in TransformTransport (#3728) - Add deepCopy utility method to OpenLineageClientUtils for safe object cloning - Modify TransformTransport to create deep copies of events before transformation Signed-off-by: Jakub Dardzinski <kuba0221@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Flink] Add processing_engine facet (#3726) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Add Github stars statistics to Readme (#3730) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [DBT] Document supported adapters (#3729) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Prettify Spark JSON event examples (#3740) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Prettify Flink JSON event examples (#3742) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Prettify Airflow JSON event examples (#3741) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Prettify DBT JSON event examples (#3743) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Restyle cardmedia. (#3733) Signed-off-by: merobi-hub <merobi@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * dbt-ol should not error on job complete if there is no start event (#3749) Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Flink] Add facet with Flink jobId (#3744) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Update consumers.tsx Signed-off-by: marccampa <marc.campabadal@collibra.com> * Update consumers.tsx Signed-off-by: marccampa <marc.campabadal@collibra.com> * [DBT] Initial support for Clickhouse (#3739) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [SPEC] Add contentType to documentation facet (#3748) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [spark] Update Spark 4 dependency to 4.0.0 (remove -preview1 suffix) (#3751) Signed-off-by: Dominik Dębowczyk <dominik.debowczyk@getindata.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * filter temp inner jobs for bigquery indirect mode (#3722) Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Docs] Add documentation for some facets (#3752) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Tweak the Maven signing config (#3069) This tweak allows Gradle to default on using values set in `~/.gradle/gradle.properties` Signed-off-by: Julien Phalip <jphalip@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Run prettier on .json files (#3750) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * remove native proxy (#3680) * remove native proxy Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> # Conflicts: # proxy/backend/gradle.properties * remove leftover proxy gradle reference Signed-off-by: Kacper Muda <mudakacper@gmail.com> --------- Signed-off-by: Kacper Muda <mudakacper@gmail.com> Co-authored-by: Kacper Muda <mudakacper@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [DBT] Add DbtRun facet (#3738) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Remove Airflow < 2.5.0 support (#3669) Signed-off-by: Kacper Muda <mudakacper@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * nit: fix supported airflow versions (#3755) Signed-off-by: Kacper Muda <mudakacper@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Java] Speedup generateNewUUID (#3754) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [DBT] Use adapter rows_affected as outputStatistics (#3731) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * fix variables in docs for setting of root parents in spark config (#3761) Signed-off-by: Humzah Kiani <humzah.kiani@affirm.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [spark] Add support for Big Query Metastore catalog type (#3760) Signed-off-by: Dominik Dębowczyk <dominik.debowczyk@getindata.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Fix visibility of GcpLineageTransportConfig.Mode (#3762) * Register GCP common job facet Signed-off-by: Natalia Gorchakova <ngorchakova@google.com> * Add ACCEPT_CASE_INSENSITIVE_ENUMS for ObjectMapper to ensure that lower and upper case enum values are accepted for config Signed-off-by: Natalia Gorchakova <ngorchakova@google.com> * Add ACCEPT_CASE_INSENSITIVE_ENUMS for ObjectMapper to ensure that lower and upper case enum values are accepted for config Signed-off-by: Natalia Gorchakova <ngorchakova@google.com> * Add ACCEPT_CASE_INSENSITIVE_ENUMS for ObjectMapper to ensure that lower and upper case enum values are accepted for config Signed-off-by: Natalia Gorchakova <ngorchakova@google.com> * Add ACCEPT_CASE_INSENSITIVE_ENUMS for ObjectMapper to ensure that lower and upper case enum values are accepted for config Signed-off-by: Natalia Gorchakova <ngorchakova@google.com> --------- Signed-off-by: Natalia Gorchakova <ngorchakova@google.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Update consumers.tsx Signed-off-by: marccampa <marc.campabadal@collibra.com> * Delete Collibra-Logo-RGB.png Signed-off-by: marccampa <marc.campabadal@collibra.com> * update httpConfig Headers and TimeoutInMillis property values (#3767) Signed-off-by: Nidhin Varghese <Nidhin.Varghese1@ibm.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [java] Add log if load from yaml fails (#3766) Signed-off-by: Fiore Mario Vitale <mvitale@redhat.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * smart debug facet (#3715) Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Spark] Fix missing table path in InsertIntoHadoopFsRelationCommand (#3773) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Github: mark Hive PRs with proper label (#3778) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * fix configurable test failin in CI (#3782) Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Column level lineage for jdbc queries load (#3763) * test column level lineage for jdbc queries load Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> * refactor jdbc lineage visitor Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> --------- Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * chore: Use attr.define instead of attr.s (#3776) Signed-off-by: Kacper Muda <mudakacper@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Hive] Add job sql facet (#3777) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * build(deps): bump the integration-sql group (#3704) Updates the requirements on [pyo3](https://github.com/pyo3/pyo3) and [pyo3-build-config](https://github.com/pyo3/pyo3) to permit the latest version. Updates `pyo3` to 0.25.0 - [Release notes](https://github.com/pyo3/pyo3/releases) - [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md) - [Commits](PyO3/pyo3@v0.24.0...v0.25.0) Updates `pyo3-build-config` to 0.25.0 - [Release notes](https://github.com/pyo3/pyo3/releases) - [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md) - [Commits](PyO3/pyo3@v0.24.0...v0.25.0) --- updated-dependencies: - dependency-name: pyo3 dependency-version: 0.25.0 dependency-type: direct:production dependency-group: integration-sql - dependency-name: pyo3-build-config dependency-version: 0.25.0 dependency-type: direct:production dependency-group: integration-sql ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Hive] Add hive_query facet (#3781) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Website: correct Node version in README (#3783) * Fix node version in website readme. Signed-off-by: merobi-hub <merobi@gmail.com> * Misc fixes. Signed-off-by: merobi-hub <merobi@gmail.com> --------- Signed-off-by: merobi-hub <merobi@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [spark] Disable module metadata file generation (#3785) Signed-off-by: Dominik Dębowczyk <dominik.debowczyk@getindata.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Add Debezium to producers (#3787) Signed-off-by: Fiore Mario Vitale <mvitale@redhat.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * build(deps): bump requests from 2.32.0 to 2.32.4 in /dev (#3759) Bumps [requests](https://github.com/psf/requests) from 2.32.0 to 2.32.4. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](psf/requests@v2.32.0...v2.32.4) --- updated-dependencies: - dependency-name: requests dependency-version: 2.32.4 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Hive] Add hive_session facet (#3786) * [Hive] Add hive_session facet Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> * [Hive] Record hive session creation time Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> --------- Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * changelog for release 1.34.0 (#3790) Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Prepare for release 1.34.0 Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Prepare next development version 1.35.0-SNAPSHOT Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * chore: Fix changelog item authors (#3791) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Hive] Add jobType facet (#3789) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Website: update README (#3801) * Update website readme. Signed-off-by: merobi-hub <merobi@gmail.com> * Fix code blocks. Signed-off-by: merobi-hub <merobi@gmail.com> * Fix wordiness. Signed-off-by: merobi-hub <merobi@gmail.com> * More details in deployment sec. Signed-off-by: merobi-hub <merobi@gmail.com> * Continued. Signed-off-by: merobi-hub <merobi@gmail.com> * Continued. Signed-off-by: merobi-hub <merobi@gmail.com> * Continued. Signed-off-by: merobi-hub <merobi@gmail.com> --------- Signed-off-by: merobi-hub <merobi@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * fix spotless in hive integration (#3806) Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * run Java SQL tests (#3808) Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [Hive] Add docker-compose example for local testing (#3800) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * [DBT] Make invocation_id field optional (#3796) Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Remove empty Flink page. (#3810) Signed-off-by: Jakub Dardzinski <kuba0221@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Flink integration: Fixed a bug incorrectly loading configuration in Event Emitter (#3799) * Flink integration: Fixed a bug incorrectly loading configuration in Event Emitter, resulting in "disabled facets" feature not working (and probably others as well). Signed-off-by: Jan Siekierski <jan.siekierski@kentra.io> * Flink integration: Fixed a bug incorrectly loading configuration in Event Emitter, resulting in "disabled facets" feature not working (and probably others as well). Signed-off-by: Jan Siekierski <jan.siekierski@kentra.io> --------- Co-authored-by: Jan Siekierski <jan.siekierski@kentra.io> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Website: add missing guidance to readme (#3807) * Add missing guidance to readme. Signed-off-by: merobi-hub <merobi@gmail.com> * Img file formats. Signed-off-by: merobi-hub <merobi@gmail.com> --------- Signed-off-by: merobi-hub <merobi@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * build(deps): bump urllib3 from 1.26.19 to 2.5.0 in /dev (#3794) Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.19 to 2.5.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](urllib3/urllib3@1.26.19...2.5.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.5.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * dbt: fix log path, more precise file reading (#3793) Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Spark: fix & upgrade databricks test (#3811) Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Formalize dataset naming (#3775) * Formalize dataset naming --------- Signed-off-by: Dominik Dębowczyk <dominik.debowczyk@getindata.com> Signed-off-by: marccampa <marc.campabadal@collibra.com> * Update consumers.tsx Signed-off-by: marccampa <marc.campabadal@collibra.com> * Apply prettier fix. Signed-off-by: merobi-hub <merobi@gmail.com> --------- Signed-off-by: Martynov Maxim <martinov_m_s_@mail.ru> Signed-off-by: marccampa <marc.campabadal@collibra.com> Signed-off-by: Jakub Dardzinski <kuba0221@gmail.com> Signed-off-by: merobi-hub <merobi@gmail.com> Signed-off-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Signed-off-by: Dominik Dębowczyk <dominik.debowczyk@getindata.com> Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com> Signed-off-by: Julien Phalip <jphalip@gmail.com> Signed-off-by: Kacper Muda <mudakacper@gmail.com> Signed-off-by: Humzah Kiani <humzah.kiani@affirm.com> Signed-off-by: Natalia Gorchakova <ngorchakova@google.com> Signed-off-by: Nidhin Varghese <Nidhin.Varghese1@ibm.com> Signed-off-by: Fiore Mario Vitale <mvitale@redhat.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Maxim Martynov <martinov_m_s_@mail.ru> Co-authored-by: Jakub Dardzinski <kuba0221@gmail.com> Co-authored-by: Michael Robinson <68482867+merobi-hub@users.noreply.github.com> Co-authored-by: Maciej Obuchowski <obuchowski.maciej@gmail.com> Co-authored-by: ddebowczyk92 <ddebowczyk92@users.noreply.github.com> Co-authored-by: pawel.leszczynski <leszczynski.pawel@gmail.com> Co-authored-by: Julien Phalip <jphalip@gmail.com> Co-authored-by: Kacper Muda <mudakacper@gmail.com> Co-authored-by: Humzah Kiani <89326566+humzahkiani@users.noreply.github.com> Co-authored-by: ngorchakova <ngorchakova@google.com> Co-authored-by: Nidhin Varghese <nidhin.varghese1@ibm.com> Co-authored-by: Fiore Mario Vitale <mvitale86@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Fiore Mario Vitale <mvitale@redhat.com> Co-authored-by: Maciej Obuchowski <maciej.obuchowski@datadoghq.com> Co-authored-by: Jan Siekierski <pan.siekierski@gmail.com> Co-authored-by: Jan Siekierski <jan.siekierski@kentra.io> Co-authored-by: merobi-hub <merobi@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When facets are inheriting from BaseFacet V2, that is using @attr.define, but the child facet definition is made using @attr.s, after copying the child facet the attributes are not present in the copy. This can be an issue, as in the TransformTransport, we are copying the event before transformation. I've looked through the codebase, and only some DBT and Airflow Facets are defined in this
mixedway. It's probably an issue about the slots and get/set state auto generation in attrs.Solution
There is no easier solution that simply not mixing the attr decorators. I've tried also copying the object in a generic way, that would handle that mix, but ended up in rabbit hole, creating more and more complex solution. I think the good approach here is to keep the facets that we own tidy and not mixed up and not try to solve all the possible combinations. I think also the TransformTransport is the only one using copy, so the impact is relatively low. Copying works fine for v1 classes and v2 classes, it's only the mixing on inheritance that's causing the problem, so there is no need to clean up all the classes or use attr.define everywhere for now.
EDIT: After review, we replaced @attr.s with @attr.define in the entire codebase and added a pre-commit to check that.
One-line summary:
chore: Use attr.define instead of attr.s
Checklist
SPDX-License-Identifier: Apache-2.0
Copyright 2018-2025 contributors to the OpenLineage project