Skip to content

Commit a4fc485

Browse files
authored
Merge pull request #197 from poissoncorp/RDBC-767
RDBC-767 Python Client - time series 4
2 parents 9cb7335 + 8cb248a commit a4fc485

37 files changed

+3128
-161
lines changed

ravendb/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,15 @@
6363
GetCompareExchangeValuesOperation,
6464
DeleteCompareExchangeValueOperation,
6565
)
66-
from ravendb.documents.operations.configuration import (
66+
from ravendb.documents.operations.configuration.operations import (
6767
GetServerWideClientConfigurationOperation,
6868
PutServerWideClientConfigurationOperation,
6969
ClientConfiguration,
7070
GetClientConfigurationOperation,
7171
PutClientConfigurationOperation,
72-
StudioConfiguration,
73-
StudioEnvironment,
7472
)
73+
from ravendb.documents.operations.configuration.definitions import StudioConfiguration, StudioEnvironment
74+
7575
from ravendb.documents.operations.connection_strings import ConnectionString
7676
from ravendb.documents.operations.etl.configuration import EtlConfiguration, RavenEtlConfiguration
7777
from ravendb.documents.operations.etl.olap import OlapEtlConfiguration

ravendb/documents/commands/batches.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
)
1616
from ravendb.documents.operations.time_series import TimeSeriesOperation
1717
from ravendb.documents.session.misc import TransactionMode, ForceRevisionStrategy
18-
from ravendb.documents.time_series import TimeSeriesOperations
1918
from ravendb.http.raven_command import RavenCommand
2019
from ravendb.http.server_node import ServerNode
2120
from ravendb.json.result import BatchCommandResult

ravendb/documents/conventions.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
from typing import TypeVar
1313
from ravendb.json.metadata_as_dictionary import MetadataAsDictionary
1414
from ravendb.primitives import constants
15-
from ravendb.documents.operations.configuration import ClientConfiguration, LoadBalanceBehavior, ReadBalanceBehavior
15+
from ravendb.documents.operations.configuration.definitions import (
16+
ClientConfiguration,
17+
LoadBalanceBehavior,
18+
ReadBalanceBehavior,
19+
)
1620
from ravendb.documents.indexes.definitions import SortOptions
1721
from ravendb.tools.utils import Utils
1822

ravendb/documents/indexes/definitions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ def detect_static_index_source_type(map_str: str) -> IndexSourceType:
625625

626626
tokens = [token for token in map_lower.split(" ", 4) if token]
627627

628-
if len(tokens) > 4 and tokens[2].lower() == "in":
628+
if len(tokens) >= 4 and tokens[2].lower() == "in":
629629
if tokens[3].startswith("timeseries"):
630630
return IndexSourceType.TIME_SERIES
631631
if tokens[3].startswith("counters"):

ravendb/documents/operations/configuration/__init__.py

Whitespace-only changes.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
from __future__ import annotations
2+
from enum import Enum
3+
from typing import Optional, Union
4+
5+
from ravendb.http.misc import ReadBalanceBehavior, LoadBalanceBehavior
6+
7+
8+
class StudioEnvironment(Enum):
9+
NONE = "NONE"
10+
DEVELOPMENT = "DEVELOPMENT"
11+
TESTING = "TESTING"
12+
PRODUCTION = "PRODUCTION"
13+
14+
15+
class StudioConfiguration:
16+
def __init__(self, disabled: Optional[bool] = None, environment: Optional[StudioEnvironment] = None):
17+
self.disabled = disabled
18+
self.environment = environment
19+
20+
21+
class ClientConfiguration:
22+
def __init__(self):
23+
self.__identity_parts_separator: Union[None, str] = None
24+
self.etag: int = 0
25+
self.disabled: bool = False
26+
self.max_number_of_requests_per_session: Optional[int] = None
27+
self.read_balance_behavior: Optional[ReadBalanceBehavior] = None
28+
self.load_balance_behavior: Optional[LoadBalanceBehavior] = None
29+
self.load_balancer_context_seed: Optional[int] = None
30+
31+
@property
32+
def identity_parts_separator(self) -> str:
33+
return self.__identity_parts_separator
34+
35+
@identity_parts_separator.setter
36+
def identity_parts_separator(self, value: str):
37+
if value is not None and "|" == value:
38+
raise ValueError("Cannot set identity parts separator to '|'")
39+
self.__identity_parts_separator = value
40+
41+
def to_json(self) -> dict:
42+
return {
43+
"IdentityPartsSeparator": self.__identity_parts_separator,
44+
"Etag": self.etag,
45+
"Disabled": self.disabled,
46+
"MaxNumberOfRequestsPerSession": self.max_number_of_requests_per_session,
47+
"ReadBalanceBehavior": self.read_balance_behavior.value
48+
if self.read_balance_behavior
49+
else ReadBalanceBehavior.NONE,
50+
"LoadBalanceBehavior": self.load_balance_behavior.value
51+
if self.load_balance_behavior
52+
else LoadBalanceBehavior.NONE,
53+
"LoadBalancerContextSeed": self.load_balancer_context_seed,
54+
}
55+
56+
@classmethod
57+
def from_json(cls, json_dict: dict) -> Optional[ClientConfiguration]:
58+
if json_dict is None:
59+
return None
60+
config = cls()
61+
config.__identity_parts_separator = json_dict["IdentityPartsSeparator"]
62+
config.etag = json_dict["Etag"]
63+
config.disabled = json_dict["Disabled"]
64+
config.max_number_of_requests_per_session = json_dict["MaxNumberOfRequestsPerSession"]
65+
config.read_balance_behavior = ReadBalanceBehavior(json_dict["ReadBalanceBehavior"])
66+
config.load_balance_behavior = LoadBalanceBehavior(json_dict["LoadBalanceBehavior"])
67+
config.load_balancer_context_seed = json_dict["LoadBalancerContextSeed"]
68+
69+
return config

