pyreports modules

io

The io module contains all the classes and functions needed to interface with inputs and outputs.

Contains all input management.

class pyreports.io.Connection(*args, **kwargs)

Bases: ABC

Connection base class

__init__(*args, **kwargs)

Connection base object.

__repr__()

Return repr(self).

__weakref__

list of weak references to the object (if defined)

class pyreports.io.CsvFile(filename)

Bases: File

CSV file class

read(**kwargs)

Read csv format

Returns:

Dataset object

write(data)

Write data on csv file

Parameters:

data – data to write on csv file

Returns:

None

class pyreports.io.DatabaseManager(connection: Connection)

Bases: Manager

Database manager class for SQL connection

__init__(connection: Connection)

Database manager object for SQL connection

Parameters:

connection – Connection based object

__repr__()

Representation of DatabaseManager object

Returns:

string

callproc(proc_name, params=None) Dataset

Calls the stored procedure named

Parameters:
  • proc_name – name of store procedure

  • params – sequence of parameters must contain one entry for each argument that the procedure expects

Returns:

Dataset object

commit()

This method sends a COMMIT statement to the server

Returns:

None

execute(query, params=None)

Execute query on database cursor

Parameters:
  • query – SQL query language

  • params – parameters of the query

Returns:

None

executemany(query, params)

Execute query on database cursor with many parameters

Parameters:
  • query – SQL query language

  • params – list of parameters of the query

Returns:

None

fetchall() Dataset

Fetches all (or all remaining) rows of a query result set

Returns:

Dataset object

fetchmany(size=1) Dataset

Fetches the next set of rows of a query result

Parameters:

size – the number of rows returned

Returns:

Dataset object

fetchone() Dataset

Retrieves the next row of a query result set

Returns:

Dataset object

reconnect()

Close and start connection

Returns:

None

class pyreports.io.ExcelFile(filename)

Bases: File

Excel file class

read(**kwargs)

Read xlsx format

Returns:

Dataset object

write(data)

Write data on xlsx file

Parameters:

data – data to write on yaml file

Returns:

None

class pyreports.io.File(filename)

Bases: ABC

File base class

__init__(filename)

File base object

Parameters:

filename – file path

__repr__()

Return repr(self).

__weakref__

list of weak references to the object (if defined)

abstract read(**kwargs)

Read with format

Returns:

Dataset object

abstract write(data)

Write data on file

Parameters:

data – data to write on file

Returns:

None

class pyreports.io.FileManager(file: File)

Bases: Manager

File manager class for various readable file format

__init__(file: File)

File manager object for various readable file format

Parameters:

file – file object

__repr__()

Representation of FileManager object

Returns:

string

read(pattern=None, **kwargs) Dataset

Read file

Returns:

Dataset object

write(data)

Write data on file

Parameters:

data – data to write on file

Returns:

None

class pyreports.io.JsonFile(filename)

Bases: File

JSON file class

read(**kwargs)

Read json format

Returns:

Dataset object

write(data)

Write data on json file

Parameters:

data – data to write on json file

Returns:

None

class pyreports.io.LdapManager(server, username, password, ssl=False, tls=True)

Bases: Manager

LDAP manager class

__init__(server, username, password, ssl=False, tls=True)

LDAP manager object

Parameters:
  • server – fqdn server name or ip address

  • username – username for bind operation

  • password – password of the username used for bind operation

  • ssl – disable or enable SSL. Default is False.

  • tls – disable or enable TLS. Default is True.

__repr__()

Representation of LdapManager object

Returns:

string

query(base_search, search_filter, attributes) Dataset

Search LDAP element on subtree base search directory

Parameters:
  • base_search – distinguishedName of LDAP base search

  • search_filter – LDAP query language

  • attributes – list of returning LDAP attributes

Returns:

Dataset object

rebind(username, password)

Re-bind with specified username and password

Parameters:
  • username – username for bind operation

  • password – password of the username used for bind operation

Returns:

None

unbind()

Unbind LDAP connection

Returns:

None

class pyreports.io.LogFile(filename)

Bases: File

Log file class

read(pattern='(.*\\n|.*$)', **kwargs)

Read with format

Parameters:

pattern – regular expression pattern

Returns:

Dataset object

write(data)

Write data on file

Parameters:

data – data to write on file

Returns:

None

class pyreports.io.Manager

Bases: ABC

Manager base class

__weakref__

list of weak references to the object (if defined)

class pyreports.io.MySQLConnection(*args, **kwargs)

Bases: Connection

Connection mysql class

class pyreports.io.NoSQLManager(connection: Connection, *args, **kwargs)

Bases: Manager, Manager

Database manager class for NOSQL connection

__init__(connection: Connection, *args, **kwargs)
find(*args, **kwargs) Dataset

Find data from database session

get(*args, **kwargs) Dataset

Get data from database session

class pyreports.io.PostgreSQLConnection(*args, **kwargs)

Bases: Connection

Connection postgresql class

class pyreports.io.SQLiteConnection(*args, **kwargs)

Bases: Connection

Connection sqlite class

class pyreports.io.TextFile(filename)

Bases: File

