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
2 changes: 1 addition & 1 deletion .fern/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
"use_pydantic_field_aliases": true
}
},
"sdkVersion": "4.0.0"
"sdkVersion": "4.1.0"
}
8 changes: 7 additions & 1 deletion .fern/replay.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .fernignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ LICENSE.md
src/merge/resources/accounting/types/currency_enum.py
src/merge/core/query_encoder.py

# Preserve raw-string enum forward-compat behavior (see construct_type).
src/merge/core/unchecked_base_model.py

tests/integration/test_filestorage.py
tests/integration/test_knowledgebase.py
tests/integration/test_email.py
Expand All @@ -23,6 +26,8 @@ tests/custom/test_error_response_handling.py
tests/custom/test_query_encoder_edges.py
tests/custom/test_enum_forward_compat_response.py
tests/custom/test_enum_forward_compat_query.py
tests/custom/test_parsing_error_unreachable.py
tests/custom/test_pydantic_config_no_deprecation.py
.fern/replay.lock
.fern/replay.yml
.gitattributes
20 changes: 10 additions & 10 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ dynamic = ["version"]

[tool.poetry]
name = "MergePythonClient"
version = "4.0.0"
version = "4.1.0"
description = ""
readme = "README.md"
authors = []
Expand Down
4 changes: 2 additions & 2 deletions src/merge/core/client_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ def get_headers(self) -> typing.Dict[str, str]:
import platform

headers: typing.Dict[str, str] = {
"User-Agent": "MergePythonClient/4.0.0",
"User-Agent": "MergePythonClient/4.1.0",
"X-Fern-Language": "Python",
"X-Fern-Runtime": f"python/{platform.python_version()}",
"X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
"X-Fern-SDK-Name": "MergePythonClient",
"X-Fern-SDK-Version": "4.0.0",
"X-Fern-SDK-Version": "4.1.0",
**(self.get_custom_headers() or {}),
}
if self._account_token is not None:
Expand Down
6 changes: 6 additions & 0 deletions src/merge/resources/accounting/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,9 @@
StatusFd5Enum,
SyncStatus,
SyncStatusLastSyncResult,
SyncStatusReasonEnum,
SyncStatusStatus,
SyncStatusSyncStatusReason,
TaxComponent,
TaxComponentComponentType,
TaxRate,
Expand Down Expand Up @@ -1356,7 +1358,9 @@
"StatusFd5Enum": ".types",
"SyncStatus": ".types",
"SyncStatusLastSyncResult": ".types",
"SyncStatusReasonEnum": ".types",
"SyncStatusStatus": ".types",
"SyncStatusSyncStatusReason": ".types",
"TaxComponent": ".types",
"TaxComponentComponentType": ".types",
"TaxRate": ".types",
Expand Down Expand Up @@ -2109,7 +2113,9 @@ def __dir__():
"StatusFd5Enum",
"SyncStatus",
"SyncStatusLastSyncResult",
"SyncStatusReasonEnum",
"SyncStatusStatus",
"SyncStatusSyncStatusReason",
"TaxComponent",
"TaxComponentComponentType",
"TaxRate",
Expand Down
6 changes: 6 additions & 0 deletions src/merge/resources/accounting/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,9 @@
from .status_fd_5_enum import StatusFd5Enum
from .sync_status import SyncStatus
from .sync_status_last_sync_result import SyncStatusLastSyncResult
from .sync_status_reason_enum import SyncStatusReasonEnum
from .sync_status_status import SyncStatusStatus
from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
from .tax_component import TaxComponent
from .tax_component_component_type import TaxComponentComponentType
from .tax_rate import TaxRate
Expand Down Expand Up @@ -1215,7 +1217,9 @@
"StatusFd5Enum": ".status_fd_5_enum",
"SyncStatus": ".sync_status",
"SyncStatusLastSyncResult": ".sync_status_last_sync_result",
"SyncStatusReasonEnum": ".sync_status_reason_enum",
"SyncStatusStatus": ".sync_status_status",
"SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
"TaxComponent": ".tax_component",
"TaxComponentComponentType": ".tax_component_component_type",
"TaxRate": ".tax_rate",
Expand Down Expand Up @@ -1866,7 +1870,9 @@ def __dir__():
"StatusFd5Enum",
"SyncStatus",
"SyncStatusLastSyncResult",
"SyncStatusReasonEnum",
"SyncStatusStatus",
"SyncStatusSyncStatusReason",
"TaxComponent",
"TaxComponentComponentType",
"TaxRate",
Expand Down
7 changes: 7 additions & 0 deletions src/merge/resources/accounting/types/sync_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
from .sync_status_last_sync_result import SyncStatusLastSyncResult
from .sync_status_status import SyncStatusStatus
from .sync_status_sync_status_reason import SyncStatusSyncStatusReason


