Skip to main content

This is a customization analysis system that supports multiple data formats (JSON, XML, CSV) and has the capability to be configured and used across multiple domains.

Project description

Main badge

Python Package Performance Analysis System

This is a customization analysis system that supports multiple data formats (JSON, XML, CSV) and has the capability to be configured and used across multiple domains.

Description

The Performance Analysis System is a versatile project developed by students in the Master of Data Science Program at UBC-O. It extract data from various sources including CSV, JSON, and XML files, to generate meaningful statistical metrics and plots. This system aims to assist customers from different fields in visualize performance.

The configuration in the system allows user to input their needs. The system fetches the data from the configured data source and process it accordingly to visualize and extract information if required. The visualization part include a table with basic statiscical metrics (mean, median, mode, count, min and max), bar plot, line chart, scatter plot, and box plot. Users can choose to display the results either on the terminal or export the analysis.

Package structure

  • main/
    • data_processor/
      • configuration.py
      • entity.py
      • performanceanalyzer.py
    • data_transformer/
      • data_manager_factory.py
      • abstract_parser.py
      • transformer-csv_parser.py
      • xml_parser.py
      • json_parser.py
      • custom_exception.py
  • package-main: The main package facilitates the entire setup process, such as retrieving the configuration and prompting the user to choose the information to compute and/or visualize.
  • subpackage1-\main\data_processor: The main package facilitates the entire setup process, such as retrieving the configuration and prompting the user to choose the information to compute and/or visualize.
  • subpackage1-module1 \main\data_processor\configuration.py: This module provides a structured and modular approach to handling data. It ensures that the necessary configuration is in place before performing data operations.
  • subpackage1-module2 \main\data_processor\entity.py: This module processes entities and collections (e.g. student-students, employee-employees, etc.).
  • subpackage1-module3 \main\data_processor\performanceanalyzer.py: This module generates a summary of basic statistical metrics for the data from the entity collection. It also facilitates the creation of appropriate plots.
  • subpackage2-\main\data_trasformer: This main function of this sub-package is to co-ordinate and control data parsing and data transformation from user data type to Entity Collection type.
  • subpackage2-module1 \main\data_trasformer\data_manager_factory.py: It helps to invoke the respective parser depending on the data type of the input configuration.
  • subpackage2-module2 \main\data_trasformer\abstract_parser.py: This class serves as a parent class which is inherited by all the other parsers classes. It helps to parse and evaluate expression in configuraion.
  • subpackage2-module3 \main\data_trasformer\csv_parser.py: This class is responsible for parsing CSV data into Entity Collection.
  • subpackage2-module4 \main\data_trasformer\xml_parser.py: This class is responsible for parsing XML data into Entity Collection.
  • subpackage2-module4 \main\data_trasformer\json_parser.py: This class is responsible for parsing JSON data into Entity Collection.

How to use the package

  1. Download the package and store in your working repository.

https://pypi.org/project/PerformanceAnalyzerSystem/

  1. If you want to create a configuration file you can follow step 3. If not the system creates a configuration file on behalf of you. So you can directly go to step 4.

  2. In your current working directory create a JSON file with name config.json.

    Sample Config data:

 {

    "data_type": "JSON",
    
    "entity_collection": "students",
    
    "base_field": "name",
    
    "computable_fields": ["science", "english", "science+english As total"],
    
    "path": "C://Users//yourData.json"
    
  }

Description from the fields within the config.json:

  • data_type: This property denotes what type of data source file you have.

  • entity_collection: This property denotes the sample data collection name that is present in data file (e.g. Students, Employees, Players, etc.).

  • base_field: This is the field that can be considered the X-axis for creating the plots in the visualization (e.g. ID, name, key, etc.).

  • computable_fields: These are the operational fields on which caulations can be computed. As of now, we support only +, -, /, * with 2 variables.

  • path: The data source path.

  1. Once the package is installed, import the package in your code to run the PerformanceAnalyzer. The main package name is "main" and initial process starts. So you can use below code to run the package.

    import main

  2. If you have not filled the configuration file, then system will prompt you to enter the configuration data.

  3. After processing the data, you can choose to display the analysis of your data or export it.

  4. Sample Data (in case you want for testing):

{"students": [
       {
         "name": "John Doe",
         "english": 90,
         "science": 85
       },
       {
         "name": "Jane Smith",
         "english": 95,
         "science": 92
       },
       {
         "name": "Bob Johnson",
         "english": 88,
         "science": 78
       },
       {
         "name": "Karl",
         "english": 92,
         "science": 94
       }
     ]
   }

Authors

  • Karthiga Sethu Sethuramalingam
  • Nayeli Montiel Rodríguez

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PerformanceAnalyzerSystem-0.0.1.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PerformanceAnalyzerSystem-0.0.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file PerformanceAnalyzerSystem-0.0.1.tar.gz.

File metadata

File hashes

Hashes for PerformanceAnalyzerSystem-0.0.1.tar.gz
Algorithm Hash digest
SHA256 4d1f863025c1434b96df044fec349b14e4cb9378e2643c210fd1c6bd99a1e73e
MD5 c0dbae7c358fc5119178bbac005460f8
BLAKE2b-256 39f684c5cce7387cd437b35413541df7e3101cd11363045678f182a141d2643d

See more details on using hashes here.

File details

Details for the file PerformanceAnalyzerSystem-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for PerformanceAnalyzerSystem-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 782df72336e364ebf8ef238234553925aaee145d94a56a60e09355282cfbadd3
MD5 428fd7d4243ca0f1783c46d7689e7565
BLAKE2b-256 da25aa252653079e3764156e0874819cf664e664790e00a0c59616448df658c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page