Text file class

read(**kwargs)

Read with format

Returns:

Dataset object

write(data)

Write data on file

Parameters:

data – data to write on file

Returns:

None

class pyreports.io.YamlFile(filename)

Bases: File

YAML file class

read(**kwargs)

Read yaml format

Returns:

Dataset object

write(data)

Write data on yaml file

Parameters:

data – data to write on yaml file

Returns:

None

pyreports.io.create_database_manager(dbtype, *args, **kwargs)

Creates a DatabaseManager object

Parameters:

dbtype – type of database connection

Returns:

DatabaseManager

pyreports.io.create_file_manager(filetype, filename)

Creates a FileManager object

Parameters:
  • filetype – type of file

  • filename – path of file

Returns:

FileManager

pyreports.io.create_ldap_manager(server, username, password, ssl=False, tls=True)

Creates a LdapManager object

Parameters:
  • server – fqdn server name or ip address

  • username – username for bind operation

  • password – password of the username used for bind operation

  • ssl – disable or enable SSL. Default is False.

  • tls – disable or enable TLS. Default is True.

pyreports.io.create_nosql_manager(connection, *args, **kwargs)

Creates a NoSQLManager object

Parameters:

connection – Connection object

Returns:

NoSQLManager

pyreports.io.manager(datatype, *args, **kwargs)

Creates manager object based on datatype

Parameters:
  • datatype – type of manager

  • args – various positional arguments

  • kwargs – various keyword arguments

Returns:

Manager object

core

The core module contains all the classes that refer to the creation and manipulation of data.

Contains all business logic and data processing.

class pyreports.core.Executor(data, header=None)

Bases: object

Executor receives, processes, transforms and writes data

__contains__(item)

Check if item is in Dataset Executor object

Parameters:

item – Any item

Returns:

bool

__delitem__(key)

Delete row into Dataset object

Parameters:

key – row (int)

Returns:

None

__getitem__(item)

Get row into Dataset object

Parameters:

item – row (int)

Returns:

row

__init__(data, header=None)

Create Executor object

Parameters:
  • data – everything type of data

  • header – list header of data

__iter__()

Iterate over dataset

Returns:

next value

__len__()

Count data

Returns:

integer

__str__()

Pretty representation of Executor object

Returns:

string

__weakref__

list of weak references to the object (if defined)

add_column(column, value)

Add column to data

Parameters:
  • column – column name

  • value – list value for column, or function with no arguments that returns a value

Returns:

None

clone()

Clone Executor object

Returns:

executor

count_columns()

Count all column

Returns:

integer

count_rows()

Count all rows

Returns:

integer

del_column(column)

Delete column

Parameters:

column – column name

Returns:

None

filter(flist=None, key=None, column=None, negation=False)

Filter data through a list of strings (equal operator) and/or function key

Parameters:
  • flist – list of strings

  • key – function that takes a single argument and returns data

  • column – select column name or index number

  • negation – enable negation for flist or key

Returns:

None

get_data()

Get dataset

Returns:

dataset

headers(header)

Set header

Parameters:

header – header of data

Returns:

None

map(key, column=None)

Apply function to data

Parameters:
  • key – function that takes a single argument

  • column – select column name or index number

Returns:

None

reset()

Reset data to original data

Returns:

None

select_column(column)

Filter dataset by column

Parameters:

column – name or index of column

Returns:

Dataset object

class pyreports.core.Report(input_data: Dataset, title=None, filters=None, map_func=None, negation=False, column=None, count=False, output: Manager = None)

Bases: DataAdapters, DataPrinters

Report represents the workflow for generating a report

__bool__()

Boolean value

Returns:

bool

__delitem__(key)

Delete row of report

Parameters:

key – int row index

Returns:

None

__getitem__(item)

Get row of report

Parameters:

item – int row index

Returns:

row tuple

__init__(input_data: Dataset, title=None, filters=None, map_func=None, negation=False, column=None, count=False, output: Manager = None)

Create Report object

Parameters:
  • input_data – Dataset object

  • title – title of Report object

  • filters – list or function for filter data

  • map_func – function for modifying data

  • negation – enable negation for filters or map_func

  • column – select column name or index

  • count – count rows

  • output – Manager object

__iter__()

Return report iterator

Returns:

iterable object

__repr__()

Representation of Report object

Returns:

string

__str__()

Pretty representation of Report object

Returns:

string

exec()

Create Executor object to apply filters and map function to input data

Returns:

None

export()

Process and save data on output

Returns:

if count is True, return row count

send(server, _from, to, cc=None, bcc=None, subject=None, body='', auth=None, _ssl=True, headers=None)

Send saved report to email

Parameters:
  • server – server SMTP

  • _from – email address ‘from:’

  • to – email address ‘to:’

  • cc – email address ‘cc:’

  • bcc – email address ‘bcc:’

  • subject – email subject. Default is report title

  • body – email body

  • auth – authorization tuple “(user, password)”

  • _ssl – boolean, if True port is 465 else 25

  • headers – more header value “(header_name, key, value)”

Returns:

None

class pyreports.core.ReportBook(reports=None, title=None)

