Data Interface

Data is key for Visualisation so this is why Epyk provides ways to retrieve / connect the data.

Data Transformers

Those will transform the data to fit the format expected by the various containers. Basically this is the format expected in the HTML components in the __init__ or in the build method.

Those functions can be used from the page object from page.data or directly from the module by using pk.

This module should be moved to a dedicated package in future releases to make the use on the backend side lighter.

Interface Documentation

class epyk.core.data.Data.DataJs(page: PageModel)
list(js_code: str, data)

Transform a Python object to a JavaScript list.

Parameters:
  • js_code (str) – The Javascript variable name.

  • data – Object passed to the Javascript layer.W

number(js_code: str, value)

Transform a Python number to a JavaScript one.

Parameters:
  • js_code – The Javascript variable name.

  • value – Object passed to the Javascript layer.

object(js_code: str, value: float)

Transform a Python object to a JavaScript object.

Parameters:
  • js_code – The Javascript variable name.

  • value – Object passed to the Javascript layer.

record(js_code: Optional[str] = None, data=None)

Interface to transform Python records to Javascript objects. This will allow interactivity of the various HTML components.

Usage:

:param js_code: Optional. The Javascript variable name.
:param data: Object passed to the Javascript layer.
Return type:

DataCore.DataGlobal

server(hostname: str, port: int = 8080)

Configuration data for server interaction. This will only help on centralising the configuration in the final page.

Parameters:
  • hostname – The server hostname.

  • port – Optional. The server port.

Return type:

DataCore.ServerConfig

class epyk.core.data.Data.DataSrc(page: Optional[PageModel] = None)
property bb

Interface to Billboard data transformation.

This will convert Python object to input data for Billboard charts.

Return type:

DataPy.C3

property c3

Interface to C3 data transformation.

This will convert Python object to input data for C3 charts.

Return type:

DataPy.C3

property chartJs

Interface to chartJs data transformation.

This will convert Python object to input data for chartJs charts.

Return type:

DataPy.ChartJs

property db

Interface to the internal database wrapper.

Return type:

DataDb.DataDb

from_cache(code: str, is_secured: bool = False, report_name: Optional[str] = None)

Loads data from a cached files.

Parameters:
  • code – The code for the data.

  • is_secured – Optional, boolean to set if the file should be secured. Default False.

  • report_name – Optional. the environment in which cache are stored. Default current one.

Returns:

Return the data

from_file(filename, isSecured=False, report_name=None)

Return the file.

Parameters:
  • filename – The filename.

  • isSecured – Optional. Check if the file is secured or not.

  • report_name – Optional. The environment with the file.

Returns:

The file object

from_get(url, data=None, code=None)
from_source(http_data, file_name, func_name='getData', report_name=None, folder='sources', path=None)

Returns data from a internal data service defined in the sources folder.

Parameters:
  • http_data – The input data for the service

  • file_name – The service file name

  • func_ame – Optional, the function name in the service. Default getData

  • report_name – Optional, the report name. Default the current one

  • folder – Optional, the folder with the services. Default sources

  • path – Optional, the path to be added to the python system path

property google

Interface to Google data transformation.

This will convert Python object to input data for Google charts.

Return type:

DataPy.Google

grpc(service_name, path, module, host='localhost', port=50051)

Interface to a GRPC server.

Usage:

grpc = page.data.grpc(serviceName="GreeterStub", module="helloworld_pb2_grpc", path="")
data = grpc.imp("helloworld_pb2").HelloRequest(name="Test")
print(grpc.request("SayHello", data))

Related Pages:

Parameters:
  • service_name – The Service name (the class name in the python module)

  • path – The path with the GRPC features

  • module – The python module name for the service

  • host – The service host name (e.g localhost)

  • port – The service port

Returns:

A GRPC wrapped object

Return type:

DataGrpc.DataGrpc

property js

Interface to standard JavaScript transformation.

Return type:

DataJs

property nvd3

Interface to NVD3 data transformation.

This will convert Python object to input data for NVD3 charts.

Return type:

DataPy.NVD3

pdf(filename, path=None)

Read a pdf file

This will require an external module PyPDF2.

Usage:

data = page.data.pdf("document.pdf", r"")
data.getPage(0)

Related Pages:

Parameters:
  • filename – The pdf file name

  • path – The file path

Returns:

A pdf object from PyPDF2

property plotly

Interface to Plotly data transformation.

This will convert Python object to input data for Plotly charts.

Return type:

DataPy.Plotly

rest(url, data=None, method=None, encoding='utf-8', headers=None, unverifiable=False, proxy=None)

Interface to a REST server.

Test with a online server can be done here https://jsonplaceholder.typicode.com/

Usage:

page.data.rest("https://jsonplaceholder.typicode.com/posts/1", method="PUT")

Related Pages:

Parameters:
  • url – The REST service url

  • data – The input data for the service

rpc(url, data=None, headers=None, is_secured=False)

Interface to a RPC server.

This is using the external python package jsonrpcclient (https://jsonrpcclient.readthedocs.io/en/latest/)

Related Pages:

Parameters:
  • url – The RPC service url

  • data – The input data for the service

rss(url, proxy=None, method='GET')

Entry point to retrieve RSS feeds.

This module will require beautifulsoup4 as external package

Usage:

xml_soup = rptObj.data.rss("http://feeds.reuters.com/reuters/businessNews")
for title in xml_soup.findAll('title'):
  print(title)

Related Pages:

Parameters:
  • url – The url of the html page

  • method – Optional, The request method. Default method GET

Returns:

A xml object

save_cache(data, code, is_secured: bool = False, if_missing: bool = True)

Temporary files are saved in a pickle manner in order to avoid having to parse those files again.

Parameters:
  • data – The data to be saved.

  • code – The code for the data.

  • is_secured – Optional. boolean to set if the file should be secured. Default False.

  • if_missing – Optional. boolean to set the fact that caches are only saved if missing.

soap(wsdl)

Interface to a SOAP server.

This function will require an external python package zeep to use SOAP

Usage:

soap = page.data.soap("http://www.soapclient.com/xml/soapresponder.wsdl")
soap.Method1('Zeep', 'is cool')

Related Pages:

Parameters:

wsdl – The wsdl service url

Return type:

zeep.service

Returns:

The SOAP services

socket(data, host='localhost', port=5000, encoding='utf-8')
Parameters:
  • data – The input data for the service

  • host – The service host name (e.g localhost)

  • port – The service port

  • encoding

property vis

Interface to Vis data transformation.

This will convert Python object to input data for Vis charts.

Return type:

DataPy.Vis

webscrapping(url, parser='html.parser', proxy=None, method=None)

Entry point to retrieve data from any website.

This module will require beautifulsoup4 as external package

Usage:

page.data.webscrapping("https://www.w3schools.com/colors/default.asp")
xml_soup.findAll('title')

Related Pages:

Parameters:
  • url – The url of the html page

  • parser – The output data parser

  • proxy

  • method

Returns:

A xml object