ravendb/documents/operations/configuration.py renamed to ravendb/documents/operations/configuration/operations.py

Lines changed: 3 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,21 @@
11
from __future__ import annotations
22

33
import json
4-
from enum import Enum
5-
from typing import Union, Optional, TYPE_CHECKING
4+
from typing import TYPE_CHECKING
65

76
import requests
87

8+
from ravendb.documents.operations.configuration.definitions import ClientConfiguration
99
from ravendb.documents.operations.definitions import VoidMaintenanceOperation, MaintenanceOperation
1010
from ravendb.http.raven_command import RavenCommand, VoidRavenCommand
1111
from ravendb.http.server_node import ServerNode
1212
from ravendb.http.topology import RaftCommand
13-
from ravendb.serverwide.operations.common import ServerOperation, VoidServerOperation
1413
from ravendb.util.util import RaftIdGenerator
15-
from ravendb.http.misc import ReadBalanceBehavior, LoadBalanceBehavior
1614

1715
if TYPE_CHECKING:
1816
from ravendb.documents.conventions import DocumentConventions
1917

20-
21-
class StudioEnvironment(Enum):
22-
NONE = "NONE"
23-
DEVELOPMENT = "DEVELOPMENT"
24-
TESTING = "TESTING"
25-
PRODUCTION = "PRODUCTION"
26-
27-
28-
class StudioConfiguration:
29-
def __init__(self, disabled: Optional[bool] = None, environment: Optional[StudioEnvironment] = None):
30-
self.disabled = disabled
31-
self.environment = environment
32-
33-
34-
class ClientConfiguration:
35-
def __init__(self):
36-
self.__identity_parts_separator: Union[None, str] = None
37-
self.etag: int = 0
38-
self.disabled: bool = False
39-
self.max_number_of_requests_per_session: Union[None, int] = None
40-
self.read_balance_behavior: Union[None, "ReadBalanceBehavior"] = None
41-
self.load_balance_behavior: Union[None, "LoadBalanceBehavior"] = None
42-
self.load_balancer_context_seed: Union[None, int] = None
43-
44-
@property
45-
def identity_parts_separator(self) -> str:
46-
return self.__identity_parts_separator
47-
48-
@identity_parts_separator.setter
49-
def identity_parts_separator(self, value: str):
50-
if value is not None and "|" == value:
51-
raise ValueError("Cannot set identity parts separator to '|'")
52-
self.__identity_parts_separator = value
53-
54-
def to_json(self) -> dict:
55-
return {
56-
"IdentityPartsSeparator": self.__identity_parts_separator,
57-
"Etag": self.etag,
58-
"Disabled": self.disabled,
59-
"MaxNumberOfRequestsPerSession": self.max_number_of_requests_per_session,
60-
"ReadBalanceBehavior": self.read_balance_behavior.value
61-
if self.read_balance_behavior
62-
else ReadBalanceBehavior.NONE,
63-
"LoadBalanceBehavior": self.load_balance_behavior.value
64-
if self.load_balance_behavior
65-
else LoadBalanceBehavior.NONE,
66-
"LoadBalancerContextSeed": self.load_balancer_context_seed,
67-
}
68-
69-
@classmethod
70-
def from_json(cls, json_dict: dict) -> Optional[ClientConfiguration]:
71-
if json_dict is None:
72-
return None
73-
config = cls()
74-
config.__identity_parts_separator = json_dict["IdentityPartsSeparator"]
75-
config.etag = json_dict["Etag"]
76-
config.disabled = json_dict["Disabled"]
77-
config.max_number_of_requests_per_session = json_dict["MaxNumberOfRequestsPerSession"]
78-
config.read_balance_behavior = ReadBalanceBehavior(json_dict["ReadBalanceBehavior"])
79-
config.load_balance_behavior = LoadBalanceBehavior(json_dict["LoadBalanceBehavior"])
80-
config.load_balancer_context_seed = json_dict["LoadBalancerContextSeed"]
81-
82-
return config
18+
from ravendb.serverwide.operations.common import ServerOperation, VoidServerOperation
8319

8420

8521
class GetClientConfigurationOperation(MaintenanceOperation):

0 commit comments

Comments
 (0)