Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/build-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ jobs:
steps:
- uses: actions/checkout@v5
- name: Install uv
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v10.0.1
with:
prune-cache: true
- name: Build ${{ matrix.component }}
run: |
if [ "${{ matrix.component }}" = "gooddata-api-client" ]; then
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/bump-version.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ jobs:
token: ${{ secrets.TOKEN_GITHUB_YENKINS_ADMIN }} # needed to push to the protected branch

- name: Install uv
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v10.0.1
with:
prune-cache: true

- name: Install dependencies
run: |
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/dev-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ jobs:
with:
ref: ${{ inputs.BRANCH_NAME }}
- name: Install uv
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v10.0.1
with:
prune-cache: true
- name: Install dependencies
run: |
uv sync --only-group release --locked
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/rw-python-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v5
- name: Set up python 3.14
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v10.0.1
with:
prune-cache: true
python-version: 3.14
- name: Install dependencies
run: |
Expand All @@ -54,8 +55,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v5
- name: Set up python 3.14
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v10.0.1
with:
prune-cache: true
python-version: 3.14
- name: Install dependencies
run: |
Expand All @@ -70,7 +72,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v5
- name: Set up python 3.14
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v10.0.1
with:
prune-cache: true
- name: Install dependencies
run: |
uv sync --group type --locked
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/staging-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@ jobs:
ref: ${{ steps.pr.outputs.sha || github.event.pull_request.head.sha || github.sha }}