Bases: object

ReportBook represent a collection of Report’s object

__add__(other)

Add report object

Parameters:

other – Report object

Returns:

ReportBook

__bool__()

Boolean value

Returns:

bool

__delitem__(key)

Delete Report object

Parameters:

key – Report int index

Returns:

None

__getitem__(item)

Get Report objects

Parameters:

item – Report int index

Returns:

Report

__init__(reports=None, title=None)

Create a ReportBook object

Parameters:
  • reports – Report’s object list

  • title – title of report book

__iter__()

Return report iterator

Returns:

iterable object

__len__()

Number of Report objects

Returns:

int

__repr__()

Representation of ReportBook object

Returns:

string

__str__()

Pretty representation of ReportBook object

Returns:

string

__weakref__

list of weak references to the object (if defined)

add(report: Report)

Add report object

Parameters:

report – Report object

Returns:

None

export(output=None)

Save data on report output or an Excel workbook

Parameters:

output – output path for report export

Returns:

None

remove(index: int = None)

Remove Report object, last added or index specified

Parameters:

index – report number to remove

Returns:

None

send(server, _from, to, cc=None, bcc=None, subject=None, body='', auth=None, _ssl=True, headers=None)

Send saved report to email

Parameters:
  • server – server SMTP

  • _from – email address ‘from:’

  • to – email address ‘to:’

  • cc – email address ‘cc:’

  • bcc – email address ‘bcc:’

  • subject – email subject. Default is report title

  • body – email body

  • auth – authorization tuple “(user, password)”

  • _ssl – boolean, if True port is 465 else 25

  • headers – more header value “(header_name, key, value)”

Returns:

None

datatools

The datatools module contains all utility functions for data processing.

Contains all functions for data processing.

class pyreports.datatools.DataAdapters(input_data: Dataset)

Bases: DataObject

Data adapters class

aggregate(*columns, fill_value=None)

Aggregate in the current Dataset other columns

Parameters:
  • columns – columns added

  • fill_value – fill value for empty field if “fill_empty” argument is specified

Returns:

None

chunks(length)

Yield successive n-sized chunks from Dataset

Parameters:

length – n-sized chunks

Returns:

generator

counter()

Count value into the rows

Returns:

Counter

deduplicate()

Remove duplicated rows

Returns:

None

merge(*datasets)

Merge in the current Dataset other Dataset objects

Parameters:

datasets – datasets that will merge

Returns:

None

class pyreports.datatools.DataObject(input_data: Dataset)

Bases: object

Data object class

__init__(input_data: Dataset)
__weakref__

list of weak references to the object (if defined)

class pyreports.datatools.DataPrinters(input_data: Dataset)

Bases: DataObject

Data printers class

__len__()

Measure length of DataSet

Returns:

int

__repr__()

Representation of DataObject

Returns:

string

__str__()

Pretty representation of DataObject

Returns:

string

average(column)

Average of list of integers or floats

Parameters:

column – column name or index

Returns:

float

most_common(column)

The most common element in a column

Parameters:

column – column name or index

Returns:

Any

percentage(filter_)

Calculating the percentage according to filter

Parameters:

filter – equality filter

Returns:

float

print()

Print data

Returns:

None

pyreports.datatools.aggregate(*columns, fill_empty: bool = False, fill_value=None)

Aggregate in a new Dataset the columns

Parameters:
  • columns – columns added

  • fill_empty – fill the empty field of data with “fill_value” argument

  • fill_value – fill value for empty field if “fill_empty” argument is specified

Returns:

Dataset

pyreports.datatools.average(data, column)

Average of list of integers or floats

Parameters:
  • data – Dataset object

  • column – column name or index

Returns:

float

pyreports.datatools.chunks(data, length)

Yield successive n-sized chunks from data

Parameters:
  • data – Dataset object

  • length – n-sized chunks

Returns:

generator

pyreports.datatools.counter(data, column)

Count all row value

Parameters:
  • data – Dataset object

  • column – column name or index

Returns:

Counter

pyreports.datatools.deduplicate(data)

Remove duplicated rows

Parameters:

data – Dataset object

Returns:

Dataset

pyreports.datatools.merge(*datasets)

Merge two or more dataset in only one

Parameters:

datasets – Dataset object collection

Returns:

Dataset

pyreports.datatools.most_common(data, column)

The most common element in a column

Parameters:
  • data – Dataset object

  • column – column name or index

Returns:

Any

pyreports.datatools.percentage(data, filter_)

Calculating the percentage according to filter

Parameters:
  • data – Dataset object

  • filter – equality filter

Returns:

float

exception

The exception module contains all the classes that represent explicit package exceptions.

Contains all custom exception.

exception pyreports.exception.DataObjectError

Bases: Exception

__weakref__

list of weak references to the object (if defined)

exception pyreports.exception.ExecutorError

Bases: Exception

__weakref__

list of weak references to the object (if defined)

exception pyreports.exception.ReportDataError

Bases: ReportException

exception pyreports.exception.ReportException

Bases: DataObjectError

exception pyreports.exception.ReportManagerError

Bases: ReportException