gfhttpva

gfhttpva.create_app(config_obj='gfhttpva.config.DefaultConfig')

Create app for Flask application

Parameters:object_name (str) – the python path to the config object (e.g. gfhttpva.config.DefaultConfig)

gfhttpva.gfhttpva

gfhttpva.gfhttpva.find_metrics(*args, **kwargs)

search URL fonction to find metric options with pvAccss

Returns:json formatted search result response
Return type:flask.Response
Raises:InvalidRequest – if request parameters are missing
gfhttpva.gfhttpva.handle_invalid_usage(error)

Flask error handler for InvalidRequest

Parameters:error (exception.InvalidRequest) – error detail
Returns:json formatted error response
Return type:flask.Response
gfhttpva.gfhttpva.hello_world(*args, **kwargs)

Root URL function to use test

Returns:a test str
Return type:str
gfhttpva.gfhttpva.iso_to_dt(iso_str)

Convert ISO time fomat string to datetime with timezone

Parameters:iso_str (str) – iso time format str
Returns:a datetime converted from iso time format str
Return type:datetime.datetime
Raises:InvalidRequest – if iso_str format is invalid
gfhttpva.gfhttpva.query_annotations(*args, **kwargs)

annotations URL fonction to get annotationsj

Returns:json formatted annotations response
Return type:flask.Response
Raises:InvalidRequest – if request parameters are missing
gfhttpva.gfhttpva.query_metrics(*args, **kwargs)

query URL fonction to get metrics

Returns:json formatted metrics response
Return type:flask.Response
Raises:InvalidRequest – if request parameters are missing

gfhttpva.pvaapi

class gfhttpva.pvaapi.Pvaapi(timeout=1)

Bases: object

pvAccess api wrapper

timeout

float – timeout for pvAccess RPC in seconds

_clients

dict – pvAccess RpcClient for ch name

_lock

threading.RLock – lock for _clients

get_annotation(ch_name, annotation, entity, params, starttime, endtime, labels, nturi)

Get annotation values using pvAccess RPC

Parameters:
  • ch_name (str or unicode) – channel name of pvAccess RPC
  • annotation (str or unicode) – annotation to return it as is
  • entity (str or unicode) – query entity
  • params (dict) – parameters for optional RPC request query
  • starttime (str or unicode) – start time as string
  • endtime (str or unicode) – end time as string
  • labels (dict) – labels for entity, starttime and endtime
  • nturi (bool) – whether create request as nturi style or not
Returns:

tuble of value and its time

Return type:

tuple

Raises:

InvalidRequest – if failed to call pvAccess RPC

Get search values using pvAccess RPC

Parameters:
  • ch_name (str or unicode) – channel name of pvAccess RPC
  • entity (str or unicode) – query entity
  • name (str or unicoe) – name to find metrics
  • nturi (bool) – whether create request as nturi style or not
Returns:

list of searched metrics

Return type:

list

Raises:

InvalidRequest – if failed to call pvAccess RPC

valget(ch_name, entity, params, starttime, endtime, labels, nturi)

Get timesiries values using pvAccess RPC

Parameters:
  • ch_name (str or unicode) – channel name of pvAccess RPC
  • entity (str or unicode) – query entity
  • params (dict) – parameters for optional RPC request query
  • starttime (str or unicode) – start time as string
  • endtime (str or unicode) – end time as string
  • labels (dict) – labels for entity, starttime and endtime
  • nturi (bool) – whether create request as nturi style or not
Returns:

tuble of value and its time

Return type:

tuple

Raises:

InvalidRequest – if failed to call pvAccess RPC

valget_table(ch_name, entity, params, starttime, endtime, labels, nturi)

Get table values using pvAccess RPC

Parameters:
  • ch_name (str or unicode) – channel name of pvAccess RPC
  • entity (str or unicode) – query entity
  • params (dict) – parameters for optional RPC request query
  • starttime (str or unicode) – start time as string
  • endtime (str or unicode) – end time as string
  • labels (dict) – labels for entity, starttime and endtime
  • nturi (bool) – whether create request as nturi style or not
Returns:

list of table values dict

Return type:

list of dict

Raises:

InvalidRequest – if failed to call pvAccess RPC

gfhttpva.exception

exception gfhttpva.exception.InvalidRequest(message, status_code=None, details=None)

Bases: exceptions.Exception

A class used to raise invalid request exception on Flask

message

str – error message for error response

status_code

int – status code for error response

details

obj – optional details to give more context for the error

status_code = 400
to_dict()

Return message and details as dict

Returns:a dict which has message and optional details
Return type:dict

gfhttpva.timezone

class gfhttpva.timezone.timezone

Bases: object

Timezone to manage it in programs

tz

pytz.timezone – timezone

get_tz()

Get timezone

Returns:timezone in this program
Return type:pytz.timezone
set_tz(timezone_name)

Set timezone with timezone name

Parameters:timezone_name (str) – name of timezone
Returns:Return if timezone is set correctly
Return type:bool

gfhttpva.config

class gfhttpva.config.DefaultConfig

Bases: object

Class for default configuration

LOG_COUNT = 1
LOG_MAXBYTE = 80000
LOG_PATH = None
PVA_RPC_TIMEOUT = 5
TIMEZONE = 'Asia/Tokyo'
class gfhttpva.config.TestingConfig

Bases: gfhttpva.config.DefaultConfig

Class for test configuration

PVA_RPC_TIMEOUT = 1
TESTING = True