Skip to content

ZauJulio/FeaturesAnalyzer

Repository files navigation

Features Analyzer

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

image

Overview

This is a simple tool to analyze the features of a dataset, prototype and test machine learning/statistical models. The project is built with Python type hints in all modules.


Installation

1. Prerequisites
  • Python 3.12+: Make sure you have Python 3.12 (or venv ;) ) or more recent installed on your system.
  • WSL (on Windows): Windows users should install the Windows Subsystem for Linux (WSL) to use Poetry.

2. Install Poetry (Optional but RECOMMENDED)

Poetry is used to manage dependencies and build the project. Follow the link to install it or continue with to install with pyenv and pip.


3. Install Project

With Poetry

  1. Clone the repository:

    git clone <repository-url>
    cd <repository-folder>
  2. Install the dependencies:

    poetry install

With pyenv e pip

  1. Install Pyenv:

    curl https://pyenv.run | bash
  2. Install and configure the Python version:

    pyenv install 3.12.0
    pyenv local 3.12.0
  3. Install the facilities using the requirements.txt:

    pip install -r requirements.txt

Docker

  1. The option to run via Docker is in its early stages and is a work in progress

    # If you are using X11, remember to allow the connection
    xhost +local:docker
    
    docker buildx build -t fa .
    
    # If u must use the local files, remember to map to volume
    docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name fa fa

3. Run
cd src
python main.py

# Or with make
make run

Project Structure

  • Basic
├── assets                              # Assets files
│   ├── styles                          # Global styles
│   └── icons                           # Icons
├── docs                                # Documentation used by MkDocs
├── i18n                                # Internationalization files
├── src                                 # Source code
│   ├── context                         # Context (Global state)
│   │   ├── states/*                    # States (With handlers)
│   │   └── store.py                    # Store/Merge context
│   ├── interfaces                      # Project interfaces
│   ├── models                          # Project models (extends FAModel)
│   ├── lib                             # Project libraries
│   │   ├── model_manager               # Model manager
│   │   ├── orm                         # Typed JSON ORM with Pydantic and tinydb
│   │   ├── state_manager               # State manager with Observer
│   │   ├── utils                       # Generic utils
│   │   └── widget.py                   # Generic Widget (extends Gtk.Widget)
│   └── sdk                             # SDKs for other services
├── .env.example                        # Environment variables example
└── requirements.txt                    # Python requirements file (alternative to poetry)
Advanced
├── assets                              # Assets files
│   ├── styles                          # Global styles
│   └── icons                           # Icons
├── docs                                # Documentation used by MkDocs
├── i18n                                # Internationalization files
├── src                                 # Source code
│   ├── context                         # Context (Global state)
│   │   ├── states/*                    # States (With handlers)
│   │   └── store.py                    # Store/Merge context
│   ├── models/*                        # Project models (extends FAModel)
│   ├── interfaces                      # Project interfaces
│   │   ├── application.py              # Global app interface
│   │   ├── controller.py               # Generic (handler and connect signals)
│   │   ├── module.py                   # Generic (handler root state signals)
│   │   ├── state.py                    # Generic State
│   │   └── widget.py                   # Generic Widget (extends Gtk.Widget)
│   ├── lib                             # Project libraries
│   │   ├── model_manager               # Model manager
│   │   ├── orm                         # Typed JSON ORM with Pydantic and tinydb
│   │   ├── state_manager               # State manager with Observer
│   │   ├── utils                       # Generic utils
│   │   │   ├── bin_.py                 # Binary models access
│   │   │   ├── hsash.py                # Hash utils
│   │   │   ├── lock.py                 # Lock utils to multiprocessing
│   │   │   ├── logger.py               # Global logger
│   │   │   ├── meta.py                 # Meta class utils (Singleton)
│   │   │   ├── time_.py                # Timezone, etc
│   │   │   ├── types_.py               # State manager with Observer
│   │   │   ├── ui.py                   # State manager with Observer
│   │   └── widget.py                   # Generic Widget (extends Gtk.Widget)
│   └── sdk                             # SDKs for other services
├── .editorconfig                       # Editor configuration
├── .env.example                        # Environment variables example
├── .gitignore                          # Git ignore file
├── .pre-commit-config.yaml             # Pre-commit configuration
├── Dockerfile                          # Dockerfile
├── Makefile                            # Makefile with common commands
├── poetry.lock                         # Poetry lock file
├── pyproject.toml                      # Python project file
├── requirements.txt                    # Python requirements file (alternative to poetry)
└── ruff.toml                           # Ruff (code linter/formatter) options

Logic

  • Widget: Interact with the user/screen
  • Controller: Handle the widget state setter's/handle signals
  • Module: Handle the controller with root state subscribes
  • State: Integrate the module and interact with data/graphs, group widgets/modules, be creative ; )

Tools Maintain Project


How to cite

@misc{FeaturesAnalyzer,
  title={Boilerplate para Ferramentas de Visualização e Análise de Dados},
  author={Zaú Júlio},
  year={2024},
  url={https://github.com/ZauJulio/FeaturesAnalyzer},
}

License

UFRN/ZauJulio - 2024 💙🎓️

About

Python data analyze and machine learning tool

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Contributors 3

  •  
  •  
  •  

Languages