diff --git a/contract-tests/client_entity.py b/contract-tests/client_entity.py index 02c44aba..c0030adb 100644 --- a/contract-tests/client_entity.py +++ b/contract-tests/client_entity.py @@ -6,8 +6,14 @@ from hook import PostingHook from ldclient import * -from ldclient import (Context, ExecutionOrder, MigratorBuilder, MigratorFn, - Operation, Stage) +from ldclient import ( + Context, + ExecutionOrder, + MigratorBuilder, + MigratorFn, + Operation, + Stage +) from ldclient.config import BigSegmentsConfig diff --git a/ldclient/client.py b/ldclient/client.py index 9727aa87..1a9b7993 100644 --- a/ldclient/client.py +++ b/ldclient/client.py @@ -13,19 +13,28 @@ from ldclient.context import Context from ldclient.evaluation import EvaluationDetail, FeatureFlagsState from ldclient.feature_store import _FeatureStoreDataSetSorter -from ldclient.hook import (EvaluationSeriesContext, Hook, - _EvaluationWithHookResult) +from ldclient.hook import ( + EvaluationSeriesContext, + Hook, + _EvaluationWithHookResult +) from ldclient.impl.big_segments import BigSegmentStoreManager from ldclient.impl.datasource.feature_requester import FeatureRequesterImpl from ldclient.impl.datasource.polling import PollingUpdateProcessor -from ldclient.impl.datasource.status import (DataSourceStatusProviderImpl, - DataSourceUpdateSinkImpl) +from ldclient.impl.datasource.status import ( + DataSourceStatusProviderImpl, + DataSourceUpdateSinkImpl +) from ldclient.impl.datasource.streaming import StreamingUpdateProcessor -from ldclient.impl.datastore.status import (DataStoreStatusProviderImpl, - DataStoreUpdateSinkImpl) +from ldclient.impl.datastore.status import ( + DataStoreStatusProviderImpl, + DataStoreUpdateSinkImpl +) from ldclient.impl.evaluator import Evaluator, error_reason -from ldclient.impl.events.diagnostics import (_DiagnosticAccumulator, - create_diagnostic_id) +from ldclient.impl.events.diagnostics import ( + _DiagnosticAccumulator, + create_diagnostic_id +) from ldclient.impl.events.event_processor import DefaultEventProcessor from ldclient.impl.events.types import EventFactory from ldclient.impl.flag_tracker import FlagTrackerImpl @@ -35,13 +44,21 @@ from ldclient.impl.rwlock import ReadWriteLock from ldclient.impl.stubs import NullEventProcessor, NullUpdateProcessor from ldclient.impl.util import check_uwsgi, log -from ldclient.interfaces import (BigSegmentStoreStatusProvider, - DataSourceStatusProvider, DataStoreStatus, - DataStoreStatusProvider, DataStoreUpdateSink, - FeatureStore, FlagTracker) +from ldclient.interfaces import ( + BigSegmentStoreStatusProvider, + DataSourceStatusProvider, + DataStoreStatus, + DataStoreStatusProvider, + DataStoreUpdateSink, + FeatureStore, + FlagTracker +) from ldclient.migrations import OpTracker, Stage -from ldclient.plugin import (ApplicationMetadata, EnvironmentMetadata, - SdkMetadata) +from ldclient.plugin import ( + ApplicationMetadata, + EnvironmentMetadata, + SdkMetadata +) from ldclient.version import VERSION from ldclient.versioned_data_kind import FEATURES, SEGMENTS, VersionedDataKind diff --git a/ldclient/config.py b/ldclient/config.py index 02455344..32b28dfc 100644 --- a/ldclient/config.py +++ b/ldclient/config.py @@ -10,8 +10,13 @@ from ldclient.feature_store import InMemoryFeatureStore from ldclient.hook import Hook from ldclient.impl.util import log, validate_application_info -from ldclient.interfaces import (BigSegmentStore, DataSourceUpdateSink, - EventProcessor, FeatureStore, UpdateProcessor) +from ldclient.interfaces import ( + BigSegmentStore, + DataSourceUpdateSink, + EventProcessor, + FeatureStore, + UpdateProcessor +) from ldclient.plugin import Plugin GET_LATEST_FEATURES_PATH = '/sdk/latest-flags' diff --git a/ldclient/feature_store_helpers.py b/ldclient/feature_store_helpers.py index dc29dd22..c9e74ea9 100644 --- a/ldclient/feature_store_helpers.py +++ b/ldclient/feature_store_helpers.py @@ -7,8 +7,11 @@ from expiringdict import ExpiringDict from ldclient.feature_store import CacheConfig -from ldclient.interfaces import (DiagnosticDescription, FeatureStore, - FeatureStoreCore) +from ldclient.interfaces import ( + DiagnosticDescription, + FeatureStore, + FeatureStoreCore +) from ldclient.versioned_data_kind import VersionedDataKind diff --git a/ldclient/impl/big_segments.py b/ldclient/impl/big_segments.py index bf34c2e7..b96c5ef6 100644 --- a/ldclient/impl/big_segments.py +++ b/ldclient/impl/big_segments.py @@ -10,8 +10,10 @@ from ldclient.impl.listeners import Listeners from ldclient.impl.repeating_task import RepeatingTask from ldclient.impl.util import log -from ldclient.interfaces import (BigSegmentStoreStatus, - BigSegmentStoreStatusProvider) +from ldclient.interfaces import ( + BigSegmentStoreStatus, + BigSegmentStoreStatusProvider +) class BigSegmentStoreStatusProviderImpl(BigSegmentStoreStatusProvider): diff --git a/ldclient/impl/datasource/polling.py b/ldclient/impl/datasource/polling.py index 5ba61718..d6c22dc8 100644 --- a/ldclient/impl/datasource/polling.py +++ b/ldclient/impl/datasource/polling.py @@ -10,13 +10,21 @@ from ldclient.config import Config from ldclient.impl.repeating_task import RepeatingTask -from ldclient.impl.util import (UnsuccessfulResponseException, - http_error_message, is_http_error_recoverable, - log) -from ldclient.interfaces import (DataSourceErrorInfo, DataSourceErrorKind, - DataSourceState, DataSourceUpdateSink, - FeatureRequester, FeatureStore, - UpdateProcessor) +from ldclient.impl.util import ( + UnsuccessfulResponseException, + http_error_message, + is_http_error_recoverable, + log +) +from ldclient.interfaces import ( + DataSourceErrorInfo, + DataSourceErrorKind, + DataSourceState, + DataSourceUpdateSink, + FeatureRequester, + FeatureStore, + UpdateProcessor +) class PollingUpdateProcessor(UpdateProcessor): diff --git a/ldclient/impl/datasource/status.py b/ldclient/impl/datasource/status.py index 60e0aadc..172ffee9 100644 --- a/ldclient/impl/datasource/status.py +++ b/ldclient/impl/datasource/status.py @@ -4,11 +4,16 @@ from ldclient.impl.dependency_tracker import DependencyTracker, KindAndKey from ldclient.impl.listeners import Listeners from ldclient.impl.rwlock import ReadWriteLock -from ldclient.interfaces import (DataSourceErrorInfo, DataSourceErrorKind, - DataSourceState, DataSourceStatus, - DataSourceStatusProvider, - DataSourceUpdateSink, FeatureStore, - FlagChange) +from ldclient.interfaces import ( + DataSourceErrorInfo, + DataSourceErrorKind, + DataSourceState, + DataSourceStatus, + DataSourceStatusProvider, + DataSourceUpdateSink, + FeatureStore, + FlagChange +) from ldclient.versioned_data_kind import FEATURES, SEGMENTS, VersionedDataKind diff --git a/ldclient/impl/datasource/streaming.py b/ldclient/impl/datasource/streaming.py index eb3c6724..d12b4043 100644 --- a/ldclient/impl/datasource/streaming.py +++ b/ldclient/impl/datasource/streaming.py @@ -7,15 +7,25 @@ from ld_eventsource import SSEClient from ld_eventsource.actions import Event, Fault -from ld_eventsource.config import (ConnectStrategy, ErrorStrategy, - RetryDelayStrategy) +from ld_eventsource.config import ( + ConnectStrategy, + ErrorStrategy, + RetryDelayStrategy +) from ld_eventsource.errors import HTTPStatusError from ldclient.impl.http import HTTPFactory, _http_factory -from ldclient.impl.util import (http_error_message, is_http_error_recoverable, - log) -from ldclient.interfaces import (DataSourceErrorInfo, DataSourceErrorKind, - DataSourceState, UpdateProcessor) +from ldclient.impl.util import ( + http_error_message, + is_http_error_recoverable, + log +) +from ldclient.interfaces import ( + DataSourceErrorInfo, + DataSourceErrorKind, + DataSourceState, + UpdateProcessor +) from ldclient.versioned_data_kind import FEATURES, SEGMENTS # allows for up to 5 minutes to elapse without any data sent across the stream. The heartbeats sent as comments on the diff --git a/ldclient/impl/datastore/status.py b/ldclient/impl/datastore/status.py index ef624ad8..a8dd5ee3 100644 --- a/ldclient/impl/datastore/status.py +++ b/ldclient/impl/datastore/status.py @@ -5,8 +5,11 @@ from ldclient.impl.listeners import Listeners from ldclient.impl.rwlock import ReadWriteLock -from ldclient.interfaces import (DataStoreStatus, DataStoreStatusProvider, - DataStoreUpdateSink) +from ldclient.interfaces import ( + DataStoreStatus, + DataStoreStatusProvider, + DataStoreUpdateSink +) if TYPE_CHECKING: from ldclient.client import _FeatureStoreClientWrapper diff --git a/ldclient/impl/events/event_processor.py b/ldclient/impl/events/event_processor.py index c9489adb..b5cf6e8a 100644 --- a/ldclient/impl/events/event_processor.py +++ b/ldclient/impl/events/event_processor.py @@ -21,18 +21,25 @@ from ldclient.impl.events.diagnostics import create_diagnostic_init from ldclient.impl.events.event_context_formatter import EventContextFormatter from ldclient.impl.events.event_summarizer import EventSummarizer, EventSummary -from ldclient.impl.events.types import (EventInput, EventInputCustom, - EventInputEvaluation, - EventInputIdentify) +from ldclient.impl.events.types import ( + EventInput, + EventInputCustom, + EventInputEvaluation, + EventInputIdentify +) from ldclient.impl.fixed_thread_pool import FixedThreadPool from ldclient.impl.http import _http_factory from ldclient.impl.lru_cache import SimpleLRUCache from ldclient.impl.repeating_task import RepeatingTask from ldclient.impl.sampler import Sampler -from ldclient.impl.util import (_headers, - check_if_error_is_recoverable_and_log, - current_time_millis, is_http_error_recoverable, - log, timedelta_millis) +from ldclient.impl.util import ( + _headers, + check_if_error_is_recoverable_and_log, + current_time_millis, + is_http_error_recoverable, + log, + timedelta_millis +) from ldclient.interfaces import EventProcessor from ldclient.migrations.tracker import MigrationOpEvent diff --git a/ldclient/impl/integrations/files/file_data_source.py b/ldclient/impl/integrations/files/file_data_source.py index a015ac19..0fd0593c 100644 --- a/ldclient/impl/integrations/files/file_data_source.py +++ b/ldclient/impl/integrations/files/file_data_source.py @@ -6,9 +6,13 @@ from ldclient.impl.repeating_task import RepeatingTask from ldclient.impl.util import log -from ldclient.interfaces import (DataSourceErrorInfo, DataSourceErrorKind, - DataSourceState, DataSourceUpdateSink, - UpdateProcessor) +from ldclient.interfaces import ( + DataSourceErrorInfo, + DataSourceErrorKind, + DataSourceState, + DataSourceUpdateSink, + UpdateProcessor +) from ldclient.versioned_data_kind import FEATURES, SEGMENTS have_yaml = False diff --git a/ldclient/impl/model/clause.py b/ldclient/impl/model/clause.py index 2a1fa88f..48257c76 100644 --- a/ldclient/impl/model/clause.py +++ b/ldclient/impl/model/clause.py @@ -4,10 +4,15 @@ from semver import VersionInfo from ldclient.impl.model.attribute_ref import ( - AttributeRef, req_attr_ref_with_opt_context_kind) + AttributeRef, + req_attr_ref_with_opt_context_kind +) from ldclient.impl.model.entity import * -from ldclient.impl.model.value_parsing import (parse_regex, parse_semver, - parse_time) +from ldclient.impl.model.value_parsing import ( + parse_regex, + parse_semver, + parse_time +) class ClausePreprocessedValue: diff --git a/ldclient/impl/model/segment.py b/ldclient/impl/model/segment.py index 404b1446..d2b3baa9 100644 --- a/ldclient/impl/model/segment.py +++ b/ldclient/impl/model/segment.py @@ -1,7 +1,9 @@ from typing import Any, List, Optional, Set from ldclient.impl.model.attribute_ref import ( - AttributeRef, opt_attr_ref_with_opt_context_kind) + AttributeRef, + opt_attr_ref_with_opt_context_kind +) from ldclient.impl.model.clause import Clause from ldclient.impl.model.entity import * diff --git a/ldclient/impl/model/variation_or_rollout.py b/ldclient/impl/model/variation_or_rollout.py index c20dee0c..08f94c4e 100644 --- a/ldclient/impl/model/variation_or_rollout.py +++ b/ldclient/impl/model/variation_or_rollout.py @@ -1,7 +1,9 @@ from typing import List, Optional from ldclient.impl.model.attribute_ref import ( - AttributeRef, opt_attr_ref_with_opt_context_kind) + AttributeRef, + opt_attr_ref_with_opt_context_kind +) from ldclient.impl.model.entity import * diff --git a/ldclient/impl/operators.py b/ldclient/impl/operators.py index 2998de7d..73da4186 100644 --- a/ldclient/impl/operators.py +++ b/ldclient/impl/operators.py @@ -5,8 +5,11 @@ from semver import VersionInfo from ldclient.impl.model.clause import ClausePreprocessedValue -from ldclient.impl.model.value_parsing import (is_number, parse_semver, - parse_time) +from ldclient.impl.model.value_parsing import ( + is_number, + parse_semver, + parse_time +) def _string_operator(context_value: Any, clause_value: Any, fn: Callable[[str, str], bool]) -> bool: diff --git a/ldclient/integrations/__init__.py b/ldclient/integrations/__init__.py index 344d80b2..0f0f0591 100644 --- a/ldclient/integrations/__init__.py +++ b/ldclient/integrations/__init__.py @@ -7,17 +7,22 @@ from ldclient.feature_store import CacheConfig from ldclient.feature_store_helpers import CachingStoreWrapper -from ldclient.impl.integrations.consul.consul_feature_store import \ +from ldclient.impl.integrations.consul.consul_feature_store import ( _ConsulFeatureStoreCore -from ldclient.impl.integrations.dynamodb.dynamodb_big_segment_store import \ +) +from ldclient.impl.integrations.dynamodb.dynamodb_big_segment_store import ( _DynamoDBBigSegmentStore -from ldclient.impl.integrations.dynamodb.dynamodb_feature_store import \ +) +from ldclient.impl.integrations.dynamodb.dynamodb_feature_store import ( _DynamoDBFeatureStoreCore +) from ldclient.impl.integrations.files.file_data_source import _FileDataSource -from ldclient.impl.integrations.redis.redis_big_segment_store import \ +from ldclient.impl.integrations.redis.redis_big_segment_store import ( _RedisBigSegmentStore -from ldclient.impl.integrations.redis.redis_feature_store import \ +) +from ldclient.impl.integrations.redis.redis_feature_store import ( _RedisFeatureStoreCore +) from ldclient.interfaces import BigSegmentStore diff --git a/ldclient/integrations/test_data.py b/ldclient/integrations/test_data.py index a1b5b089..56e06f9a 100644 --- a/ldclient/integrations/test_data.py +++ b/ldclient/integrations/test_data.py @@ -2,8 +2,9 @@ from typing import Any, Dict, List, Optional, Set, Union from ldclient.context import Context -from ldclient.impl.integrations.test_data.test_data_source import \ +from ldclient.impl.integrations.test_data.test_data_source import ( _TestDataSource +) from ldclient.impl.rwlock import ReadWriteLock from ldclient.versioned_data_kind import FEATURES diff --git a/ldclient/migrations/migrator.py b/ldclient/migrations/migrator.py index 52846706..00216533 100644 --- a/ldclient/migrations/migrator.py +++ b/ldclient/migrations/migrator.py @@ -9,10 +9,17 @@ from ldclient.impl.sampler import Sampler from ldclient.impl.util import Result from ldclient.migrations.tracker import OpTracker -from ldclient.migrations.types import (ExecutionOrder, MigrationConfig, - MigratorCompareFn, MigratorFn, - Operation, OperationResult, Origin, - Stage, WriteResult) +from ldclient.migrations.types import ( + ExecutionOrder, + MigrationConfig, + MigratorCompareFn, + MigratorFn, + Operation, + OperationResult, + Origin, + Stage, + WriteResult +) if TYPE_CHECKING: from ldclient import Context, LDClient diff --git a/ldclient/plugin.py b/ldclient/plugin.py index 728ca8a1..dab57f4d 100644 --- a/ldclient/plugin.py +++ b/ldclient/plugin.py @@ -9,9 +9,12 @@ from ldclient.hook import Hook from ldclient.impl import AnyNum from ldclient.impl.evaluator import error_reason -from ldclient.interfaces import (BigSegmentStoreStatusProvider, - DataSourceStatusProvider, - DataStoreStatusProvider, FlagTracker) +from ldclient.interfaces import ( + BigSegmentStoreStatusProvider, + DataSourceStatusProvider, + DataStoreStatusProvider, + FlagTracker +) if TYPE_CHECKING: from ldclient.client import LDClient diff --git a/ldclient/testing/impl/datasource/test_feature_requester.py b/ldclient/testing/impl/datasource/test_feature_requester.py index c24d3fd8..8a25ed4a 100644 --- a/ldclient/testing/impl/datasource/test_feature_requester.py +++ b/ldclient/testing/impl/datasource/test_feature_requester.py @@ -1,7 +1,10 @@ from ldclient.config import Config from ldclient.impl.datasource.feature_requester import FeatureRequesterImpl -from ldclient.testing.http_util import (BasicResponse, JsonResponse, - start_server) +from ldclient.testing.http_util import ( + BasicResponse, + JsonResponse, + start_server +) from ldclient.testing.proxy_test_util import do_proxy_tests from ldclient.version import VERSION from ldclient.versioned_data_kind import FEATURES, SEGMENTS diff --git a/ldclient/testing/impl/datasource/test_polling_processor.py b/ldclient/testing/impl/datasource/test_polling_processor.py index c90f2543..80790563 100644 --- a/ldclient/testing/impl/datasource/test_polling_processor.py +++ b/ldclient/testing/impl/datasource/test_polling_processor.py @@ -9,8 +9,11 @@ from ldclient.impl.datasource.status import DataSourceUpdateSinkImpl from ldclient.impl.listeners import Listeners from ldclient.impl.util import UnsuccessfulResponseException -from ldclient.interfaces import (DataSourceErrorKind, DataSourceState, - DataSourceStatus) +from ldclient.interfaces import ( + DataSourceErrorKind, + DataSourceState, + DataSourceStatus +) from ldclient.testing.builders import * from ldclient.testing.stub_util import MockFeatureRequester, MockResponse from ldclient.testing.test_util import SpyListener diff --git a/ldclient/testing/impl/datasource/test_streaming.py b/ldclient/testing/impl/datasource/test_streaming.py index b1fa85d4..17b9143e 100644 --- a/ldclient/testing/impl/datasource/test_streaming.py +++ b/ldclient/testing/impl/datasource/test_streaming.py @@ -10,16 +10,26 @@ from ldclient.impl.datasource.streaming import StreamingUpdateProcessor from ldclient.impl.events.diagnostics import _DiagnosticAccumulator from ldclient.impl.listeners import Listeners -from ldclient.interfaces import (DataSourceErrorKind, DataSourceState, - DataSourceStatus) +from ldclient.interfaces import ( + DataSourceErrorKind, + DataSourceState, + DataSourceStatus +) from ldclient.testing.builders import * -from ldclient.testing.http_util import (BasicResponse, CauseNetworkError, - SequentialHandler, start_server) +from ldclient.testing.http_util import ( + BasicResponse, + CauseNetworkError, + SequentialHandler, + start_server +) from ldclient.testing.proxy_test_util import do_proxy_tests -from ldclient.testing.stub_util import (make_delete_event, - make_invalid_put_event, - make_patch_event, make_put_event, - stream_content) +from ldclient.testing.stub_util import ( + make_delete_event, + make_invalid_put_event, + make_patch_event, + make_put_event, + stream_content +) from ldclient.testing.test_util import SpyListener from ldclient.version import VERSION from ldclient.versioned_data_kind import FEATURES, SEGMENTS diff --git a/ldclient/testing/impl/events/test_diagnostics.py b/ldclient/testing/impl/events/test_diagnostics.py index 67c87238..cb3722f7 100644 --- a/ldclient/testing/impl/events/test_diagnostics.py +++ b/ldclient/testing/impl/events/test_diagnostics.py @@ -4,10 +4,12 @@ from ldclient.config import Config, HTTPConfig from ldclient.feature_store import CacheConfig from ldclient.feature_store_helpers import CachingStoreWrapper -from ldclient.impl.events.diagnostics import (_create_diagnostic_config_object, - _DiagnosticAccumulator, - create_diagnostic_id, - create_diagnostic_init) +from ldclient.impl.events.diagnostics import ( + _create_diagnostic_config_object, + _DiagnosticAccumulator, + create_diagnostic_id, + create_diagnostic_init +) def test_create_diagnostic_id(): diff --git a/ldclient/testing/impl/events/test_event_processor.py b/ldclient/testing/impl/events/test_event_processor.py index 83be14ac..2c2f462b 100644 --- a/ldclient/testing/impl/events/test_event_processor.py +++ b/ldclient/testing/impl/events/test_event_processor.py @@ -10,13 +10,18 @@ from ldclient.config import Config from ldclient.context import Context from ldclient.evaluation import EvaluationDetail -from ldclient.impl.events.diagnostics import (_DiagnosticAccumulator, - create_diagnostic_id) +from ldclient.impl.events.diagnostics import ( + _DiagnosticAccumulator, + create_diagnostic_id +) from ldclient.impl.events.event_context_formatter import EventContextFormatter from ldclient.impl.events.event_processor import DefaultEventProcessor -from ldclient.impl.events.types import (EventInput, EventInputCustom, - EventInputEvaluation, - EventInputIdentify) +from ldclient.impl.events.types import ( + EventInput, + EventInputCustom, + EventInputEvaluation, + EventInputIdentify +) from ldclient.impl.util import timedelta_millis from ldclient.migrations.tracker import MigrationOpEvent from ldclient.migrations.types import Operation, Origin, Stage diff --git a/ldclient/testing/impl/events/test_event_summarizer.py b/ldclient/testing/impl/events/test_event_summarizer.py index c4b35870..d7cf4ad1 100644 --- a/ldclient/testing/impl/events/test_event_summarizer.py +++ b/ldclient/testing/impl/events/test_event_summarizer.py @@ -1,7 +1,9 @@ from ldclient.context import Context -from ldclient.impl.events.event_summarizer import (EventSummarizer, - EventSummaryCounter, - EventSummaryFlag) +from ldclient.impl.events.event_summarizer import ( + EventSummarizer, + EventSummaryCounter, + EventSummaryFlag +) from ldclient.impl.events.types import * from ldclient.testing.builders import * diff --git a/ldclient/testing/impl/test_big_segments.py b/ldclient/testing/impl/test_big_segments.py index a850b051..bb32831e 100644 --- a/ldclient/testing/impl/test_big_segments.py +++ b/ldclient/testing/impl/test_big_segments.py @@ -3,8 +3,10 @@ from ldclient.config import BigSegmentsConfig from ldclient.evaluation import BigSegmentsStatus -from ldclient.impl.big_segments import (BigSegmentStoreManager, - _hash_for_user_key) +from ldclient.impl.big_segments import ( + BigSegmentStoreManager, + _hash_for_user_key +) from ldclient.interfaces import BigSegmentStoreMetadata from ldclient.testing.mock_components import MockBigSegmentStore diff --git a/ldclient/testing/impl/test_data_sink.py b/ldclient/testing/impl/test_data_sink.py index 7320d1f3..d905db78 100644 --- a/ldclient/testing/impl/test_data_sink.py +++ b/ldclient/testing/impl/test_data_sink.py @@ -7,9 +7,13 @@ from ldclient.impl.datasource.status import DataSourceUpdateSinkImpl from ldclient.impl.listeners import Listeners from ldclient.interfaces import DataSourceErrorKind, DataSourceState -from ldclient.testing.builders import (FlagBuilder, FlagRuleBuilder, - SegmentBuilder, SegmentRuleBuilder, - make_clause) +from ldclient.testing.builders import ( + FlagBuilder, + FlagRuleBuilder, + SegmentBuilder, + SegmentRuleBuilder, + make_clause +) from ldclient.testing.test_util import SpyListener from ldclient.versioned_data_kind import FEATURES, SEGMENTS diff --git a/ldclient/testing/impl/test_evaluator_bucketing.py b/ldclient/testing/impl/test_evaluator_bucketing.py index 5eaf684f..1f9a094b 100644 --- a/ldclient/testing/impl/test_evaluator_bucketing.py +++ b/ldclient/testing/impl/test_evaluator_bucketing.py @@ -3,8 +3,10 @@ import pytest from ldclient.client import Context -from ldclient.impl.evaluator import (_bucket_context, - _variation_index_for_context) +from ldclient.impl.evaluator import ( + _bucket_context, + _variation_index_for_context +) from ldclient.impl.model import * from ldclient.testing.builders import * from ldclient.testing.impl.evaluator_util import * diff --git a/ldclient/testing/integrations/persistent_feature_store_test_base.py b/ldclient/testing/integrations/persistent_feature_store_test_base.py index c5e4846b..92b9cebc 100644 --- a/ldclient/testing/integrations/persistent_feature_store_test_base.py +++ b/ldclient/testing/integrations/persistent_feature_store_test_base.py @@ -4,9 +4,11 @@ from ldclient.feature_store import CacheConfig from ldclient.interfaces import FeatureStore -from ldclient.testing.feature_store_test_base import (FeatureStoreTestBase, - FeatureStoreTester, - StoreTestScope) +from ldclient.testing.feature_store_test_base import ( + FeatureStoreTestBase, + FeatureStoreTester, + StoreTestScope +) from ldclient.testing.test_util import skip_database_tests from ldclient.versioned_data_kind import FEATURES diff --git a/ldclient/testing/integrations/test_dynamodb.py b/ldclient/testing/integrations/test_dynamodb.py index d5acde50..93664d48 100644 --- a/ldclient/testing/integrations/test_dynamodb.py +++ b/ldclient/testing/integrations/test_dynamodb.py @@ -1,9 +1,12 @@ import time -from ldclient.impl.integrations.dynamodb.dynamodb_big_segment_store import \ +from ldclient.impl.integrations.dynamodb.dynamodb_big_segment_store import ( _DynamoDBBigSegmentStore +) from ldclient.impl.integrations.dynamodb.dynamodb_feature_store import ( - _DynamoDBFeatureStoreCore, _DynamoDBHelpers) + _DynamoDBFeatureStoreCore, + _DynamoDBHelpers +) from ldclient.integrations import DynamoDB from ldclient.interfaces import UpdateProcessor from ldclient.testing.integrations.big_segment_store_test_base import * diff --git a/ldclient/testing/integrations/test_redis.py b/ldclient/testing/integrations/test_redis.py index d562f6bc..e7f74894 100644 --- a/ldclient/testing/integrations/test_redis.py +++ b/ldclient/testing/integrations/test_redis.py @@ -2,8 +2,9 @@ import pytest -from ldclient.impl.integrations.redis.redis_big_segment_store import \ +from ldclient.impl.integrations.redis.redis_big_segment_store import ( _RedisBigSegmentStore +) from ldclient.integrations import Redis from ldclient.testing.integrations.big_segment_store_test_base import * from ldclient.testing.integrations.persistent_feature_store_test_base import * diff --git a/ldclient/testing/migrations/test_op_tracker.py b/ldclient/testing/migrations/test_op_tracker.py index 8854be90..36e79e1f 100644 --- a/ldclient/testing/migrations/test_op_tracker.py +++ b/ldclient/testing/migrations/test_op_tracker.py @@ -4,10 +4,17 @@ from ldclient import Context from ldclient.evaluation import EvaluationDetail -from ldclient.migrations import (MigrationOpEvent, Operation, OpTracker, - Origin, Stage) -from ldclient.testing.builders import (MigrationSettingsBuilder, - build_off_flag_with_value) +from ldclient.migrations import ( + MigrationOpEvent, + Operation, + OpTracker, + Origin, + Stage +) +from ldclient.testing.builders import ( + MigrationSettingsBuilder, + build_off_flag_with_value +) from ldclient.testing.test_ldclient import user diff --git a/ldclient/testing/stub_util.py b/ldclient/testing/stub_util.py index 766113f9..d4d45bc0 100644 --- a/ldclient/testing/stub_util.py +++ b/ldclient/testing/stub_util.py @@ -2,8 +2,12 @@ from email.utils import formatdate from ldclient.impl.model import ModelEntity -from ldclient.interfaces import (EventProcessor, FeatureRequester, - FeatureStore, UpdateProcessor) +from ldclient.interfaces import ( + EventProcessor, + FeatureRequester, + FeatureStore, + UpdateProcessor +) from ldclient.testing.http_util import ChunkedResponse, JsonResponse diff --git a/ldclient/testing/test_file_data_source.py b/ldclient/testing/test_file_data_source.py index 250bb23b..62646d9e 100644 --- a/ldclient/testing/test_file_data_source.py +++ b/ldclient/testing/test_file_data_source.py @@ -13,8 +13,11 @@ from ldclient.impl.datasource.status import DataSourceUpdateSinkImpl from ldclient.impl.listeners import Listeners from ldclient.integrations import Files -from ldclient.interfaces import (DataSourceErrorKind, DataSourceState, - DataSourceStatus) +from ldclient.interfaces import ( + DataSourceErrorKind, + DataSourceState, + DataSourceStatus +) from ldclient.testing.test_util import SpyListener from ldclient.versioned_data_kind import FEATURES, SEGMENTS diff --git a/ldclient/testing/test_in_memory_feature_store.py b/ldclient/testing/test_in_memory_feature_store.py index d468d1a1..093f9e88 100644 --- a/ldclient/testing/test_in_memory_feature_store.py +++ b/ldclient/testing/test_in_memory_feature_store.py @@ -2,8 +2,10 @@ from ldclient.feature_store import InMemoryFeatureStore from ldclient.interfaces import FeatureStore -from ldclient.testing.feature_store_test_base import (FeatureStoreTestBase, - FeatureStoreTester) +from ldclient.testing.feature_store_test_base import ( + FeatureStoreTestBase, + FeatureStoreTester +) def test_in_memory_status_checks(): diff --git a/ldclient/testing/test_ldclient.py b/ldclient/testing/test_ldclient.py index 24eac127..997312e1 100644 --- a/ldclient/testing/test_ldclient.py +++ b/ldclient/testing/test_ldclient.py @@ -7,9 +7,11 @@ from ldclient.impl.stubs import NullUpdateProcessor from ldclient.interfaces import UpdateProcessor from ldclient.testing.builders import * -from ldclient.testing.stub_util import (CapturingFeatureStore, - MockEventProcessor, - MockUpdateProcessor) +from ldclient.testing.stub_util import ( + CapturingFeatureStore, + MockEventProcessor, + MockUpdateProcessor +) from ldclient.versioned_data_kind import FEATURES, SEGMENTS unreachable_uri = "http://fake" diff --git a/ldclient/testing/test_ldclient_end_to_end.py b/ldclient/testing/test_ldclient_end_to_end.py index 08bff69f..61e245d2 100644 --- a/ldclient/testing/test_ldclient_end_to_end.py +++ b/ldclient/testing/test_ldclient_end_to_end.py @@ -5,10 +5,17 @@ from ldclient.client import Context, LDClient from ldclient.config import Config, HTTPConfig -from ldclient.testing.http_util import (BasicResponse, SequentialHandler, - start_secure_server, start_server) -from ldclient.testing.stub_util import (make_put_event, poll_content, - stream_content) +from ldclient.testing.http_util import ( + BasicResponse, + SequentialHandler, + start_secure_server, + start_server +) +from ldclient.testing.stub_util import ( + make_put_event, + poll_content, + stream_content +) sdk_key = 'sdk-key' user = Context.from_dict({'key': 'userkey', 'kind': 'user'}) diff --git a/ldclient/testing/test_ldclient_events.py b/ldclient/testing/test_ldclient_events.py index 719be7f7..3bc25917 100644 --- a/ldclient/testing/test_ldclient_events.py +++ b/ldclient/testing/test_ldclient_events.py @@ -2,17 +2,24 @@ from ldclient.evaluation import EvaluationDetail from ldclient.feature_store import InMemoryFeatureStore from ldclient.impl.events.event_processor import DefaultEventProcessor -from ldclient.impl.events.types import (EventInputCustom, EventInputEvaluation, - EventInputIdentify) +from ldclient.impl.events.types import ( + EventInputCustom, + EventInputEvaluation, + EventInputIdentify +) from ldclient.impl.stubs import NullEventProcessor from ldclient.migrations import Operation, OpTracker, Origin, Stage from ldclient.migrations.tracker import MigrationOpEvent from ldclient.testing.builders import * from ldclient.testing.stub_util import MockUpdateProcessor -from ldclient.testing.test_ldclient import (context, make_client, - make_ldd_client, - make_offline_client, - unreachable_uri, user) +from ldclient.testing.test_ldclient import ( + context, + make_client, + make_ldd_client, + make_offline_client, + unreachable_uri, + user +) from ldclient.versioned_data_kind import FEATURES diff --git a/ldclient/testing/test_ldclient_listeners.py b/ldclient/testing/test_ldclient_listeners.py index 7693d36d..2ad697db 100644 --- a/ldclient/testing/test_ldclient_listeners.py +++ b/ldclient/testing/test_ldclient_listeners.py @@ -5,9 +5,12 @@ from ldclient.interfaces import DataSourceState from ldclient.testing.http_util import start_server from ldclient.testing.mock_components import MockBigSegmentStore -from ldclient.testing.stub_util import (MockEventProcessor, - MockUpdateProcessor, make_put_event, - stream_content) +from ldclient.testing.stub_util import ( + MockEventProcessor, + MockUpdateProcessor, + make_put_event, + stream_content +) def test_big_segment_store_status_unavailable(): diff --git a/ldclient/testing/test_ldclient_plugin.py b/ldclient/testing/test_ldclient_plugin.py index fb5a130c..58062d1b 100644 --- a/ldclient/testing/test_ldclient_plugin.py +++ b/ldclient/testing/test_ldclient_plugin.py @@ -6,8 +6,12 @@ from ldclient.client import LDClient from ldclient.config import Config from ldclient.context import Context -from ldclient.hook import (EvaluationDetail, EvaluationSeriesContext, Hook, - Metadata) +from ldclient.hook import ( + EvaluationDetail, + EvaluationSeriesContext, + Hook, + Metadata +) from ldclient.plugin import EnvironmentMetadata, Plugin, PluginMetadata diff --git a/ldclient/testing/test_plugin.py b/ldclient/testing/test_plugin.py index 755bb9dd..5ce0da52 100644 --- a/ldclient/testing/test_plugin.py +++ b/ldclient/testing/test_plugin.py @@ -7,10 +7,19 @@ from unittest.mock import Mock from ldclient.config import Config -from ldclient.hook import (EvaluationDetail, EvaluationSeriesContext, Hook, - Metadata) -from ldclient.plugin import (ApplicationMetadata, EnvironmentMetadata, Plugin, - PluginMetadata, SdkMetadata) +from ldclient.hook import ( + EvaluationDetail, + EvaluationSeriesContext, + Hook, + Metadata +) +from ldclient.plugin import ( + ApplicationMetadata, + EnvironmentMetadata, + Plugin, + PluginMetadata, + SdkMetadata +) class ExampleHook(Hook): diff --git a/pyproject.toml b/pyproject.toml index 7bb52804..1f149bd3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,6 +91,9 @@ ignore_missing_imports = true install_types = true non_interactive = true +[tool.isort] +multi_line_output = 3 + [tool.pytest.ini_options] addopts = ["-ra"]