class SyncStatus(UncheckedBaseModel):
Expand All @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel):
next_sync_start: typing.Optional[dt.datetime] = None
last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
last_sync_finished: typing.Optional[dt.datetime] = None
data_fresh_as_of: typing.Optional[dt.datetime] = None
status: SyncStatusStatus
sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
"""
The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing.
"""

is_initial_sync: bool
selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None

Expand Down
20 changes: 20 additions & 0 deletions src/merge/resources/accounting/types/sync_status_reason_enum.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This file was auto-generated by Fern from our API Definition.

import typing

from ....core import enum

T_Result = typing.TypeVar("T_Result")


class SyncStatusReasonEnum(enum.StrEnum):
RATE_LIMITED = "RATE_LIMITED"
WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS"

def visit(
self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result]
) -> T_Result:
if self is SyncStatusReasonEnum.RATE_LIMITED:
return rate_limited()
if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS:
return waiting_on_other_models()
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# This file was auto-generated by Fern from our API Definition.

import typing

from .sync_status_reason_enum import SyncStatusReasonEnum

SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str]
6 changes: 6 additions & 0 deletions src/merge/resources/ats/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,9 @@
StatusFd5Enum,
SyncStatus,
SyncStatusLastSyncResult,
SyncStatusReasonEnum,
SyncStatusStatus,
SyncStatusSyncStatusReason,
Tag,
Url,
UrlRequest,
Expand Down Expand Up @@ -536,7 +538,9 @@
"StatusFd5Enum": ".types",
"SyncStatus": ".types",
"SyncStatusLastSyncResult": ".types",
"SyncStatusReasonEnum": ".types",
"SyncStatusStatus": ".types",
"SyncStatusSyncStatusReason": ".types",
"Tag": ".types",
"Url": ".types",
"UrlRequest": ".types",
Expand Down Expand Up @@ -846,7 +850,9 @@ def __dir__():
"StatusFd5Enum",
"SyncStatus",
"SyncStatusLastSyncResult",
"SyncStatusReasonEnum",
"SyncStatusStatus",
"SyncStatusSyncStatusReason",
"Tag",
"Url",
"UrlRequest",
Expand Down
6 changes: 6 additions & 0 deletions src/merge/resources/ats/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,9 @@
from .status_fd_5_enum import StatusFd5Enum
from .sync_status import SyncStatus
from .sync_status_last_sync_result import SyncStatusLastSyncResult
from .sync_status_reason_enum import SyncStatusReasonEnum
from .sync_status_status import SyncStatusStatus
from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
from .tag import Tag
from .url import Url
from .url_request import UrlRequest
Expand Down Expand Up @@ -445,7 +447,9 @@
"StatusFd5Enum": ".status_fd_5_enum",
"SyncStatus": ".sync_status",
"SyncStatusLastSyncResult": ".sync_status_last_sync_result",
"SyncStatusReasonEnum": ".sync_status_reason_enum",
"SyncStatusStatus": ".sync_status_status",
"SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
"Tag": ".tag",
"Url": ".url",
"UrlRequest": ".url_request",
Expand Down Expand Up @@ -694,7 +698,9 @@ def __dir__():
"StatusFd5Enum",
"SyncStatus",
"SyncStatusLastSyncResult",
"SyncStatusReasonEnum",
"SyncStatusStatus",
"SyncStatusSyncStatusReason",
"Tag",
"Url",
"UrlRequest",
Expand Down
7 changes: 7 additions & 0 deletions src/merge/resources/ats/types/sync_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
from .sync_status_last_sync_result import SyncStatusLastSyncResult
from .sync_status_status import SyncStatusStatus
from .sync_status_sync_status_reason import SyncStatusSyncStatusReason


