47
47
deprecation_warn ,
48
48
experimental ,
49
49
experimental_warn ,
50
- ExperimentalWarning ,
51
50
unclosed_resource_warn ,
52
51
)
53
52
from .._work import EagerResult
@@ -261,10 +260,6 @@ def driver(
261
260
routing_context = routing_context , ** config )
262
261
263
262
@classmethod
264
- @experimental (
265
- "The bookmark manager feature is experimental. "
266
- "It might be changed or removed any time even without prior notice."
267
- )
268
263
def bookmark_manager (
269
264
cls ,
270
265
initial_bookmarks : t .Union [None , Bookmarks , t .Iterable [str ]] = None ,
@@ -325,9 +320,6 @@ def bookmark_manager(
325
320
326
321
:returns: A default implementation of :class:`AsyncBookmarkManager`.
327
322
328
- **This is experimental.** (See :ref:`filter-warnings-ref`)
329
- It might be changed or removed any time even without prior notice.
330
-
331
323
.. versionadded:: 5.0
332
324
333
325
.. versionchanged:: 5.3
@@ -341,6 +333,8 @@ def bookmark_manager(
341
333
an argument.
342
334
* ``bookmarks_consumer`` no longer receives the database name as
343
335
an argument.
336
+
337
+ .. versionchanged:: 5.8 stabilized from experimental
344
338
"""
345
339
return AsyncNeo4jBookmarkManager (
346
340
initial_bookmarks = initial_bookmarks ,
@@ -448,12 +442,7 @@ def __init__(self, pool, default_workspace_config):
448
442
assert default_workspace_config is not None
449
443
self ._pool = pool
450
444
self ._default_workspace_config = default_workspace_config
451
- with warnings .catch_warnings ():
452
- warnings .filterwarnings ("ignore" ,
453
- message = r".*\bbookmark manager\b.*" ,
454
- category = ExperimentalWarning )
455
- self ._query_bookmark_manager = \
456
- AsyncGraphDatabase .bookmark_manager ()
445
+ self ._query_bookmark_manager = AsyncGraphDatabase .bookmark_manager ()
457
446
458
447
async def __aenter__ (self ) -> AsyncDriver :
459
448
return self
@@ -543,7 +532,7 @@ async def execute_query(
543
532
self ,
544
533
query_ : str ,
545
534
parameters_ : t .Optional [t .Dict [str , t .Any ]] = None ,
546
- routing_ : T_RoutingControl = RoutingControl .WRITERS ,
535
+ routing_ : T_RoutingControl = RoutingControl .WRITE ,
547
536
database_ : t .Optional [str ] = None ,
548
537
impersonated_user_ : t .Optional [str ] = None ,
549
538
bookmark_manager_ : t .Union [
@@ -561,7 +550,7 @@ async def execute_query(
561
550
self ,
562
551
query_ : str ,
563
552
parameters_ : t .Optional [t .Dict [str , t .Any ]] = None ,
564
- routing_ : T_RoutingControl = RoutingControl .WRITERS ,
553
+ routing_ : T_RoutingControl = RoutingControl .WRITE ,
565
554
database_ : t .Optional [str ] = None ,
566
555
impersonated_user_ : t .Optional [str ] = None ,
567
556
bookmark_manager_ : t .Union [
@@ -574,15 +563,11 @@ async def execute_query(
574
563
) -> _T :
575
564
...
576
565
577
- @experimental (
578
- "Driver.execute_query is experimental. "
579
- "It might be changed or removed any time even without prior notice."
580
- )
581
566
async def execute_query (
582
567
self ,
583
568
query_ : str ,
584
569
parameters_ : t .Optional [t .Dict [str , t .Any ]] = None ,
585
- routing_ : T_RoutingControl = RoutingControl .WRITERS ,
570
+ routing_ : T_RoutingControl = RoutingControl .WRITE ,
586
571
database_ : t .Optional [str ] = None ,
587
572
impersonated_user_ : t .Optional [str ] = None ,
588
573
bookmark_manager_ : t .Union [
@@ -621,9 +606,9 @@ async def work(tx):
621
606
impersonated_user=impersonated_user_,
622
607
bookmark_manager=bookmark_manager_,
623
608
) as session:
624
- if routing_ == RoutingControl.WRITERS :
609
+ if routing_ == RoutingControl.WRITE :
625
610
return await session.execute_write(work)
626
- elif routing_ == RoutingControl.READERS :
611
+ elif routing_ == RoutingControl.READ :
627
612
return await session.execute_read(work)
628
613
629
614
Usage example::
@@ -638,7 +623,7 @@ async def example(driver: neo4j.AsyncDriver) -> List[str]:
638
623
records, summary, keys = await driver.execute_query(
639
624
"MATCH (p:Person {age: $age}) RETURN p.name",
640
625
{"age": 42},
641
- routing_=neo4j.RoutingControl.READERS , # or just "r"
626
+ routing_=neo4j.RoutingControl.READ , # or just "r"
642
627
database_="neo4j",
643
628
)
644
629
assert keys == ["p.name"] # not needed, just for illustration
@@ -659,7 +644,7 @@ async def example(driver: neo4j.AsyncDriver) -> int:
659
644
"SET p.nickname = 'My dear' "
660
645
"RETURN count(*)",
661
646
# optional routing parameter, as write is default
662
- # routing_=neo4j.RoutingControl.WRITERS , # or just "w",
647
+ # routing_=neo4j.RoutingControl.WRITE , # or just "w",
663
648
database_="neo4j",
664
649
result_transformer_=neo4j.AsyncResult.single,
665
650
)
@@ -782,10 +767,9 @@ async def example(driver: neo4j.AsyncDriver) -> neo4j.Record::
782
767
:returns: the result of the ``result_transformer``
783
768
:rtype: T
784
769
785
- **This is experimental.** (See :ref:`filter-warnings-ref`)
786
- It might be changed or removed any time even without prior notice.
787
-
788
770
.. versionadded:: 5.5
771
+
772
+ .. versionchanged:: 5.8 stabilized from experimental
789
773
"""
790
774
invalid_kwargs = [k for k in kwargs if
791
775
k [- 2 :- 1 ] != "_" and k [- 1 :] == "_" ]
@@ -803,17 +787,13 @@ async def example(driver: neo4j.AsyncDriver) -> neo4j.Record::
803
787
bookmark_manager_ = self ._query_bookmark_manager
804
788
assert bookmark_manager_ is not _default
805
789
806
- with warnings .catch_warnings ():
807
- warnings .filterwarnings ("ignore" ,
808
- message = r".*\bbookmark_manager\b.*" ,
809
- category = ExperimentalWarning )
810
- session = self .session (database = database_ ,
811
- impersonated_user = impersonated_user_ ,
812
- bookmark_manager = bookmark_manager_ )
790
+ session = self .session (database = database_ ,
791
+ impersonated_user = impersonated_user_ ,
792
+ bookmark_manager = bookmark_manager_ )
813
793
async with session :
814
- if routing_ == RoutingControl .WRITERS :
794
+ if routing_ == RoutingControl .WRITE :
815
795
executor = session .execute_write
816
- elif routing_ == RoutingControl .READERS :
796
+ elif routing_ == RoutingControl .READ :
817
797
executor = session .execute_read
818
798
else :
819
799
raise ValueError ("Invalid routing control value: %r"
@@ -823,11 +803,7 @@ async def example(driver: neo4j.AsyncDriver) -> neo4j.Record::
823
803
)
824
804
825
805
@property
826
- @experimental (
827
- "Driver.query_bookmark_manager is experimental. "
828
- "It might be changed or removed any time even without prior notice."
829
- )
830
- def query_bookmark_manager (self ) -> AsyncBookmarkManager :
806
+ def execute_query_bookmark_manager (self ) -> AsyncBookmarkManager :
831
807
"""The driver's default query bookmark manager.
832
808
833
809
This is the default :class:`AsyncBookmarkManager` used by
@@ -846,10 +822,12 @@ async def example(driver: neo4j.AsyncDriver) -> None:
846
822
# (i.e., can read what was written by <QUERY 2>)
847
823
await driver.execute_query("<QUERY 3>")
848
824
849
- **This is experimental.** (See :ref:`filter-warnings-ref`)
850
- It might be changed or removed any time even without prior notice.
851
-
852
825
.. versionadded:: 5.5
826
+
827
+ .. versionchanged:: 5.8
828
+ * renamed from ``query_bookmark_manager`` to
829
+ ``execute_query_bookmark_manager``
830
+ * stabilized from experimental
853
831
"""
854
832
return self ._query_bookmark_manager
855
833
@@ -1020,11 +998,7 @@ async def _work(
1020
998
) -> _T :
1021
999
res = await tx .run (query , parameters )
1022
1000
if transformer is AsyncResult .to_eager_result :
1023
- with warnings .catch_warnings ():
1024
- warnings .filterwarnings ("ignore" ,
1025
- message = r".*\bto_eager_result\b.*" ,
1026
- category = ExperimentalWarning )
1027
- return await transformer (res )
1001
+ return await transformer (res )
1028
1002
return await transformer (res )
1029
1003
1030
1004
0 commit comments