Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 3 additions & 20 deletions src/api/v1/circular_average.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,13 @@

import logging
from typing import Union
import numpy as np
from requests import request
from src.api.FastAPIApp import api_v1_router
from fastapi import HTTPException, Depends, Body, Response
from fastapi import HTTPException, Depends, Body
import nest_asyncio
from pandas.io.json import build_table_schema
from src.sdk.python.rtdip_sdk.queries.time_series import circular_average
from src.api.v1.models import (
BaseQueryParams,
BaseHeaders,
FieldSchema,
ResampleInterpolateResponse,
PivotResponse,
HTTPError,
Expand All @@ -36,7 +32,7 @@
PivotQueryParams,
LimitOffsetQueryParams,
)
from src.api.v1.common import common_api_setup_tasks, pagination
from src.api.v1.common import common_api_setup_tasks, json_response

nest_asyncio.apply()

Expand All @@ -63,20 +59,7 @@ def circular_average_events_get(

data = circular_average.get(connection, parameters)

return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
return json_response(data, limit_offset_parameters)
except Exception as e:
logging.error(str(e))
raise HTTPException(status_code=400, detail=str(e))
Expand Down
22 changes: 3 additions & 19 deletions src/api/v1/circular_standard_deviation.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,13 @@
import logging
from typing import Union
import numpy as np
from requests import request
from src.api.FastAPIApp import api_v1_router
from fastapi import HTTPException, Depends, Body, Response
from fastapi import HTTPException, Depends, Body
import nest_asyncio
from pandas.io.json import build_table_schema
from src.sdk.python.rtdip_sdk.queries.time_series import circular_standard_deviation
from src.api.v1.models import (
BaseQueryParams,
BaseHeaders,
FieldSchema,
ResampleInterpolateResponse,
PivotResponse,
HTTPError,
Expand All @@ -36,7 +33,7 @@
LimitOffsetQueryParams,
CircularAverageQueryParams,
)
from src.api.v1.common import common_api_setup_tasks, pagination
from src.api.v1.common import common_api_setup_tasks, json_response

nest_asyncio.apply()

Expand All @@ -63,20 +60,7 @@ def circular_standard_deviation_events_get(

data = circular_standard_deviation.get(connection, parameters)

return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
return json_response(data, limit_offset_parameters)
except Exception as e:
logging.error(str(e))
raise HTTPException(status_code=400, detail=str(e))
Expand Down
23 changes: 22 additions & 1 deletion src/api/v1/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,19 @@
# limitations under the License.

import os
import numpy as np
import importlib.util
from typing import Any
from fastapi import Response

from pandas import DataFrame
from pandas.io.json import build_table_schema
from src.sdk.python.rtdip_sdk.connectors import DatabricksSQLConnection

if importlib.util.find_spec("turbodbc") != None:
from src.sdk.python.rtdip_sdk.connectors import TURBODBCSQLConnection
from src.api.auth import azuread
from .models import BaseHeaders, LimitOffsetQueryParams, PaginationRow
from .models import BaseHeaders, FieldSchema, LimitOffsetQueryParams, PaginationRow


def common_api_setup_tasks( # NOSONAR
Expand Down Expand Up @@ -153,3 +155,22 @@ def pagination(limit_offset_parameters: LimitOffsetQueryParams, data: DataFrame)
)

return pagination


def json_response(
data: DataFrame, limit_offset_parameters: LimitOffsetQueryParams
) -> Response:
return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
22 changes: 3 additions & 19 deletions src/api/v1/interpolate.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,12 @@
from typing import Union

from src.api.FastAPIApp import api_v1_router
from fastapi import HTTPException, Depends, Body, Response
from fastapi import HTTPException, Depends, Body
import nest_asyncio
from pandas.io.json import build_table_schema
import numpy as np
from src.sdk.python.rtdip_sdk.queries.time_series import interpolate
from src.api.v1.models import (
BaseQueryParams,
BaseHeaders,
FieldSchema,
ResampleInterpolateResponse,
PivotResponse,
HTTPError,
Expand All @@ -36,7 +33,7 @@
PivotQueryParams,
LimitOffsetQueryParams,
)
from src.api.v1.common import common_api_setup_tasks, pagination
from src.api.v1.common import common_api_setup_tasks, json_response

nest_asyncio.apply()

Expand Down Expand Up @@ -65,20 +62,7 @@ def interpolate_events_get(

data = interpolate.get(connection, parameters)

return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
return json_response(data, limit_offset_parameters)
except Exception as e:
logging.error(str(e))
raise HTTPException(status_code=400, detail=str(e))
Expand Down
22 changes: 3 additions & 19 deletions src/api/v1/interpolation_at_time.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,13 @@

import logging
from typing import Union
import numpy as np
from src.api.FastAPIApp import api_v1_router
from fastapi import HTTPException, Depends, Body, Response
from fastapi import HTTPException, Depends, Body
import nest_asyncio
from pandas.io.json import build_table_schema
from src.sdk.python.rtdip_sdk.queries.time_series import interpolation_at_time
from src.api.v1.models import (
BaseQueryParams,
BaseHeaders,
FieldSchema,
ResampleInterpolateResponse,
PivotResponse,
HTTPError,
Expand All @@ -33,7 +30,7 @@
PivotQueryParams,
LimitOffsetQueryParams,
)
from src.api.v1.common import common_api_setup_tasks, pagination
from src.api.v1.common import common_api_setup_tasks, json_response

nest_asyncio.apply()

Expand All @@ -58,20 +55,7 @@ def interpolation_at_time_events_get(

data = interpolation_at_time.get(connection, parameters)

return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
return json_response(data, limit_offset_parameters)
except Exception as e:
logging.error(str(e))
raise HTTPException(status_code=400, detail=str(e))
Expand Down
22 changes: 3 additions & 19 deletions src/api/v1/latest.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,20 @@


import logging
import numpy as np
from pandas.io.json import build_table_schema
from fastapi import Query, HTTPException, Depends, Body, Response
from fastapi import Query, HTTPException, Depends, Body
import nest_asyncio
from src.sdk.python.rtdip_sdk.queries.time_series import latest
from src.api.v1.models import (
BaseQueryParams,
BaseHeaders,
FieldSchema,
MetadataQueryParams,
TagsBodyParams,
LatestResponse,
LimitOffsetQueryParams,
HTTPError,
)
from src.api.auth.azuread import oauth2_scheme
from src.api.v1.common import common_api_setup_tasks, pagination
from src.api.v1.common import common_api_setup_tasks, json_response
from src.api.FastAPIApp import api_v1_router

nest_asyncio.apply()
Expand All @@ -49,20 +46,7 @@ def latest_retrieval_get(

data = latest.get(connection, parameters)

return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
return json_response(data, limit_offset_parameters)
except Exception as e:
logging.error(str(e))
raise HTTPException(status_code=400, detail=str(e))
Expand Down
22 changes: 3 additions & 19 deletions src/api/v1/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import logging
import numpy as np
from pandas.io.json import build_table_schema
from fastapi import Query, HTTPException, Depends, Body, Response
from fastapi import Query, HTTPException, Depends, Body
import nest_asyncio
from src.sdk.python.rtdip_sdk.queries import metadata
from src.api.v1.models import (
BaseQueryParams,
BaseHeaders,
FieldSchema,
MetadataQueryParams,
TagsBodyParams,
MetadataResponse,
LimitOffsetQueryParams,
HTTPError,
)
from src.api.auth.azuread import oauth2_scheme
from src.api.v1.common import common_api_setup_tasks, pagination
from src.api.v1.common import common_api_setup_tasks, json_response
from src.api.FastAPIApp import api_v1_router

nest_asyncio.apply()
Expand All @@ -47,20 +44,7 @@ def metadata_retrieval_get(

data = metadata.get(connection, parameters)

return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
return json_response(data, limit_offset_parameters)
except Exception as e:
logging.error(str(e))
raise HTTPException(status_code=400, detail=str(e))
Expand Down
24 changes: 3 additions & 21 deletions src/api/v1/raw.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,14 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


import json
import logging
import numpy as np
from pandas.io.json import build_table_schema
from fastapi import Query, HTTPException, Depends, Body, Response
from fastapi import HTTPException, Depends, Body
import nest_asyncio
from src.sdk.python.rtdip_sdk.queries.time_series import raw
from src.api.v1.models import (
BaseHeaders,
BaseQueryParams,
FieldSchema,
RawResponse,
RawQueryParams,
TagsQueryParams,
Expand All @@ -32,7 +27,7 @@
HTTPError,
)
from src.api.auth.azuread import oauth2_scheme
from src.api.v1.common import common_api_setup_tasks, pagination
from src.api.v1.common import common_api_setup_tasks, json_response
from src.api.FastAPIApp import api_v1_router

nest_asyncio.apply()
Expand All @@ -56,20 +51,7 @@ def raw_events_get(

data = raw.get(connection, parameters)

return Response(
content="{"
+ '"schema":{},"data":{},"pagination":{}'.format(
FieldSchema.model_validate(
build_table_schema(data, index=False, primary_key=False),
).model_dump_json(),
data.replace({np.nan: None}).to_json(
orient="records", date_format="iso", date_unit="ns"
),
pagination(limit_offset_parameters, data).model_dump_json(),
)
+ "}",
media_type="application/json",
)
return json_response(data, limit_offset_parameters)
except Exception as e:
logging.error(str(e))
raise HTTPException(status_code=400, detail=str(e))
Expand Down
Loading