class SyncStatus(UncheckedBaseModel):
Expand All @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel):
next_sync_start: typing.Optional[dt.datetime] = None
last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
last_sync_finished: typing.Optional[dt.datetime] = None
data_fresh_as_of: typing.Optional[dt.datetime] = None
status: SyncStatusStatus
sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
"""
The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing.
"""

is_initial_sync: bool
selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None

Expand Down
20 changes: 20 additions & 0 deletions src/merge/resources/ats/types/sync_status_reason_enum.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This file was auto-generated by Fern from our API Definition.

import typing

from ....core import enum

T_Result = typing.TypeVar("T_Result")


class SyncStatusReasonEnum(enum.StrEnum):
RATE_LIMITED = "RATE_LIMITED"
WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS"

def visit(
self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result]
) -> T_Result:
if self is SyncStatusReasonEnum.RATE_LIMITED:
return rate_limited()
if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS:
return waiting_on_other_models()
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# This file was auto-generated by Fern from our API Definition.

import typing

from .sync_status_reason_enum import SyncStatusReasonEnum

SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str]
6 changes: 6 additions & 0 deletions src/merge/resources/calendar/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,9 @@
StatusFd5Enum,
SyncStatus,
SyncStatusLastSyncResult,
SyncStatusReasonEnum,
SyncStatusStatus,
SyncStatusSyncStatusReason,
User,
UserFieldMappings,
ValidationProblemSource,
Expand Down Expand Up @@ -275,7 +277,9 @@
"StatusFd5Enum": ".types",
"SyncStatus": ".types",
"SyncStatusLastSyncResult": ".types",
"SyncStatusReasonEnum": ".types",
"SyncStatusStatus": ".types",
"SyncStatusSyncStatusReason": ".types",
"User": ".types",
"UserFieldMappings": ".types",
"ValidationProblemSource": ".types",
Expand Down Expand Up @@ -446,7 +450,9 @@ def __dir__():
"StatusFd5Enum",
"SyncStatus",
"SyncStatusLastSyncResult",
"SyncStatusReasonEnum",
"SyncStatusStatus",
"SyncStatusSyncStatusReason",
"User",
"UserFieldMappings",
"ValidationProblemSource",
Expand Down
6 changes: 6 additions & 0 deletions src/merge/resources/calendar/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@
from .status_fd_5_enum import StatusFd5Enum
from .sync_status import SyncStatus
from .sync_status_last_sync_result import SyncStatusLastSyncResult
from .sync_status_reason_enum import SyncStatusReasonEnum
from .sync_status_status import SyncStatusStatus
from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
from .user import User
from .user_field_mappings import UserFieldMappings
from .validation_problem_source import ValidationProblemSource
Expand Down Expand Up @@ -229,7 +231,9 @@
"StatusFd5Enum": ".status_fd_5_enum",
"SyncStatus": ".sync_status",
"SyncStatusLastSyncResult": ".sync_status_last_sync_result",
"SyncStatusReasonEnum": ".sync_status_reason_enum",
"SyncStatusStatus": ".sync_status_status",
"SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
"User": ".user",
"UserFieldMappings": ".user_field_mappings",
"ValidationProblemSource": ".validation_problem_source",
Expand Down Expand Up @@ -367,7 +371,9 @@ def __dir__():
"StatusFd5Enum",
"SyncStatus",
"SyncStatusLastSyncResult",
"SyncStatusReasonEnum",
"SyncStatusStatus",
"SyncStatusSyncStatusReason",
"User",
"UserFieldMappings",
"ValidationProblemSource",
Expand Down
Loading
Loading