{"id":15720693,"url":"https://github.com/ZauJulio/FeaturesAnalyzer","last_synced_at":"2025-08-10T11:31:06.292Z","repository":{"id":227754342,"uuid":"771770332","full_name":"ZauJulio/FeaturesAnalyzerGTK","owner":"ZauJulio","description":"Python data analyze and machine learning tool","archived":false,"fork":false,"pushed_at":"2024-05-01T15:04:57.000Z","size":141,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-12T15:09:34.494Z","etag":null,"topics":["gtk","machine-learning","numpy","pandas","python","sklearn"],"latest_commit_sha":null,"homepage":"https://github.com/ZauJulio/FeaturesAnalyzerGTK","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZauJulio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["ZauJulio"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"custom":null}},"created_at":"2024-03-13T23:15:21.000Z","updated_at":"2024-05-01T15:05:00.000Z","dependencies_parsed_at":"2024-10-24T16:44:20.972Z","dependency_job_id":"3af4271a-8909-4f77-97ac-ffab3f47c7fe","html_url":"https://github.com/ZauJulio/FeaturesAnalyzerGTK","commit_stats":null,"previous_names":["zaujulio/featuresanalyzergtk"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZauJulio%2FFeaturesAnalyzerGTK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZauJulio%2FFeaturesAnalyzerGTK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZauJulio%2FFeaturesAnalyzerGTK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZauJulio%2FFeaturesAnalyzerGTK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZauJulio","download_url":"https://codeload.github.com/ZauJulio/FeaturesAnalyzerGTK/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229404284,"owners_count":18067680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gtk","machine-learning","numpy","pandas","python","sklearn"],"created_at":"2024-10-03T21:59:50.410Z","updated_at":"2025-08-10T11:31:06.274Z","avatar_url":"https://github.com/ZauJulio.png","language":"Python","funding_links":["https://github.com/sponsors/ZauJulio"],"categories":[],"sub_categories":[],"readme":"# Features Analyzer\n\n![Static Badge](https://img.shields.io/badge/python-3.12-%233776AB?logo=Python\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/pyenv-%2323478B?logo=python\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/poetry-%236C5CE7?logo=poetry\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/pandas-%23150458?logo=pandas\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/numpy-%23013243?logo=numpy\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/gtk-%2300D084?logo=gtk\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/matplotlib-%23D62728?logo=python\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/seaborn-%230098A4?logo=python\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/pydantic-%231D3557?logo=pydantic\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/i18n-%234CAF50?logo=googletranslate\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/docker-%232496ED?logo=docker\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/mkdocs-%23488CE8?logo=materialformkdocs\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/pre--commit-enabled-%231F2E3A?logo=pre-commit\u0026logoColor=white)\n![Static Badge](https://img.shields.io/badge/renovate-enabled-%2300BBDE?logo=renovatebot\u0026logoColor=white)\n\n![image](https://github.com/user-attachments/assets/b336cca1-a81b-4be6-9e51-2947defd3eb6)\n\n## Overview\n\nThis is a simple tool to analyze the features of a dataset, prototype and test machine learning/statistical models.\nThe project is built with Python type hints in all modules.\n\n---\n\n## Installation\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e1. Prerequisites\u003c/strong\u003e\u003c/summary\u003e\n\n- **Python 3.12+**: Make sure you have Python 3.12 (or venv ;) ) or more recent installed on your system.\n- **WSL (on Windows)**: Windows users should install the [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/pt-br/windows/wsl/install) to use Poetry.\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e2. Install Poetry (Optional but RECOMMENDED)\u003c/strong\u003e\u003c/summary\u003e\n\nPoetry is used to manage dependencies and build the project. Follow the [link](https://python-poetry.org/docs/#installing-with-pipx) to install it or continue with to install with pyenv and pip.\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e3. Install Project\u003c/strong\u003e\u003c/summary\u003e\n\n### **With Poetry**\n\n1. Clone the repository:\n\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd \u003crepository-folder\u003e\n   ```\n\n2. Install the dependencies:\n\n   ```bash\n   poetry install\n   ```\n\n#### **With pyenv e pip**\n\n1. Install Pyenv:\n\n   ```bash\n   curl https://pyenv.run | bash\n   ```\n\n2. Install and configure the Python version:\n\n   ```bash\n   pyenv install 3.12.0\n   pyenv local 3.12.0\n   ```\n\n3. Install the facilities using the `requirements.txt`:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n#### **Docker**\n\n1. The option to run via Docker is in its early stages and is a work in progress\n\n   ```bash\n   # If you are using X11, remember to allow the connection\n   xhost +local:docker\n\n   docker buildx build -t fa .\n\n   # If u must use the local files, remember to map to volume\n   docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name fa fa\n   ```\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e3. Run\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\ncd src\npython main.py\n\n# Or with make\nmake run\n```\n\n\u003c/details\u003e\n\n---\n\n## Project Structure\n\n- Basic\n\n```txt\n├── assets                              # Assets files\n│   ├── styles                          # Global styles\n│   └── icons                           # Icons\n├── docs                                # Documentation used by MkDocs\n├── i18n                                # Internationalization files\n├── src                                 # Source code\n│   ├── context                         # Context (Global state)\n│   │   ├── states/*                    # States (With handlers)\n│   │   └── store.py                    # Store/Merge context\n│   ├── interfaces                      # Project interfaces\n│   ├── models                          # Project models (extends FAModel)\n│   ├── lib                             # Project libraries\n│   │   ├── model_manager               # Model manager\n│   │   ├── orm                         # Typed JSON ORM with Pydantic and tinydb\n│   │   ├── state_manager               # State manager with Observer\n│   │   ├── utils                       # Generic utils\n│   │   └── widget.py                   # Generic Widget (extends Gtk.Widget)\n│   └── sdk                             # SDKs for other services\n├── .env.example                        # Environment variables example\n└── requirements.txt                    # Python requirements file (alternative to poetry)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eAdvanced\u003c/summary\u003e\n\n```txt\n├── assets                              # Assets files\n│   ├── styles                          # Global styles\n│   └── icons                           # Icons\n├── docs                                # Documentation used by MkDocs\n├── i18n                                # Internationalization files\n├── src                                 # Source code\n│   ├── context                         # Context (Global state)\n│   │   ├── states/*                    # States (With handlers)\n│   │   └── store.py                    # Store/Merge context\n│   ├── models/*                        # Project models (extends FAModel)\n│   ├── interfaces                      # Project interfaces\n│   │   ├── application.py              # Global app interface\n│   │   ├── controller.py               # Generic (handler and connect signals)\n│   │   ├── module.py                   # Generic (handler root state signals)\n│   │   ├── state.py                    # Generic State\n│   │   └── widget.py                   # Generic Widget (extends Gtk.Widget)\n│   ├── lib                             # Project libraries\n│   │   ├── model_manager               # Model manager\n│   │   ├── orm                         # Typed JSON ORM with Pydantic and tinydb\n│   │   ├── state_manager               # State manager with Observer\n│   │   ├── utils                       # Generic utils\n│   │   │   ├── bin_.py                 # Binary models access\n│   │   │   ├── hsash.py                # Hash utils\n│   │   │   ├── lock.py                 # Lock utils to multiprocessing\n│   │   │   ├── logger.py               # Global logger\n│   │   │   ├── meta.py                 # Meta class utils (Singleton)\n│   │   │   ├── time_.py                # Timezone, etc\n│   │   │   ├── types_.py               # State manager with Observer\n│   │   │   ├── ui.py                   # State manager with Observer\n│   │   └── widget.py                   # Generic Widget (extends Gtk.Widget)\n│   └── sdk                             # SDKs for other services\n├── .editorconfig                       # Editor configuration\n├── .env.example                        # Environment variables example\n├── .gitignore                          # Git ignore file\n├── .pre-commit-config.yaml             # Pre-commit configuration\n├── Dockerfile                          # Dockerfile\n├── Makefile                            # Makefile with common commands\n├── poetry.lock                         # Poetry lock file\n├── pyproject.toml                      # Python project file\n├── requirements.txt                    # Python requirements file (alternative to poetry)\n└── ruff.toml                           # Ruff (code linter/formatter) options\n```\n\n\u003c/details\u003e\n\n---\n\n## Logic\n\n- **Widget**: Interact with the user/screen\n- **Controller**: Handle the widget state setter's/handle signals\n- **Module**: Handle the controller with root state subscribes\n- **State**: Integrate the module and interact with data/graphs, group widgets/modules, be creative ; )\n\n---\n\n## Tools Maintain Project\n\n- [SonarCloud - Code Quality and Security](https://sonarcloud.io/project/overview?id=ZauJulio_FeaturesAnalyzer)\n- [Renovate - Dependency Updates](https://developer.mend.io/github/ZauJulio/FeaturesAnalyzer)\n- [Docs - Project documentation](https://zaujulio.github.io/FeaturesAnalyzer/)\n\n---\n\n## How to cite\n\n```txt\n@misc{FeaturesAnalyzer,\n  title={Boilerplate para Ferramentas de Visualização e Análise de Dados},\n  author={Zaú Júlio},\n  year={2024},\n  url={https://github.com/ZauJulio/FeaturesAnalyzer},\n}\n```\n\n## License\n\nUFRN/ZauJulio - 2024 💙🎓️\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZauJulio%2FFeaturesAnalyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FZauJulio%2FFeaturesAnalyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZauJulio%2FFeaturesAnalyzer/lists"}