@@ -40,16 +40,7 @@ class JiraStream(HttpStream, ABC):
40
40
41
41
primary_key = "id"
42
42
parse_response_root = None
43
-
44
- # To prevent dangerous behavior, the `vcr` library prohibits the use of nested caching.
45
- # Here's an example of dangerous behavior:
46
- # cache = Cassette.use('whatever')
47
- # with cache:
48
- # with cache:
49
- # pass
50
- #
51
- # Therefore, we will only use `cache` for the top-level stream, so as not to cause possible difficulties.
52
- top_level_stream = True
43
+ use_request_cache = True
53
44
54
45
def __init__ (self , domain : str , projects : List [str ], ** kwargs ):
55
46
super (JiraStream , self ).__init__ (** kwargs )
@@ -97,7 +88,7 @@ def request_headers(
97
88
return {"Accept" : "application/json" }
98
89
99
90
def read_records (self , ** kwargs ) -> Iterable [Mapping [str , Any ]]:
100
- if self .top_level_stream :
91
+ if self .use_request_cache :
101
92
with self ._cache :
102
93
yield from super ().read_records (** kwargs )
103
94
else :
@@ -206,7 +197,7 @@ class BoardIssues(V1ApiJiraStream, IncrementalJiraStream):
206
197
207
198
cursor_field = "updated"
208
199
parse_response_root = "issues"
209
- top_level_stream = False
200
+ use_request_cache = False
210
201
211
202
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
212
203
board_id = stream_slice ["board_id" ]
@@ -280,7 +271,7 @@ class EpicIssues(IncrementalJiraStream):
280
271
281
272
cursor_field = "updated"
282
273
parse_response_root = "issues"
283
- top_level_stream = False
274
+ use_request_cache = False
284
275
285
276
def __init__ (self , start_date : str = "" , ** kwargs ):
286
277
super ().__init__ (** kwargs )
@@ -325,7 +316,7 @@ class FilterSharing(JiraStream):
325
316
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-filter-sharing/#api-rest-api-3-filter-id-permission-get
326
317
"""
327
318
328
- top_level_stream = False
319
+ use_request_cache = False
329
320
330
321
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
331
322
filter_id = stream_slice ["filter_id" ]
@@ -396,7 +387,7 @@ class IssueComments(JiraStream):
396
387
"""
397
388
398
389
parse_response_root = "comments"
399
- top_level_stream = False
390
+ use_request_cache = False
400
391
401
392
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
402
393
key = stream_slice ["key" ]
@@ -437,7 +428,7 @@ class IssueCustomFieldContexts(JiraStream):
437
428
"""
438
429
439
430
parse_response_root = "values"
440
- top_level_stream = False
431
+ use_request_cache = False
441
432
442
433
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
443
434
field_id = stream_slice ["field_id" ]
@@ -512,7 +503,7 @@ class IssueProperties(JiraStream):
512
503
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-properties/#api-rest-api-3-issue-issueidorkey-properties-propertykey-get
513
504
"""
514
505
515
- top_level_stream = False
506
+ use_request_cache = False
516
507
517
508
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
518
509
key = stream_slice ["key" ]
@@ -532,7 +523,7 @@ class IssueRemoteLinks(JiraStream):
532
523
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-remote-links/#api-rest-api-3-issue-issueidorkey-remotelink-get
533
524
"""
534
525
535
- top_level_stream = False
526
+ use_request_cache = False
536
527
537
528
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
538
529
key = stream_slice ["key" ]
@@ -597,7 +588,7 @@ class IssueVotes(JiraStream):
597
588
"""
598
589
599
590
# parse_response_root = "voters"
600
- top_level_stream = False
591
+ use_request_cache = False
601
592
602
593
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
603
594
key = stream_slice ["key" ]
@@ -617,7 +608,7 @@ class IssueWatchers(JiraStream):
617
608
"""
618
609
619
610
# parse_response_root = "watchers"
620
- top_level_stream = False
611
+ use_request_cache = False
621
612
622
613
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
623
614
key = stream_slice ["key" ]
@@ -635,7 +626,7 @@ class IssueWorklogs(JiraStream):
635
626
"""
636
627
637
628
parse_response_root = "worklogs"
638
- top_level_stream = False
629
+ use_request_cache = False
639
630
640
631
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
641
632
key = stream_slice ["key" ]
@@ -714,7 +705,7 @@ class ProjectAvatars(JiraStream):
714
705
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-avatars/#api-rest-api-3-project-projectidorkey-avatars-get
715
706
"""
716
707
717
- top_level_stream = False
708
+ use_request_cache = False
718
709
719
710
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
720
711
key = stream_slice ["key" ]
@@ -746,7 +737,7 @@ class ProjectComponents(JiraStream):
746
737
"""
747
738
748
739
parse_response_root = "values"
749
- top_level_stream = False
740
+ use_request_cache = False
750
741
751
742
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
752
743
key = stream_slice ["key" ]
@@ -763,7 +754,7 @@ class ProjectEmail(JiraStream):
763
754
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-email/#api-rest-api-3-project-projectid-email-get
764
755
"""
765
756
766
- top_level_stream = False
757
+ use_request_cache = False
767
758
768
759
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
769
760
project_id = stream_slice ["project_id" ]
@@ -780,7 +771,7 @@ class ProjectPermissionSchemes(JiraStream):
780
771
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-permission-schemes/#api-rest-api-3-project-projectkeyorid-securitylevel-get
781
772
"""
782
773
783
- top_level_stream = False
774
+ use_request_cache = False
784
775
785
776
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
786
777
key = stream_slice ["key" ]
@@ -807,7 +798,7 @@ class ProjectVersions(JiraStream):
807
798
"""
808
799
809
800
parse_response_root = "values"
810
- top_level_stream = False
801
+ use_request_cache = False
811
802
812
803
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
813
804
key = stream_slice ["key" ]
@@ -836,7 +827,7 @@ class ScreenTabs(JiraStream):
836
827
"""
837
828
838
829
raise_on_http_errors = False
839
- top_level_stream = False
830
+ use_request_cache = False
840
831
841
832
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
842
833
screen_id = stream_slice ["screen_id" ]
@@ -857,7 +848,7 @@ class ScreenTabFields(JiraStream):
857
848
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-screen-tab-fields/#api-rest-api-3-screens-screenid-tabs-tabid-fields-get
858
849
"""
859
850
860
- top_level_stream = False
851
+ use_request_cache = False
861
852
862
853
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
863
854
screen_id = stream_slice ["screen_id" ]
@@ -909,7 +900,7 @@ class SprintIssues(V1ApiJiraStream, IncrementalJiraStream):
909
900
910
901
cursor_field = "updated"
911
902
parse_response_root = "issues"
912
- top_level_stream = False
903
+ use_request_cache = False
913
904
914
905
def path (self , stream_slice : Mapping [str , Any ] = None , ** kwargs ) -> str :
915
906
sprint_id = stream_slice ["sprint_id" ]
0 commit comments