- name: Set up Python
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v10.0.1
Comment thread
hkad98 marked this conversation as resolved.
with:
prune-cache: true
python-version: '3.14'
# self-hosted runners are ephemeral and the default 'auto' only caches
# on GitHub-hosted runners, so enable the cache explicitly
Expand Down
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
exclude: (gooddata-api-client|.*\.snapshot\..*|.openapi-generator/custom_templates)
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
args: [ '--maxkb=890' ]
- id: check-case-conflict
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.20
rev: v0.16.6
hooks:
# Run the linter.
- id: ruff
Expand All @@ -35,6 +35,6 @@ repos:
hooks:
- id: gitlint
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.12.5
rev: 0.12.9
hooks:
- id: uv-lock
10 changes: 5 additions & 5 deletions packages/gooddata-dbt/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ requires-python = ">=3.10"
dependencies = [
"gooddata-sdk~=1.74.0",
"pyyaml>=6.0",
"attrs>=21.4.0,<=24.2.0",
"cattrs>=22.1.0,<=24.1.1",
"attrs>=21.4.0,<=26.1.0",
"cattrs>=22.1.0,<=26.1.0",
"requests>=2.33.0,<3.0.0",
"tabulate~=0.8.10",
"tabulate>=0.8.10,<1.0.0",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
]
classifiers = [
"Development Status :: 4 - Beta",
Expand All @@ -36,8 +36,8 @@ gooddata-dbt = "gooddata_dbt.dbt_plugin:main"

[dependency-groups]
test = [
"pytest~=8.3.4",
"pytest-cov~=6.0.0",
"pytest~=9.1.1",
"pytest-cov~=7.1.0",
"pytest-json-report==1.5.0",
]

Expand Down
4 changes: 2 additions & 2 deletions packages/gooddata-eval/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ dev = [
"pytest>=8.3.5",
]
test = [
"pytest~=8.3.4",
"pytest-cov~=6.0.0",
"pytest~=9.1.1",
"pytest-cov~=7.1.0",
"pytest-json-report==1.5.0",
"pytest-mock>=3.14.0",
]
Expand Down
2 changes: 1 addition & 1 deletion packages/gooddata-fdw/docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Sphinx~=5.1.1
Sphinx~=9.1.0
pallets-sphinx-themes
sphinx-rtd-theme
# Dependencies to the other projects in the repository
Expand Down
8 changes: 4 additions & 4 deletions packages/gooddata-fdw/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@ Source = "https://github.com/gooddata/gooddata-python-sdk"

[dependency-groups]
test = [
"pytest~=8.3.4",
"pytest-cov~=6.0.0",
"pytest~=9.1.1",
"pytest-cov~=7.1.0",
"pytest-json-report==1.5.0",
"vcrpy~=8.2.1",
"vcrpy~=8.3.0",
# TODO - Bump the version together with bumping the version of openapi generator
"urllib3~=2.6.0",
"urllib3~=2.7.0",
"pyyaml",
"tests_support",
]
Expand Down
6 changes: 3 additions & 3 deletions packages/gooddata-flexconnect/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ dependencies = [
"gooddata-sdk~=1.74.0",
"orjson>=3.9.15,<4.0.0",
"pyarrow>=16.1.0",
"structlog>=24.0.0,<25.0.0",
"structlog>=24.0.0,<=26.1.0",
]
classifiers = [
"Development Status :: 4 - Beta",
Expand All @@ -56,8 +56,8 @@ Source = "https://github.com/gooddata/gooddata-python-sdk"
[dependency-groups]
test = [
"jsonschema~=4.23.0",
"pytest~=8.3.4",
"pytest-cov~=6.0.0",
"pytest~=9.1.1",
"pytest-cov~=7.1.0",
"pytest-json-report==1.5.0",
]

Expand Down
8 changes: 4 additions & 4 deletions packages/gooddata-flight-server/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ dependencies = [
"opentelemetry-api>=1.24.0,<=2.0.0",
"opentelemetry-sdk>=1.24.0,<=2.0.0",
"orjson>=3.8.5,<4.0.0",
"prometheus-client~=0.20.0",
"prometheus-client~=0.26.0",
"pyarrow>=16.1.0",
"readerwriterlock~=1.0.9",
"structlog>=24.0.0,<25.0.0",
"structlog>=24.0.0,<=26.1.0",
]
classifiers = [
"Development Status :: 4 - Beta",
Expand All @@ -60,8 +60,8 @@ gooddata-flight-server = "gooddata_flight_server.cli:server_cli"

[dependency-groups]
test = [
"pytest~=8.3.4",
"pytest-cov~=6.0.0",
"pytest~=9.1.1",
"pytest-cov~=7.1.0",
"pytest-json-report==1.5.0",
]

Expand Down
2 changes: 1 addition & 1 deletion packages/gooddata-pandas/docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Sphinx~=5.1.1
Sphinx~=9.1.0
pallets-sphinx-themes
sphinx-rtd-theme
# Dependencies to the other projects in the repository
Expand Down
12 changes: 6 additions & 6 deletions packages/gooddata-pandas/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,14 @@ Source = "https://github.com/gooddata/gooddata-python-sdk"

[dependency-groups]
test = [
"pytest~=8.3.4",
"pytest-cov~=6.0.0",
"pytest~=9.1.1",
"pytest-cov~=7.1.0",
"pytest-json-report==1.5.0",
"pytest-snapshot==0.9.0",
"pytest-order~=1.3.0",
"vcrpy~=8.2.1",
"urllib3~=2.6.0",
"python-dotenv~=1.0.0",
"pytest-order~=1.5.0",
"vcrpy~=8.3.0",
"urllib3~=2.7.0",
"python-dotenv~=1.2.3",
"pyyaml",
"tests_support",
"pyarrow>=23.0.1",
Expand Down
8 changes: 2 additions & 6 deletions packages/gooddata-pipelines/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,10 @@ dependencies = [
"types-pyyaml (>=6.0.12.20250326,<7.0.0)",
]

[tool.ruff]
exclude = [".venv"]
line-length = 80

[dependency-groups]
test = [
"pytest~=8.3.4",
"pytest-cov~=6.0.0",
"pytest~=9.1.1",
"pytest-cov~=7.1.0",
"pytest-json-report==1.5.0",
"pytest-mock>=3.14.0,<4.0.0",
"moto>=5.1.6,<6.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@ def _get_url(self, endpoint: str) -> str:
"""
return f"{self.base_url}{endpoint}"

def get_all_workspace_data_filters(
self, workspace_id: str
) -> requests.Response:
def get_all_workspace_data_filters(self, workspace_id: str) -> requests.Response:
"""Gets all workspace data filters for a given workspace.

Args:
Expand All @@ -52,9 +50,7 @@ def get_all_workspace_data_filters(
url = f"/entities/workspaces/{workspace_id}/workspaceDataFilters"
return self._get(url)

def get_workspace_data_filter_settings(
self, workspace_id: str
) -> requests.Response:
def get_workspace_data_filter_settings(self, workspace_id: str) -> requests.Response:
"""Gets all workspace data filter settings for a given workspace.

Args:
Expand All @@ -66,9 +62,7 @@ def get_workspace_data_filter_settings(
url = f"/entities/workspaces/{workspace_id}/workspaceDataFilterSettings?include=workspaceDataFilters"
return self._get(url)

def get_workspace_data_filter_setting(
self, workspace_id: str, wdf_id: str
) -> requests.Response:
def get_workspace_data_filter_setting(self, workspace_id: str, wdf_id: str) -> requests.Response:
"""Gets a specific workspace data filter setting.

Args:
Expand Down Expand Up @@ -119,9 +113,7 @@ def post_workspace_data_filter_setting(
requests.Response: The response from the server containing the
created workspace data filter setting.
"""
endpoint = (
f"/entities/workspaces/{workspace_id}/workspaceDataFilterSettings/"
)
endpoint = f"/entities/workspaces/{workspace_id}/workspaceDataFilterSettings/"
return self._post(
endpoint,
wdf_setting,
Expand Down Expand Up @@ -153,9 +145,7 @@ def get_user_data_filters(self, workspace_id: str) -> requests.Response:
endpoint = f"/layout/workspaces/{workspace_id}/userDataFilters"
return self._get(endpoint)

def put_user_data_filters(
self, workspace_id: str, user_data_filters: dict[str, Any]
) -> requests.Response:
def put_user_data_filters(self, workspace_id: str, user_data_filters: dict[str, Any]) -> requests.Response:
"""Puts the user data filters into GoodData workspace."""
headers = {**self.headers, "Content-Type": "application/json"}
return self._put(
Expand All @@ -166,25 +156,17 @@ def put_user_data_filters(

def get_automations(self, workspace_id: str) -> requests.Response:
"""Gets the automations for a given workspace."""
endpoint = (
f"/entities/workspaces/{workspace_id}/automations?include=ALL"
)
endpoint = f"/entities/workspaces/{workspace_id}/automations?include=ALL"
return self._get(endpoint)

def post_automation(
self, workspace_id: str, automation: dict[str, Any]
) -> requests.Response:
def post_automation(self, workspace_id: str, automation: dict[str, Any]) -> requests.Response:
"""Posts an automation for a given workspace."""
endpoint = f"/entities/workspaces/{workspace_id}/automations"
return self._post(endpoint, automation)

def delete_automation(
self, workspace_id: str, automation_id: str
) -> requests.Response:
def delete_automation(self, workspace_id: str, automation_id: str) -> requests.Response:
"""Deletes an automation for a given workspace."""
endpoint = (
f"/entities/workspaces/{workspace_id}/automations/{automation_id}"
)
endpoint = f"/entities/workspaces/{workspace_id}/automations/{automation_id}"
return self._delete(endpoint)

def get_all_metrics(self, workspace_id: str) -> requests.Response:
Expand All @@ -199,9 +181,7 @@ def get_all_metrics(self, workspace_id: str) -> requests.Response:
headers = {**self.headers, "X-GDC-VALIDATE-RELATIONS": "true"}
return self._get(endpoint, headers=headers)

def get_all_visualization_objects(
self, workspace_id: str
) -> requests.Response:
def get_all_visualization_objects(self, workspace_id: str) -> requests.Response:
"""Get all visualizations from the specified workspace.

Args:
Expand Down Expand Up @@ -230,9 +210,7 @@ def get_profile(self) -> requests.Response:
endpoint = "/profile"
return self._get(endpoint)

def _get(
self, endpoint: str, headers: dict[str, str] | None = None
) -> requests.Response:
def _get(self, endpoint: str, headers: dict[str, str] | None = None) -> requests.Response:
"""Sends a GET request to the server.

Args:
Expand Down Expand Up @@ -267,9 +245,7 @@ def _post(
request_headers = headers if headers else self.headers
data_json = json.dumps(data)

return requests.post(
url, data=data_json, headers=request_headers, timeout=TIMEOUT
)
return requests.post(url, data=data_json, headers=request_headers, timeout=TIMEOUT)

def _put(
self,
Expand All @@ -291,9 +267,7 @@ def _put(
request_headers = headers if headers else self.headers
data_json = json.dumps(data)

return requests.put(
url, data=data_json, headers=request_headers, timeout=TIMEOUT
)
return requests.put(url, data=data_json, headers=request_headers, timeout=TIMEOUT)

def _delete(
self,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,7 @@ def _get_clean_host(host: str) -> str:
raise RuntimeError("Host is not set. Please provide a valid host.")

if host == "":
raise ValueError(
"Host is an empty string. Please provide a valid host."
)
raise ValueError("Host is an empty string. Please provide a valid host.")

# Remove trailing slash if present.
if host[-1] == "/":
Expand Down
Loading
Loading