Report (version 0.0.2)
index
Report.html

This package implements tools to build python package and tools.
 
>>> from Report import *
>>> data = [
...     {"name": "test0", "level": 5, "id": 0},
...     {"name": "test1", "level": 10, "id": 1},
...     {"name": "test2", "level": 2, "id": 2},
... ]
>>> r = Report(data, "level", "id")
>>> print(r.report_text())
|name         |level        |id           |
|-------------|-------------|-------------|
|test2        |2            |2            |
|test1        |10           |1            |
>>> print(r.report_JSON())
[
    {
        "name": "test2",
        "level": 2,
        "id": 2
    },
    {
        "name": "test1",
        "level": 10,
        "id": 1
    }
]
>>> r.report_CSV()
'name,level,id\r\ntest2,2,2\r\ntest1,10,1\r\n'
>>> print(r.report_HTML())
<table><thead><tr><th>name</th><th>level</th><th>id</th></tr></thead><tbody><tr><td>test2</td><td>2</td><td>2</td></tr><tr><td>test1</td><td>10</td><td>1</td></tr></tbody><tfoot></tfoot></table>
>>> r.statistic()
[{'Name': 'level', 'Sum': 12, 'Max': 10, 'Min': 2, 'Count': 2, 'MaxCount': 1, 'MinCount': 1, 'Average': 6.0, 'Variance': 32, 'Median': 6.0, 'Deviation': 4.0, 'CountGreaterThanAverage': 1, 'CountLessThanAverage': 1, 'CountGreaterThanVariance': 0, 'CountLessThanVariance': 2, 'CountGreaterThanMedian': 1, 'CountLessThanMedian': 1, 'CountGreaterThanDeviation': 1, 'CountLessThanDeviation': 1}, {'Name': 'id', 'Sum': 3, 'Max': 2, 'Min': 1, 'Count': 2, 'MaxCount': 1, 'MinCount': 1, 'Average': 1.5, 'Variance': 0.5, 'Median': 1.5, 'Deviation': 0.5, 'CountGreaterThanAverage': 1, 'CountLessThanAverage': 1, 'CountGreaterThanVariance': 2, 'CountLessThanVariance': 0, 'CountGreaterThanMedian': 1, 'CountLessThanMedian': 1, 'CountGreaterThanDeviation': 2, 'CountLessThanDeviation': 0}]
>>> r2 = Report(r.statistic())
>>> print(r2.report_text(length=26))
|Name                      |Sum                       |Max                       |Min                       |Count                     |MaxCount                  |MinCount                  |Average                   |Variance                  |Median                    |Deviation                 |CountGreaterThanAverage   |CountLessThanAverage      |CountGreaterThanVariance  |CountLessThanVariance     |CountGreaterThanMedian    |CountLessThanMedian       |CountGreaterThanDeviation |CountLessThanDeviation    |
|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|--------------------------|
|level                     |12                        |10                        |2                         |2                         |1                         |1                         |6.0                       |32                        |6.0                       |4.0                       |1                         |1                         |0                         |2                         |1                         |1                         |1                         |1                         |
|id                        |3                         |2                         |1                         |2                         |1                         |1                         |1.5                       |0.5                       |1.5                       |0.5                       |1                         |1                         |2                         |0                         |1                         |1                         |2                         |0                         |
>>> from dataclasses import dataclass
>>> @dataclass
... class Test:
...     one: int = 1
...     two: int = 2
...
>>> data = [Test(), Test(one=2, two=2)]
>>> r = Report(data)
>>> r.frequence()
>>> r = Report(data, filter_value=lambda x: x["one"] == 1)
>>> r.frequence()
50.0
>>> r = Report(data, filter_value=lambda x: x["two"] == 1)
>>> r.report_text()
>>> r.report_HTML()
>>> r.report_JSON()
>>> r.report_CSV()
>>> r.statistic()
>>>
 
Run tests:
 ~# python -m doctest Report.py
 ~# python Report.py            # Verbose mode
 
1 items passed all tests:
  23 tests in __main__
23 tests in 12 items.
23 passed and 0 failed.
Test passed.
 
~# coverage run Report.py
~# coverage report
Name         Stmts   Miss  Cover
--------------------------------
Report.py      160      1    99%
--------------------------------
TOTAL          160      1    99%
~#

 
Classes
       
builtins.object
Report

 
class Report(builtins.object)
    Report(objects: Union[Sequence[dict], Sequence[object]], sort_value: Union[str, collections.abc.Callable] = None, filter_value: Union[str, collections.abc.Callable] = None, reverse: bool = False)
 
This function reports data in different formats.
 
  Methods defined here:
__init__(self, objects: Union[Sequence[dict], Sequence[object]], sort_value: Union[str, collections.abc.Callable] = None, filter_value: Union[str, collections.abc.Callable] = None, reverse: bool = False)
Initialize self.  See help(type(self)) for accurate signature.
frequence(self, filtered: bool = False, pourcent: bool = True) -> float
This function returns the frequence of used/filtered objects
for report.
report_CSV(self, *args, filtered: bool = False, **kwargs)
This function returns a CSV content to report
objects.
 
*args and **kwargs are sent to DictWriter.writerows
report_HTML(self, filtered: bool = False)
This function returns a text table to report
objects.
report_JSON(self, *args, filtered: bool = False, indent: int = 4, **kwargs) -> str
This function returns a JSON array of dict to report
objects.
 
*args and **kwargs are sent to json.dumps
report_text(self, *args, filtered: bool = False, **kwargs) -> str
This function returns a text table to report
objects.
 
*args and **kwargs are sent to StringF.strings_tableformat
statistic(self, attributes: Sequence[str] = None, filtered: bool = False) -> List[Dict[str, Union[str, int]]]
This function returns statistics to report
objects statistics.

Static methods defined here:
get_dicts(objects: Union[Sequence[dict], Sequence[object]]) -> collections.abc.Iterator[dict]
This function returns dict from dict or object.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Data
        __all__ = ['Report']
__author_email__ = 'mauricelambert434@gmail.com'
__copyright__ = '\nPythonToolsKit Copyright (C) 2022 Maurice Lam...ome to redistribute it\nunder certain conditions.\n'
__description__ = '\nThis package implements tools to build python package and tools.\n'
__license__ = 'GPL-3.0 License'
__maintainer__ = 'Maurice Lambert'
__maintainer_email__ = 'mauricelambert434@gmail.com'
__url__ = 'https://github.com/mauricelambert/PythonToolsKit'

 
Author
        Maurice Lambert
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy