MindsDB 25.3.1.0__py3-none-any.whl → 25.3.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of MindsDB might be problematic. Click here for more details.
- mindsdb/__about__.py +1 -1
- mindsdb/__main__.py +1 -1
- mindsdb/api/executor/sql_query/steps/union_step.py +21 -24
- mindsdb/api/http/gui.py +5 -4
- mindsdb/api/http/initialize.py +19 -19
- mindsdb/integrations/handlers/jira_handler/__init__.py +1 -0
- mindsdb/integrations/handlers/jira_handler/jira_handler.py +22 -80
- mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py +3 -3
- mindsdb/integrations/handlers/slack_handler/slack_handler.py +2 -1
- mindsdb/integrations/libs/api_handler_generator.py +583 -0
- mindsdb/utilities/config.py +1 -1
- {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.2.0.dist-info}/METADATA +233 -234
- {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.2.0.dist-info}/RECORD +16 -17
- {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.2.0.dist-info}/WHEEL +1 -1
- mindsdb/integrations/handlers/jira_handler/jira_table.py +0 -172
- mindsdb/integrations/handlers/jira_handler/requirements.txt +0 -1
- {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.2.0.dist-info}/LICENSE +0 -0
- {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
mindsdb/__about__.py,sha256=
|
|
1
|
+
mindsdb/__about__.py,sha256=eD2kurzO48al2sDXxCSOS1EtaUr9EJLGqH_XZI5B0MM,444
|
|
2
2
|
mindsdb/__init__.py,sha256=fZopLiAYa9MzMZ0d48JgHc_LddfFKDzh7n_8icsjrVs,54
|
|
3
|
-
mindsdb/__main__.py,sha256=
|
|
3
|
+
mindsdb/__main__.py,sha256=Piyg1xe3JCdDRFc4jW8BdcXQJ8Uc_cDEqcyP5xR17J4,21827
|
|
4
4
|
mindsdb/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
mindsdb/api/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
mindsdb/api/common/check_auth.py,sha256=cQEZqsnCbrRtUf8j4H6uPF98cDPu79t8TdtwBi5g30w,1345
|
|
@@ -49,15 +49,15 @@ mindsdb/api/executor/sql_query/steps/prepare_steps.py,sha256=IYsPxelD5WjtLIsfIxW
|
|
|
49
49
|
mindsdb/api/executor/sql_query/steps/project_step.py,sha256=WQ23VkfWrVHKRnyy91Kh9uRI7Twb-IBvSQl2TZy_21w,2854
|
|
50
50
|
mindsdb/api/executor/sql_query/steps/sql_steps.py,sha256=RXZ1L05H_MHwVNdf6qDbIStsDjG_3QxEr3wPuFtZMdM,891
|
|
51
51
|
mindsdb/api/executor/sql_query/steps/subselect_step.py,sha256=o7znv6v6mbtm1mrQpJBWHQeD8s02XDKiTSXHClNJDSE,7275
|
|
52
|
-
mindsdb/api/executor/sql_query/steps/union_step.py,sha256=
|
|
52
|
+
mindsdb/api/executor/sql_query/steps/union_step.py,sha256=wT_cRVE0vGFAXYcdTsm3P8TdfEgU-eHeNfFllR6OJ7U,1791
|
|
53
53
|
mindsdb/api/executor/sql_query/steps/update_step.py,sha256=0MeUNsgVsK4pm2VrwM2ZrRua2JFvUHGhvzwzXRc8I1o,4563
|
|
54
54
|
mindsdb/api/executor/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
55
|
mindsdb/api/executor/utilities/functions.py,sha256=xUrrh2zgsP0cYNUAUDGWUXyam693NTL9nlByUAwx7nw,995
|
|
56
56
|
mindsdb/api/executor/utilities/sql.py,sha256=vULbEMKN3ZB5RULqC_VPRhuROQ0_CotHYqA32Z2gKAg,6280
|
|
57
57
|
mindsdb/api/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
-
mindsdb/api/http/gui.py,sha256=
|
|
58
|
+
mindsdb/api/http/gui.py,sha256=Ph0Yz8G3F2D16VYN61IL6Mxc0j71dOlMn-Wu5r8N2Eg,3137
|
|
59
59
|
mindsdb/api/http/gunicorn_wrapper.py,sha256=U11cza-mn71RcLcJZOYwo2Aee3fRIhAYQxby_FF6_Yc,534
|
|
60
|
-
mindsdb/api/http/initialize.py,sha256=
|
|
60
|
+
mindsdb/api/http/initialize.py,sha256=pWQCv7YicvU7rmqh0w5r-12iWHOtdNChKWID-bxzvXU,16174
|
|
61
61
|
mindsdb/api/http/start.py,sha256=3F2iob1EHNh9cCeuxD1RjlVp0wnRw-ybh7lU5KaYGK8,2350
|
|
62
62
|
mindsdb/api/http/utils.py,sha256=nWP2HxeS0Ami0VSFCyoWyhLsz52mRaYkylQCKzH6d7c,1155
|
|
63
63
|
mindsdb/api/http/namespaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -834,11 +834,9 @@ mindsdb/integrations/handlers/intercom_handler/icon.svg,sha256=7_xPA2UKXxXmYfsb0
|
|
|
834
834
|
mindsdb/integrations/handlers/intercom_handler/intercom_handler.py,sha256=_B0jxBo7Cso2o6pzmmycrFMaB6cJpCdYHMxRLPeGMO4,3726
|
|
835
835
|
mindsdb/integrations/handlers/intercom_handler/intercom_tables.py,sha256=GKEJEhujvyWLLE326yOj-pECujnZV1cZwR65N3LBO-I,4953
|
|
836
836
|
mindsdb/integrations/handlers/jira_handler/__about__.py,sha256=qP5rGBzzyFBTJnGNCeyOjiBlzfYjt26PU6bw_8MJQOQ,337
|
|
837
|
-
mindsdb/integrations/handlers/jira_handler/__init__.py,sha256
|
|
837
|
+
mindsdb/integrations/handlers/jira_handler/__init__.py,sha256=-WxcLvQvLWii6lNY6-nlNwwkMBSMg8n97pleTAflrQY,509
|
|
838
838
|
mindsdb/integrations/handlers/jira_handler/icon.svg,sha256=mv8Ee-sh3YbNrGHgdQdgazMICVjU1StIu1Y41H9SjRc,1246
|
|
839
|
-
mindsdb/integrations/handlers/jira_handler/jira_handler.py,sha256=
|
|
840
|
-
mindsdb/integrations/handlers/jira_handler/jira_table.py,sha256=ttTbNLGNdo_-Pxx-kZ7f31ok990tk16ClGOaqcdRgV4,5886
|
|
841
|
-
mindsdb/integrations/handlers/jira_handler/requirements.txt,sha256=uGqoPIycab1Q50-NoN8vHp7TdzfHVamy9_t1RvONbog,21
|
|
839
|
+
mindsdb/integrations/handlers/jira_handler/jira_handler.py,sha256=UXlwCX728lR_YZg4ipb7hkCyUcH710nIpPirR7s_xdA,2266
|
|
842
840
|
mindsdb/integrations/handlers/kinetica_handler/__about__.py,sha256=t4T3AR68hK91GASSzoP8aWSbbtmszFC0-i7Nb8UVIgs,344
|
|
843
841
|
mindsdb/integrations/handlers/kinetica_handler/__init__.py,sha256=xGpX3Z4sE32AqOPHJ09Vhh-9tvjusZACBCAUwTv8hDI,683
|
|
844
842
|
mindsdb/integrations/handlers/kinetica_handler/connection_args.py,sha256=3AaekEw24nX7mmRsqrYfs0M4jCVQ4VvdRHQDFRBosxs,1682
|
|
@@ -1170,7 +1168,7 @@ mindsdb/integrations/handlers/pgvector_handler/__about__.py,sha256=f7NEmnT5v8Bhc
|
|
|
1170
1168
|
mindsdb/integrations/handlers/pgvector_handler/__init__.py,sha256=291L7daFcaNnMUEcIjs7-U-jgOTJzEvIm2FoO43S_6Q,659
|
|
1171
1169
|
mindsdb/integrations/handlers/pgvector_handler/connection_args.py,sha256=etSu8X9uvYcdG0UZP7N8NdKCywmpcMf19ZPtthZArMg,1688
|
|
1172
1170
|
mindsdb/integrations/handlers/pgvector_handler/icon.svg,sha256=BPrdgXF1gRp2IBmklyYNRpdGtbi1F6Ca78V_L4ji_LE,13760
|
|
1173
|
-
mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py,sha256=
|
|
1171
|
+
mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py,sha256=PSxJdnnTpSGAdxrGwq_X17w01gSvjarjFZj84XZC7UU,19384
|
|
1174
1172
|
mindsdb/integrations/handlers/pgvector_handler/requirements.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1175
1173
|
mindsdb/integrations/handlers/phoenix_handler/__about__.py,sha256=PGGn5y0Y7tn2FnY2Ru1N7yjr6KZb8IhfUoKFc7GZO9I,359
|
|
1176
1174
|
mindsdb/integrations/handlers/phoenix_handler/__init__.py,sha256=dguuDcpGTUdL7KHbLPv3OLY9fmvJrQj5I_CsfmuQdKk,606
|
|
@@ -1392,7 +1390,7 @@ mindsdb/integrations/handlers/slack_handler/__init__.py,sha256=1C8z9FrWQHIk2Dg5f
|
|
|
1392
1390
|
mindsdb/integrations/handlers/slack_handler/connection_args.py,sha256=mzsx968FZZ3gVFXcTimbegcSucYcKzdRnj9FWj1SZ3s,637
|
|
1393
1391
|
mindsdb/integrations/handlers/slack_handler/icon.svg,sha256=bPzub2wQkTiV8nFCoy8TCSAXxYjjg65S7jQT1_yGduM,2005
|
|
1394
1392
|
mindsdb/integrations/handlers/slack_handler/requirements.txt,sha256=92G8Qt34iNKtS1FzKMKUHZp6r8CPz-3TZLn_dD9nY7M,18
|
|
1395
|
-
mindsdb/integrations/handlers/slack_handler/slack_handler.py,sha256=
|
|
1393
|
+
mindsdb/integrations/handlers/slack_handler/slack_handler.py,sha256=aywMa3bryaCoTog7geFw2TvLTtzZALf0Djn6sMGORjI,13349
|
|
1396
1394
|
mindsdb/integrations/handlers/slack_handler/slack_tables.py,sha256=4pkgnyICGoZhJQBWE-gDAZDR2bLm69JoFOHYSAQpbBw,28864
|
|
1397
1395
|
mindsdb/integrations/handlers/slack_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1398
1396
|
mindsdb/integrations/handlers/slack_handler/tests/test_slack.py,sha256=DRRHF-i5J711drntA15ZQY1KvI8GYRDXeKDFiH_alJk,883
|
|
@@ -1679,6 +1677,7 @@ mindsdb/integrations/handlers/zotero_handler/zotero_tables.py,sha256=5uTXP3fYAQ6
|
|
|
1679
1677
|
mindsdb/integrations/libs/__init__.py,sha256=uEz-XQLAwY2nMXc5ilEPP6cWWfo5HpO8o8UfV8JELS0,99
|
|
1680
1678
|
mindsdb/integrations/libs/api_handler.py,sha256=PutrH8LuiEj7SNKb6Nl3ahaC6LieaB8VlG6RQL23w0w,13504
|
|
1681
1679
|
mindsdb/integrations/libs/api_handler_exceptions.py,sha256=mw83eTmo9knpVHP1ISnudonZcBMI_Xzr77b1wXN-eu8,236
|
|
1680
|
+
mindsdb/integrations/libs/api_handler_generator.py,sha256=qQs12fr31g0XvMjTInopNfKiPj7pKfyuNhqqX0tCgGo,19304
|
|
1682
1681
|
mindsdb/integrations/libs/base.py,sha256=fVs3nf98jfA9aH5O18ZlrGjhZuasYHwD9TrgF9fJ8Eo,12851
|
|
1683
1682
|
mindsdb/integrations/libs/const.py,sha256=Pbdv7K_SvOWSwANwu4FK2S0jkJYaRnVZpfx4SexxR8c,407
|
|
1684
1683
|
mindsdb/integrations/libs/ml_exec_base.py,sha256=lp4LGXZUfTaPfY4V44osJQfz0pq0-l3V4gc1vl4rWoc,17540
|
|
@@ -1900,7 +1899,7 @@ mindsdb/migrations/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
1900
1899
|
mindsdb/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1901
1900
|
mindsdb/utilities/auth.py,sha256=6ycLJgXySghgFdzK6emxdStElzt5aOPafjDCRR_g_q0,2336
|
|
1902
1901
|
mindsdb/utilities/cache.py,sha256=6VV5BJ0EWPYK2h80KEM1ETMhw_OCgDKyU6Pejvj1s3E,7431
|
|
1903
|
-
mindsdb/utilities/config.py,sha256=
|
|
1902
|
+
mindsdb/utilities/config.py,sha256=jRyBcGUmFiHbuUzwOwbB5ufySrpUvAjg9qHkDqEMmO4,20946
|
|
1904
1903
|
mindsdb/utilities/context.py,sha256=LyKNgtavQnAfZpaPHINhrA_9L_SjfURUBD9fZNtuQMQ,1813
|
|
1905
1904
|
mindsdb/utilities/context_executor.py,sha256=6ByyeulMePEfRrGxR9vlKYF87R8z1wHFwc1GdfhlGCk,1946
|
|
1906
1905
|
mindsdb/utilities/exception.py,sha256=q-9cwMLmQvuPpwdjRG0xNZ23z9cxHSfyT2295Rk6waA,1034
|
|
@@ -1934,8 +1933,8 @@ mindsdb/utilities/profiler/__init__.py,sha256=d4VXl80uSm1IotR-WwbBInPmLmACiK0Azx
|
|
|
1934
1933
|
mindsdb/utilities/profiler/profiler.py,sha256=KCUtOupkbM_nCoof9MtiuhUzDGezx4a4NsBX6vGWbPA,3936
|
|
1935
1934
|
mindsdb/utilities/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1936
1935
|
mindsdb/utilities/render/sqlalchemy_render.py,sha256=jVzdLD691hCs26wsUfhj6VDC8YIjL5hX0P9zNzSszH4,30311
|
|
1937
|
-
mindsdb-25.3.
|
|
1938
|
-
mindsdb-25.3.
|
|
1939
|
-
mindsdb-25.3.
|
|
1940
|
-
mindsdb-25.3.
|
|
1941
|
-
mindsdb-25.3.
|
|
1936
|
+
mindsdb-25.3.2.0.dist-info/LICENSE,sha256=ziqdjujs6WDn-9g3t0SISjHCBc2pLRht3gnRbQoXmIs,5804
|
|
1937
|
+
mindsdb-25.3.2.0.dist-info/METADATA,sha256=ZYFRSqxlAm4ElLK4jS6ZWeot9Hipz8NZ5DuVe__6Ciw,41659
|
|
1938
|
+
mindsdb-25.3.2.0.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
|
1939
|
+
mindsdb-25.3.2.0.dist-info/top_level.txt,sha256=10wPR96JDf3hM8aMP7Fz0lDlmClEP480zgXISJKr5jE,8
|
|
1940
|
+
mindsdb-25.3.2.0.dist-info/RECORD,,
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import pandas as pd
|
|
2
|
-
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
|
-
from mindsdb.integrations.libs.api_handler import APITable
|
|
6
|
-
from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions
|
|
7
|
-
from mindsdb.utilities import log
|
|
8
|
-
|
|
9
|
-
from mindsdb_sql_parser import ast
|
|
10
|
-
|
|
11
|
-
logger = log.getLogger(__name__)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def flatten_json(nested_json, parent_key="", separator="."):
|
|
15
|
-
"""
|
|
16
|
-
Recursively flattens a nested JSON object into a dictionary with dot notation keys.
|
|
17
|
-
"""
|
|
18
|
-
items = []
|
|
19
|
-
for k, v in nested_json.items():
|
|
20
|
-
new_key = f"{parent_key}{separator}{k}" if parent_key else k
|
|
21
|
-
if isinstance(v, dict):
|
|
22
|
-
items.extend(flatten_json(v, new_key, separator=separator).items())
|
|
23
|
-
else:
|
|
24
|
-
items.append((new_key, v))
|
|
25
|
-
return dict(items)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class JiraProjectsTable(APITable):
|
|
29
|
-
"""Jira Projects Table implementation"""
|
|
30
|
-
|
|
31
|
-
_MAX_API_RESULTS = 100
|
|
32
|
-
|
|
33
|
-
def select(self, query: ast.Select) -> pd.DataFrame:
|
|
34
|
-
"""Pulls data from the Jira "get_all_project_issues" API endpoint
|
|
35
|
-
Parameters
|
|
36
|
-
----------
|
|
37
|
-
query : ast.Select
|
|
38
|
-
Given SQL SELECT query
|
|
39
|
-
Returns
|
|
40
|
-
-------
|
|
41
|
-
pd.DataFrame
|
|
42
|
-
jira "get_all_project_issues" matching the query
|
|
43
|
-
Raises
|
|
44
|
-
------
|
|
45
|
-
ValueError
|
|
46
|
-
If the query contains an unsupported condition
|
|
47
|
-
"""
|
|
48
|
-
conditions = extract_comparison_conditions(query.where)
|
|
49
|
-
|
|
50
|
-
if query.limit:
|
|
51
|
-
total_results = query.limit.value
|
|
52
|
-
|
|
53
|
-
issues_kwargs = {}
|
|
54
|
-
order_by_conditions = {}
|
|
55
|
-
|
|
56
|
-
if query.order_by and len(query.order_by) > 0:
|
|
57
|
-
order_by_conditions["columns"] = []
|
|
58
|
-
order_by_conditions["ascending"] = []
|
|
59
|
-
|
|
60
|
-
for an_order in query.order_by:
|
|
61
|
-
if an_order.field.parts[0] != "key":
|
|
62
|
-
continue
|
|
63
|
-
if an_order.field.parts[1] in ["reporter", "assignee", "status"]:
|
|
64
|
-
if issues_kwargs != {}:
|
|
65
|
-
raise ValueError(
|
|
66
|
-
"Duplicate order conditions found for reporter,status and assignee"
|
|
67
|
-
)
|
|
68
|
-
issues_kwargs["sort"] = an_order.field.parts[1]
|
|
69
|
-
issues_kwargs["direction"] = an_order.direction
|
|
70
|
-
if an_order.field.parts[1] in self.get_columns():
|
|
71
|
-
order_by_conditions["columns"].append(an_order.field.parts[1])
|
|
72
|
-
|
|
73
|
-
if an_order.direction == "ASC":
|
|
74
|
-
order_by_conditions["ascending"].append(True)
|
|
75
|
-
else:
|
|
76
|
-
order_by_conditions["ascending"].append(False)
|
|
77
|
-
else:
|
|
78
|
-
raise ValueError(
|
|
79
|
-
f"Order by unknown column {an_order.field.parts[1]}"
|
|
80
|
-
)
|
|
81
|
-
project = self.handler.connection_data["project"]
|
|
82
|
-
jira_project_df = self.call_jira_api(project)
|
|
83
|
-
|
|
84
|
-
selected_columns = []
|
|
85
|
-
for target in query.targets:
|
|
86
|
-
if isinstance(target, ast.Star):
|
|
87
|
-
selected_columns = self.get_columns()
|
|
88
|
-
break
|
|
89
|
-
elif isinstance(target, ast.Identifier):
|
|
90
|
-
selected_columns.append(target.parts[-1])
|
|
91
|
-
else:
|
|
92
|
-
raise ValueError(f"Unknown query target {type(target)}")
|
|
93
|
-
|
|
94
|
-
if len(jira_project_df) == 0:
|
|
95
|
-
jira_project_df = pd.DataFrame([], columns=selected_columns)
|
|
96
|
-
return jira_project_df
|
|
97
|
-
|
|
98
|
-
jira_project_df.columns = self.get_columns()
|
|
99
|
-
for col in set(jira_project_df.columns).difference(set(selected_columns)):
|
|
100
|
-
jira_project_df = jira_project_df.drop(col, axis=1)
|
|
101
|
-
|
|
102
|
-
if len(order_by_conditions.get("columns", [])) > 0:
|
|
103
|
-
jira_project_df = jira_project_df.sort_values(
|
|
104
|
-
by=order_by_conditions["columns"],
|
|
105
|
-
ascending=order_by_conditions["ascending"],
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
if query.limit:
|
|
109
|
-
jira_project_df = jira_project_df.head(total_results)
|
|
110
|
-
|
|
111
|
-
return jira_project_df
|
|
112
|
-
|
|
113
|
-
def get_columns(self) -> List[str]:
|
|
114
|
-
"""Gets all columns to be returned in pandas DataFrame responses
|
|
115
|
-
Returns
|
|
116
|
-
-------
|
|
117
|
-
List[str]
|
|
118
|
-
List of columns
|
|
119
|
-
"""
|
|
120
|
-
return [
|
|
121
|
-
"key",
|
|
122
|
-
"summary",
|
|
123
|
-
"status",
|
|
124
|
-
"reporter",
|
|
125
|
-
"assignee",
|
|
126
|
-
"priority",
|
|
127
|
-
]
|
|
128
|
-
|
|
129
|
-
def call_jira_api(self, project):
|
|
130
|
-
|
|
131
|
-
jira = self.handler.connect()
|
|
132
|
-
max_records = jira.get_project_issues_count(project)
|
|
133
|
-
max_records = 100
|
|
134
|
-
jql_query = self.handler.construct_jql()
|
|
135
|
-
max_results = self._MAX_API_RESULTS
|
|
136
|
-
start_index = 0
|
|
137
|
-
total = 1
|
|
138
|
-
fields = [
|
|
139
|
-
"key",
|
|
140
|
-
"fields.summary",
|
|
141
|
-
"fields.status.name",
|
|
142
|
-
"fields.reporter.displayName",
|
|
143
|
-
"fields.assignee.displayName",
|
|
144
|
-
"fields.priority.name",
|
|
145
|
-
]
|
|
146
|
-
|
|
147
|
-
all_jira_issues_df = pd.DataFrame(columns=fields)
|
|
148
|
-
|
|
149
|
-
while start_index <= total:
|
|
150
|
-
results = self.handler.connect().jql(
|
|
151
|
-
jql_query, start=start_index, limit=max_results
|
|
152
|
-
)
|
|
153
|
-
flattened_data = [flatten_json(item) for item in results["issues"]]
|
|
154
|
-
df = pd.DataFrame(flattened_data)
|
|
155
|
-
df = df[fields]
|
|
156
|
-
start_index += max_results
|
|
157
|
-
total = results["total"]
|
|
158
|
-
all_jira_issues_df = pd.concat([all_jira_issues_df, df], axis=0)
|
|
159
|
-
|
|
160
|
-
all_jira_issues_df = all_jira_issues_df.rename(
|
|
161
|
-
columns={
|
|
162
|
-
"key": "key",
|
|
163
|
-
"fields.summary": "summary",
|
|
164
|
-
"fields.reporter.displayName": "reporter",
|
|
165
|
-
"fields.assignee.displayName": "assignee",
|
|
166
|
-
"fields.priority.name": "priority",
|
|
167
|
-
"fields.status.name": "status",
|
|
168
|
-
},
|
|
169
|
-
errors="ignore",
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
return all_jira_issues_df
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
atlassian-python-api
|
|
File without changes
|
|
File without changes
|