### Apache Airflow version

2.7.0

### What happened

When trying to install SodaCore on Airflow 2.7, the following error is received due to a conflict with `opentelemetry-api`.

```
ERROR: Cannot install apache-airflow==2.7.0 and soda-core==3.0.48 because these package versions have conflicting dependencies.

The conflict is caused by:
    apache-airflow 2.7.0 depends on opentelemetry-api==1.15.0
    soda-core 3.0.48 depends on opentelemetry-api~=1.16.0
```

SodaCore has depended on `opentelemetry-api~=1.16.0` ever since v[3.0.24](https://github.com/sodadata/soda-core/releases/tag/v3.0.24).

### What you think should happen instead

Airflow needs to support versions of `opentelemetry-api` 1.16.x.

### How to reproduce

Simply running the following commands to install the two packages should reproduce the error.

```
$ python3 -m venv /tmp/soda                                                                                         
$ /tmp/soda/bin/pip install apache-airflow==2.7.0 soda-core-bigquery==3.0.48
```

### Operating System

n/a

### Versions of Apache Airflow Providers

_No response_

### Deployment

Virtualenv installation

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

try:
        the_hash = hashlib.new("blake2b")
        the_hash.update((sources / "dev" / "breeze" / "setup.py").read_bytes())
        the_hash.update((sources / "dev" / "breeze" / "setup.cfg").read_bytes())
        the_hash.update((sources / "dev" / "breeze" / "pyproject.toml").read_bytes())
        return the_hash.hexdigest()
    except FileNotFoundError as e:
        return f"Missing file {e.filename}"
def get_installation_sources_config_metadata_hash() -> str:
    """
    Retrieves hash of setup.py and setup.cfg files from the source of installation of Breeze.
    This is used in order to determine if we need to upgrade Breeze, because some
    setup files changed. Blake2b algorithm will not be flagged by security checkers
    as insecure algorithm (in Python 3.9 and above we can use `usedforsecurity=False`
    to disable it, but for now it's better to use more secure algorithms.
    """
    installation_sources = get_installation_airflow_sources()
    if installation_sources is None:
        return "NOT FOUND"
    return get_sources_setup_metadata_hash(installation_sources)
def get_used_sources_setup_metadata_hash() -> str: