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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/test_installability.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
python-version: ${{ matrix.python-version }}

- name: Install the current SDK version from PyPI
run: pip install exabel-data-sdk --no-cache-dir
run: pip install exabel --no-cache-dir

- name: Post to Slack
uses: ravsamhq/notify-slack-action@2.5.0
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ A Python SDK which provides easy access to Exabel APIs.
## Installation

```shell
pip install exabel-data-sdk
pip install exabel
```

or download from [PyPI](https://pypi.org/project/exabel-data-sdk/).
or download from [PyPI](https://pypi.org/project/exabel/).

The SDK requires Python 3.10 or later.

Expand All @@ -18,10 +18,10 @@ For installation with support for exporting data from a various SQL based data s

```shell
# Install the Exabel Python SDK with Snowflake support:
pip install exabel-data-sdk[snowflake]
pip install exabel[snowflake]

# Or install multiple data sources at the same time:
pip install exabel-data-sdk[snowflake,bigquery,athena]
pip install exabel[snowflake,bigquery,athena]
```

Supported data sources are:
Expand All @@ -40,7 +40,7 @@ until the token expires.

[Export API Developer guide](https://help.exabel.com/docs/exporting-via-exabel-sdk)

[Examples of usage](https://github.com/Exabel/python-sdk/tree/main/exabel_data_sdk/examples).
[Examples of usage](https://github.com/Exabel/python-sdk/tree/main/exabel/examples).

## Exabel API documentation

Expand Down
4 changes: 2 additions & 2 deletions autoformat.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

# Autoformats all Python files with isort and black.

ruff check --fix exabel_data_sdk
ruff format exabel_data_sdk
ruff check --fix exabel
ruff format exabel
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from abc import ABC, abstractmethod

from exabel_data_sdk.stubs.exabel.api.data.v1.calendar_service_pb2 import (
from exabel.stubs.exabel.api.data.v1.calendar_service_pb2 import (
BatchCreateFiscalPeriodsRequest,
BatchCreateFiscalPeriodsResponse,
CompanyCalendar,
DeleteFiscalPeriodRequest,
GetCompanyCalendarRequest,
ListCompaniesWithFiscalPeriodsRequest,
ListCompaniesWithFiscalPeriodsResponse,
ListFiscalPeriodsRequest,
Expand All @@ -14,6 +16,10 @@
class CalendarApiClient(ABC):
"""Superclass for clients that send calendar requests to the Exabel Data API."""

@abstractmethod
def get_company_calendar(self, request: GetCompanyCalendarRequest) -> CompanyCalendar:
"""Get the fiscal calendar for a company."""

@abstractmethod
def batch_create_fiscal_periods(
self, request: BatchCreateFiscalPeriodsRequest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from abc import ABC, abstractmethod

from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2 import (
from exabel.stubs.exabel.api.data.v1.all_pb2 import (
CreateDataSetRequest,
DataSet,
DeleteDataSetRequest,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from abc import ABC, abstractmethod

from exabel_data_sdk.stubs.exabel.api.analytics.v1.all_pb2 import (
from exabel.stubs.exabel.api.analytics.v1.all_pb2 import (
CreateDerivedSignalRequest,
DeleteDerivedSignalRequest,
DerivedSignal,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from abc import ABC, abstractmethod

from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2 import (
from exabel.stubs.exabel.api.data.v1.all_pb2 import (
CreateEntityRequest,
CreateEntityTypeRequest,
DeleteEntitiesRequest,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from enum import Enum, auto

from exabel_data_sdk.client.client_config import ClientConfig
from exabel.client.client_config import ClientConfig


class ExabelApiGroup(Enum):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import grpc

from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.client_config import ClientConfig
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.client_config import ClientConfig

SIXTEEN_MEGABYTES_IN_BYTES = 16 * 1024 * 1024

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
from exabel_data_sdk.client.api.api_client.calendar_api_client import CalendarApiClient
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.data.v1.calendar_service_pb2 import (
from exabel.client.api.api_client.calendar_api_client import CalendarApiClient
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.data.v1.calendar_service_pb2 import (
BatchCreateFiscalPeriodsRequest,
BatchCreateFiscalPeriodsResponse,
CompanyCalendar,
DeleteFiscalPeriodRequest,
GetCompanyCalendarRequest,
ListCompaniesWithFiscalPeriodsRequest,
ListCompaniesWithFiscalPeriodsResponse,
ListFiscalPeriodsRequest,
ListFiscalPeriodsResponse,
)
from exabel_data_sdk.stubs.exabel.api.data.v1.calendar_service_pb2_grpc import CalendarServiceStub
from exabel.stubs.exabel.api.data.v1.calendar_service_pb2_grpc import CalendarServiceStub


class CalendarGrpcClient(CalendarApiClient, BaseGrpcClient):
Expand All @@ -24,6 +26,12 @@ def __init__(self, config: ClientConfig):
super().__init__(config, ExabelApiGroup.DATA_API)
self.stub = CalendarServiceStub(self.channel)

@handle_grpc_error
def get_company_calendar(self, request: GetCompanyCalendarRequest) -> CompanyCalendar:
return self.stub.GetCompanyCalendar(
request, metadata=self.metadata, timeout=self.config.timeout
)

@handle_grpc_error
def batch_create_fiscal_periods(
self, request: BatchCreateFiscalPeriodsRequest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from exabel_data_sdk.client.api.api_client.data_set_api_client import DataSetApiClient
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2 import (
from exabel.client.api.api_client.data_set_api_client import DataSetApiClient
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.data.v1.all_pb2 import (
CreateDataSetRequest,
DataSet,
DeleteDataSetRequest,
Expand All @@ -12,7 +12,7 @@
ListDataSetsResponse,
UpdateDataSetRequest,
)
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2_grpc import DataSetServiceStub
from exabel.stubs.exabel.api.data.v1.all_pb2_grpc import DataSetServiceStub


class DataSetGrpcClient(DataSetApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
from exabel_data_sdk.client.api.api_client.derived_signal_api_client import DerivedSignalApiClient
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.analytics.v1.all_pb2 import (
from exabel.client.api.api_client.derived_signal_api_client import DerivedSignalApiClient
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.analytics.v1.all_pb2 import (
CreateDerivedSignalRequest,
DeleteDerivedSignalRequest,
DerivedSignal,
GetDerivedSignalRequest,
UpdateDerivedSignalRequest,
)
from exabel_data_sdk.stubs.exabel.api.analytics.v1.all_pb2_grpc import DerivedSignalServiceStub
from exabel.stubs.exabel.api.analytics.v1.all_pb2_grpc import DerivedSignalServiceStub


class DerivedSignalGrpcClient(DerivedSignalApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from exabel_data_sdk.client.api.api_client.entity_api_client import EntityApiClient
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2 import (
from exabel.client.api.api_client.entity_api_client import EntityApiClient
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.data.v1.all_pb2 import (
CreateEntityRequest,
CreateEntityTypeRequest,
DeleteEntitiesRequest,
Expand All @@ -22,7 +22,7 @@
UpdateEntityRequest,
UpdateEntityTypeRequest,
)
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2_grpc import EntityServiceStub
from exabel.stubs.exabel.api.data.v1.all_pb2_grpc import EntityServiceStub


class EntityGrpcClient(EntityApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.api_client.holiday_api_client import HolidayApiClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.data.v1.holiday_messages_pb2 import HolidaySpecification
from exabel_data_sdk.stubs.exabel.api.data.v1.holiday_service_pb2 import (
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.api_client.holiday_api_client import HolidayApiClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.data.v1.holiday_messages_pb2 import HolidaySpecification
from exabel.stubs.exabel.api.data.v1.holiday_service_pb2 import (
CreateHolidaySpecificationRequest,
DeleteHolidaySpecificationRequest,
GetHolidaySpecificationRequest,
ListHolidaySpecificationsRequest,
ListHolidaySpecificationsResponse,
UpdateHolidaySpecificationRequest,
)
from exabel_data_sdk.stubs.exabel.api.data.v1.holiday_service_pb2_grpc import HolidayServiceStub
from exabel.stubs.exabel.api.data.v1.holiday_service_pb2_grpc import HolidayServiceStub


class HolidayGrpcClient(HolidayApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.api_client.kpi_api_client import KpiApiClient
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.analytics.v1.kpi_service_pb2 import (
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.api_client.kpi_api_client import KpiApiClient
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.analytics.v1.kpi_service_pb2 import (
ListCompanyBaseModelResultsRequest,
ListCompanyBaseModelResultsResponse,
ListCompanyHierarchicalModelResultsRequest,
Expand All @@ -16,7 +16,7 @@
ListKpiScreenResultsRequest,
ListKpiScreenResultsResponse,
)
from exabel_data_sdk.stubs.exabel.api.analytics.v1.kpi_service_pb2_grpc import KpiServiceStub
from exabel.stubs.exabel.api.analytics.v1.kpi_service_pb2_grpc import KpiServiceStub


class KpiGrpcClient(KpiApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.api_client.library_api_client import LibraryApiClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.management.v1.all_pb2_grpc import LibraryServiceStub
from exabel_data_sdk.stubs.exabel.api.management.v1.folder_messages_pb2 import Folder
from exabel_data_sdk.stubs.exabel.api.management.v1.library_service_pb2 import (
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.api_client.library_api_client import LibraryApiClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.management.v1.all_pb2_grpc import LibraryServiceStub
from exabel.stubs.exabel.api.management.v1.folder_messages_pb2 import Folder
from exabel.stubs.exabel.api.management.v1.library_service_pb2 import (
CreateFolderRequest,
DeleteFolderRequest,
GetFolderRequest,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.api_client.namespace_api_client import NamespaceApiClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2 import (
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.api_client.namespace_api_client import NamespaceApiClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.data.v1.all_pb2 import (
ListNamespacesRequest,
ListNamespacesResponse,
)
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2_grpc import NamespaceServiceStub
from exabel.stubs.exabel.api.data.v1.all_pb2_grpc import NamespaceServiceStub


class NamespaceGrpcClient(NamespaceApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.api_client.prediction_model_api_client import (
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.api_client.prediction_model_api_client import (
PredictionModelApiClient,
)
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.analytics.v1.all_pb2 import (
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.analytics.v1.all_pb2 import (
CreatePredictionModelRunRequest,
PredictionModelRun,
)
from exabel_data_sdk.stubs.exabel.api.analytics.v1.all_pb2_grpc import PredictionModelServiceStub
from exabel.stubs.exabel.api.analytics.v1.all_pb2_grpc import PredictionModelServiceStub


class PredictionModelGrpcClient(PredictionModelApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.api_client.relationship_api_client import RelationshipApiClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2 import (
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.api_client.relationship_api_client import RelationshipApiClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.data.v1.all_pb2 import (
CreateRelationshipRequest,
CreateRelationshipTypeRequest,
DeleteRelationshipRequest,
Expand All @@ -19,7 +19,7 @@
UpdateRelationshipRequest,
UpdateRelationshipTypeRequest,
)
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2_grpc import RelationshipServiceStub
from exabel.stubs.exabel.api.data.v1.all_pb2_grpc import RelationshipServiceStub


class RelationshipGrpcClient(RelationshipApiClient, BaseGrpcClient):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from exabel_data_sdk.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel_data_sdk.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel_data_sdk.client.api.api_client.signal_api_client import SignalApiClient
from exabel_data_sdk.client.api.error_handler import handle_grpc_error
from exabel_data_sdk.client.client_config import ClientConfig
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2 import (
from exabel.client.api.api_client.exabel_api_group import ExabelApiGroup
from exabel.client.api.api_client.grpc.base_grpc_client import BaseGrpcClient
from exabel.client.api.api_client.signal_api_client import SignalApiClient
from exabel.client.api.error_handler import handle_grpc_error
from exabel.client.client_config import ClientConfig
from exabel.stubs.exabel.api.data.v1.all_pb2 import (
CreateSignalRequest,
DeleteSignalRequest,
FilterDerivedSignalsRequest,
Expand All @@ -14,7 +14,7 @@
Signal,
UpdateSignalRequest,
)
from exabel_data_sdk.stubs.exabel.api.data.v1.all_pb2_grpc import SignalServiceStub
from exabel.stubs.exabel.api.data.v1.all_pb2_grpc import SignalServiceStub


class SignalGrpcClient(SignalApiClient, BaseGrpcClient):
Expand Down
Loading