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:
ABCConnection base class
- __init__(*args, **kwargs)#
Connection base object.
- __repr__()#
Return repr(self).
- __weakref__#
list of weak references to the object
- class pyreports.io.CsvFile(filename)#
Bases:
FileCSV file class
- __init__(filename)#
CSV file base object.
- 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:
ManagerDatabase 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:
FileExcel file class
- __init__(filename)#
Excel file base object.
- 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:
ABCFile base class
- __init__(filename)#
File base object
- Parameters:
filename – file path
- __repr__()#
Return repr(self).
- __weakref__#
list of weak references to the object
- abstractmethod read(**kwargs)#
Read with format
- Returns:
Dataset object
- abstractmethod write(data)#
Write data on file
- Parameters:
data – data to write on file
- Returns:
None
- class pyreports.io.FileManager(file: File)#
Bases:
ManagerFile 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:
FileJSON file class
- __init__(filename)#
JSON file base object.
- 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:
ManagerLDAP 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:
FileLog file class
- __init__(filename)#
Log file base object.
- 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:
ABCManager base class
- __weakref__#
list of weak references to the object
- class pyreports.io.MySQLConnection(*args, **kwargs)#
Bases:
ConnectionConnection mysql class
- class pyreports.io.NoSQLManager(connection: Connection, *args, **kwargs)#
Bases:
Manager,ManagerDatabase 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:
ConnectionConnection postgresql class
- class pyreports.io.SQLiteConnection(*args, **kwargs)#
Bases:
ConnectionConnection sqlite class
- class pyreports.io.TextFile(filename)#
Bases:
FileText file class
- __init__(filename)#
Text file base object.
- 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:
FileYAML file class
- __init__(filename)#
YAML file base object.
- 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:
objectExecutor receives, processes, transforms, and writes data
- __add__(other)#
Add row or extend Dataset
- Parameters:
other – list, tuple or Dataset object
- Returns:
None
- __contains__(item)#
Check if an item is in a Dataset Executor object
- Parameters:
item – Any item
- Returns:
bool
- __delitem__(key)#
Delete row into a Dataset object
- Parameters:
key – row (int)
- Returns:
None
- __getitem__(item)#
Get row into a Dataset object
- Parameters:
item – row (int)
- Returns:
row
- __init__(data, header=None)#
Create an 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
- __repr__()#
Representation of an Executor object
- Returns:
string
- __str__()#
Pretty representation of an Executor object
- Returns:
string
- __weakref__#
list of weak references to the object
- 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
- property headers#
Get header
- Returns:
None
- map(key, column=None)#
Apply function to data
- Parameters:
key – function that takes a single argument
column – selects a 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 a 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,DataPrintersReport 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 a Report object
- Parameters:
input_data – Dataset object
title – title of a 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 a Report object
- Returns:
string
- __str__()#
Pretty representation of the Report object
- Returns:
string
- clone()#
Clone this report instance
- Returns:
Report
- exec(column=None)#
Create an Executor object to apply filters and map function to input data :param: column: apply filter only a column (name or index)
- Returns:
None
- export()#
Process and save data on output
- Returns:
if count is True, return row count
- reset()#
Reset to original data
- Returns:
None
- send(server, _from, to, cc=None, bcc=None, subject=None, body='', auth=None, _ssl=True, headers=None)#
Send a 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:
objectReportBook represent a collection of Report’s object
- __add__(other)#
Add a report object
- Parameters:
other – Report object
- Returns:
ReportBook
- __bool__()#
Boolean value
- Returns:
bool
- __delitem__(key)#
Delete a 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 a report book
- __iter__()#
Return report iterator
- Returns:
iterable object
- __len__()#
Number of Report objects
- Returns:
int
- __repr__()#
Representation of a ReportBook object
- Returns:
string
- __str__()#
Pretty representation of a ReportBook object
- Returns:
string
- __weakref__#
list of weak references to the object
- 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 a 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:
DataObjectData 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
- 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
- sort(column, reverse=False)#
Sort a Dataset by a specific column
- Parameters:
column – column to sort
reverse – reversed order
- Returns:
Dataset
- subset(*columns)#
New dataset with only columns added
- Parameters:
columns – select columns of new Dataset
- Returns:
Dataset
- class pyreports.datatools.DataObject(input_data: Dataset)#
Bases:
objectData object class
- __init__(input_data: Dataset)#
- __weakref__#
list of weak references to the object
- clone()#
Clone itself
- Returns:
Dataset
- class pyreports.datatools.DataPrinters(input_data: Dataset)#
Bases:
DataObjectData 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 – fills value for empty field if “fill_empty” argument is specified
- Returns:
Dataset
- pyreports.datatools.average(data: Dataset, column)#
Average of list of integers or floats
- Parameters:
data – Dataset object
column – column name or index
- Returns:
float
- pyreports.datatools.chunks(data: Dataset, length)#
Yield successive n-sized chunks from data
- Parameters:
data – Dataset object
length – n-sized chunks
- Returns:
generator
- pyreports.datatools.counter(data: Dataset, column)#
Count all row value
- Parameters:
data – Dataset object
column – column name or index
- Returns:
Counter
- pyreports.datatools.deduplicate(data: Dataset)#
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: Dataset, column)#
The most common element in a column
- Parameters:
data – Dataset object
column – column name or index
- Returns:
Any
- pyreports.datatools.percentage(data: Dataset, filter_)#
Calculating the percentage according to filter
- Parameters:
data – Dataset object
filter – equality filter
- Returns:
float
- pyreports.datatools.sort(data, column, reverse=False)#
Sort a Dataset by a specific column
- Parameters:
data – Dataset object
column – column to sort
reverse – reversed order
- Returns:
Dataset
- pyreports.datatools.subset(data: Dataset, *columns)#
Create a new Dataset with only the given columns
- Parameters:
data – Dataset object
columns – selected columns
- Returns:
Dataset
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
- exception pyreports.exception.ExecutorDataError#
Bases:
ExecutorError
- exception pyreports.exception.ExecutorError#
Bases:
Exception- __weakref__#
list of weak references to the object
- exception pyreports.exception.ReportDataError#
Bases:
ReportException
- exception pyreports.exception.ReportException#
Bases:
DataObjectError
- exception pyreports.exception.ReportManagerError#
Bases:
ReportException